Title: [151701] trunk/Source/WebKit2
Revision
151701
Author
[email protected]
Date
2013-06-18 15:01:37 -0700 (Tue, 18 Jun 2013)

Log Message

Make it possible to set a minimum height for auto-layout
https://bugs.webkit.org/show_bug.cgi?id=117758
<rdar://problem/12849080>

Reviewed by Tim Horton.

Change a bunch of minimumLayoutWidth declarations to minimumLayoutSize and add a new minimumLayoutSize property.
If minimumLayoutSize.height is greater than zero, use it to set the minimum layout size on the frame view.

* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPageCreationParameters.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _setIntrinsicContentSize:]):
(-[WKView minimumLayoutWidth]):
(-[WKView setMinimumLayoutWidth:]):
(-[WKView minimumWidthForAutoLayout]):
(-[WKView setMinimumWidthForAutoLayout:]):
(-[WKView minimumSizeForAutoLayout]):
(-[WKView setMinimumSizeForAutoLayout:]):
* UIProcess/API/mac/WKViewPrivate.h:
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::minimumLayoutSizeDidChange):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setMinimumLayoutSize):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::minimumLayoutSize):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::TiledCoreAnimationDrawingAreaProxy):
(WebKit::TiledCoreAnimationDrawingAreaProxy::minimumLayoutSizeDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setMinimumLayoutSize):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::minimumLayoutSize):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (151700 => 151701)


--- trunk/Source/WebKit2/ChangeLog	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/ChangeLog	2013-06-18 22:01:37 UTC (rev 151701)
@@ -1,3 +1,54 @@
+2013-06-18  Anders Carlsson  <[email protected]>
+
+        Make it possible to set a minimum height for auto-layout
+        https://bugs.webkit.org/show_bug.cgi?id=117758
+        <rdar://problem/12849080>
+
+        Reviewed by Tim Horton.
+
+        Change a bunch of minimumLayoutWidth declarations to minimumLayoutSize and add a new minimumLayoutSize property.
+        If minimumLayoutSize.height is greater than zero, use it to set the minimum layout size on the frame view.
+
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode):
+        (WebKit::WebPageCreationParameters::decode):
+        * Shared/WebPageCreationParameters.h:
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView _setIntrinsicContentSize:]):
+        (-[WKView minimumLayoutWidth]):
+        (-[WKView setMinimumLayoutWidth:]):
+        (-[WKView minimumWidthForAutoLayout]):
+        (-[WKView setMinimumWidthForAutoLayout:]):
+        (-[WKView minimumSizeForAutoLayout]):
+        (-[WKView setMinimumSizeForAutoLayout:]):
+        * UIProcess/API/mac/WKViewPrivate.h:
+        * UIProcess/DrawingAreaProxy.h:
+        (WebKit::DrawingAreaProxy::minimumLayoutSizeDidChange):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::WebPageProxy):
+        (WebKit::WebPageProxy::creationParameters):
+        (WebKit::WebPageProxy::setMinimumLayoutSize):
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::minimumLayoutSize):
+        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
+        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
+        (WebKit::TiledCoreAnimationDrawingAreaProxy::TiledCoreAnimationDrawingAreaProxy):
+        (WebKit::TiledCoreAnimationDrawingAreaProxy::minimumLayoutSizeDidChange):
+        (WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry):
+        (WebKit::TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange):
+        (WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage):
+        (WebKit::WebPage::setMinimumLayoutSize):
+        * WebProcess/WebPage/WebPage.h:
+        (WebKit::WebPage::minimumLayoutSize):
+        * WebProcess/WebPage/WebPage.messages.in:
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+        (WebKit::TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged):
+        (WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
+
 2013-06-18  Simon Cooper  <[email protected]>
 
         sandbox violation when Flash runs for the first time

Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp (151700 => 151701)


--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.cpp	2013-06-18 22:01:37 UTC (rev 151701)
@@ -59,7 +59,7 @@
     encoder << deviceScaleFactor;
     encoder << mediaVolume;
     encoder << mayStartMediaWhenInWindow;
-    encoder << minimumLayoutWidth;
+    encoder << minimumLayoutSize;
 
 #if PLATFORM(MAC)
     encoder.encodeEnum(layerHostingMode);
@@ -121,7 +121,7 @@
         return false;
     if (!decoder.decode(parameters.mayStartMediaWhenInWindow))
         return false;
-    if (!decoder.decode(parameters.minimumLayoutWidth))
+    if (!decoder.decode(parameters.minimumLayoutSize))
         return false;
     
 #if PLATFORM(MAC)

Modified: trunk/Source/WebKit2/Shared/WebPageCreationParameters.h (151700 => 151701)


--- trunk/Source/WebKit2/Shared/WebPageCreationParameters.h	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/Shared/WebPageCreationParameters.h	2013-06-18 22:01:37 UTC (rev 151701)
@@ -89,7 +89,7 @@
     float mediaVolume;
     bool mayStartMediaWhenInWindow;
 
-    float minimumLayoutWidth;
+    WebCore::IntSize minimumLayoutSize;
 
 #if PLATFORM(MAC)
     LayerHostingMode layerHostingMode;

Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (151700 => 151701)


--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm	2013-06-18 22:01:37 UTC (rev 151701)
@@ -3035,7 +3035,7 @@
     // so that autolayout will know to provide space for us.
 
     NSSize intrinsicContentSizeAcknowledgingFlexibleWidth = intrinsicContentSize;
-    if (intrinsicContentSize.width < _data->_page->minimumLayoutWidth())
+    if (intrinsicContentSize.width < _data->_page->minimumLayoutSize().width())
         intrinsicContentSizeAcknowledgingFlexibleWidth.width = NSViewNoInstrinsicMetric;
 
     _data->_intrinsicContentSize = intrinsicContentSizeAcknowledgingFlexibleWidth;
@@ -3277,11 +3277,11 @@
     static BOOL loggedDeprecationWarning = NO;
 
     if (!loggedDeprecationWarning) {
-        NSLog(@"Please use minimumWidthForAutoLayout instead of minimumLayoutWidth.");
+        NSLog(@"Please use minimumSizeForAutoLayout instead of minimumLayoutWidth.");
         loggedDeprecationWarning = YES;
     }
 
-    return _data->_page->minimumLayoutWidth();
+    return self.minimumSizeForAutoLayout.width;
 }
 
 - (void)setMinimumLayoutWidth:(CGFloat)minimumLayoutWidth
