Changeset 49196 in webkit


Ignore:
Timestamp:
Oct 6, 2009 11:20:33 AM (15 years ago)
Author:
eric@webkit.org
Message:

2009-10-06 Adam Barth <abarth@webkit.org>

Reviewed by Eric Seidel.

Move m_openedByDOM to Page
https://bugs.webkit.org/show_bug.cgi?id=30109

We only need one instance of m_openedByDOM per page, we should move it
to a page-scoped object. Notice that it's only ever touched for the
main frame.

  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::createWindow):
  • bindings/v8/custom/V8DOMWindowCustom.cpp: (WebCore::createWindow):
  • loader/FrameLoader.cpp:
  • loader/FrameLoader.h:
  • page/DOMWindow.cpp: (WebCore::DOMWindow::close):
  • page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::openedByDOM): (WebCore::Page::setOpenedByDOM):
  • page/Page.h:
Location:
trunk/WebCore
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r49195 r49196  
     12009-10-06  Adam Barth  <abarth@webkit.org>
     2
     3        Reviewed by Eric Seidel.
     4
     5        Move m_openedByDOM to Page
     6        https://bugs.webkit.org/show_bug.cgi?id=30109
     7
     8        We only need one instance of m_openedByDOM per page, we should move it
     9        to a page-scoped object.  Notice that it's only ever touched for the
     10        main frame.
     11
     12        * bindings/js/JSDOMWindowCustom.cpp:
     13        (WebCore::createWindow):
     14        * bindings/v8/custom/V8DOMWindowCustom.cpp:
     15        (WebCore::createWindow):
     16        * loader/FrameLoader.cpp:
     17        * loader/FrameLoader.h:
     18        * page/DOMWindow.cpp:
     19        (WebCore::DOMWindow::close):
     20        * page/Page.cpp:
     21        (WebCore::Page::Page):
     22        (WebCore::Page::openedByDOM):
     23        (WebCore::Page::setOpenedByDOM):
     24        * page/Page.h:
     25
    1262009-10-06  Carol Szabo  <carol.szabo@nokia.com>
    227
  • trunk/WebCore/bindings/js/JSDOMWindowCustom.cpp

    r49130 r49196  
    771771
    772772    newFrame->loader()->setOpener(openerFrame);
    773     newFrame->loader()->setOpenedByDOM();
     773    newFrame->page()->setOpenedByDOM();
    774774
    775775    JSDOMWindow* newWindow = toJSDOMWindow(newFrame);
  • trunk/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp

    r48994 r49196  
    497497
    498498    newFrame->loader()->setOpener(openerFrame);
    499     newFrame->loader()->setOpenedByDOM();
     499    newFrame->page()->setOpenedByDOM();
    500500
    501501    // Set dialog arguments on the global object of the new frame.
  • trunk/WebCore/loader/FrameLoader.cpp

    r49067 r49196  
    15341534}
    15351535
    1536 bool FrameLoader::openedByDOM() const
    1537 {
    1538     return m_openedByDOM;
    1539 }
    1540 
    1541 void FrameLoader::setOpenedByDOM()
    1542 {
    1543     m_openedByDOM = true;
    1544 }
    1545 
    15461536void FrameLoader::handleFallbackContent()
    15471537{
     
    38313821        mainFrame->tree()->setName(frameName);
    38323822
    3833     mainFrame->loader()->setOpenedByDOM();
     3823    mainFrame->page()->setOpenedByDOM();
    38343824    mainFrame->loader()->m_client->dispatchShow();
    38353825    mainFrame->loader()->setOpener(frame.get());
  • trunk/WebCore/loader/FrameLoader.h

    r49067 r49196  
    273273        Frame* opener();
    274274        void setOpener(Frame*);
    275         bool openedByDOM() const;
    276         void setOpenedByDOM();
    277275
    278276        bool isProcessingUserGesture();
  • trunk/WebCore/page/DOMWindow.cpp

    r49067 r49196  
    740740
    741741    Settings* settings = m_frame->settings();
    742     bool allowScriptsToCloseWindows =
    743         settings && settings->allowScriptsToCloseWindows();
    744 
    745     if (m_frame->loader()->openedByDOM()
    746         || page->getHistoryLength() <= 1
    747         || allowScriptsToCloseWindows)
     742    bool allowScriptsToCloseWindows = settings && settings->allowScriptsToCloseWindows();
     743
     744    if (page->openedByDOM() || page->getHistoryLength() <= 1 || allowScriptsToCloseWindows)
    748745        m_frame->scheduleClose();
    749746}
  • trunk/WebCore/page/Page.cpp

    r49067 r49196  
    120120    , m_editorClient(editorClient)
    121121    , m_frameCount(0)
     122    , m_openedByDOM(false)
    122123    , m_tabKeyCyclesThroughElements(true)
    123124    , m_defersLoading(false)
     
    200201    ASSERT(!m_mainFrame); // Should only be called during initialization
    201202    m_mainFrame = mainFrame;
     203}
     204
     205bool Page::openedByDOM() const
     206{
     207    return m_openedByDOM;
     208}
     209
     210void Page::setOpenedByDOM()
     211{
     212    m_openedByDOM = true;
    202213}
    203214
  • trunk/WebCore/page/Page.h

    r49067 r49196  
    104104        Frame* mainFrame() const { return m_mainFrame.get(); }
    105105
     106        bool openedByDOM() const;
     107        void setOpenedByDOM();
     108
    106109        BackForwardList* backForwardList();
    107110
     
    265268        int m_frameCount;
    266269        String m_groupName;
     270        bool m_openedByDOM;
    267271
    268272        bool m_tabKeyCyclesThroughElements;
Note: See TracChangeset for help on using the changeset viewer.