firefox-kde.patch
branchfirefox68
changeset 1097 840132a4a9b3
parent 1093 3942c205588b
child 1099 8a3c73e74e65
equal deleted inserted replaced
1096:4c248180e576 1097:840132a4a9b3
     1 # HG changeset patch
     1 # HG changeset patch
     2 # Parent  18632e53d0b0c4c03f254ca2dbbeac8f48ec6f5c
     2 # User msirringhaus@suse.de
       
     3 # Date 1559300151 -7200
       
     4 #      Fri May 31 12:55:51 2019 +0200
       
     5 # Node ID 54d41b0033b8d649d842a1f862c6fed8b9874dec
       
     6 # Parent  428161c3b9599083e1b8710eda1760f1f707ab11
       
     7 How to apply this patch:
       
     8 1. Import and apply it
       
     9 2. cp browser/base/content/browser.xul browser/base/content/browser-kde.xul
       
    10 3. Find editBookmarkPanelDoneButton
       
    11 4. Replace #ifndef with #ifdef in the line above (this hanges the button order from Gnome-style to KDE-style)
       
    12 5. hg qrefresh
     3 
    13 
     4 diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
    14 diff -r 428161c3b959 -r 54d41b0033b8 browser/base/content/browser-kde.xul
     5 new file mode 100644
    15 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6 --- /dev/null
    16 +++ b/browser/base/content/browser-kde.xul	Fri May 31 12:55:51 2019 +0200
     7 +++ b/browser/base/content/browser-kde.xul
    17 @@ -0,0 +1,1375 @@
     8 @@ -0,0 +1,1404 @@
       
     9 +#filter substitution
    18 +#filter substitution
    10 +<?xml version="1.0"?>
    19 +<?xml version="1.0"?>
    11 +# -*- Mode: HTML -*-
    20 +# -*- Mode: HTML -*-
    12 +#
    21 +#
    13 +# This Source Code Form is subject to the terms of the Mozilla Public
    22 +# This Source Code Form is subject to the terms of the Mozilla Public
    35 +<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUI.css" type="text/css"?>
    44 +<?xml-stylesheet href="chrome://browser/skin/customizableui/panelUI.css" type="text/css"?>
    36 +<?xml-stylesheet href="chrome://browser/skin/downloads/downloads.css" type="text/css"?>
    45 +<?xml-stylesheet href="chrome://browser/skin/downloads/downloads.css" type="text/css"?>
    37 +<?xml-stylesheet href="chrome://browser/skin/searchbar.css" type="text/css"?>
    46 +<?xml-stylesheet href="chrome://browser/skin/searchbar.css" type="text/css"?>
    38 +<?xml-stylesheet href="chrome://browser/skin/places/tree-icons.css" type="text/css"?>
    47 +<?xml-stylesheet href="chrome://browser/skin/places/tree-icons.css" type="text/css"?>
    39 +<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css" type="text/css"?>
    48 +<?xml-stylesheet href="chrome://browser/skin/places/editBookmark.css" type="text/css"?>
    40 +<?xml-stylesheet href="chrome://browser/skin/compacttheme.css" type="text/css" alternate="yes" title="Light/Dark"?>
       
    41 +
    49 +
    42 +# All DTD information is stored in a separate file so that it can be shared by
    50 +# All DTD information is stored in a separate file so that it can be shared by
    43 +# hiddenWindow.xul.
    51 +# hiddenWindow.xul.
    44 +<!DOCTYPE window [
    52 +<!DOCTYPE window [
    45 +#include browser-doctype.inc
    53 +#include browser-doctype.inc
    87 +# All JS files which are needed by browser.xul and other top level windows to
    95 +# All JS files which are needed by browser.xul and other top level windows to
    88 +# support MacOS specific features *must* go into the global-scripts.inc file so
    96 +# support MacOS specific features *must* go into the global-scripts.inc file so
    89 +# that they can be shared with macWindow.inc.xul.
    97 +# that they can be shared with macWindow.inc.xul.
    90 +#include global-scripts.inc
    98 +#include global-scripts.inc
    91 +
    99 +
    92 +<script type="application/javascript">
   100 +<script>
    93 +  Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
   101 +  Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
    94 +  Services.scriptloader.loadSubScript("chrome://browser/content/browser-captivePortal.js", this);
   102 +  Services.scriptloader.loadSubScript("chrome://browser/content/browser-captivePortal.js", this);
    95 +  Services.scriptloader.loadSubScript("chrome://browser/content/browser-compacttheme.js", this);
       
    96 +  Services.scriptloader.loadSubScript("chrome://browser/content/browser-contentblocking.js", this);
   103 +  Services.scriptloader.loadSubScript("chrome://browser/content/browser-contentblocking.js", this);
    97 +#ifdef MOZ_DATA_REPORTING
   104 +#ifdef MOZ_DATA_REPORTING
    98 +  Services.scriptloader.loadSubScript("chrome://browser/content/browser-data-submission-info-bar.js", this);
   105 +  Services.scriptloader.loadSubScript("chrome://browser/content/browser-data-submission-info-bar.js", this);
    99 +#endif
   106 +#endif
   100 +#ifndef MOZILLA_OFFICIAL
   107 +#ifndef MOZILLA_OFFICIAL
   131 +
   138 +
   132 +  <popupset id="mainPopupSet">
   139 +  <popupset id="mainPopupSet">
   133 +    <menupopup id="tabContextMenu"
   140 +    <menupopup id="tabContextMenu"
   134 +               onpopupshowing="if (event.target == this) TabContextMenu.updateContextMenu(this);"
   141 +               onpopupshowing="if (event.target == this) TabContextMenu.updateContextMenu(this);"
   135 +               onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;">
   142 +               onpopuphidden="if (event.target == this) TabContextMenu.contextTab = null;">
   136 +      <menuitem id="context_reloadTab" label="&reloadTab.label;" accesskey="&reloadTab.accesskey;"
   143 +      <menuitem id="context_reloadTab" data-lazy-l10n-id="reload-tab"
   137 +                oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
   144 +                oncommand="gBrowser.reloadTab(TabContextMenu.contextTab);"/>
   138 +      <menuitem id="context_reloadSelectedTabs" label="&reloadTabs.label;" hidden="true"
   145 +      <menuitem id="context_reloadSelectedTabs" data-lazy-l10n-id="reload-tabs" hidden="true"
   139 +                accesskey="&reloadTabs.accesskey;"
       
   140 +                oncommand="gBrowser.reloadMultiSelectedTabs();"/>
   146 +                oncommand="gBrowser.reloadMultiSelectedTabs();"/>
   141 +      <menuitem id="context_toggleMuteTab" oncommand="TabContextMenu.contextTab.toggleMuteAudio();"/>
   147 +      <menuitem id="context_toggleMuteTab" oncommand="TabContextMenu.contextTab.toggleMuteAudio();"/>
   142 +      <menuitem id="context_toggleMuteSelectedTabs" hidden="true"
   148 +      <menuitem id="context_toggleMuteSelectedTabs" hidden="true"
   143 +                oncommand="gBrowser.toggleMuteAudioOnMultiSelectedTabs(TabContextMenu.contextTab);"/>
   149 +                oncommand="gBrowser.toggleMuteAudioOnMultiSelectedTabs(TabContextMenu.contextTab);"/>
   144 +      <menuitem id="context_pinTab" label="&pinTab.label;"
   150 +      <menuitem id="context_pinTab" data-lazy-l10n-id="pin-tab"
   145 +                accesskey="&pinTab.accesskey;"
       
   146 +                oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/>
   151 +                oncommand="gBrowser.pinTab(TabContextMenu.contextTab);"/>
   147 +      <menuitem id="context_unpinTab" label="&unpinTab.label;" hidden="true"
   152 +      <menuitem id="context_unpinTab" data-lazy-l10n-id="unpin-tab" hidden="true"
   148 +                accesskey="&unpinTab.accesskey;"
       
   149 +                oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
   153 +                oncommand="gBrowser.unpinTab(TabContextMenu.contextTab);"/>
   150 +      <menuitem id="context_pinSelectedTabs" label="&pinSelectedTabs.label;" hidden="true"
   154 +      <menuitem id="context_pinSelectedTabs" data-lazy-l10n-id="pin-selected-tabs" hidden="true"
   151 +                accesskey="&pinSelectedTabs.accesskey;"
       
   152 +                oncommand="gBrowser.pinMultiSelectedTabs();"/>
   155 +                oncommand="gBrowser.pinMultiSelectedTabs();"/>
   153 +      <menuitem id="context_unpinSelectedTabs" label="&unpinSelectedTabs.label;" hidden="true"
   156 +      <menuitem id="context_unpinSelectedTabs" data-lazy-l10n-id="unpin-selected-tabs" hidden="true"
   154 +                accesskey="&unpinSelectedTabs.accesskey;"
       
   155 +                oncommand="gBrowser.unpinMultiSelectedTabs();"/>
   157 +                oncommand="gBrowser.unpinMultiSelectedTabs();"/>
   156 +      <menuitem id="context_duplicateTab" label="&duplicateTab.label;"
   158 +      <menuitem id="context_duplicateTab" data-lazy-l10n-id="duplicate-tab"
   157 +                accesskey="&duplicateTab.accesskey;"
       
   158 +                oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/>
   159 +                oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/>
   159 +      <menuitem id="context_duplicateTabs" label="&duplicateTabs.label;"
   160 +      <menuitem id="context_duplicateTabs" data-lazy-l10n-id="duplicate-tabs"
   160 +                accesskey="&duplicateTabs.accesskey;"
       
   161 +                oncommand="TabContextMenu.duplicateSelectedTabs();"/>
   161 +                oncommand="TabContextMenu.duplicateSelectedTabs();"/>
   162 +      <menuseparator/>
   162 +      <menuseparator/>
   163 +      <menuitem id="context_selectAllTabs" label="&selectAllTabs.label;" accesskey="&selectAllTabs.accesskey;"
   163 +      <menuitem id="context_selectAllTabs" data-lazy-l10n-id="select-all-tabs"
   164 +                oncommand="gBrowser.selectAllTabs();"/>
   164 +                oncommand="gBrowser.selectAllTabs();"/>
   165 +      <menuitem id="context_bookmarkSelectedTabs"
   165 +      <menuitem id="context_bookmarkSelectedTabs"
   166 +                hidden="true"
   166 +                hidden="true"
   167 +                label="&bookmarkSelectedTabs.label;"
   167 +                data-lazy-l10n-id="bookmark-selected-tabs"
   168 +                accesskey="&bookmarkSelectedTabs.accesskey;"
       
   169 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"/>
   168 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"/>
   170 +      <menuitem id="context_bookmarkTab"
   169 +      <menuitem id="context_bookmarkTab"
   171 +                label="&bookmarkTab.label;"
   170 +                data-lazy-l10n-id="bookmark-tab"
   172 +                accesskey="&bookmarkTab.accesskey;"
       
   173 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.getUniquePages([TabContextMenu.contextTab]));"/>
   171 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.getUniquePages([TabContextMenu.contextTab]));"/>
   174 +      <menu id="context_reopenInContainer"
   172 +      <menu id="context_reopenInContainer"
   175 +            label="&reopenInContainer.label;"
   173 +            data-lazy-l10n-id="reopen-in-container"
   176 +            accesskey="&reopenInContainer.accesskey;"
       
   177 +            hidden="true">
   174 +            hidden="true">
   178 +        <menupopup oncommand="TabContextMenu.reopenInContainer(event);"
   175 +        <menupopup oncommand="TabContextMenu.reopenInContainer(event);"
   179 +                   onpopupshowing="TabContextMenu.createReopenInContainerMenu(event);"/>
   176 +                   onpopupshowing="TabContextMenu.createReopenInContainerMenu(event);"/>
   180 +      </menu>
   177 +      </menu>
   181 +      <menu id="context_moveTabOptions"
   178 +      <menu id="context_moveTabOptions">
   182 +            multiselectcontextlabel="&moveSelectedTabOptions.label;"
       
   183 +            multiselectcontextaccesskey="&moveSelectedTabOptions.accesskey;"
       
   184 +            nonmultiselectcontextlabel="&moveTabOptions.label;"
       
   185 +            nonmultiselectcontextaccesskey="&moveTabOptions.accesskey;">
       
   186 +        <menupopup id="moveTabOptionsMenu">
   179 +        <menupopup id="moveTabOptionsMenu">
   187 +          <menuitem id="context_moveToStart"
   180 +          <menuitem id="context_moveToStart"
   188 +                    label="&moveToStart.label;"
   181 +                    data-lazy-l10n-id="move-to-start"
   189 +                    accesskey="&moveToStart.accesskey;"
       
   190 +                    tbattr="tabbrowser-multiple"
   182 +                    tbattr="tabbrowser-multiple"
   191 +                    oncommand="gBrowser.moveTabsToStart(TabContextMenu.contextTab);"/>
   183 +                    oncommand="gBrowser.moveTabsToStart(TabContextMenu.contextTab);"/>
   192 +          <menuitem id="context_moveToEnd"
   184 +          <menuitem id="context_moveToEnd"
   193 +                    label="&moveToEnd.label;"
   185 +                    data-lazy-l10n-id="move-to-end"
   194 +                    accesskey="&moveToEnd.accesskey;"
       
   195 +                    tbattr="tabbrowser-multiple"
   186 +                    tbattr="tabbrowser-multiple"
   196 +                    oncommand="gBrowser.moveTabsToEnd(TabContextMenu.contextTab);"/>
   187 +                    oncommand="gBrowser.moveTabsToEnd(TabContextMenu.contextTab);"/>
   197 +          <menuitem id="context_openTabInWindow" label="&moveToNewWindow.label;"
   188 +          <menuitem id="context_openTabInWindow" data-lazy-l10n-id="move-to-new-window"
   198 +                    accesskey="&moveToNewWindow.accesskey;"
       
   199 +                    tbattr="tabbrowser-multiple"
   189 +                    tbattr="tabbrowser-multiple"
   200 +                    oncommand="gBrowser.replaceTabsWithWindow(TabContextMenu.contextTab);"/>
   190 +                    oncommand="gBrowser.replaceTabsWithWindow(TabContextMenu.contextTab);"/>
   201 +        </menupopup>
   191 +        </menupopup>
   202 +      </menu>
   192 +      </menu>
   203 +      <menu id="context_sendTabToDevice"
   193 +      <menu id="context_sendTabToDevice"
   204 +            class="sync-ui-item">
   194 +            class="sync-ui-item">
   205 +        <menupopup id="context_sendTabToDevicePopupMenu"
   195 +        <menupopup id="context_sendTabToDevicePopupMenu"
   206 +                   onpopupshowing="gSync.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle, TabContextMenu.contextTab.multiselected);"/>
   196 +                   onpopupshowing="gSync.populateSendTabToDevicesMenu(event.target, TabContextMenu.contextTab.linkedBrowser.currentURI.spec, TabContextMenu.contextTab.linkedBrowser.contentTitle, TabContextMenu.contextTab.multiselected);"/>
   207 +      </menu>
   197 +      </menu>
   208 +      <menuseparator/>
   198 +      <menuseparator/>
   209 +      <menuitem id="context_closeTabsToTheEnd" label="&closeTabsToTheEnd.label;" accesskey="&closeTabsToTheEnd.accesskey;"
   199 +      <menuitem id="context_closeTabsToTheEnd" data-lazy-l10n-id="close-tabs-to-the-end"
   210 +                oncommand="gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab, {animate: true});"/>
   200 +                oncommand="gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab, {animate: true});"/>
   211 +      <menuitem id="context_closeOtherTabs" label="&closeOtherTabs.label;" accesskey="&closeOtherTabs.accesskey;"
   201 +      <menuitem id="context_closeOtherTabs" data-lazy-l10n-id="close-other-tabs"
   212 +                oncommand="gBrowser.removeAllTabsBut(TabContextMenu.contextTab);"/>
   202 +                oncommand="gBrowser.removeAllTabsBut(TabContextMenu.contextTab);"/>
   213 +      <menuitem id="context_undoCloseTab"
   203 +      <menuitem id="context_undoCloseTab"
   214 +                label="&undoCloseTab.label;"
   204 +                data-lazy-l10n-id="undo-close-tab"
   215 +                accesskey="&undoCloseTab.accesskey;"
       
   216 +                observes="History:UndoCloseTab"/>
   205 +                observes="History:UndoCloseTab"/>
   217 +      <menuitem id="context_closeTab" label="&closeTab.label;" accesskey="&closeTab.accesskey;"
   206 +      <menuitem id="context_closeTab" data-lazy-l10n-id="close-tab"
   218 +                oncommand="gBrowser.removeTab(TabContextMenu.contextTab, { animate: true });"/>
   207 +                oncommand="gBrowser.removeTab(TabContextMenu.contextTab, { animate: true });"/>
   219 +      <menuitem id="context_closeSelectedTabs" label="&closeTabs.label;"
   208 +      <menuitem id="context_closeSelectedTabs" data-lazy-l10n-id="close-tabs"
   220 +                hidden="true" accesskey="&closeTabs.accesskey;"
   209 +                hidden="true"
   221 +                oncommand="gBrowser.removeMultiSelectedTabs();"/>
   210 +                oncommand="gBrowser.removeMultiSelectedTabs();"/>
   222 +    </menupopup>
   211 +    </menupopup>
   223 +
   212 +
   224 +    <!-- bug 415444/582485: event.stopPropagation is here for the cloned version
   213 +    <!-- bug 415444/582485: event.stopPropagation is here for the cloned version
   225 +         of this menupopup -->
   214 +         of this menupopup -->
   299 +           hidden="true"
   288 +           hidden="true"
   300 +           tabspecific="true"
   289 +           tabspecific="true"
   301 +           aria-labelledby="editBookmarkPanelTitle">
   290 +           aria-labelledby="editBookmarkPanelTitle">
   302 +      <box class="panel-header">
   291 +      <box class="panel-header">
   303 +        <label id="editBookmarkPanelTitle"/>
   292 +        <label id="editBookmarkPanelTitle"/>
       
   293 +        <toolbarbutton id="editBookmarkPanelInfoButton" oncommand="StarUI.toggleRecommendation();" >
       
   294 +          <image/>
       
   295 +        </toolbarbutton>
   304 +      </box>
   296 +      </box>
   305 +      <html:div id="editBookmarkPanelFaviconContainer">
   297 +      <html:div id="editBookmarkPanelInfoArea">
   306 +        <html:img id="editBookmarkPanelFavicon"/>
   298 +        <html:div id="editBookmarkPanelRecommendation"></html:div>
       
   299 +        <html:div id="editBookmarkPanelFaviconContainer">
       
   300 +          <html:img id="editBookmarkPanelFavicon"/>
       
   301 +        </html:div>
       
   302 +        <html:div id="editBookmarkPanelImage"></html:div>
   307 +      </html:div>
   303 +      </html:div>
   308 +      <box id="editBookmarkPanelImage"/>
       
   309 +#include ../../components/places/content/editBookmarkPanel.inc.xul
   304 +#include ../../components/places/content/editBookmarkPanel.inc.xul
   310 +      <vbox id="editBookmarkPanelBottomContent"
   305 +      <vbox id="editBookmarkPanelBottomContent"
   311 +            flex="1">
   306 +            flex="1">
   312 +        <checkbox id="editBookmarkPanel_showForNewBookmarks"
   307 +        <checkbox id="editBookmarkPanel_showForNewBookmarks"
   313 +                  label="&editBookmark.showForNewBookmarks.label;"
   308 +                  label="&editBookmark.showForNewBookmarks.label;"
   422 +      <menuitem oncommand="ToolbarContextMenu.removeExtensionForContextAction(this.parentElement)"
   417 +      <menuitem oncommand="ToolbarContextMenu.removeExtensionForContextAction(this.parentElement)"
   423 +                accesskey="&customizeMenu.removeExtension.accesskey;"
   418 +                accesskey="&customizeMenu.removeExtension.accesskey;"
   424 +                label="&customizeMenu.removeExtension.label;"
   419 +                label="&customizeMenu.removeExtension.label;"
   425 +                contexttype="toolbaritem"
   420 +                contexttype="toolbaritem"
   426 +                class="customize-context-removeExtension"/>
   421 +                class="customize-context-removeExtension"/>
       
   422 +      <menuitem oncommand="ToolbarContextMenu.reportExtensionForContextAction(this.parentElement, 'toolbar_context_menu')"
       
   423 +                accesskey="&customizeMenu.reportExtension.accesskey;"
       
   424 +                label="&customizeMenu.reportExtension.label;"
       
   425 +                contexttype="toolbaritem"
       
   426 +                class="customize-context-reportExtension"/>
   427 +      <menuseparator/>
   427 +      <menuseparator/>
   428 +      <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
   428 +      <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
   429 +                accesskey="&customizeMenu.pinToOverflowMenu.accesskey;"
   429 +                accesskey="&customizeMenu.pinToOverflowMenu.accesskey;"
   430 +                label="&customizeMenu.pinToOverflowMenu.label;"
   430 +                label="&customizeMenu.pinToOverflowMenu.label;"
   431 +                contexttype="toolbaritem"
   431 +                contexttype="toolbaritem"
   442 +                contexttype="toolbaritem"
   442 +                contexttype="toolbaritem"
   443 +                class="customize-context-removeFromToolbar"/>
   443 +                class="customize-context-removeFromToolbar"/>
   444 +      <menuitem id="toolbar-context-reloadSelectedTab"
   444 +      <menuitem id="toolbar-context-reloadSelectedTab"
   445 +                contexttype="tabbar"
   445 +                contexttype="tabbar"
   446 +                oncommand="gBrowser.reloadMultiSelectedTabs();"
   446 +                oncommand="gBrowser.reloadMultiSelectedTabs();"
   447 +                label="&toolbarContextMenu.reloadSelectedTab.label;"
   447 +                data-lazy-l10n-id="toolbar-context-menu-reload-selected-tab"/>
   448 +                accesskey="&toolbarContextMenu.reloadSelectedTab.accesskey;"/>
       
   449 +      <menuitem id="toolbar-context-reloadSelectedTabs"
   448 +      <menuitem id="toolbar-context-reloadSelectedTabs"
   450 +                contexttype="tabbar"
   449 +                contexttype="tabbar"
   451 +                oncommand="gBrowser.reloadMultiSelectedTabs();"
   450 +                oncommand="gBrowser.reloadMultiSelectedTabs();"
   452 +                label="&toolbarContextMenu.reloadSelectedTabs.label;"
   451 +                data-lazy-l10n-id="toolbar-context-menu-reload-selected-tabs"/>
   453 +                accesskey="&toolbarContextMenu.reloadSelectedTabs.accesskey;"/>
       
   454 +      <menuitem id="toolbar-context-bookmarkSelectedTab"
   452 +      <menuitem id="toolbar-context-bookmarkSelectedTab"
   455 +                contexttype="tabbar"
   453 +                contexttype="tabbar"
   456 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"
   454 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"
   457 +                label="&toolbarContextMenu.bookmarkSelectedTab.label;"
   455 +                data-lazy-l10n-id="toolbar-context-menu-bookmark-selected-tab"/>
   458 +                accesskey="&toolbarContextMenu.bookmarkSelectedTab.accesskey;"/>
       
   459 +      <menuitem id="toolbar-context-bookmarkSelectedTabs"
   456 +      <menuitem id="toolbar-context-bookmarkSelectedTabs"
   460 +                contexttype="tabbar"
   457 +                contexttype="tabbar"
   461 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"
   458 +                oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"
   462 +                label="&toolbarContextMenu.bookmarkSelectedTabs.label;"
   459 +                data-lazy-l10n-id="toolbar-context-menu-bookmark-selected-tabs"/>
   463 +                accesskey="&toolbarContextMenu.bookmarkSelectedTabs.accesskey;"/>
       
   464 +      <menuitem id="toolbar-context-selectAllTabs"
   460 +      <menuitem id="toolbar-context-selectAllTabs"
   465 +                contexttype="tabbar"
   461 +                contexttype="tabbar"
   466 +                oncommand="gBrowser.selectAllTabs();"
   462 +                oncommand="gBrowser.selectAllTabs();"
   467 +                label="&toolbarContextMenu.selectAllTabs.label;"
   463 +                data-lazy-l10n-id="toolbar-context-menu-select-all-tabs"/>
   468 +                accesskey="&toolbarContextMenu.selectAllTabs.accesskey;"/>
       
   469 +      <menuitem id="toolbar-context-undoCloseTab"
   464 +      <menuitem id="toolbar-context-undoCloseTab"
   470 +                contexttype="tabbar"
   465 +                contexttype="tabbar"
   471 +                label="&toolbarContextMenu.undoCloseTab.label;"
   466 +                data-lazy-l10n-id="toolbar-context-menu-undo-close-tab"
   472 +                accesskey="&toolbarContextMenu.undoCloseTab.accesskey;"
       
   473 +                observes="History:UndoCloseTab"/>
   467 +                observes="History:UndoCloseTab"/>
   474 +      <menuseparator/>
   468 +      <menuseparator/>
   475 +      <menuseparator id="viewToolbarsMenuSeparator"/>
   469 +      <menuseparator id="viewToolbarsMenuSeparator"/>
   476 +      <!-- XXXgijs: we're using oncommand handler here to avoid the event being
   470 +      <!-- XXXgijs: we're using oncommand handler here to avoid the event being
   477 +                    redirected to the command element, thus preventing
   471 +                    redirected to the command element, thus preventing
   629 +    </tooltip>
   623 +    </tooltip>
   630 +
   624 +
   631 +#include popup-notifications.inc
   625 +#include popup-notifications.inc
   632 +
   626 +
   633 +#include ../../components/customizableui/content/panelUI.inc.xul
   627 +#include ../../components/customizableui/content/panelUI.inc.xul
   634 +#include ../../components/controlcenter/content/panel.inc.xul
   628 +#include ../../components/controlcenter/content/identityPanel.inc.xul
       
   629 +#include ../../components/controlcenter/content/protectionsPanel.inc.xul
   635 +#include ../../components/downloads/content/downloadsPanel.inc.xul
   630 +#include ../../components/downloads/content/downloadsPanel.inc.xul
   636 +#include browser-allTabsMenu.inc.xul
   631 +#include browser-allTabsMenu.inc.xul
   637 +
   632 +
   638 +    <hbox id="downloads-animation-container" mousethrough="always">
   633 +    <hbox id="downloads-animation-container" mousethrough="always">
   639 +      <vbox id="downloads-notification-anchor" hidden="true">
   634 +      <vbox id="downloads-notification-anchor" hidden="true">
   643 +
   638 +
   644 +    <tooltip id="dynamic-shortcut-tooltip"
   639 +    <tooltip id="dynamic-shortcut-tooltip"
   645 +             onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/>
   640 +             onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/>
   646 +
   641 +
   647 +    <menupopup id="SyncedTabsSidebarContext">
   642 +    <menupopup id="SyncedTabsSidebarContext">
   648 +      <menuitem label="&syncedTabs.context.open.label;"
   643 +      <menuitem data-lazy-l10n-id="synced-tabs-context-open"
   649 +                accesskey="&syncedTabs.context.open.accesskey;"
       
   650 +                id="syncedTabsOpenSelected" where="current"/>
   644 +                id="syncedTabsOpenSelected" where="current"/>
   651 +      <menuitem label="&syncedTabs.context.openInNewTab.label;"
   645 +      <menuitem data-lazy-l10n-id="synced-tabs-context-open-in-new-tab"
   652 +                accesskey="&syncedTabs.context.openInNewTab.accesskey;"
       
   653 +                id="syncedTabsOpenSelectedInTab" where="tab"/>
   646 +                id="syncedTabsOpenSelectedInTab" where="tab"/>
   654 +      <menuitem label="&syncedTabs.context.openInNewWindow.label;"
   647 +      <menuitem data-lazy-l10n-id="synced-tabs-context-open-in-new-window"
   655 +                accesskey="&syncedTabs.context.openInNewWindow.accesskey;"
       
   656 +                id="syncedTabsOpenSelectedInWindow" where="window"/>
   648 +                id="syncedTabsOpenSelectedInWindow" where="window"/>
   657 +      <menuitem label="&syncedTabs.context.openInNewPrivateWindow.label;"
   649 +      <menuitem data-lazy-l10n-id="synced-tabs-context-open-in-new-private-window"
   658 +                accesskey="&syncedTabs.context.openInNewPrivateWindow.accesskey;"
       
   659 +                id="syncedTabsOpenSelectedInPrivateWindow" where="window" private="true"/>
   650 +                id="syncedTabsOpenSelectedInPrivateWindow" where="window" private="true"/>
   660 +      <menuseparator/>
   651 +      <menuseparator/>
   661 +      <menuitem label="&syncedTabs.context.bookmarkSingleTab.label;"
   652 +      <menuitem data-lazy-l10n-id="synced-tabs-context-bookmark-single-tab"
   662 +                accesskey="&syncedTabs.context.bookmarkSingleTab.accesskey;"
       
   663 +                id="syncedTabsBookmarkSelected"/>
   653 +                id="syncedTabsBookmarkSelected"/>
   664 +      <menuitem label="&syncedTabs.context.copy.label;"
   654 +      <menuitem data-lazy-l10n-id="synced-tabs-context-copy"
   665 +                accesskey="&syncedTabs.context.copy.accesskey;"
       
   666 +                id="syncedTabsCopySelected"/>
   655 +                id="syncedTabsCopySelected"/>
   667 +      <menuseparator/>
   656 +      <menuseparator/>
   668 +      <menuitem label="&syncedTabs.context.openAllInTabs.label;"
   657 +      <menuitem data-lazy-l10n-id="synced-tabs-context-open-all-in-tabs"
   669 +                accesskey="&syncedTabs.context.openAllInTabs.accesskey;"
       
   670 +                id="syncedTabsOpenAllInTabs"/>
   658 +                id="syncedTabsOpenAllInTabs"/>
   671 +      <menuitem label="&syncedTabs.context.managedevices.label;"
   659 +      <menuitem data-lazy-l10n-id="synced-tabs-context-manage-devices"
   672 +                accesskey="&syncedTabs.context.managedevices.accesskey;"
       
   673 +                id="syncedTabsManageDevices"
   660 +                id="syncedTabsManageDevices"
   674 +                oncommand="gSync.openDevicesManagementPage('syncedtabs-sidebar');"/>
   661 +                oncommand="gSync.openDevicesManagementPage('syncedtabs-sidebar');"/>
   675 +      <menuitem label="&syncSyncNowItem.label;"
   662 +      <menuitem label="&syncSyncNowItem.label;"
   676 +                accesskey="&syncSyncNowItem.accesskey;"
   663 +                accesskey="&syncSyncNowItem.accesskey;"
   677 +                id="syncedTabsRefresh"/>
   664 +                id="syncedTabsRefresh"/>
   702 +      <menuitem label="&syncSyncNowItem.label;"
   689 +      <menuitem label="&syncSyncNowItem.label;"
   703 +                accesskey="&syncSyncNowItem.accesskey;"
   690 +                accesskey="&syncSyncNowItem.accesskey;"
   704 +                id="syncedTabsRefreshFilter"/>
   691 +                id="syncedTabsRefreshFilter"/>
   705 +    </menupopup>
   692 +    </menupopup>
   706 +
   693 +
   707 +    <hbox id="statuspanel" inactive="true" layer="true">
   694 +    <hbox id="statuspanel" inactive="true" renderroot="content">
   708 +      <hbox id="statuspanel-inner">
   695 +      <hbox id="statuspanel-inner">
   709 +        <label id="statuspanel-label"
   696 +        <label id="statuspanel-label"
   710 +               role="status"
   697 +               role="status"
   711 +               aria-live="off"
   698 +               aria-live="off"
   712 +               flex="1"
   699 +               flex="1"
   874 +            <toolbartabstop/>
   861 +            <toolbartabstop/>
   875 +            <textbox id="urlbar" flex="1"
   862 +            <textbox id="urlbar" flex="1"
   876 +                     placeholder="&urlbar.placeholder2;"
   863 +                     placeholder="&urlbar.placeholder2;"
   877 +                     defaultPlaceholder="&urlbar.placeholder2;"
   864 +                     defaultPlaceholder="&urlbar.placeholder2;"
   878 +                     focused="true"
   865 +                     focused="true"
   879 +                     type="autocomplete"
       
   880 +                     quantumbar="false"
       
   881 +                     autocompletesearch="unifiedcomplete"
       
   882 +                     autocompletesearchparam="enable-actions"
       
   883 +                     autocompletepopup="PopupAutoCompleteRichResult"
       
   884 +                     completeselectedindex="true"
       
   885 +                     tabscrolling="true"
       
   886 +                     newlines="stripsurroundingwhitespace"
       
   887 +                     ontextentered="this.handleCommand(param);"
       
   888 +                     ontextreverted="return this.handleRevert();"
       
   889 +                     pageproxystate="invalid">
   866 +                     pageproxystate="invalid">
   890 +              <!-- Use onclick instead of normal popup= syntax since the popup
   867 +              <!-- Use onclick instead of normal popup= syntax since the popup
   891 +                   code fires onmousedown, and hence eats our favicon drag events. -->
   868 +                   code fires onmousedown, and hence eats our favicon drag events. -->
   892 +              <box id="identity-box" role="button"
   869 +              <box id="identity-box" role="button"
   893 +                   align="center"
   870 +                   align="center"
   926 +                         tooltiptext="&urlbar.canvasBlocked.tooltip;"/>
   903 +                         tooltiptext="&urlbar.canvasBlocked.tooltip;"/>
   927 +                  <image data-permission-id="plugin:flash" class="blocked-permission-icon plugin-icon" role="button"
   904 +                  <image data-permission-id="plugin:flash" class="blocked-permission-icon plugin-icon" role="button"
   928 +                         tooltiptext="&urlbar.flashPluginBlocked.tooltip;"/>
   905 +                         tooltiptext="&urlbar.flashPluginBlocked.tooltip;"/>
   929 +                  <image data-permission-id="midi" class="blocked-permission-icon midi-icon" role="button"
   906 +                  <image data-permission-id="midi" class="blocked-permission-icon midi-icon" role="button"
   930 +                         tooltiptext="&urlbar.midiBlocked.tooltip;"/>
   907 +                         tooltiptext="&urlbar.midiBlocked.tooltip;"/>
       
   908 +                  <image data-permission-id="install" class="blocked-permission-icon install-icon" role="button"
       
   909 +                         tooltiptext="&urlbar.installBlocked.tooltip;"/>
   931 +                </box>
   910 +                </box>
   932 +                <box id="notification-popup-box"
   911 +                <box id="notification-popup-box"
   933 +                     hidden="true"
   912 +                     hidden="true"
   934 +                     onmouseover="document.getElementById('identity-box').classList.add('no-hover');"
   913 +                     onmouseover="document.getElementById('identity-box').classList.add('no-hover');"
   935 +                     onmouseout="document.getElementById('identity-box').classList.remove('no-hover');"
   914 +                     onmouseout="document.getElementById('identity-box').classList.remove('no-hover');"
  1337 +    </toolbarpalette>
  1316 +    </toolbarpalette>
  1338 +  </toolbox>
  1317 +  </toolbox>
  1339 +
  1318 +
  1340 +  <hbox id="fullscr-toggler" hidden="true"/>
  1319 +  <hbox id="fullscr-toggler" hidden="true"/>
  1341 +
  1320 +
  1342 +  <deck id="content-deck" flex="1">
  1321 +  <deck id="content-deck" flex="1" renderroot="content">
  1343 +    <hbox flex="1" id="browser">
  1322 +    <hbox flex="1" id="browser">
  1344 +      <vbox id="browser-border-start" hidden="true" layer="true"/>
  1323 +      <vbox id="browser-border-start" hidden="true" layer="true"/>
  1345 +      <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome">
  1324 +      <vbox id="sidebar-box" hidden="true" class="chromeclass-extrachrome">
  1346 +        <sidebarheader id="sidebar-header" align="center">
  1325 +        <sidebarheader id="sidebar-header" align="center">
  1347 +          <toolbarbutton id="sidebar-switcher-target" flex="1" class="tabbable">
  1326 +          <toolbarbutton id="sidebar-switcher-target" flex="1" class="tabbable">
  1370 +                     flex="1" class="plain" selectedIndex="0"/>
  1349 +                     flex="1" class="plain" selectedIndex="0"/>
  1371 +        </tabbox>
  1350 +        </tabbox>
  1372 +      </vbox>
  1351 +      </vbox>
  1373 +      <vbox id="browser-border-end" hidden="true" layer="true"/>
  1352 +      <vbox id="browser-border-end" hidden="true" layer="true"/>
  1374 +    </hbox>
  1353 +    </hbox>
       
  1354 +    <box id="customization-container" flex="1" hidden="true"><![CDATA[
  1375 +#include ../../components/customizableui/content/customizeMode.inc.xul
  1355 +#include ../../components/customizableui/content/customizeMode.inc.xul
       
  1356 +    ]]></box>
  1376 +  </deck>
  1357 +  </deck>
  1377 +
  1358 +
  1378 +  <html:div id="fullscreen-warning" class="pointerlockfswarning" hidden="true">
  1359 +  <html:div id="fullscreen-warning" class="pointerlockfswarning" hidden="true" renderroot="content">
  1379 +    <html:div class="pointerlockfswarning-domain-text">
  1360 +    <html:div class="pointerlockfswarning-domain-text">
  1380 +      &fullscreenWarning.beforeDomain.label;
  1361 +      &fullscreenWarning.beforeDomain.label;
  1381 +      <html:span class="pointerlockfswarning-domain"/>
  1362 +      <html:span class="pointerlockfswarning-domain"/>
  1382 +      &fullscreenWarning.afterDomain.label;
  1363 +      &fullscreenWarning.afterDomain.label;
  1383 +    </html:div>
  1364 +    </html:div>
  1392 +            &exitDOMFullscreen.button;
  1373 +            &exitDOMFullscreen.button;
  1393 +#endif
  1374 +#endif
  1394 +    </html:button>
  1375 +    </html:button>
  1395 +  </html:div>
  1376 +  </html:div>
  1396 +
  1377 +
  1397 +  <html:div id="pointerlock-warning" class="pointerlockfswarning" hidden="true">
  1378 +  <html:div id="pointerlock-warning" class="pointerlockfswarning" hidden="true" renderroot="content">
  1398 +    <html:div class="pointerlockfswarning-domain-text">
  1379 +    <html:div class="pointerlockfswarning-domain-text">
  1399 +      &pointerlockWarning.beforeDomain.label;
  1380 +      &pointerlockWarning.beforeDomain.label;
  1400 +      <html:span class="pointerlockfswarning-domain"/>
  1381 +      <html:span class="pointerlockfswarning-domain"/>
  1401 +      &pointerlockWarning.afterDomain.label;
  1382 +      &pointerlockWarning.afterDomain.label;
  1402 +    </html:div>
  1383 +    </html:div>
  1403 +    <html:div class="pointerlockfswarning-generic-text">
  1384 +    <html:div class="pointerlockfswarning-generic-text">
  1404 +      &pointerlockWarning.generic.label;
  1385 +      &pointerlockWarning.generic.label;
  1405 +    </html:div>
  1386 +    </html:div>
  1406 +  </html:div>
  1387 +  </html:div>
  1407 +
  1388 +
  1408 +  <vbox id="browser-bottombox" layer="true">
  1389 +  <vbox id="browser-bottombox" layer="true" renderroot="content">
  1409 +    <!-- gNotificationBox will be added here lazily. -->
  1390 +    <!-- gNotificationBox will be added here lazily. -->
  1410 +  </vbox>
  1391 +  </vbox>
  1411 +
       
  1412 +</window>
  1392 +</window>
  1413 diff --git a/browser/base/jar.mn b/browser/base/jar.mn
  1393 diff -r 428161c3b959 -r 54d41b0033b8 browser/base/jar.mn
  1414 --- a/browser/base/jar.mn
  1394 --- a/browser/base/jar.mn	Mon Jun 17 09:02:06 2019 +0200
  1415 +++ b/browser/base/jar.mn
  1395 +++ b/browser/base/jar.mn	Fri May 31 12:55:51 2019 +0200
  1416 @@ -28,16 +28,18 @@ browser.jar:
  1396 @@ -33,6 +33,8 @@
  1417          content/browser/aboutTabCrashed.js            (content/aboutTabCrashed.js)
  1397  #else
  1418          content/browser/aboutTabCrashed.xhtml         (content/aboutTabCrashed.xhtml)
  1398  *       content/browser/browser.xul                   (content/browser.xul)
  1419  *       content/browser/browser.css                   (content/browser.css)
       
  1420          content/browser/browser.js                    (content/browser.js)
       
  1421  #ifdef MOZ_BROWSER_XHTML
       
  1422  *       content/browser/browser.xhtml                 (content/browser.xhtml)
       
  1423  #endif
  1399  #endif
  1424  *       content/browser/browser.xul                   (content/browser.xul)
       
  1425 +*       content/browser/browser-kde.xul               (content/browser-kde.xul)
  1400 +*       content/browser/browser-kde.xul               (content/browser-kde.xul)
  1426 +%       override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
  1401 +%       override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
  1427          content/browser/browser-addons.js             (content/browser-addons.js)
  1402          content/browser/browser-addons.js             (content/browser-addons.js)
  1428          content/browser/browser-allTabsMenu.js        (content/browser-allTabsMenu.js)
  1403          content/browser/browser-allTabsMenu.js        (content/browser-allTabsMenu.js)
  1429          content/browser/browser-captivePortal.js      (content/browser-captivePortal.js)
  1404          content/browser/browser-captivePortal.js      (content/browser-captivePortal.js)
  1430          content/browser/browser-ctrlTab.js            (content/browser-ctrlTab.js)
  1405 diff -r 428161c3b959 -r 54d41b0033b8 browser/components/preferences/in-content/main.js
  1431          content/browser/browser-customization.js      (content/browser-customization.js)
  1406 --- a/browser/components/preferences/in-content/main.js	Mon Jun 17 09:02:06 2019 +0200
  1432          content/browser/browser-data-submission-info-bar.js (content/browser-data-submission-info-bar.js)
  1407 +++ b/browser/components/preferences/in-content/main.js	Fri May 31 12:55:51 2019 +0200
  1433          content/browser/browser-compacttheme.js       (content/browser-compacttheme.js)
  1408 @@ -294,6 +294,13 @@
  1434          content/browser/browser-contentblocking.js    (content/browser-contentblocking.js)
       
  1435 diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
       
  1436 --- a/browser/components/preferences/in-content/main.js
       
  1437 +++ b/browser/components/preferences/in-content/main.js
       
  1438 @@ -288,16 +288,23 @@ var gMainPane = {
       
  1439            this._backoffIndex++ : backoffTimes.length - 1]);
       
  1440        };
       
  1441  
       
  1442        window.setTimeout(() => {
       
  1443          window.requestIdleCallback(pollForDefaultBrowser);
       
  1444        }, backoffTimes[this._backoffIndex]);
  1409        }, backoffTimes[this._backoffIndex]);
  1445      }
  1410      }
  1446  
  1411  
  1447 +    var env = Components.classes["@mozilla.org/process/environment;1"]
  1412 +    var env = Components.classes["@mozilla.org/process/environment;1"]
  1448 +      .getService(Components.interfaces.nsIEnvironment);
  1413 +      .getService(Components.interfaces.nsIEnvironment);
  1452 +    }
  1417 +    }
  1453 +
  1418 +
  1454      this.initBrowserContainers();
  1419      this.initBrowserContainers();
  1455      this.buildContentProcessCountMenuList();
  1420      this.buildContentProcessCountMenuList();
  1456  
  1421  
  1457      let performanceSettingsLink = document.getElementById("performanceSettingsLearnMore");
  1422 @@ -983,6 +990,17 @@
  1458      let performanceSettingsUrl = Services.urlFormatter.formatURLPref("app.support.baseURL") + "performance";
       
  1459      performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
       
  1460  
       
  1461      this.updateDefaultPerformanceSettingsPref();
       
  1462 @@ -1025,16 +1032,27 @@ var gMainPane = {
       
  1463        // Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
       
  1464        this._backoffIndex = 0;
       
  1465  
       
  1466        let shellSvc = getShellService();
       
  1467        if (!shellSvc)
       
  1468          return;
  1423          return;
  1469        try {
  1424        try {
  1470          shellSvc.setDefaultBrowser(true, false);
  1425          shellSvc.setDefaultBrowser(true, false);
  1471 +        if (kde_session == 1) {
  1426 +        if (kde_session == 1) {
  1472 +          var shellObj = Components.classes["@mozilla.org/file/local;1"]
  1427 +          var shellObj = Components.classes["@mozilla.org/file/local;1"]
  1480 +          process.run(false, args, args.length);
  1435 +          process.run(false, args, args.length);
  1481 +        }
  1436 +        }
  1482        } catch (ex) {
  1437        } catch (ex) {
  1483          Cu.reportError(ex);
  1438          Cu.reportError(ex);
  1484          return;
  1439          return;
  1485        }
  1440 diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/moz.build
  1486  
  1441 --- a/browser/components/shell/moz.build	Mon Jun 17 09:02:06 2019 +0200
  1487        let selectedIndex = shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
  1442 +++ b/browser/components/shell/moz.build	Fri May 31 12:55:51 2019 +0200
  1488        document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
  1443 @@ -33,6 +33,8 @@
  1489      }
       
  1490 diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
       
  1491 --- a/browser/components/shell/moz.build
       
  1492 +++ b/browser/components/shell/moz.build
       
  1493 @@ -29,16 +29,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
       
  1494      ]
       
  1495  elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
       
  1496      XPIDL_SOURCES += [
       
  1497          'nsIGNOMEShellService.idl',
       
  1498      ]
       
  1499  
  1444  
  1500      SOURCES += [
  1445      SOURCES += [
  1501          'nsGNOMEShellService.cpp',
  1446          'nsGNOMEShellService.cpp',
  1502 +        'nsKDEShellService.cpp',
  1447 +        'nsKDEShellService.cpp',
  1503 +        'nsUnixShellService.cpp',
  1448 +        'nsUnixShellService.cpp',
  1504      ]
  1449      ]
  1505  elif CONFIG['OS_ARCH'] == 'WINNT':
  1450  elif CONFIG['OS_ARCH'] == 'WINNT':
  1506      SOURCES += [
  1451      SOURCES += [
  1507          'nsWindowsShellService.cpp',
  1452 diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/nsKDEShellService.cpp
  1508      ]
  1453 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1509      LOCAL_INCLUDES += [
  1454 +++ b/browser/components/shell/nsKDEShellService.cpp	Fri May 31 12:55:51 2019 +0200
  1510          '../../../other-licenses/nsis/Contrib/CityHash/cityhash',
       
  1511      ]
       
  1512 diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp
       
  1513 new file mode 100644
       
  1514 --- /dev/null
       
  1515 +++ b/browser/components/shell/nsKDEShellService.cpp
       
  1516 @@ -0,0 +1,150 @@
  1455 @@ -0,0 +1,150 @@
  1517 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  1456 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  1518 +/* This Source Code Form is subject to the terms of the Mozilla Public
  1457 +/* This Source Code Form is subject to the terms of the Mozilla Public
  1519 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  1458 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  1520 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  1459 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  1662 +    uristr->SetData( aURI );
  1601 +    uristr->SetData( aURI );
  1663 +    command->AppendElement( uristr );
  1602 +    command->AppendElement( uristr );
  1664 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
  1603 +    return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
  1665 +}
  1604 +}
  1666 +
  1605 +
  1667 diff --git a/browser/components/shell/nsKDEShellService.h b/browser/components/shell/nsKDEShellService.h
  1606 diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/nsKDEShellService.h
  1668 new file mode 100644
  1607 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1669 --- /dev/null
  1608 +++ b/browser/components/shell/nsKDEShellService.h	Fri May 31 12:55:51 2019 +0200
  1670 +++ b/browser/components/shell/nsKDEShellService.h
       
  1671 @@ -0,0 +1,32 @@
  1609 @@ -0,0 +1,32 @@
  1672 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  1610 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  1673 +/* This Source Code Form is subject to the terms of the Mozilla Public
  1611 +/* This Source Code Form is subject to the terms of the Mozilla Public
  1674 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  1612 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  1675 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  1613 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  1699 +
  1637 +
  1700 +  bool mCheckedThisSession;
  1638 +  bool mCheckedThisSession;
  1701 +};
  1639 +};
  1702 +
  1640 +
  1703 +#endif // nskdeshellservice_h____
  1641 +#endif // nskdeshellservice_h____
  1704 diff --git a/browser/components/shell/nsUnixShellService.cpp b/browser/components/shell/nsUnixShellService.cpp
  1642 diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/nsUnixShellService.cpp
  1705 new file mode 100644
  1643 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1706 --- /dev/null
  1644 +++ b/browser/components/shell/nsUnixShellService.cpp	Fri May 31 12:55:51 2019 +0200
  1707 +++ b/browser/components/shell/nsUnixShellService.cpp
       
  1708 @@ -0,0 +1,22 @@
  1645 @@ -0,0 +1,22 @@
  1709 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  1646 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  1710 +/* This Source Code Form is subject to the terms of the Mozilla Public
  1647 +/* This Source Code Form is subject to the terms of the Mozilla Public
  1711 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  1648 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  1712 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  1649 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  1726 +{
  1663 +{
  1727 +    if( nsKDEUtils::kdeSupport())
  1664 +    if( nsKDEUtils::kdeSupport())
  1728 +        return nsKDEShellServiceConstructor( aOuter, aIID, aResult );
  1665 +        return nsKDEShellServiceConstructor( aOuter, aIID, aResult );
  1729 +    return nsGNOMEShellServiceConstructor( aOuter, aIID, aResult );
  1666 +    return nsGNOMEShellServiceConstructor( aOuter, aIID, aResult );
  1730 +}
  1667 +}
  1731 diff --git a/browser/components/shell/nsUnixShellService.h b/browser/components/shell/nsUnixShellService.h
  1668 diff -r 428161c3b959 -r 54d41b0033b8 browser/components/shell/nsUnixShellService.h
  1732 new file mode 100644
  1669 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
  1733 --- /dev/null
  1670 +++ b/browser/components/shell/nsUnixShellService.h	Fri May 31 12:55:51 2019 +0200
  1734 +++ b/browser/components/shell/nsUnixShellService.h
       
  1735 @@ -0,0 +1,15 @@
  1671 @@ -0,0 +1,15 @@
  1736 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  1672 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  1737 +/* This Source Code Form is subject to the terms of the Mozilla Public
  1673 +/* This Source Code Form is subject to the terms of the Mozilla Public
  1738 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  1674 + * License, v. 2.0. If a copy of the MPL was not distributed with this
  1739 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  1675 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  1746 +
  1682 +
  1747 +NS_IMETHODIMP
  1683 +NS_IMETHODIMP
  1748 +nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult);
  1684 +nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult);
  1749 +
  1685 +
  1750 +#endif // nsunixshellservice_h____
  1686 +#endif // nsunixshellservice_h____
  1751 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
  1687 diff -r 428161c3b959 -r 54d41b0033b8 browser/installer/package-manifest.in
  1752 --- a/browser/installer/package-manifest.in
  1688 --- a/browser/installer/package-manifest.in	Mon Jun 17 09:02:06 2019 +0200
  1753 +++ b/browser/installer/package-manifest.in
  1689 +++ b/browser/installer/package-manifest.in	Fri May 31 12:55:51 2019 +0200
  1754 @@ -286,16 +286,18 @@
  1690 @@ -299,6 +299,8 @@
  1755  @RESPATH@/browser/defaults/settings/pinning
       
  1756  @RESPATH@/browser/defaults/settings/main
       
  1757  
       
  1758  ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
       
  1759  ; Technically this is an app pref file, but we are keeping it in the original
       
  1760  ; gre location for now.
  1691  ; gre location for now.
  1761  @RESPATH@/defaults/pref/channel-prefs.js
  1692  @RESPATH@/defaults/pref/channel-prefs.js
  1762  
  1693  
  1763 +@RESPATH@/defaults/pref/kde.js
  1694 +@RESPATH@/defaults/pref/kde.js
  1764 +
  1695 +
  1765  ; Services (gre) prefs
  1696  ; Services (gre) prefs
  1766  @RESPATH@/defaults/pref/services-sync.js
  1697  @RESPATH@/defaults/pref/services-sync.js
  1767  
  1698  
  1768  ; [Layout Engine Resources]
       
  1769  ; Style Sheets, Graphics and other Resources used by the layout engine.
       
  1770  @RESPATH@/res/EditorOverride.css
       
  1771  @RESPATH@/res/contenteditable.css
       
  1772  @RESPATH@/res/designmode.css