Backout bc090e21a088 (bug 773845), ca832757d4b7 (bug 771826), 492da706c14c (bug 774178) for mochitest-a11y failures
authorEd Morley <emorley@mozilla.com>
Mon, 16 Jul 2012 10:09:26 +0100
changeset 99401 082542b01af82eb14f184e7f2c69515c5247aebd
parent 99400 6c581f1010fac835844b05043b4d30d73e543de3
child 99402 b85bf85ebc062297b6fcbf3a73245342ca8f6766
push id11978
push useremorley@mozilla.com
push dateMon, 16 Jul 2012 09:09:45 +0000
treeherdermozilla-inbound@082542b01af8 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs773845, 771826, 774178
milestone16.0a1
backs outbc090e21a088c63714502279edb5e0c88d0034f8
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
Backout bc090e21a088 (bug 773845), ca832757d4b7 (bug 771826), 492da706c14c (bug 774178) for mochitest-a11y failures
browser/app/profile/firefox.js
browser/base/content/browser-social.js
browser/base/content/browser.xul
browser/base/content/test/Makefile.in
browser/base/content/test/browser_social_toolbar.js
browser/locales/en-US/chrome/browser/browser.dtd
browser/modules/Social.jsm
browser/themes/pinstripe/browser.css
browser/themes/pinstripe/jar.mn
browser/themes/pinstripe/social/panelarrow-down.png
browser/themes/pinstripe/social/panelarrow-horiz.png
browser/themes/pinstripe/social/panelarrow-up.png
browser/themes/pinstripe/social/social.png
browser/themes/winstripe/browser.css
browser/themes/winstripe/jar.mn
browser/themes/winstripe/social/social.png
toolkit/components/social/SocialProvider.jsm
toolkit/components/social/SocialService.jsm
toolkit/components/social/test/browser/browser_workerAPI.js
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1179,9 +1179,9 @@ pref("pdfjs.previousHandler.preferredAct
 pref("pdfjs.previousHandler.alwaysAskBeforeHandling", false);
 
 // The maximum amount of decoded image data we'll willingly keep around (we
 // might keep around more than this, but we'll try to get down to this value).
 // (This is intentionally on the high side; see bug 746055.)
 pref("image.mem.max_decoded_image_kb", 256000);
 
 // Example social provider
-pref("social.manifest.motown", "{\"origin\":\"https://motown-dev.mozillalabs.com\",\"name\":\"MoTown\",\"workerURL\":\"https://motown-dev.mozillalabs.com/social/worker.js\",\"iconURL\":\"https://motown-dev.mozillalabs.com/images/motown-icon.png\"}");
+pref("social.manifest.motown", "{\"origin\":\"https://motown-dev.mozillalabs.com\",\"name\":\"MoTown\",\"workerURL\":\"https://motown-dev.mozillalabs.com/social/worker.js\"}");
--- a/browser/base/content/browser-social.js
+++ b/browser/base/content/browser-social.js
@@ -1,77 +1,57 @@
 // 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/.
 
 let SocialUI = {
   // Called on delayed startup to initialize UI
   init: function SocialUI_init() {
     Services.obs.addObserver(this, "social:pref-changed", false);
-    Services.obs.addObserver(this, "social:ambient-notification-changed", false);
-    Services.obs.addObserver(this, "social:profile-changed", false);
-
     Social.init(this._providerReady.bind(this));
   },
 
   // Called on window unload
   uninit: function SocialUI_uninit() {
     Services.obs.removeObserver(this, "social:pref-changed");
-    Services.obs.removeObserver(this, "social:ambient-notification-changed");
-    Services.obs.removeObserver(this, "social:profile-changed");
-  },
-
-  showProfile: function SocialUI_showProfile() {
-    if (Social.provider)
-      openUILink(Social.provider.profile.profileURL);
   },
 
-  observe: function SocialUI_observe(subject, topic, data) {
-    switch (topic) {
-      case "social:pref-changed":
-        SocialShareButton.updateButtonHiddenState();
-        SocialToolbar.updateButtonHiddenState();
-        break;
-      case "social:ambient-notification-changed":
-        SocialToolbar.updateButton();
-        break;
-      case "social:profile-changed":
-        SocialToolbar.updateProfile();
-        break;
-    }
+  // Called when the social.enabled pref is changed
+  observe: function SocialUI_observe(aSubject, aTopic, aData) {
+    SocialShareButton.updateButtonEnabledState();
   },
 
   // Called once Social.jsm's provider has been set
   _providerReady: function SocialUI_providerReady() {
-    SocialToolbar.init();
     SocialShareButton.init();
   }
 }
 
 let SocialShareButton = {
   init: function SSB_init() {
     this.sharePopup.hidden = false;
-    this.updateButtonHiddenState();
+    this.updateButtonEnabledState();
   },
 
   get shareButton() {
     return document.getElementById("share-button");
   },
   get sharePopup() {
     return document.getElementById("editSharePopup");
   },
 
   dismissSharePopup: function SSB_dismissSharePopup() {
     this.sharePopup.hidePopup();
   },
 
-  updateButtonHiddenState: function SSB_updateButtonHiddenState() {
+  updateButtonEnabledState: function SSB_updateButtonEnabledState() {
     let shareButton = this.shareButton;
     if (shareButton)
-      shareButton.hidden = !Social.uiVisible;
+      shareButton.hidden = !Social.provider || !Social.provider.enabled ||
+                           !Social.provider.port;
   },
 
   onClick: function SSB_onClick(aEvent) {
     if (aEvent.button != 0)
       return;
 
     // Don't bubble to the textbox, to avoid unwanted selection of the address.
     aEvent.stopPropagation();
@@ -121,122 +101,8 @@ let SocialShareButton = {
       shareButton.setAttribute("shared", "true");
       shareButton.setAttribute("tooltiptext", gNavigatorBundle.getString("social.shareButton.sharedtooltip"));
     } else {
       shareButton.removeAttribute("shared");
       shareButton.setAttribute("tooltiptext", gNavigatorBundle.getString("social.shareButton.tooltip"));
     }
   }
 };
-
-var SocialToolbar = {
-  // Called once, after window load, when the Social.provider object is initialized
-  init: function SocialToolbar_init() {
-    document.getElementById("social-provider-image").setAttribute("image", Social.provider.iconURL);
-    
-    // handle button state
-    document.getElementById("social-statusarea-popup").addEventListener("popupshowing", function(e) {
-      document.getElementById("social-toolbar-button").setAttribute("open", "true");
-    }, false);
-    document.getElementById("social-statusarea-popup").addEventListener("popuphiding", function(e) {
-      document.getElementById("social-toolbar-button").removeAttribute("open");
-    }, false);
-
-    this.updateButton();
-    this.updateProfile();
-  },
-
-  updateButtonHiddenState: function SocialToolbar_updateButtonHiddenState() {
-    let toolbarbutton = document.getElementById("social-toolbar-button");
-    toolbarbutton.hidden = !Social.uiVisible;
-  },
-
-  updateProfile: function SocialToolbar_updateProfile() {
-    // Profile may not have been initialized yet, since it depends on a worker
-    // response. In that case we'll be called again when it's available, via
-    // social:profile-changed
-    let profile = Social.provider.profile || {};
-    let userPortrait = profile.portrait || "chrome://browser/skin/social/social.png";
-    document.getElementById("social-statusarea-user-portrait").setAttribute("src", userPortrait);
-
-    let notLoggedInLabel = document.getElementById("social-statusarea-notloggedin");
-    let userNameBtn = document.getElementById("social-statusarea-username");
-    if (profile.userName) {
-      notLoggedInLabel.hidden = true;
-      userNameBtn.hidden = false;
-      userNameBtn.label = profile.userName;
-    } else {
-      notLoggedInLabel.hidden = false;
-      userNameBtn.hidden = true;
-    }
-  },
-
-  updateButton: function SocialToolbar_updateButton() {
-    this.updateButtonHiddenState();
-
-    let provider = Social.provider;
-    // if there are no ambient icons, we collapse them in the following loop
-    let iconNames = Object.keys(provider.ambientNotificationIcons);
-    let iconBox = document.getElementById("social-status-iconbox");
-    for (var i = 0; i < iconBox.childNodes.length; i++) {
-      let iconContainer = iconBox.childNodes[i];
-      if (i > iconNames.length - 1) {
-        iconContainer.collapsed = true;
-        continue;
-      }
-
-      iconContainer.collapsed = false;
-      let icon = provider.ambientNotificationIcons[iconNames[i]];
-      let iconImage = iconContainer.firstChild;
-      let iconCounter = iconImage.nextSibling;
-
-      iconImage.setAttribute("contentPanel", icon.contentPanel);
-      iconImage.setAttribute("src", icon.iconURL);
-
-      if (iconCounter.firstChild)
-        iconCounter.removeChild(iconCounter.firstChild);
-
-      if (icon.counter) {
-        iconCounter.appendChild(document.createTextNode(icon.counter));
-        iconCounter.collapsed = false;
-      } else {
-        iconCounter.collapsed = true;
-      }
-    }
-  },
-
-  showAmbientPopup: function SocialToolbar_showAmbientPopup(iconContainer) {
-    let iconImage = iconContainer.firstChild;
-    var panel = document.getElementById("social-notification-panel");
-    var notifBrowser = document.getElementById("social-notification-browser");
-
-    function sizePanelToContent() {
-      // XXX Maybe we can use nsIDOMWindowUtils.getRootBounds() here?
-      // XXX need to handle dynamic sizing
-      let doc = notifBrowser.contentDocument;
-      // XXX "notif" is an implementation detail that we should get rid of
-      // eventually
-      let body = doc.getElementById("notif") || doc.body.firstChild;
-      if (!body)
-        return;
-      let h = body.scrollHeight > 0 ? body.scrollHeight : 300;
-      notifBrowser.style.width = body.scrollWidth + "px";
-      notifBrowser.style.height = h + "px";
-    }
-
-    notifBrowser.addEventListener("DOMContentLoaded", function onload() {
-      notifBrowser.removeEventListener("DOMContentLoaded", onload);
-      sizePanelToContent();
-    });
-
-    panel.addEventListener("popuphiding", function onpopuphiding() {
-      panel.removeEventListener("popuphiding", onpopuphiding);
-      // unload the panel
-      document.getElementById("social-toolbar-button").removeAttribute("open");
-      notifBrowser.setAttribute("src", "about:blank");
-    });
-
-    notifBrowser.service = Social.provider;
-    notifBrowser.setAttribute("src", iconImage.getAttribute("contentPanel"));
-    document.getElementById("social-toolbar-button").setAttribute("open", "true");
-    panel.openPopup(iconImage, "bottomcenter topleft", 0, 0, false, false);
-  }
-}
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -216,20 +216,16 @@
                 class="editSharePopupBottomButton"
                 label="&social.sharePopup.undo.label;"
                 accesskey="&social.sharePopup.undo.accesskey;"
                 command="Social:UnsharePage"/>
 #endif
       </hbox>
     </panel>
 
-    <panel id="social-notification-panel" type="arrow">
-      <browser id="social-notification-browser" type="content" flex="1"/>
-    </panel>
-
     <menupopup id="inspector-node-popup">
       <menuitem id="inspectorHTMLCopyInner"
                 label="&inspectorHTMLCopyInner.label;"
                 accesskey="&inspectorHTMLCopyInner.accesskey;"
                 command="Inspector:CopyInner"/>
       <menuitem id="inspectorHTMLCopyOuter"
                 label="&inspectorHTMLCopyOuter.label;"
                 accesskey="&inspectorHTMLCopyOuter.accesskey;"
@@ -603,55 +599,16 @@
                      label="&homeButton.label;"
                      ondragover="homeButtonObserver.onDragOver(event)"
                      ondragenter="homeButtonObserver.onDragOver(event)"
                      ondrop="homeButtonObserver.onDrop(event)"
                      ondragexit="homeButtonObserver.onDragExit(event)"
                      onclick="BrowserGoHome(event);"
                      aboutHomeOverrideTooltip="&abouthome.pageTitle;"/>
 
-      <toolbaritem id="social-toolbar-button"
-                   class="toolbarbutton-1 chromeclass-toolbar-additional"
-                   removable="false"
-                   title="&socialToolbar.title;"
-                   hidden="true">
-        <hbox id="social-toolbar-button-box" class="social-statusarea-container">
-          <button id="social-provider-image" type="menu">
-            <menupopup id="social-statusarea-popup">
-              <hbox id="social-statusarea-user" pack="left" align="center">
-                <image id="social-statusarea-user-portrait"/>
-                <vbox>
-                  <label id="social-statusarea-notloggedin"
-                         value="&social.notLoggedIn.label;"/>
-                  <button id="social-statusarea-username"
-                          oncommand="SocialUI.showProfile(); document.getElementById('social-statusarea-popup').hidePopup();"/>
-                </vbox>
-              </hbox>
-            </menupopup>
-          </button>
-          <hbox id="social-status-iconbox" flex="1">
-            <box class="social-notification-icon-container" collapsed="true"
-                     onclick="SocialToolbar.showAmbientPopup(this);">
-              <image class="social-notification-icon-image"/>
-              <box class="social-notification-icon-counter" collapsed="true"/>
-            </box>
-            <box class="social-notification-icon-container" collapsed="true"
-                     onclick="SocialToolbar.showAmbientPopup(this);">
-              <image class="social-notification-icon-image"/>
-              <box class="social-notification-icon-counter" collapsed="true"/>
-            </box>
-            <box class="social-notification-icon-container" collapsed="true"
-                     onclick="SocialToolbar.showAmbientPopup(this);">
-              <image class="social-notification-icon-image"/>
-              <box class="social-notification-icon-counter" collapsed="true"/>
-            </box>
-          </hbox>
-        </hbox>
-      </toolbaritem>
-
       <toolbaritem id="bookmarks-menu-button-container"
                    class="chromeclass-toolbar-additional"
                    removable="true"
                    title="&bookmarksMenuButton.label;">
         <toolbarbutton id="bookmarks-menu-button"
                        type="menu"
                        class="toolbarbutton-1"
                        label="&bookmarksMenuButton.label;"
--- a/browser/base/content/test/Makefile.in
+++ b/browser/base/content/test/Makefile.in
@@ -251,17 +251,16 @@ endif
                  authenticate.sjs \
                  browser_minimize.js \
                  browser_aboutSyncProgress.js \
                  browser_middleMouse_inherit.js \
                  redirect_bug623155.sjs \
                  browser_tabDrop.js \
                  browser_lastAccessedTab.js \
                  browser_bug734076.js \
-                 browser_social_toolbar.js \
                  $(NULL)
 
 ifneq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 _BROWSER_FILES += \
 		browser_bug462289.js \
 		$(NULL)
 else
 _BROWSER_FILES += \
deleted file mode 100644
--- a/browser/base/content/test/browser_social_toolbar.js
+++ /dev/null
@@ -1,140 +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/. */
-
-let SocialService = Cu.import("resource://gre/modules/SocialService.jsm", {}).SocialService;
-let gProvider;
-
-function test() {
-  waitForExplicitFinish();
-
-  Services.prefs.setBoolPref("social.enabled", true);
-  registerCleanupFunction(function () {
-    Services.prefs.clearUserPref("social.enabled");
-  });
-
-  let oldProvider;
-  function saveOldProviderAndStartTestWith(provider) {
-    oldProvider = Social.provider;
-    registerCleanupFunction(function () {
-      Social.provider = oldProvider;
-    });
-    Social.provider = gProvider = provider;
-    runTests(tests, undefined, undefined, function () {
-      SocialService.removeProvider(provider.origin, finish);
-    });
-  }
-
-  let manifest = { // normal provider
-    name: "provider 1",
-    origin: "https://example1.com",
-    workerURL: "https://example1.com/worker.js",
-    iconURL: "chrome://branding/content/icon48.png"
-  };
-  SocialService.addProvider(manifest, function(provider) {
-    // If the UI is already active, run the test immediately, otherwise wait
-    // for initialization.
-    if (Social.provider) {
-      saveOldProviderAndStartTestWith(provider);
-    } else {
-      Services.obs.addObserver(function obs() {
-        Services.obs.removeObserver(obs, "test-social-ui-ready");
-        saveOldProviderAndStartTestWith(provider);
-      }, "test-social-ui-ready", false);
-    }
-  });
-}
-
-var tests = {
-  testProfileSet: function(next) {
-    let profile = {
-      portrait: "chrome://branding/content/icon48.png",
-      userName: "trickster",
-      displayName: "Kuma Lisa",
-      profileURL: "http://en.wikipedia.org/wiki/Kuma_Lisa"
-    }
-    gProvider.updateUserProfile(profile);
-    // check dom values
-    let portrait = document.getElementById("social-statusarea-user-portrait").getAttribute("src");
-    is(portrait, profile.portrait, "portrait is set");
-    let userButton = document.getElementById("social-statusarea-username");
-    ok(!userButton.hidden, "username is visible");
-    is(userButton.label, profile.userName, "username is set");
-    next();
-  },
-  testAmbientNotifications: function(next) {
-    let ambience = {
-      name: "testIcon",
-      iconURL: "chrome://branding/content/icon48.png",
-      contentPanel: "about:blank",
-      counter: 42
-    };
-    gProvider.setAmbientNotification(ambience);
-
-    let statusIcons = document.getElementById("social-status-iconbox");
-    ok(!statusIcons.firstChild.collapsed, "status icon is visible");
-    ok(!statusIcons.firstChild.lastChild.collapsed, "status value is visible");
-    is(statusIcons.firstChild.lastChild.textContent, "42", "status value is correct");
-
-    ambience.counter = 0;
-    gProvider.setAmbientNotification(ambience);
-    ok(statusIcons.firstChild.lastChild.collapsed, "status value is not visible");
-    is(statusIcons.firstChild.lastChild.textContent, "", "status value is correct");
-    next();
-  },
-  testProfileUnset: function(next) {
-    gProvider.updateUserProfile({});
-    // check dom values
-    let portrait = document.getElementById("social-statusarea-user-portrait").getAttribute("src");
-    is(portrait, "chrome://browser/skin/social/social.png", "portrait is generic");
-    let userButton = document.getElementById("social-statusarea-username");
-    ok(userButton.hidden, "username is not visible");
-    let ambience = document.getElementById("social-status-iconbox").firstChild;
-    while (ambience) {
-      ok(ambience.collapsed, "ambient icon is collapsed");
-      ambience = ambience.nextSibling;
-    }
-    
-    next();
-  }
-}
-
-function runTests(tests, cbPreTest, cbPostTest, cbFinish) {
-  let testIter = Iterator(tests);
-
-  if (cbPreTest === undefined) {
-    cbPreTest = function(cb) {cb()};
-  }
-  if (cbPostTest === undefined) {
-    cbPostTest = function(cb) {cb()};
-  }
-
-  function runNextTest() {
-    let name, func;
-    try {
-      [name, func] = testIter.next();
-    } catch (err if err instanceof StopIteration) {
-      // out of items:
-      (cbFinish || finish)();
-      return;
-    }
-    // We run on a timeout as the frameworker also makes use of timeouts, so
-    // this helps keep the debug messages sane.
-    executeSoon(function() {
-      function cleanupAndRunNextTest() {
-        info("sub-test " + name + " complete");
-        cbPostTest(runNextTest);
-      }
-      cbPreTest(function() {
-        info("sub-test " + name + " starting");
-        try {
-          func.call(tests, cleanupAndRunNextTest);
-        } catch (ex) {
-          ok(false, "sub-test " + name + " failed: " + ex.toString() +"\n"+ex.stack);
-          cleanupAndRunNextTest();
-        }
-      })
-    });
-  }
-  runNextTest();
-}
--- a/browser/locales/en-US/chrome/browser/browser.dtd
+++ b/browser/locales/en-US/chrome/browser/browser.dtd
@@ -648,15 +648,12 @@ just addresses the organization to follo
 located in front of the breadcrumbs display in the inspector toolbar. The button
 doesn't display any label, but exposes a label to screen-readers with "aria-label".
 -->
 <!ENTITY markupButton.arialabel          "Markup">
 <!-- LOCALIZATION NOTE (markupButton.accesskey): The key bound to the Markup panel's
 toolbar button -->
 <!ENTITY markupButton.accesskey          "M">
 
-<!ENTITY socialToolbar.title        "Social Toolbar Button">
-<!ENTITY social.notLoggedIn.label   "Not logged in">
-
 <!ENTITY social.sharePopup.undo.label     "Unshare">
 <!ENTITY social.sharePopup.undo.accesskey "U">
 <!ENTITY social.sharePopup.ok.label       "OK">
 <!ENTITY social.sharePopup.ok.accesskey   "O">
--- a/browser/modules/Social.jsm
+++ b/browser/modules/Social.jsm
@@ -33,20 +33,16 @@ let Social = {
       Services.obs.notifyObservers(null, "test-social-ui-ready", "");
     }.bind(this));
   },
 
   get enabled() {
     return SocialService.enabled;
   },
 
-  get uiVisible() {
-    return this.provider && this.provider.enabled && this.provider.port;
-  },
-
   sendWorkerMessage: function Social_sendWorkerMessage(message) {
     // Responses aren't handled yet because there is no actions to perform
     // based on the response from the provider at this point.
     if (this.provider && this.provider.port)
       this.provider.port.postMessage(message);
   },
 
   // Sharing functionality
--- a/browser/themes/pinstripe/browser.css
+++ b/browser/themes/pinstripe/browser.css
@@ -3338,128 +3338,8 @@ stack[anonid=browserStack][responsivemod
 
 #developer-toolbar-webconsole[error-count]:before {
   color: #FDF3DE;
   min-width: 16px;
   text-shadow: none;
   background-image: -moz-linear-gradient(top, #B4211B, #8A1915);
   border-radius: 1px;
 }
-
-/* === social toolbar button === */
-
-/* button icon for the service */
-#social-provider-image {
-  -moz-appearance: none;
-  margin: 0;
-  padding: 2px;
-  min-width: 0;
-  max-height: 20px;
-  list-style-image: url("chrome://browser/skin/social/social.png");
-}
-
-/* hbox that surrounds an image and its counter */
-.social-notification-icon-container {
-  cursor: pointer;
-  padding: 0px;
-  margin: 0px;
-  position: relative;
-}
-
-/* notification counter box */
-.social-notification-icon-counter {
-  background-color: rgb(240,61,37);
-  border: 1px solid rgb(216,55,34);
-  box-shadow: 0px 1px 0px rgba(0,39,121,0.77);
-  padding-right: 1px;
-  padding-left: 1px;
-  color: white;
-  font-size: 9px;
-  font-weight: bold;
-  position: absolute;
-  right: -3px;
-  top: -4px;
-  z-index: 1;
-  text-align: center;
-}
-
-/* notification image */
-.social-notification-icon-image {
-  padding: 2px;
-  margin: 0px;
-  min-width: 20px;
-  max-width: 32px;
-  max-height: 20px;
-  list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png");
-}
-
-/* === end of social toolbar button === */
-
-/* === social toolbar provider menu  === */
-
-#social-statusarea-user {
-  background-color: white;
-  color: black;
-  cursor: default;
-  font-family: "lucida grande",tahoma,verdana,arial,sans-serif;
-  font-size: 12px;
-}
-
-#social-statusarea-user-portrait {
-  width: 32px;
-  height: 32px;
-  margin: 10px;
-  list-style-image: url("chrome://browser/skin/social/social.png");
-}
-
-#social-statusarea-username {
-  -moz-appearance: none;
-  color: -moz-nativehyperlinktext;
-  cursor: pointer;
-  min-width: 0;
-  margin: 0 6px;
-}
-
-#social-statusarea-username:hover {
-  text-decoration: underline;
-}
-
-/* === end of social toolbar provider menu === */
-
-/* === start of social toolbar panels === */
-
-#social-notification-panel {
-  min-height: 100px;
-  min-width: 240px;
-  max-height: 600px;
-  max-width: 400px;
-}
-
-#social-notification-panel .panel-arrowcontent {
-  margin: -4px 0 0 0;
-  padding: 0;
-  border-radius: 0px;
-}
-
-#social-notification-panel .panel-arrow[side="top"] {
-  list-style-image: url("chrome://browser/skin/social/panelarrow-up.png");
-  margin-top: -4px;
-  margin-bottom: 3px;
-  height: 21px;
-}
-
-#social-notification-panel .panel-arrow[side="bottom"] {
-  list-style-image: url("chrome://browser/skin/social/panelarrow-down.png");
-  margin-top: -5px;
-}
-
-#social-notification-panel .panel-arrow[side="left"] {
-  list-style-image: url("chrome://browser/skin/social/panelarrow-horiz.png");
-  margin-right: -1px;
-  -moz-transform: scaleX(-1);
-}
-
-#social-notification-panel .panel-arrow[side="right"] {
-  list-style-image: url("chrome://browser/skin/social/panelarrow-horiz.png");
-  margin-left: -1px;
-}
-
-/* === end of social toolbar panels === */
--- a/browser/themes/pinstripe/jar.mn
+++ b/browser/themes/pinstripe/jar.mn
@@ -108,20 +108,16 @@ browser.jar:
 #ifdef MOZ_SERVICES_SYNC
   skin/classic/browser/preferences/Options-sync.png         (preferences/Options-sync.png)
 #endif
   skin/classic/browser/preferences/saveFile.png             (preferences/saveFile.png)
 * skin/classic/browser/preferences/preferences.css          (preferences/preferences.css)
 * skin/classic/browser/preferences/in-content/preferences.css (preferences/in-content/preferences.css)
   skin/classic/browser/preferences/applications.css         (preferences/applications.css)
   skin/classic/browser/preferences/aboutPermissions.css     (preferences/aboutPermissions.css)
