author | Benjamin Smedberg <benjamin@smedbergs.us> |
Fri, 19 Jul 2013 10:02:48 -0400 | |
changeset 139258 | 3f3a0ed44893e8f3d87399551dd04216825ba9da |
parent 139257 | 678e1cb9f5879777f96aab5c4d46467c8180fc7c |
child 139259 | 65f5580b94770141da6f1bd9ca5dec07f51e3a63 |
push id | 24983 |
push user | ryanvm@gmail.com |
push date | Sat, 20 Jul 2013 00:51:06 +0000 |
treeherder | mozilla-central@6030c759a502 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jaws |
bugs | 888292 |
milestone | 25.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/base/content/browser-plugins.js +++ b/browser/base/content/browser-plugins.js @@ -245,16 +245,17 @@ var gPluginHandler = { // Lookup the handler for this binding eventType = this._getBindingType(plugin); if (!eventType) { // Not all bindings have handlers return; } } + let shouldShowNotification = false; let browser = gBrowser.getBrowserForDocument(doc.defaultView.top.document); switch (eventType) { case "PluginCrashed": this.pluginInstanceCrashed(plugin, event); break; case "PluginNotFound": @@ -270,17 +271,17 @@ var gPluginHandler = { let installLink = doc.getAnonymousElementByAttribute(plugin, "class", "installPluginLink"); this.addLinkClickCallback(installLink, "installSinglePlugin", plugin); } break; case "PluginBlocklisted": case "PluginOutdated": - this._showClickToPlayNotification(browser); + shouldShowNotification = true; break; case "PluginVulnerableUpdatable": let updateLink = doc.getAnonymousElementByAttribute(plugin, "class", "checkForUpdatesLink"); this.addLinkClickCallback(updateLink, "openPluginUpdatePage"); /* FALLTHRU */ case "PluginVulnerableNoUpdate": @@ -292,41 +293,47 @@ var gPluginHandler = { let overlayText = doc.getAnonymousElementByAttribute(plugin, "class", "msg msgClickToPlay"); overlayText.textContent = messageString; if (eventType == "PluginVulnerableUpdatable" || eventType == "PluginVulnerableNoUpdate") { let vulnerabilityString = gNavigatorBundle.getString(eventType); let vulnerabilityText = doc.getAnonymousElementByAttribute(plugin, "anonid", "vulnerabilityStatus"); vulnerabilityText.textContent = vulnerabilityString; } - this._showClickToPlayNotification(browser); + shouldShowNotification = true; break; case "PluginPlayPreview": this._handlePlayPreviewEvent(plugin); break; case "PluginDisabled": let manageLink = doc.getAnonymousElementByAttribute(plugin, "class", "managePluginsLink"); this.addLinkClickCallback(manageLink, "managePlugins"); - this._showClickToPlayNotification(browser); + shouldShowNotification = true; break; case "PluginInstantiated": case "PluginRemoved": - this._showClickToPlayNotification(browser); + shouldShowNotification = true; break; } // Hide the in-content UI if it's too big. The crashed plugin handler already did this. if (eventType != "PluginCrashed" && eventType != "PluginRemoved") { let overlay = doc.getAnonymousElementByAttribute(plugin, "class", "mainBox"); if (overlay != null && this.isTooSmall(plugin, overlay)) overlay.style.visibility = "hidden"; } + + // Only show the notification after we've done the isTooSmall check, so + // that the notification can decide whether to show the "alert" icon + if (shouldShowNotification) { + this._showClickToPlayNotification(browser); + } }, isKnownPlugin: function PH_isKnownPlugin(objLoadingContent) { return (objLoadingContent.getContentTypeForMIMEType(objLoadingContent.actualType) == Ci.nsIObjectLoadingContent.TYPE_PLUGIN); }, canActivatePlugin: function PH_canActivatePlugin(objLoadingContent) { @@ -749,47 +756,58 @@ var gPluginHandler = { } } }, _showClickToPlayNotification: function PH_showClickToPlayNotification(aBrowser, aPrimaryPlugin) { let notification = PopupNotifications.getNotification("click-to-play-plugins", aBrowser); let contentWindow = aBrowser.contentWindow; + let contentDoc = aBrowser.contentDocument; let cwu = contentWindow.QueryInterface(Ci.nsIInterfaceRequestor) .getInterface(Ci.nsIDOMWindowUtils); let plugins = cwu.plugins; if (plugins.length == 0) { if (notification) { PopupNotifications.remove(notification); } return; } - let haveVulnerablePlugin = plugins.some(function(plugin) { + let icon = 'plugins-notification-icon'; + for (let plugin of plugins) { let fallbackType = plugin.pluginFallbackType; - return fallbackType == plugin.PLUGIN_VULNERABLE_UPDATABLE || - fallbackType == plugin.PLUGIN_VULNERABLE_NO_UPDATE || - fallbackType == plugin.PLUGIN_BLOCKLISTED; - }); + if (fallbackType == plugin.PLUGIN_VULNERABLE_UPDATABLE || + fallbackType == plugin.PLUGIN_VULNERABLE_NO_UPDATE || + fallbackType == plugin.PLUGIN_BLOCKLISTED) { + icon = 'blocked-plugins-notification-icon'; + break; + } + if (fallbackType == plugin.PLUGIN_CLICK_TO_PLAY) { + let overlay = contentDoc.getAnonymousElementByAttribute(plugin, "class", "mainBox"); + if (!overlay || overlay.style.visibility == 'hidden') { + icon = 'alert-plugins-notification-icon'; + } + } + } + let dismissed = notification ? notification.dismissed : true; if (aPrimaryPlugin) dismissed = false; let primaryPluginPermission = null; if (aPrimaryPlugin) { primaryPluginPermission = this._getPluginInfo(aPrimaryPlugin).permissionString; } let options = { dismissed: dismissed, eventCallback: this._clickToPlayNotificationEventCallback, primaryPlugin: primaryPluginPermission }; - let icon = haveVulnerablePlugin ? "blocked-plugins-notification-icon" : "plugins-notification-icon"; PopupNotifications.show(aBrowser, "click-to-play-plugins", "", icon, null, null, options); }, // Crashed-plugin observer. Notified once per plugin crash, before events // are dispatched to individual plugin instances. pluginCrashed : function(subject, topic, data) {
--- a/browser/base/content/browser.xul +++ b/browser/base/content/browser.xul @@ -500,16 +500,17 @@ <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="alert-plugins-notification-icon" class="notification-anchor-icon" role="button"/> <image id="blocked-plugins-notification-icon" class="notification-anchor-icon" role="button"/> <image id="plugin-install-notification-icon" class="notification-anchor-icon" role="button"/> <image id="mixed-content-blocked-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="pointerLock-notification-icon" class="notification-anchor-icon" role="button"/> <image id="servicesInstall-notification-icon" class="notification-anchor-icon" role="button"/> </box>
--- a/browser/themes/linux/browser.css +++ b/browser/themes/linux/browser.css @@ -1280,21 +1280,43 @@ toolbar[iconsize="small"] #webrtc-status list-style-image: url(chrome://mozapps/skin/passwordmgr/key-16.png); } #webapps-notification-icon { list-style-image: url(chrome://browser/skin/webapps-16.png); } #plugins-notification-icon { - list-style-image: url(chrome://mozapps/skin/plugins/pluginGeneric-16.png); + list-style-image: url(chrome://browser/skin/notification-pluginNormal.png); +} + +#alert-plugins-notification-icon { + list-style-image: url(chrome://browser/skin/notification-pluginAlert.png); } #blocked-plugins-notification-icon { - list-style-image: url(chrome://mozapps/skin/plugins/notifyPluginBlocked.png); + list-style-image: url(chrome://browser/skin/notification-pluginBlocked.png); +} + +#plugins-notification-icon, +#alert-plugins-notification-icon, +#blocked-plugins-notification-icon { + -moz-image-region: rect(0, 16px, 16px, 0); +} + +#plugins-notification-icon:hover, +#alert-plugins-notification-icon:hover, +#blocked-plugins-notification-icon:hover { + -moz-image-region: rect(0, 32px, 16px, 16px); +} + +#plugins-notification-icon:active, +#alert-plugins-notification-icon:active, +#blocked-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
--- a/browser/themes/linux/jar.mn +++ b/browser/themes/linux/jar.mn @@ -230,8 +230,11 @@ browser.jar: skin/classic/browser/sync-notification-24.png skin/classic/browser/syncSetup.css skin/classic/browser/syncCommon.css skin/classic/browser/syncQuota.css skin/classic/browser/syncProgress.css #endif skin/classic/browser/webapps-16.png skin/classic/browser/webapps-64.png + skin/classic/browser/notification-pluginNormal.png (../shared/plugins/notification-pluginNormal.png) + skin/classic/browser/notification-pluginAlert.png (../shared/plugins/notification-pluginAlert.png) + skin/classic/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png)
--- a/browser/themes/osx/browser.css +++ b/browser/themes/osx/browser.css @@ -3139,26 +3139,74 @@ toolbarbutton.chevron > .toolbarbutton-m @media (min-resolution: 2dppx) { .webapps-notification-icon, #webapps-notification-icon { list-style-image: url(chrome://browser/skin/webapps-16@2x.png); } } #plugins-notification-icon { - list-style-image: url(chrome://mozapps/skin/plugins/pluginGeneric-16.png); + list-style-image: url(chrome://browser/skin/notification-pluginNormal.png); +} + +#alert-plugins-notification-icon { + list-style-image: url(chrome://browser/skin/notification-pluginAlert.png); } #blocked-plugins-notification-icon { - list-style-image: url(chrome://mozapps/skin/plugins/notifyPluginBlocked.png); + list-style-image: url(chrome://browser/skin/notification-pluginBlocked.png); +} + +#plugins-notification-icon, +#alert-plugins-notification-icon, +#blocked-plugins-notification-icon { + -moz-image-region: rect(0, 16px, 16px, 0); +} + +#plugins-notification-icon:hover, +#alert-plugins-notification-icon:hover, +#blocked-plugins-notification-icon:hover { + -moz-image-region: rect(0, 32px, 16px, 16px); +} + +#plugins-notification-icon:active, +#alert-plugins-notification-icon:active, +#blocked-plugins-notification-icon:active { + -moz-image-region: rect(0, 48px, 16px, 32px); } @media (min-resolution: 2dppx) { + #plugins-notification-icon { + list-style-image: url(chrome://browser/skin/notification-pluginNormal@2x.png); + } + + #alert-plugins-notification-icon { + list-style-image: url(chrome://browser/skin/notification-pluginAlert@2x.png); + } + #blocked-plugins-notification-icon { - list-style-image: url(chrome://mozapps/skin/plugins/pluginBlocked.png); + list-style-image: url(chrome://browser/skin/notification-pluginBlocked@2x.png); + } + + #plugins-notification-icon, + #alert-plugins-notification-icon, + #blocked-plugins-notification-icon { + -moz-image-region: rect(0, 32px, 32px, 0); + } + + #plugins-notification-icon:hover, + #alert-plugins-notification-icon:hover, + #blocked-plugins-notification-icon:hover { + -moz-image-region: rect(0, 64px, 32px, 32px); + } + + #plugins-notification-icon:active, + #alert-plugins-notification-icon:active, + #blocked-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 {
--- a/browser/themes/osx/jar.mn +++ b/browser/themes/osx/jar.mn @@ -326,15 +326,21 @@ browser.jar: skin/classic/browser/toolbarbutton-dropmarker@2x.png (toolbarbutton-dropmarker-lion@2x.png) skin/classic/browser/lion/tabbrowser/alltabs-box-bkgnd-icon.png (tabbrowser/alltabs-box-bkgnd-icon-lion.png) skin/classic/browser/tabbrowser/alltabs-box-bkgnd-icon@2x.png (tabbrowser/alltabs-box-bkgnd-icon-lion@2x.png) skin/classic/browser/lion/tabview/tabview.png (tabview/tabview-lion.png) skin/classic/browser/lion/places/toolbar.png (places/toolbar-lion.png) skin/classic/browser/webapps-16.png skin/classic/browser/webapps-16@2x.png skin/classic/browser/webapps-64.png + skin/classic/browser/notification-pluginNormal.png (../shared/plugins/notification-pluginNormal.png) + skin/classic/browser/notification-pluginAlert.png (../shared/plugins/notification-pluginAlert.png) + skin/classic/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png) + skin/classic/browser/notification-pluginNormal@2x.png (../shared/plugins/notification-pluginNormal@2x.png) + skin/classic/browser/notification-pluginAlert@2x.png (../shared/plugins/notification-pluginAlert@2x.png) + skin/classic/browser/notification-pluginBlocked@2x.png (../shared/plugins/notification-pluginBlocked@2x.png) % override chrome://browser/skin/keyhole-circle.png chrome://browser/skin/lion/keyhole-circle.png os=Darwin osversion>=10.7 % override chrome://browser/skin/Toolbar.png chrome://browser/skin/lion/Toolbar.png os=Darwin osversion>=10.7 % override chrome://browser/skin/toolbarbutton-dropmarker.png chrome://browser/skin/lion/toolbarbutton-dropmarker.png os=Darwin osversion>=10.7 % override chrome://browser/skin/tabbrowser/alltabs-box-bkgnd-icon.png chrome://browser/skin/lion/tabbrowser/alltabs-box-bkgnd-icon.png os=Darwin osversion>=10.7 % override chrome://browser/skin/tabview/tabview.png chrome://browser/skin/lion/tabview/tabview.png os=Darwin osversion>=10.7 % override chrome://browser/skin/places/toolbar.png chrome://browser/skin/lion/places/toolbar.png os=Darwin osversion>=10.7
new file mode 100644 index 0000000000000000000000000000000000000000..7492fdd8670488b9b510d913424dcc46f5e1ab57 GIT binary patch literal 648 zc$@)<0(bq1P)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#30006{Nkl<Zc-qC5 zQA?9i9LCQ!=H|4`&F@h$qAW_I4GZ!!bkRjZ7eRHQ7wx8~BqDdHXtc-zLwn~UVFbk* zl|e*V_5qTJgjs5<-n~<oJ)N`MpI2h){x`e$v9t5=8_#p|?iELK5MmSo#WqEkV*l#r zR(-!g)=*!&)gRa{uKhB-!zF|sEFy5bfToKxrWQBI$Ul%-G7sg-=$R<v@RJgvV+Hcp z$;fxb-kB|zrVx@-@SlGJ@2Ls$Yh~2|4sjnlRY}-OdM|u|zF#j>u2ZAW(aaL;CA-H8 z<k!mVzU#~+>?M6CpOarJt8^CzLh4J8xbr(MMpmRq{gL8cS&F13)%_8T%H-Ot6t6fb zv}^R)kw)A-4(ZK6`W~)Gk5MMym4>uuZlnC4FK*1o#jWpB3@L8TNpUq#zDUf=wb^XN zuXI<3a3Ez_!IXu1(2g*$L(`dEwz{&*s0Zbc9~k^#1qa`w9<-yo>j9Cr5fdDQfvBeQ z@gf+I-*$Nt9CUX*AnL#S0}OP5ZpFcUk1Q}C-#_pc9CY`81Ck5iKm*22Fd#p0?lm~j zfY$5Zz<>(uP5%S~^0&lZfddWjUCDz171%Rc00Z({`d)&8ZNR_`IM9IM1u!7L_4EsH zpaGt<pTU3%bPUab0r|}*o`C@kh<IY3z<?fuyOUqRfc)m;IWVBdXt=3=y6EZqh<b4M zPn*?0qFssEVn-s6dQcAe-rlE0@3AcEqBm#i?$uX`uwJ8xZjwmFNg<?YZ<uc&Sb3RK iI9G9P5~rO8`i{SeP63_VLcN;+0000<MNUMnLSTaK%r`Fp
new file mode 100644 index 0000000000000000000000000000000000000000..f3359969b6f30fb090f424961024a72435e01b49 GIT binary patch literal 1189 zc$@*H1X}xvP)<h;3K|Lk000e1NJLTq003YB001Be1^@s6?ZACh0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$M@d9MRCwCtno(~XMG(hlcJJaeE>K+y zp%SE0F?p&~o)J_$1AXEf<b(B@x8yZ>;01{{kPxj@MM0`)q)1h45}M%HdppD2`h2=O zpJQ8Ub}hWp=A8BY?>Dn^GrM;Q!jB9$-F7}|9)I=*ytL5#>snMcP7Hcq4xdU-r0Xdf zE4?TEwP^pzow!z)pHtB_P0s(7U)M=5_)+boE$ChDsu(-1wuaWaj4%WLYk=MkA$>al zx){PR#Y2Al;0O8kMdpAQv8e9(6eG93YMb4S7&^M8KsoCOU`Rk$7HE(HU!~BuaQJha zRQL<(rt;zCAG<AOJMo5sIA-UE(_hMUE{9<I1`Nc9>65Rk{x7C`UJd}33`l^uQyrRY zu}Qaw2zLu@_IY02=q|x2r6F0z+1FWT+J+i`Zru#NPE7~a)b)N02HR<kKetX8!o_JB zpcg1#x)i)cb>lYH^NR9|0E{DP7Pycp88E*N3mujmSMKv_@m=7H67>6(i_95BdY`ny zK1k=>M3f&9XE`jti>;B(j6MIg4{?6cbI~2-I%w39V$e1lJv$sgwB2%xQjv<;SoU3y z)IM88Z4@Hq_lB6v)|FLYL_kFo{J%*ZWIAOOOwlo9x*2@C(cZVQ#z9N?QRafwa<p=y z71!m0Ya$y=`foRGAJ|xBI%w3zDLb7ovblb|KH}rfPpqDG;f_q$=h8ou!F$r%Gve5n zEBD-S)NYA3amVZ1rSwzL{wZ-f+DRmE+3uqUA2>e1LpjdR$DGd#@KN|6e5~;ei~sac zlHs1rUb|YM>W%wyZqFS@=iQRKB5}v&^Ya6W|0MqFBMJA>&RsYgWdOm}?P#zU0e|dc z@0$XiT%@h<irs+lzf8<tjIim0Zx~K~>BbfQdv9LsMV$KKtLWrn^U=5R@qAo@l9<TL z<h$Jf@O_~sdF^$(56R_CU|)Qg;78<V@*Ur%_s6@j@gl647`!$FRmxDs?3oWWK84{I z+fYnB8xU85A#0WQ38?ZZ(5r~?N<&0pTrciI4$5b;LHNaU0Q<iKu`~e~paj(T7$o>b z31UkSvIPi0bv6R|UkZS~321s_f`J1-f%v6GnEdA6#LL>i8IbboWB@N=31S;O0JPcx zpwMeT8h8=*y$I^1%K(1{G)}ee4AAvm&<d3xyM!f(Xoa?+%lI6?fw!R?;6a2->oEr? z0n5O50pNfcz=59wIB*7Vv=k+PfjMLa%J>0G5W9_u{}M#ShA4X(%%S-lf?s4n*PuR* zto_6X*+lx4g#ENM)E%-qj+wmhho~m_R>#NM7(f26t-S&m@kbe;;V=H;!S@E-KO2?b zmEk)}@@nL}LVjJ03;(y|!>9Ql)`RfPH&31#fBaKnI==g_h#CyvF}!ZXtXy9eeq|Sg z4TkXz-2q&3u<7%v@GHBZX@=a?%EUDXX$ASN{U^Wx-G8v2FsI_100000NkvXXu0mjf Db0|vx
new file mode 100644 index 0000000000000000000000000000000000000000..e2e9489004eb7cd0661d6ebf8d3a7be4869fddca GIT binary patch literal 968 zc$@*q12_DMP)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#3000AzNkl<Zc-qC5 z-EWh16vt2G0>d_#%mJIr=;mM<*>H>6j?C~P30x3`C>MI=1vmT=PvV8)f{>sWCL$N0 zF)^S*!~{c@@TP%5c~N<BFxt(v>pF#XD?EL=t?j-(=OkypALMbQc)`UdIr+Zy`JFax ze*}Q=QDl)%$fw;RB>MawG0&|JkS-89T1jrSg^-Ta;O^QNapo0rS$~R049_=f$h{w_ z1$IW@ZD~Vt%?py5-!uJvOUV7cj?niip?4+Wt7Rma`8-*`KNP<}%aIC#eaO@G1lFJ8 z5kBaV{*9#s`;dt?&CKi3l@^lz-o*s_kcVnD^WPqKxm@A%`i(bUaz-{aIPSL9&iIyQ zC;nEQ<LeukAdfrT)&Aez)sE-;_%PxW-ha)>Zf>0G2YFBSe+e&lZuQhVN&h*q_4UrR zbt~rjL7w*I<4c6Ay~LZ<C<pFvSJ)Zxd{8EH{Yx$6@w;0N+~F=S&_38z0h{EGZsbm% zM9F=`@GP483U`^p_AWfe?)Na;cNWOG49}veuW0{#6Tv3>_FCLObpnM)4;h|WQ(uw3 zEO4h|A(X*)!YE9PW42hZVNE<cs|Uz$T?1um*Sna_P5{NC4Qt}rS?%{W5|j&@Ixv%Y z@Z|GZ6VGI=1^#GT0A=FjF_iLN5aQWcJwSG2Gn5(s)0&;i2O*xF)&5Tn1SNIiI}|-H z2=PqTTEPD{Lzzk?P?*f%dgsfk@hsZ(=m_kr9^gUuaww&A3Z?8M#y7XB#<OUpu~FDr z?H{cpC~h)=>4^-Euc}gwXVG%0Buv&?;MWjA$;a<udMu5L?MqbSS+x96942cP811Zt zQv559;y+_Z_pDTnXVHqogRryO|9Tlg$;JkdOON8)<_gt#7VTj?29vcG;NNv+<eP)Y zCx(I$&t%O4!>t6xJ#q-e<Zuw;nXKs_s39n~4}Xd5@K6xqnXI+I&;B;bxo{IEuV02c z&~L+<cqVHOFc2arLmO6O>h~ySV*NI(iD$B=|5-IbIo#QVv1?Ie?)KZTCZ5S!3;ej0 zVAI>xfY=xNk%?Ypcot24MGx@j3WCkOa3eAYKZSR-kKtJ~^%d>&KdsGyjz&a3-;dPg zK89z})K_$Y(6Pmo`=N?Z4t~eJ>*V;lP!4`)uD_>>a-UQZ%E9kQU#=2*+bajX5kBue q`4_ckLT{44Rnaq{{f`&X|KeZ!dReTe@;)B`0000<MNUMnLSTa466@3e
new file mode 100644 index 0000000000000000000000000000000000000000..5126be01f08bfd06884278f6527e0e43f9029534 GIT binary patch literal 2067 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
new file mode 100644 index 0000000000000000000000000000000000000000..979e92b7f51d98aebc1ce4b6255954e6ee8a12dd GIT binary patch literal 340 zc$@)L0jvIrP)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#30000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy_DMuRRCwC#mcI&vFc8KsB}>!{g1%Z; zM<2o2S8!6_$>(r!Oq;<!X%tfeg{FE#5c)w-xctoBeZhn%rQph<=A|r4!8s43D1vbu zL1-04!Cf(<wrxeI#TbKWnm|e^vMl4Sm{FeRA9Jdz;;tBJnr8bz-}g!<309I2$1!om zk|f#qVHlKN1FS_rGsG3^x(>xts|oinPThZS(+f}Px?Z18J=nqRC-n%@G)3{d1E+bq zEDM}~-;8gb&hw1=3+xGa<Eifi&;?xH0c-)j`M(3+9l&+~dzZrUrhxSz2@bLkYYTYe m>E3}5*+Fmo4KA*i00RIvyzz;-k{jXx0000<MNUMnLSTZxp^--b
new file mode 100644 index 0000000000000000000000000000000000000000..c081bbb475f9b60070fcae3817967da05f1b533b GIT binary patch literal 469 zc$@*%0V@89P)<h;3K|Lk000e1NJLTq003YB001Be1^@s6?ZACh0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzcS%G+RCwC#T1#q#KoIQ~zvKjggk&eg z+js~)gp0<7htMkoJWiO!EE32OW}~7`J78#<Sr|vU7X2O+I1R6#^rNcUq4+${44{L9 zBcO$=FO+3@@_j#!qKJiI$Q;LE<2bUu?{Cp{-SYcO2$3AY)6q1|$@9E82m-bQ=bTN` z#D-z`i)EiI%aS8_I`TZ<v`<~v$q~GJ84zzU?&Cn7)%qww=mD1Z09iZrwa+cYl_zWJ zzj!*@w%w(_^3pVYNWUnGUHU7ps;Y<dxoisSvoGVxkntC3+@Kj?R9_l5Xa*S7m&V=n zUFAFATgJ1Y7x<O&s;yb6uNq)Ve8J25K&`KUMBk<U61H6*2EYIqVD&wm+<@i(3QADx zqXeM@*?j=i8R*(x0;pkq4<OF~^Z?6mL1@Cr02qK<5HbK600UqE46xmR9~p0kbkBDV zz)F2}GVXoPPC|&IUTT-VGL=E1uM9Qp0_K8<!7&|83uFK>t^y1IGDue2QPDpC00000 LNkvXXu0mjf<5tiP
--- a/browser/themes/windows/browser.css +++ b/browser/themes/windows/browser.css @@ -2532,21 +2532,43 @@ toolbarbutton.bookmark-item[dragover="tr list-style-image: url(chrome://mozapps/skin/passwordmgr/key-16.png); } #webapps-notification-icon { list-style-image: url(chrome://browser/skin/webapps-16.png); } #plugins-notification-icon { - list-style-image: url(chrome://mozapps/skin/plugins/pluginGeneric-16.png); + list-style-image: url(chrome://browser/skin/notification-pluginNormal.png); +} + +#alert-plugins-notification-icon { + list-style-image: url(chrome://browser/skin/notification-pluginAlert.png); } #blocked-plugins-notification-icon { - list-style-image: url(chrome://mozapps/skin/plugins/notifyPluginBlocked.png); + list-style-image: url(chrome://browser/skin/notification-pluginBlocked.png); +} + +#plugins-notification-icon, +#alert-plugins-notification-icon, +#blocked-plugins-notification-icon { + -moz-image-region: rect(0, 16px, 16px, 0); +} + +#plugins-notification-icon:hover, +#alert-plugins-notification-icon:hover, +#blocked-plugins-notification-icon:hover { + -moz-image-region: rect(0, 32px, 16px, 16px); +} + +#plugins-notification-icon:active, +#alert-plugins-notification-icon:active, +#blocked-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
--- a/browser/themes/windows/jar.mn +++ b/browser/themes/windows/jar.mn @@ -67,16 +67,19 @@ browser.jar: skin/classic/browser/Toolbar-inverted.png skin/classic/browser/toolbarbutton-dropdown-arrow.png skin/classic/browser/toolbarbutton-dropdown-arrow-inverted.png skin/classic/browser/urlbar-arrow.png skin/classic/browser/urlbar-popup-blocked.png skin/classic/browser/urlbar-history-dropmarker.png skin/classic/browser/webapps-16.png skin/classic/browser/webapps-64.png + skin/classic/browser/notification-pluginNormal.png (../shared/plugins/notification-pluginNormal.png) + skin/classic/browser/notification-pluginAlert.png (../shared/plugins/notification-pluginAlert.png) + skin/classic/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png) skin/classic/browser/webRTC-shareDevice-16.png skin/classic/browser/webRTC-shareDevice-64.png skin/classic/browser/webRTC-sharingDevice-16.png * skin/classic/browser/downloads/allDownloadsViewOverlay.css (downloads/allDownloadsViewOverlay.css) skin/classic/browser/downloads/buttons.png (downloads/buttons.png) skin/classic/browser/downloads/contentAreaDownloadsView.css (downloads/contentAreaDownloadsView.css) skin/classic/browser/downloads/download-glow.png (downloads/download-glow.png) skin/classic/browser/downloads/download-notification-finish.png (downloads/download-notification-finish.png) @@ -321,16 +324,19 @@ browser.jar: skin/classic/aero/browser/Toolbar-inverted.png skin/classic/aero/browser/toolbarbutton-dropdown-arrow.png skin/classic/aero/browser/toolbarbutton-dropdown-arrow-inverted.png skin/classic/aero/browser/urlbar-arrow.png skin/classic/aero/browser/urlbar-popup-blocked.png skin/classic/aero/browser/urlbar-history-dropmarker.png skin/classic/aero/browser/webapps-16.png skin/classic/aero/browser/webapps-64.png + skin/classic/aero/browser/notification-pluginNormal.png (../shared/plugins/notification-pluginNormal.png) + skin/classic/aero/browser/notification-pluginAlert.png (../shared/plugins/notification-pluginAlert.png) + skin/classic/aero/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png) skin/classic/aero/browser/webRTC-shareDevice-16.png skin/classic/aero/browser/webRTC-shareDevice-64.png skin/classic/aero/browser/webRTC-sharingDevice-16.png * skin/classic/aero/browser/downloads/allDownloadsViewOverlay.css (downloads/allDownloadsViewOverlay-aero.css) skin/classic/aero/browser/downloads/buttons.png (downloads/buttons-aero.png) skin/classic/aero/browser/downloads/contentAreaDownloadsView.css (downloads/contentAreaDownloadsView.css) skin/classic/aero/browser/downloads/download-glow.png (downloads/download-glow.png) skin/classic/aero/browser/downloads/download-notification-finish.png (downloads/download-notification-finish.png)
--- a/toolkit/mozapps/plugins/content/pluginProblem.xml +++ b/toolkit/mozapps/plugins/content/pluginProblem.xml @@ -69,14 +69,16 @@ <xul:spacer flex="1"/> </xul:vbox> </xul:vbox> <html:div class="previewPluginContent"><!-- iframe and its src will be set at runtime --></html:div> <html:div style="display:none;"><children/></html:div> </content> <implementation> <constructor> - // Notify browser-plugins.js that we were attached - this.dispatchEvent(new CustomEvent("PluginBindingAttached")); + // Notify browser-plugins.js that we were attached, on a delay because + // this binding doesn't complete layout until the constructor + // completes. + setTimeout(() => { this.dispatchEvent(new CustomEvent("PluginBindingAttached")) }, 0); </constructor> </implementation> </binding> </bindings>
--- a/toolkit/themes/linux/mozapps/jar.mn +++ b/toolkit/themes/linux/mozapps/jar.mn @@ -24,20 +24,18 @@ toolkit.jar: + skin/classic/mozapps/extensions/themeGeneric.png (extensions/themeGeneric.png) + skin/classic/mozapps/extensions/themeGeneric-16.png (extensions/themeGeneric-16.png) + skin/classic/mozapps/extensions/localeGeneric.png (extensions/localeGeneric.png) + skin/classic/mozapps/extensions/newaddon.css (extensions/newaddon.css) + skin/classic/mozapps/extensions/selectAddons.css (extensions/selectAddons.css) + skin/classic/mozapps/passwordmgr/key.png (passwordmgr/key-16.png) + skin/classic/mozapps/passwordmgr/key-16.png (passwordmgr/key-16.png) + skin/classic/mozapps/passwordmgr/key-64.png (passwordmgr/key-64.png) -+ skin/classic/mozapps/plugins/notifyPluginBlocked.png (plugins/pluginBlocked-16.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/notifyPluginOutdated.png (plugins/pluginBlocked-16.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/profile/profileicon.png (profile/profileicon.png) + skin/classic/mozapps/viewsource/viewsource.css (viewsource/viewsource.css) + skin/classic/mozapps/xpinstall/xpinstallItemGeneric.png (extensions/extensionGeneric.png) #ifdef MOZ_PLACES
deleted file mode 100644 index d4dd69dd3d2e6e2a68e1e0bfa43db30883279c26..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
--- a/toolkit/themes/osx/mozapps/jar.mn +++ b/toolkit/themes/osx/mozapps/jar.mn @@ -58,20 +58,18 @@ toolkit.jar: skin/classic/mozapps/plugins/contentPluginBlocked.png (plugins/contentPluginBlocked.png) skin/classic/mozapps/plugins/contentPluginClose.png (plugins/contentPluginClose.png) skin/classic/mozapps/plugins/contentPluginCrashed.png (plugins/contentPluginCrashed.png) skin/classic/mozapps/plugins/contentPluginDisabled.png (plugins/contentPluginDisabled.png) skin/classic/mozapps/plugins/contentPluginDownload.png (plugins/contentPluginDownload.png) skin/classic/mozapps/plugins/contentPluginMissing.png (plugins/contentPluginMissing.png) skin/classic/mozapps/plugins/contentPluginClickToPlay.png (plugins/contentPluginClickToPlay.png) skin/classic/mozapps/plugins/contentPluginClickToPlayPlain.png (plugins/contentPluginClickToPlayPlain.png) - skin/classic/mozapps/plugins/notifyPluginBlocked.png (plugins/pluginBlocked-16.png) skin/classic/mozapps/plugins/notifyPluginCrashed.png (plugins/notifyPluginGeneric.png) skin/classic/mozapps/plugins/notifyPluginGeneric.png (plugins/notifyPluginGeneric.png) - skin/classic/mozapps/plugins/notifyPluginOutdated.png (plugins/notifyPluginGeneric.png) skin/classic/mozapps/plugins/pluginProblem.css (plugins/pluginProblem.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/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/profile/profileicon.png (profile/profileicon.png)
deleted file mode 100644 index 1700ed11f285d6bcdd4d18997438624d25ba3718..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@<O00001
--- a/toolkit/themes/windows/mozapps/jar.mn +++ b/toolkit/themes/windows/mozapps/jar.mn @@ -62,20 +62,18 @@ toolkit.jar: skin/classic/mozapps/plugins/contentPluginBlocked.png (plugins/contentPluginBlocked.png) skin/classic/mozapps/plugins/contentPluginClose.png (plugins/contentPluginClose.png) skin/classic/mozapps/plugins/contentPluginCrashed.png (plugins/contentPluginCrashed.png) skin/classic/mozapps/plugins/contentPluginDisabled.png (plugins/contentPluginDisabled.png) skin/classic/mozapps/plugins/contentPluginDownload.png (plugins/contentPluginDownload.png) skin/classic/mozapps/plugins/contentPluginMissing.png (plugins/contentPluginMissing.png) skin/classic/mozapps/plugins/contentPluginClickToPlay.png (plugins/contentPluginClickToPlay.png) skin/classic/mozapps/plugins/contentPluginClickToPlayPlain.png (plugins/contentPluginClickToPlayPlain.png) - skin/classic/mozapps/plugins/notifyPluginBlocked.png (plugins/pluginBlocked-16.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/notifyPluginOutdated.png (plugins/pluginBlocked-16.png) skin/classic/mozapps/plugins/pluginProblem.css (plugins/pluginProblem.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/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) @@ -145,20 +143,18 @@ toolkit.jar: skin/classic/aero/mozapps/plugins/contentPluginBlocked.png (plugins/contentPluginBlocked.png) skin/classic/aero/mozapps/plugins/contentPluginClose.png (plugins/contentPluginClose.png) skin/classic/aero/mozapps/plugins/contentPluginCrashed.png (plugins/contentPluginCrashed.png) skin/classic/aero/mozapps/plugins/contentPluginDisabled.png (plugins/contentPluginDisabled.png) skin/classic/aero/mozapps/plugins/contentPluginDownload.png (plugins/contentPluginDownload.png) skin/classic/aero/mozapps/plugins/contentPluginMissing.png (plugins/contentPluginMissing.png) skin/classic/aero/mozapps/plugins/contentPluginClickToPlay.png (plugins/contentPluginClickToPlay.png) skin/classic/aero/mozapps/plugins/contentPluginClickToPlayPlain.png (plugins/contentPluginClickToPlayPlain.png) - skin/classic/aero/mozapps/plugins/notifyPluginBlocked.png (plugins/pluginBlocked-16-aero.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/notifyPluginOutdated.png (plugins/pluginBlocked-16-aero.png) skin/classic/aero/mozapps/plugins/pluginProblem.css (plugins/pluginProblem.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/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)