Changeset 106899 in webkit


Ignore:
Timestamp:
Feb 6, 2012 8:16:50 PM (12 years ago)
Author:
wangxianzhu@chromium.org
Message:

Avoid Page::updateViewportArguments() if the causing frame is not the main frame
https://bugs.webkit.org/show_bug.cgi?id=77387

Reviewed by Kenneth Rohde Christiansen.

  • dom/Document.cpp:

(WebCore::Document::processViewport):
(WebCore::Document::updateViewportArguments):
(WebCore::Document::setInPageCache):

  • dom/Document.h:

(Document):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::insertedIntoDocument):

  • page/Frame.cpp:

(WebCore::Frame::setDocument):

  • page/Page.cpp:

(WebCore::Page::viewportArguments):
(WebCore):

  • page/Page.h:

(Page):

Location:
trunk/Source/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r106895 r106899  
     12012-02-06  Xianzhu Wang  <wangxianzhu@chromium.org>
     2
     3        Avoid Page::updateViewportArguments() if the causing frame is not the main frame
     4        https://bugs.webkit.org/show_bug.cgi?id=77387
     5
     6        Reviewed by Kenneth Rohde Christiansen.
     7
     8        * dom/Document.cpp:
     9        (WebCore::Document::processViewport):
     10        (WebCore::Document::updateViewportArguments):
     11        (WebCore::Document::setInPageCache):
     12        * dom/Document.h:
     13        (Document):
     14        * html/HTMLBodyElement.cpp:
     15        (WebCore::HTMLBodyElement::insertedIntoDocument):
     16        * page/Frame.cpp:
     17        (WebCore::Frame::setDocument):
     18        * page/Page.cpp:
     19        (WebCore::Page::viewportArguments):
     20        (WebCore):
     21        * page/Page.h:
     22        (Page):
     23
    1242012-02-06  Martin Robinson  <mrobinson@igalia.com>
    225
  • trunk/Source/WebCore/dom/Document.cpp

    r106833 r106899  
    27952795    processArguments(features, (void*)&m_viewportArguments, &setViewportFeature);
    27962796
    2797     Frame* frame = this->frame();
    2798     if (!frame || !frame->page())
    2799         return;
    2800 
    2801     frame->page()->updateViewportArguments();
     2797    updateViewportArguments();
     2798}
     2799
     2800void Document::updateViewportArguments()
     2801{
     2802    if (page() && page()->mainFrame() == frame())
     2803        page()->chrome()->dispatchViewportPropertiesDidChange(m_viewportArguments);
    28022804}
    28032805
     
    40774079        m_savedRenderer = 0;
    40784080
    4079         if (frame() && frame()->page())
    4080             frame()->page()->updateViewportArguments();
     4081        updateViewportArguments();
    40814082
    40824083        if (childNeedsStyleRecalc())
  • trunk/Source/WebCore/dom/Document.h

    r106632 r106899  
    804804    void processHttpEquiv(const String& equiv, const String& content);
    805805    void processViewport(const String& features);
     806    void updateViewportArguments();
    806807    void processReferrerPolicy(const String& policy);
    807808
  • trunk/Source/WebCore/html/HTMLBodyElement.cpp

    r106769 r106899  
    164164    HTMLElement::insertedIntoDocument();
    165165
     166    ASSERT(document());
     167
    166168    // FIXME: Perhaps this code should be in attach() instead of here.
    167169    Element* ownerElement = document()->ownerElement();
     
    181183        view->scheduleRelayout();
    182184
    183     if (document() && document()->page())
    184         document()->page()->updateViewportArguments();
     185    document()->updateViewportArguments();
    185186}
    186187
  • trunk/Source/WebCore/page/Frame.cpp

    r106884 r106899  
    291291    m_script.updateDocument();
    292292
    293     if (m_page) {
    294         m_page->updateViewportArguments();
    295         if (m_page->mainFrame() == this)
    296             notifyChromeClientWheelEventHandlerCountChanged();
    297     }
     293    if (m_doc)
     294        m_doc->updateViewportArguments();
     295
     296    if (m_page && m_page->mainFrame() == this)
     297        notifyChromeClientWheelEventHandlerCountChanged();
    298298}
    299299
  • trunk/Source/WebCore/page/Page.cpp

    r106492 r106899  
    241241}
    242242
     243ViewportArguments Page::viewportArguments() const
     244{
     245    return mainFrame() && mainFrame()->document() ? mainFrame()->document()->viewportArguments() : ViewportArguments();
     246}
     247
    243248#if ENABLE(THREADED_SCROLLING)
    244249ScrollingCoordinator* Page::scrollingCoordinator()
     
    431436}
    432437
    433 void Page::updateViewportArguments()
    434 {
    435     if (!mainFrame() || !mainFrame()->document())
    436         return;
    437 
    438     m_viewportArguments = mainFrame()->document()->viewportArguments();
    439     chrome()->dispatchViewportPropertiesDidChange(m_viewportArguments);
    440 }
    441 
    442438void Page::refreshPlugins(bool reload)
    443439{
  • trunk/Source/WebCore/page/Page.h

    r106511 r106899  
    134134        RenderTheme* theme() const { return m_theme.get(); };
    135135
    136         ViewportArguments viewportArguments() const { return m_viewportArguments; }
    137         void updateViewportArguments();
     136        ViewportArguments viewportArguments() const;
    138137
    139138        static void refreshPlugins(bool reload);
     
    465464        ViewMode m_viewMode;
    466465
    467         ViewportArguments m_viewportArguments;
    468 
    469466        double m_minimumTimerInterval;
    470467
Note: See TracChangeset for help on using the changeset viewer.