зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 627da64827ab (bug 1701182) for build bustages in gecko/browser/components/shell/nsGNOMEShellService.cpp. CLOSED TREE
This commit is contained in:
Родитель
e0e8caca4e
Коммит
f0985635c0
|
@ -23,7 +23,6 @@
|
||||||
#include "imgIRequest.h"
|
#include "imgIRequest.h"
|
||||||
#include "imgIContainer.h"
|
#include "imgIContainer.h"
|
||||||
#include "mozilla/Sprintf.h"
|
#include "mozilla/Sprintf.h"
|
||||||
#include "mozilla/WidgetUtilsGtk.h"
|
|
||||||
#include "mozilla/dom/Element.h"
|
#include "mozilla/dom/Element.h"
|
||||||
#if defined(MOZ_WIDGET_GTK)
|
#if defined(MOZ_WIDGET_GTK)
|
||||||
# include "nsIImageToPixbuf.h"
|
# include "nsIImageToPixbuf.h"
|
||||||
|
@ -73,15 +72,17 @@ static const MimeTypeAssociation appTypes[] = {
|
||||||
#define kDesktopColorGSKey "primary-color"
|
#define kDesktopColorGSKey "primary-color"
|
||||||
|
|
||||||
static bool IsRunningAsASnap() {
|
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.
|
// return early if not set.
|
||||||
if (snapName == nullptr) {
|
if (snap_name == nullptr) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// snapName as defined on https://snapcraft.io/firefox
|
// snap_name as defined on https://snapcraft.io/firefox
|
||||||
return (strcmp(snapName, "firefox") == 0);
|
return (strcmp(snap_name, "firefox") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult nsGNOMEShellService::Init() {
|
nsresult nsGNOMEShellService::Init() {
|
||||||
|
|
|
@ -50,10 +50,6 @@
|
||||||
#include "mozilla/Telemetry.h"
|
#include "mozilla/Telemetry.h"
|
||||||
#include "nsProxyRelease.h"
|
#include "nsProxyRelease.h"
|
||||||
|
|
||||||
#if defined(MOZ_WIDGET_GTK)
|
|
||||||
#include "mozilla/WidgetUtilsGtk.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using namespace mozilla;
|
using namespace mozilla;
|
||||||
|
|
||||||
#define DEV_EDITION_NAME "dev-edition-default"
|
#define DEV_EDITION_NAME "dev-edition-default"
|
||||||
|
@ -1837,19 +1833,14 @@ nsToolkitProfileService::CreateProfile(nsIFile* aRootDir,
|
||||||
* get essentially the same benefits as dedicated profiles provides.
|
* get essentially the same benefits as dedicated profiles provides.
|
||||||
*/
|
*/
|
||||||
bool nsToolkitProfileService::IsSnapEnvironment() {
|
bool nsToolkitProfileService::IsSnapEnvironment() {
|
||||||
#if defined(MOZ_WIDGET_GTK)
|
// Copied from IsRunningAsASnap() in
|
||||||
const char* snapName = mozilla::widget::WidgetUtilsGtk::GetSnapInstanceName();
|
// browser/components/shell/nsGNOMEShellService.cpp
|
||||||
|
// TODO: factor out this common code in one place.
|
||||||
// return early if not set.
|
const char* snap_name = PR_GetEnv("SNAP_NAME");
|
||||||
if (snapName == nullptr) {
|
if (snap_name == nullptr) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
return (strcmp(snap_name, "firefox") == 0);
|
||||||
// snapName as defined on https://snapcraft.io/firefox
|
|
||||||
return (strcmp(snapName, "firefox") == 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
|
|
||||||
#include "WidgetUtilsGtk.h"
|
#include "WidgetUtilsGtk.h"
|
||||||
#include "nsWindow.h"
|
#include "nsWindow.h"
|
||||||
#include "prenv.h"
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
@ -45,15 +44,6 @@ int32_t WidgetUtilsGTK::IsTouchDeviceSupportPresent() {
|
||||||
return result;
|
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() {
|
bool IsMainWindowTransparent() {
|
||||||
return nsWindow::IsToplevelWindowTransparent();
|
return nsWindow::IsToplevelWindowTransparent();
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,11 +16,6 @@ class WidgetUtilsGTK {
|
||||||
public:
|
public:
|
||||||
/* See WidgetUtils::IsTouchDeviceSupportPresent(). */
|
/* See WidgetUtils::IsTouchDeviceSupportPresent(). */
|
||||||
static int32_t 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();
|
bool IsMainWindowTransparent();
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
#include "nsWaylandDisplay.h"
|
#include "nsWaylandDisplay.h"
|
||||||
#include "WidgetUtilsGtk.h"
|
|
||||||
#include "WindowSurfaceWayland.h"
|
#include "WindowSurfaceWayland.h"
|
||||||
|
|
||||||
#include "nsPrintfCString.h"
|
#include "nsPrintfCString.h"
|
||||||
|
@ -170,17 +169,9 @@ RefPtr<nsWaylandDisplay> WindowBackBuffer::GetWaylandDisplay() {
|
||||||
|
|
||||||
static int WaylandAllocateShmMemory(int aSize) {
|
static int WaylandAllocateShmMemory(int aSize) {
|
||||||
int fd = -1;
|
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 {
|
do {
|
||||||
static int counter = 0;
|
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);
|
fd = shm_open(shmName.get(), O_CREAT | O_RDWR | O_EXCL, 0600);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
// We don't want to use leaked file
|
// We don't want to use leaked file
|
||||||
|
|
Загрузка…
Ссылка в новой задаче