зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
9916e60d78
Коммит
6c143583b8
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче