firefox-kde.patch
changeset 127 4c86470ed796
parent 64 7bb1edb78dd5
child 133 a77c32dc7ffd
--- a/firefox-kde.patch	Wed Aug 11 12:17:17 2010 +0200
+++ b/firefox-kde.patch	Thu Aug 12 08:55:47 2010 +0200
@@ -17,13 +17,13 @@
  # hardcode en-US for the moment
  AB_CD = en-US
  
- DEFINES += \
-   -DAB_CD=$(AB_CD) \
+ DEFINES += -DAB_CD=$(AB_CD)
+ 
 diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
 new file mode 100644
 --- /dev/null
 +++ b/browser/base/content/browser-kde.xul
-@@ -0,0 +1,643 @@
+@@ -0,0 +1,1094 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -59,6 +59,8 @@
 +#   Dão Gottwald <dao@mozilla.com>
 +#   Ehsan Akhgari <ehsan.akhgari@gmail.com>
 +#   Robert Strong <robert.bugzilla@gmail.com>
++#   Rob Campbell <rcampbell@mozilla.com>
++#   Patrick Walton <pcwalton@mozilla.com>
 +#
 +# Alternatively, the contents of this file may be used under the terms of
 +# either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -111,19 +113,18 @@
 +        windowtype="navigator:browser"
 +        screenX="4" screenY="4"
 +        browsingmode="normal"
-+        toggletoolbar="true"
 +        persist="screenX screenY width height sizemode"> 
 +
 +# All JS files which are not content (only) dependent that browser.xul
 +# wishes to include *must* go into the global-scripts.inc file
 +# so that they can be shared by macBrowserOverlay.xul.
 +#include global-scripts.inc
-+<script type="application/x-javascript" src="chrome://browser/content/nsContextMenu.js"/>
++<script type="application/javascript" src="chrome://browser/content/nsContextMenu.js"/>
 +
 +#ifdef MOZ_SAFE_BROWSING
-+<script type="application/x-javascript" src="chrome://browser/content/safebrowsing/sb-loader.js"/>
++<script type="application/javascript" src="chrome://browser/content/safebrowsing/sb-loader.js"/>
 +#endif
-+<script type="application/x-javascript" src="chrome://global/content/contentAreaUtils.js"/>
++<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
 +
 +<script type="application/javascript" src="chrome://browser/content/places/editBookmarkOverlay.js"/>
 +
@@ -132,6 +133,45 @@
 +#include browser-sets.inc
 +
 +  <popupset id="mainPopupSet">
++    <menupopup id="tabContextMenu"
++               onpopupshowing="if (event.target == this) TabContextMenu.updateContextMenu(this);"
++               onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;">
++      <menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
++                oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
++      <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;"
++                tbattr="tabbrowser-multiple"
++                oncommand="gBrowser.reloadAllTabs();"/>
++      <menuseparator/>
++      <menuitem id="context_openTabInWindow" label="&openTabInNewWindow.label;"
++                accesskey="&openTabInNewWindow.accesskey;"
++                tbattr="tabbrowser-multiple"
++                oncommand="gBrowser.replaceTabWithWindow(TabContextMenu.contextTab);"/>
++      <menuitem id="context_pinTab" label="&pinTab.label;"
++                accesskey="&pinTab.accesskey;"
++                oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/>
++      <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true"
++                accesskey="&unpinTab.accesskey;"
++                oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
++      <menuseparator/>
++      <menuitem id="context_bookmarkTab"
++                label="&bookmarkThisTab.label;"
++                accesskey="&bookmarkThisTab.accesskey;"
++                oncommand="BookmarkThisTab(TabContextMenu.contextTab);"/>
++      <menuitem id="context_bookmarkAllTabs"
++                label="&bookmarkAllTabs.label;"
++                accesskey="&bookmarkAllTabs.accesskey;"
++                command="Browser:BookmarkAllTabs"/>
++      <menuseparator/>
++      <menuitem id="context_closeOtherTabs" label="&closeOtherTabs.label;" accesskey="&closeOtherTabs.accesskey;"
++                oncommand="gBrowser.removeAllTabsBut(TabContextMenu.contextTab);"/>
++      <menuitem id="context_undoCloseTab"
++                label="&undoCloseTab.label;"
++                accesskey="&undoCloseTab.accesskey;"
++                observes="History:UndoCloseTab"/>
++      <menuitem id="context_closeTab" label="&closeTab.label;" accesskey="&closeTab.accesskey;"
++                oncommand="gBrowser.removeTab(TabContextMenu.contextTab, { animate: true });"/>
++    </menupopup>
++
 +    <menupopup id="backForwardMenu"
 +               onpopupshowing="return FillHistoryMenu(event.target);"
 +               oncommand="gotoHistoryIndex(event);"
@@ -200,31 +240,115 @@
 +                oncommand="StarUI.panel.hidePopup();"/>
 +#else
 +        <button id="editBookmarkPanelDoneButton"
++                class="editBookmarkPanelBottomButton"
 +                label="&editBookmark.done.label;"
 +                default="true"
 +                oncommand="StarUI.panel.hidePopup();"/>
 +        <button id="editBookmarkPanelDeleteButton"
++                class="editBookmarkPanelBottomButton"
 +                label="&editBookmark.cancel.label;"
 +                oncommand="StarUI.cancelButtonOnCommand();"/>
 +#endif
 +      </hbox>
 +    </panel>
 +