-  skin/classic/browser/social/social.png                    (social/social.png)
-  skin/classic/browser/social/panelarrow-down.png           (social/panelarrow-down.png)
-  skin/classic/browser/social/panelarrow-horiz.png          (social/panelarrow-horiz.png)
-  skin/classic/browser/social/panelarrow-up.png             (social/panelarrow-up.png)
   skin/classic/browser/tabbrowser/alltabs-box-bkgnd-icon.png             (tabbrowser/alltabs-box-bkgnd-icon.png)
   skin/classic/browser/tabbrowser/newtab.png                             (tabbrowser/newtab.png)
   skin/classic/browser/tabbrowser/connecting.png                         (tabbrowser/connecting.png)
   skin/classic/browser/tabbrowser/loading.png                            (tabbrowser/loading.png)
   skin/classic/browser/tabbrowser/tab-arrow-left.png                     (tabbrowser/tab-arrow-left.png)
   skin/classic/browser/tabbrowser/tab-arrow-right.png                    (tabbrowser/tab-arrow-right.png)
   skin/classic/browser/tabbrowser/tabbar-bottom-bg-active.png            (tabbrowser/tabbar-bottom-bg-active.png)
   skin/classic/browser/tabbrowser/tabbar-bottom-bg-inactive.png          (tabbrowser/tabbar-bottom-bg-inactive.png)