@@ -3289,7 +3289,7 @@
     static BOOL loggedDeprecationWarning = NO;
 
     if (!loggedDeprecationWarning) {
-        NSLog(@"Please use minimumWidthForAutoLayout instead of minimumLayoutWidth.");
+        NSLog(@"Please use setMinimumSizeForAutoLayout: instead of setMinimumLayoutWidth:.");
         loggedDeprecationWarning = YES;
     }
 
@@ -3298,15 +3298,39 @@
 
 - (CGFloat)minimumWidthForAutoLayout
 {
-    return _data->_page->minimumLayoutWidth();
+    static BOOL loggedDeprecationWarning = NO;
+
+    if (!loggedDeprecationWarning) {
+        NSLog(@"Please use minimumSizeForAutoLayout instead of minimumWidthForAutoLayout.");
+        loggedDeprecationWarning = YES;
+    }
+
+    return self.minimumSizeForAutoLayout.width;
 }
 
 - (void)setMinimumWidthForAutoLayout:(CGFloat)minimumLayoutWidth
 {
-    BOOL expandsToFit = minimumLayoutWidth > 0;
+    static BOOL loggedDeprecationWarning = NO;
 
-    _data->_page->setMinimumLayoutWidth(minimumLayoutWidth);
+    if (!loggedDeprecationWarning) {
+        NSLog(@"Please use setMinimumSizeForAutoLayout: instead of setMinimumWidthForAutoLayout:");
+        loggedDeprecationWarning = YES;
+    }
 
+    self.minimumSizeForAutoLayout = NSMakeSize(minimumLayoutWidth, self.minimumSizeForAutoLayout.height);
+}
+
+- (NSSize)minimumSizeForAutoLayout
+{
+    return _data->_page->minimumLayoutSize();
+}
+
+- (void)setMinimumSizeForAutoLayout:(NSSize)minimumSizeForAutoLayout
+{
+    BOOL expandsToFit = minimumSizeForAutoLayout.width > 0;
+
+    _data->_page->setMinimumLayoutSize(IntSize(minimumSizeForAutoLayout.width, minimumSizeForAutoLayout.height));
+
     [self setShouldClipToVisibleRect:expandsToFit];
 }
 

Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKViewPrivate.h (151700 => 151701)