-+    <popup id="toolbar-context-menu"
-+           onpopupshowing="onViewToolbarsPopupShowing(event);">
++    <panel id="highlighter-panel"
++           hidden="true"
++           ignorekeys="true"
++           noautofocus="true"
++           noautohide="true"
++           onclick="InspectorUI.stopInspecting();"
++           onmousemove="InspectorUI.highlighter.handleMouseMove(event);"
++           onMozMousePixelScroll="InspectorUI.highlighter.handlePixelScroll(event);"/>
++
++    <panel id="inspector-panel"
++           orient="vertical"
++           hidden="true"
++           ignorekeys="true"
++           noautofocus="true"
++           noautohide="true"
++           level="top"
++           titlebar="normal"
++           label="&inspectPanelTitle.label;">
++      <toolbar id="inspector-toolbar"
++               nowindowdrag="true">
++        <toolbarbutton id="inspector-inspect-toolbutton"
++                       label="&inspectButton.label;"
++                       accesskey="&inspectButton.accesskey;"
++                       class="toolbarbutton-text"
++                       command="Inspector:Inspect"/>
++        <toolbarbutton id="inspector-previous-toolbutton"
++                       label="&inspectPreviousButton.label;"
++                       accesskey="&inspectPreviousButton.accesskey;"
++                       class="toolbarbutton-text"
++                       command="Inspector:Previous"/>
++        <toolbarbutton id="inspector-next-toolbutton"
++                       label="&inspectNextButton.label;"
++                       accesskey="&inspectNextButton.accesskey;"
++                       class="toolbarbutton-text"
++                       command="Inspector:Next"/>
++        <toolbarbutton id="inspector-style-toolbutton"
++                       label="&inspectStyleButton.label;"
++                       accesskey="&inspectStyleButton.accesskey;"
++                       class="toolbarbutton-text"
++                       command="Inspector:Style"/>
++      </toolbar>
++      <tree id="inspector-tree" class="plain"
++            seltype="single"
++            treelines="true"
++            onselect="InspectorUI.onTreeSelected()"
++            flex="1">
++        <treecols>
++          <treecol id="colNodeName" label="nodeName" primary="true"
++                   persist="width,hidden,ordinal" flex="1"/>
++          <splitter class="tree-splitter"/>
++          <treecol id="colNodeValue" label="nodeValue"
++                   persist="width,hidden,ordinal" flex="1"/>
++        </treecols>
++        <treechildren id="inspector-tree-body"/>
++      </tree>
++      <hbox align="end">
++        <spacer flex="1" />
++        <resizer dir="bottomend" />
++      </hbox>
++    </panel>
++
++    <panel id="inspector-style-panel"
++           hidden="true"
++           orient="vertical"
++           ignorekeys="true"
++           noautofocus="true"
++           noautohide="true"
++           level="top"
++           titlebar="normal"
++           label="&inspectStylePanelTitle.label;">
++        <listbox id="inspector-style-listbox" flex="1"/>
++        <hbox align="end">
++          <spacer flex="1" />
++          <resizer dir="bottomend" />
++        </hbox>
++    </panel>
++
++    <menupopup id="toolbar-context-menu"
++               onpopupshowing="onViewToolbarsPopupShowing(event);">
++      <menuseparator/>
++      <menuitem command="cmd_ToggleTabsOnTop"
++                type="checkbox"
++                label="&viewTabsOnTop.label;"
++                accesskey="&viewTabsOnTop.accesskey;"/>
 +      <menuseparator/>
 +      <menuitem command="cmd_CustomizeToolbars"
 +                label="&viewCustomizeToolbar.label;"
 +                accesskey="&viewCustomizeToolbar.accesskey;"/>
-+    </popup>
++    </menupopup>
 +
-+    <popup id="blockedPopupOptions" 
-+           onpopupshowing="gPopupBlockerObserver.fillPopupList(event);">
++    <menupopup id="blockedPopupOptions" 
++               onpopupshowing="gPopupBlockerObserver.fillPopupList(event);">
 +      <menuitem observes="blockedPopupAllowSite"/>
 +      <menuitem observes="blockedPopupEditSettings"/>
 +      <menuitem observes="blockedPopupDontShowMessage"/>
 +      <menuseparator observes="blockedPopupsSeparator"/>
-+    </popup>
++    </menupopup>
 +
 +    <menupopup id="autohide-context"
 +           onpopupshowing="FullScreen.getAutohide(this.firstChild);">
@@ -237,13 +361,20 @@
 +                oncommand="BrowserFullScreen();"/>
 +    </menupopup>
 +
-+    <popup id="contentAreaContextMenu"
-+           onpopupshowing="if (event.target != this) return true; updateEditUIVisibility(); gContextMenu = new nsContextMenu(this, window.getBrowser()); return gContextMenu.shouldDisplay;"
-+           onpopuphiding="if (event.target == this) { gContextMenu = null; updateEditUIVisibility(); }">
++    <menupopup id="contentAreaContextMenu"
++               onpopupshowing="if (event.target != this)
++                                 return true;
++                               gContextMenu = new nsContextMenu(this, gBrowser);
++                               if (gContextMenu.shouldDisplay)
++                                 updateEditUIVisibility();
++                               return gContextMenu.shouldDisplay;"
++               onpopuphiding="if (event.target == this) { gContextMenu = null; updateEditUIVisibility(); }">
 +#include browser-context.inc
-+    </popup>
++    </menupopup>
 +
-+    <popup id="placesContext"/>
++    <menupopup id="placesContext"/>
++
++    <panel id="notification-popup" position="after_start" noautofocus="true" hidden="true"/>
 +
 +    <!-- Popup for site identity information -->
 +    <panel id="identity-popup" position="after_start" hidden="true" noautofocus="true"
@@ -306,9 +437,6 @@
 +    </panel>
 +
 +    <panel id="allTabs-panel" hidden="true" norestorefocus="true" ignorekeys="true"
-+# XXX: KUI style disabled, because the transparent background slows down
-+#      interacting with the panel, esp. the search field.
-+#           class="KUI-panel"
 +           onmouseover="allTabs._updateTabCloseButton(event);">
 +      <hbox id="allTabs-meta" align="center">
 +        <spacer flex="1"/>
@@ -322,7 +450,7 @@
 +                       tooltiptext="&closeCmd.label;"/>
 +      </hbox>
 +      <stack id="allTabs-stack">
-+        <box id="allTabs-container"/>
++        <vbox id="allTabs-container"><hbox/></vbox>
 +        <toolbarbutton id="allTabs-tab-close-button"
 +                       class="tab-close-button"
 +                       oncommand="allTabs.closeTab(event);"
@@ -330,21 +458,182 @@
 +                       style="visibility:hidden"/>
 +      </stack>
 +    </panel>
++
++    <!-- Bookmarks and history tooltip -->
++    <tooltip id="bhTooltip"/>
++
++    <panel id="customizeToolbarSheetPopup"
++           noautohide="true">
++      <iframe id="customizeToolbarSheetIFrame"
++              style="&dialog.style;"
++              hidden="true"/>
++    </panel>
++
++    <tooltip id="tabbrowser-tab-tooltip" onpopupshowing="gBrowser.createTooltip(event);"/>
 +  </popupset>
 +