deleted file mode 100644
index 0224ebdf153bec5d7125f88bb9494d6d36dfbeae..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index ed59312c14252fe9c7f37e902285d652cbb09359..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 451b83b3b9bfde3ffba768feba91566bea92210d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 14916fb074c79b18c732f41661110027983c5d03..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/browser/themes/winstripe/browser.css
+++ b/browser/themes/winstripe/browser.css
@@ -3265,139 +3265,8 @@ stack[anonid=browserStack][responsivemod
 
 #developer-toolbar-webconsole[error-count]:before {
   color: #FDF3DE;
   min-width: 16px;
   text-shadow: none;
   background-image: -moz-linear-gradient(top, #B4211B, #8A1915);
   border-radius: 1px;
 }
-
-
-/* === social toolbar button === */
-
-.social-statusarea-container {
-  -moz-appearance: toolbarbutton;
-  margin: 0 2px;
-  padding: 3px;
-}
-
-.social-statusarea-container {
-  -moz-appearance: none;
-  margin: 2px; /* make sure we have the correct platform spacing*/
-  padding: 1px;
-}
-
-/* aero look for hover */
-#social-toolbar-button[open="true"] > .social-statusarea-container,
-.social-statusarea-container:hover {
-  background-image: -moz-linear-gradient(hsla(0,0%,100%,.6), hsla(0,0%,100%,.1));
-  border-color: hsla(210,54%,20%,.3) hsla(210,54%,20%,.35) hsla(210,54%,20%,.4);
-  box-shadow: 0 1px hsla(0,0%,100%,.85) inset,
-              0 1px hsla(210,54%,20%,.1),
-              0 0 2px hsla(210,54%,20%,.4);
-}
-
-/* favicon for the service */
-#social-provider-image {
-  width: 20px;
-  height: 20px;
-  max-height: 20px;
-  max-width: 20px;
-  padding: 2px;
-  list-style-image: url("chrome://browser/skin/social/social.png");
-}
-
-/* hbox that hold notification icons */
-#social-status-iconbox {
-  margin: 0px;
-  padding: 0px;
-}
-
-/* hbox that surrounds an image and its counter */
-.social-notification-icon-container {
-  cursor: pointer;
-  padding: 0px;
-  margin: 0px;
-  position: relative;
-}
-
-/* notification counter box */
-.social-notification-icon-counter {
-  background-color: rgb(240,61,37);
-  border: 1px solid rgb(216,55,34);
-  box-shadow: 0px 1px 0px rgba(0,39,121,0.77);
-  padding-right: 1px;
-  padding-left: 1px;
-  color: white;
-  font-size: 9px;
-  font-weight: bold;
-  position: absolute;
-  right: -3px;
-  top: -4px;
-  z-index: 1;
-  text-align: center;
-}
-
-/* notification image */
-.social-notification-icon-image {
-  padding: 2px;
-  margin: 0px;
-  min-width: 20px;
-  max-width: 32px;
-  max-height: 20px;
-  list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png");
-}
-
-/* === end of social toolbar button === */
-
-/* === social toolbar provider menu  === */
-
-/* popups that hang off our toolbaritem */
-#social-statusarea-popup {
-  margin-top:0px;
-  margin-left: -12px;
-  margin-right: -12px;
-}
-
-#social-statusarea-user {
-  border-bottom:1px solid rgb(221,221,221);
-  background-color:-moz-Dialog;
-  color:black;
-  cursor:default;
-  position:relative;
-  font-family: "lucida grande",tahoma,verdana,arial,sans-serif;
-  font-size:12px;
-}
-
-#social-statusarea-user-portrait {
-  width:32px;
-  height:32px;
-  border-radius:2px;
-  margin:10px;
-  list-style-image: url("chrome://browser/skin/social/social.png");
-}
-
-#social-statusarea-username {
-  -moz-appearance: none;
-  background: transparent;
-  border: none;
-  color: -moz-nativehyperlinktext;
-  cursor: pointer;
-  min-width: 0;
-  margin: 0 6px;
-}
-#social-statusarea-username:hover {
-  text-decoration: underline;
-}
-
-/* === end of social toolbar provider menu === */
-
-/* === end of social toolbar panels === */
-
-#social-notification-panel {
-  min-height: 100px;
-  min-width: 100px;
-  max-height: 600px;
-  max-width: 400px;
-}
-
-/* === end of social toolbar panels === */
--- a/browser/themes/winstripe/jar.mn
+++ b/browser/themes/winstripe/jar.mn
@@ -101,17 +101,16 @@ browser.jar:
 #ifdef MOZ_SERVICES_SYNC
         skin/classic/browser/preferences/Options-sync.png            (preferences/Options-sync.png)
 #endif
         skin/classic/browser/preferences/saveFile.png                (preferences/saveFile.png)
 *       skin/classic/browser/preferences/preferences.css             (preferences/preferences.css)
         skin/classic/browser/preferences/in-content/preferences.css  (preferences/in-content/preferences.css)
         skin/classic/browser/preferences/applications.css            (preferences/applications.css)
         skin/classic/browser/preferences/aboutPermissions.css        (preferences/aboutPermissions.css)
