[epiphany] Add hidden setting for disabling quirks mode



commit 65fffebe37e4f7692c53602f11a7055edb71bc0a
Author: Michael Catanzaro <mcatanzaro igalia com>
Date:   Mon May 8 15:43:57 2017 -0500

    Add hidden setting for disabling quirks mode
    
    This would have allowed us to give users an immediate workaround to
    solve the problem where the Google login page does not work at all,
    since it's caused by a user agent quirk we have to make various other
    Google websites work properly.

 data/org.gnome.epiphany.gschema.xml |    5 ++++
 embed/ephy-embed-prefs.c            |    5 +++-
 lib/ephy-prefs.h                    |   42 ++++++++++++++++++----------------
 3 files changed, 31 insertions(+), 21 deletions(-)
---
diff --git a/data/org.gnome.epiphany.gschema.xml b/data/org.gnome.epiphany.gschema.xml
index 6540572..e8daf9a 100644
--- a/data/org.gnome.epiphany.gschema.xml
+++ b/data/org.gnome.epiphany.gschema.xml
@@ -226,6 +226,11 @@
                        <summary>Remember passwords</summary>
                        <description>Whether to store and prefill passwords in websites.</description>
                </key>
+               <key type="b" name="enable-site-specific-quirks">
+                       <default>true</default>
+                       <summary>Enable site-specific quirks</summary>
+                       <description>Enable quirks to make specific websites work better. You might want to 
disable this setting if debugging a specific issue.</description>
+               </key>
        </schema>
        <schema id="org.gnome.Epiphany.state">
                <key type="s" name="download-dir">
diff --git a/embed/ephy-embed-prefs.c b/embed/ephy-embed-prefs.c
index 3db6ac8..ae3f728 100644
--- a/embed/ephy-embed-prefs.c
+++ b/embed/ephy-embed-prefs.c
@@ -561,7 +561,6 @@ ephy_embed_prefs_init (gpointer user_data)
   webkit_settings = webkit_settings_new_with_settings ("enable-developer-extras", TRUE,
                                                        "enable-fullscreen", TRUE,
                                                        "enable-javascript", TRUE,
-                                                       "enable-site-specific-quirks", TRUE,
                                                        "enable-dns-prefetching", TRUE,
                                                        "javascript-can-open-windows-automatically", TRUE,
                                                        NULL);
@@ -621,6 +620,10 @@ ephy_embed_prefs_init (gpointer user_data)
                    EPHY_PREFS_WEB_ENABLE_SMOOTH_SCROLLING,
                    webkit_settings, "enable-smooth-scrolling",
                    G_SETTINGS_BIND_GET);
+  g_settings_bind (EPHY_SETTINGS_WEB,
+                   EPHY_PREFS_WEB_ENABLE_SITE_SPECIFIC_QUIRKS,
+                   webkit_settings, "enable-site-specific-quirks",
+                   G_SETTINGS_BIND_GET);
   return webkit_settings;
 }
 
diff --git a/lib/ephy-prefs.h b/lib/ephy-prefs.h
index 919037e..d2d443e 100644
--- a/lib/ephy-prefs.h
+++ b/lib/ephy-prefs.h
@@ -78,26 +78,27 @@ static const char * const ephy_prefs_state_schema[] = {
   EPHY_PREFS_STATE_IS_MAXIMIZED
 };
 