-+  <!-- Bookmarks and history tooltip -->
-+  <tooltip id="bhTooltip"/>
++#ifdef MENUBAR_CAN_AUTOHIDE
++  <hbox id="appmenu-button-container">
++    <button id="appmenu-button"
++            type="menu"
++            label="&brandShortName;"
++            style="-moz-user-focus: ignore;">
++      <menupopup id="appmenu-popup">
++        <hbox flex="1" class="split-menuitem">
++          <menuitem id="appmenu_newTab"
++                    class="split-menuitem-item"
++                    flex="1"
++                    label="&tabCmd.label;"
++                    command="cmd_newNavigatorTab"/>
++          <menu class="split-menuitem-menu">
++            <menupopup>
++              <menuitem id="appmenu_newTab_sub"
++                        label="&tabCmd.label;"
++                        command="cmd_newNavigatorTab"/>
++              <menuitem id="appmenu_newNavigator"
++                        label="&newNavigatorCmd.label;"
++                        command="cmd_newNavigator"/>
++            </menupopup>
++          </menu>
++        </hbox>
++        <menuseparator/>
++        <menuitem id="appmenu_savePage"
++                  label="&savePageCmd.label;"
++                  command="Browser:SavePage"/>
++        <menuitem id="appmenu_sendLink"
++                  label="&sendPageCmd.label;"
++                  command="Browser:SendLink"/>
++        <hbox flex="1" class="split-menuitem">
++          <menuitem id="appmenu_print"
++                    class="split-menuitem-item"
++                    flex="1"
++                    label="&appMenuPrintCmd.label;"
++                    command="cmd_print"/>
++          <menu class="split-menuitem-menu">
++            <menupopup>
++              <menuitem id="menu_printSetup"
++                        label="&printSetupCmd.label;"
++                        command="cmd_pageSetup"/>
++              <menuitem id="menu_printPreview"
++                        label="&printPreviewCmd.label;"
++                        command="cmd_printPreview"/>
++            </menupopup>
++          </menu>
++        </hbox>
++        <menuitem id="appmenu_find"
++                  label="&findOnCmd.label;"
++                  command="cmd_find"/>
++        <menuseparator/>
++        <menu id="appmenu_history"
++              label="&historyMenu.label;">
++          <menupopup id="appmenu_history_popup"
++                     placespopup="true"
++                     oncommand="this.parentNode._placesView._onCommand(event);"
++                     onclick="checkForMiddleClick(this, event);"
++                     onpopupshowing="if (!this.parentNode._placesView)
++                                       new HistoryMenu(event);"
++                     tooltip="bhTooltip"
++                     popupsinherittooltip="true">
++            <menuitem id="appmenu_sanitizeHistory"
++                      label="&clearRecentHistory.label;"
++                      key="key_sanitize"
++                      command="Tools:Sanitize"/>
++            <menuseparator/>
++            <menuitem id="appmenu_showAllHistory"
++                      label="&showAllHistoryCmd2.label;"
++                      key="showAllHistoryKb"
++                      command="Browser:ShowAllHistory"/>
++            <menuseparator class="hide-if-empty-places-result"/>
++          </menupopup>
++        </menu>
++        <menuseparator/>
++        <menu id="appmenu_developer"
++              label="&developerMenu.label;">
++          <menupopup id="appmenu_developer_popup">
++            <menuitem id="appmenu_pageSource"
++                      label="&pageSourceCmd.label;"
++                      command="View:PageSource"/>
++            <menuseparator/>
++            <menuitem id="appmenu_pageInspect"
++                      label="&inspectMenu.label;"
++                      command="Tools:Inspect"/>
++            <menuitem id="appmenu_webConsole"
++                      label="&webConsoleCmd.label;"
++                      oncommand="HUDConsoleUI.toggleHUD();"/>
++          </menupopup>
++        </menu>
++        <menuseparator/>
++        <menu id="appmenu_customize"
++              label="&appMenuCustomize.label;">
++          <menupopup id="appmenu_customizeMenu"
++                     onpopupshowing="onViewToolbarsPopupShowing(event);">
++            <menuseparator/>
++            <menuitem command="cmd_ToggleTabsOnTop"
++                      type="checkbox"
++                      label="&viewTabsOnTop.label;"/>
++            <menuitem id="appmenu_toolbarLayout"
++                      label="&appMenuToolbarLayout.label;"
++                      command="cmd_CustomizeToolbars"/>
++            <menu id="appmenu_sidebars"
++                  label="&appMenuSidebars.label;">
++              <menupopup id="appmenu_sidebarMenu">
++                <menuitem id="appmenu_bookmarksSidebar"
++                          key="viewBookmarksSidebarKb"
++                          observes="viewBookmarksSidebar"/>
++                <menuitem id="appmenu_historySidebar"
++                          key="key_gotoHistory"
++                          observes="viewHistorySidebar"
++                          label="&historyButton.label;"/>
++              </menupopup>
++            </menu>
++            <menuseparator/>
++            <menuitem id="appmenu_openAddons"
++                      label="&addons.label;"
++                      command="Tools:Addons"/>
++          </menupopup>
++        </menu>
++        <menuitem id="appmenu_preferences"
++#ifdef XP_UNIX
++                  label="&preferencesCmdUnix.label;"
++#else
++                  label="&preferencesCmd.label;"
++#endif
++                  oncommand="openPreferences();"/>
++        <menuitem id="appmenu_openHelp"
++                  label="&appMenuHelp.label;"
++                  oncommand="openHelpLink('firefox-help')"
++                  onclick="checkForMiddleClick(this, event);"/>
++        <menuseparator/>
++        <menuitem id="appmenu_quit"
++#ifdef XP_WIN
++                  label="&quitApplicationCmdWin.label;"
++#else
++                  label="&quitApplicationCmd.label;"
++#endif
++                  command="cmd_quitApplication"/>
++      </menupopup>
++    </button>
++  </hbox>
++#endif
 +
-+  <toolbox id="navigator-toolbox" class="toolbox-top" mode="icons"
++  <toolbox id="navigator-toolbox"
++           defaultmode="icons" mode="icons"
 +#ifdef WINCE
 +           defaulticonsize="small" iconsize="small"
 +#endif
-+           defaultmode="icons">
++#ifdef XP_WIN
++           tabsontop="true"
++#endif
++#ifdef XP_MACOSX
++           tabsontop="true"
++#endif
++           persist="tabsontop">
 +    <!-- Menu -->
 +    <toolbar type="menubar" id="toolbar-menubar" class="chromeclass-menubar" customizable="true"
 +             defaultset="menubar-items"
 +             mode="icons" iconsize="small" defaulticonsize="small"
-+#ifdef XP_WIN
++             lockiconsize="true"
++#ifdef MENUBAR_CAN_AUTOHIDE
 +             toolbarname="&menubarCmd.label;"
 +             accesskey="&menubarCmd.accesskey;"
 +#endif
@@ -356,10 +645,21 @@
 +      </toolbaritem>
 +    </toolbar>
 +
