Title: [177110] trunk/Source
Revision
177110
Author
mh...@apple.com
Date
2014-12-10 15:42:51 -0800 (Wed, 10 Dec 2014)

Log Message

[iOS] Add setting to ignore viewport scaling constraints
https://bugs.webkit.org/show_bug.cgi?id=139466
<rdar://problem/19200328>

Reviewed by Benjamin Poulain.

Source/WebCore:

* WebCore.exp.in:
* page/Settings.in: Add setting to ignore viewport scaling constraints.
* page/ViewportConfiguration.cpp: Ignore viewport scaling constraints based on preference.
(WebCore::ViewportConfiguration::initialScale):
(WebCore::ViewportConfiguration::minimumScale):
(WebCore::ViewportConfiguration::allowsUserScaling):
* page/ViewportConfiguration.h:
(WebCore::ViewportConfiguration::setIgnoreScalingConstraints):
(WebCore::ViewportConfiguration::allowsUserScaling): Moved to cpp.

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h: Add ignoreViewportScalingConstraints preference.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetIgnoreViewportScalingConstraints):
(WKPreferencesGetIgnoreViewportScalingConstraints):
* UIProcess/API/C/WKPreferencesRef.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (177109 => 177110)


--- trunk/Source/WebCore/ChangeLog	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebCore/ChangeLog	2014-12-10 23:42:51 UTC (rev 177110)
@@ -1,3 +1,21 @@
+2014-12-10  Martin Hock  <mh...@apple.com>
+
+        [iOS] Add setting to ignore viewport scaling constraints
+        https://bugs.webkit.org/show_bug.cgi?id=139466
+        <rdar://problem/19200328>
+
+        Reviewed by Benjamin Poulain.
+
+        * WebCore.exp.in:
+        * page/Settings.in: Add setting to ignore viewport scaling constraints.
+        * page/ViewportConfiguration.cpp: Ignore viewport scaling constraints based on preference.
+        (WebCore::ViewportConfiguration::initialScale):
+        (WebCore::ViewportConfiguration::minimumScale):
+        (WebCore::ViewportConfiguration::allowsUserScaling):
+        * page/ViewportConfiguration.h:
+        (WebCore::ViewportConfiguration::setIgnoreScalingConstraints):
+        (WebCore::ViewportConfiguration::allowsUserScaling): Moved to cpp.
+
 2014-12-10  Andreas Kling  <akl...@apple.com>
 
         Speculative fix for assertion "frame().view() == this"

Modified: trunk/Source/WebCore/WebCore.exp.in (177109 => 177110)


--- trunk/Source/WebCore/WebCore.exp.in	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebCore/WebCore.exp.in	2014-12-10 23:42:51 UTC (rev 177110)
@@ -1908,6 +1908,7 @@
 __ZNK7WebCore21ViewportConfiguration10layoutSizeEv
 __ZNK7WebCore21ViewportConfiguration12initialScaleEv
 __ZNK7WebCore21ViewportConfiguration12minimumScaleEv
+__ZNK7WebCore21ViewportConfiguration17allowsUserScalingEv
 __ZNK7WebCore22WheelEventDeltaTracker30dominantScrollGestureDirectionEv
 __ZNK7WebCore23ApplicationCacheStorage11maximumSizeEv
 __ZNK7WebCore23AuthenticationChallenge20authenticationClientEv

Modified: trunk/Source/WebCore/page/Settings.in (177109 => 177110)


--- trunk/Source/WebCore/page/Settings.in	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebCore/page/Settings.in	2014-12-10 23:42:51 UTC (rev 177110)
@@ -236,3 +236,5 @@
 longMousePressEnabled initial=false
 
 serviceControlsEnabled initial=false, conditional=SERVICE_CONTROLS
+
+ignoreViewportScalingConstraints initial=false
\ No newline at end of file

Modified: trunk/Source/WebCore/page/ViewportConfiguration.cpp (177109 => 177110)


--- trunk/Source/WebCore/page/ViewportConfiguration.cpp	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebCore/page/ViewportConfiguration.cpp	2014-12-10 23:42:51 UTC (rev 177110)
@@ -46,6 +46,7 @@
 
 ViewportConfiguration::ViewportConfiguration()
     : m_minimumLayoutSize(1024, 768)
+    , m_ignoreScalingConstraints(false)
 {
     // Setup a reasonable default configuration to avoid computing infinite scale/sizes.
     // Those are the original iPhone configuration.
@@ -102,7 +103,7 @@
 
     // If the document has specified its own initial scale, use it regardless.
     // This is guaranteed to be sanity checked already, so no need for MIN/MAX.
-    if (m_configuration.initialScaleIsSet)
+    if (m_configuration.initialScaleIsSet && !m_ignoreScalingConstraints)
         return m_configuration.initialScale;
 
     // If not, it is up to us to determine the initial scale.
@@ -117,13 +118,13 @@
     double height = m_contentSize.height() > 0 ? m_contentSize.height() : layoutHeight();
     if (height > 0 && height * initialScale < minimumLayoutSize.height())
         initialScale = minimumLayoutSize.height() / height;
-    return std::min(std::max(initialScale, m_configuration.minimumScale), m_configuration.maximumScale);
+    return std::min(std::max(initialScale, m_ignoreScalingConstraints ? m_defaultConfiguration.minimumScale : m_configuration.minimumScale), m_configuration.maximumScale);
 }
 
 double ViewportConfiguration::minimumScale() const
 {
     // If we scale to fit, then this is our minimum scale as well.
-    if (!m_configuration.initialScaleIsSet)
+    if (!m_configuration.initialScaleIsSet || m_ignoreScalingConstraints)
         return initialScale();
 
     // If not, we still need to sanity check our value.
@@ -143,6 +144,11 @@
     return minimumScale;
 }
 