--- trunk/Source/WebKit2/UIProcess/API/mac/WKViewPrivate.h	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKViewPrivate.h	2013-06-18 22:01:37 UTC (rev 151701)
@@ -60,6 +60,7 @@
 
 @property (readwrite) CGFloat minimumLayoutWidth;
 @property (readwrite) CGFloat minimumWidthForAutoLayout;
+@property (readwrite) NSSize minimumSizeForAutoLayout;
 @property (readwrite) BOOL shouldClipToVisibleRect;
 
 @property(copy, nonatomic) NSColor *underlayColor;

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h (151700 => 151701)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2013-06-18 22:01:37 UTC (rev 151701)
@@ -71,7 +71,7 @@
     virtual void waitForPossibleGeometryUpdate(double = didUpdateBackingStoreStateTimeout) { }
 
     virtual void colorSpaceDidChange() { }
-    virtual void minimumLayoutWidthDidChange() { }
+    virtual void minimumLayoutSizeDidChange() { }
 
 #if USE(COORDINATED_GRAPHICS)
     virtual void updateViewport();

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (151700 => 151701)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2013-06-18 22:01:37 UTC (rev 151701)
@@ -307,7 +307,6 @@
     , m_renderTreeSize(0)
     , m_shouldSendEventsSynchronously(false)
     , m_suppressVisibilityUpdates(false)
-    , m_minimumLayoutWidth(0)
     , m_mediaVolume(1)
     , m_mayStartMediaWhenInWindow(true)
     , m_waitingForDidUpdateInWindowState(false)
@@ -3990,7 +3989,7 @@
     parameters.deviceScaleFactor = deviceScaleFactor();
     parameters.mediaVolume = m_mediaVolume;
     parameters.mayStartMediaWhenInWindow = m_mayStartMediaWhenInWindow;
-    parameters.minimumLayoutWidth = m_minimumLayoutWidth;
+    parameters.minimumLayoutSize = m_minimumLayoutSize;
 
 #if PLATFORM(MAC)
     parameters.layerHostingMode = m_layerHostingMode;
@@ -4370,21 +4369,21 @@
     m_process->send(Messages::WebPage::LinkClicked(url, event), m_pageID, 0);
 }
 
-void WebPageProxy::setMinimumLayoutWidth(double minimumLayoutWidth)
+void WebPageProxy::setMinimumLayoutSize(const IntSize& minimumLayoutSize)
 {
-    if (m_minimumLayoutWidth == minimumLayoutWidth)
+    if (m_minimumLayoutSize == minimumLayoutSize)
         return;
 
-    m_minimumLayoutWidth = minimumLayoutWidth;
+    m_minimumLayoutSize = minimumLayoutSize;
 
     if (!isValid())
         return;
 
-    m_process->send(Messages::WebPage::SetMinimumLayoutWidth(minimumLayoutWidth), m_pageID, 0);
-    m_drawingArea->minimumLayoutWidthDidChange();
+    m_process->send(Messages::WebPage::SetMinimumLayoutSize(minimumLayoutSize), m_pageID, 0);
+    m_drawingArea->minimumLayoutSizeDidChange();
 
 #if PLATFORM(MAC)
-    if (m_minimumLayoutWidth <= 0)
+    if (m_minimumLayoutSize.width() <= 0)
         intrinsicContentSizeDidChange(IntSize(-1, -1));
 #endif
 }

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (151700 => 151701)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2013-06-18 22:01:37 UTC (rev 151701)
@@ -757,8 +757,8 @@
 
     const WebLoaderClient& loaderClient() { return m_loaderClient; }
 
