forked from pool/MozillaFirefox
173019002d
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=3e69777aeec00ffd41c1fc59a3d2a3e5
1170 lines
50 KiB
Diff
1170 lines
50 KiB
Diff
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
|
|
--- a/browser/app/Makefile.in
|
|
+++ b/browser/app/Makefile.in
|
|
@@ -44,16 +44,17 @@ srcdir = @srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
include $(DEPTH)/config/autoconf.mk
|
|
|
|
DIRS = profile/extensions
|
|
|
|
PREF_JS_EXPORTS = $(srcdir)/profile/firefox.js \
|
|
$(srcdir)/profile/channel-prefs.js \
|
|
+ $(srcdir)/profile/kde.js \
|
|
$(NULL)
|
|
|
|
|
|
# hardcode en-US for the moment
|
|
AB_CD = en-US
|
|
|
|
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 @@
|
|
+#filter substitution
|
|
+<?xml version="1.0"?>
|
|
+# -*- Mode: HTML -*-
|
|
+#
|
|
+# ***** 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 Mozilla Communicator client code, released
|
|
+# March 31, 1998.
|
|
+#
|
|
+# The Initial Developer of the Original Code is
|
|
+# Netscape Communications Corporation.
|
|
+# Portions created by the Initial Developer are Copyright (C) 1998-2000
|
|
+# the Initial Developer. All Rights Reserved.
|
|
+#
|
|
+# Contributor(s):
|
|
+# Blake Ross <blake@cs.stanford.edu>
|
|
+# David Hyatt <hyatt@mozilla.org>
|
|
+# Joe Hewitt <hewitt@netscape.com>
|
|
+# Pierre Chanial <chanial@noos.fr>
|
|
+# Dean Tessman <dean_tessman@hotmail.com>
|
|
+# Johnathan Nightingale <johnath@mozilla.com>
|
|
+# Dão Gottwald <dao@mozilla.com>
|
|
+# Ehsan Akhgari <ehsan.akhgari@gmail.com>
|
|
+# Robert Strong <robert.bugzilla@gmail.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
|
|
+# 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 *****
|
|
+
|
|
+<?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/" 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="BrowserStartup()" onunload="BrowserShutdown()" 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"
|
|
+ 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"/>
|
|
+
|
|
+#ifdef MOZ_SAFE_BROWSING
|
|
+<script type="application/x-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://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.
|
|
+#include browser-sets.inc
|
|
+
|
|
+ <popupset id="mainPopupSet">
|
|
+ <menupopup id="backForwardMenu"
|
|
+ onpopupshowing="return FillHistoryMenu(event.target);"
|
|
+ oncommand="gotoHistoryIndex(event);"
|
|
+ onclick="checkForMiddleClick(this, event);"/>
|
|
+ <tooltip id="aHTMLTooltip" onpopupshowing="return FillInHTMLTooltip(document.tooltipNode);"/>
|
|
+
|
|
+ <!-- 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"/>
|
|
+
|
|
+ <panel id="editBookmarkPanel"
|
|
+ orient="vertical"
|
|
+ ignorekeys="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="editBookmarkPanelUndoRemoveButton"
|
|
+ class="editBookmarkPanelHeaderButton"
|
|
+ hidden="true"
|
|
+ oncommand="StarUI.undoRemoveBookmarkCommand();"
|
|
+ label="&editBookmark.undo.label;"
|
|
+ accesskey="&editBookmark.undo.accessKey;"/>
|
|
+ <button id="editBookmarkPanelRemoveButton"
|
|
+ class="editBookmarkPanelHeaderButton"
|
|
+ oncommand="StarUI.removeBookmarkButtonCommand();"
|
|
+ accesskey="&editBookmark.removeBookmark.accessKey;"/>
|
|
+ <button id="editBookmarkPanelEditButton"
|
|
+ class="editBookmarkPanelHeaderButton"
|
|
+ oncommand="StarUI.editButtonCommand();"
|
|
+ label="&editBookmark.edit.label;"
|
|
+ accesskey="&editBookmark.edit.accessKey;"/>
|
|
+ </hbox>
|
|
+ </vbox>
|
|
+ </row>
|
|
+ <vbox id="editBookmarkPanelContent" flex="1" hidden="true"/>
|
|
+ <hbox id="editBookmarkPanelBottomButtons" pack="end">
|
|
+#ifndef 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();"/>
|
|
+#elif XP_UNIX_GNOME
|
|
+ <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();"/>
|
|
+#else
|
|
+ <button id="editBookmarkPanelDoneButton"
|
|
+ label="&editBookmark.done.label;"
|
|
+ default="true"
|
|
+ oncommand="StarUI.panel.hidePopup();"/>
|
|
+ <button id="editBookmarkPanelDeleteButton"
|
|
+ label="&editBookmark.cancel.label;"
|
|
+ oncommand="StarUI.cancelButtonOnCommand();"/>
|
|
+#endif
|
|
+ </hbox>
|
|
+ </panel>
|
|
+
|
|
+ <popup id="toolbar-context-menu"
|
|
+ onpopupshowing="onViewToolbarsPopupShowing(event);">
|
|
+ <menuseparator/>
|
|
+ <menuitem command="cmd_CustomizeToolbars"
|
|
+ label="&viewCustomizeToolbar.label;"
|
|
+ accesskey="&viewCustomizeToolbar.accesskey;"/>
|
|
+ </popup>
|
|
+
|
|
+ <popup id="blockedPopupOptions"
|
|
+ onpopupshowing="gPopupBlockerObserver.fillPopupList(event);">
|
|
+ <menuitem observes="blockedPopupAllowSite"/>
|
|
+ <menuitem observes="blockedPopupEditSettings"/>
|
|
+ <menuitem observes="blockedPopupDontShowMessage"/>
|
|
+ <menuseparator observes="blockedPopupsSeparator"/>
|
|
+ </popup>
|
|
+
|
|
+ <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>
|
|
+
|
|
+ <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(); }">
|
|
+#include browser-context.inc
|
|
+ </popup>
|
|
+
|
|
+ <popup id="placesContext"/>
|
|
+
|
|
+ <!-- Popup for site identity information -->
|
|
+ <panel id="identity-popup" position="after_start" hidden="true" noautofocus="true"
|
|
+ onpopupshown="document.getElementById('identity-popup-more-info-button').focus();"
|
|
+ level="top">
|
|
+ <hbox id="identity-popup-container" align="top">
|
|
+ <image id="identity-popup-icon"/>
|
|
+ <vbox id="identity-popup-content-box">
|
|
+ <label id="identity-popup-connectedToLabel"
|
|
+ class="identity-popup-label"
|
|
+ value="&identity.connectedTo;"/>
|
|
+ <label id="identity-popup-connectedToLabel2"
|
|
+ class="identity-popup-label"
|
|
+ value="&identity.unverifiedsite2;"/>
|
|
+ <description id="identity-popup-content-host"
|
|
+ class="identity-popup-description"/>
|
|
+ <label id="identity-popup-runByLabel"
|
|
+ class="identity-popup-label"
|
|
+ value="&identity.runBy;"/>
|
|
+ <description id="identity-popup-content-owner"
|
|
+ class="identity-popup-description"/>
|
|
+ <description id="identity-popup-content-supplemental"
|
|
+ class="identity-popup-description"/>
|
|
+ <description id="identity-popup-content-verifier"
|
|
+ class="identity-popup-description"/>
|
|
+ <hbox id="identity-popup-encryption" flex="1">
|
|
+ <vbox>
|
|
+ <image id="identity-popup-encryption-icon"/>
|
|
+ </vbox>
|
|
+ <description id="identity-popup-encryption-label" flex="1"
|
|
+ class="identity-popup-description"/>
|
|
+ </hbox>
|
|
+ <!-- Footer button to open security page info -->
|
|
+ <hbox pack="end">
|
|
+ <button id="identity-popup-more-info-button"
|
|
+ label="&identity.moreInfoLinkText;"
|
|
+ onblur="gIdentityHandler.hideIdentityPopup();"
|
|
+ oncommand="gIdentityHandler.handleMoreInfoClick(event);"/>
|
|
+ </hbox>
|
|
+ </vbox>
|
|
+ </hbox>
|
|
+ </panel>
|
|
+
|
|
+ <tooltip id="urlTooltip">
|
|
+ <label crop="center" flex="1" class="tooltip-label"/>
|
|
+ </tooltip>
|
|
+
|
|
+ <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>
|
|
+
|
|
+ <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"/>
|
|
+ <textbox id="allTabs-filter"
|
|
+ tooltiptext="&allTabs.filter.emptyText;"
|
|
+ type="search"
|
|
+ oncommand="allTabs.filter();"/>
|
|
+ <spacer flex="1"/>
|
|
+ <toolbarbutton class="KUI-panel-closebutton"
|
|
+ oncommand="allTabs.close()"
|
|
+ tooltiptext="&closeCmd.label;"/>
|
|
+ </hbox>
|
|
+ <stack id="allTabs-stack">
|
|
+ <box id="allTabs-container"/>
|
|
+ <toolbarbutton id="allTabs-tab-close-button"
|
|
+ class="tab-close-button"
|
|
+ oncommand="allTabs.closeTab(event);"
|
|
+ tooltiptext="&closeCmd.label;"
|
|
+ style="visibility:hidden"/>
|
|
+ </stack>
|
|
+ </panel>
|
|
+ </popupset>
|
|
+
|
|
+ <!-- Bookmarks and history tooltip -->
|
|
+ <tooltip id="bhTooltip"/>
|
|
+
|
|
+ <toolbox id="navigator-toolbox" class="toolbox-top" mode="icons"
|
|
+#ifdef WINCE
|
|
+ defaulticonsize="small" iconsize="small"
|
|
+#endif
|
|
+ defaultmode="icons">
|
|
+ <!-- Menu -->
|
|
+ <toolbar type="menubar" id="toolbar-menubar" class="chromeclass-menubar" customizable="true"
|
|
+ defaultset="menubar-items"
|
|
+ mode="icons" iconsize="small" defaulticonsize="small"
|
|
+#ifdef XP_WIN
|
|
+ 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>
|
|
+ </toolbar>
|
|
+
|
|
+ <toolbarpalette id="BrowserToolbarPalette">
|
|
+
|
|
+ <toolbaritem id="unified-back-forward-button" class="chromeclass-toolbar-additional"
|
|
+ context="backForwardMenu">
|
|
+ <toolbarbutton id="back-button" class="toolbarbutton-1"
|
|
+ label="&backCmd.label;"
|
|
+ command="Browser:BackOrBackDuplicate"
|
|
+ onclick="checkForMiddleClick(this, event);"
|
|
+ tooltiptext="&backButton.tooltip;"/>
|
|
+ <toolbarbutton id="forward-button" class="toolbarbutton-1"
|
|
+ label="&forwardCmd.label;"
|
|
+ command="Browser:ForwardOrForwardDuplicate"
|
|
+ onclick="checkForMiddleClick(this, event);"
|
|
+ tooltiptext="&forwardButton.tooltip;"/>
|
|
+ <toolbarbutton id="back-forward-dropmarker" type="menu"
|
|
+ disabled="true" tooltiptext="&backForwardMenu.tooltip;"
|
|
+ onbroadcast="if (this.disabled) this.disabled =
|
|
+ document.getElementById('Browser:Back').hasAttribute('disabled') &&
|
|
+ document.getElementById('Browser:Forward').hasAttribute('disabled');">
|
|
+ <!-- bug 415444: event.stopPropagation is here for the cloned version of
|
|
+ this menupopup -->
|
|
+ <menupopup context=""
|
|
+ position="after_start"
|
|
+ onpopupshowing="return FillHistoryMenu(event.target);"
|
|
+ oncommand="gotoHistoryIndex(event); event.stopPropagation();"
|
|
+ onclick="checkForMiddleClick(this, event);"/>
|
|
+ <observes element="Browser:Back" attribute="disabled"/>
|
|
+ <observes element="Browser:Forward" attribute="disabled"/>
|
|
+ </toolbarbutton>
|
|
+ </toolbaritem>
|
|
+
|
|
+ <toolbarbutton id="reload-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
|
|
+ label="&reloadCmd.label;"
|
|
+ command="Browser:ReloadOrDuplicate"
|
|
+ onclick="checkForMiddleClick(this, event);"
|
|
+ tooltiptext="&reloadButton.tooltip;"/>
|
|
+
|
|
+ <toolbarbutton id="stop-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
|
|
+ label="&stopCmd.label;"
|
|
+ command="Browser:Stop"
|
|
+ tooltiptext="&stopButton.tooltip;"/>
|
|
+
|
|
+ <toolbarbutton id="home-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
|
|
+ persist="class"
|
|
+ label="&homeButton.label;"
|
|
+ ondragover="homeButtonObserver.onDragOver(event)"
|
|
+ ondragenter="homeButtonObserver.onDragOver(event)"
|
|
+ ondrop="homeButtonObserver.onDrop(event)"
|
|
+ ondragleave="homeButtonObserver.onDragLeave(event)"
|
|
+ onclick="BrowserGoHome(event);"/>
|
|
+
|
|
+ <toolbaritem id="urlbar-container" align="center" flex="400" persist="width"
|
|
+ title="&locationItem.title;" class="chromeclass-location">
|
|
+ <textbox id="urlbar" flex="1"
|
|
+ bookmarkhistoryemptytext="&urlbar.bookmarkhistory.emptyText;"
|
|
+ bookmarkemptytext="&urlbar.bookmark.emptyText;"
|
|
+ historyemptytext="&urlbar.history.emptyText;"
|
|
+ noneemptytext="&urlbar.none.emptyText;"
|
|
+ type="autocomplete"
|
|
+ autocompletesearch="history"
|
|
+ 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"
|
|
+ onsearchbegin="LocationBarHelpers._searchBegin();"
|
|
+ onsearchcomplete="LocationBarHelpers._searchComplete();"
|
|
+ onfocus="document.getElementById('identity-box').style.MozUserFocus= 'normal'"
|
|
+ onblur="setTimeout(function() document.getElementById('identity-box').style.MozUserFocus = '', 0);">
|
|
+ <!-- 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"
|
|
+ onclick="gIdentityHandler.handleIdentityButtonEvent(event);"
|
|
+ onkeypress="gIdentityHandler.handleIdentityButtonEvent(event);">
|
|
+ <hbox id="identity-box-inner" align="center">
|
|
+ <stack id="page-proxy-stack"
|
|
+ onclick="PageProxyClickHandler(event);">
|
|
+ <image id="urlbar-throbber" busy="false"/>
|
|
+ <image id="page-proxy-favicon" validate="never"
|
|
+ pageproxystate="invalid"
|
|
+ ondragstart="proxyIconDNDObserver.onDragStart(event);"
|
|
+ onerror="this.removeAttribute('src');"/>
|
|
+ </stack>
|
|
+ <label id="identity-icon-label" crop="center" flex="1"/>
|
|
+ </hbox>
|
|
+ </box>
|
|
+ <hbox id="urlbar-icons">
|
|
+ <button type="menu"
|
|
+ style="-moz-user-focus: none"
|
|
+ class="plain urlbar-icon"
|
|
+ id="feed-button"
|
|
+ collapsed="true"
|
|
+ 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);"/>
|
|
+ </button>
|
|
+ <image id="star-button"
|
|
+ class="urlbar-icon"
|
|
+ onclick="PlacesStarButton.onClick(event);"/>
|
|
+ <image id="go-button"
|
|
+ class="urlbar-icon"
|
|
+ tooltiptext="&goEndCap.tooltip;"
|
|
+ onclick="gURLBar.handleCommand(event);"/>
|
|
+ </hbox>
|
|
+ </textbox>
|
|
+ </toolbaritem>
|
|
+
|
|
+ <toolbaritem id="search-container" title="&searchItem.title;"
|
|
+ align="center" class="chromeclass-toolbar-additional"
|
|
+ flex="100" persist="width">
|
|
+ <searchbar id="searchbar" flex="1"/>
|
|
+ </toolbaritem>
|
|
+
|
|
+ <toolbarbutton id="print-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
|
|
+ label="&printButton.label;" command="cmd_print"
|
|
+ tooltiptext="&printButton.tooltip;"/>
|
|
+
|
|
+ <toolbaritem id="navigator-throbber" title="&throbberItem.title;" align="center" pack="center"
|
|
+ mousethrough="always">
|
|
+ <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="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="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="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;"/>
|
|
+ <toolbarbutton id="fullscreen-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
|
|
+ observes="View:FullScreen"
|
|
+ type="checkbox"
|
|
+ label="&fullScreenCmd.label;"
|
|
+ tooltiptext="&fullScreenButton.tooltip;"/>
|
|
+ </toolbarpalette>
|
|
+
|
|
+ <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="restore-button" class="toolbarbutton-1"
|
|
+ tooltiptext="&fullScreenRestore.tooltip;"
|
|
+ oncommand="BrowserFullScreen();"/>
|
|
+
|
|
+ <toolbarbutton id="close-button" class="toolbarbutton-1"
|
|
+ tooltiptext="&fullScreenClose.tooltip;"
|
|
+ oncommand="BrowserTryToCloseWindow();"/>
|
|
+ </hbox>
|
|
+ </toolbar>
|
|
+
|
|
+ <toolbarset id="customToolbars" context="toolbar-context-menu"/>
|
|
+
|
|
+ <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"/>
|
|
+ </toolbox>
|
|
+
|
|
+ <hbox flex="1" id="browser">
|
|
+ <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" hidden="true"/>
|
|
+ <vbox id="appcontent" flex="1">
|
|
+ <tabbrowser id="content" disablehistory="true"
|
|
+ flex="1" contenttooltip="aHTMLTooltip"
|
|
+ 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"/>
|
|
+ </statusbarpanel>
|
|
+ <statusbarpanel id="download-monitor" class="statusbarpanel-iconic-text"
|
|
+ tooltiptext="&downloadMonitor2.tooltip;" hidden="true"
|
|
+ command="Tools:Downloads"/>
|
|
+ <statusbarpanel id="security-button" class="statusbarpanel-iconic"
|
|
+ hidden="true"
|
|
+ onclick="if (event.button == 0 && event.detail == 1) displaySecurityInfo();"/>
|
|
+ <statusbarpanel id="page-report-button" type="menu"
|
|
+ class="statusbarpanel-menu-iconic"
|
|
+ hidden="true"
|
|
+ tooltiptext="&pageReportIcon.tooltip;">
|
|
+ <menupopup onpopupshowing="gPopupBlockerObserver.fillPopupList(event);">
|
|
+ <menuitem observes="blockedPopupAllowSite"/>
|
|
+ <menuitem observes="blockedPopupEditSettings"/>
|
|
+ <menuitem observes="blockedPopupDontShowMessage"/>
|
|
+ <menuseparator observes="blockedPopupsSeparator"/>
|
|
+ </menupopup>
|
|
+ </statusbarpanel>
|
|
+ </statusbar>
|
|
+ </vbox>
|
|
+</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:
|
|
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)
|
|
+* 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/credits.xhtml (content/credits.xhtml)
|
|
* content/browser/fullscreen-video.xhtml (content/fullscreen-video.xhtml)
|
|
* 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/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"
|
|
|
|
#if defined(XP_WIN)
|
|
#include "nsWindowsShellService.h"
|
|
#elif defined(XP_MACOSX)
|
|
#include "nsMacShellService.h"
|
|
#elif defined(MOZ_WIDGET_GTK2)
|
|
-#include "nsGNOMEShellService.h"
|
|
+#include "nsUnixShellService.h"
|
|
#endif
|
|
|
|
#ifndef WINCE
|
|
|
|
#include "nsProfileMigrator.h"
|
|
#if !defined(XP_BEOS)
|
|
#include "nsDogbertProfileMigrator.h"
|
|
#endif
|
|
@@ -85,17 +85,18 @@ using namespace mozilla::browser;
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
NS_GENERIC_FACTORY_CONSTRUCTOR(nsPlacesImportExportService)
|
|
#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)
|
|
#endif
|
|
|
|
#ifndef WINCE
|
|
|
|
#if !defined(XP_BEOS)
|
|
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},
|
|
|
|
#elif defined(MOZ_WIDGET_GTK2)
|
|
{ "Browser Shell Service",
|
|
NS_SHELLSERVICE_CID,
|
|
NS_SHELLSERVICE_CONTRACTID,
|
|
- nsGNOMEShellServiceConstructor },
|
|
+ nsUnixShellServiceConstructor },
|
|
|
|
#endif
|
|
|
|
|
|
{ "Places Import/Export Service",
|
|
NS_PLACESIMPORTEXPORTSERVICE_CID,
|
|
NS_PLACESIMPORTEXPORTSERVICE_CONTRACTID,
|
|
nsPlacesImportExportServiceConstructor},
|
|
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)
|
|
else
|
|
ifneq (,$(filter mac 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
|
|
endif
|
|
|
|
ifdef CPPSRCS
|
|
LIBRARY_NAME = shellservice_s
|
|
endif
|
|
|
|
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,193 @@
|
|
+/* -*- 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 "nsKDEShellService.h"
|
|
+#include "nsShellService.h"
|
|
+#include "nsKDEUtils.h"
|
|
+#include "nsCOMPtr.h"
|
|
+#include "nsIPrefService.h"
|
|
+#include "nsIProcess.h"
|
|
+#include "nsILocalFile.h"
|
|
+#include "nsServiceManagerUtils.h"
|
|
+#include "nsComponentManagerUtils.h"
|
|
+
|
|
+nsresult
|
|
+nsKDEShellService::Init()
|
|
+ {
|
|
+ if( !nsKDEUtils::kdeSupport())
|
|
+ return NS_ERROR_NOT_AVAILABLE;
|
|
+ return NS_OK;
|
|
+ }
|
|
+
|
|
+NS_IMPL_ISUPPORTS1(nsKDEShellService, nsIShellService)
|
|
+
|
|
+NS_IMETHODIMP
|
|
+nsKDEShellService::IsDefaultBrowser(PRBool aStartupCheck,
|
|
+ PRBool* aIsDefaultBrowser)
|
|
+ {
|
|
+ *aIsDefaultBrowser = PR_FALSE;
|
|
+ if (aStartupCheck)
|
|
+ mCheckedThisSession = PR_TRUE;
|
|
+ nsCStringArray command;
|
|
+ command.AppendCString( NS_LITERAL_CSTRING( "ISDEFAULTBROWSER" ));
|
|
+ if( nsKDEUtils::command( command ))
|
|
+ *aIsDefaultBrowser = PR_TRUE;
|
|
+ return NS_OK;
|
|
+ }
|
|
+
|
|
+NS_IMETHODIMP
|
|
+nsKDEShellService::SetDefaultBrowser(PRBool aClaimAllTypes,
|
|
+ PRBool aForAllUsers)
|
|
+ {
|
|
+ nsCStringArray command;
|
|
+ command.AppendCString( NS_LITERAL_CSTRING( "SETDEFAULTBROWSER" ));
|
|
+ command.AppendCString( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" ));
|
|
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
|
+ }
|
|
+
|
|
+NS_IMETHODIMP
|
|
+nsKDEShellService::GetShouldCheckDefaultBrowser(PRBool* 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 = PR_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(PRBool 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::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)
|
|
+ {
|
|
+ nsCStringArray command;
|
|
+ if( aApplication == APPLICATION_MAIL )
|
|
+ command.AppendCString( NS_LITERAL_CSTRING( "OPENMAIL" ));
|
|
+ else if( aApplication == APPLICATION_NEWS )
|
|
+ command.AppendCString( NS_LITERAL_CSTRING( "OPENNEWS" ));
|
|
+ else
|
|
+ return NS_ERROR_NOT_IMPLEMENTED;
|
|
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
|
+ }
|
|
+
|
|
+NS_IMETHODIMP
|
|
+nsKDEShellService::OpenApplicationWithURI(nsILocalFile* aApplication, const nsACString& aURI)
|
|
+ {
|
|
+ nsCStringArray command;
|
|
+ command.AppendCString( NS_LITERAL_CSTRING( "RUN" ));
|
|
+ nsCString app;
|
|
+ nsresult rv = aApplication->GetNativePath( app );
|
|
+ NS_ENSURE_SUCCESS( rv, rv );
|
|
+ command.AppendCString( app );
|
|
+ command.AppendCString( aURI );
|
|
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
|
+ }
|
|
+
|
|
+NS_IMETHODIMP
|
|
+nsKDEShellService::GetDefaultFeedReader(nsILocalFile** _retval)
|
|
+ {
|
|
+ *_retval = nsnull;
|
|
+
|
|
+ nsCStringArray command;
|
|
+ command.AppendCString( NS_LITERAL_CSTRING( "GETDEFAULTFEEDREADER" ));
|
|
+ nsCStringArray output;
|
|
+ if( !nsKDEUtils::command( command, &output ) || output.Count() != 1 )
|
|
+ return NS_ERROR_FAILURE;
|
|
+
|
|
+ nsCString path;
|
|
+ path = *output[ 0 ];
|
|
+ if (path.IsEmpty())
|
|
+ return NS_ERROR_FAILURE;
|
|
+
|
|
+ nsresult rv;
|
|
+ nsCOMPtr<nsILocalFile> defaultReader =
|
|
+ do_CreateInstance("@mozilla.org/file/local;1", &rv);
|
|
+ NS_ENSURE_SUCCESS(rv, rv);
|
|
+
|
|
+ rv = defaultReader->InitWithNativePath(path);
|
|
+ NS_ENSURE_SUCCESS(rv, rv);
|
|
+
|
|
+ PRBool 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 "nsIGenericFactory.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
|
|
@@ -400,16 +400,17 @@
|
|
@BINPATH@/icons/*.png
|
|
#endif
|
|
|
|
; [Default Preferences]
|
|
; All the pref files must be part of base to prevent migration bugs
|
|
@BINPATH@/@PREF_DIR@/firefox.js
|
|
@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
|
|
@BINPATH@/defaults/autoconfig/platform.js
|
|
@BINPATH@/defaults/autoconfig/prefcalls.js
|
|
|
|
; [Layout Engine Resources]
|
|
; Style Sheets, Graphics and other Resources used by the layout engine.
|