2015-01-14 19:32:16 +01:00
|
|
|
# HG changeset patch
|
2019-07-09 23:21:11 +02:00
|
|
|
# User msirringhaus@suse.de
|
|
|
|
# Date 1559300151 -7200
|
|
|
|
# Fri May 31 12:55:51 2019 +0200
|
|
|
|
# Node ID 54d41b0033b8d649d842a1f862c6fed8b9874dec
|
2019-09-04 10:35:37 +02:00
|
|
|
# Parent 28bde69150771a1530f784903bf68214dd5790ea
|
2019-07-09 23:21:11 +02:00
|
|
|
How to apply this patch:
|
|
|
|
1. Import and apply it
|
|
|
|
2. cp browser/base/content/browser.xul browser/base/content/browser-kde.xul
|
|
|
|
3. Find editBookmarkPanelDoneButton
|
|
|
|
4. Replace #ifndef with #ifdef in the line above (this hanges the button order from Gnome-style to KDE-style)
|
|
|
|
5. hg qrefresh
|
2015-01-14 19:32:16 +01:00
|
|
|
|
2019-09-04 10:35:37 +02:00
|
|
|
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
|
|
|
|
+++ b/browser/components/preferences/in-content/main.js
|
|
|
|
@@ -339,16 +339,23 @@ var gMainPane = {
|
|
|
|
}, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]);
|
|
|
|
};
|
|
|
|
|
|
|
|
window.setTimeout(() => {
|
|
|
|
window.requestIdleCallback(pollForDefaultBrowser);
|
2017-11-15 00:17:59 +01:00
|
|
|
}, backoffTimes[this._backoffIndex]);
|
2014-12-02 23:01:52 +01:00
|
|
|
}
|
- update to Firefox 47.0 (boo#983549)
* Enable VP9 video codec for users with fast machines
* Embedded YouTube videos now play with HTML5 video if Flash is
not installed
* View and search open tabs from your smartphone or another
computer in a sidebar
* Allow no-cache on back/forward navigations for https resources
security fixes:
* MFSA 2016-49/CVE-2016-2815/CVE-2016-2818
(boo#983638)
(bmo#1241896, bmo#1242798, bmo#1243466, bmo#1245743,
bmo#1264300, bmo#1271037, bmo#1234147, bmo#1256493,
bmo#1256739, bmo#1256968, bmo#1261230, bmo#1261752,
bmo#1263384, bmo#1264575, bmo#1265577, bmo#1267130,
bmo#1269729, bmo#1273202, bmo#1273701)
Miscellaneous memory safety hazards (rv:47.0 / rv:45.2)
* MFSA 2016-50/CVE-2016-2819 (boo#983655) (bmo#1270381)
Buffer overflow parsing HTML5 fragments
* MFSA 2016-51/CVE-2016-2821 (bsc#983653) (bmo#1271460)
Use-after-free deleting tables from a contenteditable document
* MFSA 2016-52/CVE-2016-2822 (boo#983652) (bmo#1273129)
Addressbar spoofing though the SELECT element
* MFSA 2016-53/CVE-2016-2824 (boo#983651) (bmo#1248580)
Out-of-bounds write with WebGL shader
* MFSA 2016-54/CVE-2016-2825 (boo#983649) (bmo#1193093)
Partial same-origin-policy through setting location.host
through data URI
* MFSA 2016-56/CVE-2016-2828 (boo#983646) (bmo#1223810)
Use-after-free when textures are used in WebGL operations
after recycle pool destruction
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=518
2016-06-08 14:26:29 +02:00
|
|
|
|
2017-09-05 12:10:37 +02:00
|
|
|
+ var env = Components.classes["@mozilla.org/process/environment;1"]
|
|
|
|
+ .getService(Components.interfaces.nsIEnvironment);
|
|
|
|
+ var kde_session = 0;
|
|
|
|
+ if (env.get('KDE_FULL_SESSION') == "true") {
|
|
|
|
+ kde_session = 1;
|
|
|
|
+ }
|
|
|
|
+
|
2017-11-15 00:17:59 +01:00
|
|
|
this.initBrowserContainers();
|
2017-09-05 12:10:37 +02:00
|
|
|
this.buildContentProcessCountMenuList();
|
- update to Firefox 51.0
* requires NSPR >= 4.13.1, NSS >= 3.28.1
* Added support for FLAC (Free Lossless Audio Codec) playback
* Added support for WebGL 2
* Added Georgian (ka) and Kabyle (kab) locales
* Support saving passwords for forms without 'submit' events
* Improved video performance for users without GPU acceleration
* Zoom indicator is shown in the URL bar if the zoom level is not
at default level
* View passwords from the prompt before saving them
* Remove Belarusian (be) locale
* Use Skia for content rendering (Linux)
* MFSA 2017-01
CVE-2017-5375: Excessive JIT code allocation allows bypass of
ASLR and DEP (bmo#1325200, boo#1021814)
CVE-2017-5376: Use-after-free in XSL (bmo#1311687, boo#1021817)
CVE-2017-5377: Memory corruption with transforms to create
gradients in Skia (bmo#1306883, boo#1021826)
CVE-2017-5378: Pointer and frame data leakage of Javascript objects
(bmo#1312001, bmo#1330769, boo#1021818)
CVE-2017-5379: Use-after-free in Web Animations
(bmo#1309198,boo#1021827)
CVE-2017-5380: Potential use-after-free during DOM manipulations
(bmo#1322107, boo#1021819)
CVE-2017-5390: Insecure communication methods in Developer Tools
JSON viewer (bmo#1297361, boo#1021820)
CVE-2017-5389: WebExtensions can install additional add-ons via
modified host requests (bmo#1308688, boo#1021828)
CVE-2017-5396: Use-after-free with Media Decoder
(bmo#1329403, boo#1021821)
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=567
2017-01-25 11:27:08 +01:00
|
|
|
|
2019-09-04 10:35:37 +02:00
|
|
|
let performanceSettingsLink = document.getElementById(
|
|
|
|
"performanceSettingsLearnMore"
|
|
|
|
);
|
|
|
|
let performanceSettingsUrl =
|
|
|
|
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
|
|
|
@@ -1146,16 +1153,27 @@ var gMainPane = {
|
|
|
|
this._backoffIndex = 0;
|
|
|
|
|
|
|
|
let shellSvc = getShellService();
|
|
|
|
if (!shellSvc) {
|
- update to Firefox 51.0
* requires NSPR >= 4.13.1, NSS >= 3.28.1
* Added support for FLAC (Free Lossless Audio Codec) playback
* Added support for WebGL 2
* Added Georgian (ka) and Kabyle (kab) locales
* Support saving passwords for forms without 'submit' events
* Improved video performance for users without GPU acceleration
* Zoom indicator is shown in the URL bar if the zoom level is not
at default level
* View passwords from the prompt before saving them
* Remove Belarusian (be) locale
* Use Skia for content rendering (Linux)
* MFSA 2017-01
CVE-2017-5375: Excessive JIT code allocation allows bypass of
ASLR and DEP (bmo#1325200, boo#1021814)
CVE-2017-5376: Use-after-free in XSL (bmo#1311687, boo#1021817)
CVE-2017-5377: Memory corruption with transforms to create
gradients in Skia (bmo#1306883, boo#1021826)
CVE-2017-5378: Pointer and frame data leakage of Javascript objects
(bmo#1312001, bmo#1330769, boo#1021818)
CVE-2017-5379: Use-after-free in Web Animations
(bmo#1309198,boo#1021827)
CVE-2017-5380: Potential use-after-free during DOM manipulations
(bmo#1322107, boo#1021819)
CVE-2017-5390: Insecure communication methods in Developer Tools
JSON viewer (bmo#1297361, boo#1021820)
CVE-2017-5389: WebExtensions can install additional add-ons via
modified host requests (bmo#1308688, boo#1021828)
CVE-2017-5396: Use-after-free with Media Decoder
(bmo#1329403, boo#1021821)
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=567
2017-01-25 11:27:08 +01:00
|
|
|
return;
|
2019-09-04 10:35:37 +02:00
|
|
|
}
|
- update to Firefox 51.0
* requires NSPR >= 4.13.1, NSS >= 3.28.1
* Added support for FLAC (Free Lossless Audio Codec) playback
* Added support for WebGL 2
* Added Georgian (ka) and Kabyle (kab) locales
* Support saving passwords for forms without 'submit' events
* Improved video performance for users without GPU acceleration
* Zoom indicator is shown in the URL bar if the zoom level is not
at default level
* View passwords from the prompt before saving them
* Remove Belarusian (be) locale
* Use Skia for content rendering (Linux)
* MFSA 2017-01
CVE-2017-5375: Excessive JIT code allocation allows bypass of
ASLR and DEP (bmo#1325200, boo#1021814)
CVE-2017-5376: Use-after-free in XSL (bmo#1311687, boo#1021817)
CVE-2017-5377: Memory corruption with transforms to create
gradients in Skia (bmo#1306883, boo#1021826)
CVE-2017-5378: Pointer and frame data leakage of Javascript objects
(bmo#1312001, bmo#1330769, boo#1021818)
CVE-2017-5379: Use-after-free in Web Animations
(bmo#1309198,boo#1021827)
CVE-2017-5380: Potential use-after-free during DOM manipulations
(bmo#1322107, boo#1021819)
CVE-2017-5390: Insecure communication methods in Developer Tools
JSON viewer (bmo#1297361, boo#1021820)
CVE-2017-5389: WebExtensions can install additional add-ons via
modified host requests (bmo#1308688, boo#1021828)
CVE-2017-5396: Use-after-free with Media Decoder
(bmo#1329403, boo#1021821)
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=567
2017-01-25 11:27:08 +01:00
|
|
|
try {
|
|
|
|
shellSvc.setDefaultBrowser(true, false);
|
|
|
|
+ if (kde_session == 1) {
|
|
|
|
+ var shellObj = Components.classes["@mozilla.org/file/local;1"]
|
|
|
|
+ .createInstance(Components.interfaces.nsILocalFile);
|
|
|
|
+ shellObj.initWithPath("/usr/bin/kwriteconfig");
|
|
|
|
+ var process = Components.classes["@mozilla.org/process/util;1"]
|
|
|
|
+ .createInstance(Components.interfaces.nsIProcess);
|
|
|
|
+ process.init(shellObj);
|
|
|
|
+ var args = ["--file", "kdeglobals", "--group", "General", "--key",
|
|
|
|
+ "BrowserApplication", "firefox"];
|
|
|
|
+ process.run(false, args, args.length);
|
|
|
|
+ }
|
|
|
|
} catch (ex) {
|
|
|
|
Cu.reportError(ex);
|
|
|
|
return;
|
2019-09-04 10:35:37 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
let selectedIndex = shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
|
|
|
|
document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
|
|
|
|
}
|
|
|
|
diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
|
|
|
|
--- a/browser/components/shell/moz.build
|
|
|
|
+++ b/browser/components/shell/moz.build
|
|
|
|
@@ -28,16 +28,18 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'coco
|
|
|
|
]
|
|
|
|
elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
|
|
|
|
XPIDL_SOURCES += [
|
|
|
|
'nsIGNOMEShellService.idl',
|
|
|
|
]
|
2019-03-19 23:01:55 +01:00
|
|
|
|
2014-02-03 16:34:42 +01:00
|
|
|
SOURCES += [
|
2013-09-16 09:57:05 +02:00
|
|
|
'nsGNOMEShellService.cpp',
|
2016-08-03 00:00:28 +02:00
|
|
|
+ 'nsKDEShellService.cpp',
|
|
|
|
+ 'nsUnixShellService.cpp',
|
2013-09-16 09:57:05 +02:00
|
|
|
]
|
2019-03-19 23:01:55 +01:00
|
|
|
elif CONFIG['OS_ARCH'] == 'WINNT':
|
|
|
|
SOURCES += [
|
2019-09-04 10:35:37 +02:00
|
|
|
'nsWindowsShellService.cpp',
|
|
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
|
|
'../../../other-licenses/nsis/Contrib/CityHash/cityhash',
|
|
|
|
]
|
|
|
|
diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp
|
|
|
|
new file mode 100644
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/browser/components/shell/nsKDEShellService.cpp
|
2019-03-19 23:01:55 +01:00
|
|
|
@@ -0,0 +1,150 @@
|
2009-09-17 00:40:05 +02:00
|
|
|
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2012-11-20 21:34:15 +01:00
|
|
|
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
2014-07-21 11:32:46 +02:00
|
|
|
+#include "mozilla/ArrayUtils.h"
|
|
|
|
+
|
|
|
|
+#include "nsCOMPtr.h"
|
2009-09-17 00:40:05 +02:00
|
|
|
+#include "nsKDEShellService.h"
|
|
|
|
+#include "nsShellService.h"
|
|
|
|
+#include "nsKDEUtils.h"
|
|
|
|
+#include "nsIPrefService.h"
|
|
|
|
+#include "nsIProcess.h"
|
2012-10-09 13:14:08 +02:00
|
|
|
+#include "nsIFile.h"
|
2009-09-17 00:40:05 +02:00
|
|
|
+#include "nsServiceManagerUtils.h"
|
|
|
|
+#include "nsComponentManagerUtils.h"
|
2012-03-01 10:09:12 +01:00
|
|
|
+#include "nsIMutableArray.h"
|
|
|
|
+#include "nsISupportsPrimitives.h"
|
|
|
|
+#include "nsArrayUtils.h"
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
2014-07-21 11:32:46 +02:00
|
|
|
+using namespace mozilla;
|
|
|
|
+
|
2009-09-17 00:40:05 +02:00
|
|
|
+nsresult
|
|
|
|
+nsKDEShellService::Init()
|
2014-07-21 11:32:46 +02:00
|
|
|
+{
|
2009-09-17 00:40:05 +02:00
|
|
|
+ if( !nsKDEUtils::kdeSupport())
|
|
|
|
+ return NS_ERROR_NOT_AVAILABLE;
|
|
|
|
+ return NS_OK;
|
2014-07-21 11:32:46 +02:00
|
|
|
+}
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
2016-04-29 22:50:21 +02:00
|
|
|
+NS_IMPL_ISUPPORTS(nsKDEShellService, nsIGNOMEShellService, nsIShellService)
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+NS_IMETHODIMP
|
2019-03-19 23:01:55 +01:00
|
|
|
+nsKDEShellService::IsDefaultBrowser(bool aForAllTypes,
|
2012-02-01 14:37:15 +01:00
|
|
|
+ bool* aIsDefaultBrowser)
|
2014-07-21 11:32:46 +02:00
|
|
|
+{
|
2012-03-01 10:09:12 +01:00
|
|
|
+ *aIsDefaultBrowser = false;
|
|
|
|
+
|
|
|
|
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
|
|
|
+ if (!command)
|
|
|
|
+ return NS_ERROR_FAILURE;
|
|
|
|
+
|
|
|
|
+ nsCOMPtr<nsISupportsCString> str = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
|
|
+ if (!str)
|
|
|
|
+ return NS_ERROR_FAILURE;
|
|
|
|
+
|
|
|
|
+ str->SetData( NS_LITERAL_CSTRING( "ISDEFAULTBROWSER" ));
|
2018-01-23 10:55:12 +01:00
|
|
|
+ command->AppendElement( str );
|
2012-03-01 10:09:12 +01:00
|
|
|
+
|
2009-09-17 00:40:05 +02:00
|
|
|
+ if( nsKDEUtils::command( command ))
|
2012-03-01 10:09:12 +01:00
|
|
|
+ *aIsDefaultBrowser = true;
|
2009-09-17 00:40:05 +02:00
|
|
|
+ return NS_OK;
|
2014-07-21 11:32:46 +02:00
|
|
|
+}
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+NS_IMETHODIMP
|
2012-02-01 14:37:15 +01:00
|
|
|
+nsKDEShellService::SetDefaultBrowser(bool aClaimAllTypes,
|
|
|
|
+ bool aForAllUsers)
|
2014-07-21 11:32:46 +02:00
|
|
|
+{
|
2012-03-01 10:09:12 +01:00
|
|
|
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
|
|
|
+ if (!command)
|
|
|
|
+ return NS_ERROR_FAILURE;
|
|
|
|
+
|
|
|
|
+ nsCOMPtr<nsISupportsCString> cmdstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
|
|
+ nsCOMPtr<nsISupportsCString> paramstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
|
|
+ if (!cmdstr || !paramstr)
|
|
|
|
+ return NS_ERROR_FAILURE;
|
|
|
|
+
|
|
|
|
+ cmdstr->SetData( NS_LITERAL_CSTRING( "SETDEFAULTBROWSER" ));
|
2018-01-23 10:55:12 +01:00
|
|
|
+ command->AppendElement( cmdstr );
|
2012-03-01 10:09:12 +01:00
|
|
|
+
|
|
|
|
+ paramstr->SetData( aClaimAllTypes ? NS_LITERAL_CSTRING( "ALLTYPES" ) : NS_LITERAL_CSTRING( "NORMAL" ));
|
2018-01-23 10:55:12 +01:00
|
|
|
+ command->AppendElement( paramstr );
|
2012-03-01 10:09:12 +01:00
|
|
|
+
|
2009-09-17 00:40:05 +02:00
|
|
|
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
2014-07-21 11:32:46 +02:00
|
|
|
+}
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+NS_IMETHODIMP
|
2016-04-28 17:19:54 +02:00
|
|
|
+nsKDEShellService::GetCanSetDesktopBackground(bool* aResult)
|
|
|
|
+{
|
|
|
|
+ *aResult = true;
|
|
|
|
+ return NS_OK;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+NS_IMETHODIMP
|
2018-06-25 22:56:47 +02:00
|
|
|
+nsKDEShellService::SetDesktopBackground(dom::Element* aElement,
|
2017-11-15 00:17:59 +01:00
|
|
|
+ int32_t aPosition,
|
|
|
|
+ const nsACString& aImageName)
|
2014-07-21 11:32:46 +02:00
|
|
|
+{
|
2009-09-17 00:40:05 +02:00
|
|
|
+ return NS_ERROR_NOT_IMPLEMENTED;
|
2014-07-21 11:32:46 +02:00
|
|
|
+}
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+NS_IMETHODIMP
|
|
|
|
+nsKDEShellService::GetDesktopBackgroundColor(PRUint32 *aColor)
|
2014-07-21 11:32:46 +02:00
|
|
|
+{
|
2009-09-17 00:40:05 +02:00
|
|
|
+ return NS_ERROR_NOT_IMPLEMENTED;
|
2014-07-21 11:32:46 +02:00
|
|
|
+}
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+NS_IMETHODIMP
|
|
|
|
+nsKDEShellService::SetDesktopBackgroundColor(PRUint32 aColor)
|
2014-07-21 11:32:46 +02:00
|
|
|
+{
|
2009-09-17 00:40:05 +02:00
|
|
|
+ return NS_ERROR_NOT_IMPLEMENTED;
|
2014-07-21 11:32:46 +02:00
|
|
|
+}
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+NS_IMETHODIMP
|
|
|
|
+nsKDEShellService::OpenApplication(PRInt32 aApplication)
|
2014-07-21 11:32:46 +02:00
|
|
|
+{
|
2012-03-01 10:09:12 +01:00
|
|
|
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
|
|
|
+ if (!command)
|
|
|
|
+ return NS_ERROR_FAILURE;
|
|
|
|
+
|
|
|
|
+ nsCOMPtr<nsISupportsCString> str = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
|
|
+ if (!str)
|
|
|
|
+ return NS_ERROR_FAILURE;
|
|
|
|
+
|
2009-09-17 00:40:05 +02:00
|
|
|
+ if( aApplication == APPLICATION_MAIL )
|
2012-03-01 10:09:12 +01:00
|
|
|
+ str->SetData( NS_LITERAL_CSTRING( "OPENMAIL" ));
|
2009-09-17 00:40:05 +02:00
|
|
|
+ else if( aApplication == APPLICATION_NEWS )
|
2012-03-01 10:09:12 +01:00
|
|
|
+ str->SetData( NS_LITERAL_CSTRING( "OPENNEWS" ));
|
2009-09-17 00:40:05 +02:00
|
|
|
+ else
|
|
|
|
+ return NS_ERROR_NOT_IMPLEMENTED;
|
2012-03-01 10:09:12 +01:00
|
|
|
+
|
2018-01-23 10:55:12 +01:00
|
|
|
+ command->AppendElement( str );
|
2009-09-17 00:40:05 +02:00
|
|
|
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
2014-07-21 11:32:46 +02:00
|
|
|
+}
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+NS_IMETHODIMP
|
2012-10-09 13:14:08 +02:00
|
|
|
+nsKDEShellService::OpenApplicationWithURI(nsIFile* aApplication, const nsACString& aURI)
|
2014-07-21 11:32:46 +02:00
|
|
|
+{
|
2012-03-01 10:09:12 +01:00
|
|
|
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
|
|
|
+ if (!command)
|
|
|
|
+ return NS_ERROR_FAILURE;
|
|
|
|
+
|
|
|
|
+ nsCOMPtr<nsISupportsCString> cmdstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
|
|
+ nsCOMPtr<nsISupportsCString> appstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
|
|
+ nsCOMPtr<nsISupportsCString> uristr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
|
|
|
+ if (!cmdstr || !appstr || !uristr)
|
|
|
|
+ return NS_ERROR_FAILURE;
|
|
|
|
+
|
|
|
|
+ cmdstr->SetData( NS_LITERAL_CSTRING( "RUN" ));
|
2018-01-23 10:55:12 +01:00
|
|
|
+ command->AppendElement( cmdstr );
|
2013-02-19 20:24:59 +01:00
|
|
|
+ nsAutoCString app;
|
2009-09-17 00:40:05 +02:00
|
|
|
+ nsresult rv = aApplication->GetNativePath( app );
|
|
|
|
+ NS_ENSURE_SUCCESS( rv, rv );
|
2012-03-01 10:09:12 +01:00
|
|
|
+ appstr->SetData( app );
|
2018-01-23 10:55:12 +01:00
|
|
|
+ command->AppendElement( appstr );
|
2012-03-01 10:09:12 +01:00
|
|
|
+ uristr->SetData( aURI );
|
2018-01-23 10:55:12 +01:00
|
|
|
+ command->AppendElement( uristr );
|
2009-09-17 00:40:05 +02:00
|
|
|
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
2014-07-21 11:32:46 +02:00
|
|
|
+}
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
2019-09-04 10:35:37 +02:00
|
|
|
diff --git a/browser/components/shell/nsKDEShellService.h b/browser/components/shell/nsKDEShellService.h
|
|
|
|
new file mode 100644
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/browser/components/shell/nsKDEShellService.h
|
2019-03-19 23:01:55 +01:00
|
|
|
@@ -0,0 +1,32 @@
|
2009-09-17 00:40:05 +02:00
|
|
|
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2015-12-17 01:06:36 +01:00
|
|
|
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+#ifndef nskdeshellservice_h____
|
|
|
|
+#define nskdeshellservice_h____
|
|
|
|
+
|
2016-04-29 08:30:10 +02:00
|
|
|
+#include "nsIGNOMEShellService.h"
|
2019-03-19 23:01:55 +01:00
|
|
|
+#include "nsToolkitShellService.h"
|
2017-03-07 09:35:10 +01:00
|
|
|
+#include "nsString.h"
|
2014-07-21 11:32:46 +02:00
|
|
|
+#include "mozilla/Attributes.h"
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
2019-03-19 23:01:55 +01:00
|
|
|
+class nsKDEShellService final : public nsIGNOMEShellService,
|
|
|
|
+ public nsToolkitShellService
|
2009-09-17 00:40:05 +02:00
|
|
|
+{
|
|
|
|
+public:
|
2014-07-21 11:32:46 +02:00
|
|
|
+ nsKDEShellService() : mCheckedThisSession(false) { }
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+ NS_DECL_ISUPPORTS
|
|
|
|
+ NS_DECL_NSISHELLSERVICE
|
2018-06-25 22:56:47 +02:00
|
|
|
+ NS_DECL_NSIGNOMESHELLSERVICE
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
2015-12-17 01:06:36 +01:00
|
|
|
+ nsresult Init();
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+private:
|
|
|
|
+ ~nsKDEShellService() {}
|
|
|
|
+
|
2014-07-21 11:32:46 +02:00
|
|
|
+ bool mCheckedThisSession;
|
2009-09-17 00:40:05 +02:00
|
|
|
+};
|
|
|
|
+
|
|
|
|
+#endif // nskdeshellservice_h____
|
2019-09-04 10:35:37 +02:00
|
|
|
diff --git a/browser/components/shell/nsUnixShellService.cpp b/browser/components/shell/nsUnixShellService.cpp
|
|
|
|
new file mode 100644
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/browser/components/shell/nsUnixShellService.cpp
|
2015-12-17 01:06:36 +01:00
|
|
|
@@ -0,0 +1,22 @@
|
2009-09-17 00:40:05 +02:00
|
|
|
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2015-12-17 01:06:36 +01:00
|
|
|
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
+
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+#include "nsUnixShellService.h"
|
|
|
|
+#include "nsGNOMEShellService.h"
|
|
|
|
+#include "nsKDEShellService.h"
|
|
|
|
+#include "nsKDEUtils.h"
|
2010-11-30 15:35:52 +01:00
|
|
|
+#include "mozilla/ModuleUtils.h"
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
|
|
|
|
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsKDEShellService, Init)
|
|
|
|
+
|
2017-09-05 12:10:37 +02:00
|
|
|
+NS_IMETHODIMP
|
2009-09-17 00:40:05 +02:00
|
|
|
+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult)
|
|
|
|
+{
|
|
|
|
+ if( nsKDEUtils::kdeSupport())
|
|
|
|
+ return nsKDEShellServiceConstructor( aOuter, aIID, aResult );
|
|
|
|
+ return nsGNOMEShellServiceConstructor( aOuter, aIID, aResult );
|
|
|
|
+}
|
2019-09-04 10:35:37 +02:00
|
|
|
diff --git a/browser/components/shell/nsUnixShellService.h b/browser/components/shell/nsUnixShellService.h
|
|
|
|
new file mode 100644
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/browser/components/shell/nsUnixShellService.h
|
2015-12-17 01:06:36 +01:00
|
|
|
@@ -0,0 +1,15 @@
|
2009-09-17 00:40:05 +02:00
|
|
|
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2015-12-17 01:06:36 +01:00
|
|
|
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
+
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
|
|
|
+#ifndef nsunixshellservice_h____
|
|
|
|
+#define nsunixshellservice_h____
|
|
|
|
+
|
2016-04-29 08:30:10 +02:00
|
|
|
+#include "nsIGNOMEShellService.h"
|
2009-09-17 00:40:05 +02:00
|
|
|
+
|
2017-09-05 12:10:37 +02:00
|
|
|
+NS_IMETHODIMP
|
2009-09-17 00:40:05 +02:00
|
|
|
+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult);
|
|
|
|
+
|
|
|
|
+#endif // nsunixshellservice_h____
|