-    double minimumLayoutWidth() const { return m_minimumLayoutWidth; }
-    void setMinimumLayoutWidth(double);
+    WebCore::IntSize minimumLayoutSize() const { return m_minimumLayoutSize; }
+    void setMinimumLayoutSize(const WebCore::IntSize&);
 
     bool mainFrameInViewSourceMode() const { return m_mainFrameInViewSourceMode; }
     void setMainFrameInViewSourceMode(bool);
@@ -1261,7 +1261,7 @@
     bool m_shouldSendEventsSynchronously;
 
     bool m_suppressVisibilityUpdates;
-    float m_minimumLayoutWidth;
+    WebCore::IntSize m_minimumLayoutSize;
 
     float m_mediaVolume;
     bool m_mayStartMediaWhenInWindow;

Modified: trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h (151700 => 151701)


--- trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h	2013-06-18 22:01:37 UTC (rev 151701)
@@ -48,7 +48,7 @@
     virtual void sizeDidChange() OVERRIDE;
     virtual void waitForPossibleGeometryUpdate(double timeout = didUpdateBackingStoreStateTimeout) OVERRIDE;
     virtual void colorSpaceDidChange() OVERRIDE;
-    virtual void minimumLayoutWidthDidChange() OVERRIDE;
+    virtual void minimumLayoutSizeDidChange() OVERRIDE;
 
     virtual void enterAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) OVERRIDE;
     virtual void exitAcceleratedCompositingMode(uint64_t backingStoreStateID, const UpdateInfo&) OVERRIDE;
@@ -67,8 +67,8 @@
     WebCore::IntSize m_lastSentSize;
     WebCore::IntSize m_lastSentLayerPosition;
 
-    // The last minimum layout width we sent to the web process.
-    double m_lastSentMinimumLayoutWidth;
+    // The last minimum layout size we sent to the web process.
+    WebCore::IntSize m_lastSentMinimumLayoutSize;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm (151700 => 151701)


--- trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm	2013-06-18 22:01:37 UTC (rev 151701)
@@ -47,7 +47,6 @@
 TiledCoreAnimationDrawingAreaProxy::TiledCoreAnimationDrawingAreaProxy(WebPageProxy* webPageProxy)
     : DrawingAreaProxy(DrawingAreaTypeTiledCoreAnimation, webPageProxy)
     , m_isWaitingForDidUpdateGeometry(false)
-    , m_lastSentMinimumLayoutWidth(0)
 {
 }
 
@@ -102,7 +101,7 @@
     m_webPageProxy->process()->send(Messages::DrawingArea::SetColorSpace(m_webPageProxy->colorSpace()), m_webPageProxy->pageID());
 }
 
-void TiledCoreAnimationDrawingAreaProxy::minimumLayoutWidthDidChange()
+void TiledCoreAnimationDrawingAreaProxy::minimumLayoutSizeDidChange()
 {
     if (!m_webPageProxy->isValid())
         return;
@@ -137,17 +136,17 @@
 
     m_isWaitingForDidUpdateGeometry = false;
 
-    double minimumLayoutWidth = m_webPageProxy->minimumLayoutWidth();
+    IntSize minimumLayoutSize = m_webPageProxy->minimumLayoutSize();
 
     // If the WKView was resized while we were waiting for a DidUpdateGeometry reply from the web process,
     // we need to resend the new size here.
-    if (m_lastSentSize != m_size || m_lastSentLayerPosition != m_layerPosition || m_lastSentMinimumLayoutWidth != minimumLayoutWidth)
+    if (m_lastSentSize != m_size || m_lastSentLayerPosition != m_layerPosition || m_lastSentMinimumLayoutSize != minimumLayoutSize)
         sendUpdateGeometry();
 }
 
 void TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange(const IntSize& newIntrinsicContentSize)
 {
-    if (m_webPageProxy->minimumLayoutWidth() > 0)
+    if (m_webPageProxy->minimumLayoutSize().width() > 0)
         m_webPageProxy->intrinsicContentSizeDidChange(newIntrinsicContentSize);
 }
 
