--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -659,18 +659,16 @@ pref("accessibility.typeaheadfind.flashB
// plugin finder service url
pref("pfs.datasource.url", "https://pfs.mozilla.org/plugins/PluginFinderService.php?mimetype=%PLUGIN_MIMETYPE%&appID=%APP_ID%&appVersion=%APP_VERSION%&clientOS=%CLIENT_OS%&chromeLocale=%CHROME_LOCALE%&appRelease=%APP_RELEASE%");
pref("plugins.update.url", "https://www.mozilla.org/%LOCALE%/plugincheck/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_campaign=plugincheck-update");
pref("plugins.update.notifyUser", false);
pref("plugins.click_to_play", true);
-pref("plugins.hideMissingPluginsNotification", false);
-
pref("plugin.default.state", 1);
// Plugins bundled in XPIs are enabled by default.
pref("plugin.defaultXpi.state", 2);
// Flash is enabled by default, and Java is click-to-activate by default on
// all channels.
pref("plugin.state.flash", 2);
@@ -840,19 +838,16 @@ pref("plugin.state.np_prsnl", 2);
#endif
#ifdef XP_MACOSX
pref("plugin.state.personalplugin", 2);
#endif
#ifdef UNIX_BUT_NOT_MAC
pref("plugin.state.libplugins", 2);
#endif
-// display door hanger if flash not installed
-pref("plugins.notifyMissingFlash", true);
-
#ifdef XP_MACOSX
pref("browser.preferences.animateFadeIn", true);
#else
pref("browser.preferences.animateFadeIn", false);
#endif
// Toggles between the two Preferences implementations, pop-up window and in-content
#ifdef NIGHTLY_BUILD
--- a/browser/base/content/browser-plugins.js
+++ b/browser/base/content/browser-plugins.js
@@ -1,16 +1,14 @@
# -*- 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/.
var gPluginHandler = {
- PREF_NOTIFY_MISSING_FLASH: "plugins.notifyMissingFlash",
- PREF_HIDE_MISSING_PLUGINS_NOTIFICATION: "plugins.hideMissingPluginsNotification",
PREF_SESSION_PERSIST_MINUTES: "plugin.sessionPermissionNow.intervalInMinutes",
PREF_PERSISTENT_DAYS: "plugin.persistentPermissionAlways.intervalInDays",
MESSAGES: [
"PluginContent:ShowClickToPlayNotification",
"PluginContent:RemoveNotification",
"PluginContent:UpdateHiddenPluginUI",
"PluginContent:HideNotificationBar",
"PluginContent:ShowInstallNotification",
@@ -88,104 +86,16 @@ var gPluginHandler = {
#ifdef MOZ_CRASHREPORTER
get CrashSubmit() {
delete this.CrashSubmit;
Cu.import("resource://gre/modules/CrashSubmit.jsm", this);
return this.CrashSubmit;
},
#endif
- supportedPlugins: {
- "mimetypes": {
- "application/x-shockwave-flash": "flash",
- "application/futuresplash": "flash",
- "application/x-java-.*": "java",
- "application/x-director": "shockwave",
- "application/(sdp|x-(mpeg|rtsp|sdp))": "quicktime",
- "audio/(3gpp(2)?|AMR|aiff|basic|mid(i)?|mp4|mpeg|vnd\.qcelp|wav|x-(aiff|m4(a|b|p)|midi|mpeg|wav))": "quicktime",
- "image/(pict|png|tiff|x-(macpaint|pict|png|quicktime|sgi|targa|tiff))": "quicktime",
- "video/(3gpp(2)?|flc|mp4|mpeg|quicktime|sd-video|x-mpeg)": "quicktime",
- "application/x-unknown": "test",
- },
-
- "plugins": {
- "flash": {
- "displayName": "Flash",
- "installWINNT": true,
- "installDarwin": true,
- "installLinux": true,
- },
- "java": {
- "displayName": "Java",
- "installWINNT": true,
- "installDarwin": true,
- "installLinux": true,
- },
- "shockwave": {
- "displayName": "Shockwave",
- "installWINNT": true,
- "installDarwin": true,
- },
- "quicktime": {
- "displayName": "QuickTime",
- "installWINNT": true,
- },
- "test": {
- "displayName": "Test plugin",
- "installWINNT": true,
- "installLinux": true,
- "installDarwin": true,
- }
- }
- },
-
- nameForSupportedPlugin: function (aMimeType) {
- for (let type in this.supportedPlugins.mimetypes) {
- let re = new RegExp(type);
- if (re.test(aMimeType)) {
- return this.supportedPlugins.mimetypes[type];
- }
- }
- return null;
- },
-
- canInstallThisMimeType: function (aMimeType) {
- let os = Services.appinfo.OS;
- let pluginName = this.nameForSupportedPlugin(aMimeType);
- if (pluginName && "install" + os in this.supportedPlugins.plugins[pluginName]) {
- return true;
- }
- return false;
- },
-
- newPluginInstalled : function(event) {
- // browser elements are anonymous so we can't just use target.
- var browser = event.originalTarget;
- // clear the plugin list, now that at least one plugin has been installed
- browser.missingPlugins = null;
-
- var notificationBox = gBrowser.getNotificationBox(browser);
- var notification = notificationBox.getNotificationWithValue("missing-plugins");
- if (notification)
- notificationBox.removeNotification(notification);
-
- // reload the browser to make the new plugin show.
- browser.reload();
- },
-
- // Callback for user clicking on a missing (unsupported) plugin.
- installSinglePlugin: function (pluginInfo) {
- var missingPlugins = new Map();
- missingPlugins.set(pluginInfo.mimetype, pluginInfo);
-
- openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul",
- "PFSWindow", "chrome,centerscreen,resizable=yes",
- {plugins: missingPlugins, browser: gBrowser.selectedBrowser});
- },
-
// Callback for user clicking on a disabled plugin
managePlugins: function () {
BrowserOpenAddonsMgr("addons://list/plugin");
},
// Callback for user clicking on the link in a click-to-play plugin
// (where the plugin has an update)
openPluginUpdatePage: function () {
@@ -207,76 +117,16 @@ var gPluginHandler = {
browser.reload();
},
// Callback for user clicking the help icon
openHelpPage: function () {
openHelpLink("plugin-crashed", false);
},
- showInstallNotification: function (browser, pluginInfo) {
- let hideMissingPluginsNotification =
- Services.prefs.getBoolPref(this.PREF_HIDE_MISSING_PLUGINS_NOTIFICATION);
- if (hideMissingPluginsNotification) {
- return false;
- }
-
- if (!browser.missingPlugins)
- browser.missingPlugins = new Map();
-
- browser.missingPlugins.set(pluginInfo.mimetype, pluginInfo);
-
- // only show notification for small subset of plugins
- let mimetype = pluginInfo.mimetype.split(";")[0];
- if (!this.canInstallThisMimeType(mimetype))
- return false;
-
- let pluginIdentifier = this.nameForSupportedPlugin(mimetype);
- if (!pluginIdentifier)
- return false;
-
- let displayName = this.supportedPlugins.plugins[pluginIdentifier].displayName;
-
- // don't show several notifications
- let notification = PopupNotifications.getNotification("plugins-not-found", browser);
- if (notification)
- return true;
-
- let messageString = gNavigatorBundle.getString("installPlugin.message");
- let mainAction = {
- label: gNavigatorBundle.getFormattedString("installPlugin.button.label",
- [displayName]),
- accessKey: gNavigatorBundle.getString("installPlugin.button.accesskey"),
- callback: function () {
- openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul",
- "PFSWindow", "chrome,centerscreen,resizable=yes",
- {plugins: browser.missingPlugins, browser: browser});
- }
- };
- let secondaryActions = null;
- let options = { dismissed: true };
-
- let showForFlash = Services.prefs.getBoolPref(this.PREF_NOTIFY_MISSING_FLASH);
- if (pluginIdentifier == "flash" && showForFlash) {
- let prefNotifyMissingFlash = this.PREF_NOTIFY_MISSING_FLASH;
- secondaryActions = [{
- label: gNavigatorBundle.getString("installPlugin.ignoreButton.label"),
- accessKey: gNavigatorBundle.getString("installPlugin.ignoreButton.accesskey"),
- callback: function () {
- Services.prefs.setBoolPref(prefNotifyMissingFlash, false);
- }
- }];
- options.dismissed = false;
- }
- PopupNotifications.show(browser, "plugins-not-found",
- messageString, "plugin-install-notification-icon",
- mainAction, secondaryActions, options);
- return true;
- },
-
_clickToPlayNotificationEventCallback: function PH_ctpEventCallback(event) {
if (event == "showing") {
Services.telemetry.getHistogramById("PLUGINS_NOTIFICATION_SHOWN")
.add(!this.options.primaryPlugin);
// Histograms always start at 0, even though our data starts at 1
let histogramCount = this.options.pluginData.size - 1;
if (histogramCount > 4) {
histogramCount = 4;
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -769,18 +769,16 @@ function gKeywordURIFixup({ target: brow
var gBrowserInit = {
delayedStartupFinished: false,
onLoad: function() {
var mustLoadSidebar = false;
gBrowser.addEventListener("DOMUpdatePageReport", gPopupBlockerObserver, false);
- gBrowser.addEventListener("NewPluginInstalled", gPluginHandler.newPluginInstalled, true);
-
Services.obs.addObserver(gPluginHandler.pluginCrashed, "plugin-crashed", false);
window.addEventListener("AppCommand", HandleAppCommandEvent, true);
// These routines add message listeners. They must run before
// loading the frame script to ensure that we don't miss any
// message sent between when the frame script is loaded and when
// the listener is registered.
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -718,17 +718,16 @@
<image id="identity-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="geo-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="addons-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="indexedDB-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="password-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="plugins-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button"/>
- <image id="plugin-install-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="bad-content-blocked-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="bad-content-unblocked-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="webRTC-shareMicrophone-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="webRTC-sharingMicrophone-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="webRTC-shareScreen-notification-icon" class="notification-anchor-icon" role="button"/>
<image id="webRTC-sharingScreen-notification-icon" class="notification-anchor-icon" role="button"/>
--- a/browser/base/content/tabbrowser.xml
+++ b/browser/base/content/tabbrowser.xml
@@ -757,20 +757,16 @@
// failed URI (particularly for SSL errors). However, don't clear the value
// if the error page's URI is about:blank, because that causes complete
// loss of urlbar contents for invalid URI errors (see bug 867957).
if (this.mBrowser.userTypedClear > 0 ||
((aFlags & Ci.nsIWebProgressListener.LOCATION_CHANGE_ERROR_PAGE) &&
aLocation.spec != "about:blank"))
this.mBrowser.userTypedValue = null;
- // Clear out the missing plugins list since it's related to the
- // previous location.
- this.mBrowser.missingPlugins = null;
-
if (this.mTabBrowser.isFindBarInitialized(this.mTab)) {
let findBar = this.mTabBrowser.getFindBar(this.mTab);
// Close the Find toolbar if we're in old-style TAF mode
if (findBar.findMode != findBar.FIND_NORMAL)
findBar.close();
// fix bug 253793 - turn off highlight when page changes
--- a/browser/base/content/test/plugins/browser_pluginnotification.js
+++ b/browser/base/content/test/plugins/browser_pluginnotification.js
@@ -56,17 +56,16 @@ TabOpenListener.prototype = {
function test() {
waitForExplicitFinish();
SimpleTest.requestCompleteLog();
requestLongerTimeout(2);
registerCleanupFunction(function() {
clearAllPluginPermissions();
Services.prefs.clearUserPref("extensions.blocklist.suppressUI");
- Services.prefs.clearUserPref("plugins.hideMissingPluginsNotification");
});
Services.prefs.setBoolPref("extensions.blocklist.suppressUI", true);
setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY);
setTestPluginEnabledState(Ci.nsIPluginTag.STATE_CLICKTOPLAY, "Second Test Plug-in");
var newTab = gBrowser.addTab();
gBrowser.selectedTab = newTab;
@@ -107,58 +106,42 @@ function runAfterPluginBindingAttached(f
}
elems[0].clientTop;
executeSoon(func);
};
}
// Tests a page with an unknown plugin in it.
function test1a() {
- ok(PopupNotifications.getNotification("plugins-not-found", gTestBrowser), "Test 1a, Should have displayed the missing plugin notification");
- ok(gTestBrowser.missingPlugins, "Test 1a, Should be a missing plugin list");
- ok(gTestBrowser.missingPlugins.has("application/x-unknown"), "Test 1a, Should know about application/x-unknown");
- ok(!gTestBrowser.missingPlugins.has("application/x-test"), "Test 1a, Should not know about application/x-test");
-
var pluginNode = gTestBrowser.contentDocument.getElementById("unknown");
ok(pluginNode, "Test 1a, Found plugin in page");
var objLoadingContent = pluginNode.QueryInterface(Ci.nsIObjectLoadingContent);
is(objLoadingContent.pluginFallbackType, Ci.nsIObjectLoadingContent.PLUGIN_UNSUPPORTED, "Test 1a, plugin fallback type should be PLUGIN_UNSUPPORTED");
- Services.prefs.setBoolPref("plugins.hideMissingPluginsNotification", true);
prepareTest(runAfterPluginBindingAttached(test1b), gTestRoot + "plugin_unknown.html");
}
function test1b() {
- ok(!PopupNotifications.getNotification("plugins-not-found", gTestBrowser), "Test 1b, Should not have displayed the missing plugin notification");
- ok(!gTestBrowser.missingPlugins, "Test 1b, Should not be a missing plugin list");
- Services.prefs.clearUserPref("plugins.hideMissingPluginsNotification");
-
var plugin = getTestPlugin();
ok(plugin, "Test 1b, Should have a test plugin");
plugin.enabledState = Ci.nsIPluginTag.STATE_ENABLED;
prepareTest(runAfterPluginBindingAttached(test2), gTestRoot + "plugin_test.html");
}
// Tests a page with a working plugin in it.
function test2() {
- ok(!PopupNotifications.getNotification("plugins-not-found", gTestBrowser), "Test 2, Should not have displayed the missing plugin notification");
- ok(!gTestBrowser.missingPlugins, "Test 2, Should not be a missing plugin list");
-
var plugin = getTestPlugin();
ok(plugin, "Should have a test plugin");
plugin.enabledState = Ci.nsIPluginTag.STATE_DISABLED;
prepareTest(runAfterPluginBindingAttached(test3), gTestRoot + "plugin_test.html");
}
// Tests a page with a disabled plugin in it.
function test3() {
- ok(!PopupNotifications.getNotification("plugins-not-found", gTestBrowser), "Test 3, Should not have displayed the missing plugin notification");
- ok(!gTestBrowser.missingPlugins, "Test 3, Should not be a missing plugin list");
-
new TabOpenListener("about:addons", test4, prepareTest5);
var pluginNode = gTestBrowser.contentDocument.getElementById("test");
ok(pluginNode, "Test 3, Found plugin in page");
var objLoadingContent = pluginNode.QueryInterface(Ci.nsIObjectLoadingContent);
is(objLoadingContent.pluginFallbackType, Ci.nsIObjectLoadingContent.PLUGIN_DISABLED, "Test 3, plugin fallback type should be PLUGIN_DISABLED");
var manageLink = gTestBrowser.contentDocument.getAnonymousElementByAttribute(pluginNode, "anonid", "managePluginsLink");
ok(manageLink, "Test 3, found 'manage' link in plugin-problem binding");
@@ -180,64 +163,50 @@ function prepareTest5() {
info("prepareTest5 callback");
prepareTest(runAfterPluginBindingAttached(test5), gTestRoot + "plugin_test.html");
});
}
// Tests a page with a blocked plugin in it.
function test5() {
info("test5");
- ok(!PopupNotifications.getNotification("plugins-not-found", gTestBrowser), "Test 5, Should not have displayed the missing plugin notification");
let notification = PopupNotifications.getNotification("click-to-play-plugins");
ok(notification, "Test 5: There should be a plugin notification for blocked plugins");
ok(notification.dismissed, "Test 5: The plugin notification should be dismissed by default");
notification.reshow();
is(notification.options.pluginData.size, 1, "Test 5: Only the blocked plugin should be present in the notification");
ok(PopupNotifications.panel.firstChild._buttonContainer.hidden, "Part 5: The blocked plugins notification should not have any buttons visible.");
- ok(!gTestBrowser.missingPlugins, "Test 5, Should not be a missing plugin list");
var pluginNode = gTestBrowser.contentDocument.getElementById("test");
ok(pluginNode, "Test 5, Found plugin in page");
var objLoadingContent = pluginNode.QueryInterface(Ci.nsIObjectLoadingContent);
is(objLoadingContent.pluginFallbackType, Ci.nsIObjectLoadingContent.PLUGIN_BLOCKLISTED, "Test 5, plugin fallback type should be PLUGIN_BLOCKLISTED");
prepareTest(runAfterPluginBindingAttached(test6), gTestRoot + "plugin_both.html");
}
// Tests a page with a blocked and unknown plugin in it.
function test6() {
- ok(PopupNotifications.getNotification("plugins-not-found", gTestBrowser), "Test 6, Should have displayed the missing plugin notification");
- ok(gTestBrowser.missingPlugins, "Test 6, Should be a missing plugin list");
- ok(gTestBrowser.missingPlugins.has("application/x-unknown"), "Test 6, Should know about application/x-unknown");
- ok(!gTestBrowser.missingPlugins.has("application/x-test"), "Test 6, application/x-test should not be a missing plugin");
-
prepareTest(runAfterPluginBindingAttached(test7), gTestRoot + "plugin_both2.html");
}
// Tests a page with a blocked and unknown plugin in it (alternate order to above).
function test7() {
- ok(PopupNotifications.getNotification("plugins-not-found", gTestBrowser), "Test 7, Should have displayed the missing plugin notification");
- ok(gTestBrowser.missingPlugins, "Test 7, Should be a missing plugin list");
- ok(gTestBrowser.missingPlugins.has("application/x-unknown"), "Test 7, Should know about application/x-unknown");
- ok(!gTestBrowser.missingPlugins.has("application/x-test"), "Test 7, application/x-test should not be a missing plugin");
-
var plugin = getTestPlugin();
plugin.enabledState = Ci.nsIPluginTag.STATE_CLICKTOPLAY;
getTestPlugin("Second Test Plug-in").enabledState = Ci.nsIPluginTag.STATE_CLICKTOPLAY;
setAndUpdateBlocklist(gHttpTestRoot + "blockNoPlugins.xml", function() {
prepareTest(runAfterPluginBindingAttached(test8), gTestRoot + "plugin_test.html");
});
}
// Tests a page with a working plugin that is click-to-play
function test8() {
- ok(!PopupNotifications.getNotification("plugins-not-found", gTestBrowser), "Test 8, Should not have displayed the missing plugin notification");
- ok(!gTestBrowser.missingPlugins, "Test 8, Should not be a missing plugin list");
ok(PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser), "Test 8, Should have a click-to-play notification");
var pluginNode = gTestBrowser.contentDocument.getElementById("test");
ok(pluginNode, "Test 8, Found plugin in page");
var objLoadingContent = pluginNode.QueryInterface(Ci.nsIObjectLoadingContent);
is(objLoadingContent.pluginFallbackType, Ci.nsIObjectLoadingContent.PLUGIN_CLICK_TO_PLAY, "Test 8, plugin fallback type should be PLUGIN_CLICK_TO_PLAY");
prepareTest(runAfterPluginBindingAttached(test11a), gTestRoot + "plugin_test3.html");
@@ -344,18 +313,16 @@ function test15() {
// Test 16 removed
// Tests that mContentType is used for click-to-play plugins, and not the
// inspected type.
function test17() {
var clickToPlayNotification = PopupNotifications.getNotification("click-to-play-plugins", gTestBrowser);
ok(clickToPlayNotification, "Test 17, Should have a click-to-play notification");
- var missingNotification = PopupNotifications.getNotification("missing-plugins", gTestBrowser);
- ok(!missingNotification, "Test 17, Should not have a missing plugin notification");
setAndUpdateBlocklist(gHttpTestRoot + "blockPluginVulnerableUpdatable.xml",
function() {
prepareTest(runAfterPluginBindingAttached(test18a), gHttpTestRoot + "plugin_test.html");
});
}
// Tests a vulnerable, updatable plugin
--- a/browser/base/content/test/plugins/browser_pluginplaypreview.js
+++ b/browser/base/content/test/plugins/browser_pluginplaypreview.js
@@ -183,17 +183,16 @@ function prepareTest(nextTest, url, skip
gNextTest = nextTest;
gNextTestSkip = skip;
gTestBrowser.contentWindow.location = url;
}
// Tests a page with normal play preview registration (1/2)
function test1a() {
var notificationBox = gBrowser.getNotificationBox(gTestBrowser);
- ok(!notificationBox.getNotificationWithValue("missing-plugins"), "Test 1a, Should not have displayed the missing plugin notification");
ok(!notificationBox.getNotificationWithValue("blocked-plugins"), "Test 1a, Should not have displayed the blocked plugin notification");
var pluginInfo = getTestPlugin();
ok(pluginInfo, "Should have a test plugin");
var doc = gTestBrowser.contentDocument;
var plugin = doc.getElementById("test");
var objLoadingContent = plugin.QueryInterface(Ci.nsIObjectLoadingContent);
--- a/browser/base/content/test/plugins/browser_pluginplaypreview2.js
+++ b/browser/base/content/test/plugins/browser_pluginplaypreview2.js
@@ -85,17 +85,16 @@ function prepareTest(nextTest, url, skip
gNextTest = nextTest;
gNextTestSkip = skip;
gTestBrowser.contentWindow.location = url;
}
// Tests a page with normal play preview registration (1/2)
function test1a() {
var notificationBox = gBrowser.getNotificationBox(gTestBrowser);
- ok(!notificationBox.getNotificationWithValue("missing-plugins"), "Test 1a, Should not have displayed the missing plugin notification");
ok(!notificationBox.getNotificationWithValue("blocked-plugins"), "Test 1a, Should not have displayed the blocked plugin notification");
var pluginInfo = getTestPlugin();
ok(pluginInfo, "Should have a test plugin");
var doc = gTestBrowser.contentDocument;
var plugin = doc.getElementById("test");
var objLoadingContent = plugin.QueryInterface(Ci.nsIObjectLoadingContent);
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -1475,21 +1475,17 @@ BrowserGlue.prototype = {
currentset = currentset.replace(/(^|,)bookmarks-menu-button-container($|,)/,
"$1bookmarks-menu-button$2");
xulStore.setValue(BROWSER_DOCURL, "nav-bar", "currentset", currentset);
}
}
}
if (currentUIVersion < 13) {
- try {
- if (Services.prefs.getBoolPref("plugins.hide_infobar_for_missing_plugin"))
- Services.prefs.setBoolPref("plugins.notifyMissingFlash", false);
- }
- catch (ex) {}
+ /* Obsolete */
}
if (currentUIVersion < 14) {
// DOM Storage doesn't specially handle about: pages anymore.
let path = OS.Path.join(OS.Constants.Path.profileDir,
"chromeappsstore.sqlite");
OS.File.remove(path);
}
--- a/browser/locales/en-US/chrome/browser/browser.properties
+++ b/browser/locales/en-US/chrome/browser/browser.properties
@@ -98,23 +98,16 @@ popupWarningDontShowFromMessage=Don't sh
popupWarningDontShowFromLocationbar=Don't show info bar when pop-ups are blocked
popupShowPopupPrefix=Show '%S'
# Bad Content Blocker Doorhanger Notification
# %S is brandShortName
badContentBlocked.blocked.message=%S is blocking content on this page.
badContentBlocked.notblocked.message=%S is not blocking any content on this page.
-# missing plugin installer
-installPlugin.message = Would you like to install the plugin needed to display the media on this page?
-installPlugin.button.label=Install %S
-installPlugin.button.accesskey=I
-installPlugin.ignoreButton.label=Don't ask again
-installPlugin.ignoreButton.accesskey=N
-
crashedpluginsMessage.title=The %S plugin has crashed.
crashedpluginsMessage.reloadButton.label=Reload page
crashedpluginsMessage.reloadButton.accesskey=R
crashedpluginsMessage.submitButton.label=Submit a crash report
crashedpluginsMessage.submitButton.accesskey=S
crashedpluginsMessage.learnMore=Learn More…
# Keyword fixup messages
--- a/browser/modules/PluginContent.jsm
+++ b/browser/modules/PluginContent.jsm
@@ -328,30 +328,17 @@ PluginContent.prototype = {
let shouldShowNotification = false;
switch (eventType) {
case "PluginCrashed":
this.pluginInstanceCrashed(plugin, event);
break;
case "PluginNotFound": {
- let installable = this.showInstallNotification(plugin, eventType);
- let contentWindow = plugin.ownerDocument.defaultView;
- // For non-object plugin tags, register a click handler to install the
- // plugin. Object tags can, and often do, deal with that themselves,
- // so don't stomp on the page developers toes.
- if (installable && !(plugin instanceof contentWindow.HTMLObjectElement)) {
- let installStatus = this.getPluginUI(plugin, "installStatus");
- installStatus.setAttribute("installable", "true");
- let iconStatus = this.getPluginUI(plugin, "icon");
- iconStatus.setAttribute("installable", "true");
-
- let installLink = this.getPluginUI(plugin, "installPluginLink");
- this.addLinkClickCallback(installLink, "installSinglePlugin", plugin);
- }
+ /* NOP */
break;
}
case "PluginBlocklisted":
case "PluginOutdated":
shouldShowNotification = true;
break;
@@ -466,23 +453,16 @@ PluginContent.prototype = {
return;
if (playPlugin)
objLoadingContent.playPlugin();
else
objLoadingContent.cancelPlayPreview();
},
- // Callback for user clicking on a missing (unsupported) plugin.
- installSinglePlugin: function (plugin) {
- this.global.sendAsyncMessage("PluginContent:InstallSinglePlugin", {
- pluginInfo: this._getPluginInfo(plugin),
- });
- },
-
// Forward a link click callback to the chrome process.
forwardCallback: function (name) {
this.global.sendAsyncMessage("PluginContent:LinkClickCallback", { name: name });
},
#ifdef MOZ_CRASHREPORTER
submitReport: function submitReport(pluginDumpID, browserDumpID, plugin) {
let keyVals = {};
@@ -501,23 +481,16 @@ PluginContent.prototype = {
});
},
#endif
reloadPage: function () {
this.global.content.location.reload();
},
- showInstallNotification: function (plugin) {
- let [shown] = this.global.sendSyncMessage("PluginContent:ShowInstallNotification", {
- pluginInfo: this._getPluginInfo(plugin),
- });
- return shown;
- },
-
// Event listener for click-to-play plugins.
_handleClickToPlayEvent: function (plugin) {
let doc = plugin.ownerDocument;
let pluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
let objLoadingContent = plugin.QueryInterface(Ci.nsIObjectLoadingContent);
// guard against giving pluginHost.getPermissionStringForType a type
// not associated with any known plugin
if (!this.isKnownPlugin(objLoadingContent))
--- a/browser/themes/linux/browser.css
+++ b/browser/themes/linux/browser.css
@@ -1127,20 +1127,16 @@ toolbarbutton[sdk-button="true"][cui-are
width: 32px;
height: 32px;
}
.popup-notification-icon[popupid="click-to-play-plugins"] {
list-style-image: url(chrome://mozapps/skin/plugins/pluginBlocked-64.png);
}
-.popup-notification-icon[popupid="plugins-not-found"] {
- list-style-image: url(chrome://browser/skin/pluginInstall-64.png);
-}
-
.popup-notification-icon[popupid="web-notifications"] {
list-style-image: url(chrome://browser/skin/notification-64.png);
}
.addon-progress-description {
width: 350px;
max-width: 350px;
}
@@ -1296,20 +1292,16 @@ toolbarbutton[sdk-button="true"][cui-are
#plugins-notification-icon:hover {
-moz-image-region: rect(0, 32px, 16px, 16px);
}
#plugins-notification-icon:active {
-moz-image-region: rect(0, 48px, 16px, 32px);
}
-#plugin-install-notification-icon {
- list-style-image: url(chrome://browser/skin/pluginInstall-16.png);
-}
-
#notification-popup-box[hidden] {
/* Override display:none to make the pluginBlockedNotification animation work
when showing the notification repeatedly. */
display: -moz-box;
visibility: collapse;
}
#plugins-notification-icon.plugin-blocked[showing] {
--- a/browser/themes/linux/jar.mn
+++ b/browser/themes/linux/jar.mn
@@ -49,18 +49,16 @@ browser.jar:
skin/classic/browser/bad-content-unblocked-64.png
skin/classic/browser/monitor.png
skin/classic/browser/monitor_16-10.png
skin/classic/browser/notification-16.png
skin/classic/browser/notification-64.png
* skin/classic/browser/pageInfo.css
skin/classic/browser/pageInfo.png
skin/classic/browser/page-livemarks.png
- skin/classic/browser/pluginInstall-16.png
- skin/classic/browser/pluginInstall-64.png
skin/classic/browser/pointerLock-16.png
skin/classic/browser/pointerLock-64.png
skin/classic/browser/Privacy-16.png
skin/classic/browser/privatebrowsing-mask.png
skin/classic/browser/reload-stop-go.png
skin/classic/browser/searchbar.css
skin/classic/browser/Secure.png
skin/classic/browser/Security-broken.png
deleted file mode 100644
index a72a2839c99b5ff619a7cf83d5fb196f1edf5864..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 6a41aa05963f69c5edcee028d34443ab3e1a31f3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
--- a/browser/themes/osx/browser.css
+++ b/browser/themes/osx/browser.css
@@ -3635,25 +3635,16 @@ toolbarbutton.chevron > .toolbarbutton-m
-moz-image-region: rect(0, 64px, 32px, 32px);
}
#plugins-notification-icon:active {
-moz-image-region: rect(0, 96px, 32px, 64px);
}
}
-#plugin-install-notification-icon {
- list-style-image: url(chrome://browser/skin/pluginInstall-16.png);
-}
-@media (min-resolution: 2dppx) {
- #plugin-install-notification-icon {
- list-style-image: url(chrome://browser/skin/pluginInstall-16@2x.png);
- }
-}
-
#notification-popup-box[hidden] {
/* Override display:none to make the pluginBlockedNotification animation work
when showing the notification repeatedly. */
display: -moz-box;
visibility: collapse;
}
#plugins-notification-icon.plugin-blocked[showing] {
@@ -3969,25 +3960,16 @@ menulist.translate-infobar-element > .me
width: 32px;
height: 32px;
}
.popup-notification-icon[popupid="click-to-play-plugins"] {
list-style-image: url(chrome://mozapps/skin/plugins/pluginBlocked-64.png);
}
-.popup-notification-icon[popupid="plugins-not-found"] {
- list-style-image: url(chrome://browser/skin/pluginInstall-64.png);
-}
-@media (min-resolution: 2dppx) {
- .popup-notification-icon[popupid="plugins-not-found"] {
- list-style-image: url(chrome://browser/skin/pluginInstall-64\@2x.png);
- }
-}
-
.addon-progress-description {
width: 350px;
max-width: 350px;
}
.popup-progress-label,
.popup-progress-meter {
-moz-margin-start: 0;
--- a/browser/themes/osx/jar.mn
+++ b/browser/themes/osx/jar.mn
@@ -77,20 +77,16 @@ browser.jar:
skin/classic/browser/panel-expander-closed.png
skin/classic/browser/panel-expander-closed@2x.png
skin/classic/browser/panel-expander-open.png
skin/classic/browser/panel-expander-open@2x.png
skin/classic/browser/panel-plus-sign.png
skin/classic/browser/page-livemarks.png
skin/classic/browser/page-livemarks@2x.png
skin/classic/browser/pageInfo.css
- skin/classic/browser/pluginInstall-16.png
- skin/classic/browser/pluginInstall-16@2x.png
- skin/classic/browser/pluginInstall-64.png
- skin/classic/browser/pluginInstall-64@2x.png
skin/classic/browser/pointerLock-16.png
skin/classic/browser/pointerLock-16@2x.png
skin/classic/browser/pointerLock-64.png
skin/classic/browser/pointerLock-64@2x.png
skin/classic/browser/Privacy-16.png
skin/classic/browser/privatebrowsing-mask.png
skin/classic/browser/privatebrowsing-mask@2x.png
skin/classic/browser/privatebrowsing-mask-short.png
deleted file mode 100644
index a72a2839c99b5ff619a7cf83d5fb196f1edf5864..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 6d064a3153455783dbddec50d824f5ccd46f7e81..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 6a41aa05963f69c5edcee028d34443ab3e1a31f3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 564641bf6c21ce354fc6aaef598bcad284489bba..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
--- a/browser/themes/windows/browser.css
+++ b/browser/themes/windows/browser.css
@@ -2137,20 +2137,16 @@ toolbarbutton.bookmark-item[dragover="tr
width: 32px;
height: 32px;
}
.popup-notification-icon[popupid="click-to-play-plugins"] {
list-style-image: url(chrome://mozapps/skin/plugins/pluginBlocked-64.png);
}
-.popup-notification-icon[popupid="plugins-not-found"] {
- list-style-image: url(chrome://browser/skin/pluginInstall-64.png);
-}
-
.popup-notification-icon[popupid="web-notifications"] {
list-style-image: url(chrome://browser/skin/notification-64.png);
}
.addon-progress-description {
width: 350px;
max-width: 350px;
}
@@ -2308,20 +2304,16 @@ toolbarbutton.bookmark-item[dragover="tr
#plugins-notification-icon:hover {
-moz-image-region: rect(0, 32px, 16px, 16px);
}
#plugins-notification-icon:active {
-moz-image-region: rect(0, 48px, 16px, 32px);
}
-#plugin-install-notification-icon {
- list-style-image: url(chrome://browser/skin/pluginInstall-16.png);
-}
-
#notification-popup-box[hidden] {
/* Override display:none to make the pluginBlockedNotification animation work
when showing the notification repeatedly. */
display: -moz-box;
visibility: collapse;
}
#plugins-notification-icon.plugin-blocked[showing] {
--- a/browser/themes/windows/jar.mn
+++ b/browser/themes/windows/jar.mn
@@ -59,18 +59,16 @@ browser.jar:
skin/classic/browser/bad-content-unblocked-64.png
skin/classic/browser/monitor.png
skin/classic/browser/monitor_16-10.png
skin/classic/browser/notification-16.png
skin/classic/browser/notification-64.png
skin/classic/browser/pageInfo.css
skin/classic/browser/pageInfo.png
skin/classic/browser/page-livemarks.png (feeds/feedIcon16.png)
- skin/classic/browser/pluginInstall-16.png
- skin/classic/browser/pluginInstall-64.png
skin/classic/browser/pointerLock-16.png
skin/classic/browser/pointerLock-64.png
skin/classic/browser/Privacy-16.png
skin/classic/browser/Privacy-32.png
skin/classic/browser/Privacy-48.png
skin/classic/browser/privatebrowsing-mask-tabstrip-XPVista7.png
skin/classic/browser/privatebrowsing-mask-titlebar-XPVista7.png
skin/classic/browser/privatebrowsing-mask-titlebar-XPVista7-tall.png
@@ -482,18 +480,16 @@ browser.jar:
skin/classic/aero/browser/bad-content-unblocked-64.png
skin/classic/aero/browser/monitor.png
skin/classic/aero/browser/monitor_16-10.png
skin/classic/aero/browser/notification-16.png
skin/classic/aero/browser/notification-64.png
skin/classic/aero/browser/pageInfo.css
skin/classic/aero/browser/pageInfo.png (pageInfo-aero.png)
skin/classic/aero/browser/page-livemarks.png (feeds/feedIcon16-aero.png)
- skin/classic/aero/browser/pluginInstall-16.png
- skin/classic/aero/browser/pluginInstall-64.png
skin/classic/aero/browser/pointerLock-16.png
skin/classic/aero/browser/pointerLock-64.png
skin/classic/aero/browser/Privacy-16.png (Privacy-16-aero.png)
skin/classic/aero/browser/Privacy-32.png (Privacy-32-aero.png)
skin/classic/aero/browser/privatebrowsing-mask-tabstrip.png
skin/classic/aero/browser/privatebrowsing-mask-tabstrip-XPVista7.png
skin/classic/aero/browser/privatebrowsing-mask-titlebar.png
skin/classic/aero/browser/privatebrowsing-mask-titlebar-XPVista7.png
deleted file mode 100644
index a72a2839c99b5ff619a7cf83d5fb196f1edf5864..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 6a41aa05963f69c5edcee028d34443ab3e1a31f3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
--- a/mobile/android/locales/jar.mn
+++ b/mobile/android/locales/jar.mn
@@ -49,17 +49,16 @@ relativesrcdir toolkit/locales:
locale/@AB_CD@/browser/overrides/commonDialogs.properties (%chrome/global/commonDialogs.properties)
locale/@AB_CD@/browser/overrides/intl.properties (%chrome/global/intl.properties)
locale/@AB_CD@/browser/overrides/intl.css (%chrome/global/intl.css)
locale/@AB_CD@/browser/overrides/passwordmgr.properties (%chrome/passwordmgr/passwordmgr.properties)
locale/@AB_CD@/browser/overrides/search/search.properties (%chrome/search/search.properties)
locale/@AB_CD@/browser/overrides/update/updates.properties (%chrome/mozapps/update/updates.properties)
# plugins
locale/@AB_CD@/browser/overrides/plugins/plugins.dtd (%chrome/mozapps/plugins/plugins.dtd)
- locale/@AB_CD@/browser/overrides/plugins/plugins.properties (%chrome/mozapps/plugins/plugins.properties)
# about:support
locale/@AB_CD@/browser/overrides/global/aboutSupport.dtd (%chrome/global/aboutSupport.dtd)
locale/@AB_CD@/browser/overrides/global/aboutSupport.properties (%chrome/global/aboutSupport.properties)
#about:crashes
locale/@AB_CD@/browser/overrides/crashreporter/crashes.dtd (%crashreporter/crashes.dtd)
locale/@AB_CD@/browser/overrides/crashreporter/crashes.properties (%crashreporter/crashes.properties)
#about:mozilla
locale/@AB_CD@/browser/overrides/global/mozilla.dtd (%chrome/global/mozilla.dtd)
@@ -74,17 +73,16 @@ relativesrcdir toolkit/locales:
% override chrome://global/locale/commonDialogs.properties chrome://browser/locale/overrides/commonDialogs.properties
% override chrome://mozapps/locale/handling/handling.properties chrome://browser/locale/handling.properties
% override chrome://global/locale/intl.properties chrome://browser/locale/overrides/intl.properties
% override chrome://global/locale/intl.css chrome://browser/locale/overrides/intl.css
% override chrome://passwordmgr/locale/passwordmgr.properties chrome://browser/locale/overrides/passwordmgr/passwordmgr.properties
% override chrome://global/locale/search/search.properties chrome://browser/locale/overrides/search/search.properties
% override chrome://mozapps/locale/update/updates.properties chrome://browser/locale/overrides/update/updates.properties
% override chrome://mozapps/locale/plugins/plugins.dtd chrome://browser/locale/overrides/plugins/plugins.dtd
-% override chrome://mozapps/locale/plugins/plugins.properties chrome://browser/locale/overrides/plugins/plugins.properties
% override chrome://global/locale/aboutSupport.dtd chrome://browser/locale/overrides/global/aboutSupport.dtd
% override chrome://global/locale/aboutSupport.properties chrome://browser/locale/overrides/global/aboutSupport.properties
% override chrome://global/locale/crashes.dtd chrome://browser/locale/overrides/crashreporter/crashes.dtd
% override chrome://global/locale/crashes.properties chrome://browser/locale/overrides/crashreporter/crashes.properties
% override chrome://global/locale/mozilla.dtd chrome://browser/locale/overrides/global/mozilla.dtd
% override chrome://global/locale/aboutTelemetry.dtd chrome://browser/locale/overrides/global/aboutTelemetry.dtd
% override chrome://global/locale/aboutTelemetry.properties chrome://browser/locale/overrides/global/aboutTelemetry.properties
deleted file mode 100644
--- a/toolkit/locales/en-US/chrome/global/xpinstall/xpinstall.properties
+++ /dev/null
@@ -1,95 +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/.
-
-#--------------------------------------------------------------------
-# Install Actions
-#--------------------------------------------------------------------
-InstallFile=Installing: %s
-InstallSharedFile=Installing Shared File: %s
-ReplaceFile=Replacing: %s
-ReplaceSharedFile=Replacing Shared File: %s
-SkipFile=Skipping: %s
-SkipSharedFile=Skipping Shared File: %s
-
-DeleteFile=Deleting file: %s
-DeleteComponent=Deleting component: %s
-
-Execute=Executing: %s
-ExecuteWithArgs=Executing: %s with argument: %s
-
-CopyFile=Copy File: %s to %s
-ExecuteFile=Execute File: %s
-ExecuteFileWithArgs=Execute File: %s with argument: %s
-MoveFile=Move File: %s to %s
-RenameFile=Rename File: %s to %s
-CreateFolder=Create Folder: %s
-RemoveFolder=Remove Folder: %s
-RenameFolder=Rename Folder: %s to %s
-WindowsShortcut=Windows Shortcut: %s
-MacAlias=Mac Alias: %s
-WindowsRegisterServer=Windows Register Server: %s
-UnknownFileOpCommand=Unknown file operation command!
-
-Patch=Patching: %s
-
-Uninstall=Uninstalling: %s
-
-RegSkin=Register Skin: %s
-RegLocale=Register Locale: %s
-RegContent=Register Content: %s
-RegPackage=Register Package: %s
-
-#--------------------------------------------------------------------
-# Dialog Messages
-#--------------------------------------------------------------------
-
-ApplyNowSkin=Use this theme
-ApplyNowLocale=Use this locale
-
-ConfirmSkin=Install the theme "%1$S" from %2$S?
-ConfirmLocale=Install the locale "%1$S" from %2$S?
-
-OK=Install
-
-progress.queued=Queued
-progress.downloading=Downloading…
-progress.downloaded=Downloaded
-progress.installing=Installing…
-
-Unsigned=Unsigned
-
-#--------------------------------------------------------------------
-# Miscellaneous
-#--------------------------------------------------------------------
-ERROR=ERROR
-
-error0=Success
-error999=Restart to complete
-error-202=Access denied
-error-203=Unexpected installation error\nReview the Error Console log for more details.
-error-204=Install script not found
-error-207=Not a valid install package
-error-208=Invalid argument
-error-210=User canceled
-error-214=Required file does not exist
-error-215=Read only
-error-218=AppleSingle extraction error
-error-219=Invalid path
-error-225=EXTRACTION_FAILED
-error-227=Canceled
-error-228=Download error
-error-229=Script error
-error-230=Already exists
-error-235=Out of space
-error-239=Chrome registration failed
-error-240=Unfinished install
-error-244=Unsupported package
-error-260=Signing could not be verified.
-error-261=Invalid file hash (possible download corruption)
-error-262=Unknown or invalid file hash type
-error-299=Out of memory
-
-# there are other error codes, either rare or obsolete,
-# that are not worth translating at this time.
-unknown.error=Unexpected error %S
--- a/toolkit/locales/en-US/chrome/mozapps/plugins/plugins.dtd
+++ b/toolkit/locales/en-US/chrome/mozapps/plugins/plugins.dtd
@@ -1,32 +1,11 @@
<!-- 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/. -->
-<!ENTITY pluginWizard.title "Plugin Finder Service">
-<!ENTITY pluginWizard.firstPage.title "Welcome to the &pluginWizard.title;">
-
-<!ENTITY pluginWizard.checkingForPlugins.description.label "&brandShortName; is now checking for available plugins…">
-
-<!ENTITY pluginWizard.availablePluginsPage.title "Available Plugin Downloads">
-<!ENTITY pluginWizard.availablePluginsPage.description.label "The following plugins are available:">
-<!ENTITY pluginWizard.availablePluginsPage.continueMsg.label "Press Next to install these plugins.">
-<!ENTITY pluginWizard.availablePluginsPage.installerUI "Some plugins may require additional information from you during installation.">
-
-<!ENTITY pluginWizard.licensePage.title "Plugin Licenses">
-<!ENTITY pluginWizard.licensePage.accept.label "I agree.">
-<!ENTITY pluginWizard.licensePage.deny.label "I do not agree (plugin will not be installed).">
-
-<!ENTITY pluginWizard.installPluginsPage.title "Installing Plugins">
-<!ENTITY pluginWizard.installPluginsPage.description.label "&brandShortName; is installing plugins…">
-
-<!ENTITY pluginWizard.finalPage.description.label "&brandShortName; finished installing the missing plugins:">
-
-<!ENTITY pluginWizard.finalPage.moreInfo.label "Find out more about Plugins or manually find missing plugins.">
-<!ENTITY pluginWizard.finalPage.restart.label "&brandShortName; needs to be restarted for the plugin(s) to work.">
<!-- LOCALIZATION NOTE (unsupportedPlatform.pre): Mobile only. Flash (the only plugin available on mobile)
is not supported on some devices. Include a trailing space as needed. -->
<!ENTITY unsupportedPlatform.pre "We're very sorry, but &brandShortName; can't play Flash on this device. ">
<!-- LOCALIZATION NOTE (unsupportedPlatform.learnMore): Mobile only. This text is used to link to a SUMO page explaining why Flash is not
supported on this device. Use the unicode ellipsis char, \u2026, or use "..." if \u2026 doesn't suit traditions in your locale. -->
<!ENTITY unsupportedPlatform.learnMore "Learn More…">
<!-- LOCALIZATION NOTE (unsupportedPlatform.post): Mobile only. Include text here if needed for your locale. -->
@@ -35,17 +14,16 @@
<!ENTITY missingPlugin "A plugin is needed to display this content.">
<!-- LOCALIZATION NOTE (tapToPlayPlugin): Mobile (used for touch interfaces) only has one type of plugin possible. -->
<!ENTITY tapToPlayPlugin "Tap here to activate plugin.">
<!ENTITY clickToActivatePlugin "Activate plugin.">
<!ENTITY checkForUpdates "Check for updates…">
<!ENTITY disabledPlugin "This plugin is disabled.">
<!ENTITY blockedPlugin.label "This plugin has been blocked for your protection.">
<!ENTITY hidePluginBtn.label "Hide plugin">
-<!ENTITY installPlugin "Install plugin…">
<!ENTITY managePlugins "Manage plugins…">
<!-- LOCALIZATION NOTE (reloadPlugin.pre): include a trailing space as needed -->
<!-- LOCALIZATION NOTE (reloadPlugin.middle): avoid leading/trailing spaces, this text is a link -->
<!-- LOCALIZATION NOTE (reloadPlugin.post): include a starting space as needed -->
<!ENTITY reloadPlugin.pre "">
<!ENTITY reloadPlugin.middle "Reload the page">
<!ENTITY reloadPlugin.post " to try again.">
deleted file mode 100644
--- a/toolkit/locales/en-US/chrome/mozapps/plugins/plugins.properties
+++ /dev/null
@@ -1,30 +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/.
-
-pluginLicenseAgreement.label=To install %S, you need to agree to the following:
-
-pluginInstallation.download.start=Downloading %S…
-pluginInstallation.download.finish=Finished downloading %S.
-
-pluginInstallation.install.start=Installing %S…
-pluginInstallation.install.finish=Successfully installed %S.
-pluginInstallation.install.error=Failed to install %S (%S).
-
-pluginInstallation.complete=Finished installing plugins.
-
-pluginInstallationSummary.success=Installed
-pluginInstallationSummary.failed=Failed
-pluginInstallationSummary.licenseNotAccepted=License not accepted
-pluginInstallationSummary.notAvailable=Not Available
-pluginInstallationSummary.manualInstall.label=Manual Install
-pluginInstallationSummary.manualInstall.tooltip=Manually install the plugin.
-
-pluginInstallation.noPluginsFound=No suitable plugins were found.
-pluginInstallation.noPluginsInstalled=No plugins were installed.
-pluginInstallation.unknownPlugin=Unknown Plugin (%S)
-
-pluginInstallation.restart.label=Restart %S
-pluginInstallation.restart.accesskey=R
-pluginInstallation.close.label=Close
-pluginInstallation.close.accesskey=C
--- a/toolkit/locales/jar.mn
+++ b/toolkit/locales/jar.mn
@@ -67,17 +67,16 @@
locale/@AB_CD@/global/tree.dtd (%chrome/global/tree.dtd)
locale/@AB_CD@/global/textcontext.dtd (%chrome/global/textcontext.dtd)
locale/@AB_CD@/global/videocontrols.dtd (%chrome/global/videocontrols.dtd)
locale/@AB_CD@/global/viewSource.dtd (%chrome/global/viewSource.dtd)
locale/@AB_CD@/global/viewSource.properties (%chrome/global/viewSource.properties)
locale/@AB_CD@/global/webapps.properties (%chrome/global/webapps.properties)
locale/@AB_CD@/global/wizard.dtd (%chrome/global/wizard.dtd)
locale/@AB_CD@/global/wizard.properties (%chrome/global/wizard.properties)
- locale/@AB_CD@/global/xpinstall/xpinstall.properties (%chrome/global/xpinstall/xpinstall.properties)
locale/@AB_CD@/global/crashes.dtd (%crashreporter/crashes.dtd)
locale/@AB_CD@/global/crashes.properties (%crashreporter/crashes.properties)
% locale global-region @AB_CD@ %locale/@AB_CD@/global-region/
locale/@AB_CD@/global-region/region.properties (%chrome/global-region/region.properties)
% locale global-platform @AB_CD@ %locale/@AB_CD@/global-platform/
locale/@AB_CD@/global-platform/mac/platformKeys.properties (%chrome/global-platform/mac/platformKeys.properties)
locale/@AB_CD@/global-platform/unix/platformKeys.properties (%chrome/global-platform/unix/platformKeys.properties)
locale/@AB_CD@/global-platform/win/platformKeys.properties (%chrome/global-platform/win/platformKeys.properties)
@@ -98,17 +97,16 @@
locale/@AB_CD@/mozapps/extensions/selectAddons.properties (%chrome/mozapps/extensions/selectAddons.properties)
locale/@AB_CD@/mozapps/extensions/update.dtd (%chrome/mozapps/extensions/update.dtd)
locale/@AB_CD@/mozapps/extensions/update.properties (%chrome/mozapps/extensions/update.properties)
locale/@AB_CD@/mozapps/extensions/newaddon.dtd (%chrome/mozapps/extensions/newaddon.dtd)
locale/@AB_CD@/mozapps/extensions/newaddon.properties (%chrome/mozapps/extensions/newaddon.properties)
locale/@AB_CD@/mozapps/handling/handling.dtd (%chrome/mozapps/handling/handling.dtd)
locale/@AB_CD@/mozapps/handling/handling.properties (%chrome/mozapps/handling/handling.properties)
locale/@AB_CD@/mozapps/plugins/plugins.dtd (%chrome/mozapps/plugins/plugins.dtd)
- locale/@AB_CD@/mozapps/plugins/plugins.properties (%chrome/mozapps/plugins/plugins.properties)
locale/@AB_CD@/mozapps/preferences/changemp.dtd (%chrome/mozapps/preferences/changemp.dtd)
locale/@AB_CD@/mozapps/preferences/removemp.dtd (%chrome/mozapps/preferences/removemp.dtd)
locale/@AB_CD@/mozapps/preferences/preferences.properties (%chrome/mozapps/preferences/preferences.properties)
locale/@AB_CD@/mozapps/profile/createProfileWizard.dtd (%chrome/mozapps/profile/createProfileWizard.dtd)
locale/@AB_CD@/mozapps/profile/profileSelection.properties (%chrome/mozapps/profile/profileSelection.properties)
locale/@AB_CD@/mozapps/profile/profileSelection.dtd (%chrome/mozapps/profile/profileSelection.dtd)
locale/@AB_CD@/mozapps/update/updates.dtd (%chrome/mozapps/update/updates.dtd)
locale/@AB_CD@/mozapps/update/updates.properties (%chrome/mozapps/update/updates.properties)
deleted file mode 100644
--- a/toolkit/mozapps/plugins/content/pluginInstallerDatasource.js
+++ /dev/null
@@ -1,150 +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 PFS_NS = "http://www.mozilla.org/2004/pfs-rdf#";
-
-function nsRDFItemUpdater(aClientOS, aChromeLocale) {
- this._rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]
- .getService(Components.interfaces.nsIRDFService);
- this._os = Components.classes["@mozilla.org/observer-service;1"]
- .getService(Components.interfaces.nsIObserverService);
-
- var app = Components.classes["@mozilla.org/xre/app-info;1"]
- .getService(Components.interfaces.nsIXULAppInfo);
- this.appID = app.ID;
- this.buildID = app.platformBuildID;
- this.appRelease = app.version;
-
- this.clientOS = aClientOS;
- this.chromeLocale = aChromeLocale;
-
- var prefBranch = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- this.dsURI = prefBranch.getCharPref("pfs.datasource.url");
-}
-
-nsRDFItemUpdater.prototype = {
- checkForPlugin: function (aPluginRequestItem) {
- var dsURI = this.dsURI;
- // escape the mimetype as mimetypes can contain '+', which will break pfs.
- dsURI = dsURI.replace(/%PLUGIN_MIMETYPE%/g, encodeURIComponent(aPluginRequestItem.mimetype));
- dsURI = dsURI.replace(/%APP_ID%/g, this.appID);
- dsURI = dsURI.replace(/%APP_VERSION%/g, this.buildID);
- dsURI = dsURI.replace(/%APP_RELEASE%/g, this.appRelease);
- dsURI = dsURI.replace(/%CLIENT_OS%/g, this.clientOS);
- dsURI = dsURI.replace(/%CHROME_LOCALE%/g, this.chromeLocale);
-
- var ds = this._rdfService.GetDataSource(dsURI);
- var rds = ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource)
- if (rds.loaded)
- this.onDatasourceLoaded(ds, aPluginRequestItem);
- else {
- var sink = ds.QueryInterface(Components.interfaces.nsIRDFXMLSink);
- sink.addXMLSinkObserver(new nsPluginXMLRDFDSObserver(this, aPluginRequestItem));
- }
- },
-
- onDatasourceLoaded: function pfs_onDatasourceLoaded (aDatasource, aPluginRequestItem) {
- var container = Components.classes["@mozilla.org/rdf/container;1"]
- .createInstance(Components.interfaces.nsIRDFContainer);
- var resultRes = this._rdfService.GetResource("urn:mozilla:plugin-results:" + aPluginRequestItem.mimetype);
- var pluginList = aDatasource.GetTarget(resultRes, this._rdfService.GetResource(PFS_NS+"plugins"), true);
-
- var pluginInfo = null;
-
- try {
- container.Init(aDatasource, pluginList);
-
- var children = container.GetElements();
- var target;
-
- // get the first item
- var child = children.getNext();
- if (child instanceof Components.interfaces.nsIRDFResource) {
- var name = this._rdfService.GetResource("http://www.mozilla.org/2004/pfs-rdf#updates");
- target = aDatasource.GetTarget(child, name, true);
- }
-
- try {
- container.Init(aDatasource, target);
- target = null;
- children = container.GetElements();
-
- var child = children.getNext();
- if (child instanceof Components.interfaces.nsIRDFResource) {
- target = child;
- }
-
- var rdfs = this._rdfService;
-
- function getPFSValueFromRDF(aValue) {
- var rv = null;
-
- var myTarget = aDatasource.GetTarget(target, rdfs.GetResource(PFS_NS + aValue), true);
- if (myTarget)
- rv = myTarget.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
-
- return rv;
- }
-
- pluginInfo = {
- name: getPFSValueFromRDF("name"),
- pid: getPFSValueFromRDF("guid"),
- version: getPFSValueFromRDF("version"),
- IconUrl: getPFSValueFromRDF("IconUrl"),
- InstallerLocation: getPFSValueFromRDF("InstallerLocation"),
- InstallerHash: getPFSValueFromRDF("InstallerHash"),
- XPILocation: getPFSValueFromRDF("XPILocation"),
- XPIHash: getPFSValueFromRDF("XPIHash"),
- InstallerShowsUI: getPFSValueFromRDF("InstallerShowsUI"),
- manualInstallationURL: getPFSValueFromRDF("manualInstallationURL"),
- requestedMimetype: getPFSValueFromRDF("requestedMimetype"),
- licenseURL: getPFSValueFromRDF("licenseURL"),
- needsRestart: getPFSValueFromRDF("needsRestart")
- };
- }
- catch (ex) {
- Components.utils.reportError(ex);
- }
- }
- catch (ex) {
- Components.utils.reportError(ex);
- }
-
- gPluginInstaller.pluginInfoReceived(aPluginRequestItem, pluginInfo);
- },
-
- onDatasourceError: function pfs_onDatasourceError (aPluginRequestItem, aError) {
- this._os.notifyObservers(aPluginRequestItem, "error", aError);
- Components.utils.reportError(aError);
- gPluginInstaller.pluginInfoReceived(aPluginRequestItem, null);
- }
-};
-
-function nsPluginXMLRDFDSObserver(aUpdater, aPluginRequestItem) {
- this._updater = aUpdater;
- this._item = aPluginRequestItem;
-}
-
-nsPluginXMLRDFDSObserver.prototype =
-{
- _updater : null,
- _item : null,
-
- // nsIRDFXMLSinkObserver
- onBeginLoad: function(aSink) {},
- onInterrupt: function(aSink) {},
- onResume: function(aSink) {},
- onEndLoad: function(aSink) {
- aSink.removeXMLSinkObserver(this);
-
- var ds = aSink.QueryInterface(Components.interfaces.nsIRDFDataSource);
- this._updater.onDatasourceLoaded(ds, this._item);
- },
-
- onError: function(aSink, aStatus, aErrorMsg) {
- aSink.removeXMLSinkObserver(this);
- this._updater.onDatasourceError(this._item, aStatus.toString());
- }
-};
deleted file mode 100644
--- a/toolkit/mozapps/plugins/content/pluginInstallerService.js
+++ /dev/null
@@ -1,299 +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/. */
-
-Components.utils.import("resource://gre/modules/AddonManager.jsm");
-
-const DOWNLOAD_STARTED = 0;
-const DOWNLOAD_FINISHED = 1;
-const INSTALL_STARTED = 2;
-const INSTALL_FINISHED = 3;
-const INSTALLS_COMPLETE = 4;
-
-function getLocalizedError(key)
-{
- return document.getElementById("xpinstallStrings").getString(key);
-}
-
-function binaryToHex(input)
-{
- return [('0' + input.charCodeAt(i).toString(16)).slice(-2)
- for (i in input)].join('');
-}
-
-function verifyHash(aFile, aHash)
-{
- try {
- var [, method, hash] = /^([A-Za-z0-9]+):(.*)$/.exec(aHash);
-
- var fis = Components.classes['@mozilla.org/network/file-input-stream;1'].
- createInstance(Components.interfaces.nsIFileInputStream);
- fis.init(aFile, -1, -1, 0);
-
- var hasher = Components.classes['@mozilla.org/security/hash;1'].
- createInstance(Components.interfaces.nsICryptoHash);
- hasher.initWithString(method);
- hasher.updateFromStream(fis, -1);
- dlhash = binaryToHex(hasher.finish(false));
- return dlhash == hash;
- }
- catch (e) {
- Components.utils.reportError(e);
- return false;
- }
-}
-
-function InstallerObserver(aPlugin)
-{
- this._plugin = aPlugin;
- this._init();
-}
-
-InstallerObserver.prototype = {
- _init: function()
- {
- try {
- var ios = Components.classes["@mozilla.org/network/io-service;1"].
- getService(Components.interfaces.nsIIOService);
- var uri = ios.newURI(this._plugin.InstallerLocation, null, null);
- uri.QueryInterface(Components.interfaces.nsIURL);
-
- // Use a local filename appropriate for the OS
- var leafName = uri.fileName;
- var os = Components.classes["@mozilla.org/xre/app-info;1"]
- .getService(Components.interfaces.nsIXULRuntime)
- .OS;
- if (os == "WINNT" && leafName.indexOf(".") < 0)
- leafName += ".exe";
-
- var dirs = Components.classes["@mozilla.org/file/directory_service;1"].
- getService(Components.interfaces.nsIProperties);
-
- var resultFile = dirs.get("TmpD", Components.interfaces.nsIFile);
- resultFile.append(leafName);
- resultFile.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE,
- 0770);
-
- var channel = ios.newChannelFromURI(uri);
- this._downloader =
- Components.classes["@mozilla.org/network/downloader;1"].
- createInstance(Components.interfaces.nsIDownloader);
- this._downloader.init(this, resultFile);
- channel.notificationCallbacks = this;
-
- this._fireNotification(DOWNLOAD_STARTED, null);
-
- channel.asyncOpen(this._downloader, null);
- }
- catch (e) {
- Components.utils.reportError(e);
- this._fireNotification(INSTALL_FINISHED, getLocalizedError("error-228"));
- if (resultFile && resultFile.exists())
- resultfile.remove(false);
- }
- },
-
- /**
- * Inform the gPluginInstaller about what's going on.
- */
- _fireNotification: function(aStatus, aErrorMsg)
- {
- gPluginInstaller.pluginInstallationProgress(this._plugin.pid,
- aStatus, aErrorMsg);
-
- if (aStatus == INSTALL_FINISHED) {
- --PluginInstallService._installersPending;
- PluginInstallService._fireFinishedNotification();
- }
- },
-
- QueryInterface: function(iid)
- {
- if (iid.equals(Components.interfaces.nsISupports) ||
- iid.equals(Components.interfaces.nsIInterfaceRequestor) ||
- iid.equals(Components.interfaces.nsIDownloadObserver) ||
- iid.equals(Components.interfaces.nsIProgressEventSink))
- return this;
-
- throw Components.results.NS_ERROR_NO_INTERFACE;
- },
-
- getInterface: function(iid)
- {
- if (iid.equals(Components.interfaces.nsIProgressEventSink))
- return this;
-
- return null;
- },
-
- onDownloadComplete: function(downloader, request, ctxt, status, result)
- {
- if (!Components.isSuccessCode(status)) {
- // xpinstall error 228 is "Download Error"
- this._fireNotification(INSTALL_FINISHED, getLocalizedError("error-228"));
- result.remove(false);
- return;
- }
-
- this._fireNotification(DOWNLOAD_FINISHED);
-
- if (this._plugin.InstallerHash &&
- !verifyHash(result, this._plugin.InstallerHash)) {
- // xpinstall error 261 is "Invalid file hash..."
- this._fireNotification(INSTALL_FINISHED, getLocalizedError("error-261"));
- result.remove(false);
- return;
- }
-
- this._fireNotification(INSTALL_STARTED);
-
- result.QueryInterface(Components.interfaces.nsILocalFile);
- try {
- // Make sure the file is executable
- result.permissions = 0770;
- var process = Components.classes["@mozilla.org/process/util;1"]
- .createInstance(Components.interfaces.nsIProcess);
- process.init(result);
- var self = this;
- process.runAsync([], 0, {
- observe: function(subject, topic, data) {
- if (topic != "process-finished") {
- Components.utils.reportError("Failed to launch installer");
- self._fireNotification(INSTALL_FINISHED,
- getLocalizedError("error-207"));
- }
- else if (process.exitValue != 0) {
- Components.utils.reportError("Installer returned exit code " + process.exitValue);
- self._fireNotification(INSTALL_FINISHED,
- getLocalizedError("error-203"));
- }
- else {
- self._fireNotification(INSTALL_FINISHED, null);
- }
- result.remove(false);
- }
- });
- }
- catch (e) {
- Components.utils.reportError(e);
- this._fireNotification(INSTALL_FINISHED, getLocalizedError("error-207"));
- result.remove(false);
- }
- },
-
- onProgress: function(aRequest, aContext, aProgress, aProgressMax)
- {
- gPluginInstaller.pluginInstallationProgressMeter(this._plugin.pid,
- aProgress,
- aProgressMax);
- },
-
- onStatus: function(aRequest, aContext, aStatus, aStatusArg)
- {
- /* pass */
- }
-};
-
-var PluginInstallService = {
-
- /**
- * Start installation of installers and XPI plugins.
- * @param aInstallerPlugins An array of objects which should have the
- * properties "pid", "InstallerLocation",
- * and "InstallerHash"
- * @param aXPIPlugins An array of objects which should have the
- * properties "pid", "XPILocation",
- * and "XPIHash"
- */
- startPluginInstallation: function (aInstallerPlugins,
- aXPIPlugins)
- {
- this._xpiPlugins = aXPIPlugins;
- this._xpisPending = aXPIPlugins.length;
-
- aXPIPlugins.forEach(function(plugin) {
- AddonManager.getInstallForURL(plugin.XPILocation, function(install) {
- install.addListener(PluginInstallService);
- install.install();
- }, "application/x-xpinstall", plugin.XPIHash);
- });
-
- // InstallerObserver may finish immediately so we must initialise the
- // installers after setting the number of installers and xpis pending
- this._installersPending = aInstallerPlugins.length;
- this._installerPlugins = [new InstallerObserver(plugin)
- for each (plugin in aInstallerPlugins)];
- },
-
- _fireFinishedNotification: function()
- {
- if (this._installersPending == 0 && this._xpisPending == 0)
- gPluginInstaller.pluginInstallationProgress(null, INSTALLS_COMPLETE, null);
- },
-
- getPidForInstall: function(install) {
- for (let i = 0; i < this._xpiPlugins.length; i++) {
- if (install.sourceURI.spec == this._xpiPlugins[i].XPILocation)
- return this._xpiPlugins[i].pid;
- }
- return -1;
- },
-
- // InstallListener interface
- onDownloadStarted: function(install) {
- var pid = this.getPidForInstall(install);
- gPluginInstaller.pluginInstallationProgress(pid, DOWNLOAD_STARTED, null);
- },
-
- onDownloadProgress: function(install) {
- var pid = this.getPidForInstall(install);
- gPluginInstaller.pluginInstallationProgressMeter(pid, install.progress,
- install.maxProgress);
- },
-
- onDownloadEnded: function(install) {
- var pid = this.getPidForInstall(install);
- gPluginInstaller.pluginInstallationProgress(pid, DOWNLOAD_FINISHED, null);
- },
-
- onDownloadFailed: function(install) {
- var pid = this.getPidForInstall(install);
- switch (install.error) {
- case AddonManager.ERROR_NETWORK_FAILURE:
- var errorMsg = getLocalizedError("error-228");
- break;
- case AddonManager.ERROR_INCORRECT_HASH:
- var errorMsg = getLocalizedError("error-261");
- break;
- case AddonManager.ERROR_CORRUPT_FILE:
- var errorMsg = getLocalizedError("error-207");
- break;
- }
- gPluginInstaller.pluginInstallationProgress(pid, INSTALL_FINISHED, errorMsg);
-
- this._xpisPending--;
- this._fireFinishedNotification();
- },
-
- onInstallStarted: function(install) {
- var pid = this.getPidForInstall(install);
- gPluginInstaller.pluginInstallationProgress(pid, INSTALL_STARTED, null);
- },
-
- onInstallEnded: function(install, addon) {
- var pid = this.getPidForInstall(install);
- gPluginInstaller.pluginInstallationProgress(pid, INSTALL_FINISHED, null);
-
- this._xpisPending--;
- this._fireFinishedNotification();
- },
-
- onInstallFailed: function(install) {
- var pid = this.getPidForInstall(install);
- gPluginInstaller.pluginInstallationProgress(pid, INSTALL_FINISHED,
- getLocalizedError("error-203"));
-
- this._xpisPending--;
- this._fireFinishedNotification();
- }
-}
deleted file mode 100644
--- a/toolkit/mozapps/plugins/content/pluginInstallerWizard.css
+++ /dev/null
@@ -1,9 +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/. */
-
-
-.wizard-header-description {
- display: none;
-}
-
deleted file mode 100644
--- a/toolkit/mozapps/plugins/content/pluginInstallerWizard.js
+++ /dev/null
@@ -1,659 +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/. */
-
-function nsPluginInstallerWizard(){
-
- // create the request array
- this.mPluginRequests = new Map();
-
- // create the plugin info array.
- // a hash indexed by plugin id so we don't install
- // the same plugin more than once.
- this.mPluginInfoArray = new Object();
- this.mPluginInfoArrayLength = 0;
-
- // holds plugins we couldn't find
- this.mPluginNotFoundArray = new Object();
- this.mPluginNotFoundArrayLength = 0;
-
- // array holding pids of plugins that require a license
- this.mPluginLicenseArray = new Array();
-
- // how many plugins are to be installed
- this.pluginsToInstallNum = 0;
-
- this.mBrowser = null;
- this.mSuccessfullPluginInstallation = 0;
- this.mNeedsRestart = false;
-
- // arguments[0] is an object that contains two items:
- // a mimetype->pluginInfo map of missing plugins,
- // a reference to the browser that needs them,
- // so we can notify which browser can be reloaded.
-
- if ("arguments" in window) {
- for (let [mimetype, pluginInfo] of window.arguments[0].plugins){
- this.mPluginRequests.set(mimetype, new nsPluginRequest(pluginInfo));
- }
-
- this.mBrowser = window.arguments[0].browser;
- }
-
- this.WSPluginCounter = 0;
- this.licenseAcceptCounter = 0;
-
- this.prefBranch = null;
-}
-
-nsPluginInstallerWizard.prototype.getPluginData = function (){
- // for each mPluginRequests item, call the datasource
- this.WSPluginCounter = 0;
-
- // initiate the datasource call
- var rdfUpdater = new nsRDFItemUpdater(this.getOS(), this.getChromeLocale());
-
- for (let [mimetype, pluginRequest] of this.mPluginRequests) {
- rdfUpdater.checkForPlugin(pluginRequest);
- }
-}
-
-// aPluginInfo is null if the datasource call failed, and pid is -1 if
-// no matching plugin was found.
-nsPluginInstallerWizard.prototype.pluginInfoReceived = function (aPluginRequestItem, aPluginInfo){
- this.WSPluginCounter++;
-
- if (aPluginInfo && (aPluginInfo.pid != -1) ) {
- // hash by id
- this.mPluginInfoArray[aPluginInfo.pid] = new PluginInfo(aPluginInfo);
- this.mPluginInfoArrayLength++;
- } else {
- this.mPluginNotFoundArray[aPluginRequestItem.mimetype] = aPluginRequestItem;
- this.mPluginNotFoundArrayLength++;
- }
-
- var progressMeter = document.getElementById("ws_request_progress");
-
- if (progressMeter.getAttribute("mode") == "undetermined")
- progressMeter.setAttribute("mode", "determined");
-
- progressMeter.setAttribute("value",
- ((this.WSPluginCounter / this.mPluginRequests.size) * 100) + "%");
-
- if (this.WSPluginCounter == this.mPluginRequests.size) {
- // check if no plugins were found
- if (this.mPluginInfoArrayLength == 0) {
- this.advancePage("lastpage");
- } else {
- this.advancePage(null);
- }
- } else {
- // process more.
- }
-}
-
-nsPluginInstallerWizard.prototype.showPluginList = function (){
- var myPluginList = document.getElementById("pluginList");
- var hasPluginWithInstallerUI = false;
-
- // clear children
- for (var run = myPluginList.childNodes.length; run > 0; run--)
- myPluginList.removeChild(myPluginList.childNodes.item(run));
-
- this.pluginsToInstallNum = 0;
-
- for (var pluginInfoItem in this.mPluginInfoArray){
- // [plugin image] [Plugin_Name Plugin_Version]
-
- var pluginInfo = this.mPluginInfoArray[pluginInfoItem];
-
- // create the checkbox
- var myCheckbox = document.createElement("checkbox");
- myCheckbox.setAttribute("checked", "true");
- myCheckbox.setAttribute("oncommand", "gPluginInstaller.toggleInstallPlugin('" + pluginInfo.pid + "', this)");
- // XXXlocalize (nit)
- myCheckbox.setAttribute("label", pluginInfo.name + " " + (pluginInfo.version ? pluginInfo.version : ""));
- myCheckbox.setAttribute("src", pluginInfo.IconUrl);
-
- myPluginList.appendChild(myCheckbox);
-
- if (pluginInfo.InstallerShowsUI == "true")
- hasPluginWithInstallerUI = true;
-
- // keep a running count of plugins the user wants to install
- this.pluginsToInstallNum++;
- }
-
- if (hasPluginWithInstallerUI)
- document.getElementById("installerUI").hidden = false;
-
- this.canAdvance(true);
- this.canRewind(false);
-}
-
-nsPluginInstallerWizard.prototype.toggleInstallPlugin = function (aPid, aCheckbox) {
- this.mPluginInfoArray[aPid].toBeInstalled = aCheckbox.checked;
-
- // if no plugins are checked, don't allow to advance
- this.pluginsToInstallNum = 0;
- for (var pluginInfoItem in this.mPluginInfoArray){
- if (this.mPluginInfoArray[pluginInfoItem].toBeInstalled)
- this.pluginsToInstallNum++;
- }
-
- if (this.pluginsToInstallNum > 0)
- this.canAdvance(true);
- else
- this.canAdvance(false);
-}
-
-nsPluginInstallerWizard.prototype.canAdvance = function (aBool){
- document.getElementById("plugin-installer-wizard").canAdvance = aBool;
-}
-
-nsPluginInstallerWizard.prototype.canRewind = function (aBool){
- document.getElementById("plugin-installer-wizard").canRewind = aBool;
-}
-
-nsPluginInstallerWizard.prototype.canCancel = function (aBool){
- document.documentElement.getButton("cancel").disabled = !aBool;
-}
-
-nsPluginInstallerWizard.prototype.showLicenses = function (){
- this.canAdvance(false);
- this.canRewind(false);
-
- // only add if a license is provided and the plugin was selected to
- // be installed
- for (var pluginInfoItem in this.mPluginInfoArray){
- var myPluginInfoItem = this.mPluginInfoArray[pluginInfoItem];
- if (myPluginInfoItem.toBeInstalled && myPluginInfoItem.licenseURL && (myPluginInfoItem.licenseURL != ""))
- this.mPluginLicenseArray.push(myPluginInfoItem.pid);
- }
-
- if (this.mPluginLicenseArray.length == 0) {
- // no plugins require licenses
- this.advancePage(null);
- } else {
- this.licenseAcceptCounter = 0;
-
- // add a nsIWebProgress listener to the license iframe.
- var docShell = document.getElementById("licenseIFrame").docShell;
- var iiReq = docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor);
- var webProgress = iiReq.getInterface(Components.interfaces.nsIWebProgress);
- webProgress.addProgressListener(gPluginInstaller.progressListener,
- Components.interfaces.nsIWebProgress.NOTIFY_ALL);
-
- this.showLicense();
- }
-}
-
-nsPluginInstallerWizard.prototype.enableNext = function (){
- // if only one plugin exists, don't enable the next button until
- // the license is accepted
- if (gPluginInstaller.pluginsToInstallNum > 1)
- gPluginInstaller.canAdvance(true);
-
- document.getElementById("licenseRadioGroup1").disabled = false;
- document.getElementById("licenseRadioGroup2").disabled = false;
-}
-
-const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener;
-nsPluginInstallerWizard.prototype.progressListener = {
- onStateChange : function(aWebProgress, aRequest, aStateFlags, aStatus)
- {
- if ((aStateFlags & nsIWebProgressListener.STATE_STOP) &&
- (aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK)) {
- // iframe loaded
- gPluginInstaller.enableNext();
- }
- },
-
- onProgressChange : function(aWebProgress, aRequest, aCurSelfProgress,
- aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress)
- {},
- onStatusChange : function(aWebProgress, aRequest, aStatus, aMessage)
- {},
-
- QueryInterface : function(aIID)
- {
- if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
- aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
- aIID.equals(Components.interfaces.nsISupports))
- return this;
- throw Components.results.NS_NOINTERFACE;
- }
-}
-
-nsPluginInstallerWizard.prototype.showLicense = function (){
- var pluginInfo = this.mPluginInfoArray[this.mPluginLicenseArray[this.licenseAcceptCounter]];
-
- this.canAdvance(false);
-
- var loadFlags = Components.interfaces.nsIWebNavigation.LOAD_FLAGS_NONE;
- document.getElementById("licenseIFrame").webNavigation.loadURI(pluginInfo.licenseURL, loadFlags, null, null, null);
-
- document.getElementById("pluginLicenseLabel").firstChild.nodeValue =
- this.getFormattedString("pluginLicenseAgreement.label", [pluginInfo.name]);
-
- document.getElementById("licenseRadioGroup1").disabled = true;
- document.getElementById("licenseRadioGroup2").disabled = true;
- document.getElementById("licenseRadioGroup").selectedIndex =
- pluginInfo.licenseAccepted ? 0 : 1;
-}
-
-nsPluginInstallerWizard.prototype.showNextLicense = function (){
- var rv = true;
-
- if (this.mPluginLicenseArray.length > 0) {
- this.storeLicenseRadioGroup();
-
- this.licenseAcceptCounter++;
-
- if (this.licenseAcceptCounter < this.mPluginLicenseArray.length) {
- this.showLicense();
-
- rv = false;
- this.canRewind(true);
- }
- }
-
- return rv;
-}
-
-nsPluginInstallerWizard.prototype.showPreviousLicense = function (){
- this.storeLicenseRadioGroup();
- this.licenseAcceptCounter--;
-
- if (this.licenseAcceptCounter > 0)
- this.canRewind(true);
- else
- this.canRewind(false);
-
- this.showLicense();
-
- // don't allow to return from the license screens
- return false;
-}
-
-nsPluginInstallerWizard.prototype.storeLicenseRadioGroup = function (){
- var pluginInfo = this.mPluginInfoArray[this.mPluginLicenseArray[this.licenseAcceptCounter]];
- pluginInfo.licenseAccepted = !document.getElementById("licenseRadioGroup").selectedIndex;
-}
-
-nsPluginInstallerWizard.prototype.licenseRadioGroupChange = function(aAccepted) {
- // only if one plugin is to be installed should selection change the next button
- if (this.pluginsToInstallNum == 1)
- this.canAdvance(aAccepted);
-}
-
-nsPluginInstallerWizard.prototype.advancePage = function (aPageId){
- this.canAdvance(true);
- document.getElementById("plugin-installer-wizard").advance(aPageId);
-}
-
-nsPluginInstallerWizard.prototype.startPluginInstallation = function (){
- this.canAdvance(false);
- this.canRewind(false);
-
- var installerPlugins = [];
- var xpiPlugins = [];
-
- for (var pluginInfoItem in this.mPluginInfoArray){
- var pluginItem = this.mPluginInfoArray[pluginInfoItem];
-
- if (pluginItem.toBeInstalled && pluginItem.licenseAccepted) {
- if (pluginItem.InstallerLocation)
- installerPlugins.push(pluginItem);
- else if (pluginItem.XPILocation)
- xpiPlugins.push(pluginItem);
- }
- }
-
- if (installerPlugins.length > 0 || xpiPlugins.length > 0)
- PluginInstallService.startPluginInstallation(installerPlugins,
- xpiPlugins);
- else
- this.advancePage(null);
-}
-
-/*
- 0 starting download
- 1 download finished
- 2 starting installation
- 3 finished installation
- 4 all done
-*/
-nsPluginInstallerWizard.prototype.pluginInstallationProgress = function (aPid, aProgress, aError) {
-
- var statMsg = null;
- var pluginInfo = gPluginInstaller.mPluginInfoArray[aPid];
-
- switch (aProgress) {
-
- case 0:
- statMsg = this.getFormattedString("pluginInstallation.download.start", [pluginInfo.name]);
- break;
-
- case 1:
- statMsg = this.getFormattedString("pluginInstallation.download.finish", [pluginInfo.name]);
- break;
-
- case 2:
- statMsg = this.getFormattedString("pluginInstallation.install.start", [pluginInfo.name]);
- var progressElm = document.getElementById("plugin_install_progress");
- progressElm.setAttribute("mode", "undetermined");
- break;
-
- case 3:
- if (aError) {
- statMsg = this.getFormattedString("pluginInstallation.install.error", [pluginInfo.name, aError]);
- pluginInfo.error = aError;
- } else {
- statMsg = this.getFormattedString("pluginInstallation.install.finish", [pluginInfo.name]);
- pluginInfo.error = null;
- }
- break;
-
- case 4:
- statMsg = this.getString("pluginInstallation.complete");
- break;
- }
-
- if (statMsg)
- document.getElementById("plugin_install_progress_message").value = statMsg;
-
- if (aProgress == 4) {
- this.advancePage(null);
- }
-}
-
-nsPluginInstallerWizard.prototype.pluginInstallationProgressMeter = function (aPid, aValue, aMaxValue){
- var progressElm = document.getElementById("plugin_install_progress");
-
- if (progressElm.getAttribute("mode") == "undetermined")
- progressElm.setAttribute("mode", "determined");
-
- progressElm.setAttribute("value", Math.ceil((aValue / aMaxValue) * 100) + "%")
-}
-
-nsPluginInstallerWizard.prototype.addPluginResultRow = function (aImgSrc, aName, aNameTooltip, aStatus, aStatusTooltip, aManualUrl){
- var myRows = document.getElementById("pluginResultList");
-
- var myRow = document.createElement("row");
- myRow.setAttribute("align", "center");
-
- // create the image
- var myImage = document.createElement("image");
- myImage.setAttribute("src", aImgSrc);
- myImage.setAttribute("height", "16px");
- myImage.setAttribute("width", "16px");
- myRow.appendChild(myImage)
-
- // create the labels
- var myLabel = document.createElement("label");
- myLabel.setAttribute("value", aName);
- if (aNameTooltip)
- myLabel.setAttribute("tooltiptext", aNameTooltip);
- myRow.appendChild(myLabel);
-
- if (aStatus) {
- myLabel = document.createElement("label");
- myLabel.setAttribute("value", aStatus);
- myRow.appendChild(myLabel);
- }
-
- // manual install
- if (aManualUrl) {
- var myButton = document.createElement("button");
-
- var manualInstallLabel = this.getString("pluginInstallationSummary.manualInstall.label");
- var manualInstallTooltip = this.getString("pluginInstallationSummary.manualInstall.tooltip");
-
- myButton.setAttribute("label", manualInstallLabel);
- myButton.setAttribute("tooltiptext", manualInstallTooltip);
-
- myRow.appendChild(myButton);
-
- // XXX: XUL sucks, need to add the listener after it got added into the document
- if (aManualUrl)
- myButton.addEventListener("command", function() { gPluginInstaller.loadURL(aManualUrl) }, false);
- }
-
- myRows.appendChild(myRow);
-}
-
-nsPluginInstallerWizard.prototype.showPluginResults = function (){
- var notInstalledList = "?action=missingplugins";
- var myRows = document.getElementById("pluginResultList");
-
- // clear children
- for (var run = myRows.childNodes.length; run--; run > 0)
- myRows.removeChild(myRows.childNodes.item(run));
-
- for (var pluginInfoItem in this.mPluginInfoArray){
- // [plugin image] [Plugin_Name Plugin_Version] [Success/Failed] [Manual Install (if Failed)]
-
- var myPluginItem = this.mPluginInfoArray[pluginInfoItem];
-
- if (myPluginItem.toBeInstalled) {
- var statusMsg;
- var statusTooltip;
- if (myPluginItem.error){
- statusMsg = this.getString("pluginInstallationSummary.failed");
- statusTooltip = myPluginItem.error;
- notInstalledList += "&mimetype=" + pluginInfoItem;
- } else if (!myPluginItem.licenseAccepted) {
- statusMsg = this.getString("pluginInstallationSummary.licenseNotAccepted");
- } else if (!myPluginItem.XPILocation && !myPluginItem.InstallerLocation) {
- statusMsg = this.getString("pluginInstallationSummary.notAvailable");
- notInstalledList += "&mimetype=" + pluginInfoItem;
- } else {
- this.mSuccessfullPluginInstallation++;
- statusMsg = this.getString("pluginInstallationSummary.success");
-
- // only check needsRestart if the plugin was successfully installed.
- if (myPluginItem.needsRestart)
- this.mNeedsRestart = true;
- }
-
- // manual url - either returned from the webservice or the pluginspage attribute
- var manualUrl;
- if ((myPluginItem.error || (!myPluginItem.XPILocation && !myPluginItem.InstallerLocation)) &&
- (myPluginItem.manualInstallationURL || this.mPluginRequests.get(myPluginItem.requestedMimetype).pluginsPage)){
- manualUrl = myPluginItem.manualInstallationURL ? myPluginItem.manualInstallationURL : this.mPluginRequests.get(myPluginItem.requestedMimetype).pluginsPage;
- }
-
- this.addPluginResultRow(
- myPluginItem.IconUrl,
- myPluginItem.name + " " + (myPluginItem.version ? myPluginItem.version : ""),
- null,
- statusMsg,
- statusTooltip,
- manualUrl);
- }
- }
-
- // handle plugins we couldn't find
- for (pluginInfoItem in this.mPluginNotFoundArray){
- var pluginRequest = this.mPluginNotFoundArray[pluginInfoItem];
-
- // if there is a pluginspage, show UI
- if (pluginRequest.pluginsPage) {
- this.addPluginResultRow(
- "",
- this.getFormattedString("pluginInstallation.unknownPlugin", [pluginInfoItem]),
- null,
- null,
- null,
- pluginRequest.pluginsPage);
- }
-
- notInstalledList += "&mimetype=" + pluginInfoItem;
- }
-
- // no plugins were found, so change the description of the final page.
- if (this.mPluginInfoArrayLength == 0) {
- var noPluginsFound = this.getString("pluginInstallation.noPluginsFound");
- document.getElementById("pluginSummaryDescription").setAttribute("value", noPluginsFound);
- } else if (this.mSuccessfullPluginInstallation == 0) {
- // plugins found, but none were installed.
- var noPluginsInstalled = this.getString("pluginInstallation.noPluginsInstalled");
- document.getElementById("pluginSummaryDescription").setAttribute("value", noPluginsInstalled);
- }
-
- document.getElementById("pluginSummaryRestartNeeded").hidden = !this.mNeedsRestart;
-
- var app = Components.classes["@mozilla.org/xre/app-info;1"]
- .getService(Components.interfaces.nsIXULAppInfo);
-
- // set the get more info link to contain the mimetypes we couldn't install.
- notInstalledList +=
- "&appID=" + app.ID +
- "&appVersion=" + app.platformBuildID +
- "&clientOS=" + this.getOS() +
- "&chromeLocale=" + this.getChromeLocale() +
- "&appRelease=" + app.version;
-
- document.getElementById("moreInfoLink").addEventListener("click", function() { gPluginInstaller.loadURL("https://pfs.mozilla.org/plugins/" + notInstalledList) }, false);
-
- if (this.mNeedsRestart) {
- var cancel = document.getElementById("plugin-installer-wizard").getButton("cancel");
- cancel.label = this.getString("pluginInstallation.close.label");
- cancel.accessKey = this.getString("pluginInstallation.close.accesskey");
- var finish = document.getElementById("plugin-installer-wizard").getButton("finish");
- finish.label = this.getFormattedString("pluginInstallation.restart.label", [app.name]);
- finish.accessKey = this.getString("pluginInstallation.restart.accesskey");
- this.canCancel(true);
- }
- else {
- this.canCancel(false);
- }
- this.canAdvance(true);
- this.canRewind(false);
-}
-
-nsPluginInstallerWizard.prototype.loadURL = function (aUrl){
- // Check if the page where the plugin came from can load aUrl before
- // loading it, and do *not* allow loading URIs that would inherit our
- // principal.
-
- var pluginPagePrincipal =
- window.opener.content.document.nodePrincipal;
-
- const nsIScriptSecurityManager =
- Components.interfaces.nsIScriptSecurityManager;
- var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
- .getService(nsIScriptSecurityManager);
-
- secMan.checkLoadURIStrWithPrincipal(pluginPagePrincipal, aUrl,
- nsIScriptSecurityManager.DISALLOW_INHERIT_PRINCIPAL);
-
- window.opener.open(aUrl);
-}
-
-nsPluginInstallerWizard.prototype.getString = function (aName){
- return document.getElementById("pluginWizardString").getString(aName);
-}
-
-nsPluginInstallerWizard.prototype.getFormattedString = function (aName, aArray){
- return document.getElementById("pluginWizardString").getFormattedString(aName, aArray);
-}
-
-nsPluginInstallerWizard.prototype.getOS = function (){
- var httpService = Components.classes["@mozilla.org/network/protocol;1?name=http"]
- .getService(Components.interfaces.nsIHttpProtocolHandler);
- return httpService.oscpu;
-}
-
-nsPluginInstallerWizard.prototype.getChromeLocale = function (){
- var chromeReg = Components.classes["@mozilla.org/chrome/chrome-registry;1"]
- .getService(Components.interfaces.nsIXULChromeRegistry);
- return chromeReg.getSelectedLocale("global");
-}
-
-nsPluginInstallerWizard.prototype.getPrefBranch = function (){
- if (!this.prefBranch)
- this.prefBranch = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- return this.prefBranch;
-}
-function nsPluginRequest(aPlugRequest){
- this.mimetype = encodeURI(aPlugRequest.mimetype);
- this.pluginsPage = aPlugRequest.pluginsPage;
-}
-
-function PluginInfo(aResult) {
- this.name = aResult.name;
- this.pid = aResult.pid;
- this.version = aResult.version;
- this.IconUrl = aResult.IconUrl;
- this.InstallerLocation = aResult.InstallerLocation;
- this.InstallerHash = aResult.InstallerHash;
- this.XPILocation = aResult.XPILocation;
- this.XPIHash = aResult.XPIHash;
- this.InstallerShowsUI = aResult.InstallerShowsUI;
- this.manualInstallationURL = aResult.manualInstallationURL;
- this.requestedMimetype = aResult.requestedMimetype;
- this.licenseURL = aResult.licenseURL;
- this.needsRestart = (aResult.needsRestart == "true");
-
- this.error = null;
- this.toBeInstalled = true;
-
- // no license provided, make it accepted
- this.licenseAccepted = this.licenseURL ? false : true;
-}
-
-var gPluginInstaller;
-
-function wizardInit(){
- gPluginInstaller = new nsPluginInstallerWizard();
- gPluginInstaller.canAdvance(false);
- gPluginInstaller.getPluginData();
-}
-
-function wizardFinish(){
- if (gPluginInstaller.mNeedsRestart) {
- // Notify all windows that an application quit has been requested.
- var os = Components.classes["@mozilla.org/observer-service;1"]
- .getService(Components.interfaces.nsIObserverService);
- var cancelQuit = Components.classes["@mozilla.org/supports-PRBool;1"]
- .createInstance(Components.interfaces.nsISupportsPRBool);
- os.notifyObservers(cancelQuit, "quit-application-requested", "restart");
-
- // Something aborted the quit process.
- if (!cancelQuit.data) {
- var nsIAppStartup = Components.interfaces.nsIAppStartup;
- var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"]
- .getService(nsIAppStartup);
- appStartup.quit(nsIAppStartup.eAttemptQuit | nsIAppStartup.eRestart);
- return true;
- }
- }
-
- // don't refresh if no plugins were found or installed
- if ((gPluginInstaller.mSuccessfullPluginInstallation > 0) &&
- (gPluginInstaller.mPluginInfoArray.length != 0)) {
-
- // reload plugins so JS detection works immediately
- try {
- var ph = Components.classes["@mozilla.org/plugin/host;1"]
- .getService(Components.interfaces.nsIPluginHost);
- ph.reloadPlugins(false);
- }
- catch (e) {
- // reloadPlugins throws an exception if there were no plugins to load
- }
-
- if (gPluginInstaller.mBrowser) {
- // notify listeners that a plugin is installed,
- // so that they can reset the UI and update the browser.
- var event = document.createEvent("Events");
- event.initEvent("NewPluginInstalled", true, true);
- gPluginInstaller.mBrowser.dispatchEvent(event);
- }
- }
-
- return true;
-}
deleted file mode 100644
--- a/toolkit/mozapps/plugins/content/pluginInstallerWizard.xul
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.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/. -->
-
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://mozapps/content/plugins/pluginInstallerWizard.css"?>
-<?xml-stylesheet href="chrome://mozapps/skin/plugins/pluginInstallerWizard.css"?>
-
-<!DOCTYPE wizard [
-<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
-%brandDTD;
-<!ENTITY % pluginsDTD SYSTEM "chrome://mozapps/locale/plugins/plugins.dtd">
-%pluginsDTD;
-]>
-
-<wizard id="plugin-installer-wizard" title="&pluginWizard.title;"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- persist="width height screenX screenY sizemode"
- style="width: 50em; min-height: 40em;"
- onload="wizardInit()"
- onwizardfinish="return wizardFinish();">
-
- <script type="application/javascript" src="chrome://mozapps/content/plugins/pluginInstallerWizard.js"/>
- <script type="application/javascript" src="chrome://mozapps/content/plugins/pluginInstallerDatasource.js"/>
- <script type="application/javascript" src="chrome://mozapps/content/plugins/pluginInstallerService.js"/>
-
- <stringbundleset id="pluginSet">
- <stringbundle id="brandStrings" src="chrome://branding/locale/brand.properties"/>
- <stringbundle id="xpinstallStrings" src="chrome://global/locale/xpinstall/xpinstall.properties"/>
- <stringbundle id="pluginWizardString" src="chrome://mozapps/locale/plugins/plugins.properties"/>
- </stringbundleset>
-
- <wizardpage label="&pluginWizard.firstPage.title;">
- <description value="&pluginWizard.checkingForPlugins.description.label;"/>
- <separator />
- <progressmeter id="ws_request_progress" mode="undetermined"/>
- </wizardpage>
-
- <wizardpage label="&pluginWizard.availablePluginsPage.title;"
- onpageshow="gPluginInstaller.showPluginList()">
-
- <description value="&pluginWizard.availablePluginsPage.description.label;"/>
-
- <vbox id="pluginList" flex="1" align="left" style="overflow: auto;"/>
-
- <vbox id="installerUI" hidden="true">
- <separator />
- <description>&pluginWizard.availablePluginsPage.installerUI;</description>
- </vbox>
-
- <separator />
- <description value="&pluginWizard.availablePluginsPage.continueMsg.label;"/>
- </wizardpage>
-
- <wizardpage label="&pluginWizard.licensePage.title;"
- onpageshow="gPluginInstaller.showLicenses()"
- onpageadvanced="return gPluginInstaller.showNextLicense();"
- onpagerewound="return gPluginInstaller.showPreviousLicense();">
- <description id="pluginLicenseLabel"> </description>
-
- <vbox id="licenseContainer" flex="1">
- <iframe id="licenseIFrame" flex="1" src="" />
- </vbox>
-
- <radiogroup id="licenseRadioGroup">
- <radio id="licenseRadioGroup1" disabled="true"
- oncommand="gPluginInstaller.licenseRadioGroupChange(true)"
- label="&pluginWizard.licensePage.accept.label;"/>
- <radio id="licenseRadioGroup2" disabled="true" selected="true"
- oncommand="gPluginInstaller.licenseRadioGroupChange(false)"
- label="&pluginWizard.licensePage.deny.label;"/>
- </radiogroup>
- </wizardpage>
-
- <wizardpage label="&pluginWizard.installPluginsPage.title;"
- onpageshow="gPluginInstaller.startPluginInstallation()">
- <description value="&pluginWizard.installPluginsPage.description.label;"/>
-
- <separator />
-
- <description id="plugin_install_progress_message" value=""/>
- <progressmeter id="plugin_install_progress" mode="undetermined"/>
- </wizardpage>
-
- <wizardpage id="lastpage" pageid="lastpage"
- onpageshow="gPluginInstaller.showPluginResults()">
-
- <description id="pluginSummaryDescription"
- value="&pluginWizard.finalPage.description.label;"/>
-
- <separator />
-
- <grid class="indent">
- <columns>
- <column/>
- <column style="margin-right:15px;"/>
- <column style="margin-right:15px;"/>
- <column />
- </columns>
-
- <rows id="pluginResultList">
- </rows>
- </grid>
-
- <description id="pluginSummaryRestartNeeded" style="padding-top:10px;"
- value="&pluginWizard.finalPage.restart.label;"/>
- <spacer flex="1" />
- <description id="moreInfoLink"
- style="color:rgb(0, 0, 255); cursor:pointer; text-decoration:underline;"
- value="&pluginWizard.finalPage.moreInfo.label;"/>
- </wizardpage>
-
-</wizard>
-
--- a/toolkit/mozapps/plugins/content/pluginProblem.xml
+++ b/toolkit/mozapps/plugins/content/pluginProblem.xml
@@ -36,21 +36,16 @@
<html:div class="msg msgDisabled">&disabledPlugin;</html:div>
<html:div class="msg msgBlocked">&blockedPlugin.label;</html:div>
<html:div class="msg msgCrashed">
<html:div class="msgCrashedText" anonid="crashedText"><!-- set at runtime --></html:div>
<!-- link href set at runtime -->
<html:div class="msgReload">&reloadPlugin.pre;<html:a class="reloadLink" anonid="reloadLink" href="">&reloadPlugin.middle;</html:a>&reloadPlugin.post;</html:div>
</html:div>
- <html:div class="installStatus" anonid="installStatus">
- <html:div class="msg msgInstallPlugin">
- <html:a class="action-link" anonid="installPluginLink" href="">&installPlugin;</html:a>
- </html:div>
- </html:div>
<html:div class="msg msgManagePlugins"><html:a class="action-link" anonid="managePluginsLink" href="">&managePlugins;</html:a></html:div>
<html:div class="submitStatus" anonid="submitStatus">
<html:div class="msg msgPleaseSubmit" anonid="pleaseSubmit">
<html:textarea class="submitComment"
anonid="submitComment"
placeholder="&report.comment;"/>
<html:div class="submitURLOptInBox">
<html:label><html:input class="submitURLOptIn" anonid="submitURLOptIn" type="checkbox"/> &report.pageURL;</html:label>
--- a/toolkit/mozapps/plugins/content/pluginProblemContent.css
+++ b/toolkit/mozapps/plugins/content/pluginProblemContent.css
@@ -120,20 +120,16 @@ html|applet:not([height]), html|applet[h
:-moz-handler-clicktoplay .msgTapToPlay,
:-moz-handler-disabled .msgDisabled,
:-moz-handler-disabled .msgManagePlugins,
:-moz-handler-blocked .msgBlocked,
:-moz-handler-crashed .msgCrashed {
display: block;
}
-.installStatus[installable] .msgInstallPlugin {
- display: block;
-}
-
.submitStatus[status] {
display: -moz-box;
-moz-box-align: center;
-moz-box-pack: center;
height: 160px;
}
.submitStatus[status="noReport"] .msgNoCrashReport,
--- a/toolkit/mozapps/plugins/jar.mn
+++ b/toolkit/mozapps/plugins/jar.mn
@@ -1,15 +1,10 @@
# 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/.
toolkit.jar:
% content mozapps %content/mozapps/
- content/mozapps/plugins/pluginInstallerWizard.xul (content/pluginInstallerWizard.xul)
- content/mozapps/plugins/pluginInstallerWizard.js (content/pluginInstallerWizard.js)
- content/mozapps/plugins/pluginInstallerWizard.css (content/pluginInstallerWizard.css)
- content/mozapps/plugins/pluginInstallerDatasource.js (content/pluginInstallerDatasource.js)
- content/mozapps/plugins/pluginInstallerService.js (content/pluginInstallerService.js)
content/mozapps/plugins/pluginProblem.xml (content/pluginProblem.xml)
content/mozapps/plugins/pluginProblemContent.css (content/pluginProblemContent.css)
content/mozapps/plugins/pluginProblemBinding.css (content/pluginProblemBinding.css)
content/mozapps/plugins/pluginFinderBinding.css (content/pluginFinderBinding.css)
--- a/toolkit/mozapps/plugins/moz.build
+++ b/toolkit/mozapps/plugins/moz.build
@@ -1,13 +1,11 @@
# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
-TEST_DIRS += ['tests']
-
EXTRA_COMPONENTS += [
'pluginGlue.manifest',
]
-JAR_MANIFESTS += ['jar.mn']
\ No newline at end of file
+JAR_MANIFESTS += ['jar.mn']
deleted file mode 100644
--- a/toolkit/mozapps/plugins/service/PluginFinderService.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 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/. */
-
-package org.mozilla.pfs;
-
-public class PluginFinderService {
-
- public org.mozilla.pfs.PluginInfo getPluginInfo(java.lang.String aMimetype, java.lang.String aClientOS, java.lang.String aLocale) {
- org.mozilla.pfs.PluginInfo response = new org.mozilla.pfs.PluginInfo();
-
- if (aMimetype.equals("application/x-shockwave-flash")) {
- response.setPid(1);
- response.setName("Flash Player");
- response.setVersion("7");
- response.setIconUrl("http://goat.austin.ibm.com:8080/flash.gif");
- response.setXPILocation("http://www.nexgenmedia.net/flashlinux/flash-linux.xpi");
- response.setInstallerShowsUI(false);
- response.setManualInstallationURL("");
- response.setLicenseURL("");
- } else if (aMimetype.equals("application/x-mtx")) {
- response.setPid(2);
- response.setName("Viewpoint Media Player");
- response.setVersion("5");
- response.setIconUrl(null);
- response.setXPILocation("http://www.nexgenmedia.net/flashlinux/invalid.xpi");
- response.setInstallerShowsUI(false);
- response.setManualInstallationURL("http://www.viewpoint.com/pub/products/vmp.html");
- response.setLicenseURL("http://www.viewpoint.com/pub/privacy.html");
- } else {
- response.setPid(-1);
- }
-
- response.setRequestedMimetype(aMimetype);
- return response;
-
- }
-}
-
deleted file mode 100644
--- a/toolkit/mozapps/plugins/service/PluginFinderService.php
+++ /dev/null
@@ -1,163 +0,0 @@
-<?php
-/* -*- Mode: php; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* 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/. */
-
-/// config bits:
-$db_server = "";
-$db_user = "";
-$db_pass = "";
-$db_name = "";
-
-// error handling
-function bail ($errstr) {
- die("Error: " . $errstr);
-}
-
-
-// major.minor.release.build[+]
-// make sure this is a valid version
-function expandversion ($vstr) {
- $v = explode('.', $vstr);
-
- if ($vstr == '' || count($v) == 0 || count($v) > 4) {
- bail ('Bogus version.');
- }
-
- $vlen = count($v);
- $ret = array();
- $hasplus = 0;
-
- for ($i = 0; $i < 4; $i++) {
- if ($i > $vlen-1) {
- // this version chunk was not specified; give 0
- $ret[] = 0;
- } else {
- $s = $v[$i];
- if ($i == 3) {
- // need to check for +
- $slen = strlen($s);
- if ($s{$slen-1} == '+') {
- $s = substr($s, 0, $slen-1);
- $hasplus = 1;
- }
- }
-
- $ret[] = intval($s);
- }
- }
-
- $ret[] = $hasplus;
-
- return $ret;
-}
-
-function vercmp ($a, $b) {
- if ($a == $b)
- return 0;
-
- $va = expandversion($a);
- $vb = expandversion($b);
-
- for ($i = 0; $i < 5; $i++)
- if ($va[$i] != $vb[$i])
- return ($vb[$i] - $va[$i]);
-
- return 0;
-}
-
-
-//
-// These are passed in the GET string
-//
-
-if (!array_key_exists('mimetype', $_GET))
- bail ("Invalid request.");
-
-$mimetype = $_GET['mimetype'];
-
-if (!array_key_exists('appID', $_GET)
- || !array_key_exists('appVersion', $_GET)
- || !array_key_exists('clientOS', $_GET))
- || !array_key_exists('chromeLocale', $_GET))
- )
- bail ("Invalid request.");
-
-$reqTargetAppGuid = $_GET['appID'];
-$reqTargetAppVersion = $_GET['appVersion'];
-$clientOS = $_GET['clientOS'];
-$chromeLocale = $_GET['chromeLocale'];
-
-// check args
-if (empty($reqTargetAppVersion) || empty($reqTargetAppGuid)) {
- bail ("Invalid request.");
-}
-
-//
-// Now to spit out the RDF. We hand-generate because the data is pretty simple.
-//
-
-if ($mimetype == "application/x-mtx") {
- $name = "Viewpoint Media Player";
- $guid = "{03F998B2-0E00-11D3-A498-00104B6EB52E}";
- $version = "5.0";
- $iconUrl = "";
- $XPILocation = "http://www.nexgenmedia.net/flashlinux/invalid.xpi";
- $InstallerShowsUI = false;
- $manualInstallationURL = "http://www.viewpoint.com/pub/products/vmp.html";
- $licenseURL = "http://www.viewpoint.com/pub/privacy.html";
-} else if ($mimetype == "application/x-shockwave-flash") {
- $name = "Flash Player";
- $guid = "{D27CDB6E-AE6D-11cf-96B8-444553540000}";
- $version = "7.0.16";
- $iconUrl = "http://goat.austin.ibm.com:8080/flash.gif";
- $XPILocation = "http://www.nexgenmedia.net/flashlinux/flash-linux.xpi";
- $InstallerShowsUI = "false";
- $manualInstallationURL = "http://www.macromedia.com/go/getflashplayer";
- $licenseURL = "http://www.macromedia.com/shockwave/download/license/desktop/";
-} else {
- $name = "";
- $guid = "-1";
- $version = "";
- $iconUrl = "";
- $XPILocation = "";
- $InstallerShowsUI = "";
- $manualInstallationURL = "";
- $licenseURL = "";
-}
-
-header("Content-type: application/xml");
-print "<?xml version=\"1.0\"?>\n";
-print "<RDF:RDF xmlns:RDF=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:pfs=\"http://www.mozilla.org/2004/pfs-rdf#\">\n\n";
-
-print "<RDF:Description about=\"urn:mozilla:plugin-results:{$mimetype}\">\n";
-
-// output list of matching plugins
-print " <pfs:plugins><RDF:Seq>\n";
-print " <RDF:li resource=\"urn:mozilla:plugin:{$guid}\"/>\n";
-print " </RDF:Seq></pfs:plugins>\n";
-print "</RDF:Description>\n\n";
-
-print "<RDF:Description about=\"urn:mozilla:plugin:{$guid}\">\n";
-print " <pfs:updates><RDF:Seq>\n";
-print " <RDF:li resource=\"urn:mozilla:plugin:{$guid}:{$version}\"/>\n";
-print " </RDF:Seq></pfs:updates>\n";
-print "</RDF:Description>\n\n";
-
-print "<RDF:Description about=\"urn:mozilla:plugin:{$guid}:{$version}\">\n";
-print " <pfs:name>{$name}</pfs:name>\n";
-print " <pfs:requestedMimetype>{$mimetype}</pfs:requestedMimetype>\n";
-print " <pfs:guid>{$guid}</pfs:guid>\n";
-print " <pfs:version>{$version}</pfs:version>\n";
-print " <pfs:IconUrl>{$iconUrl}</pfs:IconUrl>\n";
-print " <pfs:XPILocation>{$XPILocation}</pfs:XPILocation>\n";
-print " <pfs:InstallerShowsUI>{$InstallerShowsUI}</pfs:InstallerShowsUI>\n";
-print " <pfs:manualInstallationURL>{$manualInstallationURL}</pfs:manualInstallationURL>\n";
-print " <pfs:licenseURL>{$licenseURL}</pfs:licenseURL>\n";
-print "</RDF:Description>\n\n";
-
-print "</RDF:RDF>\n";
-
-?>
-
deleted file mode 100644
--- a/toolkit/mozapps/plugins/service/PluginInfo.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 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/. */
-
-package org.mozilla.pfs;
-
-public class PluginInfo {
- private java.lang.String name;
- private int pid;
- private java.lang.String version;
- private java.lang.String iconUrl;
- private java.lang.String XPILocation;
- private boolean installerShowsUI;
- private java.lang.String manualInstallationURL;
- private java.lang.String requestedMimetype;
- private java.lang.String licenseURL;
-
- public PluginInfo() {
- }
-
- public java.lang.String getName() {
- return name;
- }
-
- public void setName(java.lang.String name) {
- this.name = name;
- }
-
- public int getPid() {
- return pid;
- }
-
- public void setPid(int pid) {
- this.pid = pid;
- }
-
- public java.lang.String getVersion() {
- return version;
- }
-
- public void setVersion(java.lang.String version) {
- this.version = version;
- }
-
- public java.lang.String getIconUrl() {
- return iconUrl;
- }
-
- public void setIconUrl(java.lang.String iconUrl) {
- this.iconUrl = iconUrl;
- }
-
- public java.lang.String getXPILocation() {
- return XPILocation;
- }
-
- public void setXPILocation(java.lang.String XPILocation) {
- this.XPILocation = XPILocation;
- }
-
- public boolean isInstallerShowsUI() {
- return installerShowsUI;
- }
-
- public void setInstallerShowsUI(boolean installerShowsUI) {
- this.installerShowsUI = installerShowsUI;
- }
-
- public java.lang.String getManualInstallationURL() {
- return manualInstallationURL;
- }
-
- public void setManualInstallationURL(java.lang.String manualInstallationURL) {
- this.manualInstallationURL = manualInstallationURL;
- }
-
- public java.lang.String getRequestedMimetype() {
- return requestedMimetype;
- }
-
- public void setRequestedMimetype(java.lang.String requestedMimetype) {
- this.requestedMimetype = requestedMimetype;
- }
-
- public java.lang.String getLicenseURL() {
- return licenseURL;
- }
-
- public void setLicenseURL(java.lang.String licenseURL) {
- this.licenseURL = licenseURL;
- }
-}
-
deleted file mode 100644
--- a/toolkit/mozapps/plugins/service/make.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh
-# 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/.
-
-
-export CATALINA_HOME=/var/tomcat-4.1.27
-export AXIS_HOME=/var/tomcat-4.1.27/axis-1_1
-export CLASSPATH=$AXIS_HOME/lib/axis.jar:$AXIS_HOME/lib/commons-discovery.jar:$AXIS_HOME/lib/commons-logging.jar:$AXIS_HOME/lib/jaxrpc.jar:$AXIS_HOME/lib/saaj.jar:$AXIS_HOME/lib/log4j-1.2.4.jar:$AXIS_HOME/lib/wsdl4j.jar:$CATALINA_HOME/webapps/axis/WEB-INF/classes
-
-name="PluginFinderService"
-pkg="org.mozilla.pfs"
-pkg_dir=$CATALINA_HOME/webapps/axis/WEB-INF/classes/org/mozilla/pfs
-
-echo "Copying Source..."
-
-rm -f $pkg_dir/*.*
-cp -f *.java $pkg_dir
-
-echo "Compiling Source..."
-javac -g $pkg_dir/*.java
-
-echo "Generating WSDL..."
-java org.apache.axis.wsdl.Java2WSDL -o $name.wsdl \
- -l"http://localhost:8080/axis/services/$name" \
- -n "urn:$name" -p"$pkg" "urn:$name" $pkg.$name
-
-echo "Generating Stubs from WSDL..."
-rm -f org/mozilla/pfs/*.*
-java org.apache.axis.wsdl.WSDL2Java -o . -s -S true -Nurn:$name $pkg $name.wsdl
-
-# make our PluginFinderService.java looking the SoapBindingImpl syntax and replace
-cp $name.java $name.temp
-regexp="s/$name/${name}SoapBindingImpl/g"
-sed -e $regexp $name.temp > $name.temp2
-rm $name.temp
-
-regexp="s/public class ${name}SoapBindingImpl/public class ${name}SoapBindingImpl implements ${pkg}.${name}/g"
-sed -e "$regexp" $name.temp2 > $name.temp
-rm $name.temp2
-mv $name.temp org/mozilla/pfs/${name}SoapBindingImpl.java
-
-rm -f $pkg_dir/*.java
-cp org/mozilla/pfs/* $pkg_dir/
-javac $pkg_dir/*.java
-
-echo "Deploying Web Service..."
-java org.apache.axis.client.AdminClient -p 8080 $pkg_dir/deploy.wsdd
-
-echo "All Done. Hoorah!"
deleted file mode 100644
index 1122537f7af6f3d430ba421830afb18b36756385..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/mozapps/plugins/tests/BadPlugin.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-int main(int argc, char** argv)
-{
- return 1;
-}
deleted file mode 100644
index c4ade90d5bda85d83ec3ade8ee2b58f59d9d3eed..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/toolkit/mozapps/plugins/tests/GoodPlugin.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-int main(int argc, char** argv)
-{
- return 0;
-}
deleted file mode 100644
--- a/toolkit/mozapps/plugins/tests/Makefile.in
+++ /dev/null
@@ -1,9 +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/.
-
-TESTROOT = $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir)
-
-PROGRAMS_DEST = $(TESTROOT)
-
-include $(topsrcdir)/config/rules.mk
deleted file mode 100644
--- a/toolkit/mozapps/plugins/tests/browser.ini
+++ /dev/null
@@ -1,9 +0,0 @@
-[DEFAULT]
-support-files =
- pfs_bug435788_1.rdf
- pfs_bug435788_2.rdf
- GoodExtension.xpi
- BadExtension.xpi
-
-[browser_bug435788.js]
-disabled = disabled for leaks--bug-751100
deleted file mode 100644
--- a/toolkit/mozapps/plugins/tests/browser_bug435788.js
+++ /dev/null
@@ -1,461 +0,0 @@
-const TEST_ROOT = "http://example.com/browser/toolkit/mozapps/plugins/tests/";
-
-let tmp = {};
-Components.utils.import("resource://gre/modules/AddonManager.jsm", tmp);
-let AddonManager = tmp.AddonManager;
-
-var gPFS;
-
-function test() {
- waitForExplicitFinish();
-
- prepare_test_1();
-}
-
-function finishTest() {
- Services.prefs.clearUserPref("pfs.datasource.url");
- finish();
-}
-
-// Gets the number of plugin items in the detected list
-function getListCount() {
- var list = gPFS.document.getElementById("pluginList");
- return list.childNodes.length;
-}
-
-// Gets wether the list contains a particular plugin name
-function hasListItem(name, version) {
- var label = name + " " + (version ? version : "");
- var list = gPFS.document.getElementById("pluginList");
- for (var i = 0; i < list.childNodes.length; i++) {
- if (list.childNodes[i].label == label)
- return true;
- }
- return false;
-}
-
-// Gets the number of plugin results
-function getResultCount() {
- var list = gPFS.document.getElementById("pluginResultList");
- return list.childNodes.length;
-}
-
-// Gets the plugin result for a particular plugin name
-function getResultItem(name, version) {
- var label = name + " " + (version ? version : "");
- var list = gPFS.document.getElementById("pluginResultList");
- for (var i = 0; i < list.childNodes.length; i++) {
- if (list.childNodes[i].childNodes[1].value == label) {
- var item = {
- name: name,
- version: version,
- status: null
- };
- if (list.childNodes[i].childNodes[2].tagName == "label")
- item.status = list.childNodes[i].childNodes[2].value;
- return item;
- }
- }
- return null;
-}
-
-// Logs the currently displaying wizard page
-function page_shown() {
- function show_button_state(name) {
- var button = gPFS.document.documentElement.getButton(name);
- info("Button " + name + ". hidden: " + button.hidden +
- ", disabled: " + button.disabled);
- }
-
- info("Page shown: " +
- gPFS.document.documentElement.currentPage.getAttribute("label"));
- show_button_state("next");
- show_button_state("finish");
-}
-
-function pfs_loaded() {
- info("PFS loaded");
- var docEle = gPFS.document.documentElement;
-
- var onwizardfinish = function () {
- info("wizardfinish event");
- };
- var onwizardnext = function () {
- info("wizardnext event");
- };
-
- docEle.addEventListener("pageshow", page_shown, false);
- docEle.addEventListener("wizardfinish", onwizardfinish, false);
- docEle.addEventListener("wizardnext", onwizardnext, false);
-
- gPFS.addEventListener("unload", function() {
- info("unload event");
- gPFS.removeEventListener("unload", arguments.callee, false);
- docEle.removeEventListener("pageshow", page_shown, false);
- docEle.removeEventListener("wizardfinish", onwizardfinish, false);
- docEle.removeEventListener("wizardnext", onwizardnext, false);
- }, false);
-
- page_shown();
-}
-
-function startTest(num, missingPluginsArray) {
- info("Test " + num);
-
- gPFS = window.openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul",
- "PFSWindow", "chrome,centerscreen,resizable=yes",
- {plugins: missingPluginsArray});
-
- var testScope = this;
-
- gPFS.addEventListener("load", function () {
- gPFS.removeEventListener("load", arguments.callee, false);
-
- pfs_loaded();
-
- var seenAvailable = false;
- var expectAvailable = typeof testScope["test_" + num + "_available"] == "function";
-
- function availableListener() {
- seenAvailable = true;
-
- if (expectAvailable) {
- executeSoon(function () {
- testScope["test_" + num + "_available"]();
- gPFS.document.documentElement.getButton("next").click();
- });
- } else {
- ok(false, "Should not have found plugins to install");
- }
- }
-
- function completeListener() {
- if (expectAvailable)
- ok(seenAvailable, "Should have seen the list of available plugins");
-
- executeSoon(testScope["test_" + num + "_complete"]);
- }
-
- gPFS.document.documentElement.wizardPages[1].addEventListener("pageshow", availableListener);
- gPFS.document.documentElement.wizardPages[4].addEventListener("pageshow", completeListener);
-
- gPFS.addEventListener("unload", function () {
- gPFS.removeEventListener("unload", arguments.callee, false);
- gPFS.document.documentElement.wizardPages[1].removeEventListener("pageshow", availableListener, false);
- gPFS.document.documentElement.wizardPages[4].removeEventListener("pageshow", completeListener, false);
-
- num++;
- if (typeof testScope["prepare_test_" + num] == "function")
- testScope["prepare_test_" + num]();
- else
- finishTest();
- });
- });
-}
-
-function clickFinish() {
- var finish = gPFS.document.documentElement.getButton("finish");
- ok(!finish.hidden, "Finish button should not be hidden");
- ok(!finish.disabled, "Finish button should not be disabled");
- finish.click();
-}
-
-// Test a working installer
-function prepare_test_1() {
- Services.prefs.setCharPref("pfs.datasource.url", TEST_ROOT + "pfs_bug435788_1.rdf");
-
- var missingPluginsArray = {
- "application/x-working-plugin": {
- mimetype: "application/x-working-plugin",
- pluginsPage: ""
- }
- };
-
- startTest(1, missingPluginsArray);
-}
-
-function test_1_available() {
- is(getListCount(), 1, "Should have found 1 plugin to install");
- ok(hasListItem("Test plugin 1", null), "Should have seen the right plugin name");
-}
-
-function test_1_complete() {
- is(getResultCount(), 1, "Should have attempted to install 1 plugin");
- var item = getResultItem("Test plugin 1", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Installed", "Should have been a successful install");
-
- clickFinish();
-}
-
-// Test a broken installer (returns exit code 1)
-function prepare_test_2() {
- var missingPluginsArray = {
- "application/x-broken-installer": {
- mimetype: "application/x-broken-installer",
- pluginsPage: ""
- }
- };
-
- startTest(2, missingPluginsArray);
-}
-
-function test_2_available() {
- is(getListCount(), 1, "Should have found 1 plugin to install");
- ok(hasListItem("Test plugin 2", null), "Should have seen the right plugin name");
-}
-
-function test_2_complete() {
- is(getResultCount(), 1, "Should have attempted to install 1 plugin");
- var item = getResultItem("Test plugin 2", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Failed", "Should have been a failed install");
-
- clickFinish();
-}
-
-// Test both working and broken together
-function prepare_test_3() {
- var missingPluginsArray = {
- "application/x-working-plugin": {
- mimetype: "application/x-working-plugin",
- pluginsPage: ""
- },
- "application/x-broken-installer": {
- mimetype: "application/x-broken-installer",
- pluginsPage: ""
- }
- };
-
- startTest(3, missingPluginsArray);
-}
-
-function test_3_available() {
- is(getListCount(), 2, "Should have found 2 plugins to install");
- ok(hasListItem("Test plugin 1", null), "Should have seen the right plugin name");
- ok(hasListItem("Test plugin 2", null), "Should have seen the right plugin name");
-}
-
-function test_3_complete() {
- is(getResultCount(), 2, "Should have attempted to install 2 plugins");
- var item = getResultItem("Test plugin 1", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Installed", "Should have been a successful install");
- item = getResultItem("Test plugin 2", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Failed", "Should have been a failed install");
-
- clickFinish();
-}
-
-// Test an installer with a bad hash
-function prepare_test_4() {
- var missingPluginsArray = {
- "application/x-broken-plugin-hash": {
- mimetype: "application/x-broken-plugin-hash",
- pluginsPage: ""
- }
- };
-
- startTest(4, missingPluginsArray);
-}
-
-function test_4_available() {
- is(getListCount(), 1, "Should have found 1 plugin to install");
- ok(hasListItem("Test plugin 3", null), "Should have seen the right plugin name");
-}
-
-function test_4_complete() {
- is(getResultCount(), 1, "Should have attempted to install 1 plugin");
- var item = getResultItem("Test plugin 3", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Failed", "Should have not been a successful install");
-
- clickFinish();
-}
-
-// Test a working xpi
-function prepare_test_5() {
- var missingPluginsArray = {
- "application/x-working-extension": {
- mimetype: "application/x-working-extension",
- pluginsPage: ""
- }
- };
-
- startTest(5, missingPluginsArray);
-}
-
-function test_5_available() {
- is(getListCount(), 1, "Should have found 1 plugin to install");
- ok(hasListItem("Test extension 1", null), "Should have seen the right plugin name");
-}
-
-function test_5_complete() {
- is(getResultCount(), 1, "Should have attempted to install 1 plugin");
- var item = getResultItem("Test extension 1", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Installed", "Should have been a successful install");
-
- AddonManager.getAllInstalls(function(installs) {
- is(installs.length, 1, "Should be just one install");
- is(installs[0].state, AddonManager.STATE_INSTALLED, "Should be fully installed");
- is(installs[0].addon.id, "bug435788_1@tests.mozilla.org", "Should have installed the extension");
- installs[0].cancel();
-
- clickFinish();
- });
-}
-
-// Test a broke xpi (no install.rdf)
-function prepare_test_6() {
- var missingPluginsArray = {
- "application/x-broken-extension": {
- mimetype: "application/x-broken-extension",
- pluginsPage: ""
- }
- };
-
- startTest(6, missingPluginsArray);
-}
-
-function test_6_available() {
- is(getListCount(), 1, "Should have found 1 plugin to install");
- ok(hasListItem("Test extension 2", null), "Should have seen the right plugin name");
-}
-
-function test_6_complete() {
- is(getResultCount(), 1, "Should have attempted to install 1 plugin");
- var item = getResultItem("Test extension 2", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Failed", "Should have been a failed install");
-
- clickFinish();
-}
-
-// Test both working and broken xpi
-function prepare_test_7() {
- var missingPluginsArray = {
- "application/x-working-extension": {
- mimetype: "application/x-working-extension",
- pluginsPage: ""
- },
- "application/x-broken-extension": {
- mimetype: "application/x-broken-extension",
- pluginsPage: ""
- }
- };
-
- startTest(7, missingPluginsArray);
-}
-
-function test_7_available() {
- is(getListCount(), 2, "Should have found 2 plugins to install");
- ok(hasListItem("Test extension 1", null), "Should have seen the right plugin name");
- ok(hasListItem("Test extension 2", null), "Should have seen the right plugin name");
-}
-
-function test_7_complete() {
- is(getResultCount(), 2, "Should have attempted to install 2 plugins");
- var item = getResultItem("Test extension 1", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Installed", "Should have been a failed install");
- item = getResultItem("Test extension 2", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Failed", "Should have been a failed install");
-
- AddonManager.getAllInstalls(function(installs) {
- is(installs.length, 1, "Should be one active installs");
- installs[0].cancel();
-
- clickFinish();
- });
-}
-
-// Test an xpi with a bad hash
-function prepare_test_8() {
- var missingPluginsArray = {
- "application/x-broken-extension-hash": {
- mimetype: "application/x-broken-extension-hash",
- pluginsPage: ""
- }
- };
-
- startTest(8, missingPluginsArray);
-}
-
-function test_8_available() {
- is(getListCount(), 1, "Should have found 1 plugin to install");
- ok(hasListItem("Test extension 3", null), "Should have seen the right plugin name");
-}
-
-function test_8_complete() {
- is(getResultCount(), 1, "Should have attempted to install 1 plugin");
- var item = getResultItem("Test extension 3", null);
- ok(item, "Should have seen the installed item");
- is(item.status, "Failed", "Should have not been a successful install");
-
- AddonManager.getAllInstalls(function(installs) {
- is(installs.length, 0, "Should not be any installs");
-
- clickFinish();
- });
-}
-
-// Test when no plugin exists in the datasource
-function prepare_test_9() {
- var missingPluginsArray = {
- "application/x-unknown-plugin": {
- mimetype: "application/x-unknown-plugin",
- pluginsPage: ""
- }
- };
-
- startTest(9, missingPluginsArray);
-}
-
-function test_9_complete() {
- is(getResultCount(), 0, "Should have found no plugins");
-
- clickFinish();
-}
-
-// Test when the datasource is invalid xml
-function prepare_test_10() {
- Services.prefs.setCharPref("pfs.datasource.url", TEST_ROOT + "pfs_bug435788_2.rdf");
-
- var missingPluginsArray = {
- "application/x-broken-xml": {
- mimetype: "application/x-broken-xml",
- pluginsPage: ""
- }
- };
-
- startTest(10, missingPluginsArray);
-}
-
-function test_10_complete() {
- is(getResultCount(), 0, "Should have found no plugins");
-
- clickFinish();
-}
-
-// Test when no datasource is returned
-function prepare_test_11() {
- Services.prefs.setCharPref("pfs.datasource.url", TEST_ROOT + "pfs_bug435788_foo.rdf");
-
- var missingPluginsArray = {
- "application/x-missing-xml": {
- mimetype: "application/x-missing-xml",
- pluginsPage: ""
- }
- };
-
- startTest(11, missingPluginsArray);
-}
-
-function test_11_complete() {
- is(getResultCount(), 0, "Should have found no plugins");
-
- clickFinish();
-}
deleted file mode 100644
--- a/toolkit/mozapps/plugins/tests/moz.build
+++ /dev/null
@@ -1,13 +0,0 @@
-# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-SimplePrograms([
- 'BadPlugin',
- 'GoodPlugin',
-])
-
-BROWSER_CHROME_MANIFESTS += ['browser.ini']
-USE_STATIC_LIBS = True
deleted file mode 100644
--- a/toolkit/mozapps/plugins/tests/pfs_bug435788_1.rdf
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:pfs="http://www.mozilla.org/2004/pfs-rdf#">
-
-<RDF:Description about="urn:mozilla:plugin-results:application/x-working-plugin">
- <pfs:plugins><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{8d3ab839-e03e-41a5-acd3-be1eabf94810}"/>
- </RDF:Seq></pfs:plugins>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{8d3ab839-e03e-41a5-acd3-be1eabf94810}">
- <pfs:updates><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{8d3ab839-e03e-41a5-acd3-be1eabf94810}:"/>
- </RDF:Seq></pfs:updates>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{8d3ab839-e03e-41a5-acd3-be1eabf94810}:">
- <pfs:name>Test plugin 1</pfs:name>
- <pfs:requestedMimetype>application/x-working-plugin</pfs:requestedMimetype>
- <pfs:guid>{8d3ab839-e03e-41a5-acd3-be1eabf94810}</pfs:guid>
- <pfs:version/>
- <pfs:IconUrl/>
- <pfs:InstallerLocation>http://example.com/browser/toolkit/mozapps/plugins/tests/GoodPlugin</pfs:InstallerLocation>
- <pfs:InstallerHash/>
- <pfs:InstallerShowsUI>false</pfs:InstallerShowsUI>
- <pfs:manualInstallationURL>http://www.mozilla.com</pfs:manualInstallationURL>
- <pfs:licenseURL/>
- <pfs:needsRestart>false</pfs:needsRestart>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin-results:application/x-broken-installer">
- <pfs:plugins><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{949a51e0-c633-4d9e-bf3a-6e0c2bc6e508}"/>
- </RDF:Seq></pfs:plugins>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{949a51e0-c633-4d9e-bf3a-6e0c2bc6e508}">
- <pfs:updates><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{949a51e0-c633-4d9e-bf3a-6e0c2bc6e508}:"/>
- </RDF:Seq></pfs:updates>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{949a51e0-c633-4d9e-bf3a-6e0c2bc6e508}:">
- <pfs:name>Test plugin 2</pfs:name>
- <pfs:requestedMimetype>application/x-broken-installer</pfs:requestedMimetype>
- <pfs:guid>{949a51e0-c633-4d9e-bf3a-6e0c2bc6e508}</pfs:guid>
- <pfs:version/>
- <pfs:IconUrl/>
- <pfs:InstallerLocation>http://example.com/browser/toolkit/mozapps/plugins/tests/BadPlugin</pfs:InstallerLocation>
- <pfs:InstallerHash/>
- <pfs:InstallerShowsUI>false</pfs:InstallerShowsUI>
- <pfs:manualInstallationURL>http://www.mozilla.com</pfs:manualInstallationURL>
- <pfs:licenseURL/>
- <pfs:needsRestart>false</pfs:needsRestart>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin-results:application/x-broken-plugin-hash">
- <pfs:plugins><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{cf1765cc-f962-4680-8a4d-2ba13971a24f}"/>
- </RDF:Seq></pfs:plugins>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{cf1765cc-f962-4680-8a4d-2ba13971a24f}">
- <pfs:updates><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{cf1765cc-f962-4680-8a4d-2ba13971a24f}:"/>
- </RDF:Seq></pfs:updates>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{cf1765cc-f962-4680-8a4d-2ba13971a24f}:">
- <pfs:name>Test plugin 3</pfs:name>
- <pfs:requestedMimetype>application/x-broken-plugin-hash</pfs:requestedMimetype>
- <pfs:guid>{8d3ab839-e03e-41a5-acd3-be1eabf94810}</pfs:guid>
- <pfs:version/>
- <pfs:IconUrl/>
- <pfs:InstallerLocation>http://example.com/browser/toolkit/mozapps/plugins/tests/GoodPlugin</pfs:InstallerLocation>
- <pfs:InstallerHash>sha1:foo</pfs:InstallerHash>
- <pfs:InstallerShowsUI>false</pfs:InstallerShowsUI>
- <pfs:manualInstallationURL>http://www.mozilla.com</pfs:manualInstallationURL>
- <pfs:licenseURL/>
- <pfs:needsRestart>false</pfs:needsRestart>
-</RDF:Description>
-
-
-<RDF:Description about="urn:mozilla:plugin-results:application/x-working-extension">
- <pfs:plugins><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{2fdd6830-66fe-43e7-8ef6-ce49998c8926}"/>
- </RDF:Seq></pfs:plugins>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{2fdd6830-66fe-43e7-8ef6-ce49998c8926}">
- <pfs:updates><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{2fdd6830-66fe-43e7-8ef6-ce49998c8926}:"/>
- </RDF:Seq></pfs:updates>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{2fdd6830-66fe-43e7-8ef6-ce49998c8926}:">
- <pfs:name>Test extension 1</pfs:name>
- <pfs:requestedMimetype>application/x-working-extension</pfs:requestedMimetype>
- <pfs:guid>{2fdd6830-66fe-43e7-8ef6-ce49998c8926}</pfs:guid>
- <pfs:version/>
- <pfs:IconUrl/>
- <pfs:XPILocation>http://example.com/browser/toolkit/mozapps/plugins/tests/GoodExtension.xpi</pfs:XPILocation>
- <pfs:XPIHash>sha1:ccda7915ba891cc6fd9d0874b8042be2ecaa2d65</pfs:XPIHash>
- <pfs:InstallerShowsUI>false</pfs:InstallerShowsUI>
- <pfs:manualInstallationURL>http://www.mozilla.com</pfs:manualInstallationURL>
- <pfs:licenseURL/>
- <pfs:needsRestart>false</pfs:needsRestart>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin-results:application/x-broken-extension">
- <pfs:plugins><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{91fdf294-3a51-48c6-b5e8-423b0eb4e84e}"/>
- </RDF:Seq></pfs:plugins>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{91fdf294-3a51-48c6-b5e8-423b0eb4e84e}">
- <pfs:updates><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{91fdf294-3a51-48c6-b5e8-423b0eb4e84e}:"/>
- </RDF:Seq></pfs:updates>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{91fdf294-3a51-48c6-b5e8-423b0eb4e84e}:">
- <pfs:name>Test extension 2</pfs:name>
- <pfs:requestedMimetype>application/x-broken-extension</pfs:requestedMimetype>
- <pfs:guid>{91fdf294-3a51-48c6-b5e8-423b0eb4e84e}</pfs:guid>
- <pfs:version/>
- <pfs:IconUrl/>
- <pfs:XPILocation>http://example.com/browser/toolkit/mozapps/plugins/tests/BadExtension.xpi</pfs:XPILocation>
- <pfs:XPIHash/>
- <pfs:InstallerShowsUI>false</pfs:InstallerShowsUI>
- <pfs:manualInstallationURL>http://www.mozilla.com</pfs:manualInstallationURL>
- <pfs:licenseURL/>
- <pfs:needsRestart>false</pfs:needsRestart>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin-results:application/x-broken-extension-hash">
- <pfs:plugins><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{889d0f32-4c77-4a57-8be1-44d109a210e4}"/>
- </RDF:Seq></pfs:plugins>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{889d0f32-4c77-4a57-8be1-44d109a210e4}">
- <pfs:updates><RDF:Seq>
- <RDF:li resource="urn:mozilla:plugin:{889d0f32-4c77-4a57-8be1-44d109a210e4}:"/>
- </RDF:Seq></pfs:updates>
-</RDF:Description>
-
-<RDF:Description about="urn:mozilla:plugin:{889d0f32-4c77-4a57-8be1-44d109a210e4}:">
- <pfs:name>Test extension 3</pfs:name>
- <pfs:requestedMimetype>application/x-broken-extension-hash</pfs:requestedMimetype>
- <pfs:guid>{889d0f32-4c77-4a57-8be1-44d109a210e4}</pfs:guid>
- <pfs:version/>
- <pfs:IconUrl/>
- <pfs:XPILocation>http://example.com/browser/toolkit/mozapps/plugins/tests/GoodExtension.xpi</pfs:XPILocation>
- <pfs:XPIHash>sha1:3504e7bd87bad1246b7a016b29bdb50fe41dbc83</pfs:XPIHash>
- <pfs:InstallerShowsUI>false</pfs:InstallerShowsUI>
- <pfs:manualInstallationURL>http://www.mozilla.com</pfs:manualInstallationURL>
- <pfs:licenseURL/>
- <pfs:needsRestart>false</pfs:needsRestart>
-</RDF:Description>
-
-</RDF:RDF>
deleted file mode 100644
--- a/toolkit/mozapps/plugins/tests/pfs_bug435788_2.rdf
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:pfs="http://www.mozilla.org/2004/pfs-rdf#">
-
-</RDF>
--- a/toolkit/themes/windows/mozapps/jar.mn
+++ b/toolkit/themes/windows/mozapps/jar.mn
@@ -74,17 +74,16 @@ toolkit.jar:
skin/classic/mozapps/plugins/contentPluginStripe.png (../../shared/plugins/contentPluginStripe.png)
skin/classic/mozapps/plugins/notifyPluginCrashed.png (plugins/pluginGeneric-16.png)
skin/classic/mozapps/plugins/notifyPluginGeneric.png (plugins/pluginGeneric-16.png)
skin/classic/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric.png)
skin/classic/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked.png)
skin/classic/mozapps/plugins/pluginBlocked-64.png (plugins/pluginBlocked-64.png)
skin/classic/mozapps/plugins/pluginGeneric-16.png (plugins/pluginGeneric-16.png)
skin/classic/mozapps/plugins/pluginHelp-16.png (plugins/pluginHelp-16.png)
- skin/classic/mozapps/plugins/pluginInstallerWizard.css (plugins/pluginInstallerWizard.css)
skin/classic/mozapps/profile/profileicon.png (profile/profileicon.png)
skin/classic/mozapps/profile/profileSelection.css (profile/profileSelection.css)
skin/classic/mozapps/update/downloadButtons.png (update/downloadButtons.png)
skin/classic/mozapps/update/updates.css (update/updates.css)
skin/classic/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
* skin/classic/mozapps/xpinstall/xpinstallConfirm.css (extensions/xpinstallConfirm.css)
skin/classic/mozapps/xpinstall/xpinstallItemGeneric.png (extensions/extensionGeneric.png)
@@ -158,17 +157,16 @@ toolkit.jar:
skin/classic/aero/mozapps/plugins/contentPluginStripe.png (../../shared/plugins/contentPluginStripe.png)
skin/classic/aero/mozapps/plugins/notifyPluginCrashed.png (plugins/pluginGeneric-16-aero.png)
skin/classic/aero/mozapps/plugins/notifyPluginGeneric.png (plugins/pluginGeneric-16-aero.png)
skin/classic/aero/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric-aero.png)
skin/classic/aero/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked-aero.png)
skin/classic/aero/mozapps/plugins/pluginBlocked-64.png (plugins/pluginBlocked-64.png)
skin/classic/aero/mozapps/plugins/pluginGeneric-16.png (plugins/pluginGeneric-16-aero.png)
skin/classic/aero/mozapps/plugins/pluginHelp-16.png (plugins/pluginHelp-16.png)
- skin/classic/aero/mozapps/plugins/pluginInstallerWizard.css (plugins/pluginInstallerWizard.css)
skin/classic/aero/mozapps/profile/profileicon.png (profile/profileicon-aero.png)
skin/classic/aero/mozapps/profile/profileSelection.css (profile/profileSelection.css)
skin/classic/aero/mozapps/update/downloadButtons.png (update/downloadButtons-aero.png)
skin/classic/aero/mozapps/update/updates.css (update/updates.css)
skin/classic/aero/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
* skin/classic/aero/mozapps/xpinstall/xpinstallConfirm.css (extensions/xpinstallConfirm.css)
skin/classic/aero/mozapps/xpinstall/xpinstallItemGeneric.png (extensions/extensionGeneric-aero.png)
#endif