-        skin/classic/browser/social/social.png                       (social/social.png)
         skin/classic/browser/tabbrowser/alltabs.png                  (tabbrowser/alltabs.png)
         skin/classic/browser/tabbrowser/newtab.png                   (tabbrowser/newtab.png)
         skin/classic/browser/tabbrowser/newtab-inverted.png          (tabbrowser/newtab-inverted.png)
         skin/classic/browser/tabbrowser/connecting.png               (tabbrowser/connecting.png)
         skin/classic/browser/tabbrowser/loading.png                  (tabbrowser/loading.png)
         skin/classic/browser/tabbrowser/tab.png                      (tabbrowser/tab.png)
         skin/classic/browser/tabbrowser/tab-arrow-left.png           (tabbrowser/tab-arrow-left.png)
         skin/classic/browser/tabbrowser/tab-arrow-left-inverted.png  (tabbrowser/tab-arrow-left-inverted.png)
@@ -303,17 +302,16 @@ browser.jar:
 #ifdef MOZ_SERVICES_SYNC
         skin/classic/aero/browser/preferences/Options-sync.png       (preferences/Options-sync.png)
 #endif
         skin/classic/aero/browser/preferences/saveFile.png           (preferences/saveFile-aero.png)
 *       skin/classic/aero/browser/preferences/preferences.css        (preferences/preferences.css)
         skin/classic/aero/browser/preferences/in-content/preferences.css (preferences/in-content/preferences.css)
         skin/classic/aero/browser/preferences/applications.css       (preferences/applications.css)
         skin/classic/aero/browser/preferences/aboutPermissions.css   (preferences/aboutPermissions.css)
