From 5d201148e6437190d428e7e6b9a5f0f0b845c709 Mon Sep 17 00:00:00 2001 From: Mark Hammond Date: Mon, 27 Aug 2012 21:16:38 +1000 Subject: [PATCH] Bug 780987 - implement social.user-recommend-* messages. r=mixedpuppy --- browser/base/content/browser-social.js | 81 ++++++++++++++++-- browser/base/content/test/Makefile.in | 1 + .../test/browser_social_shareButton.js | 19 +++- browser/base/content/test/head.js | 9 ++ .../base/content/test/social_share_image.png | Bin 0 -> 934 bytes browser/base/content/test/social_worker.js | 19 ++++ .../en-US/chrome/browser/browser.properties | 4 - browser/themes/gnomestripe/browser.css | 11 +-- browser/themes/gnomestripe/jar.mn | 3 - .../gnomestripe/share-button-active.png | Bin 1249 -> 0 bytes .../gnomestripe/share-button-shared.png | Bin 1460 -> 0 bytes browser/themes/gnomestripe/share-button.png | Bin 1245 -> 0 bytes browser/themes/pinstripe/browser.css | 11 +-- browser/themes/pinstripe/jar.mn | 3 - .../themes/pinstripe/share-button-active.png | Bin 1249 -> 0 bytes .../themes/pinstripe/share-button-shared.png | Bin 1460 -> 0 bytes browser/themes/pinstripe/share-button.png | Bin 1245 -> 0 bytes browser/themes/winstripe/browser.css | 11 +-- browser/themes/winstripe/jar.mn | 6 -- .../themes/winstripe/share-button-active.png | Bin 1249 -> 0 bytes .../themes/winstripe/share-button-shared.png | Bin 1460 -> 0 bytes browser/themes/winstripe/share-button.png | Bin 1245 -> 0 bytes 22 files changed, 126 insertions(+), 52 deletions(-) create mode 100644 browser/base/content/test/social_share_image.png delete mode 100644 browser/themes/gnomestripe/share-button-active.png delete mode 100644 browser/themes/gnomestripe/share-button-shared.png delete mode 100644 browser/themes/gnomestripe/share-button.png delete mode 100644 browser/themes/pinstripe/share-button-active.png delete mode 100644 browser/themes/pinstripe/share-button-shared.png delete mode 100644 browser/themes/pinstripe/share-button.png delete mode 100644 browser/themes/winstripe/share-button-active.png delete mode 100644 browser/themes/winstripe/share-button-shared.png delete mode 100644 browser/themes/winstripe/share-button.png diff --git a/browser/base/content/browser-social.js b/browser/base/content/browser-social.js index dfc1c681e4f..4d1d142d870 100644 --- a/browser/base/content/browser-social.js +++ b/browser/base/content/browser-social.js @@ -293,6 +293,12 @@ let SocialFlyout = { } let SocialShareButton = { + // promptImages and promptMessages being null means we are yet to get the + // message back from the provider with the images and icons (or that we got + // the response but determined it was invalid.) + promptImages: null, + promptMessages: null, + // Called once, after window load, when the Social.provider object is initialized init: function SSB_init() { this.updateButtonHiddenState(); @@ -311,6 +317,61 @@ let SocialShareButton = { } else { profileRow.hidden = true; } + // XXX - this shouldn't be done as part of updateProfileInfo, but instead + // whenever we notice the provider has changed - but the concept of + // "provider changed" will only exist once bug 774520 lands. + this.promptImages = null; + this.promptMessages = null; + // get the recommend-prompt info. + let port = Social.provider._getWorkerPort(); + if (port) { + port.onmessage = function(evt) { + if (evt.data.topic == "social.user-recommend-prompt-response") { + port.close(); + this.acceptRecommendInfo(evt.data.data); + this.updateButtonHiddenState(); + this.updateShareState(); + } + }.bind(this); + port.postMessage({topic: "social.user-recommend-prompt"}); + } + }, + + acceptRecommendInfo: function SSB_acceptRecommendInfo(data) { + // Accept *and validate* the user-recommend-prompt-response message. + let promptImages = {}; + let promptMessages = {}; + function reportError(reason) { + Cu.reportError("Invalid recommend data from provider: " + reason + ": sharing is disabled for this provider"); + return false; + } + if (!data || + !data.images || typeof data.images != "object" || + !data.messages || typeof data.messages != "object") { + return reportError("data is missing valid 'images' or 'messages' elements"); + } + for (let sub of ["share", "unshare"]) { + let url = data.images[sub]; + if (!url || typeof url != "string" || url.length == 0) { + return reportError('images["' + sub + '"] is missing or not a non-empty string'); + } + // resolve potentially relative URLs then check the scheme is acceptable. + url = Services.io.newURI(Social.provider.origin, null, null).resolve(url); + let uri = Services.io.newURI(url, null, null); + if (!uri.schemeIs("http") && !uri.schemeIs("https") && !uri.schemeIs("data")) { + return reportError('images["' + sub + '"] does not have a valid scheme'); + } + promptImages[sub] = url; + } + for (let sub of ["shareTooltip", "unshareTooltip", "sharedLabel", "unsharedLabel"]) { + if (typeof data.messages[sub] != "string" || data.messages[sub].length == 0) { + return reportError('messages["' + sub + '"] is not a valid string'); + } + promptMessages[sub] = data.messages[sub]; + } + this.promptImages = promptImages; + this.promptMessages = promptMessages; + return true; }, get shareButton() { @@ -327,7 +388,7 @@ let SocialShareButton = { updateButtonHiddenState: function SSB_updateButtonHiddenState() { let shareButton = this.shareButton; if (shareButton) - shareButton.hidden = !Social.uiVisible; + shareButton.hidden = !Social.uiVisible || this.promptImages == null; }, onClick: function SSB_onClick(aEvent) { @@ -370,23 +431,33 @@ let SocialShareButton = { // Provide a11y-friendly notification of share. let status = document.getElementById("share-button-status"); if (status) { + // XXX - this should also be capable of reflecting that the page was + // unshared (ie, it needs to manage three-states: (1) nothing done, (2) + // shared, (3) shared then unshared) + // Note that we *do* have an appropriate string from the provider for + // this (promptMessages['unsharedLabel'] but currently lack a way of + // tracking this state) let statusString = currentPageShared ? - gNavigatorBundle.getString("social.pageShared.label") : ""; + this.promptMessages['sharedLabel'] : ""; status.setAttribute("value", statusString); } // Update the share button, if present let shareButton = this.shareButton; - if (!shareButton) + if (!shareButton || shareButton.hidden) return; + let imageURL; if (currentPageShared) { shareButton.setAttribute("shared", "true"); - shareButton.setAttribute("tooltiptext", gNavigatorBundle.getString("social.shareButton.sharedtooltip")); + shareButton.setAttribute("tooltiptext", this.promptMessages['unshareTooltip']); + imageURL = this.promptImages["unshare"] } else { shareButton.removeAttribute("shared"); - shareButton.setAttribute("tooltiptext", gNavigatorBundle.getString("social.shareButton.tooltip")); + shareButton.setAttribute("tooltiptext", this.promptMessages['shareTooltip']); + imageURL = this.promptImages["share"] } + shareButton.style.backgroundImage = 'url("' + encodeURI(imageURL) + '")'; } }; diff --git a/browser/base/content/test/Makefile.in b/browser/base/content/test/Makefile.in index c1ff516cd03..4fe61ae88ae 100644 --- a/browser/base/content/test/Makefile.in +++ b/browser/base/content/test/Makefile.in @@ -268,6 +268,7 @@ _BROWSER_FILES = \ browser_social_isVisible.js \ browser_social_chatwindow.js \ social_panel.html \ + social_share_image.png \ social_sidebar.html \ social_chat.html \ social_flyout.html \ diff --git a/browser/base/content/test/browser_social_shareButton.js b/browser/base/content/test/browser_social_shareButton.js index 4788b0a797c..c442acdd5ca 100644 --- a/browser/base/content/test/browser_social_shareButton.js +++ b/browser/base/content/test/browser_social_shareButton.js @@ -48,11 +48,12 @@ function testInitial(finishcb) { let okButton = document.getElementById("editSharePopupOkButton"); let undoButton = document.getElementById("editSharePopupUndoButton"); + let shareStatusLabel = document.getElementById("share-button-status"); // ensure the worker initialization and handshakes are all done and we - // have a profile. - waitForCondition(function() Social.provider.profile, function() { - is(shareButton.hidden, false, "share button should be visible"); + // have a profile and the worker has responsed to the recommend-prompt msg. + waitForCondition(function() Social.provider.profile && SocialShareButton.promptImages != null, function() { + is(shareButton.hasAttribute("shared"), false, "Share button should not have 'shared' attribute before share button is clicked"); // check dom values let profile = Social.provider.profile; let portrait = document.getElementById("socialUserPortrait").getAttribute("src"); @@ -61,14 +62,24 @@ function testInitial(finishcb) { is(displayName.label, profile.displayName, "display name is set"); ok(!document.getElementById("editSharePopupHeader").hidden, "user profile is visible"); + // Check the strings from our worker actually ended up on the button. + is(shareButton.getAttribute("tooltiptext"), "Share this page", "check tooltip text is correct"); + is(shareStatusLabel.getAttribute("value"), "", "check status label text is blank"); + // Check the relative URL was resolved correctly (note this image has offsets of zero...) + is(shareButton.style.backgroundImage, 'url("https://example.com/browser/browser/base/content/test/social_share_image.png")', "check image url is correct"); + // Test clicking the share button shareButton.addEventListener("click", function listener() { shareButton.removeEventListener("click", listener); is(shareButton.hasAttribute("shared"), true, "Share button should have 'shared' attribute after share button is clicked"); + is(shareButton.getAttribute("tooltiptext"), "Unshare this page", "check tooltip text is correct"); + is(shareStatusLabel.getAttribute("value"), "This page has been shared", "check status label text is correct"); + // Check the URL and offsets were applied correctly + is(shareButton.style.backgroundImage, 'url("https://example.com/browser/browser/base/content/test/social_share_image.png")', "check image url is correct"); executeSoon(testSecondClick.bind(window, testPopupOKButton)); }); EventUtils.synthesizeMouseAtCenter(shareButton, {}); - }, "provider didn't provide a profile"); + }, "provider didn't provide user-recommend-prompt response"); } function testSecondClick(nextTest) { diff --git a/browser/base/content/test/head.js b/browser/base/content/test/head.js index e22bf9184ba..8cc7597b316 100644 --- a/browser/base/content/test/head.js +++ b/browser/base/content/test/head.js @@ -134,6 +134,15 @@ function runSocialTestWithProvider(manifest, callback) { Services.prefs.setBoolPref("social.enabled", true); registerCleanupFunction(function () { + // if one test happens to fail, it is likely finishSocialTest will not + // be called, causing most future social tests to also fail as they + // attempt to add a provider which already exists - so work + // around that by also attempting to remove the test provider. + try { + SocialService.removeProvider(provider.origin, finish); + } catch (ex) { + ; + } Social.provider = oldProvider; Services.prefs.clearUserPref("social.enabled"); }); diff --git a/browser/base/content/test/social_share_image.png b/browser/base/content/test/social_share_image.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1f8fb0e23b9689e51f667a5745898f929c0960 GIT binary patch literal 934 zcmV;X16lluP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&13O7XK~y+Tl~h?w z6HyeMX{VqdxP&#JML>gzF^WngX*5D0u|Y_zMiP}w{Nn>rQGbz7P5f-4KNwn+O$AF> zgVKtXvK0svEfujSv``QVEiLUV-kGsuAw}@@HhD91-#O>r^WH<~?G2J7H9f%ov98nOhJH8ceDV?e4Hp5)gc%_{E?d0-#BRtRAg? z*i-7p+yYcU5r3s@O5i1k=1!fqes*Z(4dvK5_OLD4PKMLBp0c*InFr8st)ta@owK*XwL`W7rL58Q|C<5?-2w=gd z{t;DsmuJl*6rj0T68(sAb=AdM$cC@!OYWryP4}e=>9}pY;qu$un7rKRJk^y({3I?w z1j>E|*T8kV$i3!y)1ua~dV%S}`Sj%#r*Xo}%jZ2X+Kh#Dg`@KZPALSQhC^_wD|#y` zdKEr=-!`4K{ZiC5PfpEnaFWxaB+>@BOKQlWayK11y-xy_& zvertb6vTcuO%55xcLWE8hU^4$hQ~}d^K&swIAgU9jv9Yj=6HyEh1Yp+0RoO| z$?KBT_|$?k1@K;}Q#Kiz9F&73$hN{Z3}sFO^FMOvAOwd3e6zL%pp1`=YVGVkm!2v~ zJN`kZ_osm_(~K}$go=vJ78N%XGkb~oaWQ}n6W&;Mu>c;!1Yw95DZN .ac-url-box > .ac-action- /* social recommending panel */ #share-button { - list-style-image: url(chrome://browser/skin/share-button.png); -} - -#share-button:not([shared]):not([disabled]):hover { - list-style-image: url(chrome://browser/skin/share-button-active.png); -} - -#share-button[shared] { - list-style-image: url(chrome://browser/skin/share-button-shared.png); + width: 16px; + height: 16px; } #socialUserPortrait { diff --git a/browser/themes/gnomestripe/jar.mn b/browser/themes/gnomestripe/jar.mn index a1e3276dde1..b7ad8ceb6a4 100644 --- a/browser/themes/gnomestripe/jar.mn +++ b/browser/themes/gnomestripe/jar.mn @@ -39,9 +39,6 @@ browser.jar: skin/classic/browser/Secure.png skin/classic/browser/Security-broken.png skin/classic/browser/setDesktopBackground.css - skin/classic/browser/share-button.png - skin/classic/browser/share-button-active.png - skin/classic/browser/share-button-shared.png skin/classic/browser/Toolbar.png skin/classic/browser/Toolbar-small.png skin/classic/browser/urlbar-arrow.png diff --git a/browser/themes/gnomestripe/share-button-active.png b/browser/themes/gnomestripe/share-button-active.png deleted file mode 100644 index a87501e89b3112b507b9385d43d021e7700fb150..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=up}Cu>lZ&aVv6H2tp{s$DnT4~38IWZLlrVB} zgXwk2PcF?(%`1WFO+n~2!>JdP6mkoIHoK%2WtOF;xE1B+DuBIgm5JLe#yHJ`>P^Az z789I$^?{Dj2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5@6tj!tD@U<~ziaSW-rmGtBP ze|zSY5vl*x%@pQwCK($};0XC%J1P0c_x}b0%Nu{_EXfGF`S~EH$65z5@eBj1X%3tBdDc33uAaCa0p++e%Q;1*Ei!X8w-zWLBYgDV@91Ex2|6!UgOC$QOi zUrRYMYeIuieIutTcL#GL(Cwd@Kbk0rF`c@}l*z7O*L0cHK*8{Dkp3j@ZTn7K`Ro|p zY_7?iyOKSrRH2Uj$jcj|f+uz@5zopr E08!kg%>V!Z diff --git a/browser/themes/gnomestripe/share-button-shared.png b/browser/themes/gnomestripe/share-button-shared.png deleted file mode 100644 index cb8a11e81d899117cc02c924525c99182b7b8166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1460 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=miIbtBv7582v6H2tp{s$DnT4~38IWaWXzpg@ z;s(>}lAm0fo0?Yw)0=|O>w;4+C@JI?0Bv?jEy^rQO>ryA&s6|>*(wvaTO4tk2i2Q` z+bvEw_38s1qYsK$q=<$I0aFi%2~V~_4m{zf<^fZC5inV|2bpeWU|`blba4!+xHV<+ z!R#vzBFECzPM#@Sz2kyygn_cH$j1ks+DB)1b*vB#5lHFpstDk3I#DM0GAwq_5B`b} zu4`dBaV{<)+t_Vio^95cT(WkzQ~AZ5$vKlg`rgP{th0?xZt~2^{pR;;Di5|UWx92s zdAH-08^124tX;phy5|44?kDz%xj+AY>Ig25%WNz2TRV~WfFZ|1{k>cH7deC(&o-_u ziS7S>(kg*}TU^&_HdC=13a5n+EK=wa{#vRs`PuTRbCRvUvzzhCT$fzJe7(?GBZBwc zfqhs0v({G!-_~?C;hyCF@SN?9zc0hi9IoLiQo6(+vgz&fYb_kkw!njv{+${~fG=c^i?EdSvw zkuD^>SAO2bin}*ld95_%xR3ZBcU>|=)b&NA8 z=U%lC3Xwb2`?So&-t2o@Tt%?qj^D-)>)vLcjVO0~_w)z%mc8$9iRIq^Ffq~E(u37g z)1y5|IMsbq>i)Oanan>dTzJ0Zp@!_=sK~P885uPzRPDOG6K;gXJ?O5FH9hxN_W%Ra Wia%XpEQh^8<*28tpUXO@geCyiVI1fH diff --git a/browser/themes/gnomestripe/share-button.png b/browser/themes/gnomestripe/share-button.png deleted file mode 100644 index 86bd5ec70add448cfa5647e9448d9bb2ea5349a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=up}Cu>lZ&CNv6H2tp{s$DnT4~38IWZLlrVB} zgXwk2PcF?(%`1WFO+n~2!l@UO6mkoIHoK%2WtOF;xE1B+DuBIgm5I|W&Tcr(gX&Ge z?G^)^di8;h(Fa8=QbfaqfT;(>geO}d2cGa#^MI+n2$-yer@y|;z`z*j>EaktacjzD zd+);mBJB^abSZE+9o(92*RZ;YBhOXC!h@Zay_GA^^@^j5po{L;c;V(L*Q7#@BxyJ8 zFjKIw>}(T$ry(_6^S!2jg}2$V ziN``BF8yb$-eu{NUD5tG>Y(wx)a}2%OO>(Sxc)6M)qcW* z#L`SX;a@x{M{CzPA2kc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=up}Cu>lZ&aVv6H2tp{s$DnT4~38IWZLlrVB} zgXwk2PcF?(%`1WFO+n~2!>JdP6mkoIHoK%2WtOF;xE1B+DuBIgm5JLe#yHJ`>P^Az z789I$^?{Dj2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5@6tj!tD@U<~ziaSW-rmGtBP ze|zSY5vl*x%@pQwCK($};0XC%J1P0c_x}b0%Nu{_EXfGF`S~EH$65z5@eBj1X%3tBdDc33uAaCa0p++e%Q;1*Ei!X8w-zWLBYgDV@91Ex2|6!UgOC$QOi zUrRYMYeIuieIutTcL#GL(Cwd@Kbk0rF`c@}l*z7O*L0cHK*8{Dkp3j@ZTn7K`Ro|p zY_7?iyOKSrRH2Uj$jcj|f+uz@5zopr E08!kg%>V!Z diff --git a/browser/themes/pinstripe/share-button-shared.png b/browser/themes/pinstripe/share-button-shared.png deleted file mode 100644 index cb8a11e81d899117cc02c924525c99182b7b8166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1460 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=miIbtBv7582v6H2tp{s$DnT4~38IWaWXzpg@ z;s(>}lAm0fo0?Yw)0=|O>w;4+C@JI?0Bv?jEy^rQO>ryA&s6|>*(wvaTO4tk2i2Q` z+bvEw_38s1qYsK$q=<$I0aFi%2~V~_4m{zf<^fZC5inV|2bpeWU|`blba4!+xHV<+ z!R#vzBFECzPM#@Sz2kyygn_cH$j1ks+DB)1b*vB#5lHFpstDk3I#DM0GAwq_5B`b} zu4`dBaV{<)+t_Vio^95cT(WkzQ~AZ5$vKlg`rgP{th0?xZt~2^{pR;;Di5|UWx92s zdAH-08^124tX;phy5|44?kDz%xj+AY>Ig25%WNz2TRV~WfFZ|1{k>cH7deC(&o-_u ziS7S>(kg*}TU^&_HdC=13a5n+EK=wa{#vRs`PuTRbCRvUvzzhCT$fzJe7(?GBZBwc zfqhs0v({G!-_~?C;hyCF@SN?9zc0hi9IoLiQo6(+vgz&fYb_kkw!njv{+${~fG=c^i?EdSvw zkuD^>SAO2bin}*ld95_%xR3ZBcU>|=)b&NA8 z=U%lC3Xwb2`?So&-t2o@Tt%?qj^D-)>)vLcjVO0~_w)z%mc8$9iRIq^Ffq~E(u37g z)1y5|IMsbq>i)Oanan>dTzJ0Zp@!_=sK~P885uPzRPDOG6K;gXJ?O5FH9hxN_W%Ra Wia%XpEQh^8<*28tpUXO@geCyiVI1fH diff --git a/browser/themes/pinstripe/share-button.png b/browser/themes/pinstripe/share-button.png deleted file mode 100644 index 86bd5ec70add448cfa5647e9448d9bb2ea5349a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=up}Cu>lZ&CNv6H2tp{s$DnT4~38IWZLlrVB} zgXwk2PcF?(%`1WFO+n~2!l@UO6mkoIHoK%2WtOF;xE1B+DuBIgm5I|W&Tcr(gX&Ge z?G^)^di8;h(Fa8=QbfaqfT;(>geO}d2cGa#^MI+n2$-yer@y|;z`z*j>EaktacjzD zd+);mBJB^abSZE+9o(92*RZ;YBhOXC!h@Zay_GA^^@^j5po{L;c;V(L*Q7#@BxyJ8 zFjKIw>}(T$ry(_6^S!2jg}2$V ziN``BF8yb$-eu{NUD5tG>Y(wx)a}2%OO>(Sxc)6M)qcW* z#L`SX;a@x{M{CzPA2k .ac-url-box > .ac-action- /* social recommending panel */ #share-button { - list-style-image: url(chrome://browser/skin/share-button.png); -} - -#share-button:not([shared]):not([disabled]):hover { - list-style-image: url(chrome://browser/skin/share-button-active.png); -} - -#share-button[shared] { - list-style-image: url(chrome://browser/skin/share-button-shared.png); + width: 16px; + height: 16px; } #socialUserPortrait { diff --git a/browser/themes/winstripe/jar.mn b/browser/themes/winstripe/jar.mn index 2e1678e807d..345dc068648 100644 --- a/browser/themes/winstripe/jar.mn +++ b/browser/themes/winstripe/jar.mn @@ -50,9 +50,6 @@ browser.jar: skin/classic/browser/searchbar.css (searchbar.css) skin/classic/browser/searchbar-dropdown-arrow.png skin/classic/browser/setDesktopBackground.css - skin/classic/browser/share-button.png - skin/classic/browser/share-button-active.png - skin/classic/browser/share-button-shared.png skin/classic/browser/menu-back.png (menu-back.png) skin/classic/browser/menu-forward.png (menu-forward.png) skin/classic/browser/monitor.png @@ -254,9 +251,6 @@ browser.jar: skin/classic/aero/browser/searchbar.css (searchbar.css) skin/classic/aero/browser/searchbar-dropdown-arrow.png (searchbar-dropdown-arrow-aero.png) skin/classic/aero/browser/setDesktopBackground.css - skin/classic/aero/browser/share-button.png - skin/classic/aero/browser/share-button-active.png - skin/classic/aero/browser/share-button-shared.png skin/classic/aero/browser/menu-back.png (menu-back-aero.png) skin/classic/aero/browser/menu-forward.png (menu-forward-aero.png) skin/classic/aero/browser/monitor.png diff --git a/browser/themes/winstripe/share-button-active.png b/browser/themes/winstripe/share-button-active.png deleted file mode 100644 index a87501e89b3112b507b9385d43d021e7700fb150..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1249 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=up}Cu>lZ&aVv6H2tp{s$DnT4~38IWZLlrVB} zgXwk2PcF?(%`1WFO+n~2!>JdP6mkoIHoK%2WtOF;xE1B+DuBIgm5JLe#yHJ`>P^Az z789I$^?{Dj2SqGWM8kxDsRzV_CtDx~p72xifT_I*n5@6tj!tD@U<~ziaSW-rmGtBP ze|zSY5vl*x%@pQwCK($};0XC%J1P0c_x}b0%Nu{_EXfGF`S~EH$65z5@eBj1X%3tBdDc33uAaCa0p++e%Q;1*Ei!X8w-zWLBYgDV@91Ex2|6!UgOC$QOi zUrRYMYeIuieIutTcL#GL(Cwd@Kbk0rF`c@}l*z7O*L0cHK*8{Dkp3j@ZTn7K`Ro|p zY_7?iyOKSrRH2Uj$jcj|f+uz@5zopr E08!kg%>V!Z diff --git a/browser/themes/winstripe/share-button-shared.png b/browser/themes/winstripe/share-button-shared.png deleted file mode 100644 index cb8a11e81d899117cc02c924525c99182b7b8166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1460 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=miIbtBv7582v6H2tp{s$DnT4~38IWaWXzpg@ z;s(>}lAm0fo0?Yw)0=|O>w;4+C@JI?0Bv?jEy^rQO>ryA&s6|>*(wvaTO4tk2i2Q` z+bvEw_38s1qYsK$q=<$I0aFi%2~V~_4m{zf<^fZC5inV|2bpeWU|`blba4!+xHV<+ z!R#vzBFECzPM#@Sz2kyygn_cH$j1ks+DB)1b*vB#5lHFpstDk3I#DM0GAwq_5B`b} zu4`dBaV{<)+t_Vio^95cT(WkzQ~AZ5$vKlg`rgP{th0?xZt~2^{pR;;Di5|UWx92s zdAH-08^124tX;phy5|44?kDz%xj+AY>Ig25%WNz2TRV~WfFZ|1{k>cH7deC(&o-_u ziS7S>(kg*}TU^&_HdC=13a5n+EK=wa{#vRs`PuTRbCRvUvzzhCT$fzJe7(?GBZBwc zfqhs0v({G!-_~?C;hyCF@SN?9zc0hi9IoLiQo6(+vgz&fYb_kkw!njv{+${~fG=c^i?EdSvw zkuD^>SAO2bin}*ld95_%xR3ZBcU>|=)b&NA8 z=U%lC3Xwb2`?So&-t2o@Tt%?qj^D-)>)vLcjVO0~_w)z%mc8$9iRIq^Ffq~E(u37g z)1y5|IMsbq>i)Oanan>dTzJ0Zp@!_=sK~P885uPzRPDOG6K;gXJ?O5FH9hxN_W%Ra Wia%XpEQh^8<*28tpUXO@geCyiVI1fH diff --git a/browser/themes/winstripe/share-button.png b/browser/themes/winstripe/share-button.png deleted file mode 100644 index 86bd5ec70add448cfa5647e9448d9bb2ea5349a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=up}Cu>lZ&CNv6H2tp{s$DnT4~38IWZLlrVB} zgXwk2PcF?(%`1WFO+n~2!l@UO6mkoIHoK%2WtOF;xE1B+DuBIgm5I|W&Tcr(gX&Ge z?G^)^di8;h(Fa8=QbfaqfT;(>geO}d2cGa#^MI+n2$-yer@y|;z`z*j>EaktacjzD zd+);mBJB^abSZE+9o(92*RZ;YBhOXC!h@Zay_GA^^@^j5po{L;c;V(L*Q7#@BxyJ8 zFjKIw>}(T$ry(_6^S!2jg}2$V ziN``BF8yb$-eu{NUD5tG>Y(wx)a}2%OO>(Sxc)6M)qcW* z#L`SX;a@x{M{CzPA2k