Bug 747301 - remove about:plugins and some other unused plugin-related code, r=mossop,handyman,fluent-reviewers,extension-reviewers,desktop-theme-reviewers,bolsson,dao,geckoview-reviewers,owlish,robwu

Differential Revision: https://phabricator.services.mozilla.com/D189921
This commit is contained in:
Gijs Kruitbosch 2023-10-31 09:11:30 +00:00
Родитель 9916e60d78
Коммит 6c143583b8
39 изменённых файлов: 57 добавлений и 516 удалений

Просмотреть файл

@ -1,8 +0,0 @@
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* 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/. */
import { RemotePageChild } from "resource://gre/actors/RemotePageChild.sys.mjs";
export class AboutPluginsChild extends RemotePageChild {}

Просмотреть файл

@ -1,40 +0,0 @@
/* 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/. */
const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
AddonManager: "resource://gre/modules/AddonManager.sys.mjs",
});
// Lists all the properties that plugins.html needs
const NEEDED_PROPS = [
"name",
"pluginLibraries",
"pluginFullpath",
"version",
"isActive",
"blocklistState",
"description",
];
export class AboutPluginsParent extends JSWindowActorParent {
async receiveMessage(message) {
switch (message.name) {
case "RequestPlugins":
function filterProperties(plugin) {
let filtered = {};
for (let prop of NEEDED_PROPS) {
filtered[prop] = plugin[prop];
}
return filtered;
}
let plugins = await lazy.AddonManager.getAddonsByTypes(["plugin"]);
return plugins.map(filterProperties);
}
return undefined;
}
}

Просмотреть файл

