Changeset 167738 in webkit


Ignore:
Timestamp:
Apr 23, 2014 7:37:05 PM (10 years ago)
Author:
benjamin@webkit.org
Message:

[iOS][WK2] Image and text documents sometime gets the webpage viewport configuration
https://bugs.webkit.org/show_bug.cgi?id=132099

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-23
Reviewed by Tim Horton.

When didReceiveMobileDocType(), if the doctype was not XHTML mobile, we were setting
the viewport configuration to webpageParameters(). This is obviously not correct for
Image and Text documents.

This patch moves the code deciding the default configuration out of WebPage::didCommitLoad()
and use it from WebPage::didCommitLoad() and WebPage::didReceiveMobileDocType().

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCommitLoad):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::didReceiveMobileDocType):
(WebKit::WebPage::resetViewportDefaultConfiguration):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r167735 r167738  
     12014-04-23  Benjamin Poulain  <bpoulain@apple.com>
     2
     3        [iOS][WK2] Image and text documents sometime gets the webpage viewport configuration
     4        https://bugs.webkit.org/show_bug.cgi?id=132099
     5
     6        Reviewed by Tim Horton.
     7
     8        When didReceiveMobileDocType(), if the doctype was not XHTML mobile, we were setting
     9        the viewport configuration to webpageParameters(). This is obviously not correct for
     10        Image and Text documents.
     11
     12        This patch moves the code deciding the default configuration out of WebPage::didCommitLoad()
     13        and use it from WebPage::didCommitLoad() and WebPage::didReceiveMobileDocType().
     14
     15        * WebProcess/WebPage/WebPage.cpp:
     16        (WebKit::WebPage::didCommitLoad):
     17        * WebProcess/WebPage/WebPage.h:
     18        * WebProcess/WebPage/ios/WebPageIOS.mm:
     19        (WebKit::WebPage::didReceiveMobileDocType):
     20        (WebKit::WebPage::resetViewportDefaultConfiguration):
     21
    1222014-04-23  Benjamin Poulain  <bpoulain@apple.com>
    223
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r167735 r167738  
    42554255    WebProcess::shared().eventDispatcher().clearQueuedTouchEventsForPage(*this);
    42564256
    4257     Document* document = frame->coreFrame()->document();
    4258     if (document->isImageDocument())
    4259         m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::imageDocumentParameters());
    4260     else if (document->isTextDocument())
    4261         m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::textDocumentParameters());
    4262     else
    4263         m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters());
    4264 
     4257    resetViewportDefaultConfiguration(frame);
    42654258    m_viewportConfiguration.setViewportArguments(ViewportArguments());
    42664259    m_viewportConfiguration.setContentsSize(IntSize());
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h

    r167735 r167738  
    699699    void setMinimumLayoutSizeForMinimalUI(const WebCore::FloatSize&);
    700700    void dynamicViewportSizeUpdate(const WebCore::FloatSize& minimumLayoutSize, const WebCore::FloatRect& targetExposedContentRect, const WebCore::FloatRect& targetUnobscuredRect, double scale);
    701     void viewportConfigurationChanged();
    702701    void updateVisibleContentRects(const VisibleContentRectUpdateInfo&);
    703702    bool scaleWasSetByUIProcess() const { return m_scaleWasSetByUIProcess; }
     
    803802
    804803#if PLATFORM(IOS)
     804    void resetViewportDefaultConfiguration(WebFrame* mainFrame);
     805    void viewportConfigurationChanged();
     806
    805807    static void convertSelectionRectsToRootView(WebCore::FrameView*, Vector<WebCore::SelectionRect>&);
    806808    PassRefPtr<WebCore::Range> rangeForWebSelectionAtPosition(const WebCore::IntPoint&, const WebCore::VisiblePosition&, SelectionFlags&);
  • trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm

    r167735 r167738  
    135135        m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::xhtmlMobileParameters());
    136136    else
    137         m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters());
     137        resetViewportDefaultConfiguration(m_mainFrame.get());
    138138}
    139139
     
    19201920}
    19211921
     1922void WebPage::resetViewportDefaultConfiguration(WebFrame* frame)
     1923{
     1924    if (!frame) {
     1925        m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters());
     1926        return;
     1927    }
     1928
     1929    Document* document = frame->coreFrame()->document();
     1930    if (document->isImageDocument())
     1931        m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::imageDocumentParameters());
     1932    else if (document->isTextDocument())
     1933        m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::textDocumentParameters());
     1934    else
     1935        m_viewportConfiguration.setDefaultConfiguration(ViewportConfiguration::webpageParameters());
     1936}
     1937
    19221938void WebPage::viewportConfigurationChanged()
    19231939{
Note: See TracChangeset for help on using the changeset viewer.