Updated to 65.0

This commit is contained in:
Алзим 2019-02-01 18:36:46 +03:00
parent 14bff9d373
commit 0cfd7feabf
8 changed files with 318 additions and 309 deletions

View file

@ -1,4 +1,4 @@
sources: sources:
cbindgen-vendor.tar.xz: b180cff66e05546c967236a7abe983fff89a8b3e cbindgen-vendor.tar.xz: 7efa6255e73d8e3c9dc674822d2e29ebc0e3391b
firefox-64.0.2.source.tar.xz: a2a4199b61456ed6c051066f00715ad3042b3817 firefox-65.0.source.tar.xz: fb79c84b58da18ca9248058c68b95bbcea829512
firefox-dictionary-61.0.2.tar.bz2: 25929c585dc8568a32d5be49aacc672f0ed2202f firefox-dictionary-61.0.2.tar.bz2: 25929c585dc8568a32d5be49aacc672f0ed2202f

View file

@ -1,12 +0,0 @@
diff -up firefox-63.0/toolkit/moz.configure.disable-elfhack firefox-63.0/toolkit/moz.configure
--- firefox-63.0/toolkit/moz.configure.disable-elfhack 2018-10-18 13:35:35.870039190 +0200
+++ firefox-63.0/toolkit/moz.configure 2018-10-18 13:36:41.682515492 +0200
@@ -1010,7 +1010,7 @@ with only_when('--enable-compile-environ
help='Disable elf hacks')
set_config('USE_ELF_HACK',
- depends_if('--enable-elf-hack')(lambda _: True))
+ depends_if('--enable-elf-hack')(lambda _: False))
@depends(check_build_environment)

View file

