Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 364984 Details for
Bug 493722
www-client/firefox-24.2.0 version bump and KDE integration
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
firefox-kde-24.1.1.patch
firefox-kde-24.1.1.patch (text/plain), 75.07 KB, created by
Andreas Sturmlechner
on 2013-12-09 07:03:24 UTC
(
hide
)
Description:
firefox-kde-24.1.1.patch
Filename:
MIME Type:
Creator:
Andreas Sturmlechner
Created:
2013-12-09 07:03:24 UTC
Size:
75.07 KB
patch
obsolete
>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,1097 @@ >+#filter substitution >+<?xml version="1.0"?> >+# -*- Mode: HTML -*- >+# >+# 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/. >+ >+<?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?> >+<?xml-stylesheet href="chrome://browser/content/places/places.css" type="text/css"?> >+<?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?> >+<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?> >+ >+<?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?> >+<?xul-overlay href="chrome://browser/content/baseMenuOverlay.xul"?> >+<?xul-overlay href="chrome://browser/content/places/placesOverlay.xul"?> >+ >+# All DTD information is stored in a separate file so that it can be shared by >+# hiddenWindow.xul. >+#include browser-doctype.inc >+ >+<window id="main-window" >+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >+ xmlns:svg="http://www.w3.org/2000/svg" >+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" >+ onload="gBrowserInit.onLoad()" onunload="gBrowserInit.onUnload()" onclose="return WindowIsClosing();" >+ title="&mainWindow.title;@PRE_RELEASE_SUFFIX@" >+ title_normal="&mainWindow.title;@PRE_RELEASE_SUFFIX@" >+#ifdef XP_MACOSX >+ title_privatebrowsing="&mainWindow.title;@PRE_RELEASE_SUFFIX@&mainWindow.titlemodifiermenuseparator;&mainWindow.titlePrivateBrowsingSuffix;" >+ titledefault="&mainWindow.title;@PRE_RELEASE_SUFFIX@" >+ titlemodifier="" >+ titlemodifier_normal="" >+ titlemodifier_privatebrowsing="&mainWindow.titlePrivateBrowsingSuffix;" >+#else >+ title_privatebrowsing="&mainWindow.titlemodifier;@PRE_RELEASE_SUFFIX@ &mainWindow.titlePrivateBrowsingSuffix;" >+ titlemodifier="&mainWindow.titlemodifier;@PRE_RELEASE_SUFFIX@" >+ titlemodifier_normal="&mainWindow.titlemodifier;@PRE_RELEASE_SUFFIX@" >+ titlemodifier_privatebrowsing="&mainWindow.titlemodifier;@PRE_RELEASE_SUFFIX@ &mainWindow.titlePrivateBrowsingSuffix;" >+#endif >+ titlemenuseparator="&mainWindow.titlemodifiermenuseparator;" >+ lightweightthemes="true" >+ lightweightthemesfooter="browser-bottombox" >+ windowtype="navigator:browser" >+ macanimationtype="document" >+ screenX="4" screenY="4" >+ fullscreenbutton="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/javascript" src="chrome://browser/content/nsContextMenu.js"/> >+ >+<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/> >+ >+<script type="application/javascript" src="chrome://browser/content/places/editBookmarkOverlay.js"/> >+ >+# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the >+# browser-sets.inc file for sharing with hiddenWindow.xul. >+#define FULL_BROWSER_WINDOW >+#include browser-sets.inc >+#undef FULL_BROWSER_WINDOW >+ >+ <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);"/> >+ <menuseparator/> >+ <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);"/> >+ <menu id="context_tabViewMenu" label="&moveToGroup.label;" >+ accesskey="&moveToGroup.accesskey;"> >+ <menupopup id="context_tabViewMenuPopup" >+ onpopupshowing="if (event.target == this) TabView.moveToGroupPopupShowing(event);"> >+ <menuseparator id="context_tabViewNamedGroups" hidden="true"/> >+ <menuitem id="context_tabViewNewGroup" label="&moveToNewGroup.label;" >+ oncommand="TabView.moveTabTo(TabContextMenu.contextTab, null);"/> >+ </menupopup> >+ </menu> >+ <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;" >+ accesskey="&moveToNewWindow.accesskey;" >+ tbattr="tabbrowser-multiple" >+ oncommand="gBrowser.replaceTabWithWindow(TabContextMenu.contextTab);"/> >+ <menuseparator/> >+ <menuitem id="context_reloadAllTabs" label="&reloadAllTabs.label;" accesskey="&reloadAllTabs.accesskey;" >+ tbattr="tabbrowser-multiple-visible" >+ oncommand="gBrowser.reloadAllTabs();"/> >+ <menuitem id="context_bookmarkAllTabs" >+ label="&bookmarkAllTabs.label;" >+ accesskey="&bookmarkAllTabs.accesskey;" >+ command="Browser:BookmarkAllTabs"/> >+ <menuitem id="context_closeTabsToTheEnd" label="&closeTabsToTheEnd.label;" accesskey="&closeTabsToTheEnd.accesskey;" >+ oncommand="gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab);"/> >+ <menuitem id="context_closeOtherTabs" label="&closeOtherTabs.label;" accesskey="&closeOtherTabs.accesskey;" >+ oncommand="gBrowser.removeAllTabsBut(TabContextMenu.contextTab);"/> >+ <menuseparator/> >+ <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> >+ >+ <!-- bug 415444/582485: event.stopPropagation is here for the cloned version >+ of this menupopup --> >+ <menupopup id="backForwardMenu" >+ onpopupshowing="return FillHistoryMenu(event.target);" >+ oncommand="gotoHistoryIndex(event); event.stopPropagation();" >+ onclick="checkForMiddleClick(this, event);"/> >+ <tooltip id="aHTMLTooltip" page="true"/> >+ >+ <!-- for search and content formfill/pw manager --> >+ <panel type="autocomplete" id="PopupAutoComplete" noautofocus="true" hidden="true"/> >+ >+ <!-- for url bar autocomplete --> >+ <panel type="autocomplete-richlistbox" id="PopupAutoCompleteRichResult" noautofocus="true" hidden="true"/> >+ >+ <!-- for invalid form error message --> >+ <panel id="invalid-form-popup" type="arrow" orient="vertical" noautofocus="true" hidden="true" level="parent"> >+ <description/> >+ </panel> >+ >+ <panel id="editBookmarkPanel" >+ type="arrow" >+ footertype="promobox" >+ orient="vertical" >+ ignorekeys="true" >+ consumeoutsideclicks="true" >+ hidden="true" >+ onpopupshown="StarUI.panelShown(event);" >+ aria-labelledby="editBookmarkPanelTitle"> >+ <row id="editBookmarkPanelHeader" align="center" hidden="true"> >+ <vbox align="center"> >+ <image id="editBookmarkPanelStarIcon"/> >+ </vbox> >+ <vbox> >+ <label id="editBookmarkPanelTitle"/> >+ <description id="editBookmarkPanelDescription"/> >+ <hbox> >+ <button id="editBookmarkPanelRemoveButton" >+ class="editBookmarkPanelHeaderButton" >+ oncommand="StarUI.removeBookmarkButtonCommand();" >+ accesskey="&editBookmark.removeBookmark.accessKey;"/> >+ </hbox> >+ </vbox> >+ </row> >+ <vbox id="editBookmarkPanelContent" flex="1" hidden="true"/> >+ <hbox id="editBookmarkPanelBottomButtons" pack="end"> >+#ifdef XP_UNIX >+ <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();"/> >+#else >+ <button id="editBookmarkPanelDeleteButton" >+ class="editBookmarkPanelBottomButton" >+ label="&editBookmark.cancel.label;" >+ oncommand="StarUI.cancelButtonOnCommand();"/> >+ <button id="editBookmarkPanelDoneButton" >+ class="editBookmarkPanelBottomButton" >+ label="&editBookmark.done.label;" >+ default="true" >+ oncommand="StarUI.panel.hidePopup();"/> >+#endif >+ </hbox> >+ </panel> >+ >+ <panel id="socialActivatedNotification" >+ type="arrow" >+ hidden="true" >+ consumeoutsideclicks="true" >+ align="start" >+ orient="horizontal" >+ role="alert"> >+ <image id="social-activation-icon" class="popup-notification-icon"/> >+ <vbox flex="1"> >+ <description id="social-activation-message" class="popup-notification-description">&social.activated.description;</description> >+ <spacer flex="1"/> >+ <hbox pack="start" align="center" class="popup-notification-button-container"> >+ <label id="social-undoactivation-button" >+ class="text-link" >+ value="&social.activated.undo.label;" >+ accesskey="&social.activated.undo.accesskey;" >+ onclick="SocialUI.undoActivation(this);"/> >+ <spacer flex="1"/> >+ <button id="social-activation-button" >+ default="true" >+ autofocus="autofocus" >+ label="&social.ok.label;" >+ accesskey="&social.ok.accesskey;" >+ oncommand="SocialUI.activationPanel.hidePopup();"/> >+ </hbox> >+ </vbox> >+ </panel> >+ >+ <panel id="social-share-panel" >+ class="social-panel" >+ type="arrow" >+ orient="horizontal" >+ onpopupshowing="SocialShare.onShowing()" >+ onpopuphidden="SocialShare.onHidden()" >+ consumeoutsideclicks="true" >+ hidden="true"> >+ <vbox class="social-share-toolbar"> >+ <vbox id="social-share-provider-buttons" flex="1"/> >+ </vbox> >+ </panel> >+ >+ <panel id="social-notification-panel" >+ class="social-panel" >+ type="arrow" >+ hidden="true" >+ noautofocus="true"/> >+ <panel id="social-flyout-panel" >+ class="social-panel" >+ onpopupshown="SocialFlyout.onShown()" >+ onpopuphidden="SocialFlyout.onHidden()" >+ side="right" >+ type="arrow" >+ hidden="true" >+ flip="slide" >+ rolluponmousewheel="true" >+ consumeoutsideclicks="false" >+ noautofocus="true" >+ position="topcenter topright"/> >+ >+ <menupopup id="toolbar-context-menu" >+ onpopupshowing="onViewToolbarsPopupShowing(event);"> >+ <menuseparator/> >+ <menuitem command="cmd_ToggleTabsOnTop" >+ type="checkbox" >+ label="&viewTabsOnTop.label;" >+ accesskey="&viewTabsOnTop.accesskey;"/> >+ <menuitem command="cmd_CustomizeToolbars" >+ label="&viewCustomizeToolbar.label;" >+ accesskey="&viewCustomizeToolbar.accesskey;"/> >+ </menupopup> >+ >+ <menupopup id="blockedPopupOptions" >+ onpopupshowing="gPopupBlockerObserver.fillPopupList(event);" >+ onpopuphiding="gPopupBlockerObserver.onPopupHiding(event);"> >+ <menuitem observes="blockedPopupAllowSite"/> >+ <menuitem observes="blockedPopupEditSettings"/> >+ <menuitem observes="blockedPopupDontShowMessage"/> >+ <menuseparator observes="blockedPopupsSeparator"/> >+ </menupopup> >+ >+ <menupopup id="autohide-context" >+ onpopupshowing="FullScreen.getAutohide(this.firstChild);"> >+ <menuitem type="checkbox" label="&fullScreenAutohide.label;" >+ accesskey="&fullScreenAutohide.accesskey;" >+ oncommand="FullScreen.setAutohide();"/> >+ <menuseparator/> >+ <menuitem label="&fullScreenExit.label;" >+ accesskey="&fullScreenExit.accesskey;" >+ oncommand="BrowserFullScreen();"/> >+ </menupopup> >+ >+ <menupopup id="contentAreaContextMenu" pagemenu="start" >+ onpopupshowing="if (event.target != this) >+ return true; >+ gContextMenu = new nsContextMenu(this, event.shiftKey); >+ if (gContextMenu.shouldDisplay) >+ updateEditUIVisibility(); >+ return gContextMenu.shouldDisplay;" >+ onpopuphiding="if (event.target != this) >+ return; >+ gContextMenu.hiding(); >+ gContextMenu = null; >+ updateEditUIVisibility();"> >+#include browser-context.inc >+ </menupopup> >+ >+ <menupopup id="placesContext"/> >+ >+ >+ <panel id="ctrlTab-panel" class="KUI-panel" hidden="true" norestorefocus="true" level="top"> >+ <hbox> >+ <button class="ctrlTab-preview" flex="1"/> >+ <button class="ctrlTab-preview" flex="1"/> >+ <button class="ctrlTab-preview" flex="1"/> >+ <button class="ctrlTab-preview" flex="1"/> >+ <button class="ctrlTab-preview" flex="1"/> >+ <button class="ctrlTab-preview" flex="1"/> >+ </hbox> >+ <hbox pack="center"> >+ <button id="ctrlTab-showAll" class="ctrlTab-preview" noicon="true"/> >+ </hbox> >+ </panel> >+ >+ <!-- Bookmarks and history tooltip --> >+ <tooltip id="bhTooltip"/> >+ >+ <panel id="customizeToolbarSheetPopup" >+ noautohide="true" >+ sheetstyle="&dialog.dimensions;"/> >+ >+ <tooltip id="tabbrowser-tab-tooltip" onpopupshowing="gBrowser.createTooltip(event);"/> >+ >+ <tooltip id="back-button-tooltip"> >+ <label class="tooltip-label" value="&backButton.tooltip;"/> >+#ifdef XP_MACOSX >+ <label class="tooltip-label" value="&backForwardButtonMenuMac.tooltip;"/> >+#else >+ <label class="tooltip-label" value="&backForwardButtonMenu.tooltip;"/> >+#endif >+ </tooltip> >+ >+ <tooltip id="forward-button-tooltip"> >+ <label class="tooltip-label" value="&forwardButton.tooltip;"/> >+#ifdef XP_MACOSX >+ <label class="tooltip-label" value="&backForwardButtonMenuMac.tooltip;"/> >+#else >+ <label class="tooltip-label" value="&backForwardButtonMenu.tooltip;"/> >+#endif >+ </tooltip> >+ >+#include popup-notifications.inc >+ >+ </popupset> >+ >+#ifdef CAN_DRAW_IN_TITLEBAR >+<vbox id="titlebar"> >+ <hbox id="titlebar-content"> >+#ifdef MENUBAR_CAN_AUTOHIDE >+ <hbox id="appmenu-button-container"> >+ <button id="appmenu-button" >+ type="menu" >+ label="&brandShortName;" >+ style="-moz-user-focus: ignore;"> >+#include browser-appmenu.inc >+ </button> >+ </hbox> >+#endif >+ <spacer id="titlebar-spacer" flex="1"/> >+ <hbox id="titlebar-buttonbox-container" align="start"> >+ <hbox id="titlebar-buttonbox"> >+ <toolbarbutton class="titlebar-button" id="titlebar-min" oncommand="window.minimize();"/> >+ <toolbarbutton class="titlebar-button" id="titlebar-max" oncommand="onTitlebarMaxClick();"/> >+ <toolbarbutton class="titlebar-button" id="titlebar-close" command="cmd_closeWindow"/> >+ </hbox> >+ </hbox> >+ </hbox> >+</vbox> >+#endif >+ >+<deck flex="1" id="tab-view-deck"> >+<vbox flex="1" id="browser-panel"> >+ >+ <toolbox id="navigator-toolbox" >+ defaultmode="icons" mode="icons" >+ iconsize="large"> >+ <!-- Menu --> >+ <toolbar type="menubar" id="toolbar-menubar" class="chromeclass-menubar" customizable="true" >+ defaultset="menubar-items" >+ mode="icons" iconsize="small" defaulticonsize="small" >+ lockiconsize="true" >+#ifdef MENUBAR_CAN_AUTOHIDE >+ toolbarname="&menubarCmd.label;" >+ accesskey="&menubarCmd.accesskey;" >+#endif >+ context="toolbar-context-menu"> >+ <toolbaritem id="menubar-items" align="center"> >+# The entire main menubar is placed into browser-menubar.inc, so that it can be shared by >+# hiddenWindow.xul. >+#include browser-menubar.inc >+ </toolbaritem> >+ >+#ifdef CAN_DRAW_IN_TITLEBAR >+ <hbox class="titlebar-placeholder" type="appmenu-button" ordinal="0"/> >+ <hbox class="titlebar-placeholder" type="caption-buttons" ordinal="1000"/> >+#endif >+ </toolbar> >+ >+ <toolbar id="nav-bar" class="toolbar-primary chromeclass-toolbar" >+ toolbarname="&navbarCmd.label;" accesskey="&navbarCmd.accesskey;" >+ fullscreentoolbar="true" mode="icons" customizable="true" >+ iconsize="large" >+ defaultset="unified-back-forward-button,urlbar-container,reload-button,stop-button,search-container,webrtc-status-button,bookmarks-menu-button,downloads-button,home-button,window-controls" >+ context="toolbar-context-menu"> >+ >+ <toolbaritem id="unified-back-forward-button" class="chromeclass-toolbar-additional" >+ context="backForwardMenu" removable="true" >+ forwarddisabled="true" >+ title="&backForwardItem.title;"> >+ <toolbarbutton id="back-button" class="toolbarbutton-1" >+ label="&backCmd.label;" >+ command="Browser:BackOrBackDuplicate" >+ onclick="checkForMiddleClick(this, event);" >+ tooltip="back-button-tooltip"/> >+ <toolbarbutton id="forward-button" class="toolbarbutton-1" >+ label="&forwardCmd.label;" >+ command="Browser:ForwardOrForwardDuplicate" >+ onclick="checkForMiddleClick(this, event);" >+ tooltip="forward-button-tooltip"/> >+ <dummyobservertarget hidden="true" >+ onbroadcast="if (this.getAttribute('disabled') == 'true') >+ this.parentNode.setAttribute('forwarddisabled', 'true'); >+ else >+ this.parentNode.removeAttribute('forwarddisabled');"> >+ <observes element="Browser:ForwardOrForwardDuplicate" attribute="disabled"/> >+ </dummyobservertarget> >+ </toolbaritem> >+ >+ <toolbaritem id="urlbar-container" align="center" flex="400" persist="width" combined="true" >+ title="&locationItem.title;" class="chromeclass-location" removable="true"> >+ <textbox id="urlbar" flex="1" >+ placeholder="&urlbar.placeholder2;" >+ type="autocomplete" >+ autocompletesearch="urlinline history" >+ autocompletesearchparam="enable-actions" >+ autocompletepopup="PopupAutoCompleteRichResult" >+ completeselectedindex="true" >+ tabscrolling="true" >+ showcommentcolumn="true" >+ showimagecolumn="true" >+ enablehistory="true" >+ maxrows="6" >+ newlines="stripsurroundingwhitespace" >+ oninput="gBrowser.userTypedValue = this.value;" >+ ontextentered="this.handleCommand(param);" >+ ontextreverted="return this.handleRevert();" >+ pageproxystate="invalid" >+ 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="default-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="identity-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="geo-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="addons-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="indexedDB-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="password-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="webapps-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="plugins-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="web-notifications-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="alert-plugins-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="blocked-plugins-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="plugin-install-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="mixed-content-blocked-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="webRTC-shareDevices-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="webRTC-sharingDevices-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="pointerLock-notification-icon" class="notification-anchor-icon" role="button"/> >+ <image id="servicesInstall-notification-icon" class="notification-anchor-icon" role="button"/> >+ </box> >+ <!-- 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 >+ has focus, otherwise pressing F6 focuses it instead of the location bar --> >+ <box id="identity-box" role="button" >+ align="center" >+ onclick="gIdentityHandler.handleIdentityButtonEvent(event);" >+ onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);" >+ ondragstart="gIdentityHandler.onDragStart(event);"> >+ <image id="page-proxy-favicon" >+ onclick="PageProxyClickHandler(event);" >+ pageproxystate="invalid"/> >+ <hbox id="identity-icon-labels"> >+ <label id="identity-icon-label" class="plain" flex="1"/> >+ <label id="identity-icon-country-label" class="plain"/> >+ </hbox> >+ </box> >+ <box id="urlbar-display-box" align="center"> >+ <label id="urlbar-display" value="&urlbar.switchToTab.label;"/> >+ </box> >+ <hbox id="urlbar-icons"> >+ <image id="page-report-button" >+ class="urlbar-icon" >+ hidden="true" >+ tooltiptext="&pageReportIcon.tooltip;" >+ onclick="gPopupBlockerObserver.onReportButtonClick(event);"/> >+ <image id="star-button" >+ class="urlbar-icon" >+ onclick="BookmarkingUI.onCommand(event);"/> >+ <image id="go-button" >+ class="urlbar-icon" >+ tooltiptext="&goEndCap.tooltip;" >+ onclick="gURLBar.handleCommand(event);"/> >+ </hbox> >+ <toolbarbutton id="urlbar-go-button" >+ class="chromeclass-toolbar-additional" >+ onclick="gURLBar.handleCommand(event);" >+ tooltiptext="&goEndCap.tooltip;"/> >+ <toolbarbutton id="urlbar-reload-button" >+ class="chromeclass-toolbar-additional" >+ command="Browser:ReloadOrDuplicate" >+ onclick="checkForMiddleClick(this, event);" >+ tooltiptext="&reloadButton.tooltip;"/> >+ <toolbarbutton id="urlbar-stop-button" >+ class="chromeclass-toolbar-additional" >+ command="Browser:Stop" >+ tooltiptext="&stopButton.tooltip;"/> >+ </textbox> >+ </toolbaritem> >+ >+ <toolbarbutton id="reload-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ 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;" removable="true" >+ command="Browser:Stop" >+ tooltiptext="&stopButton.tooltip;"/> >+ >+ <toolbaritem id="search-container" title="&searchItem.title;" >+ align="center" class="chromeclass-toolbar-additional" >+ flex="100" persist="width" removable="true"> >+ <searchbar id="searchbar" flex="1"/> >+ </toolbaritem> >+ >+ <toolbarbutton id="webrtc-status-button" >+ class="toolbarbutton-1 chromeclass-toolbar-additional" >+ type="menu" >+ hidden="true" >+ orient="horizontal" >+ label="&webrtcIndicatorButton.label;" >+ tooltiptext="&webrtcIndicatorButton.tooltip;"> >+ <menupopup onpopupshowing="WebrtcIndicator.fillPopup(this);" >+ onpopuphiding="WebrtcIndicator.clearPopup(this);" >+ oncommand="WebrtcIndicator.menuCommand(event.target);"/> >+ </toolbarbutton> >+ >+ <toolbarbutton id="bookmarks-menu-button" >+ class="toolbarbutton-1 chromeclass-toolbar-additional" >+ persist="class" >+ removable="true" >+ type="menu" >+ 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, this.parentNode._placesView);" >+ onclick="BookmarksEventHandler.onClick(event, this.parentNode._placesView);" >+ onpopupshowing="BookmarkingUI.onPopupShowing(event); >+ if (!this.parentNode._placesView) >+ new PlacesMenu(event, 'place:folder=BOOKMARKS_MENU');" >+ tooltip="bhTooltip" popupsinherittooltip="true"> >+ <menuitem id="BMB_viewBookmarksToolbar" >+ placesanonid="view-toolbar" >+ toolbarId="PersonalToolbar" >+ type="checkbox" >+ oncommand="onViewToolbarCommand(event)" >+ label="&viewBookmarksToolbar.label;"/> >+ <menuseparator/> >+ <menuitem id="BMB_bookmarksShowAll" >+ label="&showAllBookmarks2.label;" >+ command="Browser:ShowAllBookmarks" >+ key="manBookmarkKb"/> >+ <menuseparator/> >+ <menuitem id="BMB_bookmarkThisPage" >+#ifndef XP_MACOSX >+ class="menuitem-iconic" >+#endif >+ label="&bookmarkThisPageCmd.label;" >+ command="Browser:AddBookmarkAs" >+ key="addBookmarkAsKb"/> >+ <menuitem id="BMB_subscribeToPageMenuitem" >+#ifndef XP_MACOSX >+ class="menuitem-iconic" >+#endif >+ label="&subscribeToPageMenuitem.label;" >+ oncommand="return FeedHandler.subscribeToFeed(null, event);" >+ onclick="checkForMiddleClick(this, event);" >+ observes="singleFeedMenuitemState"/> >+ <menu id="BMB_subscribeToPageMenupopup" >+#ifndef XP_MACOSX >+ class="menu-iconic" >+#endif >+ label="&subscribeToPageMenupopup.label;" >+ observes="multipleFeedsMenuState"> >+ <menupopup id="BMB_subscribeToPageSubmenuMenupopup" >+ onpopupshowing="return FeedHandler.buildFeedList(event.target);" >+ oncommand="return FeedHandler.subscribeToFeed(null, event);" >+ onclick="checkForMiddleClick(this, event);"/> >+ </menu> >+ <menuseparator/> >+ <menu id="BMB_bookmarksToolbar" >+ placesanonid="toolbar-autohide" >+ class="menu-iconic bookmark-item" >+ label="&personalbarCmd.label;" >+ container="true"> >+ <menupopup id="BMB_bookmarksToolbarPopup" >+ placespopup="true" >+ context="placesContext" >+ onpopupshowing="if (!this.parentNode._placesView) >+ new PlacesMenu(event, 'place:folder=TOOLBAR');"/> >+ </menu> >+ <menuseparator/> >+ <!-- Bookmarks menu items --> >+ <menuseparator builder="end" >+ class="hide-if-empty-places-result"/> >+ <menuitem id="BMB_unsortedBookmarks" >+ label="&bookmarksMenuButton.unsorted.label;" >+ oncommand="PlacesCommandHook.showPlacesOrganizer('UnfiledBookmarks');" >+ class="menuitem-iconic"/> >+ </menupopup> >+ </toolbarbutton> >+ >+ <toolbarbutton id="home-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ persist="class" removable="true" >+ 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;"/> >+ >+ <toolbarbutton id="social-share-button" >+ class="toolbarbutton-1 chromeclass-toolbar-additional" >+ hidden="true" >+ label="&sharePageCmd.label;" >+ tooltiptext="&sharePageCmd.label;" >+ command="Social:SharePage"/> >+ >+ <toolbaritem id="social-toolbar-item" >+ class="chromeclass-toolbar-additional" >+ removable="false" >+ title="&socialToolbar.title;" >+ hidden="true" >+ skipintoolbarset="true" >+ observes="socialActiveBroadcaster"> >+ <toolbarbutton id="social-notification-icon" class="default-notification-icon toolbarbutton-1 notification-anchor-icon" >+ oncommand="PopupNotifications._reshowNotifications(this, >+ document.getElementById('social-sidebar-browser'));"/> >+ <toolbarbutton id="social-provider-button" >+ class="toolbarbutton-1" >+ type="menu"> >+ <menupopup id="social-statusarea-popup"> >+ <menuitem class="social-statusarea-user menuitem-iconic" pack="start" align="center" >+ observes="socialBroadcaster_userDetails" >+ oncommand="SocialUI.showProfile(); document.getElementById('social-statusarea-popup').hidePopup();"> >+ <image class="social-statusarea-user-portrait" >+ observes="socialBroadcaster_userDetails"/> >+ <vbox> >+ <label class="social-statusarea-loggedInStatus" >+ observes="socialBroadcaster_userDetails"/> >+ </vbox> >+ </menuitem> >+#ifndef XP_WIN >+ <menuseparator class="social-statusarea-separator"/> >+#endif >+ <menuitem class="social-toggle-sidebar-menuitem" >+ type="checkbox" >+ autocheck="false" >+ command="Social:ToggleSidebar" >+ label="&social.toggleSidebar.label;" >+ accesskey="&social.toggleSidebar.accesskey;"/> >+ <menuitem class="social-toggle-notifications-menuitem" >+ type="checkbox" >+ autocheck="false" >+ command="Social:ToggleNotifications" >+ label="&social.toggleNotifications.label;" >+ accesskey="&social.toggleNotifications.accesskey;"/> >+ <menuitem class="social-toggle-menuitem" command="Social:Toggle"/> >+ <menuseparator/> >+ <menuseparator class="social-provider-menu" hidden="true"/> >+ <menuitem class="social-addons-menuitem" command="Social:Addons" >+ label="&social.addons.label;"/> >+ <menuitem label="&social.learnMore.label;" >+ accesskey="&social.learnMore.accesskey;" >+ oncommand="SocialUI.showLearnMore();"/> >+ </menupopup> >+ </toolbarbutton> >+ <toolbarbutton id="social-mark-button" >+ class="toolbarbutton-1" >+ hidden="true" >+ disabled="true" >+ command="Social:TogglePageMark"/> >+ </toolbaritem> >+ >+ <hbox id="window-controls" hidden="true" pack="end"> >+ <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, this._placesView);" >+ oncommand="BookmarksEventHandler.onCommand(event, this._placesView);" >+ 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> >+ >+#ifdef MENUBAR_CAN_AUTOHIDE >+#ifndef CAN_DRAW_IN_TITLEBAR >+#define APPMENU_ON_TABBAR >+#endif >+#endif >+ >+ >+ <toolbar id="TabsToolbar" >+ class="toolbar-primary" >+ fullscreentoolbar="true" >+ customizable="true" >+ mode="icons" lockmode="true" >+ iconsize="small" defaulticonsize="small" lockiconsize="true" >+ aria-label="&tabsToolbar.label;" >+ context="toolbar-context-menu" >+#ifdef APPMENU_ON_TABBAR >+ defaultset="appmenu-toolbar-button,tabbrowser-tabs,new-tab-button,alltabs-button,tabs-closebutton" >+#else >+ defaultset="tabbrowser-tabs,new-tab-button,alltabs-button,tabs-closebutton" >+#endif >+ collapsed="true"> >+ >+#ifdef APPMENU_ON_TABBAR >+ <toolbarbutton id="appmenu-toolbar-button" >+ class="chromeclass-toolbar-additional" >+ type="menu" >+ label="&brandShortName;" >+ tooltiptext="&appMenuButton.tooltip;"> >+#include browser-appmenu.inc >+ </toolbarbutton> >+#endif >+ >+ <tabs id="tabbrowser-tabs" >+ class="tabbrowser-tabs" >+ tabbrowser="content" >+ flex="1" >+ setfocus="false" >+ tooltip="tabbrowser-tab-tooltip" >+ stopwatchid="FX_TAB_CLICK_MS"> >+ <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)" >+ ondragexit="newTabButtonObserver.onDragExit(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"> >+ <menuitem id="menu_tabview" >+ class="menuitem-iconic" >+ key="key_tabview" >+ label="&viewTabGroups.label;" >+ command="Browser:ToggleTabView" >+ observes="tabviewGroupsNumber"/> >+ <menuseparator id="alltabs-popup-separator"/> >+ </menupopup> >+ </toolbarbutton> >+ >+ <toolbarbutton id="tabs-closebutton" >+ class="close-button tabs-closebutton" >+ command="cmd_close" >+ label="&closeTab.label;" >+ tooltiptext="&closeTab.label;"/> >+ >+#ifdef CAN_DRAW_IN_TITLEBAR >+ <hbox class="titlebar-placeholder" type="appmenu-button" ordinal="0"/> >+ <hbox class="titlebar-placeholder" type="caption-buttons" ordinal="1000"/> >+#endif >+ </toolbar> >+ >+ <toolbarpalette id="BrowserToolbarPalette"> >+ >+# Update primaryToolbarButtons in browser/themes/shared/browser.inc when adding >+# or removing default items with the toolbarbutton-1 class. >+ >+ <toolbarbutton id="print-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ label="&printButton.label;" command="cmd_print" >+ tooltiptext="&printButton.tooltip;"/> >+ >+ <!-- This is a placeholder for the Downloads Indicator. It is visible >+ during the customization of the toolbar, in the palette, and before >+ the Downloads Indicator overlay is loaded. --> >+ <toolbarbutton id="downloads-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ oncommand="DownloadsIndicatorView.onCommand(event);" >+ ondrop="DownloadsIndicatorView.onDrop(event);" >+ ondragover="DownloadsIndicatorView.onDragOver(event);" >+ ondragenter="DownloadsIndicatorView.onDragOver(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="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)" >+ ondragexit="bookmarksButtonObserver.onDragExit(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)" >+ ondragexit="newWindowButtonObserver.onDragExit(event)"/> >+ >+ <toolbarbutton id="fullscreen-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ observes="View:FullScreen" >+ type="checkbox" >+ label="&fullScreenCmd.label;" >+ tooltiptext="&fullScreenButton.tooltip;"/> >+ >+ <toolbaritem id="zoom-controls" class="chromeclass-toolbar-additional" >+ title="&zoomControls.label;"> >+ <toolbarbutton id="zoom-out-button" class="toolbarbutton-1" >+ label="&fullZoomReduceCmd.label;" >+ command="cmd_fullZoomReduce" >+ tooltiptext="&zoomOutButton.tooltip;"/> >+ <toolbarbutton id="zoom-in-button" class="toolbarbutton-1" >+ label="&fullZoomEnlargeCmd.label;" >+ command="cmd_fullZoomEnlarge" >+ tooltiptext="&zoomInButton.tooltip;"/> >+ </toolbaritem> >+ >+ <toolbarbutton id="feed-button" >+ type="menu" >+ class="toolbarbutton-1 chromeclass-toolbar-additional" >+ disabled="true" >+ label="&feedButton.label;" >+ tooltiptext="&feedButton.tooltip;" >+ onclick="return FeedHandler.onFeedButtonClick(event);"> >+ <menupopup position="after_end" >+ id="feed-menu" >+ onpopupshowing="return FeedHandler.buildFeedList(this);" >+ oncommand="return FeedHandler.subscribeToFeed(null, event);" >+ onclick="checkForMiddleClick(this, event);"/> >+ </toolbarbutton> >+ >+ <toolbarbutton id="cut-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ label="&cutCmd.label;" >+ command="cmd_cut" >+ tooltiptext="&cutButton.tooltip;"/> >+ >+ <toolbarbutton id="copy-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ label="©Cmd.label;" >+ command="cmd_copy" >+ tooltiptext="©Button.tooltip;"/> >+ >+ <toolbarbutton id="paste-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ label="&pasteCmd.label;" >+ command="cmd_paste" >+ tooltiptext="&pasteButton.tooltip;"/> >+ >+#ifdef MOZ_SERVICES_SYNC >+ <toolbarbutton id="sync-button" >+ class="toolbarbutton-1 chromeclass-toolbar-additional" >+ label="&syncToolbarButton.label;" >+ oncommand="gSyncUI.handleToolbarButton()"/> >+#endif >+ >+ <toolbaritem id="navigator-throbber" title="&throbberItem.title;" align="center" pack="center" >+ mousethrough="always"> >+ <image/> >+ </toolbaritem> >+ >+ <toolbarbutton id="tabview-button" class="toolbarbutton-1 chromeclass-toolbar-additional" >+ label="&tabGroupsButton.label;" >+ command="Browser:ToggleTabView" >+ tooltiptext="&tabGroupsButton.tooltip;" >+ observes="tabviewGroupsNumber"/> >+ </toolbarpalette> >+ </toolbox> >+ >+ <hbox id="fullscr-toggler" collapsed="true"/> >+ >+ <hbox flex="1" id="browser"> >+ <vbox id="browser-border-start" hidden="true" layer="true"/> >+ <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome"> >+ <sidebarheader id="sidebar-header" align="center"> >+ <label id="sidebar-title" persist="value" flex="1" crop="end" control="sidebar"/> >+ <image id="sidebar-throbber"/> >+ <toolbarbutton class="tabs-closebutton" tooltiptext="&sidebarCloseButton.tooltip;" oncommand="toggleSidebar();"/> >+ </sidebarheader> >+ <browser id="sidebar" flex="1" autoscroll="false" disablehistory="true" >+ style="min-width: 14em; width: 18em; max-width: 36em;"/> >+ </vbox> >+ >+ <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/> >+ <vbox id="appcontent" flex="1"> >+ <tabbrowser id="content" disablehistory="true" >+ flex="1" contenttooltip="aHTMLTooltip" >+ tabcontainer="tabbrowser-tabs" >+ contentcontextmenu="contentAreaContextMenu" >+ autocompletepopup="PopupAutoComplete"/> >+ <chatbar id="pinnedchats" layer="true" mousethrough="always" hidden="true"/> >+ <statuspanel id="statusbar-display" inactive="true"/> >+ </vbox> >+ <splitter id="social-sidebar-splitter" >+ class="chromeclass-extrachrome sidebar-splitter" >+ observes="socialSidebarBroadcaster"/> >+ <vbox id="social-sidebar-box" >+ class="chromeclass-extrachrome" >+ observes="socialSidebarBroadcaster" >+ persist="width"> >+ <browser id="social-sidebar-browser" >+ type="content" >+ context="contentAreaContextMenu" >+ disableglobalhistory="true" >+ tooltip="aHTMLTooltip" >+ popupnotificationanchor="social-notification-icon" >+ flex="1" >+ style="min-width: 14em; width: 18em; max-width: 36em;"/> >+ </vbox> >+ <vbox id="browser-border-end" hidden="true" layer="true"/> >+ </hbox> >+ >+ <hbox id="full-screen-warning-container" hidden="true" fadeout="true"> >+ <hbox style="width: 100%;" pack="center"> <!-- Inner hbox needed due to bug 579776. --> >+ <vbox id="full-screen-warning-message" align="center"> >+ <description id="full-screen-domain-text"/> >+ <description class="full-screen-description" value="&fullscreenExitHint.value;"/> >+ <vbox id="full-screen-approval-pane" align="center"> >+ <description class="full-screen-description" value="&fullscreenApproval.value;"/> >+ <hbox> >+ <button label="&fullscreenAllowButton.label;" >+ oncommand="FullScreen.setFullscreenAllowed(true);" >+ class="full-screen-approval-button"/> >+ <button label="&fullscreenExitButton.label;" >+ oncommand="FullScreen.setFullscreenAllowed(false);" >+ class="full-screen-approval-button"/> >+ </hbox> >+ <checkbox id="full-screen-remember-decision"/> >+ </vbox> >+ </vbox> >+ </hbox> >+ </hbox> >+ >+ <vbox id="browser-bottombox" layer="true"> >+ <notificationbox id="global-notificationbox"/> >+ <toolbar id="developer-toolbar" >+ class="devtools-toolbar" >+ hidden="true"> >+#ifdef XP_MACOSX >+ <toolbarbutton id="developer-toolbar-closebutton" >+ class="devtools-closebutton" >+ oncommand="DeveloperToolbar.hide();" >+ tooltiptext="&devToolbarCloseButton.tooltiptext;"/> >+#endif >+ <stack class="gclitoolbar-stack-node" flex="1"> >+ <textbox class="gclitoolbar-input-node" rows="1"/> >+ <hbox class="gclitoolbar-complete-node"/> >+ </stack> >+ <toolbarbutton id="developer-toolbar-toolbox-button" >+ class="developer-toolbar-button" >+ observes="devtoolsMenuBroadcaster_DevToolbox" >+ tooltiptext="&devToolbarToolsButton.tooltip;"/> >+#ifndef XP_MACOSX >+ <toolbarbutton id="developer-toolbar-closebutton" >+ class="devtools-closebutton" >+ oncommand="DeveloperToolbar.hide();" >+ tooltiptext="&devToolbarCloseButton.tooltiptext;"/> >+#endif >+ </toolbar> >+ >+ <toolbar id="addon-bar" >+ toolbarname="&addonBarCmd.label;" accesskey="&addonBarCmd.accesskey;" >+ collapsed="true" >+ class="toolbar-primary chromeclass-toolbar" >+ context="toolbar-context-menu" toolboxid="navigator-toolbox" >+ mode="icons" iconsize="small" defaulticonsize="small" >+ lockiconsize="true" >+ defaultset="addonbar-closebutton,spring,status-bar" >+ customizable="true" >+ key="key_toggleAddonBar"> >+ <toolbarbutton id="addonbar-closebutton" >+ tooltiptext="&addonBarCloseButton.tooltip;" >+ oncommand="setToolbarVisibility(this.parentNode, false);"/> >+ <statusbar id="status-bar" ordinal="1000"/> >+ </toolbar> >+ </vbox> >+ >+#ifndef XP_UNIX >+ <svg:svg height="0"> >+ <svg:clipPath id="windows-keyhole-forward-clip-path" clipPathUnits="objectBoundingBox"> >+ <svg:path d="M 0,0 C 0.16,0.11 0.28,0.29 0.28,0.5 0.28,0.71 0.16,0.89 0,1 L 1,1 1,0 0,0 z"/> >+ </svg:clipPath> >+ <svg:clipPath id="windows-urlbar-back-button-clip-path" clipPathUnits="userSpaceOnUse"> >+ <svg:path d="M 0,0 0,7.8 C 2.5,11 4,14 4,18 4,22 2.5,25 0,28 l 0,22 10000,0 0,-50 L 0,0 z"/> >+ </svg:clipPath> >+ </svg:svg> >+#endif >+#ifdef XP_MACOSX >+ <svg:svg height="0"> >+ <svg:clipPath id="osx-keyhole-forward-clip-path" clipPathUnits="objectBoundingBox"> >+ <svg:path d="M 0,0 C 0.15,0.12 0.25,0.3 0.25,0.5 0.25,0.7 0.15,0.88 0,1 L 1,1 1,0 0,0 z"/> >+ </svg:clipPath> >+ <svg:clipPath id="osx-urlbar-back-button-clip-path" clipPathUnits="userSpaceOnUse"> >+ <svg:path d="m 0,-5 0,4.03 C 3.6,1.8 6,6.1 6,11 6,16 3.6,20 0,23 l 0,27 10000,0 0,-55 L 0,-5 z"/> >+ </svg:clipPath> >+ <svg:clipPath id="osx-tab-ontop-left-curve-clip-path" clipPathUnits="userSpaceOnUse"> >+ <svg:path d="M 9,0 C 7.3,0 6,1.3 6,3 l 0,14 c 0,3 -2.2,5 -5,5 l -1,0 0,1 12,0 0,-1 0,-19 0,-3 -3,0 z"/> >+ </svg:clipPath> >+ <svg:clipPath id="osx-tab-ontop-right-curve-clip-path" clipPathUnits="userSpaceOnUse"> >+ <svg:path d="m 0,0 0,3 0,19 0,1 12,0 0,-1 -1,0 C 8.2,22 6,20 6,17 L 6,3 C 6,1.3 4.7,0 3,0 L 0,0 z"/> >+ </svg:clipPath> >+ <svg:clipPath id="osx-tab-onbottom-left-curve-clip-path" clipPathUnits="userSpaceOnUse"> >+ <svg:path d="m 0,0 0,1 1,0 c 2.8,0 5,2.2 5,5 l 0,14 c 0,2 1.3,3 3,3 l 3,0 0,-3 L 12,1 12,0 0,0 z"/> >+ </svg:clipPath> >+ <svg:clipPath id="osx-tab-onbottom-right-curve-clip-path" clipPathUnits="userSpaceOnUse"> >+ <svg:path d="m 0,0 0,1 0,19 0,3 3,0 c 1.7,0 3,-1 3,-3 L 6,6 C 6,3.2 8.2,1 11,1 L 12,1 12,0 0,0 z"/> >+ </svg:clipPath> >+ </svg:svg> >+#endif >+ >+</vbox> >+# <iframe id="tab-view"> is dynamically appended as the 2nd child of #tab-view-deck. >+# Introducing the iframe dynamically, as needed, was found to be better than >+# starting with an empty iframe here in browser.xul from a Ts standpoint. >+</deck> >+ >+</window> >diff --git a/browser/base/jar.mn b/browser/base/jar.mn >--- a/browser/base/jar.mn >+++ b/browser/base/jar.mn >@@ -53,16 +53,18 @@ browser.jar: > content/browser/abouthealthreport/abouthealth.css (content/abouthealthreport/abouthealth.css) > #endif > content/browser/aboutRobots-icon.png (content/aboutRobots-icon.png) > content/browser/aboutRobots-widget-left.png (content/aboutRobots-widget-left.png) > content/browser/aboutSocialError.xhtml (content/aboutSocialError.xhtml) > * content/browser/browser.css (content/browser.css) > * content/browser/browser.js (content/browser.js) > * content/browser/browser.xul (content/browser.xul) >+* content/browser/browser-kde.xul (content/browser-kde.xul) >+% override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde > * content/browser/browser-tabPreviews.xml (content/browser-tabPreviews.xml) > * content/browser/chatWindow.xul (content/chatWindow.xul) > content/browser/content.js (content/content.js) > content/browser/newtab/newTab.xul (content/newtab/newTab.xul) > * content/browser/newtab/newTab.js (content/newtab/newTab.js) > content/browser/newtab/newTab.css (content/newtab/newTab.css) > * content/browser/pageinfo/pageInfo.xul (content/pageinfo/pageInfo.xul) > content/browser/pageinfo/pageInfo.js (content/pageinfo/pageInfo.js) >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 >@@ -8,17 +8,17 @@ > #include "nsBrowserCompsCID.h" > #include "DirectoryProvider.h" > > #if defined(XP_WIN) > #include "nsWindowsShellService.h" > #elif defined(XP_MACOSX) > #include "nsMacShellService.h" > #elif defined(MOZ_WIDGET_GTK) >-#include "nsGNOMEShellService.h" >+#include "nsUnixShellService.h" > #endif > > #if defined(XP_WIN) > #include "nsIEHistoryEnumerator.h" > #endif > > #include "rdf.h" > #include "nsFeedSniffer.h" >@@ -31,18 +31,16 @@ using namespace mozilla::browser; > > ///////////////////////////////////////////////////////////////////////////// > > 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_GTK) >-NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init) > #endif > > #if defined(XP_WIN) > NS_GENERIC_FACTORY_CONSTRUCTOR(nsIEHistoryEnumerator) > #endif > > NS_GENERIC_FACTORY_CONSTRUCTOR(nsFeedSniffer) > >@@ -60,17 +58,17 @@ NS_DEFINE_NAMED_CID(NS_WINIEHISTORYENUME > NS_DEFINE_NAMED_CID(NS_SHELLSERVICE_CID); > #endif > > 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_GTK) >- { &kNS_SHELLSERVICE_CID, false, NULL, nsGNOMEShellServiceConstructor }, >+ { &kNS_SHELLSERVICE_CID, false, NULL, nsUnixShellServiceConstructor }, > #endif > { &kNS_FEEDSNIFFER_CID, false, NULL, nsFeedSnifferConstructor }, > { &kNS_BROWSER_ABOUT_REDIRECTOR_CID, false, NULL, AboutRedirector::Create }, > #if defined(XP_WIN) > { &kNS_WINIEHISTORYENUMERATOR_CID, false, NULL, nsIEHistoryEnumeratorConstructor }, > #elif defined(XP_MACOSX) > { &kNS_SHELLSERVICE_CID, false, NULL, nsMacShellServiceConstructor }, > #endif >diff --git a/browser/components/preferences/advanced.js b/browser/components/preferences/advanced.js >--- a/browser/components/preferences/advanced.js >+++ b/browser/components/preferences/advanced.js >@@ -23,16 +23,22 @@ var gAdvancedPane = { > if (extraArgs && extraArgs["advancedTab"]){ > advancedPrefs.selectedTab = document.getElementById(extraArgs["advancedTab"]); > } else { > var preference = document.getElementById("browser.preferences.advanced.selectedTabIndex"); > if (preference.value !== null) > advancedPrefs.selectedIndex = preference.value; > } > >+ var env = Components.classes["@mozilla.org/process/environment;1"] >+ .getService(Components.interfaces.nsIEnvironment); >+ var kde_session = 0; >+ if (env.get('KDE_FULL_SESSION') == "true") >+ kde_session = 1; >+ > #ifdef HAVE_SHELL_SERVICE > this.updateSetDefaultBrowser(); > #ifdef XP_WIN > // In Windows 8 we launch the control panel since it's the only > // way to get all file type association prefs. So we don't know > // when the user will select the default. We refresh here periodically > // in case the default changes. On other Windows OS's defaults can also > // be set while the prefs are open. >@@ -857,14 +863,25 @@ var gAdvancedPane = { > * Set browser as the operating system default browser. > */ > setDefaultBrowser: function() > { > let shellSvc = getShellService(); > if (!shellSvc) > return; > shellSvc.setDefaultBrowser(true, false); >+ if (kde_session == 1) { >+ var shellObj = Components.classes["@mozilla.org/file/local;1"] >+ .createInstance(Components.interfaces.nsILocalFile); >+ shellObj.initWithPath("/usr/bin/kwriteconfig"); >+ var process = Components.classes["@mozilla.org/process/util;1"] >+ .createInstance(Components.interfaces.nsIProcess); >+ process.init(shellObj); >+ var args = ["--file", "kdeglobals", "--group", "General", "--key", >+ "BrowserApplication", "MozillaFirefox"]; >+ process.run(false, args, args.length); >+ } > let selectedIndex = > shellSvc.isDefaultBrowser(false, true) ? 1 : 0; > document.getElementById("setDefaultPane").selectedIndex = selectedIndex; > } > #endif > }; >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 >@@ -17,10 +17,12 @@ DISABLED_EXTRA_COMPONENTS = nsSetDefault > > include $(topsrcdir)/config/rules.mk > > DEFINES += -DMOZ_APP_NAME=\"$(MOZ_APP_NAME)\" \ > -DMOZ_APP_VERSION=\"$(MOZ_APP_VERSION)\" > > CXXFLAGS += $(TK_CFLAGS) > >+LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre >+ > clobber:: > rm -f $(DIST)/lib/$(LIBRARY_NAME).lib >diff --git a/browser/components/shell/src/moz.build b/browser/components/shell/src/moz.build >--- a/browser/components/shell/src/moz.build >+++ b/browser/components/shell/src/moz.build >@@ -11,17 +11,19 @@ if CONFIG['OS_ARCH'] == 'WINNT': > 'nsWindowsShellService.cpp', > ] > elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa': > CPP_SOURCES += [ > 'nsMacShellService.cpp', > ] > elif CONFIG['MOZ_WIDGET_GTK']: > CPP_SOURCES += [ >+ 'nsUnixShellService.cpp', > 'nsGNOMEShellService.cpp', >+ 'nsKDEShellService.cpp' > ] > > if CPP_SOURCES: > LIBRARY_NAME = 'shellservice_s' > > EXTRA_COMPONENTS += [ > 'nsSetDefaultBrowser.js', > 'nsSetDefaultBrowser.manifest', >diff --git a/browser/components/shell/src/nsKDEShellService.cpp b/browser/components/shell/src/nsKDEShellService.cpp >new file mode 100644 >--- /dev/null >+++ b/browser/components/shell/src/nsKDEShellService.cpp >@@ -0,0 +1,234 @@ >+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ >+/* 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/. */ >+ >+#include "nsKDEShellService.h" >+#include "nsShellService.h" >+#include "nsKDEUtils.h" >+#include "nsCOMPtr.h" >+#include "nsIPrefService.h" >+#include "nsIProcess.h" >+#include "nsIFile.h" >+#include "nsServiceManagerUtils.h" >+#include "nsComponentManagerUtils.h" >+#include "nsIMutableArray.h" >+#include "nsISupportsPrimitives.h" >+#include "nsArrayUtils.h" >+ >+nsresult >+nsKDEShellService::Init() >+ { >+ if( !nsKDEUtils::kdeSupport()) >+ return NS_ERROR_NOT_AVAILABLE; >+ return NS_OK; >+ } >+ >+NS_IMPL_ISUPPORTS1(nsKDEShellService, nsIShellService) >+ >+NS_IMETHODIMP >+nsKDEShellService::IsDefaultBrowser(bool aStartupCheck, >+ bool aForAllTypes, >+ bool* aIsDefaultBrowser) >+ { >+ *aIsDefaultBrowser = false; >+ if (aStartupCheck) >+ mCheckedThisSession = true; >+ >+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID ); >+ if (!command) >+ return NS_ERROR_FAILURE; >+ >+ nsCOMPtr<nsISupportsCString> str = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); >+ if (!str) >+ return NS_ERROR_FAILURE; >+ >+ str->SetData( NS_LITERAL_CSTRING( "ISDEFAULTBROWSER" )); >+ command->AppendElement( str, false ); >+ >+ if( nsKDEUtils::command( command )) >+ *aIsDefaultBrowser = true; >+ return NS_OK; >+ } >+ >+NS_IMETHODIMP >+nsKDEShellService::SetDefaultBrowser(bool aClaimAllTypes, >+ bool aForAllUsers) >+ { >+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID ); >+ if (!command) >+ return NS_ERROR_FAILURE; >+ >+ nsCOMPtr<nsISupportsCString> cmdstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); >+ nsCOMPtr<nsISupportsCString> paramstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); >+ if (!cmdstr || !paramstr) >+ return NS_ERROR_FAILURE; >+ >+ cmdstr->SetData( NS_LITERAL_CSTRING( "SETDEFAULTBROWSER" )); >+ command->AppendElement( cmdstr, false ); >+ >+ paramstr->SetData( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" )); >+ command->AppendElement( paramstr, false ); >+ >+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; >+ } >+ >+NS_IMETHODIMP >+nsKDEShellService::GetShouldCheckDefaultBrowser(bool* aResult) >+{ >+ // If we've already checked, the browser has been started and this is a >+ // new window open, and we don't want to check again. >+ if (mCheckedThisSession) { >+ *aResult = false; >+ return NS_OK; >+ } >+ >+ nsCOMPtr<nsIPrefBranch> prefs; >+ nsCOMPtr<nsIPrefService> pserve(do_GetService(NS_PREFSERVICE_CONTRACTID)); >+ if (pserve) >+ pserve->GetBranch("", getter_AddRefs(prefs)); >+ >+ if (prefs) >+ prefs->GetBoolPref(PREF_CHECKDEFAULTBROWSER, aResult); >+ >+ return NS_OK; >+} >+ >+NS_IMETHODIMP >+nsKDEShellService::SetShouldCheckDefaultBrowser(bool aShouldCheck) >+{ >+ nsCOMPtr<nsIPrefBranch> prefs; >+ nsCOMPtr<nsIPrefService> pserve(do_GetService(NS_PREFSERVICE_CONTRACTID)); >+ if (pserve) >+ pserve->GetBranch("", getter_AddRefs(prefs)); >+ >+ if (prefs) >+ prefs->SetBoolPref(PREF_CHECKDEFAULTBROWSER, aShouldCheck); >+ >+ return NS_OK; >+} >+ >+NS_IMETHODIMP >+nsKDEShellService::GetCanSetDesktopBackground(bool* aResult) >+{ >+ *aResult = true; >+ return NS_OK; >+} >+ >+NS_IMETHODIMP >+nsKDEShellService::SetDesktopBackground(nsIDOMElement* aElement, >+ PRInt32 aPosition) >+ { >+ return NS_ERROR_NOT_IMPLEMENTED; >+ } >+ >+NS_IMETHODIMP >+nsKDEShellService::GetDesktopBackgroundColor(PRUint32 *aColor) >+ { >+ return NS_ERROR_NOT_IMPLEMENTED; >+ } >+ >+NS_IMETHODIMP >+nsKDEShellService::SetDesktopBackgroundColor(PRUint32 aColor) >+ { >+ return NS_ERROR_NOT_IMPLEMENTED; >+ } >+ >+NS_IMETHODIMP >+nsKDEShellService::OpenApplication(PRInt32 aApplication) >+ { >+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID ); >+ if (!command) >+ return NS_ERROR_FAILURE; >+ >+ nsCOMPtr<nsISupportsCString> str = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); >+ if (!str) >+ return NS_ERROR_FAILURE; >+ >+ if( aApplication == APPLICATION_MAIL ) >+ str->SetData( NS_LITERAL_CSTRING( "OPENMAIL" )); >+ else if( aApplication == APPLICATION_NEWS ) >+ str->SetData( NS_LITERAL_CSTRING( "OPENNEWS" )); >+ else >+ return NS_ERROR_NOT_IMPLEMENTED; >+ >+ command->AppendElement( str, false ); >+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; >+ } >+ >+NS_IMETHODIMP >+nsKDEShellService::OpenApplicationWithURI(nsIFile* aApplication, const nsACString& aURI) >+ { >+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID ); >+ if (!command) >+ return NS_ERROR_FAILURE; >+ >+ nsCOMPtr<nsISupportsCString> cmdstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); >+ nsCOMPtr<nsISupportsCString> appstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); >+ nsCOMPtr<nsISupportsCString> uristr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); >+ if (!cmdstr || !appstr || !uristr) >+ return NS_ERROR_FAILURE; >+ >+ cmdstr->SetData( NS_LITERAL_CSTRING( "RUN" )); >+ command->AppendElement( cmdstr, false ); >+ nsAutoCString app; >+ nsresult rv = aApplication->GetNativePath( app ); >+ NS_ENSURE_SUCCESS( rv, rv ); >+ appstr->SetData( app ); >+ command->AppendElement( appstr, false ); >+ uristr->SetData( aURI ); >+ command->AppendElement( uristr, false ); >+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE; >+ } >+ >+NS_IMETHODIMP >+nsKDEShellService::GetDefaultFeedReader(nsIFile** _retval) >+ { >+ *_retval = nullptr; >+ >+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID ); >+ if( !command ) >+ return NS_ERROR_FAILURE; >+ >+ nsCOMPtr<nsISupportsCString> str = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID ); >+ if( !str ) >+ return NS_ERROR_FAILURE; >+ >+ str->SetData( NS_LITERAL_CSTRING( "GETDEFAULTFEEDREADER" )); >+ command->AppendElement( str, false ); >+ >+ nsCOMPtr<nsIArray> output; >+ if( !nsKDEUtils::command( command, getter_AddRefs( output ) ) ) >+ return NS_ERROR_FAILURE; >+ >+ PRUint32 length; >+ output->GetLength( &length ); >+ if( length != 1 ) >+ return NS_ERROR_FAILURE; >+ >+ nsCOMPtr<nsISupportsCString> resstr = do_QueryElementAt( output, 0 ); >+ if( !resstr ) >+ return NS_ERROR_FAILURE; >+ >+ nsAutoCString path; >+ resstr->GetData( path ); >+ if (path.IsEmpty()) >+ return NS_ERROR_FAILURE; >+ >+ nsresult rv; >+ nsCOMPtr<nsIFile> defaultReader = >+ do_CreateInstance("@mozilla.org/file/local;1", &rv); >+ NS_ENSURE_SUCCESS(rv, rv); >+ >+ rv = defaultReader->InitWithNativePath(path); >+ NS_ENSURE_SUCCESS(rv, rv); >+ >+ bool exists; >+ rv = defaultReader->Exists(&exists); >+ NS_ENSURE_SUCCESS(rv, rv); >+ if (!exists) >+ return NS_ERROR_FAILURE; >+ >+ NS_ADDREF(*_retval = defaultReader); >+ return NS_OK; >+ } >diff --git a/browser/components/shell/src/nsKDEShellService.h b/browser/components/shell/src/nsKDEShellService.h >new file mode 100644 >--- /dev/null >+++ b/browser/components/shell/src/nsKDEShellService.h >@@ -0,0 +1,59 @@ >+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ >+/* ***** BEGIN LICENSE BLOCK ***** >+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 >+ * >+ * The contents of this file are subject to the Mozilla Public License Version >+ * 1.1 (the "License"); you may not use this file except in compliance with >+ * the License. You may obtain a copy of the License at >+ * http://www.mozilla.org/MPL/ >+ * >+ * Software distributed under the License is distributed on an "AS IS" basis, >+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License >+ * for the specific language governing rights and limitations under the >+ * License. >+ * >+ * The Original Code is Shell Service. >+ * >+ * The Initial Developer of the Original Code is mozilla.org. >+ * Portions created by the Initial Developer are Copyright (C) 2004 >+ * the Initial Developer. All Rights Reserved. >+ * >+ * Contributor(s): >+ * >+ * 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 >+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), >+ * in which case the provisions of the GPL or the LGPL are applicable instead >+ * of those above. If you wish to allow use of your version of this file only >+ * under the terms of either the GPL or the LGPL, and not to allow others to >+ * use your version of this file under the terms of the MPL, indicate your >+ * decision by deleting the provisions above and replace them with the notice >+ * and other provisions required by the GPL or the LGPL. If you do not delete >+ * the provisions above, a recipient may use your version of this file under >+ * the terms of any one of the MPL, the GPL or the LGPL. >+ * >+ * ***** END LICENSE BLOCK ***** */ >+ >+#ifndef nskdeshellservice_h____ >+#define nskdeshellservice_h____ >+ >+#include "nsIShellService.h" >+#include "nsStringAPI.h" >+ >+class nsKDEShellService : public nsIShellService >+{ >+public: >+ nsKDEShellService() : mCheckedThisSession(PR_FALSE) { } >+ >+ NS_DECL_ISUPPORTS >+ NS_DECL_NSISHELLSERVICE >+ >+ nsresult Init() NS_HIDDEN; >+ >+private: >+ ~nsKDEShellService() {} >+ >+ PRPackedBool mCheckedThisSession; >+}; >+ >+#endif // nskdeshellservice_h____ >diff --git a/browser/components/shell/src/nsUnixShellService.cpp b/browser/components/shell/src/nsUnixShellService.cpp >new file mode 100644 >--- /dev/null >+++ b/browser/components/shell/src/nsUnixShellService.cpp >@@ -0,0 +1,52 @@ >+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ >+/* ***** BEGIN LICENSE BLOCK ***** >+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 >+ * >+ * The contents of this file are subject to the Mozilla Public License Version >+ * 1.1 (the "License"); you may not use this file except in compliance with >+ * the License. You may obtain a copy of the License at >+ * http://www.mozilla.org/MPL/ >+ * >+ * Software distributed under the License is distributed on an "AS IS" basis, >+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License >+ * for the specific language governing rights and limitations under the >+ * License. >+ * >+ * The Original Code is Shell Service. >+ * >+ * The Initial Developer of the Original Code is mozilla.org. >+ * Portions created by the Initial Developer are Copyright (C) 2004 >+ * the Initial Developer. All Rights Reserved. >+ * >+ * Contributor(s): >+ * >+ * 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 >+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), >+ * in which case the provisions of the GPL or the LGPL are applicable instead >+ * of those above. If you wish to allow use of your version of this file only >+ * under the terms of either the GPL or the LGPL, and not to allow others to >+ * use your version of this file under the terms of the MPL, indicate your >+ * decision by deleting the provisions above and replace them with the notice >+ * and other provisions required by the GPL or the LGPL. If you do not delete >+ * the provisions above, a recipient may use your version of this file under >+ * the terms of any one of the MPL, the GPL or the LGPL. >+ * >+ * ***** END LICENSE BLOCK ***** */ >+ >+#include "nsUnixShellService.h" >+#include "nsGNOMEShellService.h" >+#include "nsKDEShellService.h" >+#include "nsKDEUtils.h" >+#include "mozilla/ModuleUtils.h" >+ >+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init) >+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsKDEShellService, Init) >+ >+NS_METHOD >+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult) >+{ >+ if( nsKDEUtils::kdeSupport()) >+ return nsKDEShellServiceConstructor( aOuter, aIID, aResult ); >+ return nsGNOMEShellServiceConstructor( aOuter, aIID, aResult ); >+} >diff --git a/browser/components/shell/src/nsUnixShellService.h b/browser/components/shell/src/nsUnixShellService.h >new file mode 100644 >--- /dev/null >+++ b/browser/components/shell/src/nsUnixShellService.h >@@ -0,0 +1,45 @@ >+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ >+/* ***** BEGIN LICENSE BLOCK ***** >+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1 >+ * >+ * The contents of this file are subject to the Mozilla Public License Version >+ * 1.1 (the "License"); you may not use this file except in compliance with >+ * the License. You may obtain a copy of the License at >+ * http://www.mozilla.org/MPL/ >+ * >+ * Software distributed under the License is distributed on an "AS IS" basis, >+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License >+ * for the specific language governing rights and limitations under the >+ * License. >+ * >+ * The Original Code is Shell Service. >+ * >+ * The Initial Developer of the Original Code is mozilla.org. >+ * Portions created by the Initial Developer are Copyright (C) 2004 >+ * the Initial Developer. All Rights Reserved. >+ * >+ * Contributor(s): >+ * >+ * 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 >+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), >+ * in which case the provisions of the GPL or the LGPL are applicable instead >+ * of those above. If you wish to allow use of your version of this file only >+ * under the terms of either the GPL or the LGPL, and not to allow others to >+ * use your version of this file under the terms of the MPL, indicate your >+ * decision by deleting the provisions above and replace them with the notice >+ * and other provisions required by the GPL or the LGPL. If you do not delete >+ * the provisions above, a recipient may use your version of this file under >+ * the terms of any one of the MPL, the GPL or the LGPL. >+ * >+ * ***** END LICENSE BLOCK ***** */ >+ >+#ifndef nsunixshellservice_h____ >+#define nsunixshellservice_h____ >+ >+#include "nsIShellService.h" >+ >+NS_METHOD >+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult); >+ >+#endif // nsunixshellservice_h____ >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 >@@ -601,19 +601,21 @@ > @BINPATH@/defaults/autoconfig/prefcalls.js > @BINPATH@/browser/defaults/profile/prefs.js > > #ifndef LIBXUL_SDK > ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325) > ; Technically this is an app pref file, but we are keeping it in the original > ; gre location for now. > @BINPATH@/defaults/pref/channel-prefs.js >+@BINPATH@/defaults/pref/kde.js > #else > ; For Fx-on-xr, channel-prefs lives with the app preferences. (Bug 762588) > @BINPATH@/@PREF_DIR@/channel-prefs.js >+@BINPATH@/@PREF_DIR@/kde.js > #endif > > ; Services (gre) prefs > #ifdef MOZ_SERVICES_NOTIFICATIONS > @BINPATH@/defaults/pref/services-notifications.js > #endif > #ifdef MOZ_SERVICES_SYNC > @BINPATH@/defaults/pref/services-sync.js
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 493722
:
364982
| 364984 |
364986
|
364988
|
364992