-#define EPHY_PREFS_WEB_SCHEMA                  "org.gnome.Epiphany.web"
-#define EPHY_PREFS_WEB_FONT_MIN_SIZE           "min-font-size"
-#define EPHY_PREFS_WEB_LANGUAGE                "language"
-#define EPHY_PREFS_WEB_USE_GNOME_FONTS         "use-gnome-fonts"
-#define EPHY_PREFS_WEB_SANS_SERIF_FONT         "sans-serif-font"
-#define EPHY_PREFS_WEB_SERIF_FONT              "serif-font"
-#define EPHY_PREFS_WEB_MONOSPACE_FONT          "monospace-font"
-#define EPHY_PREFS_WEB_ENABLE_USER_CSS         "enable-user-css"
-#define EPHY_PREFS_WEB_ENABLE_POPUPS           "enable-popups"
-#define EPHY_PREFS_WEB_ENABLE_PLUGINS          "enable-plugins"
-#define EPHY_PREFS_WEB_ENABLE_SPELL_CHECKING   "enable-spell-checking"
-#define EPHY_PREFS_WEB_ENABLE_WEBGL            "enable-webgl"
-#define EPHY_PREFS_WEB_ENABLE_WEBAUDIO         "enable-webaudio"
-#define EPHY_PREFS_WEB_ENABLE_SMOOTH_SCROLLING "enable-smooth-scrolling"
-#define EPHY_PREFS_WEB_USER_AGENT              "user-agent"
-#define EPHY_PREFS_WEB_COOKIES_POLICY          "cookies-policy"
-#define EPHY_PREFS_WEB_DEFAULT_ENCODING        "default-encoding"
-#define EPHY_PREFS_WEB_DO_NOT_TRACK            "do-not-track"
-#define EPHY_PREFS_WEB_ENABLE_ADBLOCK          "enable-adblock"
-#define EPHY_PREFS_WEB_REMEMBER_PASSWORDS      "remember-passwords"
+#define EPHY_PREFS_WEB_SCHEMA                      "org.gnome.Epiphany.web"
+#define EPHY_PREFS_WEB_FONT_MIN_SIZE               "min-font-size"
+#define EPHY_PREFS_WEB_LANGUAGE                    "language"
+#define EPHY_PREFS_WEB_USE_GNOME_FONTS             "use-gnome-fonts"
+#define EPHY_PREFS_WEB_SANS_SERIF_FONT             "sans-serif-font"
+#define EPHY_PREFS_WEB_SERIF_FONT                  "serif-font"
+#define EPHY_PREFS_WEB_MONOSPACE_FONT              "monospace-font"
+#define EPHY_PREFS_WEB_ENABLE_USER_CSS             "enable-user-css"
+#define EPHY_PREFS_WEB_ENABLE_POPUPS               "enable-popups"
+#define EPHY_PREFS_WEB_ENABLE_PLUGINS              "enable-plugins"
+#define EPHY_PREFS_WEB_ENABLE_SPELL_CHECKING       "enable-spell-checking"
+#define EPHY_PREFS_WEB_ENABLE_WEBGL                "enable-webgl"
+#define EPHY_PREFS_WEB_ENABLE_WEBAUDIO             "enable-webaudio"
+#define EPHY_PREFS_WEB_ENABLE_SMOOTH_SCROLLING     "enable-smooth-scrolling"
+#define EPHY_PREFS_WEB_USER_AGENT                  "user-agent"
+#define EPHY_PREFS_WEB_COOKIES_POLICY              "cookies-policy"
+#define EPHY_PREFS_WEB_DEFAULT_ENCODING            "default-encoding"
+#define EPHY_PREFS_WEB_DO_NOT_TRACK                "do-not-track"
+#define EPHY_PREFS_WEB_ENABLE_ADBLOCK              "enable-adblock"
+#define EPHY_PREFS_WEB_REMEMBER_PASSWORDS          "remember-passwords"
+#define EPHY_PREFS_WEB_ENABLE_SITE_SPECIFIC_QUIRKS "enable-site-specific-quirks"
 
 static const char * const ephy_prefs_web_schema[] = {
   EPHY_PREFS_WEB_FONT_MIN_SIZE,
@@ -119,6 +120,7 @@ static const char * const ephy_prefs_web_schema[] = {
   EPHY_PREFS_WEB_DO_NOT_TRACK,
   EPHY_PREFS_WEB_ENABLE_ADBLOCK,
   EPHY_PREFS_WEB_REMEMBER_PASSWORDS,
+  EPHY_PREFS_WEB_ENABLE_SITE_SPECIFIC_QUIRKS
 };
 
 #define EPHY_PREFS_SCHEMA                             "org.gnome.Epiphany"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]