mirror of
https://codeberg.org/librewolf/source.git
synced 2025-01-03 03:10:07 -05:00
drop combined patch; move unity and kde patches to subdir
This commit is contained in:
parent
6d7c93a787
commit
d114d4f8e8
4 changed files with 301 additions and 1542 deletions
File diff suppressed because it is too large
Load diff
288
patches/unity_kde/firefox-kde.patch
Normal file
288
patches/unity_kde/firefox-kde.patch
Normal file
|
@ -0,0 +1,288 @@
|
|||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1559300151 -7200
|
||||
# Fri May 31 12:55:51 2019 +0200
|
||||
# Node ID 54d41b0033b8d649d842a1f862c6fed8b9874dec
|
||||
# Parent 95d798f72d832c953086aa27675498fdf84177f0
|
||||
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
|
||||
|
||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||
--- a/browser/components/preferences/main.js
|
||||
+++ b/browser/components/preferences/main.js
|
||||
@@ -296,16 +296,23 @@ var gMainPane = {
|
||||
}, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]);
|
||||
};
|
||||
|
||||
window.setTimeout(() => {
|
||||
window.requestIdleCallback(pollForDefaultBrowser);
|
||||
}, backoffTimes[this._backoffIndex]);
|
||||
}
|
||||
|
||||
+ 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;
|
||||
+ }
|
||||
+
|
||||
this.initBrowserContainers();
|
||||
this.buildContentProcessCountMenuList();
|
||||
|
||||
let performanceSettingsLink = document.getElementById(
|
||||
"performanceSettingsLearnMore"
|
||||
);
|
||||
let performanceSettingsUrl =
|
||||
Services.urlFormatter.formatURLPref("app.support.baseURL") +
|
||||
@@ -1333,16 +1340,27 @@ var gMainPane = {
|
||||
this._backoffIndex = 0;
|
||||
|
||||
let shellSvc = getShellService();
|
||||
if (!shellSvc) {
|
||||
return;
|
||||
}
|
||||
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) {
|
||||
console.error(ex);
|
||||
return;
|
||||
}
|
||||
|
||||
let isDefault = shellSvc.isDefaultBrowser(false, true);
|
||||
let setDefaultPane = document.getElementById("setDefaultPane");
|
||||
setDefaultPane.classList.toggle("is-default", isDefault);
|
||||
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
|
||||
@@ -31,16 +31,18 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "coco
|
||||
]
|
||||
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
||||
XPIDL_SOURCES += [
|
||||
"nsIGNOMEShellService.idl",
|
||||
]
|
||||
|
||||
SOURCES += [
|
||||
"nsGNOMEShellService.cpp",
|
||||
+ "nsKDEShellService.cpp",
|
||||
+ "nsUnixShellService.cpp",
|
||||
]
|
||||
if CONFIG["MOZ_ENABLE_DBUS"]:
|
||||
SOURCES += [
|
||||
"nsGNOMEShellDBusHelper.cpp",
|
||||
"nsGNOMEShellSearchProvider.cpp",
|
||||
]
|
||||
include("/ipc/chromium/chromium-config.mozbuild")
|
||||
|
||||
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
|
||||
@@ -0,0 +1,109 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#include "mozilla/ArrayUtils.h"
|
||||
+
|
||||
+#include "nsCOMPtr.h"
|
||||
+#include "nsKDEShellService.h"
|
||||
+#include "nsShellService.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
+#include "nsIPrefService.h"
|
||||
+#include "nsIProcess.h"
|
||||
+#include "nsIFile.h"
|
||||
+#include "nsServiceManagerUtils.h"
|
||||
+#include "nsComponentManagerUtils.h"
|
||||
+#include "nsIMutableArray.h"
|
||||
+#include "nsISupportsPrimitives.h"
|
||||
+#include "nsArrayUtils.h"
|
||||
+
|
||||
+using namespace mozilla;
|
||||
+
|
||||
+nsresult
|
||||
+nsKDEShellService::Init()
|
||||
+{
|
||||
+ if( !nsKDEUtils::kdeSupport())
|
||||
+ return NS_ERROR_NOT_AVAILABLE;
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMPL_ISUPPORTS(nsKDEShellService, nsIGNOMEShellService, nsIShellService)
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::IsDefaultBrowser(bool aForAllTypes,
|
||||
+ bool* aIsDefaultBrowser)
|
||||
+{
|
||||
+ *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("ISDEFAULTBROWSER"_ns);
|
||||
+ command->AppendElement( str );
|
||||
+
|
||||
+ if( nsKDEUtils::command( command ))
|
||||
+ *aIsDefaultBrowser = true;
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::SetDefaultBrowser(bool aClaimAllTypes,
|
||||
+ bool aForAllUsers)
|
||||
+{
|
||||
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
||||
+ if (!command)
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ nsCOMPtr<nsISupportsCString> cmdstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
||||
+ nsCOMPtr<nsISupportsCString> paramstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
||||
+ if (!cmdstr || !paramstr)
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ cmdstr->SetData("SETDEFAULTBROWSER"_ns);
|
||||
+ command->AppendElement( cmdstr );
|
||||
+
|
||||
+ paramstr->SetData( aClaimAllTypes ? "ALLTYPES"_ns : "NORMAL"_ns );
|
||||
+ command->AppendElement( paramstr );
|
||||
+
|
||||
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::GetCanSetDesktopBackground(bool* aResult)
|
||||
+{
|
||||
+ *aResult = true;
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::SetDesktopBackground(dom::Element* aElement,
|
||||
+ int32_t aPosition,
|
||||
+ const nsACString& aImageName)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::GetDesktopBackgroundColor(PRUint32 *aColor)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::SetDesktopBackgroundColor(PRUint32 aColor)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::IsDefaultForScheme(nsTSubstring<char> const& aScheme, bool* aIsDefaultBrowser)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
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
|
||||
@@ -0,0 +1,32 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#ifndef nskdeshellservice_h____
|
||||
+#define nskdeshellservice_h____
|
||||
+
|
||||
+#include "nsIGNOMEShellService.h"
|
||||
+#include "nsToolkitShellService.h"
|
||||
+#include "nsString.h"
|
||||
+#include "mozilla/Attributes.h"
|
||||
+
|
||||
+class nsKDEShellService final : public nsIGNOMEShellService,
|
||||
+ public nsToolkitShellService
|
||||
+{
|
||||
+public:
|
||||
+ nsKDEShellService() : mCheckedThisSession(false) { }
|
||||
+
|
||||
+ NS_DECL_ISUPPORTS
|
||||
+ NS_DECL_NSISHELLSERVICE
|
||||
+ NS_DECL_NSIGNOMESHELLSERVICE
|
||||
+
|
||||
+ nsresult Init();
|
||||
+
|
||||
+private:
|
||||
+ ~nsKDEShellService() {}
|
||||
+
|
||||
+ bool mCheckedThisSession;
|
||||
+};
|
||||
+
|
||||
+#endif // nskdeshellservice_h____
|
||||
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
|
||||
@@ -0,0 +1,22 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+
|
||||
+#include "nsUnixShellService.h"
|
||||
+#include "nsGNOMEShellService.h"
|
||||
+#include "nsKDEShellService.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
+#include "mozilla/ModuleUtils.h"
|
||||
+
|
||||
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
|
||||
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsKDEShellService, Init)
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsUnixShellServiceConstructor(REFNSIID aIID, void **aResult)
|
||||
+{
|
||||
+ if( nsKDEUtils::kdeSupport())
|
||||
+ return nsKDEShellServiceConstructor( aIID, aResult );
|
||||
+ return nsGNOMEShellServiceConstructor( aIID, aResult );
|
||||
+}
|
||||
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
|
||||
@@ -0,0 +1,15 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+
|
||||
+#ifndef nsunixshellservice_h____
|
||||
+#define nsunixshellservice_h____
|
||||
+
|
||||
+#include "nsIGNOMEShellService.h"
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult);
|
||||
+
|
||||
+#endif // nsunixshellservice_h____
|
|
@ -3,7 +3,7 @@
|
|||
# Date 1559294891 -7200
|
||||
# Fri May 31 11:28:11 2019 +0200
|
||||
# Node ID c2aa7198fb925e7fde96abf65b6f68b9b755f112
|
||||
# Parent e8919158faed3f4a08289fb293dd87ce56bdcc4d
|
||||
# Parent a6ee87356867ce6ed5b0be1ba2c2690a488beb55
|
||||
Description: Add KDE integration to Firefox (toolkit parts)
|
||||
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
|
||||
Author: Lubos Lunak <lunak@suse.com>
|
||||
|
@ -13,9 +13,9 @@ Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
|
|||
diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
||||
--- a/modules/libpref/Preferences.cpp
|
||||
+++ b/modules/libpref/Preferences.cpp
|
||||
@@ -89,16 +89,17 @@
|
||||
#include "PLDHashTable.h"
|
||||
@@ -90,16 +90,17 @@
|
||||
#include "plstr.h"
|
||||
#include "prdtoa.h"
|
||||
#include "prlink.h"
|
||||
#include "xpcpublic.h"
|
||||
#include "js/RootingAPI.h"
|
||||
|
@ -31,7 +31,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
|||
#ifdef MOZ_MEMORY
|
||||
# include "mozmemory.h"
|
||||
#endif
|
||||
@@ -4847,16 +4848,27 @@ nsresult Preferences::InitInitialObjects
|
||||
@@ -4878,16 +4879,27 @@ nsresult Preferences::InitInitialObjects
|
||||
"unix.js"
|
||||
# if defined(_AIX)
|
||||
,
|
||||
|
@ -59,7 +59,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
|||
|
||||
#if defined(MOZ_WIDGET_GTK)
|
||||
// Under Flatpak/Snap package, load /etc/firefox/defaults/pref/*.js.
|
||||
@@ -4938,17 +4950,17 @@ nsresult Preferences::InitInitialObjects
|
||||
@@ -4969,17 +4981,17 @@ nsresult Preferences::InitInitialObjects
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIFile> path = do_QueryInterface(elem);
|
||||
|
@ -790,7 +790,7 @@ diff --git a/uriloader/exthandler/HandlerServiceParent.cpp b/uriloader/exthandle
|
|||
diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
||||
--- a/uriloader/exthandler/moz.build
|
||||
+++ b/uriloader/exthandler/moz.build
|
||||
@@ -78,17 +78,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "ui
|
||||
@@ -81,17 +81,19 @@ elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "ui
|
||||
else:
|
||||
# These files can't be built in unified mode because they redefine LOG.
|
||||
SOURCES += [
|
||||
|
@ -810,7 +810,7 @@ diff --git a/uriloader/exthandler/moz.build b/uriloader/exthandler/moz.build
|
|||
]
|
||||
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
|
||||
UNIFIED_SOURCES += [
|
||||
@@ -126,16 +128,17 @@ include("/ipc/chromium/chromium-config.m
|
||||
@@ -129,16 +131,17 @@ include("/ipc/chromium/chromium-config.m
|
||||
FINAL_LIBRARY = "xul"
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
|
@ -1807,7 +1807,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
|||
# include "prmem.h"
|
||||
# include "plbase64.h"
|
||||
|
||||
@@ -2094,20 +2095,29 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
@@ -2157,20 +2158,29 @@ nsLocalFile::SetPersistentDescriptor(con
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsLocalFile::Reveal() {
|
||||
|
@ -1839,7 +1839,7 @@ diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
|
|||
::CFRelease(url);
|
||||
return rv;
|
||||
}
|
||||
@@ -2119,16 +2129,23 @@ nsLocalFile::Reveal() {
|
||||
@@ -2182,16 +2192,23 @@ nsLocalFile::Reveal() {
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsLocalFile::Launch() {
|
|
@ -3254,7 +3254,7 @@
|
|||
+ nullptr, 0, loadGroup, this, nullptr, nullptr,
|
||||
+ nsIRequest::LOAD_NORMAL, nullptr,
|
||||
+ nsIContentPolicy::TYPE_IMAGE, EmptyString(),
|
||||
+ false, false, getter_AddRefs(mImageRequest));
|
||||
+ false, false, 0, getter_AddRefs(mImageRequest));
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
|
@ -5099,13 +5099,13 @@
|
|||
--- a/xpcom/ds/StaticAtoms.py
|
||||
+++ b/xpcom/ds/StaticAtoms.py
|
||||
@@ -7,6 +7,7 @@
|
||||
from Atom import Atom, InheritingAnonBoxAtom, NonInheritingAnonBoxAtom
|
||||
from Atom import PseudoElementAtom
|
||||
PseudoElementAtom,
|
||||
)
|
||||
from HTMLAtoms import HTML_PARSER_ATOMS
|
||||
+from NativeMenuAtoms import NATIVE_MENU_ATOMS
|
||||
import sys
|
||||
|
||||
# Static atom definitions, used to generate nsGkAtomList.h.
|
||||
#
|
||||
@@ -2529,7 +2530,7 @@ STATIC_ATOMS = [
|
||||
InheritingAnonBoxAtom("AnonBox_mozSVGForeignContent", ":-moz-svg-foreign-content"),
|
||||
InheritingAnonBoxAtom("AnonBox_mozSVGText", ":-moz-svg-text"),
|
Loading…
Reference in a new issue