--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -833,16 +833,17 @@ function HandleAppCommandEvent(evt) {
}
function prepareForStartup() {
gBrowser.addEventListener("DOMUpdatePageReport", gPopupBlockerObserver.onUpdatePageReport, false);
// Note: we need to listen to untrusted events, because the pluginfinder XBL
// binding can't fire trusted ones (runs with page privileges).
gBrowser.addEventListener("PluginNotFound", gMissingPluginInstaller.newMissingPlugin, true, true);
gBrowser.addEventListener("PluginBlocklisted", gMissingPluginInstaller.newMissingPlugin, true, true);
+ gBrowser.addEventListener("PluginDisabled", gMissingPluginInstaller.newDisabledPlugin, true, true);
gBrowser.addEventListener("NewPluginInstalled", gMissingPluginInstaller.refreshBrowser, false);
gBrowser.addEventListener("NewTab", BrowserOpenTab, false);
window.addEventListener("AppCommand", HandleAppCommandEvent, true);
var webNavigation;
try {
// Create the browser instance component.
appCore = Components.classes["@mozilla.org/appshell/component/browser/instance;1"]
@@ -5421,30 +5422,35 @@ var MailIntegration = {
var extProtocolSvc =
Components.classes["@mozilla.org/uriloader/external-protocol-service;1"]
.getService(Components.interfaces.nsIExternalProtocolService);
if (extProtocolSvc)
extProtocolSvc.loadUrl(aURL);
}
};
-function BrowserOpenAddonsMgr()
+function BrowserOpenAddonsMgr(aPane)
{
const EMTYPE = "Extension:Manager";
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var theEM = wm.getMostRecentWindow(EMTYPE);
if (theEM) {
theEM.focus();
+ if (aPane)
+ theEM.showView(aPane);
return;
}
const EMURL = "chrome://mozapps/content/extensions/extensions.xul";
const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable";
- window.openDialog(EMURL, "", EMFEATURES);
+ if (aPane)
+ window.openDialog(EMURL, "", EMFEATURES, aPane);
+ else
+ window.openDialog(EMURL, "", EMFEATURES);
}
function escapeNameValuePair(aName, aValue, aIsFormUrlEncoded)
{
if (aIsFormUrlEncoded)
return escape(aName + "=" + aValue);
else
return escape(aName) + "=" + escape(aValue);
@@ -5513,19 +5519,16 @@ function AddKeywordForSearchField()
}
function SwitchDocumentDirection(aWindow) {
aWindow.document.dir = (aWindow.document.dir == "ltr" ? "rtl" : "ltr");
for (var run = 0; run < aWindow.frames.length; run++)
SwitchDocumentDirection(aWindow.frames[run]);
}
-function missingPluginInstaller(){
-}
-
function getPluginInfo(pluginElement)
{
var tagMimetype;
var pluginsPage;
if (pluginElement instanceof HTMLAppletElement) {
tagMimetype = "application/x-java-vm";
} else {
if (pluginElement instanceof HTMLObjectElement) {
@@ -5551,29 +5554,37 @@ function getPluginInfo(pluginElement)
if (tagMimetype == "") {
tagMimetype = pluginElement.type;
}
}
return {mimetype: tagMimetype, pluginsPage: pluginsPage};
}
+function missingPluginInstaller(){
+}
+
missingPluginInstaller.prototype.installSinglePlugin = function(aEvent){
var missingPluginsArray = {};
var pluginInfo = getPluginInfo(aEvent.target);
missingPluginsArray[pluginInfo.mimetype] = pluginInfo;
if (missingPluginsArray) {
window.openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul",
"PFSWindow", "chrome,centerscreen,resizable=yes",
{plugins: missingPluginsArray, browser: gBrowser.selectedBrowser});
}
- aEvent.preventDefault();
+ aEvent.stopPropagation();
+}
+
+missingPluginInstaller.prototype.managePlugins = function(aEvent){
+ BrowserOpenAddonsMgr("plugins");
+ aEvent.stopPropagation();
}
missingPluginInstaller.prototype.newMissingPlugin = function(aEvent){
// Since we are expecting also untrusted events, make sure
// that the target is a plugin
if (!(aEvent.target instanceof Components.interfaces.nsIObjectLoadingContent))
return;
@@ -5581,89 +5592,92 @@ missingPluginInstaller.prototype.newMiss
// that the user can click the plugin replacement to get the new
// plugin. Object tags can, and often do, deal with that themselves,
// so don't stomp on the page developers toes.
if (aEvent.type != "PluginBlocklisted" &&
!(aEvent.target instanceof HTMLObjectElement)) {
aEvent.target.addEventListener("click",
gMissingPluginInstaller.installSinglePlugin,
- false);
+ true);
}
try {
if (gPrefService.getBoolPref("plugins.hide_infobar_for_missing_plugin"))
return;
} catch (ex) {} // if the pref is missing, treat it as false, which shows the infobar
- const browsers = gBrowser.mPanelContainer.childNodes;
-
- var contentWindow = aEvent.target.ownerDocument.defaultView.top;
-
- var i = 0;
- for (; i < browsers.length; i++) {
- if (gBrowser.getBrowserAtIndex(i).contentWindow == contentWindow)
- break;
- }
-
- var browser = gBrowser.getBrowserAtIndex(i);
+ var browser = gBrowser.getBrowserForDocument(aEvent.target.ownerDocument
+ .defaultView.top.document);
if (!browser.missingPlugins)
browser.missingPlugins = {};
var pluginInfo = getPluginInfo(aEvent.target);
browser.missingPlugins[pluginInfo.mimetype] = pluginInfo;
var notificationBox = gBrowser.getNotificationBox(browser);
// If there is already a missing plugin notification then do nothing
if (notificationBox.getNotificationWithValue("missing-plugins"))
return;
-
- var bundle_browser = document.getElementById("bundle_browser");
var blockedNotification = notificationBox.getNotificationWithValue("blocked-plugins");
- const priority = notificationBox.PRIORITY_WARNING_MEDIUM;
- const iconURL = "chrome://mozapps/skin/plugins/pluginGeneric-16.png";
-
- if (aEvent.type == "PluginBlocklisted" && !blockedNotification) {
- var messageString = bundle_browser.getString("blockedpluginsMessage.title");
- var buttons = [{
- label: bundle_browser.getString("blockedpluginsMessage.infoButton.label"),
- accessKey: bundle_browser.getString("blockedpluginsMessage.infoButton.accesskey"),
+ var priority = notificationBox.PRIORITY_WARNING_MEDIUM;
+
+ if (aEvent.type == "PluginBlocklisted") {
+ if (blockedNotification)
+ return;
+
+ let iconURL = "chrome://mozapps/skin/plugins/pluginBlocked-16.png";
+ let messageString = gNavigatorBundle.getString("blockedpluginsMessage.title");
+ let buttons = [{
+ label: gNavigatorBundle.getString("blockedpluginsMessage.infoButton.label"),
+ accessKey: gNavigatorBundle.getString("blockedpluginsMessage.infoButton.accesskey"),
popup: null,
callback: blocklistInfo
}, {
- label: bundle_browser.getString("blockedpluginsMessage.searchButton.label"),
- accessKey: bundle_browser.getString("blockedpluginsMessage.searchButton.accesskey"),
+ label: gNavigatorBundle.getString("blockedpluginsMessage.searchButton.label"),
+ accessKey: gNavigatorBundle.getString("blockedpluginsMessage.searchButton.accesskey"),
popup: null,
callback: pluginsMissing
}];
notificationBox.appendNotification(messageString, "blocked-plugins",
iconURL, priority, buttons);
}
-
- if (aEvent.type == "PluginNotFound") {
+ else if (aEvent.type == "PluginNotFound") {
// Cancel any notification about blocklisting
if (blockedNotification)
blockedNotification.close();
- var messageString = bundle_browser.getString("missingpluginsMessage.title");
- var buttons = [{
- label: bundle_browser.getString("missingpluginsMessage.button.label"),
- accessKey: bundle_browser.getString("missingpluginsMessage.button.accesskey"),
+ let iconURL = "chrome://mozapps/skin/plugins/pluginGeneric-16.png";
+ let messageString = gNavigatorBundle.getString("missingpluginsMessage.title");
+ let buttons = [{
+ label: gNavigatorBundle.getString("missingpluginsMessage.button.label"),
+ accessKey: gNavigatorBundle.getString("missingpluginsMessage.button.accesskey"),
popup: null,
callback: pluginsMissing
}];
-
+
notificationBox.appendNotification(messageString, "missing-plugins",
iconURL, priority, buttons);
}
}
+missingPluginInstaller.prototype.newDisabledPlugin = function(aEvent){
+ // Since we are expecting also untrusted events, make sure
+ // that the target is a plugin
+ if (!(aEvent.target instanceof Components.interfaces.nsIObjectLoadingContent))
+ return;
+
+ aEvent.target.addEventListener("click",
+ gMissingPluginInstaller.managePlugins,
+ true);
+}
+
missingPluginInstaller.prototype.refreshBrowser = function(aEvent) {
var browser = aEvent.target;
var notificationBox = gBrowser.getNotificationBox(browser);
var notification = notificationBox.getNotificationWithValue("missing-plugins");
// clear the plugin list, now that at least one plugin has been installed
browser.missingPlugins = null;
if (notification) {
--- a/toolkit/locales/en-US/chrome/mozapps/plugins/plugins.dtd
+++ b/toolkit/locales/en-US/chrome/mozapps/plugins/plugins.dtd
@@ -18,8 +18,10 @@
<!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.">
<!ENTITY missingPlugin.label "Click here to download plugin.">
<!ENTITY disabledPlugin.label "The plugin for this content has been disabled. Click here to manage your plugins.">
<!ENTITY blockedPlugin.label "This plugin has been blocked for your protection.">
+<!ENTITY disabledPlugin.label "The plugin for this content has been disabled. Click here to manage your plugins.">
+<!ENTITY blockedPlugin.label "This plugin has been blocked for your protection.">
--- a/toolkit/mozapps/plugins/content/missingPlugin.xml
+++ b/toolkit/mozapps/plugins/content/missingPlugin.xml
@@ -45,18 +45,20 @@
</resources>
<content>
<!-- This uses html:a instead of something like a div so that it can be
tabbed to and just generically behaves more like something clickable
(i.e. for a11y reasons. see Bug 245349).
-->
<html:a href="#">
- <xul:image id="missingPluginPlaceholder"/>
- &missingPlugin.label;
+ <xul:vbox>
+ <xul:image id="missingPluginPlaceholder"/>
+ <xul:description>&missingPlugin.label;</xul:description>
+ </xul:vbox>
</html:a>
<!-- Make our fallback content disappear (XBL requires this) -->
<html:div style="display:none;"><children/></html:div>
</content>
<handlers>
<handler event="click" button="0">
@@ -67,9 +69,62 @@
var ev = document.createEvent("Events");
ev.initEvent("PluginNotFound", true, true);
this.dispatchEvent(ev);
]]>
</handler>
</handlers>
</binding>
+ <binding id="disabledPlugin" inheritstyle="false">
+ <resources>
+ <stylesheet src="chrome://mozapps/skin/plugins/missingPlugin.css"/>
+ </resources>
+
+ <content>
+ <!-- This uses html:a instead of something like a div so that it can be
+ tabbed to and just generically behaves more like something clickable
+ (i.e. for a11y reasons. see Bug 245349).
+ -->
+ <html:a href="#">
+ <xul:vbox>
+ <xul:image id="disabledPluginPlaceholder"/>
+ <xul:description>&disabledPlugin.label;</xul:description>
+ </xul:vbox>
+ </html:a>
+
+ <!-- Make our fallback content disappear (XBL requires this) -->
+ <html:div style="display:none;"><children/></html:div>
+ </content>
+
+ <handlers>
+ <handler event="click" button="0">
+ <![CDATA[
+ event.preventDefault();
+
+ // Fire a PluginDisabled event to trigger the infobar
+ var ev = document.createEvent("Events");
+ ev.initEvent("PluginDisabled", true, true);
+ this.dispatchEvent(ev);
+ ]]>
+ </handler>
+ </handlers>
+ </binding>
+
+ <binding id="blockedPlugin" inheritstyle="false">
+ <resources>
+ <stylesheet src="chrome://mozapps/skin/plugins/missingPlugin.css"/>
+ </resources>
+
+ <content>
+ <html:div>
+ <xul:vbox>
+ <xul:image id="blockedPluginPlaceholder"/>
+ <xul:description>&blockedPlugin.label;</xul:description>
+ </xul:vbox>
+ </html:div>
+
+ <!-- Make our fallback content disappear (XBL requires this) -->
+ <html:div style="display:none;"><children/></html:div>
+ </content>
+ </binding>
+
</bindings>
--- a/toolkit/mozapps/plugins/content/missingPluginBinding.css
+++ b/toolkit/mozapps/plugins/content/missingPluginBinding.css
@@ -36,9 +36,17 @@
@namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */
embed:-moz-type-unsupported, applet:-moz-type-unsupported,
object:-moz-has-handlerref:-moz-type-unsupported {
-moz-binding: url('chrome://mozapps/content/plugins/missingPlugin.xml#missingPlugin') !important;
}
+embed:-moz-handler-disabled, applet:-moz-handler-disabled,
+object:-moz-has-handlerref:-moz-handler-disabled {
+ -moz-binding: url('chrome://mozapps/content/plugins/missingPlugin.xml#disabledPlugin') !important;
+}
+embed:-moz-handler-blocked, applet:-moz-handler-blocked,
+object:-moz-has-handlerref:-moz-handler-blocked {
+ -moz-binding: url('chrome://mozapps/content/plugins/missingPlugin.xml#blockedPlugin') !important;
+}
--- a/toolkit/themes/gnomestripe/mozapps/jar.mn
+++ b/toolkit/themes/gnomestripe/mozapps/jar.mn
@@ -6,15 +6,18 @@ classic.jar:
+ skin/classic/mozapps/extensions/notifyBadges.png (extensions/notifyBadges.png)
+ skin/classic/mozapps/extensions/extensionIcons.png (extensions/extensionIcons.png)
+ skin/classic/mozapps/extensions/extensions.css (extensions/extensions.css)
+ skin/classic/mozapps/extensions/ratings.png (extensions/ratings.png)
+ skin/classic/mozapps/extensions/themeGeneric.png (extensions/themeGeneric.png)
+ skin/classic/mozapps/extensions/viewButtons.png (extensions/viewButtons.png)
+ skin/classic/mozapps/passwordmgr/key.png (passwordmgr/key.png)
+ skin/classic/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric.png)
++ skin/classic/mozapps/plugins/pluginDisabled.png (plugins/pluginDisabled.png)
++ skin/classic/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked.png)
+ skin/classic/mozapps/plugins/pluginGeneric-16.png (plugins/pluginGeneric-16.png)
++ skin/classic/mozapps/plugins/pluginBlocked-16.png (plugins/pluginBlocked-16.png)
+ skin/classic/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
+ skin/classic/mozapps/xpinstall/xpinstallItemGeneric.png (xpinstall/xpinstallItemGeneric.png)
#ifdef MOZ_PLACES
+ skin/classic/mozapps/places/defaultFavicon.png (places/defaultFavicon.png)
+ skin/classic/mozapps/places/tagContainerIcon.png (places/tagContainerIcon.png)
#endif
copy from toolkit/themes/gnomestripe/mozapps/plugins/pluginGeneric-16.png
copy to toolkit/themes/gnomestripe/mozapps/plugins/pluginBlocked-16.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9aef96a2bdbbfd9bdbe28171a739ae875afb062
GIT binary patch
literal 1295
zc$@(b1@QWbP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H11dK^UK~z|U&6itm6Gs?^pP4;)ZRadQNWv*VK}AAv(W+`I)QeWB
zpf{C}dQnxCxamcu{(wmBujt`|%S!zPEu;hk7p>F-s6wb5D}{0<i5-)8W3#iKonCn3
z*v{Ix5|oa#nwf9DnfIOd`(}1m7-M*mMZQq<{{sR0X%6}Gr$4rA>r)fyy-{TPgp_xQ
z%mrmfpB*`TWD#KIr<qNjvAzWHs@8g&5W*LTn_*3V^X@xGzU>NNjOqBCId}4d-!A@A
zQ7SM|6qzWBj8cKQ_u!7spPRY0=6Ck|kGB>V7qr&e7!w(-wOOtB=GWhUuADh{@`G*|
zA}I-H&(6Fr1m6iEGGn9T?0xBFq?D*Ipjxd^S}rm-H&<Uk2ms!A?J${4marBQ1W)iQ
zW&XZB$I9{wmb8{56MZ!G_R$~Ou{IExot@2Eu9<)H^|!L+@(P8*JQEW;NPB7gN||zb
znWa(@-(Tgx{)1#P8E*V_o#CNjHgDR33IkRvK9846EES844Clz@Hu1-$3#(BmN2jKy
zR=ehaw9WBtTX)z}3JQfq%6^$kmoK7}!m%A}$0p@^Om5$W)-`;;%=ngZ?mxK4-TQY?
zL4XPsw(a0L4k`>tdmf{sW7hnmN5_G$x)BfvGre_UTk6j%ml^0E<j}!aux%SDBwE)9
zRKT6Pw|O}KfZdaO0JwE~j=_N;_U+rB=zI106()D?_U7jwP6J;94cS|cVgCH-qa!1^
zVb^gfE)^Ib+lpg5$T-djfs__~{aH$nmm2eyO2w|eOQj-d&tsr}aA@}IsrNc7Aoya}
z&fRIH6xmFcFjP2>jSzxLwL<ktg-UgmO0^!wFbr`VrzhWPwaWJGJ2ER*S3U<C$=FaJ
zpFefLOL>R-vi&F(Fg`Xxp}2_emr*Lf7(=aALn%d2Rcy|UqO}I-$yX^we|7-ZaS!J6
zrw(jXz>?E@_v~}SP+^Q=aA1g<t}jxpR;bl#7!0nR!W&7Gay?wv0qEH`iXtX=?s9M3
zyfzJd*h0V<b1awJEToX6(;1#u$z(F}`i*PHHYxzFQUMEvM|65au3b6;(PV7ui?x<$
zn$t8x2)vXB7&nOkT5HPwO8thbuiU7c7ip;x8$epgw$8C+>-(>TfH4LsBu2Cm=n=Su
zK-&hI*Xc+AKuU>eh}da&y(!Y7L=&;*5GNBbok6<oPPC10+(6xD?f7;l&|!CpfE|b>
zs?>=<-Dr@)O3Z<tcGqD}i*FkN89Pc{(||xqi4?N6Zf_^rtk`C)_eGOEt_2dUH9`p4
ztbnY=tdeseIh!{mY7coMWkUf8M7F5w<gCe3KZb2N&;_Jh4kVq5^>E_|A+#McNolPS
zbUB8-o{E;(CzpD-Ndd}^u^g?n4#UtI=pO<MEthfU&brmCk2km1$Lj4M2+(y296;Fd
zh+bG&JaKa7`%eJNw5{6SPqO`szAlv>p8zyqM67@Z^Z{wWqB&sCwwM^W3i!Yi5r10C
z7}(<Z|1Cu^32lst8lUCjX_@nki-~~~e@y<%^1^>k{{cE9c#3T33sV39002ovPDHLk
FV1nE4UR3}9
copy from toolkit/themes/gnomestripe/mozapps/plugins/pluginGeneric.png
copy to toolkit/themes/gnomestripe/mozapps/plugins/pluginDisabled.png
--- a/toolkit/themes/pinstripe/mozapps/jar.mn
+++ b/toolkit/themes/pinstripe/mozapps/jar.mn
@@ -16,17 +16,20 @@ classic.jar:
skin/classic/mozapps/extensions/about.css (extensions/about.css)
skin/classic/mozapps/extensions/extensions.css (extensions/extensions.css)
skin/classic/mozapps/extensions/extensions.xml (extensions/extensions.xml)
skin/classic/mozapps/extensions/update.css (extensions/update.css)
skin/classic/mozapps/extensions/eula.css (extensions/eula.css)
skin/classic/mozapps/passwordmgr/key.png (passwordmgr/key.png)
skin/classic/mozapps/plugins/missingPlugin.css (plugins/missingPlugin.css)
skin/classic/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric.png)
+ skin/classic/mozapps/plugins/pluginDisabled.png (plugins/pluginDisabled.png)
+ skin/classic/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked.png)
skin/classic/mozapps/plugins/pluginGeneric-16.png (plugins/pluginGeneric-16.png)
+ skin/classic/mozapps/plugins/pluginBlocked-16.png (plugins/pluginBlocked-16.png)
skin/classic/mozapps/profile/profileicon.png (profile/profileicon.png)
skin/classic/mozapps/profile/profileSelection.css (profile/profileSelection.css)
skin/classic/mozapps/update/warning.gif (update/warning.gif)
skin/classic/mozapps/update/updates.css (update/updates.css)
skin/classic/mozapps/update/update.png (update/update.png)
skin/classic/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
skin/classic/mozapps/xpinstall/xpinstallItemGeneric.png (xpinstall/xpinstallItemGeneric.png)
skin/classic/mozapps/xpinstall/xpinstallConfirm.css (xpinstall/xpinstallConfirm.css)
--- a/toolkit/themes/pinstripe/mozapps/plugins/missingPlugin.css
+++ b/toolkit/themes/pinstripe/mozapps/plugins/missingPlugin.css
@@ -19,31 +19,50 @@ html|applet:not([height]), html|applet[h
html|object > *|*,
html|embed > *|*,
html|applet > *|* {
width: inherit;
height: inherit;
}
-html|a {
- text-align: -moz-center;
+html|a, html|div {
display: inline-block;
/* overflow:hidden makes baseline vertical-alignment act like plugins */
overflow: hidden;
vertical-align: inherit;
border: 1px outset;
padding: 5px;
font-size: 12px;
font-family: sans-serif;
background: white;
-moz-user-select: none;
text-decoration: none;
color: black;
}
+vbox {
+ width: inherit;
+ height: inherit;
+ -moz-box-align: center;
+ -moz-box-pack: center;
+}
+
#missingPluginPlaceholder {
list-style-image: url(chrome://mozapps/skin/plugins/pluginGeneric.png);
+}
+
+#disabledPluginPlaceholder {
+ list-style-image: url(chrome://mozapps/skin/plugins/pluginDisabled.png);
+}
+
+#blockedPluginPlaceholder {
+ list-style-image: url(chrome://mozapps/skin/plugins/pluginBlocked.png);
+}
+
+#missingPluginPlaceholder,
+#disabledPluginPlaceholder,
+#blockedPluginPlaceholder {
display: block;
border: 0px;
width: 32px;
height: 32px;
}
copy from toolkit/themes/pinstripe/mozapps/plugins/pluginGeneric-16.png
copy to toolkit/themes/pinstripe/mozapps/plugins/pluginBlocked-16.png
new file mode 100644
index 0000000000000000000000000000000000000000..2e056995a3c0cf94554c7b4c9b1f463404b592c5
GIT binary patch
literal 1997
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
copy from toolkit/themes/pinstripe/mozapps/plugins/pluginGeneric.png
copy to toolkit/themes/pinstripe/mozapps/plugins/pluginDisabled.png
--- a/toolkit/themes/winstripe/mozapps/jar.mn
+++ b/toolkit/themes/winstripe/mozapps/jar.mn
@@ -21,17 +21,20 @@ classic.jar:
skin/classic/mozapps/handling/handling.css (handling/handling.css)
skin/classic/mozapps/passwordmgr/key.png (passwordmgr/key.png)
#ifdef MOZ_PLACES
skin/classic/mozapps/places/defaultFavicon.png (places/defaultFavicon.png)
skin/classic/mozapps/places/tagContainerIcon.png (places/tagContainerIcon.png)
#endif
skin/classic/mozapps/plugins/missingPlugin.css (plugins/missingPlugin.css)
skin/classic/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric.png)
+ skin/classic/mozapps/plugins/pluginDisabled.png (plugins/pluginDisabled.png)
+ skin/classic/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked.png)
skin/classic/mozapps/plugins/pluginGeneric-16.png (plugins/pluginGeneric-16.png)
+ skin/classic/mozapps/plugins/pluginBlocked-16.png (plugins/pluginBlocked-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/extensionalert.png (update/extensionalert.png)
skin/classic/mozapps/update/update.png (update/update.png)
skin/classic/mozapps/update/warning.gif (update/warning.gif)
skin/classic/mozapps/update/updates.css (update/updates.css)
skin/classic/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
@@ -59,17 +62,20 @@ classic.jar:
skin/classic/aero/mozapps/handling/handling.css (handling/handling.css)
skin/classic/aero/mozapps/passwordmgr/key.png (passwordmgr/key-aero.png)
#ifdef MOZ_PLACES
skin/classic/aero/mozapps/places/defaultFavicon.png (places/defaultFavicon-aero.png)
skin/classic/aero/mozapps/places/tagContainerIcon.png (places/tagContainerIcon-aero.png)
#endif
skin/classic/aero/mozapps/plugins/missingPlugin.css (plugins/missingPlugin.css)
skin/classic/aero/mozapps/plugins/pluginGeneric.png (plugins/pluginGeneric-aero.png)
+ skin/classic/aero/mozapps/plugins/pluginDisabled.png (plugins/pluginDisabled-aero.png)
+ skin/classic/aero/mozapps/plugins/pluginBlocked.png (plugins/pluginBlocked-aero.png)
skin/classic/aero/mozapps/plugins/pluginGeneric-16.png (plugins/pluginGeneric-16-aero.png)
+ skin/classic/aero/mozapps/plugins/pluginBlocked-16.png (plugins/pluginBlocked-16-aero.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/extensionalert.png (update/extensionalert-aero.png)
skin/classic/aero/mozapps/update/update.png (update/update-aero.png)
skin/classic/aero/mozapps/update/warning.gif (update/warning.gif)
skin/classic/aero/mozapps/update/updates.css (update/updates.css)
skin/classic/aero/mozapps/viewsource/viewsource.css (viewsource/viewsource.css)
--- a/toolkit/themes/winstripe/mozapps/plugins/missingPlugin.css
+++ b/toolkit/themes/winstripe/mozapps/plugins/missingPlugin.css
@@ -19,31 +19,50 @@ html|applet:not([height]), html|applet[h
html|object > *|*,
html|embed > *|*,
html|applet > *|* {
width: inherit;
height: inherit;
}
-html|a {
- text-align: -moz-center;
+html|a, html|div {
display: inline-block;
/* overflow:hidden makes baseline vertical-alignment act like plugins */
overflow: hidden;
vertical-align: inherit;
border: 1px outset;
padding: 5px;
font-size: 12px;
font-family: sans-serif;
background: white;
-moz-user-select: none;
text-decoration: none;
color: black;
}
+vbox {
+ width: inherit;
+ height: inherit;
+ -moz-box-align: center;
+ -moz-box-pack: center;
+}
+
#missingPluginPlaceholder {
list-style-image: url(chrome://mozapps/skin/plugins/pluginGeneric.png);
+}
+
+#disabledPluginPlaceholder {
+ list-style-image: url(chrome://mozapps/skin/plugins/pluginDisabled.png);
+}
+
+#blockedPluginPlaceholder {
+ list-style-image: url(chrome://mozapps/skin/plugins/pluginBlocked.png);
+}
+
+#missingPluginPlaceholder,
+#disabledPluginPlaceholder,
+#blockedPluginPlaceholder {
display: block;
border: 0px;
width: 32px;
height: 32px;
}
copy from toolkit/themes/winstripe/mozapps/plugins/pluginGeneric-16-aero.png
copy to toolkit/themes/winstripe/mozapps/plugins/pluginBlocked-16-aero.png
copy from toolkit/themes/winstripe/mozapps/plugins/pluginGeneric-16.png
copy to toolkit/themes/winstripe/mozapps/plugins/pluginBlocked-16.png
new file mode 100755
index 0000000000000000000000000000000000000000..d8b270ae522b700e1b84e642df8d386e4628070f
GIT binary patch
literal 971
zc$@*t12p`JP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000A$Nkl<ZScUDD
z&ud*p6vsbje%vH4c`tb}wT%r@q!rvqNugG)ih@)qxKUhYqaYQE|A5=>g)V}iE{aRH
zg18mhZCu!07nRr)8}qxb$-8&vxVZPd+$1;V#wK**Y-Zk_!+byUJu_#Xs4CC0nP;m0
zKLFtB1YP@XVP?4#u7;p*0p1w7J=QQkfAiT3vjCre`{3G2Cw>s4z5%4x%CGH){b}~o
z$y-MPU^RR_K5W`s8Gw*D{m`mj1!e)f=*{sFW4oCE%7Eh&6T|z!e+QVk`S2s)M}WDz
zi;RtU+N}f;SXob5UhCSKj#Yr)?mnX3N*HT;RAG6o%gRRDo_XSWSM0{E>!-dt6o9jG
z1pyJ|x$y?W!yZ3m*?bZRL{tUm1OQbbV9AVQaLCfK4&zh22aN*4JBN0_IeAwR#u|a)
zmz%70BAsqzqMh*4=|KkUD9ev?fGd|zvK6!<29`SpfeZWT?0XBGGiSXw+?iYA{`>|u
zMox`dY>eEW-{8*N5{Wk?2gNwSJ2Ujf_kXu)JMiTXE9ZUU5R?ZGAM?k2tODf1c?Wtx
z%&Qj3jk*N<Qp*8vdCyzHSwrG&r9+9gcq=6CfSAPKoWXgyToqI4fVJ{A<k+uGPcpx-
z&R>fi);GGeMiNd;G&nuk#MwON;`AhcF0AutvBTO%m*z;q^AioGCYx9*pn&jtZ2)J@
zB_+4#%v6)JXPP(xX9Z`#S+K<zg%?kZ5?*PM1;`>~L5m(jR3d=NbZvm&@7+5|zBT~8
z2UAsvn*UZ+w3v&k#kYzv{rGV{zE}?+#-8GKrwU57kdlL;+mJiP1$=D>Lf8)O?;Zsu
zcc55Mi*bylvG(G$04+9k7=W0Sg3CKEInjqHr6b0Qv;bOsukS#%eW%OkV9!}7CVC*-
zyWg3vaw=*9RG)!-ti*yZsuE&x(xVbJpX-6`KE(9_x}`HvS|mgz3y~}+Au1v4zq7in
z4<I4}3<6VcUccQB$U-CyN|xo~Pa`NI=YV-&Q;Tb{+W`Y4A&YcVCCwt;EdHy7hinPE
z%KvTv0R~oAQ_^hj<8lOTfL@K?2fzTy)@C>kaX7#M=>hDh1IGi9|9PZ31^yTTJO`v8
zFI?f+0E$<l8bE;ntm^RrtQH!50qMO`MIG?KI51W8{)mKAV2Qj2ECFe+4oLZ#EI|xV
tk*}v{T0m@-#rFV|AUHztG6cFy@E_@*CnQ@dzlHz+002ovPDHLkV1jz%#Bu-t
new file mode 100644
index 0000000000000000000000000000000000000000..3e6d43c9ac1f12558eeb14aaab7a653655eab907
GIT binary patch
literal 895
zc$@)$1AzRAP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80009<Nkl<ZScUDE
z&x@Ny7{@=)JI^F(%)Ziep;_3{gO)<G1*4Y=Rk0qt^dRb8y!0>FqfmPAwpjWXNbeqd
z@~GYyid*&~9vWz%i_mOblWb-l5AT~a&5t(GS9)<^m@xD3e7^I{JkL83Gvjr(<h9cO
z7XaugMtgftzV3EMH)FKxfH@~WZ*1s;-QBJG`TAGK$D^Ae*av_liTskL`e1i=>-$0k
zK>u!<`Zq@-MFgA+Uz+uA0QUjR`rmDA_<9J68K{QOq5lc+N&&Jg3+~)`@&)h%z`?<<
z)M{nYw2B#YyC<BS47qZp3BaRA2UM#i(zJ?5w%+RvXf}7o?!LW!d+VFEBA}|D0*FM;
zo!g{ZeS=D+Ous+Cdr*z2>ev?VtEi?_DrKA-P%i(8_X%bRz(-3t%NCq-9|KgYk;|9Q
z)9XbBgUH#lRW4kpF&YI<PqRDRYQ2T3o3rsga(wIo-do05ngy!*w)dWg4}YWGeu~JD
zdR-A2(r!QH@bEF-d%X7?9zI@Zv%mj4s*0+f+1u-;D@Wkoy}#b^-XkJ(I!CnIokaq<
zdesBG)MjT#5fOlEz>h0MKvi$3D$Y5)_X{KBy&v!Hr8ZM`*B7!DO*-d39RF^$T68)c
zj*gD#^?KB5H8wXlX*3!*=T^1>-d|aOYH}?`ND|oIZgBBp1Lv6Qst_YI8V#Dw1|cxl
zW6V16?#cr8_kTKHDwW7egkc6|MhFHNF=lfyMnW*mvN1*@gg}f&j4_8tLWsl|>$h%w
zwwi!asYInxVO*nf2dG-^+$N4ij1VGb0keomf=C1s%%;UGE_e$sVYcHJ;b!yjY{!uh
zLO#YxRG!a;Nn}<Q09H7B?FbYN4<W82zzT<(tsx-0*~P+N83D=K84<ZOPPHQ8W`>Ad
z${DgO0trz1FW~vRqcqE$6(B(Qd66j&9<y>-&KXMu<Pj(yzAOUMl~Be4La<4ND+)d%
zK*)>Dq9gEQCk4X+{Ol3TehUn+EDZ~XPy8<vU_bz#4Tq<Q$g;26KZOH4%Ndh}$+JAq
zO%K$8?R;GP)LFls0)GJQd_1)r{KEf&DG_BBoY%i-mWvon!{-D{iJ(CEv<Pel_%}q&
Vd(oPJa2x;t002ovPDHLkV1jJFp_Tvu
copy from toolkit/themes/winstripe/mozapps/plugins/pluginGeneric-aero.png
copy to toolkit/themes/winstripe/mozapps/plugins/pluginDisabled-aero.png
copy from toolkit/themes/winstripe/mozapps/plugins/pluginGeneric.png
copy to toolkit/themes/winstripe/mozapps/plugins/pluginDisabled.png