-+    <toolbarpalette id="BrowserToolbarPalette">
++    <toolbar id="nav-bar" class="toolbar-primary chromeclass-toolbar"
++             toolbarname="&navbarCmd.label;" accesskey="&navbarCmd.accesskey;"
++             fullscreentoolbar="true" mode="icons" customizable="true"
++#ifdef WINCE
++             iconsize="small" defaulticonsize="small"
++             defaultset="unified-back-forward-button,reload-button,stop-button,home-button,urlbar-container,search-container,bookmarks-menu-button-container,navigator-throbber,fullscreenflex,window-controls"
++#else
++             iconsize="large"
++             defaultset="unified-back-forward-button,reload-button,stop-button,home-button,urlbar-container,search-container,bookmarks-menu-button-container,fullscreenflex,window-controls"
++#endif
++             context="toolbar-context-menu">
 +
 +      <toolbaritem id="unified-back-forward-button" class="chromeclass-toolbar-additional"
-+                   context="backForwardMenu">
++                   context="backForwardMenu" removable="true"
++                   title="&backForwardItem.title;">
 +        <toolbarbutton id="back-button" class="toolbarbutton-1"
 +                       label="&backCmd.label;"
 +                       command="Browser:BackOrBackDuplicate"
@@ -388,18 +688,18 @@
 +      </toolbaritem>
 +
 +      <toolbarbutton id="reload-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                     label="&reloadCmd.label;"
++                     label="&reloadCmd.label;" removable="true"
 +                     command="Browser:ReloadOrDuplicate"
 +                     onclick="checkForMiddleClick(this, event);"
 +                     tooltiptext="&reloadButton.tooltip;"/>
 +
 +      <toolbarbutton id="stop-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                     label="&stopCmd.label;"
++                     label="&stopCmd.label;" removable="true"
 +                     command="Browser:Stop"
 +                     tooltiptext="&stopButton.tooltip;"/>
 +
 +      <toolbarbutton id="home-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                     persist="class"
++                     persist="class" removable="true"
 +                     label="&homeButton.label;"
 +                     ondragover="homeButtonObserver.onDragOver(event)"
 +                     ondragenter="homeButtonObserver.onDragOver(event)"
@@ -408,14 +708,12 @@
 +                     onclick="BrowserGoHome(event);"/>
 +
 +      <toolbaritem id="urlbar-container" align="center" flex="400" persist="width"
-+                   title="&locationItem.title;" class="chromeclass-location">
++                   title="&locationItem.title;" class="chromeclass-location" removable="true">
 +        <textbox id="urlbar" flex="1"
-+                 bookmarkhistoryemptytext="&urlbar.bookmarkhistory.emptyText;"
-+                 bookmarkemptytext="&urlbar.bookmark.emptyText;"
-+                 historyemptytext="&urlbar.history.emptyText;"
-+                 noneemptytext="&urlbar.none.emptyText;"
++                 placeholder="&urlbar.placeholder;"
 +                 type="autocomplete"
 +                 autocompletesearch="history"
++                 autocompletesearchparam="enable-actions"
 +                 autocompletepopup="PopupAutoCompleteRichResult"
 +                 completeselectedindex="true"
 +                 tabscrolling="true"
@@ -432,6 +730,10 @@
 +                 onsearchcomplete="LocationBarHelpers._searchComplete();"
 +                 onfocus="document.getElementById('identity-box').style.MozUserFocus= 'normal'"
 +                 onblur="setTimeout(function() document.getElementById('identity-box').style.MozUserFocus = '', 0);">
++          <box id="notification-popup-box" hidden="true" align="center">
++            <image id="geo-notification-icon" class="notification-anchor-icon" role="button"/>
++            <image id="addons-notification-icon" class="notification-anchor-icon" role="button"/>
++          </box>
 +          <!-- Use onclick instead of normal popup= syntax since the popup
 +               code fires onmousedown, and hence eats our favicon drag events.
 +               We only add the identity-box button to the tab order when the location bar
@@ -448,9 +750,13 @@
 +                       ondragstart="proxyIconDNDObserver.onDragStart(event);"
 +                       onerror="this.removeAttribute('src');"/>
 +              </stack>
-+              <label id="identity-icon-label" crop="center" flex="1"/>
++              <hbox id="identity-icon-labels">
++                <label id="identity-icon-label" class="plain" flex="1"/>
++                <label id="identity-icon-country-label" class="plain"/>
++              </hbox>
 +            </hbox>
 +          </box>
++          <label id="urlbar-display" value="&urlbar.switchToTab.label;"/>
 +          <hbox id="urlbar-icons">
 +            <button type="menu"
 +                    style="-moz-user-focus: none"
@@ -478,10 +784,195 @@
 +
 +      <toolbaritem id="search-container" title="&searchItem.title;"
 +                   align="center" class="chromeclass-toolbar-additional"
-+                   flex="100" persist="width">
++                   flex="100" persist="width" removable="true">
 +        <searchbar id="searchbar" flex="1"/>
 +      </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;"
