summaryrefslogtreecommitdiffstats
path: root/browser/extensions/pictureinpicture/data/picture_in_picture_overrides.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/extensions/pictureinpicture/data/picture_in_picture_overrides.js')
-rw-r--r--browser/extensions/pictureinpicture/data/picture_in_picture_overrides.js304
1 files changed, 304 insertions, 0 deletions
diff --git a/browser/extensions/pictureinpicture/data/picture_in_picture_overrides.js b/browser/extensions/pictureinpicture/data/picture_in_picture_overrides.js
new file mode 100644
index 0000000000..4f3186036c
--- /dev/null
+++ b/browser/extensions/pictureinpicture/data/picture_in_picture_overrides.js
@@ -0,0 +1,304 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+/* globals browser */
+
+let AVAILABLE_PIP_OVERRIDES;
+
+{
+ // See PictureInPictureControls.sys.mjs for these values.
+ // eslint-disable-next-line no-unused-vars
+ const TOGGLE_POLICIES = browser.pictureInPictureChild.getPolicies();
+ const KEYBOARD_CONTROLS = browser.pictureInPictureChild.getKeyboardControls();
+
+ AVAILABLE_PIP_OVERRIDES = {
+ // The keys of this object are match patterns for URLs, as documented in
+ // https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns
+ //
+ // Example:
+ // const KEYBOARD_CONTROLS = browser.pictureInPictureChild.getKeyboardControls();
+ //
+ //
+ // "https://*.youtube.com/*": {
+ // policy: TOGGLE_POLICIES.THREE_QUARTERS,
+ // disabledKeyboardControls: KEYBOARD_CONTROLS.PLAY_PAUSE | KEYBOARD_CONTROLS.VOLUME,
+ // },
+ // "https://*.twitch.tv/mikeconley_dot_ca/*": {
+ // policy: TOGGLE_POLICIES.TOP,
+ // disabledKeyboardControls: KEYBOARD_CONTROLS.ALL,
+ // },
+
+ tests: {
+ // FOR TESTS ONLY!
+ "https://mochitest.youtube.com/*browser/browser/extensions/pictureinpicture/tests/browser/test-mock-wrapper.html":
+ {
+ videoWrapperScriptPath: "video-wrappers/mock-wrapper.js",
+ },
+ "https://mochitest.youtube.com/*browser/browser/extensions/pictureinpicture/tests/browser/test-toggle-visibility.html":
+ {
+ videoWrapperScriptPath: "video-wrappers/mock-wrapper.js",
+ },
+ },
+
+ abcnews: {
+ "https://*.abcnews.go.com/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ },
+
+ airmozilla: {
+ "https://*.mozilla.hosted.panopto.com/*": {
+ videoWrapperScriptPath: "video-wrappers/airmozilla.js",
+ },
+ },
+
+ aol: {
+ "https://*.aol.com/*": {
+ videoWrapperScriptPath: "video-wrappers/yahoo.js",
+ },
+ },
+
+ bbc: {
+ "https://*.bbc.com/*": {
+ videoWrapperScriptPath: "video-wrappers/bbc.js",
+ },
+ "https://*.bbc.co.uk/*": {
+ videoWrapperScriptPath: "video-wrappers/bbc.js",
+ },
+ },
+
+ brightcove: {
+ "https://*.brightcove.com/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ },
+ cbc: {
+ "https://*.cbc.ca/*": {
+ videoWrapperScriptPath: "video-wrappers/cbc.js",
+ },
+ },
+
+ dailymotion: {
+ "https://*.dailymotion.com/*": {
+ videoWrapperScriptPath: "video-wrappers/dailymotion.js",
+ },
+ },
+
+ disneyplus: {
+ "https://*.disneyplus.com/*": {
+ videoWrapperScriptPath: "video-wrappers/disneyplus.js",
+ },
+ },
+
+ edx: {
+ "https://*.edx.org/*": {
+ videoWrapperScriptPath: "video-wrappers/edx.js",
+ },
+ },
+
+ frontendMasters: {
+ "https://*.frontendmasters.com/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ },
+
+ funimation: {
+ "https://*.funimation.com/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ },
+
+ hbomax: {
+ "https://play.hbomax.com/page/*": { policy: TOGGLE_POLICIES.HIDDEN },
+ "https://play.hbomax.com/player/*": {
+ videoWrapperScriptPath: "video-wrappers/hbomax.js",
+ },
+ },
+
+ hotstar: {
+ "https://*.hotstar.com/*": {
+ videoWrapperScriptPath: "video-wrappers/hotstar.js",
+ },
+ },
+
+ hulu: {
+ "https://www.hulu.com/watch/*": {
+ videoWrapperScriptPath: "video-wrappers/hulu.js",
+ },
+ },
+
+ instagram: {
+ "https://www.instagram.com/*": { policy: TOGGLE_POLICIES.ONE_QUARTER },
+ },
+
+ laracasts: {
+ "https://*.laracasts.com/*": { policy: TOGGLE_POLICIES.ONE_QUARTER },
+ },
+
+ msn: {
+ "https://*.msn.com/*": {
+ visibilityThreshold: 0.7,
+ },
+ },
+ mxplayer: {
+ "https://*.mxplayer.in/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ },
+
+ nebula: {
+ "https://*.nebula.app/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ },
+
+ netflix: {
+ "https://*.netflix.com/*": {
+ videoWrapperScriptPath: "video-wrappers/netflix.js",
+ },
+ "https://*.netflix.com/browse*": { policy: TOGGLE_POLICIES.HIDDEN },
+ "https://*.netflix.com/latest*": { policy: TOGGLE_POLICIES.HIDDEN },
+ "https://*.netflix.com/Kids*": { policy: TOGGLE_POLICIES.HIDDEN },
+ "https://*.netflix.com/title*": { policy: TOGGLE_POLICIES.HIDDEN },
+ "https://*.netflix.com/notification*": { policy: TOGGLE_POLICIES.HIDDEN },
+ "https://*.netflix.com/search*": { policy: TOGGLE_POLICIES.HIDDEN },
+ },
+
+ nytimes: {
+ "https://*.nytimes.com/*": {
+ videoWrapperScriptPath: "video-wrappers/nytimes.js",
+ },
+ },
+
+ pbs: {
+ "https://*.pbs.org/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ "https://*.pbskids.org/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ },
+
+ piped: {
+ "https://*.piped.kavin.rocks/*": {
+ videoWrapperScriptPath: "video-wrappers/piped.js",
+ },
+ "https://*.piped.silkky.cloud/*": {
+ videoWrapperScriptPath: "video-wrappers/piped.js",
+ },
+ },
+
+ radiocanada: {
+ "https://*.ici.radio-canada.ca/*": {
+ videoWrapperScriptPath: "video-wrappers/radiocanada.js",
+ },
+ },
+
+ reddit: {
+ "https://*.reddit.com/*": { policy: TOGGLE_POLICIES.ONE_QUARTER },
+ },
+
+ sonyliv: {
+ "https://*.sonyliv.com/*": {
+ videoWrapperScriptPath: "video-wrappers/sonyliv.js",
+ },
+ },
+
+ ted: {
+ "https://*.ted.com/*": {
+ showHiddenTextTracks: true,
+ },
+ },
+
+ tubi: {
+ "https://*.tubitv.com/live*": {
+ videoWrapperScriptPath: "video-wrappers/tubilive.js",
+ },
+ "https://*.tubitv.com/movies*": {
+ videoWrapperScriptPath: "video-wrappers/tubi.js",
+ },
+ "https://*.tubitv.com/tv-shows*": {
+ videoWrapperScriptPath: "video-wrappers/tubi.js",
+ },
+ },
+
+ twitch: {
+ "https://*.twitch.tv/*": {
+ videoWrapperScriptPath: "video-wrappers/twitch.js",
+ policy: TOGGLE_POLICIES.ONE_QUARTER,
+ disabledKeyboardControls: KEYBOARD_CONTROLS.LIVE_SEEK,
+ },
+ "https://*.twitch.tech/*": {
+ videoWrapperScriptPath: "video-wrappers/twitch.js",
+ policy: TOGGLE_POLICIES.ONE_QUARTER,
+ disabledKeyboardControls: KEYBOARD_CONTROLS.LIVE_SEEK,
+ },
+ "https://*.twitch.a2z.com/*": {
+ videoWrapperScriptPath: "video-wrappers/twitch.js",
+ policy: TOGGLE_POLICIES.ONE_QUARTER,
+ disabledKeyboardControls: KEYBOARD_CONTROLS.LIVE_SEEK,
+ },
+ },
+
+ udemy: {
+ "https://*.udemy.com/*": {
+ videoWrapperScriptPath: "video-wrappers/udemy.js",
+ policy: TOGGLE_POLICIES.ONE_QUARTER,
+ },
+ },
+
+ voot: {
+ "https://*.voot.com/*": {
+ videoWrapperScriptPath: "video-wrappers/voot.js",
+ },
+ },
+
+ wired: {
+ "https://*.wired.com/*": {
+ videoWrapperScriptPath: "video-wrappers/videojsWrapper.js",
+ },
+ },
+
+ yahoofinance: {
+ "https://*.finance.yahoo.com/*": {
+ videoWrapperScriptPath: "video-wrappers/yahoo.js",
+ },
+ },
+
+ youtube: {
+ /**
+ * The threshold of 0.7 is so that users can click on the "Skip Ads"
+ * button on the YouTube site player without accidentally triggering
+ * PiP.
+ */
+ "https://*.youtube.com/*": {
+ visibilityThreshold: 0.7,
+ videoWrapperScriptPath: "video-wrappers/youtube.js",
+ },
+ "https://*.youtube-nocookie.com/*": {
+ visibilityThreshold: 0.9,
+ videoWrapperScriptPath: "video-wrappers/youtube.js",
+ },
+ },
+
+ washingtonpost: {
+ "https://*.washingtonpost.com/*": {
+ videoWrapperScriptPath: "video-wrappers/washingtonpost.js",
+ },
+ },
+
+ primeVideo: {
+ "https://*.primevideo.com/*": {
+ visibilityThreshold: 0.9,
+ videoWrapperScriptPath: "video-wrappers/primeVideo.js",
+ },
+ "https://*.amazon.com/*": {
+ visibilityThreshold: 0.9,
+ videoWrapperScriptPath: "video-wrappers/primeVideo.js",
+ },
+ },
+ };
+}