@ -16,8 +16,8 @@
-#include "prthread.h" /* needed for thread-safety checks */ -#include "prthread.h" /* needed for thread-safety checks */
+#include "nspr4/prthread.h" /* needed for thread-safety checks */ +#include "nspr4/prthread.h" /* needed for thread-safety checks */
class nsAutoOwningThread class nsAutoOwningThread {
{ public:
--- firefox-56.0/xpcom/ds/nsCRT.h-orig 2017-09-28 20:02:28.000000000 +0300 --- firefox-56.0/xpcom/ds/nsCRT.h-orig 2017-09-28 20:02:28.000000000 +0300
+++ firefox-56.0/xpcom/ds/nsCRT.h 2017-09-28 20:03:25.099126089 +0300 +++ firefox-56.0/xpcom/ds/nsCRT.h 2017-09-28 20:03:25.099126089 +0300
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@

View file

@ -1,11 +1,11 @@
# HG changeset patch # HG changeset patch
# Parent f2429084f187d5758508ae547c411943cba60fcf # Parent 693f0baece29cc958a7d91b89fd12e3b89a502e3
diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/browser/base/content/browser-kde.xul +++ b/browser/base/content/browser-kde.xul
@@ -0,0 +1,1384 @@ @@ -0,0 +1,1395 @@
+#filter substitution +#filter substitution
+<?xml version="1.0"?> +<?xml version="1.0"?>
+# -*- Mode: HTML -*- +# -*- Mode: HTML -*-
@ -81,6 +81,7 @@ new file mode 100644
+ persist="screenX screenY width height sizemode" + persist="screenX screenY width height sizemode"
+#ifdef BROWSER_XHTML +#ifdef BROWSER_XHTML
+ hidden="true" + hidden="true"
+ mozpersist=""
+#endif +#endif
+ > + >
+ +
@ -95,7 +96,22 @@ new file mode 100644
+#endif +#endif
+> +>
+ Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this); + Services.scriptloader.loadSubScript("chrome://global/content/contentAreaUtils.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-captivePortal.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-compacttheme.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-contentblocking.js", this);
+#ifdef MOZ_DATA_REPORTING
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-data-submission-info-bar.js", this);
+#endif
+#ifndef MOZILLA_OFFICIAL
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-development-helpers.js", this);
+#endif
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-media.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-pageActions.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-plugins.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-sidebar.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/browser-tabsintitlebar.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/tabbrowser.js", this); + Services.scriptloader.loadSubScript("chrome://browser/content/tabbrowser.js", this);
+ Services.scriptloader.loadSubScript("chrome://browser/content/search/searchbar.js", this);
+ +
+ window.onload = gBrowserInit.onLoad.bind(gBrowserInit); + window.onload = gBrowserInit.onLoad.bind(gBrowserInit);
+ window.onunload = gBrowserInit.onUnload.bind(gBrowserInit); + window.onunload = gBrowserInit.onUnload.bind(gBrowserInit);
@ -152,6 +168,9 @@ new file mode 100644
+ <menuitem id="context_duplicateTab" label="&duplicateTab.label;" + <menuitem id="context_duplicateTab" label="&duplicateTab.label;"
+ accesskey="&duplicateTab.accesskey;" + accesskey="&duplicateTab.accesskey;"
+ oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/> + oncommand="duplicateTabIn(TabContextMenu.contextTab, 'tab');"/>
+ <menuitem id="context_duplicateTabs" label="&duplicateTabs.label;"
+ accesskey="&duplicateTabs.accesskey;"
+ oncommand="TabContextMenu.duplicateSelectedTabs();"/>
+ <menuseparator/> + <menuseparator/>
+ <menuitem id="context_selectAllTabs" label="&selectAllTabs.label;" accesskey="&selectAllTabs.accesskey;" + <menuitem id="context_selectAllTabs" label="&selectAllTabs.label;" accesskey="&selectAllTabs.accesskey;"
+ oncommand="gBrowser.selectAllTabs();"/> + oncommand="gBrowser.selectAllTabs();"/>
@ -262,13 +281,16 @@ new file mode 100644
+ <html:div class="urlbarView-body-inner"> + <html:div class="urlbarView-body-inner">
+ <!-- TODO: add search suggestions notification --> + <!-- TODO: add search suggestions notification -->
+ <html:div class="urlbarView-results"/> + <html:div class="urlbarView-results"/>
+ <!-- TODO: add footer -->
+ </html:div> + </html:div>
+ </html:div> + </html:div>
+ <hbox class="search-one-offs"
+ compact="true"
+ includecurrentengine="true"
+ disabletab="true"/>
+ </panel> + </panel>
+ +
+ <!-- for date/time picker. consumeoutsideclicks is set to never, so that + <!-- for date/time picker. consumeoutsideclicks is set to never, so that
+ clicks on the anchored input box are never consumed. --> + clicks on the anchored input box are never consumed. -->
+ <panel id="DateTimePickerPanel" + <panel id="DateTimePickerPanel"
+ type="arrow" + type="arrow"
+ hidden="true" + hidden="true"
@ -322,6 +344,7 @@ new file mode 100644
+ oncommand="StarUI.onShowForNewBookmarksCheckboxCommand();"/> + oncommand="StarUI.onShowForNewBookmarksCheckboxCommand();"/>
+ </vbox> + </vbox>
+ <hbox id="editBookmarkPanelBottomButtons" + <hbox id="editBookmarkPanelBottomButtons"
+ class="panel-footer"
+ style="min-width: &editBookmark.panel.width;;"> + style="min-width: &editBookmark.panel.width;;">
+#ifdef XP_UNIX +#ifdef XP_UNIX
+ <button id="editBookmarkPanelDoneButton" + <button id="editBookmarkPanelDoneButton"
@ -436,49 +459,43 @@ new file mode 100644
+ label="&customizeMenu.pinToOverflowMenu.label;" + label="&customizeMenu.pinToOverflowMenu.label;"
+ contexttype="toolbaritem" + contexttype="toolbaritem"
+ class="customize-context-moveToPanel"/> + class="customize-context-moveToPanel"/>
+ <menuitem oncommand="ToolbarContextMenu.onDownloadsAutoHideChange(event)" + <menuitem id="toolbar-context-autohide-downloads-button"
+ oncommand="ToolbarContextMenu.onDownloadsAutoHideChange(event);"
+ type="checkbox" + type="checkbox"
+ accesskey="&customizeMenu.autoHideDownloadsButton.accesskey;" + accesskey="&customizeMenu.autoHideDownloadsButton.accesskey;"
+ label="&customizeMenu.autoHideDownloadsButton.label;" + label="&customizeMenu.autoHideDownloadsButton.label;"
+ contexttype="toolbaritem" + contexttype="toolbaritem"/>
+ class="customize-context-autoHide"/>
+ <menuitem oncommand="gCustomizeMode.removeFromArea(document.popupNode)" + <menuitem oncommand="gCustomizeMode.removeFromArea(document.popupNode)"
+ accesskey="&customizeMenu.removeFromToolbar.accesskey;" + accesskey="&customizeMenu.removeFromToolbar.accesskey;"
+ label="&customizeMenu.removeFromToolbar.label;" + label="&customizeMenu.removeFromToolbar.label;"
+ contexttype="toolbaritem" + contexttype="toolbaritem"
+ class="customize-context-removeFromToolbar"/> + class="customize-context-removeFromToolbar"/>
+ <menuitem id="toolbar-context-reloadSelectedTab" + <menuitem id="toolbar-context-reloadSelectedTab"
+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar" + contexttype="tabbar"
+ oncommand="gBrowser.reloadMultiSelectedTabs();" + oncommand="gBrowser.reloadMultiSelectedTabs();"
+ label="&toolbarContextMenu.reloadSelectedTab.label;" + label="&toolbarContextMenu.reloadSelectedTab.label;"
+ accesskey="&toolbarContextMenu.reloadSelectedTab.accesskey;"/> + accesskey="&toolbarContextMenu.reloadSelectedTab.accesskey;"/>
+ <menuitem id="toolbar-context-reloadSelectedTabs" + <menuitem id="toolbar-context-reloadSelectedTabs"
+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar" + contexttype="tabbar"
+ oncommand="gBrowser.reloadMultiSelectedTabs();" + oncommand="gBrowser.reloadMultiSelectedTabs();"
+ label="&toolbarContextMenu.reloadSelectedTabs.label;" + label="&toolbarContextMenu.reloadSelectedTabs.label;"
+ accesskey="&toolbarContextMenu.reloadSelectedTabs.accesskey;"/> + accesskey="&toolbarContextMenu.reloadSelectedTabs.accesskey;"/>
+ <menuitem id="toolbar-context-bookmarkSelectedTab" + <menuitem id="toolbar-context-bookmarkSelectedTab"
+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar" + contexttype="tabbar"
+ oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);" + oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"
+ label="&toolbarContextMenu.bookmarkSelectedTab.label;" + label="&toolbarContextMenu.bookmarkSelectedTab.label;"
+ accesskey="&toolbarContextMenu.bookmarkSelectedTab.accesskey;"/> + accesskey="&toolbarContextMenu.bookmarkSelectedTab.accesskey;"/>
+ <menuitem id="toolbar-context-bookmarkSelectedTabs" + <menuitem id="toolbar-context-bookmarkSelectedTabs"
+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar" + contexttype="tabbar"
+ oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);" + oncommand="PlacesCommandHook.bookmarkPages(PlacesCommandHook.uniqueSelectedPages);"
+ label="&toolbarContextMenu.bookmarkSelectedTabs.label;" + label="&toolbarContextMenu.bookmarkSelectedTabs.label;"
+ accesskey="&toolbarContextMenu.bookmarkSelectedTabs.accesskey;"/> + accesskey="&toolbarContextMenu.bookmarkSelectedTabs.accesskey;"/>
+ <menuitem id="toolbar-context-selectAllTabs" + <menuitem id="toolbar-context-selectAllTabs"
+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar" + contexttype="tabbar"
+ oncommand="gBrowser.selectAllTabs();" + oncommand="gBrowser.selectAllTabs();"
+ label="&toolbarContextMenu.selectAllTabs.label;" + label="&toolbarContextMenu.selectAllTabs.label;"
+ accesskey="&toolbarContextMenu.selectAllTabs.accesskey;"/> + accesskey="&toolbarContextMenu.selectAllTabs.accesskey;"/>
+ <menuitem id="toolbar-context-undoCloseTab" + <menuitem id="toolbar-context-undoCloseTab"
+ class="toolbaritem-tabsmenu"
+ contexttype="tabbar" + contexttype="tabbar"
+ label="&toolbarContextMenu.undoCloseTab.label;" + label="&toolbarContextMenu.undoCloseTab.label;"
+ accesskey="&toolbarContextMenu.undoCloseTab.accesskey;" + accesskey="&toolbarContextMenu.undoCloseTab.accesskey;"
@ -722,110 +739,101 @@ new file mode 100644
+ </popupset> + </popupset>
+ <box id="appMenu-viewCache" hidden="true"/> + <box id="appMenu-viewCache" hidden="true"/>
+ +
+<vbox id="titlebar">
+ <hbox id="titlebar-content">
+ <spacer id="titlebar-spacer" flex="1"/>
+ <hbox id="titlebar-buttonbox-container">
+ <hbox id="titlebar-buttonbox" class="titlebar-color">
+ <toolbarbutton class="titlebar-button" id="titlebar-min" oncommand="window.minimize();"/>
+ <toolbarbutton class="titlebar-button" id="titlebar-max" oncommand="onTitlebarMaxClick();"/>
+ <toolbarbutton class="titlebar-button" id="titlebar-close" command="cmd_closeWindow"/>
+ </hbox>
+ </hbox>
+#ifdef XP_MACOSX
+ <!-- OS X does not natively support RTL for its titlebar items, so we prevent this secondary
+ buttonbox from reversing order in RTL by forcing an LTR direction. -->
+ <hbox id="titlebar-secondary-buttonbox" dir="ltr">
+ <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;" aria-live="polite"/>
+ <hbox class="private-browsing-indicator"/>
+ <hbox id="titlebar-fullscreen-button"/>
+ </hbox>
+#endif
+ </hbox>
+</vbox>
+
+ <toolbox id="navigator-toolbox"> + <toolbox id="navigator-toolbox">
+ <!-- Menu --> +
+ <toolbar type="menubar" id="toolbar-menubar" + <vbox id="titlebar">
+ class="browser-toolbar chromeclass-menubar titlebar-color" + <!-- Menu -->
+ customizable="true" + <toolbar type="menubar" id="toolbar-menubar"
+ mode="icons" + class="browser-toolbar chromeclass-menubar titlebar-color"
+ customizable="true"
+ mode="icons"
+#ifdef MENUBAR_CAN_AUTOHIDE +#ifdef MENUBAR_CAN_AUTOHIDE
+ toolbarname="&menubarCmd.label;" + toolbarname="&menubarCmd.label;"
+ accesskey="&menubarCmd.accesskey;" + accesskey="&menubarCmd.accesskey;"
+ autohide="true" + autohide="true"
+#endif +#endif
+ context="toolbar-context-menu"> + context="toolbar-context-menu">
+ <toolbaritem id="menubar-items" align="center"> + <toolbaritem id="menubar-items" align="center">
+# The entire main menubar is placed into browser-menubar.inc, so that it can be +# The entire main menubar is placed into browser-menubar.inc, so that it can be
+# shared with other top level windows in macWindow.inc.xul. +# shared with other top level windows in macWindow.inc.xul.
+#include browser-menubar.inc +#include browser-menubar.inc
+ </toolbaritem> + </toolbaritem>
+ <spacer flex="1" skipintoolbarset="true" ordinal="1000"/>
+#include titlebar-items.inc.xul
+ </toolbar>
+
+ <toolbar id="TabsToolbar"
+ class="browser-toolbar titlebar-color"
+ fullscreentoolbar="true"
+ customizable="true"
+ customizationtarget="TabsToolbar-customization-target"
+ mode="icons"
+ aria-label="&tabsToolbar.label;"
+ context="toolbar-context-menu"
+ flex="1">
+ <vbox flex="1" class="toolbar-items">
+ <spacer flex="1000"/>
+
+ <hbox id="TabsToolbar-customization-target" flex="1">
+ <hbox class="titlebar-spacer" type="pre-tabs"
+ skipintoolbarset="true"/>
+
+ <tabs id="tabbrowser-tabs"
+ flex="1"
+ setfocus="false"
+ tooltip="tabbrowser-tab-tooltip"
+ stopwatchid="FX_TAB_CLICK_MS">
+ <tab class="tabbrowser-tab" selected="true" visuallyselected="true" fadein="true"/>
+ </tabs>
+
+ <toolbarbutton id="new-tab-button"
+ class="toolbarbutton-1 chromeclass-toolbar-additional"
+ label="&tabCmd.label;"
+ command="cmd_newNavigatorTab"
+ onclick="checkForMiddleClick(this, event);"
+ tooltip="dynamic-shortcut-tooltip"
+ ondrop="newTabButtonObserver.onDrop(event)"
+ ondragover="newTabButtonObserver.onDragOver(event)"
+ ondragenter="newTabButtonObserver.onDragOver(event)"
+ ondragexit="newTabButtonObserver.onDragExit(event)"
+ cui-areatype="toolbar"
+ removable="true"/>
+
+ <toolbarbutton id="alltabs-button"
+ class="toolbarbutton-1 chromeclass-toolbar-additional tabs-alltabs-button badged-button"
+ oncommand="gTabsPanel.showAllTabsPanel();"
+ label="&listAllTabs.label;"
+ tooltiptext="&listAllTabs.label;"
+ removable="false"/>
+
+ <hbox class="titlebar-spacer" type="post-tabs"
+ ordinal="1000"
+ skipintoolbarset="true"/>
+ </hbox>
+ </vbox>
+ +
+#ifndef XP_MACOSX +#ifndef XP_MACOSX
+ <hbox class="titlebar-placeholder" type="caption-buttons" ordinal="1000" + <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;"
+ skipintoolbarset="true"/> + ordinal="1000"
+ aria-live="polite" skipintoolbarset="true"/>
+ <hbox class="private-browsing-indicator" skipintoolbarset="true"
+ ordinal="1000"/>
+#endif +#endif
+ </toolbar>
+ +
+ <toolbar id="TabsToolbar" +#include titlebar-items.inc.xul
+ class="browser-toolbar titlebar-color"
+ fullscreentoolbar="true"
+ customizable="true"
+ mode="icons"
+ aria-label="&tabsToolbar.label;"
+ context="toolbar-context-menu">
+ <hbox class="titlebar-placeholder" type="pre-tabs"
+ skipintoolbarset="true"/>
+
+ <tabs id="tabbrowser-tabs"
+ flex="1"
+ setfocus="false"
+ tooltip="tabbrowser-tab-tooltip"
+ stopwatchid="FX_TAB_CLICK_MS">
+ <tab class="tabbrowser-tab" selected="true" visuallyselected="true" fadein="true"/>
+ </tabs>
+
+ <toolbarbutton id="new-tab-button"
+ class="toolbarbutton-1 chromeclass-toolbar-additional"
+ label="&tabCmd.label;"
+ command="cmd_newNavigatorTab"
+ onclick="checkForMiddleClick(this, event);"
+ tooltip="dynamic-shortcut-tooltip"
+ ondrop="newTabButtonObserver.onDrop(event)"
+ ondragover="newTabButtonObserver.onDragOver(event)"
+ ondragenter="newTabButtonObserver.onDragOver(event)"
+ ondragexit="newTabButtonObserver.onDragExit(event)"
+ cui-areatype="toolbar"
+ removable="true"/>
+
+ <toolbarbutton id="alltabs-button"
+ class="toolbarbutton-1 chromeclass-toolbar-additional tabs-alltabs-button badged-button"
+ oncommand="gTabsPanel.showAllTabsPanel();"
+ label="&listAllTabs.label;"
+ tooltiptext="&listAllTabs.label;"
+ removable="false"/>
+
+ <hbox class="titlebar-placeholder" type="post-tabs"
+ ordinal="1000"
+ skipintoolbarset="true"/>
+
+ <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;"
+ ordinal="1000"
+ aria-live="polite" skipintoolbarset="true"/>
+ <hbox class="private-browsing-indicator" skipintoolbarset="true"
+ ordinal="1000"/>
+ <hbox class="titlebar-placeholder" type="caption-buttons"
+#ifndef XP_MACOSX
+ ordinal="1000"
+#endif
+ skipintoolbarset="true"/>
+ +
+#ifdef XP_MACOSX +#ifdef XP_MACOSX
+ <hbox class="titlebar-placeholder" type="fullscreen-button" + <!-- OS X does not natively support RTL for its titlebar items, so we prevent this secondary
+ skipintoolbarset="true"/> + buttonbox from reversing order in RTL by forcing an LTR direction. -->
+ <hbox id="titlebar-secondary-buttonbox" dir="ltr">
+ <button class="accessibility-indicator" tooltiptext="&accessibilityIndicator.tooltip;" aria-live="polite"/>
+ <hbox class="private-browsing-indicator"/>
+ <hbox id="titlebar-fullscreen-button"/>
+ </hbox>
+#endif +#endif
+ </toolbar> + </toolbar>
+
+ </vbox>
+ +
+ <toolbar id="nav-bar" + <toolbar id="nav-bar"
+ class="browser-toolbar" + class="browser-toolbar"
@ -993,6 +1001,8 @@ new file mode 100644
+ tooltiptext="&urlbar.midiNotificationAnchor.tooltip;"/> + tooltiptext="&urlbar.midiNotificationAnchor.tooltip;"/>
+ <image id="webauthn-notification-icon" class="notification-anchor-icon" role="button" + <image id="webauthn-notification-icon" class="notification-anchor-icon" role="button"
+ tooltiptext="&urlbar.webAuthnAnchor.tooltip;"/> + tooltiptext="&urlbar.webAuthnAnchor.tooltip;"/>
+ <image id="storage-access-notification-icon" class="notification-anchor-icon storage-access-icon" role="button"
+ tooltiptext="&urlbar.storageAccessAnchor.tooltip;"/>
+ </box> + </box>
+ <image id="connection-icon"/> + <image id="connection-icon"/>
+ <image id="extension-icon"/> + <image id="extension-icon"/>
@ -1131,6 +1141,10 @@ new file mode 100644
+ tooltiptext="&fullScreenClose.tooltip;" + tooltiptext="&fullScreenClose.tooltip;"
+ oncommand="BrowserTryToCloseWindow();"/> + oncommand="BrowserTryToCloseWindow();"/>
+ </hbox> + </hbox>
+
+ <box id="library-animatable-box" class="toolbarbutton-animatable-box">
+ <image class="toolbarbutton-animatable-image"/>
+ </box>
+ </toolbar> + </toolbar>
+ +
+ <toolbar id="PersonalToolbar" + <toolbar id="PersonalToolbar"
@ -1312,9 +1326,6 @@ new file mode 100644
+ <searchbar id="searchbar" flex="1"/> + <searchbar id="searchbar" flex="1"/>
+ </toolbaritem> + </toolbaritem>
+ </toolbarpalette> + </toolbarpalette>
+ <box id="library-animatable-box" class="toolbarbutton-animatable-box">
+ <image class="toolbarbutton-animatable-image"/>
+ </box>
+ </toolbox> + </toolbox>
+ +
+ <hbox id="fullscr-toggler" hidden="true"/> + <hbox id="fullscr-toggler" hidden="true"/>
@ -1343,7 +1354,7 @@ new file mode 100644
+ +
+ <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/> + <splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" hidden="true"/>
+ <vbox id="appcontent" flex="1"> + <vbox id="appcontent" flex="1">
+ <notificationbox id="high-priority-global-notificationbox" notificationside="top"/> + <!-- gHighPriorityNotificationBox will be added here lazily. -->
+ <tabbox id="tabbrowser-tabbox" + <tabbox id="tabbrowser-tabbox"
+ flex="1" tabcontainer="tabbrowser-tabs"> + flex="1" tabcontainer="tabbrowser-tabs">
+ <tabpanels id="tabbrowser-tabpanels" + <tabpanels id="tabbrowser-tabpanels"
@ -1386,7 +1397,7 @@ new file mode 100644
+ </html:div> + </html:div>
+ +
+ <vbox id="browser-bottombox" layer="true"> + <vbox id="browser-bottombox" layer="true">
+ <notificationbox id="global-notificationbox" notificationside="bottom"/> + <!-- gNotificationBox will be added here lazily. -->
+ </vbox> + </vbox>
+ +
+</window> +</window>
@ -1475,7 +1486,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
--- a/browser/components/preferences/in-content/main.js --- a/browser/components/preferences/in-content/main.js
+++ b/browser/components/preferences/in-content/main.js +++ b/browser/components/preferences/in-content/main.js
@@ -283,16 +283,23 @@ var gMainPane = { @@ -289,16 +289,23 @@ var gMainPane = {
this._backoffIndex++ : backoffTimes.length - 1]); this._backoffIndex++ : backoffTimes.length - 1]);
}; };
@ -1499,7 +1510,7 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
performanceSettingsLink.setAttribute("href", performanceSettingsUrl); performanceSettingsLink.setAttribute("href", performanceSettingsUrl);
this.updateDefaultPerformanceSettingsPref(); this.updateDefaultPerformanceSettingsPref();
@@ -938,16 +945,27 @@ var gMainPane = { @@ -1012,16 +1019,27 @@ var gMainPane = {
// Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser. // Reset exponential backoff delay time in order to do visual update in pollForDefaultBrowser.
this._backoffIndex = 0; this._backoffIndex = 0;
@ -1792,7 +1803,7 @@ new file mode 100644
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
--- a/browser/installer/package-manifest.in --- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in
@@ -458,16 +458,18 @@ @@ -451,16 +451,18 @@
@RESPATH@/browser/defaults/settings/pinning @RESPATH@/browser/defaults/settings/pinning
@RESPATH@/browser/defaults/settings/main @RESPATH@/browser/defaults/settings/main

View file

@ -10,7 +10,7 @@
# This also means only STABLE upstream releases, NO betas. # This also means only STABLE upstream releases, NO betas.
# This is a discussed topic. Please, do not flame it again. # This is a discussed topic. Please, do not flame it again.
%define major 64.0.2 %define major 65.0
%define ff_epoch 0 %define ff_epoch 0
# (tpg) set version HERE !!! # (tpg) set version HERE !!!
%define realver %{major} %define realver %{major}
@ -37,7 +37,7 @@ Summary: Next generation web browser
Name: firefox Name: firefox
Version: %{major} Version: %{major}
Epoch: %{ff_epoch} Epoch: %{ff_epoch}
Release: 2 Release: 1
License: MPLv1+ License: MPLv1+
Group: Networking/WWW Group: Networking/WWW
Url: http://www.mozilla.com/firefox/ Url: http://www.mozilla.com/firefox/
@ -64,13 +64,13 @@ Patch35: firefox-37-build-with-time-independent-uuids.patch
# Fedora specific patches # Fedora specific patches
# Unable to install addons from https pages # Unable to install addons from https pages
Patch215: firefox-enable-addons.patch Patch215: firefox-enable-addons.patch
Patch219: rhbz-1173156.patch
Patch219: mozilla-ntlm-full-path.patch
Patch300: firefox-56.0-build-error.patch Patch300: firefox-56.0-build-error.patch
# Build errors in 62.0 # Build errors in 62.0
Patch302: firefox-62.0.2-include-cmath.patch Patch302: firefox-62.0.2-include-cmath.patch
Patch303: build-disable-elfhack.patch
BuildRequires: gtk+2-devel BuildRequires: gtk+2-devel
%if %{toolkit_gtk3} %if %{toolkit_gtk3}
@ -207,11 +207,11 @@ Files and macros mainly for building Firefox extensions.
# Fedora patches # Fedora patches
%patch215 -p1 -b .addons %patch215 -p1 -b .addons
%patch219 -p2 -b .rhbz-1173156
%patch219 -p1 -b .ntlm
%patch300 -p1 %patch300 -p1
%patch302 -p1 %patch302 -p1
%patch303 -p1
pushd js/src pushd js/src
autoconf-2.13 autoconf-2.13

View file

@ -1,5 +1,5 @@
# HG changeset patch # HG changeset patch
# Parent d685597ba96ea004052e40ec0c80f422ea0e365c # Parent ff3da33eabc1d8760ec41a87afbaf44ded300ede
Description: Add KDE integration to Firefox (toolkit parts) Description: Add KDE integration to Firefox (toolkit parts)
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org> Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
Author: Lubos Lunak <lunak@suse.com> Author: Lubos Lunak <lunak@suse.com>
@ -27,7 +27,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
#ifdef XP_WIN #ifdef XP_WIN
#include "windows.h" #include "windows.h"
#endif #endif
@@ -4908,25 +4909,37 @@ Preferences::InitInitialObjects(bool aIs @@ -4466,25 +4467,37 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co
// application pref files for backwards compatibility. // application pref files for backwards compatibility.
static const char* specialFiles[] = { static const char* specialFiles[] = {
#if defined(XP_MACOSX) #if defined(XP_MACOSX)
@ -57,15 +57,15 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
+ } + }
+ } + }
+ +
rv = pref_LoadPrefsInDir( rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles,
defaultPrefDir, specialFiles, ArrayLength(specialFiles)); ArrayLength(specialFiles));
if (NS_FAILED(rv)) { if (NS_FAILED(rv)) {
NS_WARNING("Error parsing application default preferences."); NS_WARNING("Error parsing application default preferences.");
} }
// Load jar:$app/omni.jar!/defaults/preferences/*.js // Load jar:$app/omni.jar!/defaults/preferences/*.js
// or jar:$gre/omni.jar!/defaults/preferences/*.js. // or jar:$gre/omni.jar!/defaults/preferences/*.js.
@@ -4975,17 +4988,17 @@ Preferences::InitInitialObjects(bool aIs @@ -4532,17 +4545,17 @@ float MOZ_MAYBE_UNUSED GetPref<float>(co
} }
nsCOMPtr<nsIFile> path = do_QueryInterface(elem); nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
@ -83,7 +83,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
SetupTelemetryPref(); SetupTelemetryPref();
} }
NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID, NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID, nullptr,
diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build diff --git a/modules/libpref/moz.build b/modules/libpref/moz.build
--- a/modules/libpref/moz.build --- a/modules/libpref/moz.build
+++ b/modules/libpref/moz.build +++ b/modules/libpref/moz.build
@ -171,7 +171,7 @@ diff --git a/toolkit/components/downloads/moz.build b/toolkit/components/downloa
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
--- a/toolkit/content/jar.mn --- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn +++ b/toolkit/content/jar.mn
@@ -68,16 +68,18 @@ toolkit.jar: @@ -67,16 +67,18 @@ toolkit.jar:
content/global/bindings/calendar.js (widgets/calendar.js) content/global/bindings/calendar.js (widgets/calendar.js)
content/global/bindings/checkbox.xml (widgets/checkbox.xml) content/global/bindings/checkbox.xml (widgets/checkbox.xml)
content/global/bindings/datekeeper.js (widgets/datekeeper.js) content/global/bindings/datekeeper.js (widgets/datekeeper.js)
@ -183,18 +183,18 @@ diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
+* content/global/bindings/dialog-kde.xml (widgets/dialog-kde.xml) +* content/global/bindings/dialog-kde.xml (widgets/dialog-kde.xml)
+% override chrome://global/content/bindings/dialog.xml chrome://global/content/bindings/dialog-kde.xml desktop=kde +% override chrome://global/content/bindings/dialog.xml chrome://global/content/bindings/dialog-kde.xml desktop=kde
content/global/bindings/general.xml (widgets/general.xml) content/global/bindings/general.xml (widgets/general.xml)
content/global/bindings/groupbox.xml (widgets/groupbox.xml)
content/global/bindings/menu.xml (widgets/menu.xml) content/global/bindings/menu.xml (widgets/menu.xml)
content/global/bindings/menulist.xml (widgets/menulist.xml) content/global/bindings/menulist.xml (widgets/menulist.xml)
content/global/bindings/notification.xml (widgets/notification.xml) content/global/bindings/notification.xml (widgets/notification.xml)
content/global/bindings/numberbox.xml (widgets/numberbox.xml) content/global/bindings/numberbox.xml (widgets/numberbox.xml)
content/global/bindings/popup.xml (widgets/popup.xml) content/global/bindings/popup.xml (widgets/popup.xml)
content/global/bindings/radio.xml (widgets/radio.xml) content/global/bindings/radio.xml (widgets/radio.xml)
content/global/bindings/richlistbox.xml (widgets/richlistbox.xml)
diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml diff --git a/toolkit/content/widgets/dialog-kde.xml b/toolkit/content/widgets/dialog-kde.xml
new file mode 100644 new file mode 100644
--- /dev/null --- /dev/null
+++ b/toolkit/content/widgets/dialog-kde.xml +++ b/toolkit/content/widgets/dialog-kde.xml
@@ -0,0 +1,475 @@ @@ -0,0 +1,477 @@
+<?xml version="1.0"?> +<?xml version="1.0"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public +<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this + - License, v. 2.0. If a copy of the MPL was not distributed with this
@ -495,6 +495,8 @@ new file mode 100644
+ var accessKey = this.mStrBundle.GetStringFromName("accesskey-" + dlgtype); + var accessKey = this.mStrBundle.GetStringFromName("accesskey-" + dlgtype);
+ if (accessKey) + if (accessKey)
+ button.setAttribute("accesskey", accessKey); + button.setAttribute("accesskey", accessKey);
+ } else if (this.hasAttribute("buttonid" + dlgtype)) {
+ document.l10n.setAttributes(button, this.getAttribute("buttonid" + dlgtype));
+ } + }
+ } + }
+ // allow specifying alternate icons in the dialog header + // allow specifying alternate icons in the dialog header
@ -673,7 +675,7 @@ new file mode 100644
diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downloads/nsHelperAppDlg.js diff --git a/toolkit/mozapps/downloads/nsHelperAppDlg.js b/toolkit/mozapps/downloads/nsHelperAppDlg.js
--- a/toolkit/mozapps/downloads/nsHelperAppDlg.js --- a/toolkit/mozapps/downloads/nsHelperAppDlg.js
+++ b/toolkit/mozapps/downloads/nsHelperAppDlg.js +++ b/toolkit/mozapps/downloads/nsHelperAppDlg.js
@@ -1031,30 +1031,60 @@ nsUnknownContentTypeDialog.prototype = { @@ -1030,30 +1030,60 @@ nsUnknownContentTypeDialog.prototype = {
if (params.handlerApp && if (params.handlerApp &&
params.handlerApp.executable && params.handlerApp.executable &&
@ -763,57 +765,58 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
+#include "nsKDEUtils.h" +#include "nsKDEUtils.h"
class nsUnixSystemProxySettings final : public nsISystemProxySettings { class nsUnixSystemProxySettings final : public nsISystemProxySettings {
public: public:
NS_DECL_ISUPPORTS NS_DECL_ISUPPORTS
NS_DECL_NSISYSTEMPROXYSETTINGS NS_DECL_NSISYSTEMPROXYSETTINGS
nsUnixSystemProxySettings() nsUnixSystemProxySettings() : mSchemeProxySettings(4) {}
: mSchemeProxySettings(4) nsresult Init();
@@ -39,16 +40,17 @@ private: @@ -42,16 +43,18 @@ class nsUnixSystemProxySettings final :
nsCOMPtr<nsIGSettingsService> mGSettings; nsACString& aResult);
nsCOMPtr<nsIGSettingsCollection> mProxySettings; nsresult GetProxyFromGConf(const nsACString& aScheme, const nsACString& aHost,
nsInterfaceHashtable<nsCStringHashKey, nsIGSettingsCollection> mSchemeProxySettings; int32_t aPort, nsACString& aResult);
bool IsProxyMode(const char* aMode); nsresult GetProxyFromGSettings(const nsACString& aScheme,
nsresult SetProxyResultFromGConf(const char* aKeyBase, const char* aType, nsACString& aResult); const nsACString& aHost, int32_t aPort,
nsresult GetProxyFromGConf(const nsACString& aScheme, const nsACString& aHost, int32_t aPort, nsACString& aResult); nsACString& aResult);
nsresult GetProxyFromGSettings(const nsACString& aScheme, const nsACString& aHost, int32_t aPort, nsACString& aResult); nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* aType,
nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* aType, nsACString& aResult); nsACString& aResult);
+ nsresult GetProxyFromKDE(const nsACString& aScheme, const nsACString& aHost, PRInt32 aPort, nsACString& aResult); + nsresult GetProxyFromKDE(const nsACString& aScheme, const nsACString& aHost,
+ PRInt32 aPort, nsACString& aResult);
}; };
NS_IMPL_ISUPPORTS(nsUnixSystemProxySettings, nsISystemProxySettings) NS_IMPL_ISUPPORTS(nsUnixSystemProxySettings, nsISystemProxySettings)
NS_IMETHODIMP NS_IMETHODIMP
nsUnixSystemProxySettings::GetMainThreadOnly(bool *aMainThreadOnly) nsUnixSystemProxySettings::GetMainThreadOnly(bool* aMainThreadOnly) {
{ // dbus prevents us from being threadsafe, but this routine should not block
// dbus prevents us from being threadsafe, but this routine should not block anyhow // anyhow
@@ -505,16 +507,19 @@ nsUnixSystemProxySettings::GetProxyFromG @@ -488,16 +491,19 @@ nsresult nsUnixSystemProxySettings::GetP
return NS_OK;
}
nsresult nsresult nsUnixSystemProxySettings::GetProxyForURI(const nsACString& aSpec,
nsUnixSystemProxySettings::GetProxyForURI(const nsACString & aSpec, const nsACString& aScheme,
const nsACString & aScheme, const nsACString& aHost,
const nsACString & aHost, const int32_t aPort,
const int32_t aPort, nsACString& aResult) {
nsACString & aResult)
{
+ if (nsKDEUtils::kdeSupport()) + if (nsKDEUtils::kdeSupport())
+ return GetProxyFromKDE(aScheme, aHost, aPort, aResult); + return GetProxyFromKDE(aScheme, aHost, aPort, aResult);
+ +
if (mProxySettings) { if (mProxySettings) {
nsresult rv = GetProxyFromGSettings(aScheme, aHost, aPort, aResult); nsresult rv = GetProxyFromGSettings(aScheme, aHost, aPort, aResult);
if (NS_SUCCEEDED(rv)) if (NS_SUCCEEDED(rv)) return rv;
return rv;
} }
if (mGConf) if (mGConf) return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
return GetProxyFromGConf(aScheme, aHost, aPort, aResult);
@@ -540,8 +545,34 @@ static const mozilla::Module::ContractID return GetProxyFromEnvironment(aScheme, aHost, aPort, aResult);
}
@@ -521,8 +527,34 @@ static const mozilla::Module::CIDEntry k
static const mozilla::Module::ContractIDEntry kUnixProxyContracts[] = {
{NS_SYSTEMPROXYSETTINGS_CONTRACTID, &kNS_UNIXSYSTEMPROXYSERVICE_CID},
{nullptr}};
static const mozilla::Module kUnixProxyModule = { static const mozilla::Module kUnixProxyModule = {
mozilla::Module::kVersion, mozilla::Module::kVersion, kUnixProxyCIDs, kUnixProxyContracts};
kUnixProxyCIDs,
kUnixProxyContracts
};
NSMODULE_DEFN(nsUnixProxyModule) = &kUnixProxyModule; NSMODULE_DEFN(nsUnixProxyModule) = &kUnixProxyModule;
+ +
@ -845,7 +848,7 @@ diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/sy
diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build
--- a/toolkit/xre/moz.build --- a/toolkit/xre/moz.build
+++ b/toolkit/xre/moz.build +++ b/toolkit/xre/moz.build
@@ -68,17 +68,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co @@ -73,17 +73,19 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'co
'../components/printingui', '../components/printingui',
] ]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit': elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
@ -1282,19 +1285,19 @@ diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandle
+#include "unix/nsCommonRegistry.h" +#include "unix/nsCommonRegistry.h"
#endif #endif
using mozilla::dom::HandlerInfo;
using mozilla::dom::HandlerApp;
using mozilla::dom::ContentHandlerService; using mozilla::dom::ContentHandlerService;
using mozilla::dom::HandlerApp;
using mozilla::dom::HandlerInfo;
using mozilla::dom::RemoteHandlerApp; using mozilla::dom::RemoteHandlerApp;
namespace { namespace {
@@ -265,17 +265,17 @@ HandlerServiceParent::RecvExists(const H @@ -246,17 +246,17 @@ mozilla::ipc::IPCResult HandlerServicePa
handlerSvc->Exists(info, exists);
return IPC_OK();
} }
mozilla::ipc::IPCResult mozilla::ipc::IPCResult HandlerServiceParent::RecvExistsForProtocol(
HandlerServiceParent::RecvExistsForProtocol(const nsCString& aProtocolScheme, const nsCString& aProtocolScheme, bool* aHandlerExists) {
bool* aHandlerExists)
{
#ifdef MOZ_WIDGET_GTK #ifdef MOZ_WIDGET_GTK
// Check the GNOME registry for a protocol handler // Check the GNOME registry for a protocol handler
- *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme.get()); - *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme.get());
@ -1305,8 +1308,8 @@ diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandle
return IPC_OK(); return IPC_OK();
} }
mozilla::ipc::IPCResult mozilla::ipc::IPCResult HandlerServiceParent::RecvGetTypeFromExtension(
HandlerServiceParent::RecvGetTypeFromExtension(const nsCString& aFileExtension, const nsCString& aFileExtension, nsCString* type) {
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
--- a/uriloader/exthandler/moz.build --- a/uriloader/exthandler/moz.build
+++ b/uriloader/exthandler/moz.build +++ b/uriloader/exthandler/moz.build
@ -1573,7 +1576,7 @@ new file mode 100644
diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp --- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
+++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp +++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
@@ -1,50 +1,53 @@ @@ -1,47 +1,50 @@
/* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* *
* This Source Code Form is subject to the terms of the Mozilla Public * This Source Code Form is subject to the terms of the Mozilla Public
@ -1594,21 +1597,17 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
+#include "nsKDEUtils.h" +#include "nsKDEUtils.h"
+#endif +#endif
nsresult nsresult nsMIMEInfoUnix::LoadUriInternal(nsIURI *aURI) {
nsMIMEInfoUnix::LoadUriInternal(nsIURI * aURI)
{
- return nsGNOMERegistry::LoadURL(aURI); - return nsGNOMERegistry::LoadURL(aURI);
+ return nsCommonRegistry::LoadURL(aURI); + return nsCommonRegistry::LoadURL(aURI);
} }
NS_IMETHODIMP NS_IMETHODIMP
nsMIMEInfoUnix::GetHasDefaultHandler(bool *_retval) nsMIMEInfoUnix::GetHasDefaultHandler(bool *_retval) {
{
// if mDefaultApplication is set, it means the application has been set from // if mDefaultApplication is set, it means the application has been set from
// either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
// give the GNOME answer. // give the GNOME answer.
if (mDefaultApplication) if (mDefaultApplication) return nsMIMEInfoImpl::GetHasDefaultHandler(_retval);
return nsMIMEInfoImpl::GetHasDefaultHandler(_retval);
*_retval = false; *_retval = false;
@ -1616,8 +1615,9 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
- *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get()); - *_retval = nsGNOMERegistry::HandlerExists(mSchemeOrType.get());
+ *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get()); + *_retval = nsCommonRegistry::HandlerExists(mSchemeOrType.get());
} else { } else {
- RefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mSchemeOrType); RefPtr<nsMIMEInfoBase> mimeInfo =
+ RefPtr<nsMIMEInfoBase> mimeInfo = nsCommonRegistry::GetFromType(mSchemeOrType); - nsGNOMERegistry::GetFromType(mSchemeOrType);
+ nsCommonRegistry::GetFromType(mSchemeOrType);
if (!mimeInfo) { if (!mimeInfo) {
nsAutoCString ext; nsAutoCString ext;
nsresult rv = GetPrimaryExtension(ext); nsresult rv = GetPrimaryExtension(ext);
@ -1626,17 +1626,17 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
+ mimeInfo = nsCommonRegistry::GetFromExtension(ext); + mimeInfo = nsCommonRegistry::GetFromExtension(ext);
} }
} }
if (mimeInfo) if (mimeInfo) *_retval = true;
*_retval = true;
} }
if (*_retval) if (*_retval) return NS_OK;
return NS_OK;
@@ -59,16 +62,33 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns return NS_OK;
@@ -51,16 +54,33 @@ nsresult nsMIMEInfoUnix::LaunchDefaultWi
// if mDefaultApplication is set, it means the application has been set from
// either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to // either /etc/mailcap or ${HOME}/.mailcap, in which case we don't want to
// give the GNOME answer. // give the GNOME answer.
if (mDefaultApplication) if (mDefaultApplication) return nsMIMEInfoImpl::LaunchDefaultWithFile(aFile);
return nsMIMEInfoImpl::LaunchDefaultWithFile(aFile);
nsAutoCString nativePath; nsAutoCString nativePath;
aFile->GetNativePath(nativePath); aFile->GetNativePath(nativePath);
@ -1665,7 +1665,7 @@ diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler
// nsGIOMimeApp->Launch wants a URI string instead of local file // nsGIOMimeApp->Launch wants a URI string instead of local file
nsresult rv; nsresult rv;
nsCOMPtr<nsIIOService> ioservice = do_GetService(NS_IOSERVICE_CONTRACTID, &rv); nsCOMPtr<nsIIOService> ioservice =
diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exthandler/unix/nsOSHelperAppService.cpp diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
--- a/uriloader/exthandler/unix/nsOSHelperAppService.cpp --- a/uriloader/exthandler/unix/nsOSHelperAppService.cpp
+++ b/uriloader/exthandler/unix/nsOSHelperAppService.cpp +++ b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
@ -1688,10 +1688,10 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#include "nsIURL.h" #include "nsIURL.h"
#include "nsIFileStreams.h" #include "nsIFileStreams.h"
#include "nsILineInputStream.h" #include "nsILineInputStream.h"
@@ -1122,17 +1122,17 @@ nsOSHelperAppService::GetHandlerAndDescr @@ -1031,17 +1031,17 @@ nsresult nsOSHelperAppService::GetHandle
nsresult nsOSHelperAppService::OSProtocolHandlerExists(const char * aProtocolScheme, bool * aHandlerExists) nsresult nsOSHelperAppService::OSProtocolHandlerExists(
{ const char* aProtocolScheme, bool* aHandlerExists) {
nsresult rv = NS_OK; nsresult rv = NS_OK;
if (!XRE_IsContentProcess()) { if (!XRE_IsContentProcess()) {
@ -1704,17 +1704,17 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#endif #endif
} else { } else {
*aHandlerExists = false; *aHandlerExists = false;
nsCOMPtr<nsIHandlerService> handlerSvc = do_GetService(NS_HANDLERSERVICE_CONTRACTID, &rv); nsCOMPtr<nsIHandlerService> handlerSvc =
do_GetService(NS_HANDLERSERVICE_CONTRACTID, &rv);
if (NS_SUCCEEDED(rv) && handlerSvc) { if (NS_SUCCEEDED(rv) && handlerSvc) {
rv = handlerSvc->ExistsForProtocol(nsCString(aProtocolScheme), aHandlerExists); @@ -1051,17 +1051,17 @@ nsresult nsOSHelperAppService::OSProtoco
@@ -1140,17 +1140,17 @@ nsresult nsOSHelperAppService::OSProtoco
} }
return rv; return rv;
} }
NS_IMETHODIMP nsOSHelperAppService::GetApplicationDescription(const nsACString& aScheme, nsAString& _retval) NS_IMETHODIMP nsOSHelperAppService::GetApplicationDescription(
{ const nsACString& aScheme, nsAString& _retval) {
#ifdef MOZ_WIDGET_GTK #ifdef MOZ_WIDGET_GTK
- nsGNOMERegistry::GetAppDescForScheme(aScheme, _retval); - nsGNOMERegistry::GetAppDescForScheme(aScheme, _retval);
+ nsCommonRegistry::GetAppDescForScheme(aScheme, _retval); + nsCommonRegistry::GetAppDescForScheme(aScheme, _retval);
@ -1724,32 +1724,32 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
#endif #endif
} }
nsresult nsOSHelperAppService::GetFileTokenForPath(const char16_t * platformAppPath, nsIFile ** aFile) nsresult nsOSHelperAppService::GetFileTokenForPath(
{ const char16_t* platformAppPath, nsIFile** aFile) {
@@ -1237,17 +1237,17 @@ nsOSHelperAppService::GetFromExtension(c @@ -1142,17 +1142,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
mime_types_description, nsresult rv =
true); LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
minorType, mime_types_description, true);
if (NS_FAILED(rv) || majorType.IsEmpty()) { if (NS_FAILED(rv) || majorType.IsEmpty()) {
#ifdef MOZ_WIDGET_GTK #ifdef MOZ_WIDGET_GTK
LOG(("Looking in GNOME registry\n")); LOG(("Looking in GNOME registry\n"));
RefPtr<nsMIMEInfoBase> gnomeInfo = RefPtr<nsMIMEInfoBase> gnomeInfo =
- nsGNOMERegistry::GetFromExtension(aFileExt); - nsGNOMERegistry::GetFromExtension(aFileExt);
+ nsCommonRegistry::GetFromExtension(aFileExt); + nsCommonRegistry::GetFromExtension(aFileExt);
if (gnomeInfo) { if (gnomeInfo) {
LOG(("Got MIMEInfo from GNOME registry\n")); LOG(("Got MIMEInfo from GNOME registry\n"));
return gnomeInfo.forget(); return gnomeInfo.forget();
} }
#endif #endif
rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), rv = LookUpTypeAndDescription(NS_ConvertUTF8toUTF16(aFileExt), majorType,
majorType, minorType, mime_types_description, false);
@@ -1358,17 +1358,17 @@ nsOSHelperAppService::GetFromType(const @@ -1254,17 +1254,17 @@ already_AddRefed<nsMIMEInfoBase> nsOSHel
// Now look up our extensions
nsAutoString extensions, mime_types_description; nsAutoString extensions, mime_types_description;
LookUpExtensionsAndDescription(majorType, LookUpExtensionsAndDescription(majorType, minorType, extensions,
minorType,
extensions,
mime_types_description); mime_types_description);
#ifdef MOZ_WIDGET_GTK #ifdef MOZ_WIDGET_GTK
@ -1757,17 +1757,17 @@ diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exth
- RefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType); - RefPtr<nsMIMEInfoBase> gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType);
+ RefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType); + RefPtr<nsMIMEInfoBase> gnomeInfo = nsCommonRegistry::GetFromType(aMIMEType);
if (gnomeInfo) { if (gnomeInfo) {
LOG(("Got MIMEInfo from GNOME registry without extensions; setting them " LOG(
"to %s\n", NS_LossyConvertUTF16toASCII(extensions).get())); ("Got MIMEInfo from GNOME registry without extensions; setting them "
"to %s\n",
NS_LossyConvertUTF16toASCII(extensions).get()));
NS_ASSERTION(!gnomeInfo->HasExtensions(), "How'd that happen?"); NS_ASSERTION(!gnomeInfo->HasExtensions(), "How'd that happen?");
gnomeInfo->SetFileExtensions(NS_ConvertUTF16toUTF8(extensions)); gnomeInfo->SetFileExtensions(NS_ConvertUTF16toUTF8(extensions));
return gnomeInfo.forget();
}
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
--- a/widget/gtk/moz.build --- a/widget/gtk/moz.build
+++ b/widget/gtk/moz.build +++ b/widget/gtk/moz.build
@@ -123,16 +123,17 @@ include('/ipc/chromium/chromium-config.m @@ -116,16 +116,17 @@ include('/ipc/chromium/chromium-config.m
FINAL_LIBRARY = 'xul' FINAL_LIBRARY = 'xul'
@ -1823,13 +1823,13 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
#define MAX_PREVIEW_SOURCE_SIZE 4096 #define MAX_PREVIEW_SOURCE_SIZE 4096
nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr; nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;
@@ -246,17 +248,19 @@ nsFilePicker::AppendFilters(int32_t aFil @@ -227,17 +229,19 @@ nsFilePicker::AppendFilters(int32_t aFil
mAllowURLs = !!(aFilterMask & filterAllowURLs);
return nsBaseFilePicker::AppendFilters(aFilterMask); return nsBaseFilePicker::AppendFilters(aFilterMask);
} }
NS_IMETHODIMP NS_IMETHODIMP
nsFilePicker::AppendFilter(const nsAString& aTitle, const nsAString& aFilter) nsFilePicker::AppendFilter(const nsAString &aTitle, const nsAString &aFilter) {
{
if (aFilter.EqualsLiteral("..apps")) { if (aFilter.EqualsLiteral("..apps")) {
// No platform specific thing we can do here, really.... // No platform specific thing we can do here, really....
- return NS_OK; - return NS_OK;
@ -1844,14 +1844,14 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
mFilters.AppendElement(filter); mFilters.AppendElement(filter);
mFilterNames.AppendElement(name); mFilterNames.AppendElement(name);
@@ -371,16 +375,39 @@ nsFilePicker::Show(int16_t *aReturn) @@ -337,16 +341,39 @@ nsresult nsFilePicker::Show(int16_t *aRe
return NS_OK;
}
NS_IMETHODIMP NS_IMETHODIMP
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) nsFilePicker::Open(nsIFilePickerShownCallback *aCallback) {
{
// Can't show two dialogs concurrently with the same filepicker // Can't show two dialogs concurrently with the same filepicker
if (mRunning) if (mRunning) return NS_ERROR_NOT_AVAILABLE;
return NS_ERROR_NOT_AVAILABLE;
+ // KDE file picker is not handled via callback + // KDE file picker is not handled via callback
+ if( nsKDEUtils::kdeSupport()) { + if( nsKDEUtils::kdeSupport()) {
@ -1880,11 +1880,11 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
title.Adopt(ToNewUTF8String(mTitle)); title.Adopt(ToNewUTF8String(mTitle));
GtkWindow *parent_widget = GtkWindow *parent_widget =
GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET)); GTK_WINDOW(mParentWidget->GetNativeData(NS_NATIVE_SHELLWIDGET));
GtkFileChooserAction action = GetGtkFileChooserAction(mMode); GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
@@ -600,16 +627,241 @@ nsFilePicker::Done(void* file_chooser, g @@ -571,16 +598,240 @@ void nsFilePicker::Done(void *file_choos
mCallback->Done(result); mCallback->Done(result);
mCallback = nullptr; mCallback = nullptr;
} else { } else {
@ -2116,26 +2116,25 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
+ } + }
+ return NS_OK; + return NS_OK;
+ } + }
+
+ +
// All below functions available as of GTK 3.20+ // All below functions available as of GTK 3.20+
void *nsFilePicker::GtkFileChooserNew(const gchar *title, GtkWindow *parent,
void * GtkFileChooserAction action,
nsFilePicker::GtkFileChooserNew( const gchar *accept_label) {
const gchar *title, GtkWindow *parent, static auto sGtkFileChooserNativeNewPtr =
GtkFileChooserAction action, (void *(*)(const gchar *, GtkWindow *, GtkFileChooserAction,
const gchar *accept_label) const gchar *,
{ const gchar *))dlsym(RTLD_DEFAULT,
diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
--- a/widget/gtk/nsFilePicker.h --- a/widget/gtk/nsFilePicker.h
+++ b/widget/gtk/nsFilePicker.h +++ b/widget/gtk/nsFilePicker.h
@@ -69,16 +69,22 @@ protected: @@ -67,16 +67,22 @@ class nsFilePicker : public nsBaseFilePi
nsString mDefaultExtension; nsString mDefaultExtension;
nsTArray<nsCString> mFilters; nsTArray<nsCString> mFilters;
nsTArray<nsCString> mFilterNames; nsTArray<nsCString> mFilterNames;
private: private:
static nsIFile *mPrevDisplayDirectory; static nsIFile *mPrevDisplayDirectory;
+ bool kdeRunning(); + bool kdeRunning();
@ -2144,14 +2143,14 @@ diff --git a/widget/gtk/nsFilePicker.h b/widget/gtk/nsFilePicker.h
+ NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn); + NS_IMETHODIMP kdeAppsDialog(PRInt16 *aReturn);
+ nsCString kdeMakeFilter( int index ); + nsCString kdeMakeFilter( int index );
+ +
void *GtkFileChooserNew( void *GtkFileChooserNew(const gchar *title, GtkWindow *parent,
const gchar *title, GtkWindow *parent, GtkFileChooserAction action,
GtkFileChooserAction action, const gchar *accept_label);
const gchar *accept_label);
void GtkFileChooserShow(void *file_chooser); void GtkFileChooserShow(void *file_chooser);
void GtkFileChooserDestroy(void *file_chooser); void GtkFileChooserDestroy(void *file_chooser);
void GtkFileChooserSetModal(void *file_chooser, GtkWindow* parent_widget, void GtkFileChooserSetModal(void *file_chooser, GtkWindow *parent_widget,
gboolean modal); gboolean modal);
diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
--- a/xpcom/components/ManifestParser.cpp --- a/xpcom/components/ManifestParser.cpp
+++ b/xpcom/components/ManifestParser.cpp +++ b/xpcom/components/ManifestParser.cpp
@ -2168,12 +2167,12 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
using namespace mozilla; using namespace mozilla;
struct ManifestDirective struct ManifestDirective {
{
const char* directive; const char* directive;
int argc; int argc;
@@ -421,16 +422,17 @@ ParseManifest(NSLocationType aType, File bool ischrome;
@@ -392,16 +393,17 @@ void ParseManifest(NSLocationType aType,
NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled"); NS_NAMED_LITERAL_STRING(kRemoteEnabled, "remoteenabled");
NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired"); NS_NAMED_LITERAL_STRING(kRemoteRequired, "remoterequired");
NS_NAMED_LITERAL_STRING(kApplication, "application"); NS_NAMED_LITERAL_STRING(kApplication, "application");
@ -2191,7 +2190,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
NS_NAMED_LITERAL_STRING(kMain, "main"); NS_NAMED_LITERAL_STRING(kMain, "main");
NS_NAMED_LITERAL_STRING(kContent, "content"); NS_NAMED_LITERAL_STRING(kContent, "content");
@@ -476,44 +478,49 @@ ParseManifest(NSLocationType aType, File @@ -447,39 +449,44 @@ void ParseManifest(NSLocationType aType,
CopyUTF8toUTF16(s, abi); CopyUTF8toUTF16(s, abi);
abi.Insert(char16_t('_'), 0); abi.Insert(char16_t('_'), 0);
abi.Insert(osTarget, 0); abi.Insert(osTarget, 0);
@ -2203,11 +2202,10 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
+ nsAutoString desktop; + nsAutoString desktop;
#if defined(XP_WIN) #if defined(XP_WIN)
#pragma warning(push) #pragma warning(push)
#pragma warning(disable:4996) // VC12+ deprecates GetVersionEx #pragma warning(disable : 4996) // VC12+ deprecates GetVersionEx
OSVERSIONINFO info = { sizeof(OSVERSIONINFO) }; OSVERSIONINFO info = {sizeof(OSVERSIONINFO)};
if (GetVersionEx(&info)) { if (GetVersionEx(&info)) {
nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", info.dwMajorVersion,
info.dwMajorVersion,
info.dwMinorVersion); info.dwMinorVersion);
} }
+ desktop = NS_LITERAL_STRING("win"); + desktop = NS_LITERAL_STRING("win");
@ -2215,21 +2213,17 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
#elif defined(MOZ_WIDGET_COCOA) #elif defined(MOZ_WIDGET_COCOA)
SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor(); SInt32 majorVersion = nsCocoaFeatures::OSXVersionMajor();
SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor(); SInt32 minorVersion = nsCocoaFeatures::OSXVersionMinor();
nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", majorVersion, minorVersion);
majorVersion,
minorVersion);
+ desktop = NS_LITERAL_STRING("macosx"); + desktop = NS_LITERAL_STRING("macosx");
#elif defined(MOZ_WIDGET_GTK) #elif defined(MOZ_WIDGET_GTK)
nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", gtk_major_version,
gtk_major_version,
gtk_minor_version); gtk_minor_version);
+ desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome"); + desktop = nsKDEUtils::kdeSession() ? NS_LITERAL_STRING("kde") : NS_LITERAL_STRING("gnome");
#elif defined(MOZ_WIDGET_ANDROID) #elif defined(MOZ_WIDGET_ANDROID)
bool isTablet = false; bool isTablet = false;
if (mozilla::AndroidBridge::Bridge()) { if (mozilla::AndroidBridge::Bridge()) {
mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION", mozilla::AndroidBridge::Bridge()->GetStaticStringField(
"RELEASE", "android/os/Build$VERSION", "RELEASE", osVersion);
osVersion);
isTablet = java::GeckoAppShell::IsTablet(); isTablet = java::GeckoAppShell::IsTablet();
} }
+ desktop = NS_LITERAL_STRING("android"); + desktop = NS_LITERAL_STRING("android");
@ -2241,7 +2235,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
process = kMain; process = kMain;
} }
@@ -600,25 +607,27 @@ ParseManifest(NSLocationType aType, File @@ -566,25 +573,27 @@ void ParseManifest(NSLocationType aType,
TriState stOsVersion = eUnspecified; TriState stOsVersion = eUnspecified;
TriState stOs = eUnspecified; TriState stOs = eUnspecified;
TriState stABI = eUnspecified; TriState stABI = eUnspecified;
@ -2264,40 +2258,41 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
CheckStringFlag(kProcess, wtoken, process, stProcess) || CheckStringFlag(kProcess, wtoken, process, stProcess) ||
CheckVersionFlag(kOsVersion, wtoken, osVersion, stOsVersion) || CheckVersionFlag(kOsVersion, wtoken, osVersion, stOsVersion) ||
CheckVersionFlag(kAppVersion, wtoken, appVersion, stAppVersion) || CheckVersionFlag(kAppVersion, wtoken, appVersion, stAppVersion) ||
CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion, stGeckoVersion)) { CheckVersionFlag(kGeckoVersion, wtoken, geckoVersion,
stGeckoVersion)) {
continue; continue;
} }
#if defined(MOZ_WIDGET_ANDROID) @@ -621,17 +630,17 @@ void ParseManifest(NSLocationType aType,
@@ -663,16 +672,17 @@ ParseManifest(NSLocationType aType, File }
LogMessageWithContext(
aFile, line, "Unrecognized chrome manifest modifier '%s'.", token);
ok = false;
} }
if (!ok || if (!ok || stApp == eBad || stAppVersion == eBad ||
stApp == eBad || - stGeckoVersion == eBad || stOs == eBad || stOsVersion == eBad ||
stAppVersion == eBad || + stGeckoVersion == eBad || stOs == eBad || stOsVersion == eBad || stDesktop == eBad ||
stGeckoVersion == eBad ||
stOs == eBad ||
stOsVersion == eBad ||
+ stDesktop == eBad ||
#ifdef MOZ_WIDGET_ANDROID #ifdef MOZ_WIDGET_ANDROID
stTablet == eBad || stTablet == eBad ||
#endif #endif
stABI == eBad || stABI == eBad || stProcess == eBad) {
stProcess == eBad) {
continue; continue;
} }
if (directive->regfunc) {
diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build diff --git a/xpcom/components/moz.build b/xpcom/components/moz.build
--- a/xpcom/components/moz.build --- a/xpcom/components/moz.build
+++ b/xpcom/components/moz.build +++ b/xpcom/components/moz.build
@@ -43,12 +43,13 @@ FINAL_LIBRARY = 'xul' @@ -44,12 +44,13 @@ LOCAL_INCLUDES += [
LOCAL_INCLUDES += [
'!..', '!..',
'../base', '../base',
'../build', '../build',
'../ds', '../ds',
'/chrome', '/chrome',
'/js/xpconnect/loader',
'/layout/build',
'/modules/libjar', '/modules/libjar',
+ '/toolkit/xre', + '/toolkit/xre',
] ]
@ -2325,10 +2320,10 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
#include "prmem.h" #include "prmem.h"
#include "plbase64.h" #include "plbase64.h"
@@ -2007,63 +2008,78 @@ nsLocalFile::SetPersistentDescriptor(con @@ -1902,62 +1903,77 @@ nsLocalFile::SetPersistentDescriptor(con
NS_IMETHODIMP NS_IMETHODIMP
nsLocalFile::Reveal() nsLocalFile::Reveal() {
{
if (!FilePreferences::IsAllowedPath(mPath)) { if (!FilePreferences::IsAllowedPath(mPath)) {
return NS_ERROR_FILE_ACCESS_DENIED; return NS_ERROR_FILE_ACCESS_DENIED;
} }
@ -2389,8 +2384,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
} }
NS_IMETHODIMP NS_IMETHODIMP
nsLocalFile::Launch() nsLocalFile::Launch() {
{
if (!FilePreferences::IsAllowedPath(mPath)) { if (!FilePreferences::IsAllowedPath(mPath)) {
return NS_ERROR_FILE_ACCESS_DENIED; return NS_ERROR_FILE_ACCESS_DENIED;
} }

View file

@ -0,0 +1,28 @@
# HG changeset patch
# User Petr Cerny <pcerny@novell.com>
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
# Parent 6ab277cf616dc2748e9855101100a97a6cec10a6
Bug 634334 - call to the ntlm_auth helper fails
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
--- a/extensions/auth/nsAuthSambaNTLM.cpp
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -156,17 +156,17 @@ static uint8_t* ExtractMessage(const nsA
*aLen = (length / 4) * 3 - numEquals;
return reinterpret_cast<uint8_t*>(PL_Base64Decode(s, length, nullptr));
}
nsresult nsAuthSambaNTLM::SpawnNTLMAuthHelper() {
const char* username = PR_GetEnv("USER");
if (!username) return NS_ERROR_FAILURE;
- const char* const args[] = {"ntlm_auth",
+ const char* const args[] = {"/usr/bin/ntlm_auth",
"--helper-protocol",
"ntlmssp-client-1",
"--use-cached-creds",
"--username",
username,
nullptr};
bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID,

View file

@ -1,12 +0,0 @@
diff -up firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp.old firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp
--- firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp.old 2014-11-25 12:23:22.000000000 +0100
+++ firefox-31.3.0/mozilla-esr31/extensions/auth/nsAuthSambaNTLM.cpp 2014-12-23 15:26:36.606674625 +0100
@@ -174,7 +174,7 @@ nsAuthSambaNTLM::SpawnNTLMAuthHelper()
return NS_ERROR_FAILURE;
const char* const args[] = {
- "ntlm_auth",
+ "/usr/bin/ntlm_auth",
"--helper-protocol", "ntlmssp-client-1",
"--use-cached-creds",
"--username", username,