++                       tooltiptext="&bookmarksMenuButton.tooltip;"
++                       ondragenter="PlacesMenuDNDHandler.onDragEnter(event);"
++                       ondragover="PlacesMenuDNDHandler.onDragOver(event);"
++                       ondragleave="PlacesMenuDNDHandler.onDragLeave(event);"
++                       ondrop="PlacesMenuDNDHandler.onDrop(event);">
++          <menupopup id="BMB_bookmarksPopup"
++                     placespopup="true"
++                     context="placesContext"
++                     openInTabs="children"
++                     oncommand="BookmarksEventHandler.onCommand(event);"
++                     onclick="BookmarksEventHandler.onClick(event);"
++                     onpopupshowing="BookmarksMenuButton.onPopupShowing(event);
++                                     if (!this.parentNode._placesView)
++                                       new PlacesMenu(event, 'place:folder=BOOKMARKS_MENU');"
++                     tooltip="bhTooltip" popupsinherittooltip="true">
++            <menuitem id="BMB_bookmarkAllTabs"
++                      label="&addCurPagesCmd.label;"
++                      command="Browser:BookmarkAllTabs"
++                      key="bookmarkAllTabsKb"/>
++            <menuitem id="BMB_bookmarksShowAll"
++                      label="&organizeBookmarks.label;"
++                      command="Browser:ShowAllBookmarks"
++                      key="manBookmarkKb"/>
++            <menuseparator/>
++            <menuitem id="BMB_viewBookmarksToolbar"
++                      type="checkbox"
++                      oncommand="onViewToolbarCommand(event)"
++                      label="&viewBookmarksToolbar.label;"/>
++            <menuitem id="BMB_viewBookmarksSidebar"
++                      label="&viewBookmarksSidebar.label;"
++                      type="checkbox"
++                      oncommand="toggleSidebar('viewBookmarksSidebar');"
++                      key="viewBookmarksSidebarKb">
++              <observes element="viewBookmarksSidebar" attribute="checked"/>
++            </menuitem>
++            <menuseparator/>
++            <menu id="BMB_bookmarksToolbarFolderMenu"
++                  class="menu-iconic bookmark-item"
++                  label="&personalbarCmd.label;"
++                  container="true">
++              <menupopup id="BMB_bookmarksToolbarFolderPopup"
++                         placespopup="true"
++                         context="placesContext"
++                         onpopupshowing="if (!this.parentNode._placesView)
++                                           new PlacesMenu(event, 'place:folder=TOOLBAR');"/>
++            </menu>
++            <menu id="BMB_unsortedBookmarksFolderMenu"
++                  class="menu-iconic bookmark-item"
++                  container="true">
++              <menupopup id="BMB_unsortedBookmarksFolderPopup"
++                         placespopup="true"
++                         context="placesContext"
++                         onpopupshowing="if (!this.parentNode._placesView)
++                                           new PlacesMenu(event, 'place:folder=UNFILED_BOOKMARKS');"/>
++            </menu>
++            <menuseparator/>
++          </menupopup>
++        </toolbarbutton>
++      </toolbaritem>
++
++      <hbox id="fullscreenflex" flex="1" hidden="true" fullscreencontrol="true"/>
++      <hbox id="window-controls" hidden="true" fullscreencontrol="true">
++        <toolbarbutton id="minimize-button"
++                       tooltiptext="&fullScreenMinimize.tooltip;"
++                       oncommand="window.minimize();"/>
++
++        <toolbarbutton id="restore-button"
++                       tooltiptext="&fullScreenRestore.tooltip;"
++                       oncommand="BrowserFullScreen();"/>
++
++        <toolbarbutton id="close-button"
++                       tooltiptext="&fullScreenClose.tooltip;"
++                       oncommand="BrowserTryToCloseWindow();"/>
++      </hbox>
++    </toolbar>
++
++    <toolbarset id="customToolbars" context="toolbar-context-menu"/>
++
++    <toolbar id="PersonalToolbar"
++             mode="icons" iconsize="small" defaulticonsize="small"
++             lockiconsize="true"
++             class="chromeclass-directories"
++             context="toolbar-context-menu"
++             defaultset="personal-bookmarks"
++             toolbarname="&personalbarCmd.label;" accesskey="&personalbarCmd.accesskey;"
++             collapsed="true"
++             customizable="true">
++      <toolbaritem flex="1" id="personal-bookmarks" title="&bookmarksItem.title;"
++                   removable="true">
++        <hbox flex="1"
++              id="PlacesToolbar"
++              context="placesContext"
++              onclick="BookmarksEventHandler.onClick(event);"
++              oncommand="BookmarksEventHandler.onCommand(event);"
++              tooltip="bhTooltip"
++              popupsinherittooltip="true">
++          <toolbarbutton class="bookmark-item bookmarks-toolbar-customize"
++                         mousethrough="never"
++                         label="&bookmarksToolbarItem.label;"/>
++          <hbox flex="1">
++            <hbox align="center">
++              <image id="PlacesToolbarDropIndicator"
++                     mousethrough="always"
++                     collapsed="true"/>
++            </hbox>
++            <scrollbox orient="horizontal"
++                       id="PlacesToolbarItems"
++                       flex="1"/>
++            <toolbarbutton type="menu"
++                           id="PlacesChevron"
++                           class="chevron"
++                           mousethrough="never"
++                           collapsed="true"
++                           tooltiptext="&bookmarksToolbarChevron.tooltip;"
++                           onpopupshowing="document.getElementById('PlacesToolbar')
++                                                   ._placesView._onChevronPopupShowing(event);">
++              <menupopup id="PlacesChevronPopup"
++                         placespopup="true"
++                         tooltip="bhTooltip" popupsinherittooltip="true"
++                         context="placesContext"/>
++            </toolbarbutton>
++          </hbox>
++        </hbox>
++      </toolbaritem>
++    </toolbar>
++
++    <toolbar id="TabsToolbar"
++             fullscreentoolbar="true"
++             customizable="true"
++             mode="icons" lockmode="true"
++             iconsize="small" defaulticonsize="small" lockiconsize="true"
++             aria-label="&tabsToolbar.label;"
++             context="toolbar-context-menu"
++             defaultset="tabbrowser-tabs,new-tab-button,alltabs-button,tabs-closebutton"
++             collapsed="true">
++
++      <tabs id="tabbrowser-tabs"
++            class="tabbrowser-tabs"
++            tabbrowser="content"
++            flex="1"
++            setfocus="false"
++            tooltip="tabbrowser-tab-tooltip">
++        <tab class="tabbrowser-tab" selected="true" fadein="true"/>
++      </tabs>
++
++      <toolbarbutton id="new-tab-button"
++                     class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     label="&tabCmd.label;"
++                     command="cmd_newNavigatorTab"
++                     onclick="checkForMiddleClick(this, event);"
++                     tooltiptext="&newTabButton.tooltip;"
++                     ondrop="newTabButtonObserver.onDrop(event)"
++                     ondragover="newTabButtonObserver.onDragOver(event)"
++                     ondragenter="newTabButtonObserver.onDragOver(event)"
++                     ondragleave="newTabButtonObserver.onDragLeave(event)"
++                     removable="true"/>
++
++      <toolbarbutton id="alltabs-button"
++                     class="toolbarbutton-1 chromeclass-toolbar-additional tabs-alltabs-button"
++                     type="menu"
++                     label="&listAllTabs.label;"
++                     tooltiptext="&listAllTabs.label;"
++                     removable="true">
++        <menupopup id="alltabs-popup"
++                   position="after_end"/>
++      </toolbarbutton>
++
++      <toolbarbutton id="tabs-closebutton"
++                     class="close-button tabs-closebutton"
++                     command="cmd_close"
++                     label="&closeTab.label;"
++                     tooltiptext="&closeTab.label;"/>
++
++    </toolbar>
++
++    <toolbarpalette id="BrowserToolbarPalette">
++
 +      <toolbarbutton id="print-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
 +                     label="&printButton.label;" command="cmd_print"
 +                     tooltiptext="&printButton.tooltip;"/>