@ -34,8 +34,6 @@ with Files("WebRTCChild.sys.mjs"):
FINAL_TARGET_FILES.actors += [
"AboutNewTabChild.sys.mjs",
"AboutNewTabParent.sys.mjs",
"AboutPluginsChild.sys.mjs",
"AboutPluginsParent.sys.mjs",
"AboutPocketChild.sys.mjs",
"AboutPocketParent.sys.mjs",
"AboutPrivateBrowsingChild.sys.mjs",

Просмотреть файл

@ -272,10 +272,6 @@
data-l10n-id="urlbar-indexed-db-notification-anchor"/>
<image id="password-notification-icon" class="notification-anchor-icon" role="button"
data-l10n-id="urlbar-password-notification-anchor"/>
<stack id="plugins-notification-icon" class="notification-anchor-icon" role="button" align="center" data-l10n-id="urlbar-plugins-notification-anchor">
<image class="plugin-icon" />
<image id="plugin-icon-badge" />
</stack>
<image id="web-notifications-notification-icon" class="notification-anchor-icon desktop-notification-icon" role="button"
data-l10n-id="urlbar-web-notification-anchor"/>
<image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon camera-icon" role="button"

Просмотреть файл

@ -11,7 +11,7 @@
var count = 0;
const URIS = [
"about:config",
"about:plugins",
"about:robots",
"about:buildconfig",
"data:text/html,<title>OK</title>",
];

Просмотреть файл

@ -3,7 +3,6 @@ support-files = [
"empty_file.html",
"head.js",
"plugin_bug797677.html",
"plugin_test.html",
]
["browser_bug797677.js"]

Просмотреть файл

@ -1,9 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<embed id="test" style="width: 300px; height: 300px" type="application/x-test">
</body>
</html>

Просмотреть файл

@ -10,12 +10,10 @@ add_task(
// Our initial tab will be A. Let's open two more tabs B and C, but keep
// A selected. Then, we'll trigger a PopupNotification in C, and then make
// it reshow.
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
let tabB = BrowserTestUtils.addTab(gBrowser, "http://example.com/");
let tabB = BrowserTestUtils.addTab(gBrowser, "https://example.com/");
await BrowserTestUtils.browserLoaded(tabB.linkedBrowser);
// eslint-disable-next-line @microsoft/sdl/no-insecure-url
let tabC = BrowserTestUtils.addTab(gBrowser, "http://example.com/");
let tabC = BrowserTestUtils.addTab(gBrowser, "https://example.com/");
await BrowserTestUtils.browserLoaded(tabC.linkedBrowser);
let seenEvents = [];
@ -31,7 +29,7 @@ add_task(
tabC.linkedBrowser,
"test-notification",
"",
"plugins-notification-icon",
"geo-notification-icon",
null,
null,
options

Просмотреть файл

@ -71,7 +71,6 @@ add_task(async function chromeUITest() {
"logins",
"loginsimportreport",
"performance",
"plugins",
"policies",
"preferences",
"processes",

Просмотреть файл

@ -292,20 +292,6 @@ let JSWINDOWACTORS = {
remoteTypes: ["privilegedabout"],
},
AboutPlugins: {
parent: {
esModuleURI: "resource:///actors/AboutPluginsParent.sys.mjs",
},
child: {
esModuleURI: "resource:///actors/AboutPluginsChild.sys.mjs",
events: {
DOMDocElementInserted: { capture: true },
},
},
matches: ["about:plugins"],
},
AboutPocket: {
parent: {
esModuleURI: "resource:///actors/AboutPocketParent.sys.mjs",

Просмотреть файл

@ -89,8 +89,6 @@ urlbar-indexed-db-notification-anchor =
.tooltiptext = Open offline storage message panel
urlbar-password-notification-anchor =
.tooltiptext = Open save password message panel
urlbar-plugins-notification-anchor =
.tooltiptext = Manage plug-in use
urlbar-web-rtc-share-devices-notification-anchor =
.tooltiptext = Manage sharing your camera and/or microphone with the site
# "Speakers" is used in a general sense that might include headphones or

Просмотреть файл

@ -93,7 +93,6 @@
skin/classic/browser/notification-icons/minimize.svg (../shared/notification-icons/minimize.svg)
skin/classic/browser/notification-icons/persistent-storage-blocked.svg (../shared/notification-icons/persistent-storage-blocked.svg)
skin/classic/browser/notification-icons/persistent-storage.svg (../shared/notification-icons/persistent-storage.svg)
skin/classic/browser/notification-icons/plugin-badge.svg (../shared/notification-icons/plugin-badge.svg)
skin/classic/browser/notification-icons/popup.svg (../shared/notification-icons/popup.svg)
skin/classic/browser/notification-icons/screen-blocked.svg (../shared/notification-icons/screen-blocked.svg)
skin/classic/browser/notification-icons/screen.svg (../shared/notification-icons/screen.svg)

Просмотреть файл

@ -300,71 +300,6 @@
list-style-image: url(chrome://browser/skin/addons/addon-install-blocked.svg);
}
/* PLUGINS */
.plugin-icon {
list-style-image: url(chrome://global/skin/icons/plugin.svg);
transition: fill 1.5s;
}
#plugin-icon-badge {
list-style-image: url(chrome://browser/skin/notification-icons/plugin-badge.svg);
width: 16px;
height: 16px;
opacity: 0;
transition: opacity 1.5s;
}
#plugins-notification-icon:not(.plugin-blocked)[extraAttr="inactive"] > .plugin-icon {
fill-opacity: 0.25;
}
#plugins-notification-icon[extraAttr="inactive"] > #plugin-icon-badge {
opacity: 1;
}
#plugins-notification-icon[extraAttr="inactive"] > #plugin-icon-badge[animate] {
animation: blink-badge 1000ms ease 0s 5 alternate both;
}
@keyframes blink-badge {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.plugin-blocked > .plugin-icon {
list-style-image: url(chrome://global/skin/icons/plugin-blocked.svg);
fill: #d92215 !important;
}
.plugin-blocked > #plugin-icon-badge {
visibility: collapse;
}
#notification-popup-box[hidden] {
/* Override display:none to make the pluginBlockedNotification animation work
when showing the notification repeatedly. */
display: flex;
visibility: collapse;
}
#plugins-notification-icon.plugin-blocked[showing] {
animation: pluginBlockedNotification 500ms ease 0s 5 alternate both;
}
@keyframes pluginBlockedNotification {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/* UPDATE */
.popup-notification-icon[popupid="update-available"],
.popup-notification-icon[popupid="update-manual"],

Просмотреть файл

@ -1,7 +0,0 @@
<!-- 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/. -->
<svg fill="context-fill" fill-opacity="context-fill-opacity" xmlns="http://www.w3.org/2000/svg"
width="32" height="32" viewBox="0 0 32 32">
<circle fill="#3088d4" cx="27" cy="5" r="5"/>
</svg>

До

Ширина:  |  Высота:  |  Размер: 412 B

Просмотреть файл

@ -140,11 +140,6 @@ static const RedirEntry kRedirMap[] = {
{"performance", "about:processes",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI |
nsIAboutModule::HIDE_FROM_ABOUTABOUT},
#ifndef ANDROID
{"plugins", "chrome://global/content/plugins.html",
nsIAboutModule::URI_MUST_LOAD_IN_CHILD |
nsIAboutModule::IS_SECURE_CHROME_UI},
#endif
{"processes", "chrome://global/content/aboutProcesses.html",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
// about:serviceworkers always wants to load in the parent process because

Просмотреть файл

@ -25,7 +25,6 @@ about_pages = [
'neterror',
'networking',
'performance',
'plugins',
'processes',
'serviceworkers',
'srcdoc',

Просмотреть файл

@ -311,7 +311,7 @@ pref("media.geckoview.autoplay.request", true);
// Disable future downloads of OpenH264 on Android (bug 1548679)
pref("media.gmp-gmpopenh264.autoupdate", false);
// Make OpenH264 visible by default on mobile (bug 1532578)
// Keep OpenH264 if already installed before. (bug 1532578)
pref("media.gmp-gmpopenh264.enabled", true);
pref("media.gmp-gmpopenh264.visible", true);

Просмотреть файл

@ -32,9 +32,6 @@ def test(mod, path, entity=None):
if re.match(r"toolkit/about/[^/]*Mozilla.ftl", path):
# error on toolkit/about/*Mozilla.ftl
return "error"
if re.match(r"toolkit/about/[^/]*Plugins.ftl", path):
# error on toolkit/about/*Plugins.ftl
return "error"
if re.match(r"toolkit/about/[^/]*Rights.ftl", path):
# error on toolkit/about/*Rights.ftl
return "error"

Просмотреть файл

@ -133,10 +133,6 @@ exclude-multi-locale = [
reference = "dom/locales/en-US/chrome/dom/dom.properties"
l10n = "{l}dom/chrome/dom/dom.properties"
[[paths]]
reference = "toolkit/locales/en-US/toolkit/about/*Plugins.ftl"
l10n = "{l}toolkit/toolkit/about/*Plugins.ftl"
[[paths]]
reference = "toolkit/locales/en-US/toolkit/about/*About.ftl"
l10n = "{l}toolkit/toolkit/about/*About.ftl"

Просмотреть файл

@ -33,9 +33,6 @@ def test(mod, path, entity=None):
if re.match(r"toolkit/about/[^/]*Mozilla.ftl", path):
# error on toolkit/about/*Mozilla.ftl
return "error"
if re.match(r"toolkit/about/[^/]*Plugins.ftl", path):
# error on toolkit/about/*Plugins.ftl
return "error"
if re.match(r"toolkit/about/[^/]*Rights.ftl", path):
# error on toolkit/about/*Rights.ftl
return "error"

Просмотреть файл

@ -0,0 +1,28 @@
# Any copyright is dedicated to the Public Domain.
# http://creativecommons.org/publicdomain/zero/1.0/
from fluent.migrate import COPY_PATTERN
from fluent.migrate.helpers import transforms_from
def migrate(ctx):
"""Bug 747301 - remove about:plugins, part {index}."""
plugins_ftl = "toolkit/toolkit/about/aboutPlugins.ftl"
addon_ftl = "toolkit/toolkit/about/aboutAddons.ftl"
ctx.add_transforms(
addon_ftl,
addon_ftl,
transforms_from(
"""
plugins-gmp-license-info = {COPY_PATTERN(from_path, "plugins-gmp-license-info")}
plugins-gmp-privacy-info = {COPY_PATTERN(from_path, "plugins-gmp-privacy-info")}
plugins-openh264-name = {COPY_PATTERN(from_path, "plugins-openh264-name")}
plugins-openh264-description = {COPY_PATTERN(from_path, "plugins-openh264-description")}
plugins-widevine-name = {COPY_PATTERN(from_path, "plugins-widevine-name")}
plugins-widevine-description = {COPY_PATTERN(from_path, "plugins-widevine-description")}
""",
from_path=plugins_ftl,
),
)

Просмотреть файл

@ -18,7 +18,7 @@ var tabs1 = [
title: "Firefox",
profile: "profile1",
},
{ uri: "about:plugins", title: "About", profile: "profile1" },
{ uri: "about:robots", title: "About", profile: "profile1" },
{ uri: "about:credits", title: "Credits", profile: "profile1" },
{
uri: "data:text/html,<html><head><title>Mozilla</title></head><body>Mozilla</body></html>",
@ -51,7 +51,7 @@ var tabs3 = [
title: "Firstrun",
profile: "profile1",
},
{ uri: "about:plugins", title: "About", profile: "profile1" },
{ uri: "about:robots", title: "About", profile: "profile1" },
{ uri: "about:credits", title: "Credits", profile: "profile1" },
];

Просмотреть файл

@ -167,16 +167,6 @@
</td>
</tr>
#ifndef ANDROID
<tr class="no-copy">
<th class="column" data-l10n-id="app-basics-enabled-plugins"/>
<td>
<a href="about:plugins">about:plugins</a>
</td>
</tr>
#endif
<tr class="no-copy">
<th class="column" data-l10n-id="app-basics-build-config"/>

Просмотреть файл

@ -41,11 +41,6 @@ toolkit.jar:
content/global/aboutUrlClassifier.js
content/global/aboutUrlClassifier.xhtml
content/global/aboutUrlClassifier.css
#ifndef ANDROID
content/global/plugins.html
content/global/plugins.css
content/global/plugins.js
#endif
* content/global/buildconfig.html
content/global/buildconfig.css
content/global/contentAreaUtils.js

Просмотреть файл

@ -1,74 +0,0 @@
/* 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/. */
/* ===== plugins.css =====================================================
== Styles used by the about:plugins page.
======================================================================= */
div#outside {
text-align: justify;
width: 90%;
margin-inline: 5%;
}
#plugs {
text-align: center;
font-size: xx-large;
font-weight: bold;
}
#noplugs {
font-size: x-large;
font-weight: bold;
}
.plugname {
margin-block: 2em 1em;
font-size: large;
text-align: start;
font-weight: bold;
}
dl {
margin: 0 0 3px;
}
table {
background-color: -moz-Dialog;
color: -moz-DialogText;
font: message-box;
text-align: start;
width: 100%;
border: 1px solid ThreeDShadow;
border-spacing: 0;
}
th, td {
border: none;
padding: 3px;
}
th {
text-align: center;
background-color: Highlight;
color: HighlightText;
}
th + th,
td + td {
border-inline-start: 1px dotted ThreeDShadow;
}
td {
text-align: start;
border-top: 1px dotted ThreeDShadow;
}
th.type, th.suff {
width: 25%;
}
th.desc {
width: 50%;
}

Просмотреть файл

@ -1,33 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!-- 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/. -->
<html>
<head>
<meta
http-equiv="Content-Security-Policy"
content="default-src chrome: resource:; object-src 'none'"
/>
<meta charset="utf-8" />
<meta name="color-scheme" content="light dark" />
<title data-l10n-id="title-label"></title>
<link rel="stylesheet" href="chrome://global/skin/in-content/common.css" />
<link rel="stylesheet" href="chrome://global/content/plugins.css" />
<link rel="localization" href="toolkit/about/aboutPlugins.ftl" />
<script src="chrome://global/content/customElements.js"></script>
<script
type="module"
src="chrome://global/content/elements/moz-support-link.mjs"
></script>
</head>
<body class="main-content">
<div id="outside">
<script
type="application/javascript"
src="chrome://global/content/plugins.js"
></script>
</div>
</body>
</html>

Просмотреть файл

@ -1,131 +0,0 @@
/* 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/. */
/* eslint-env mozilla/remote-page */
"use strict";
/* JavaScript to enumerate and display all installed plug-ins
* First, refresh plugins in case anything has been changed recently in
* prefs: (The "false" argument tells refresh not to reload or activate
* any plug-ins that would be active otherwise. In contrast, one would
* use "true" in the case of ASD instead of restarting)
*/
navigator.plugins.refresh(false);
RPMSendQuery("RequestPlugins", {}).then(aPlugins => {
var fragment = document.createDocumentFragment();
window.ensureCustomElements("moz-message-bar");
// "Installed plugins"
var id, label;
if (aPlugins.length) {
id = "plugs";
label = "installed-plugins-label";
} else {
id = "noplugs";
label = "no-plugins-are-installed-label";
}
var enabledplugins = document.createElement("h1");
enabledplugins.setAttribute("id", id);
document.l10n.setAttributes(enabledplugins, label);
fragment.appendChild(enabledplugins);
let deprecation = document.createElement("moz-message-bar");
let deprecationLink = document.createElement("a", { is: "moz-support-link" });
deprecationLink.setAttribute("support-page", "npapi");
deprecationLink.setAttribute("slot", "support-link");
deprecation.appendChild(deprecationLink);
deprecation.setAttribute("data-l10n-attrs", "message");
document.l10n.setAttributes(deprecation, "deprecation-description2");
fragment.appendChild(deprecation);
var stateNames = {};
["STATE_SOFTBLOCKED", "STATE_BLOCKED"].forEach(function (label) {
stateNames[Ci.nsIBlocklistService[label]] = label;
});
for (var i = 0; i < aPlugins.length; i++) {
var plugin = aPlugins[i];
if (plugin) {
// "Shockwave Flash"
var plugname = document.createElement("h2");
plugname.setAttribute("class", "plugname");
plugname.appendChild(document.createTextNode(plugin.name));
fragment.appendChild(plugname);
var dl = document.createElement("dl");
fragment.appendChild(dl);
// "File: Flash Player.plugin"
var fileDd = document.createElement("dd");
var file = document.createElement("span");
file.setAttribute("data-l10n-name", "file");
file.setAttribute("class", "label");
fileDd.appendChild(file);
document.l10n.setAttributes(fileDd, "file-dd", {
pluginLibraries: plugin.pluginLibraries[0] ?? "",
});
dl.appendChild(fileDd);
// "Path: /usr/lib/mozilla/plugins/libtotem-cone-plugin.so"
var pathDd = document.createElement("dd");
var path = document.createElement("span");
path.setAttribute("data-l10n-name", "path");
path.setAttribute("class", "label");
pathDd.appendChild(path);
document.l10n.setAttributes(pathDd, "path-dd", {
pluginFullPath: plugin.pluginFullpath[0] ?? "",
});
dl.appendChild(pathDd);
// "Version: "
var versionDd = document.createElement("dd");
var version = document.createElement("span");
version.setAttribute("data-l10n-name", "version");
version.setAttribute("class", "label");
versionDd.appendChild(version);
document.l10n.setAttributes(versionDd, "version-dd", {
version: plugin.version ?? "",
});
dl.appendChild(versionDd);
// "State: "
var stateDd = document.createElement("dd");
var state = document.createElement("span");
state.setAttribute("data-l10n-name", "state");
state.setAttribute("label", "state");
stateDd.appendChild(state);
if (plugin.isActive) {
if (plugin.blocklistState in stateNames) {
document.l10n.setAttributes(
stateDd,
"state-dd-enabled-block-list-state",
{ blockListState: stateNames[plugin.blocklistState] }
);
} else {
document.l10n.setAttributes(stateDd, "state-dd-enabled");
}
} else if (plugin.blocklistState in stateNames) {
document.l10n.setAttributes(
stateDd,
"state-dd-disabled-block-list-state",
{ blockListState: stateNames[plugin.blocklistState] }
);
} else {
document.l10n.setAttributes(stateDd, "state-dd-disabled");
}
dl.appendChild(stateDd);
// Plugin Description
var descDd = document.createElement("dd");
descDd.appendChild(document.createTextNode(plugin.description));
dl.appendChild(descDd);
}
}
document.getElementById("outside").appendChild(fragment);
});

Просмотреть файл

@ -548,3 +548,14 @@ details-notification-softblocked-link = More Information
details-notification-gmp-pending2 =
.message = { $name } will be installed shortly.
## Gecko Media Plugins (GMPs)
plugins-gmp-license-info = License information
plugins-gmp-privacy-info = Privacy Information
plugins-openh264-name = OpenH264 Video Codec provided by Cisco Systems, Inc.
plugins-openh264-description = This plugin is automatically installed by Mozilla to comply with the WebRTC specification and to enable WebRTC calls with devices that require the H.264 video codec. Visit https://www.openh264.org/ to view the codec source code and learn more about the implementation.
plugins-widevine-name = Widevine Content Decryption Module provided by Google Inc.
plugins-widevine-description = This plugin enables playback of encrypted media in compliance with the Encrypted Media Extensions specification. Encrypted media is typically used by sites to protect against copying of premium media content. Visit https://www.w3.org/TR/encrypted-media/ for more information on Encrypted Media Extensions.

Просмотреть файл

@ -1,47 +0,0 @@
# 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/.
title-label = About Plugins
installed-plugins-label = Installed plugins
no-plugins-are-installed-label = No installed plugins found
deprecation-description2 =
.message = Missing something? Some plugins are no longer supported.
## The information of plugins
##
## Variables:
## $pluginLibraries: the plugin library
## $pluginFullPath: path of the plugin
## $version: version of the plugin
file-dd = <span data-l10n-name="file">File:</span> { $pluginLibraries }
path-dd = <span data-l10n-name="path">Path:</span> { $pluginFullPath }
version-dd = <span data-l10n-name="version">Version:</span> { $version }
## These strings describe the state of plugins
##
## Variables:
## $blockListState: show some special state of the plugin, such as blocked, outdated
state-dd-enabled = <span data-l10n-name="state">State:</span> Enabled
state-dd-enabled-block-list-state = <span data-l10n-name="state">State:</span> Enabled ({ $blockListState })
state-dd-Disabled = <span data-l10n-name="state">State:</span> Disabled
state-dd-Disabled-block-list-state = <span data-l10n-name="state">State:</span> Disabled ({ $blockListState })
mime-type-label = MIME Type
description-label = Description
suffixes-label = Suffixes
## Gecko Media Plugins (GMPs)
plugins-gmp-license-info = License information
plugins-gmp-privacy-info = Privacy Information
plugins-openh264-name = OpenH264 Video Codec provided by Cisco Systems, Inc.
plugins-openh264-description = This plugin is automatically installed by Mozilla to comply with the WebRTC specification and to enable WebRTC calls with devices that require the H.264 video codec. Visit https://www.openh264.org/ to view the codec source code and learn more about the implementation.
plugins-widevine-name = Widevine Content Decryption Module provided by Google Inc.
plugins-widevine-description = This plugin enables playback of encrypted media in compliance with the Encrypted Media Extensions specification. Encrypted media is typically used by sites to protect against copying of premium media content. Visit https://www.w3.org/TR/encrypted-media/ for more information on Encrypted Media Extensions.

Просмотреть файл

@ -58,7 +58,6 @@ app-basics-profile-dir =
[linux] Profile Directory
*[other] Profile Folder
}
app-basics-enabled-plugins = Enabled Plugins
app-basics-build-config = Build Configuration
app-basics-user-agent = User Agent
app-basics-os = OS

Просмотреть файл

@ -123,9 +123,6 @@ export let RemotePageAccessManager = {
RPMSendAsyncMessage: ["ActivityStream:ContentToMain"],
RPMAddMessageListener: ["ActivityStream:MainToContent"],
},
"about:plugins": {
RPMSendQuery: ["RequestPlugins"],
},
"about:pocket-saved": {
RPMSendAsyncMessage: ["*"],
RPMAddMessageListener: ["*"],

Просмотреть файл

@ -62,8 +62,8 @@ const GMP_PLUGINS = [
ChromeUtils.defineLazyGetter(
lazy,
"pluginsBundle",
() => new Localization(["toolkit/about/aboutPlugins.ftl"], true)
"addonsBundle",
() => new Localization(["toolkit/about/aboutAddons.ftl"], true)
);
ChromeUtils.defineLazyGetter(lazy, "gmpService", () =>
Cc["@mozilla.org/gecko-media-plugin-service;1"].getService(
@ -199,7 +199,7 @@ GMPWrapper.prototype = {
let a = doc.createElementNS(XHTML, "a");
a.href = plugin[urlProp];
a.target = "_blank";
a.textContent = lazy.pluginsBundle.formatValueSync(labelId);
a.textContent = lazy.addonsBundle.formatValueSync(labelId);
if (frag.childElementCount) {
frag.append(
@ -848,8 +848,8 @@ var GMPProvider = {
for (let aPlugin of GMP_PLUGINS) {
let plugin = {
id: aPlugin.id,
name: lazy.pluginsBundle.formatValueSync(aPlugin.name),
description: lazy.pluginsBundle.formatValueSync(aPlugin.description),
name: lazy.addonsBundle.formatValueSync(aPlugin.name),
description: lazy.addonsBundle.formatValueSync(aPlugin.description),
homepageURL: aPlugin.homepageURL,
optionsURL: aPlugin.optionsURL,
wrapper: null,

Просмотреть файл

@ -15,7 +15,6 @@ support-files = [
"discovery/api_response_empty.json",
"discovery/small-1x1.png",
"head.js",
"plugin_test.html",
"redirect.sjs",
"browser_updatessl.json",
"browser_updatessl.json^headers^",

Просмотреть файл

@ -1,7 +0,0 @@
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"></head>
<body>
<object id="test" width=200 height=200 type="application/x-test"></object>
</body>
</html>

Просмотреть файл

@ -17,8 +17,8 @@ const { UpdateUtils } = ChromeUtils.importESModule(
ChromeUtils.defineLazyGetter(
this,
"pluginsBundle",
() => new Localization(["toolkit/about/aboutPlugins.ftl"])
"addonsBundle",
() => new Localization(["toolkit/about/aboutAddons.ftl"])
);
var gMockAddons = new Map();
@ -104,9 +104,9 @@ add_task(async function test_notInstalled() {
let mockAddon = gMockAddons.get(addon.id);
Assert.notEqual(mockAddon, null);
let name = await pluginsBundle.formatValue(mockAddon.nameId);
let name = await addonsBundle.formatValue(mockAddon.nameId);
Assert.equal(addon.name, name);
let description = await pluginsBundle.formatValue(mockAddon.descriptionId);
let description = await addonsBundle.formatValue(mockAddon.descriptionId);
Assert.equal(addon.description, description);
Assert.ok(!addon.isActive);
@ -174,7 +174,7 @@ add_task(async function test_installed() {
Assert.ok(!addon.appDisabled);
Assert.ok(addon.userDisabled);
let name = await pluginsBundle.formatValue(mockAddon.nameId);
let name = await addonsBundle.formatValue(mockAddon.nameId);
Assert.equal(addon.name, name);
Assert.equal(addon.version, TEST_VERSION);

Просмотреть файл

@ -99,7 +99,6 @@
skin/classic/global/icons/page-landscape.svg (../../shared/icons/page-landscape.svg)
skin/classic/global/icons/performance.svg (../../shared/icons/performance.svg)
skin/classic/global/icons/plugin.svg (../../shared/icons/plugin.svg)
skin/classic/global/icons/plugin-blocked.svg (../../shared/icons/plugin-blocked.svg)
skin/classic/global/icons/plus.svg (../../shared/icons/plus.svg)
skin/classic/global/icons/pocket.svg (../../shared/icons/pocket.svg)
skin/classic/global/icons/pocket-outline.svg (../../shared/icons/pocket-outline.svg)

Просмотреть файл

@ -1,7 +0,0 @@
<!-- 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/. -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16" fill="context-fill" fill-opacity="context-fill-opacity">
<path d="m6.897 4.25 6.253 0 .6.6 0 6.253 1.218 1.218c.017-.105.032-.211.032-.321l0-7a2 2 0 0 0-2-2l0-1a1 1 0 0 0-1-1l-2 0a1 1 0 0 0-1 1l0 1-2 0 0-1a1 1 0 0 0-1-1L4 1c-.104 0-.199.03-.294.059L6.897 4.25z"/>
<path d="M14.817 13.933 2.067 1.183a.626.626 0 0 0-.885.885L2.26 3.145A1.998 1.998 0 0 0 1 5l0 7a2 2 0 0 0 2 2l10 0c.036 0 .07-.008.105-.01l.828.828a.626.626 0 0 0 .884-.885zM2.85 12.75l-.6-.6 0-7.3.6-.6.515 0 8.5 8.5-9.015 0z"/>
</svg>

До

Ширина:  |  Высота:  |  Размер: 800 B

Просмотреть файл

@ -23,8 +23,6 @@
"resource:///actors/AboutLoginsParent.jsm": "browser/components/aboutlogins/AboutLoginsParent.jsm",
"resource:///actors/AboutNewTabChild.jsm": "browser/actors/AboutNewTabChild.jsm",
"resource:///actors/AboutNewTabParent.jsm": "browser/actors/AboutNewTabParent.jsm",
"resource:///actors/AboutPluginsChild.jsm": "browser/actors/AboutPluginsChild.jsm",
"resource:///actors/AboutPluginsParent.jsm": "browser/actors/AboutPluginsParent.jsm",
"resource:///actors/AboutPocketChild.jsm": "browser/actors/AboutPocketChild.jsm",
"resource:///actors/AboutPocketParent.jsm": "browser/actors/AboutPocketParent.jsm",
"resource:///actors/AboutPrivateBrowsingChild.jsm": "browser/actors/AboutPrivateBrowsingChild.jsm",

Просмотреть файл

@ -106,9 +106,6 @@ ID02:
- find
- new-tab
- share
# toolkit/locales/en-US/toolkit/about/aboutPlugins.ftl
- file-dd
- path-dd
# toolkit/locales/en-US/toolkit/about/aboutServiceWorkers.ftl
- scope
- waiting
@ -166,10 +163,9 @@ CO01:
# toolkit/locales/en-US/toolkit/about/aboutAddons.ftl
- addon-badge-line3
- recommended-theme-1
- plugins-openh264-description
# toolkit/locales/en-US/toolkit/about/aboutGlean.ftl
- about-glean-description
# toolkit/locales/en-US/toolkit/about/aboutPlugins.ftl
- plugins-openh264-description
# toolkit/locales/en-US/toolkit/about/aboutRights.ftl
- rights-intro-point-1
- rights-intro-point-2