+bool ViewportConfiguration::allowsUserScaling() const
+{
+    return m_ignoreScalingConstraints || m_configuration.allowsUserScaling;
+}
+
 ViewportConfiguration::Parameters ViewportConfiguration::webpageParameters()
 {
     Parameters parameters;

Modified: trunk/Source/WebCore/page/ViewportConfiguration.h (177109 => 177110)


--- trunk/Source/WebCore/page/ViewportConfiguration.h	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebCore/page/ViewportConfiguration.h	2014-12-10 23:42:51 UTC (rev 177110)
@@ -77,11 +77,13 @@
     const ViewportArguments& viewportArguments() const { return m_viewportArguments; }
     WEBCORE_EXPORT void setViewportArguments(const ViewportArguments&);
 
+    void setIgnoreScalingConstraints(bool ignoreScalingConstraints) {m_ignoreScalingConstraints = ignoreScalingConstraints; }
+
     WEBCORE_EXPORT IntSize layoutSize() const;
     WEBCORE_EXPORT double initialScale() const;
     WEBCORE_EXPORT double minimumScale() const;
     double maximumScale() const { return m_configuration.maximumScale; }
-    bool allowsUserScaling() const { return m_configuration.allowsUserScaling; }
+    WEBCORE_EXPORT bool allowsUserScaling() const;
 
     WEBCORE_EXPORT static Parameters webpageParameters();
     WEBCORE_EXPORT static Parameters textDocumentParameters();
@@ -105,6 +107,8 @@
     IntSize m_contentSize;
     FloatSize m_minimumLayoutSize;
     ViewportArguments m_viewportArguments;
+
+    bool m_ignoreScalingConstraints;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebKit2/ChangeLog (177109 => 177110)


--- trunk/Source/WebKit2/ChangeLog	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebKit2/ChangeLog	2014-12-10 23:42:51 UTC (rev 177110)
@@ -1,3 +1,19 @@
+2014-12-10  Martin Hock  <mh...@apple.com>
+
+        [iOS] Add setting to ignore viewport scaling constraints
+        https://bugs.webkit.org/show_bug.cgi?id=139466
+        <rdar://problem/19200328>
+
+        Reviewed by Benjamin Poulain.
+
+        * Shared/WebPreferencesDefinitions.h: Add ignoreViewportScalingConstraints preference.
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetIgnoreViewportScalingConstraints):
+        (WKPreferencesGetIgnoreViewportScalingConstraints):
+        * UIProcess/API/C/WKPreferencesRef.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
 2014-12-10  Timothy Horton  <timothy_hor...@apple.com>
 
         Fix the build.

Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (177109 => 177110)


--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h	2014-12-10 23:42:51 UTC (rev 177110)
@@ -236,6 +236,7 @@
     macro(TiledScrollingIndicatorVisible, tiledScrollingIndicatorVisible, Bool, bool, false) \
     macro(SimpleLineLayoutDebugBordersEnabled, simpleLineLayoutDebugBordersEnabled, Bool, bool, false) \
     macro(LogsPageMessagesToSystemConsoleEnabled, logsPageMessagesToSystemConsoleEnabled, Bool, bool, false) \
+    macro(IgnoreViewportScalingConstraints, ignoreViewportScalingConstraints, Bool, bool, false) \
     \
 
 #define FOR_EACH_WEBKIT_DEBUG_UINT32_PREFERENCE(macro) \

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (177109 => 177110)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2014-12-10 23:42:51 UTC (rev 177110)
@@ -1326,3 +1326,12 @@
     return toImpl(preferencesRef)->visibleDebugOverlayRegions();
 }
 
+void WKPreferencesSetIgnoreViewportScalingConstraints(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setIgnoreViewportScalingConstraints(enabled);
+}
+
+bool WKPreferencesGetIgnoreViewportScalingConstraints(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->ignoreViewportScalingConstraints();
+}

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRef.h (177109 => 177110)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRef.h	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRef.h	2014-12-10 23:42:51 UTC (rev 177110)
@@ -258,6 +258,10 @@
 WK_EXPORT void WKPreferencesSetVisibleDebugOverlayRegions(WKPreferencesRef preferencesRef, WKDebugOverlayRegions enabled);
 WK_EXPORT WKDebugOverlayRegions WKPreferencesGetVisibleDebugOverlayRegions(WKPreferencesRef preferencesRef);
 
+// Defaults to false.
+WK_EXPORT void WKPreferencesSetIgnoreViewportScalingConstraints(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetIgnoreViewportScalingConstraints(WKPreferencesRef preferencesRef);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (177109 => 177110)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2014-12-10 23:35:26 UTC (rev 177109)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2014-12-10 23:42:51 UTC (rev 177110)
@@ -2885,6 +2885,10 @@
 
     if (m_drawingArea)
         m_drawingArea->updatePreferences(store);
+
+#if PLATFORM(IOS)
+    m_viewportConfiguration.setIgnoreScalingConstraints(store.getBoolValueForKey(WebPreferencesKey::ignoreViewportScalingConstraintsKey()));
+#endif
 }
 
 #if PLATFORM(COCOA)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to