From c6955ce4d06d7ee0ca6cb0d07bcd3a20ca367d1b Mon Sep 17 00:00:00 2001 From: Butkovits Atila Date: Thu, 8 Apr 2021 05:26:26 +0300 Subject: [PATCH] Backed out changeset caf472555c8a (bug 1701182) for causing failure on test_snap_empty.js. CLOSED TREE --- .../components/shell/nsGNOMEShellService.cpp | 11 +++++----- toolkit/profile/moz.build | 3 --- toolkit/profile/nsToolkitProfileService.cpp | 21 ++++++------------- widget/gtk/WidgetUtilsGtk.cpp | 10 --------- widget/gtk/WidgetUtilsGtk.h | 5 ----- widget/gtk/WindowSurfaceWayland.cpp | 11 +--------- 6 files changed, 13 insertions(+), 48 deletions(-) diff --git a/browser/components/shell/nsGNOMEShellService.cpp b/browser/components/shell/nsGNOMEShellService.cpp index bb95c362c91b..b6313bafedf6 100644 --- a/browser/components/shell/nsGNOMEShellService.cpp +++ b/browser/components/shell/nsGNOMEShellService.cpp @@ -23,7 +23,6 @@ #include "imgIRequest.h" #include "imgIContainer.h" #include "mozilla/Sprintf.h" -#include "mozilla/WidgetUtilsGtk.h" #include "mozilla/dom/Element.h" #if defined(MOZ_WIDGET_GTK) # include "nsIImageToPixbuf.h" @@ -73,15 +72,17 @@ static const MimeTypeAssociation appTypes[] = { #define kDesktopColorGSKey "primary-color" static bool IsRunningAsASnap() { - const char* snapName = mozilla::widget::WidgetUtilsGTK::GetSnapInstanceName(); + // SNAP holds the path to the snap, use SNAP_NAME + // which is easier to parse. + const char* snap_name = PR_GetEnv("SNAP_NAME"); // return early if not set. - if (snapName == nullptr) { + if (snap_name == nullptr) { return false; } - // snapName as defined on https://snapcraft.io/firefox - return (strcmp(snapName, "firefox") == 0); + // snap_name as defined on https://snapcraft.io/firefox + return (strcmp(snap_name, "firefox") == 0); } nsresult nsGNOMEShellService::Init() { diff --git a/toolkit/profile/moz.build b/toolkit/profile/moz.build index 37cc406882ce..db4df9abb2a7 100644 --- a/toolkit/profile/moz.build +++ b/toolkit/profile/moz.build @@ -30,9 +30,6 @@ if CONFIG["OS_TARGET"] == "Android": UNIFIED_SOURCES += ["nsToolkitProfileService.cpp"] -if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": - CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] - LOCAL_INCLUDES += [ "../xre", ] diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp index 363a0a075c31..9dabfae37601 100644 --- a/toolkit/profile/nsToolkitProfileService.cpp +++ b/toolkit/profile/nsToolkitProfileService.cpp @@ -50,10 +50,6 @@ #include "mozilla/Telemetry.h" #include "nsProxyRelease.h" -#if defined(MOZ_WIDGET_GTK) -# include "mozilla/WidgetUtilsGtk.h" -#endif - using namespace mozilla; #define DEV_EDITION_NAME "dev-edition-default" @@ -1837,19 +1833,14 @@ nsToolkitProfileService::CreateProfile(nsIFile* aRootDir, * get essentially the same benefits as dedicated profiles provides. */ bool nsToolkitProfileService::IsSnapEnvironment() { -#if defined(MOZ_WIDGET_GTK) - const char* snapName = mozilla::widget::WidgetUtilsGTK::GetSnapInstanceName(); - - // return early if not set. - if (snapName == nullptr) { + // Copied from IsRunningAsASnap() in + // browser/components/shell/nsGNOMEShellService.cpp + // TODO: factor out this common code in one place. + const char* snap_name = PR_GetEnv("SNAP_NAME"); + if (snap_name == nullptr) { return false; } - - // snapName as defined on https://snapcraft.io/firefox - return (strcmp(snapName, "firefox") == 0); -#endif - - return false; + return (strcmp(snap_name, "firefox") == 0); } /** diff --git a/widget/gtk/WidgetUtilsGtk.cpp b/widget/gtk/WidgetUtilsGtk.cpp index 940d2a93f1b5..66e764e26799 100644 --- a/widget/gtk/WidgetUtilsGtk.cpp +++ b/widget/gtk/WidgetUtilsGtk.cpp @@ -5,7 +5,6 @@ #include "WidgetUtilsGtk.h" #include "nsWindow.h" -#include "prenv.h" #include #include @@ -45,15 +44,6 @@ int32_t WidgetUtilsGTK::IsTouchDeviceSupportPresent() { return result; } -const char* WidgetUtilsGTK::GetSnapInstanceName() { - char* instanceName = PR_GetEnv("SNAP_INSTANCE_NAME"); - if (instanceName != nullptr) { - return instanceName; - } - // Compatibility for snapd <= 2.35: - return PR_GetEnv("SNAP_NAME"); -} - bool IsMainWindowTransparent() { return nsWindow::IsToplevelWindowTransparent(); } diff --git a/widget/gtk/WidgetUtilsGtk.h b/widget/gtk/WidgetUtilsGtk.h index 2dc0cafbcae1..bc3393644b52 100644 --- a/widget/gtk/WidgetUtilsGtk.h +++ b/widget/gtk/WidgetUtilsGtk.h @@ -16,11 +16,6 @@ class WidgetUtilsGTK { public: /* See WidgetUtils::IsTouchDeviceSupportPresent(). */ static int32_t IsTouchDeviceSupportPresent(); - - /* When packaged as a snap, strict confinement needs to be accounted for. - See https://snapcraft.io/docs for details. - Return the snap's instance name, or null when not running as a snap. */ - static const char* GetSnapInstanceName(); }; bool IsMainWindowTransparent(); diff --git a/widget/gtk/WindowSurfaceWayland.cpp b/widget/gtk/WindowSurfaceWayland.cpp index 1c2135e15fbc..f11af4ebec2f 100644 --- a/widget/gtk/WindowSurfaceWayland.cpp +++ b/widget/gtk/WindowSurfaceWayland.cpp @@ -5,7 +5,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsWaylandDisplay.h" -#include "WidgetUtilsGtk.h" #include "WindowSurfaceWayland.h" #include "nsPrintfCString.h" @@ -170,17 +169,9 @@ RefPtr WindowBackBuffer::GetWaylandDisplay() { static int WaylandAllocateShmMemory(int aSize) { int fd = -1; - - nsCString shmPrefix("/"); - const char* snapName = mozilla::widget::WidgetUtilsGTK::GetSnapInstanceName(); - if (snapName != nullptr) { - shmPrefix.AppendPrintf("snap.%s.", snapName); - } - shmPrefix.Append("wayland.mozilla.ipc"); - do { static int counter = 0; - nsPrintfCString shmName("%s.%d", shmPrefix.get(), counter++); + nsPrintfCString shmName("/wayland.mozilla.ipc.%d", counter++); fd = shm_open(shmName.get(), O_CREAT | O_RDWR | O_EXCL, 0600); if (fd >= 0) { // We don't want to use leaked file