summaryrefslogtreecommitdiff
path: root/mozilla-1158076.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1158076.patch')
-rw-r--r--mozilla-1158076.patch185
1 files changed, 0 insertions, 185 deletions
diff --git a/mozilla-1158076.patch b/mozilla-1158076.patch
deleted file mode 100644
index 8a90be5..0000000
--- a/mozilla-1158076.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-diff -up firefox-52.0/modules/libpref/init/all.js.1158076 firefox-52.0/modules/libpref/init/all.js
---- firefox-52.0/modules/libpref/init/all.js.1158076 2017-03-22 10:05:22.318067553 +0100
-+++ firefox-52.0/modules/libpref/init/all.js 2017-03-22 10:07:15.360555913 +0100
-@@ -4646,6 +4646,7 @@ pref("gfx.apitrace.enabled",false);
- pref("gfx.content.use-native-pushlayer", true);
- #ifdef MOZ_WIDGET_GTK
- pref("gfx.xrender.enabled",false);
-+pref("widget.allow-gtk-dark-theme", false);
- #endif
- #endif
-
-diff -up firefox-52.0/widget/gtk/mozgtk/mozgtk.c.1158076 firefox-52.0/widget/gtk/mozgtk/mozgtk.c
---- firefox-52.0/widget/gtk/mozgtk/mozgtk.c.1158076 2017-03-22 10:05:22.313067576 +0100
-+++ firefox-52.0/widget/gtk/mozgtk/mozgtk.c 2017-03-22 10:08:34.122199432 +0100
-@@ -522,6 +522,7 @@ STUB(gdk_x11_display_get_type)
- STUB(gtk_box_new)
- STUB(gtk_cairo_should_draw_window)
- STUB(gtk_cairo_transform_to_window)
-+STUB(gtk_css_provider_get_named)
- STUB(gtk_combo_box_text_append)
- STUB(gtk_drag_set_icon_surface)
- STUB(gtk_get_major_version)
-@@ -548,6 +549,7 @@ STUB(gtk_scale_new)
- STUB(gtk_scrollbar_new)
- STUB(gtk_style_context_add_class)
- STUB(gtk_style_context_add_region)
-+STUB(gtk_style_context_add_provider_for_screen)
- STUB(gtk_style_context_get)
- STUB(gtk_style_context_get_background_color)
- STUB(gtk_style_context_get_border)
-@@ -573,6 +575,7 @@ STUB(gtk_style_context_set_path)
- STUB(gtk_style_context_set_parent)
- STUB(gtk_style_context_set_state)
- STUB(gtk_style_properties_lookup_property)
-+STUB(gtk_style_provider_get_type)
- STUB(gtk_tree_view_column_get_button)
- STUB(gtk_widget_get_preferred_size)
- STUB(gtk_widget_get_state_flags)
-diff -up firefox-52.0/widget/gtk/nsLookAndFeel.cpp.1158076 firefox-52.0/widget/gtk/nsLookAndFeel.cpp
---- firefox-52.0/widget/gtk/nsLookAndFeel.cpp.1158076 2017-03-22 10:05:22.314067571 +0100
-+++ firefox-52.0/widget/gtk/nsLookAndFeel.cpp 2017-03-22 10:07:56.914367838 +0100
-@@ -50,9 +50,9 @@ nsLookAndFeel::nsLookAndFeel()
- mStyle(nullptr),
- #endif
- mDefaultFontCached(false), mButtonFontCached(false),
-- mFieldFontCached(false), mMenuFontCached(false)
-+ mFieldFontCached(false), mMenuFontCached(false),
-+ mInitialized(false)
- {
-- Init();
- }
-
- nsLookAndFeel::~nsLookAndFeel()
-@@ -224,6 +224,8 @@ GetBorderColors(GtkStyleContext* aContex
- nsresult
- nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
- {
-+ EnsureInit();
-+
- #if (MOZ_WIDGET_GTK == 3)
- GdkRGBA gdk_color;
- #endif
-@@ -675,6 +677,8 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
- return res;
- res = NS_OK;
-
-+ // We use delayed initialization by EnsureInit() here
-+ // to ensure mozilla::Preferences is available (see Bug 1158076).
- switch (aID) {
- case eIntID_CaretBlinkTime:
- {
-@@ -837,6 +841,7 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
- aResult = NS_STYLE_TEXT_DECORATION_STYLE_WAVY;
- break;
- case eIntID_MenuBarDrag:
-+ EnsureInit();
- aResult = sMenuSupportsDrag;
- break;
- case eIntID_ScrollbarButtonAutoRepeatBehavior:
-@@ -877,6 +882,7 @@ nsLookAndFeel::GetFloatImpl(FloatID aID,
- aResult = 1.0f;
- break;
- case eFloatID_CaretAspectRatio:
-+ EnsureInit();
- aResult = sCaretRatio;
- break;
- default:
-@@ -1057,11 +1063,15 @@ nsLookAndFeel::GetFontImpl(FontID aID, n
- }
-
- void
--nsLookAndFeel::Init()
-+nsLookAndFeel::EnsureInit()
- {
- GdkColor colorValue;
- GdkColor *colorValuePtr;
-
-+ if (mInitialized)
-+ return;
-+ mInitialized = true;
-+
- #if (MOZ_WIDGET_GTK == 2)
- NS_ASSERTION(!mStyle, "already initialized");
- // GtkInvisibles come with a refcount that is not floating
-@@ -1133,17 +1143,40 @@ nsLookAndFeel::Init()
- // ask Gtk to create it explicitly. Otherwise we may end up
- // with wrong color theme, see Bug 972382
- GtkSettings *settings = gtk_settings_get_for_screen(gdk_screen_get_default());
-+ bool e10sActive = mozilla::BrowserTabsRemoteAutostart();
-+
-+ if (!e10sActive || XRE_IsContentProcess()) {
-+ // Disable dark theme in processes with web content because it
-+ // interacts poorly with widget styling (see bug 1216658).
-+ // To avoid triggering reload of theme settings unnecessarily, only set the
-+ // setting when necessary.
-+ const gchar* dark_setting = "gtk-application-prefer-dark-theme";
-+ gboolean dark;
-+ g_object_get(settings, dark_setting, &dark, nullptr);
-+
-+ bool allowDarkEnv = PR_GetEnv("MOZ_ALLOW_GTK_DARK_THEME") != nullptr;
-+ bool allowDarkPref =
-+ mozilla::Preferences::GetBool("widget.allow-gtk-dark-theme", false);
-
-- // Disable dark theme because it interacts poorly with widget styling in
-- // web content (see bug 1216658).
-- // To avoid triggering reload of theme settings unnecessarily, only set the
-- // setting when necessary.
-- const gchar* dark_setting = "gtk-application-prefer-dark-theme";
-- gboolean dark;
-- g_object_get(settings, dark_setting, &dark, nullptr);
-+ if (dark && !allowDarkEnv && !allowDarkPref) {
-+ g_object_set(settings, dark_setting, FALSE, nullptr);
-+ }
-
-- if (dark && !PR_GetEnv("MOZ_ALLOW_GTK_DARK_THEME")) {
-- g_object_set(settings, dark_setting, FALSE, nullptr);
-+ // Allow Gtk+ theme override for web content only.
-+ if (e10sActive) {
-+ auto contentThemeName =
-+ mozilla::Preferences::GetCString("widget.content-gtk-theme");
-+ if (!contentThemeName.IsEmpty()) {
-+ // TODO: It should be enough to change theme by "gtk-theme-name"
-+ // settings but that does not have any effect here. Maybe we
-+ // call it too late?
-+ GtkCssProvider *styleProvider =
-+ gtk_css_provider_get_named(contentThemeName, NULL);
-+ gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
-+ GTK_STYLE_PROVIDER(styleProvider),
-+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-+ }
-+ }
- }
-
- // Scrollbar colors
-@@ -1439,6 +1472,7 @@ nsLookAndFeel::Init()
- char16_t
- nsLookAndFeel::GetPasswordCharacterImpl()
- {
-+ EnsureInit();
- return sInvisibleCharacter;
- }
-
-@@ -1457,7 +1491,7 @@ nsLookAndFeel::RefreshImpl()
- mStyle = nullptr;
- #endif
-
-- Init();
-+ mInitialized = false;
- }
-
- bool
-diff -up firefox-52.0/widget/gtk/nsLookAndFeel.h.1158076 firefox-52.0/widget/gtk/nsLookAndFeel.h
---- firefox-52.0/widget/gtk/nsLookAndFeel.h.1158076 2016-05-12 19:13:34.000000000 +0200
-+++ firefox-52.0/widget/gtk/nsLookAndFeel.h 2017-03-22 10:06:36.461731972 +0100
-@@ -84,8 +84,9 @@ protected:
- char16_t sInvisibleCharacter;
- float sCaretRatio;
- bool sMenuSupportsDrag;
-+ bool mInitialized;
-
-- void Init();
-+ void EnsureInit();
- };
-
- #endif
bgstack15