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
parent 9916e60d78
commit 6c143583b8
39 changed files with 57 additions and 516 deletions

View File

@ -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 {}

View File

@ -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;
}
}

View File

@ -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",

View File

@ -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"

View File

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

View File

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

View File

@ -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>

View File

@ -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

View File

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

View File

@ -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",

View File

@ -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

View File

@ -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)

View File

@ -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"],

View File

@ -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>

Before

Width:  |  Height:  |  Size: 412 B

View File

@ -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

View File

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

View File

@ -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);

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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,
),
)

View File

@ -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" },
];

View File

@ -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"/>

View File

@ -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

View File

@ -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%;
}

View File

@ -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>

View File

@ -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);
});

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

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

View File

@ -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,

View File

@ -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^",

View File

@ -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>

View File

@ -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);

View File

@ -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)

View File

@ -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>

Before

Width:  |  Height:  |  Size: 800 B

View File

@ -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",

View File

@ -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