@@ -155,7 +154,7 @@
 {
     ASSERT(!m_isWaitingForDidUpdateGeometry);
 
-    m_lastSentMinimumLayoutWidth = m_webPageProxy->minimumLayoutWidth();
+    m_lastSentMinimumLayoutSize = m_webPageProxy->minimumLayoutSize();
     m_lastSentSize = m_size;
     m_lastSentLayerPosition = m_layerPosition;
     m_webPageProxy->process()->send(Messages::DrawingArea::UpdateGeometry(m_size, m_layerPosition), m_webPageProxy->pageID());

Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (151700 => 151701)


--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp	2013-06-18 22:01:37 UTC (rev 151701)
@@ -1237,10 +1237,11 @@
         IntSize(), currentFixedVisibleContentRect, shouldUseFixedLayout,
         defaultScrollbarMode, /* lock */ shouldHideScrollbars, defaultScrollbarMode, /* lock */ shouldHideScrollbars);
 
-    int minimumLayoutWidth = webPage->minimumLayoutWidth();
-    int maximumSize = std::numeric_limits<int>::max();
-    if (minimumLayoutWidth)
-        m_frame->coreFrame()->view()->enableAutoSizeMode(true, IntSize(minimumLayoutWidth, 1), IntSize(maximumSize, maximumSize));
+    if (int minimumLayoutWidth = webPage->minimumLayoutSize().width()) {
+        int minimumLayoutHeight = std::max(webPage->minimumLayoutSize().height(), 1);
+        int maximumSize = std::numeric_limits<int>::max();
+        m_frame->coreFrame()->view()->enableAutoSizeMode(true, IntSize(minimumLayoutWidth, minimumLayoutHeight), IntSize(maximumSize, maximumSize));
+    }
 
     m_frame->coreFrame()->view()->setProhibitsScrolling(shouldDisableScrolling);
     m_frame->coreFrame()->view()->setVisualUpdatesAllowedByClient(!webPage->shouldExtendIncrementalRenderingSuppression());

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (151700 => 151701)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2013-06-18 22:01:37 UTC (rev 151701)
@@ -278,7 +278,6 @@
     , m_canShortCircuitHorizontalWheelEvents(false)
     , m_numWheelEventHandlers(0)
     , m_cachedPageCount(0)
-    , m_minimumLayoutWidth(0)
 #if ENABLE(CONTEXT_MENUS)
     , m_isShowingContextMenu(false)
 #endif
@@ -379,7 +378,7 @@
 
     setIsInWindow(parameters.isInWindow);
 
-    setMinimumLayoutWidth(parameters.minimumLayoutWidth);
+    setMinimumLayoutSize(parameters.minimumLayoutSize);
 
     m_userAgent = parameters.userAgent;
 
@@ -3954,19 +3953,23 @@
     m_mainFrame->coreFrame()->setInViewSourceMode(inViewSourceMode);
 }
 