@@ -491,120 +982,58 @@
 +        <image/>
 +      </toolbaritem>
 +
-+      <toolbaritem flex="1" id="personal-bookmarks" title="&bookmarksItem.title;">
-+         <hbox id="bookmarksBarContent" flex="1"
-+               type="places"
-+               place="place:folder=TOOLBAR"
-+               context="placesContext"
-+               onclick="BookmarksEventHandler.onClick(event);"
-+               oncommand="BookmarksEventHandler.onCommand(event);"
-+               onpopupshowing="BookmarksEventHandler.onPopupShowing(event);"
-+               tooltip="bhTooltip" popupsinherittooltip="true"/>
-+      </toolbaritem>
-+
-+        <toolbarbutton id="downloads-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       observes="Tools:Downloads"
-+                       ondrop="DownloadsButtonDNDObserver.onDrop(event)"
-+                       ondragover="DownloadsButtonDNDObserver.onDragOver(event)"
-+                       ondragenter="DownloadsButtonDNDObserver.onDragOver(event)"
-+                       ondragleave="DownloadsButtonDNDObserver.onDragLeave(event)"
-+                       label="&downloads.label;"
-+                       tooltiptext="&downloads.tooltip;"/>
-+
-+        <toolbarbutton id="history-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       observes="viewHistorySidebar" label="&historyButton.label;"
-+                       tooltiptext="&historyButton.tooltip;"/>
++      <toolbarbutton id="downloads-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     observes="Tools:Downloads"
++                     ondrop="DownloadsButtonDNDObserver.onDrop(event)"
++                     ondragover="DownloadsButtonDNDObserver.onDragOver(event)"
++                     ondragenter="DownloadsButtonDNDObserver.onDragOver(event)"
++                     ondragleave="DownloadsButtonDNDObserver.onDragLeave(event)"
++                     label="&downloads.label;"
++                     tooltiptext="&downloads.tooltip;"/>
 +
-+        <toolbarbutton id="bookmarks-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       observes="viewBookmarksSidebar"
-+                       tooltiptext="&bookmarksButton.tooltip;"
-+                       ondrop="bookmarksButtonObserver.onDrop(event)"
-+                       ondragover="bookmarksButtonObserver.onDragOver(event)"
-+                       ondragenter="bookmarksButtonObserver.onDragOver(event)"
-+                       ondragleave="bookmarksButtonObserver.onDragLeave(event)"/>
++      <toolbarbutton id="history-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     observes="viewHistorySidebar" label="&historyButton.label;"
++                     tooltiptext="&historyButton.tooltip;"/>
 +
-+        <toolbarbutton id="new-tab-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       label="&tabCmd.label;"
-+                       command="cmd_newNavigatorTab"
-+                       tooltiptext="&newTabButton.tooltip;"
-+                       ondrop="newTabButtonObserver.onDrop(event)"
-+                       ondragover="newTabButtonObserver.onDragOver(event)"
-+                       ondragenter="newTabButtonObserver.onDragOver(event)"
-+                       ondragleave="newTabButtonObserver.onDragLeave(event)"/>
-+
-+        <toolbarbutton id="new-window-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       label="&newNavigatorCmd.label;"
-+                       command="key_newNavigator"
-+                       tooltiptext="&newWindowButton.tooltip;"
-+                       ondrop="newWindowButtonObserver.onDrop(event)"
-+                       ondragover="newWindowButtonObserver.onDragOver(event)"
-+                       ondragenter="newWindowButtonObserver.onDragOver(event)"
-+                       ondragleave="newWindowButtonObserver.onDragLeave(event)"/>
-+
-+        <toolbarbutton id="cut-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       label="&cutCmd.label;"
-+                       command="cmd_cut"
-+                       tooltiptext="&cutButton.tooltip;"/>
++      <toolbarbutton id="bookmarks-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     observes="viewBookmarksSidebar"
++                     tooltiptext="&bookmarksButton.tooltip;"
++                     ondrop="bookmarksButtonObserver.onDrop(event)"
++                     ondragover="bookmarksButtonObserver.onDragOver(event)"
++                     ondragenter="bookmarksButtonObserver.onDragOver(event)"
++                     ondragleave="bookmarksButtonObserver.onDragLeave(event)"/>
 +
-+        <toolbarbutton id="copy-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       label="&copyCmd.label;"
-+                       command="cmd_copy"
-+                       tooltiptext="&copyButton.tooltip;"/>
++      <toolbarbutton id="new-window-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     label="&newNavigatorCmd.label;"
++                     command="key_newNavigator"
++                     tooltiptext="&newWindowButton.tooltip;"
++                     ondrop="newWindowButtonObserver.onDrop(event)"
++                     ondragover="newWindowButtonObserver.onDragOver(event)"
++                     ondragenter="newWindowButtonObserver.onDragOver(event)"
++                     ondragleave="newWindowButtonObserver.onDragLeave(event)"/>
 +
-+        <toolbarbutton id="paste-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       label="&pasteCmd.label;"
-+                       command="cmd_paste"
-+                       tooltiptext="&pasteButton.tooltip;"/>
-+        <toolbarbutton id="fullscreen-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
-+                       observes="View:FullScreen"
-+                       type="checkbox"
-+                       label="&fullScreenCmd.label;"
-+                       tooltiptext="&fullScreenButton.tooltip;"/>
-+    </toolbarpalette>
++      <toolbarbutton id="cut-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     label="&cutCmd.label;"
++                     command="cmd_cut"
++                     tooltiptext="&cutButton.tooltip;"/>
 +
-+    <toolbar id="nav-bar" class="toolbar-primary chromeclass-toolbar"
-+             toolbarname="&navbarCmd.label;" accesskey="&navbarCmd.accesskey;"
-+             fullscreentoolbar="true" mode="icons"
-+#ifdef WINCE
-+             iconsize="small" defaulticonsize="small"
-+#else
-+             iconsize="large"
-+#endif
-+             customizable="true"
-+#ifdef WINCE
-+             defaultset="unified-back-forward-button,reload-button,stop-button,home-button,urlbar-container,search-container,navigator-throbber,fullscreenflex,window-controls"
-+#else
-+             defaultset="unified-back-forward-button,reload-button,stop-button,home-button,urlbar-container,search-container,fullscreenflex,window-controls"
-+#endif
-+             context="toolbar-context-menu">
-+      <hbox id="fullscreenflex" flex="1" hidden="true" fullscreencontrol="true"/>
-+      <hbox id="window-controls" hidden="true" fullscreencontrol="true">
-+        <toolbarbutton id="minimize-button" class="toolbarbutton-1"
-+                       tooltiptext="&fullScreenMinimize.tooltip;"
-+                       oncommand="window.minimize();"/>
++      <toolbarbutton id="copy-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     label="&copyCmd.label;"
++                     command="cmd_copy"
++                     tooltiptext="&copyButton.tooltip;"/>
 +