-        skin/classic/aero/browser/social/social.png                  (social/social.png)
         skin/classic/aero/browser/tabbrowser/alltabs.png             (tabbrowser/alltabs.png)
         skin/classic/aero/browser/tabbrowser/newtab.png              (tabbrowser/newtab.png)
         skin/classic/aero/browser/tabbrowser/newtab-inverted.png     (tabbrowser/newtab-inverted.png)
         skin/classic/aero/browser/tabbrowser/connecting.png          (tabbrowser/connecting.png)
         skin/classic/aero/browser/tabbrowser/loading.png             (tabbrowser/loading.png)
         skin/classic/aero/browser/tabbrowser/tab.png                 (tabbrowser/tab.png)
         skin/classic/aero/browser/tabbrowser/tab-arrow-left.png      (tabbrowser/tab-arrow-left.png)
         skin/classic/aero/browser/tabbrowser/tab-arrow-left-inverted.png (tabbrowser/tab-arrow-left-inverted.png)
deleted file mode 100644
index 14916fb074c79b18c732f41661110027983c5d03..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/toolkit/components/social/SocialProvider.jsm
+++ b/toolkit/components/social/SocialProvider.jsm
@@ -2,20 +2,18 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* 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 {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-
-XPCOMUtils.defineLazyModuleGetter(this, "getFrameWorkerHandle", "resource://gre/modules/FrameWorker.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "WorkerAPI", "resource://gre/modules/WorkerAPI.jsm");
+Cu.import("resource://gre/modules/FrameWorker.jsm");
+Cu.import("resource://gre/modules/WorkerAPI.jsm");
 
 const EXPORTED_SYMBOLS = ["SocialProvider"];
 
 /**
  * The SocialProvider object represents a social provider, and allows
  * access to its FrameWorker (if it has one).
  *
  * @constructor
@@ -87,32 +85,21 @@ SocialProvider.prototype = {
     this.profile = profile;
 
     if (profile.iconURL)
       this.iconURL = profile.iconURL;
 
     if (!profile.displayName)
       profile.displayName = profile.userName;
 
-    // if no userName, consider this a logged out state, emtpy the
-    // users ambient notifications.  notify both profile and ambient
-    // changes to clear everything
-    if (!profile.userName) {
-      this.profile = {};
-      this.ambientNotificationIcons = {};
-      Services.obs.notifyObservers(null, "social:ambient-notification-changed", this.origin);
-    }
-
     Services.obs.notifyObservers(null, "social:profile-changed", this.origin);
   },
 
   // Called by the workerAPI to add/update a notification icon.
   setAmbientNotification: function(notification) {
-    if (!this.profile.userName)
-      throw new Error("unable to set notifications while logged out");
     this.ambientNotificationIcons[notification.name] = notification;
 
     Services.obs.notifyObservers(null, "social:ambient-notification-changed", this.origin);
   },
 
   // Internal helper methods
   _activate: function _activate() {
     // Initialize the workerAPI and its port first, so that its initialization
--- a/toolkit/components/social/SocialService.jsm
+++ b/toolkit/components/social/SocialService.jsm
@@ -3,18 +3,17 @@
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const EXPORTED_SYMBOLS = ["SocialService"];
 
 const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
 
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-
-XPCOMUtils.defineLazyModuleGetter(this, "SocialProvider", "resource://gre/modules/SocialProvider.jsm");
+Cu.import("resource://gre/modules/SocialProvider.jsm");
 
 // Internal helper methods and state
 let SocialServiceInternal = {
   enabled: Services.prefs.getBoolPref("social.enabled"),
   get providerArray() {
     return [p for ([, p] of Iterator(this.providers))];
   }
 };
--- a/toolkit/components/social/test/browser/browser_workerAPI.js
+++ b/toolkit/components/social/test/browser/browser_workerAPI.js
@@ -72,26 +72,10 @@ let tests = {
       is(aData, provider.origin, "update is from our provider");
       let notif = provider.ambientNotificationIcons[expect.name];
       is(notif.name, expect.name, "ambientNotification reflected");
 
       next();
     }
     Services.obs.addObserver(ob, "social:ambient-notification-changed", false);
     provider.workerAPI._port.postMessage({topic: "test-ambient", data: expect});
-  },
-
-  testProfileCleared: function(next) {
-    let sent = {
-      userName: ""
-    };
-    function ob(aSubject, aTopic, aData) {
-      Services.obs.removeObserver(ob, "social:profile-changed", false);
-      is(aData, provider.origin, "update of profile from our provider");
-      is(Object.keys(provider.profile).length, 0, "profile was cleared by empty username");
-      is(Object.keys(provider.ambientNotificationIcons).length, 0, "icons were cleared by empty username");
-
-      next();
-    }
-    Services.obs.addObserver(ob, "social:profile-changed", false);
-    provider.workerAPI._port.postMessage({topic: "test-profile", data: sent});
   }
 };