-void WebPage::setMinimumLayoutWidth(double minimumLayoutWidth)
+void WebPage::setMinimumLayoutSize(const IntSize& minimumLayoutSize)
 {
-    if (m_minimumLayoutWidth == minimumLayoutWidth)
+    if (m_minimumLayoutSize == minimumLayoutSize)
         return;
 
-    m_minimumLayoutWidth = minimumLayoutWidth;
+    m_minimumLayoutSize = minimumLayoutSize;
+    if (minimumLayoutSize.width() <= 0) {
+        corePage()->mainFrame()->view()->enableAutoSizeMode(false, IntSize(), IntSize());
+        return;
+    }
 
+    int minimumLayoutWidth = minimumLayoutSize.width();
+    int minimumLayoutHeight = std::max(minimumLayoutSize.height(), 1);
+
     int maximumSize = std::numeric_limits<int>::max();
 
-    if (minimumLayoutWidth > 0)
-        corePage()->mainFrame()->view()->enableAutoSizeMode(true, IntSize(minimumLayoutWidth, 1), IntSize(maximumSize, maximumSize));
-    else
-        corePage()->mainFrame()->view()->enableAutoSizeMode(false, IntSize(), IntSize());
+    corePage()->mainFrame()->view()->enableAutoSizeMode(true, IntSize(minimumLayoutWidth, minimumLayoutHeight), IntSize(maximumSize, maximumSize));
 }
 
 bool WebPage::isSmartInsertDeleteEnabled()

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (151700 => 151701)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2013-06-18 22:01:37 UTC (rev 151701)
@@ -641,8 +641,8 @@
 
     bool mainFrameIsScrollable() const { return m_mainFrameIsScrollable; }
 
-    void setMinimumLayoutWidth(double);
-    double minimumLayoutWidth() const { return m_minimumLayoutWidth; }
+    void setMinimumLayoutSize(const WebCore::IntSize&);
+    WebCore::IntSize minimumLayoutSize() const { return m_minimumLayoutSize; }
 
     bool canShowMIMEType(const String& MIMEType) const;
 
@@ -1004,7 +1004,7 @@
 
     unsigned m_cachedPageCount;
 
-    double m_minimumLayoutWidth;
+    WebCore::IntSize m_minimumLayoutSize;
 
 #if ENABLE(CONTEXT_MENUS)
     bool m_isShowingContextMenu;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (151700 => 151701)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2013-06-18 22:01:37 UTC (rev 151701)
@@ -290,7 +290,7 @@
     InsertDictatedText(WTF::String text, uint64_t replacementRangeStart, uint64_t replacementRangeEnd, WTF::Vector<WebCore::DictationAlternative> dictationAlternatives) -> (bool handled, WebKit::EditorState newState)
 #endif
 
-    SetMinimumLayoutWidth(double minimumLayoutWidth)
+    SetMinimumLayoutSize(WebCore::IntSize minimumLayoutSize)
 
 #if PLATFORM(EFL)
     ConfirmComposition(WTF::String compositionString)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (151700 => 151701)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2013-06-18 21:53:22 UTC (rev 151700)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2013-06-18 22:01:37 UTC (rev 151701)
@@ -253,7 +253,7 @@
 
 void TiledCoreAnimationDrawingArea::mainFrameContentSizeChanged(const IntSize&)
 {
-    if (!m_webPage->minimumLayoutWidth())
+    if (!m_webPage->minimumLayoutSize().width())
         return;
 
     if (m_inUpdateGeometry)
@@ -424,12 +424,12 @@
     IntSize size = viewSize;
     IntSize contentSize = IntSize(-1, -1);
 
-    if (!m_webPage->minimumLayoutWidth())
+    if (!m_webPage->minimumLayoutSize().width())
         m_webPage->setSize(size);
 
     m_webPage->layoutIfNeeded();
 
-    if (m_webPage->minimumLayoutWidth()) {
+    if (m_webPage->minimumLayoutSize().width()) {
         contentSize = m_webPage->mainWebFrame()->contentBounds().size();
         size = contentSize;
     }
@@ -457,7 +457,7 @@
 
     m_webPage->send(Messages::DrawingAreaProxy::DidUpdateGeometry());
 
-    if (m_webPage->minimumLayoutWidth() && !m_updateIntrinsicContentSizeTimer.isActive())
+    if (m_webPage->minimumLayoutSize().width() && !m_updateIntrinsicContentSizeTimer.isActive())
         m_updateIntrinsicContentSizeTimer.startOneShot(0);
 
     m_inUpdateGeometry = false;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to