-+        <toolbarbutton id="restore-button" class="toolbarbutton-1"
-+                       tooltiptext="&fullScreenRestore.tooltip;"
-+                       oncommand="BrowserFullScreen();"/>
-+
-+        <toolbarbutton id="close-button" class="toolbarbutton-1"
-+                       tooltiptext="&fullScreenClose.tooltip;"
-+                       oncommand="BrowserTryToCloseWindow();"/>
-+      </hbox>
-+    </toolbar>
++      <toolbarbutton id="paste-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     label="&pasteCmd.label;"
++                     command="cmd_paste"
++                     tooltiptext="&pasteButton.tooltip;"/>
 +
-+    <toolbarset id="customToolbars" context="toolbar-context-menu"/>
++      <toolbarbutton id="fullscreen-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
++                     observes="View:FullScreen"
++                     type="checkbox"
++                     label="&fullScreenCmd.label;"
++                     tooltiptext="&fullScreenButton.tooltip;"/>
 +
-+    <toolbar id="PersonalToolbar"
-+             mode="icons" iconsize="small" defaulticonsize="small"
-+             class="chromeclass-directories"
-+             context="toolbar-context-menu"
-+             defaultset="personal-bookmarks"
-+             toolbarname="&personalbarCmd.label;" accesskey="&personalbarCmd.accesskey;"
-+#ifdef WINCE
-+             collapsed="true"
-+#endif
-+             customizable="true"/>
++    </toolbarpalette>
 +  </toolbox>
 +
 +  <hbox flex="1" id="browser">
@@ -622,27 +1051,19 @@
 +    <vbox id="appcontent" flex="1">
 +      <tabbrowser id="content" disablehistory="true"
 +                  flex="1" contenttooltip="aHTMLTooltip"
++                  tabcontainer="tabbrowser-tabs"
 +                  contentcontextmenu="contentAreaContextMenu"
-+                  onnewtab="BrowserOpenTab();"
 +                  autocompletepopup="PopupAutoComplete"
-+                  ondrop="contentAreaDNDObserver.onDrop(event)"
 +                  onclick="return contentAreaClick(event, false);"/>
 +    </vbox>
 +  </hbox>
-+  <panel id="customizeToolbarSheetPopup" noautohide="true">
-+    <iframe id="customizeToolbarSheetIFrame"
-+            style="&dialog.style;"
-+            hidden="true"/>
-+  </panel>
 +
 +  <vbox id="browser-bottombox">
-+    <findbar browserid="content" id="FindToolbar"/>
-+  
 +    <statusbar class="chromeclass-status" id="status-bar"
 +#ifdef WINCE
 +               hidden="true"
 +#endif
-+               ondrop="contentAreaDNDObserver.onDrop(event)">
++               >
 +      <statusbarpanel id="statusbar-display" label="" flex="1"/>
 +      <statusbarpanel class="statusbarpanel-progress" collapsed="true" id="statusbar-progresspanel">
 +        <progressmeter class="progressmeter-statusbar" id="statusbar-icon" mode="normal" value="0"/>
@@ -653,6 +1074,24 @@
 +      <statusbarpanel id="security-button" class="statusbarpanel-iconic"
 +                      hidden="true"
 +                      onclick="if (event.button == 0 &amp;&amp; event.detail == 1) displaySecurityInfo();"/>
++#ifdef MOZ_SERVICES_SYNC
++      <statusbarpanel id="sync-status-button"
++                      class="statusbarpanel-iconic-text"
++                      image="chrome://browser/skin/sync-16.png"
++                      label="&syncLogInItem.label;"
++                      oncommand="gSyncUI.handleStatusbarButton();"
++                      onmousedown="event.preventDefault();">
++      </statusbarpanel>
++      <separator class="thin"/>
++      <statusbarpanel id="sync-notifications-button"
++                      class="statusbarpanel-iconic-text"
++                      hidden="true"
++                      popup="sync-notifications-panel">
++      </statusbarpanel>
++      <panel id="sync-notifications-panel" position="before_end">
++          <notificationbox id="sync-notifications-box"/>
++      </panel>
++#endif
 +      <statusbarpanel id="page-report-button" type="menu"
 +                      class="statusbarpanel-menu-iconic"
 +                      hidden="true"
@@ -666,16 +1105,28 @@
 +      </statusbarpanel>
 +    </statusbar>
 +  </vbox>
++#ifndef XP_UNIX
++  <svg:svg height="0">
++    <svg:mask id="winstripe-keyhole-forward-mask" maskContentUnits="objectBoundingBox">
++      <svg:rect x="0" y="0" width="1" height="1" fill="white"/>
++      <svg:circle cx="-0.46" cy="0.5" r="0.63"/>
++    </svg:mask>
++    <svg:mask id="winstripe-keyhole-forward-mask-hover" maskContentUnits="objectBoundingBox">
++      <svg:rect x="0" y="0" width="1" height="1" fill="white"/>
++      <svg:circle cx="-0.35" cy="0.5" r="0.58"/>
++    </svg:mask>
++  </svg:svg>
++#endif
 +</window>
 diff --git a/browser/base/jar.mn b/browser/base/jar.mn
 --- a/browser/base/jar.mn
 +++ b/browser/base/jar.mn
-@@ -17,16 +17,18 @@ browser.jar:
+@@ -19,16 +19,18 @@ browser.jar:
+ *       content/browser/aboutRobots.xhtml             (content/aboutRobots.xhtml)
          content/browser/aboutRobots-icon.png          (content/aboutRobots-icon.png)
          content/browser/aboutRobots-icon-rtl.png      (content/aboutRobots-icon-rtl.png)
          content/browser/aboutRobots-widget-left.png   (content/aboutRobots-widget-left.png)
          content/browser/aboutRobots-widget-right.png  (content/aboutRobots-widget-right.png)
- *       content/browser/aboutSupport.xhtml            (content/aboutSupport.xhtml)
  *       content/browser/browser.css                   (content/browser.css)
  *       content/browser/browser.js                    (content/browser.js)
  *       content/browser/browser.xul                   (content/browser.xul)
