flyink13 / VK.COM Video PiP

// ==UserScript==
// @name         VK.COM Video PiP
// @description  Картинка в картинке у видео на vk.com (only Safari)
// @namespace    http://tampermonkey.net/
// @version      0.1
// @author       Flyink13
// @copyright 2018, flyink13 (https://openuserjs.org/users/flyink13)
// @license MIT
// @match        https://vk.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    window.addEventListener("mousedown", function onMouseDown() { // Отслеживаем нажатия мышкой
        // Получаем нужные элементы (Видео и контекстное меню видео)
        var videoContextMenu = document.querySelector('.videoplayer_context_menu'); 
        var video = document.querySelector('.videoplayer_media_provider');
        // Проверяем поддерживает ли PiP видео и браузер и не добавили ли мы уже кнопку 
        if (!videoContextMenu || videoContextMenu.pip || !video || typeof video.webkitSetPresentationMode !== "function") return;
        // Добавляем кнопку перехода в режим PiP
        var pipButton = document.createElement('div');
        pipButton.className = '_item';
        pipButton.textContent = 'Картинка в картинке';
        pipButton.addEventListener('click', function onClickPiP() {
            // по умолчанию PiP
            var mode = "picture-in-picture";
            // Если уже в нем, то делаем обратно
            if (video.webkitPresentationMode == mode) mode = "inline";
            // Переключаем режим
            video.webkitSetPresentationMode(mode);
        });
        // Добавляем кнопку перехода в PiP и запоминаем
        videoContextMenu.appendChild(pipButton);
        videoContextMenu.pip = true;
    });
})();