@@ -687,14 +1138,14 @@
  *       content/browser/pageinfo/pageInfo.xul         (content/pageinfo/pageInfo.xul)
  *       content/browser/pageinfo/pageInfo.js          (content/pageinfo/pageInfo.js)
  *       content/browser/pageinfo/pageInfo.css         (content/pageinfo/pageInfo.css)
+ *       content/browser/pageinfo/pageInfo.xml         (content/pageinfo/pageInfo.xml)
  *       content/browser/pageinfo/feeds.js             (content/pageinfo/feeds.js)
- *       content/browser/pageinfo/feeds.xml            (content/pageinfo/feeds.xml)
 diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/nsModule.cpp
 --- a/browser/components/build/nsModule.cpp
 +++ b/browser/components/build/nsModule.cpp
 @@ -41,17 +41,17 @@
  #include "nsBrowserCompsCID.h"
- #include "nsPlacesImportExportService.h"
+ #include "DirectoryProvider.h"
  
  #if defined(XP_WIN)
  #include "nsWindowsShellService.h"
@@ -711,18 +1162,17 @@
  #if !defined(XP_BEOS)
  #include "nsDogbertProfileMigrator.h"
  #endif
-@@ -85,17 +85,18 @@ using namespace mozilla::browser;
+@@ -85,17 +85,17 @@ using namespace mozilla::browser;
  /////////////////////////////////////////////////////////////////////////////
  
- NS_GENERIC_FACTORY_CONSTRUCTOR(nsPlacesImportExportService)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(DirectoryProvider)
  #if defined(XP_WIN)
  NS_GENERIC_FACTORY_CONSTRUCTOR(nsWindowsShellService)
  #elif defined(XP_MACOSX)
  NS_GENERIC_FACTORY_CONSTRUCTOR(nsMacShellService)
  #elif defined(MOZ_WIDGET_GTK2)
 -NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
-+// in nsUnixShellService
-+//NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsUnixShellService, Init)
++NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsUnixShellService, Init)
  #endif
  
  #ifndef WINCE
@@ -731,43 +1181,39 @@
  NS_GENERIC_FACTORY_CONSTRUCTOR(nsDogbertProfileMigrator)
  #endif
  #if !defined(XP_OS2)
-@@ -129,17 +130,17 @@ static const nsModuleComponentInfo compo
-     NS_SHELLSERVICE_CID,
-     NS_SHELLSERVICE_CONTRACTID,
-     nsWindowsShellServiceConstructor},
+@@ -151,17 +151,17 @@ NS_DEFINE_NAMED_CID(NS_SEAMONKEYPROFILEM
+ #endif /* WINCE */
+ NS_DEFINE_NAMED_CID(NS_PRIVATE_BROWSING_SERVICE_WRAPPER_CID);
  
+ static const mozilla::Module::CIDEntry kBrowserCIDs[] = {
+     { &kNS_BROWSERDIRECTORYPROVIDER_CID, false, NULL, DirectoryProviderConstructor },
+ #if defined(XP_WIN)
+     { &kNS_SHELLSERVICE_CID, false, NULL, nsWindowsShellServiceConstructor },
  #elif defined(MOZ_WIDGET_GTK2)
-   { "Browser Shell Service",
-     NS_SHELLSERVICE_CID,
-     NS_SHELLSERVICE_CONTRACTID,
--    nsGNOMEShellServiceConstructor },
-+    nsUnixShellServiceConstructor },
- 
+-    { &kNS_SHELLSERVICE_CID, false, NULL, nsGNOMEShellServiceConstructor },
++    { &kNS_SHELLSERVICE_CID, false, NULL, nsUnixShellServiceConstructor },
  #endif
- 
- 
-   { "Places Import/Export Service",
-     NS_PLACESIMPORTEXPORTSERVICE_CID,
-     NS_PLACESIMPORTEXPORTSERVICE_CONTRACTID,
-     nsPlacesImportExportServiceConstructor},
+     { &kNS_FEEDSNIFFER_CID, false, NULL, nsFeedSnifferConstructor },
+     { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, NULL, AboutRedirector::Create },
+ #ifndef WINCE
+     { &kNS_FIREFOX_PROFILEMIGRATOR_CID, false, NULL, nsProfileMigratorConstructor },
+ #if defined(XP_WIN) && !defined(__MINGW32__)
+     { &kNS_WINIEPROFILEMIGRATOR_CID, false, NULL, nsIEProfileMigratorConstructor },
+ #elif defined(XP_MACOSX)
 diff --git a/browser/components/shell/src/Makefile.in b/browser/components/shell/src/Makefile.in
 --- a/browser/components/shell/src/Makefile.in
 +++ b/browser/components/shell/src/Makefile.in
-@@ -70,21 +70,22 @@ CPPSRCS = nsWindowsShellService.cpp
- REQUIRES	+= \
- 		browsercomps \
- 		$(NULL)
+@@ -52,17 +52,18 @@ endif
+ 
+ ifneq (,$(filter WINCE WINNT,$(OS_ARCH)))
+ CPPSRCS = nsWindowsShellService.cpp
  else
- ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
+ ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
  CPPSRCS = nsMacShellService.cpp
  else
  ifeq ($(MOZ_WIDGET_TOOLKIT), gtk2)
 -CPPSRCS = nsGNOMEShellService.cpp
 +CPPSRCS = nsUnixShellService.cpp nsGNOMEShellService.cpp nsKDEShellService.cpp
- REQUIRES	+= \
- 		mozgnome \
- 		thebes \
- 		$(NULL)
 +LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre
  endif
  endif
@@ -1149,8 +1595,8 @@
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -400,16 +400,17 @@
- @BINPATH@/icons/*.png
+@@ -429,16 +429,17 @@
+ #endif
  #endif
  
  ; [Default Preferences]
@@ -1159,11 +1605,11 @@
  @BINPATH@/@PREF_DIR@/firefox-branding.js
  @BINPATH@/@PREF_DIR@/channel-prefs.js
 +@BINPATH@/@PREF_DIR@/kde.js
- @BINPATH@/greprefs/all.js
- @BINPATH@/greprefs/security-prefs.js
- @BINPATH@/greprefs/xpinstall.js
+ #ifdef MOZ_SERVICES_SYNC
+ @BINPATH@/@PREF_DIR@/services-sync.js
+ #endif
+ @BINPATH@/greprefs.js
  @BINPATH@/defaults/autoconfig/platform.js
  @BINPATH@/defaults/autoconfig/prefcalls.js
+ @BINPATH@/defaults/profile/prefs.js
  
- ; [Layout Engine Resources]
- ; Style Sheets, Graphics and other Resources used by the layout engine.