LayoutTests:
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Mar 2006 03:17:11 +0000 (03:17 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 11 Mar 2006 03:17:11 +0000 (03:17 +0000)
commite2ca7dfb379c1aa7f0eb40f76f35ab1052e30fce
tree81e11804f1c59c0fe910c219a4eab10145f65515
parent4de157d774fc224e8153d28a6e44f764b664090d
LayoutTests:

        Reviewed by Geoff, except for frame-name-reset, which was done by Alexey.

        - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=3308
          Pop-up blocking blocks window.open for already open windows

        * fast/dom/Window/open-existing-pop-up-blocking-expected.checksum: Added.
        * fast/dom/Window/open-existing-pop-up-blocking-expected.png: Added.
        * fast/dom/Window/open-existing-pop-up-blocking-expected.txt: Added.
        * fast/dom/Window/open-existing-pop-up-blocking.html: Added.
        * fast/dom/Window/resources/open-sibling-subframe.html: Added.
        * fast/dom/Window/resources/sibling-subframe-content.html: Added.

        - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=7422
          Setting a frame name to the same value resets it to a generated one

        * fast/frames/frame-name-reset.html: Added.
        * fast/frames/frame-name-reset-expected.txt: Added.

WebCore:

        Reviewed by Geoff.

        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=3308
          Pop-up blocking blocks window.open for already open windows

        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=7422
          Setting a frame name to the same value resets it to a generated one

        - refactor frame-name-related functions into the FrameTree object

        * WebCore.xcodeproj/project.pbxproj: Update for rename.
        * bridge/mac/MacFrame.h: Remove generateFrameName.
        * bridge/mac/MacFrame.mm: Ditto.
        * bridge/mac/PageMac.h: Added a declaration for WebCorePageBridge.

        * bridge/mac/WebCoreFrameBridge.h: Remove _frameNamespace, generateFrameName,
        setFrameNamespace, frameNamespace.
        * bridge/mac/WebCoreFrameBridge.mm:
        (-[WebCoreFrameBridge childFrameNamed:]): Change to call the new child
        function on the FrameTree.
        (-[WebCoreFrameBridge findFrameNamed:]): Change to call the new find
        function on the FrameTree.
        (-[WebCoreFrameBridge RenderObject::nodeInfoAtPoint:]): Change since the
        contentPart function has been renamed to contentFrame.

        * bridge/mac/WebCoreFrameNamespaces.h: Removed everything except for the
        one method still used on the WebKit side, framesInNamespace:.
        * bridge/mac/WebCoreFrameNamespaces.m: Renamed.
        * bridge/mac/WebCoreFrameNamespaces.mm: Added. Reimplemented the
        framesInNamespace method to use the namespace in WebCore::Page.

        * bridge/mac/WebCorePageBridge.h: Added setGroupName and groupName.
        * bridge/mac/WebCorePageBridge.mm:
        (-[WebCorePageBridge setGroupName:]): Added. Calls through to Page.
        (-[WebCorePageBridge groupName]): Ditto.

        * khtml/ecma/kjs_html.cpp:
        (KJS::HTMLDocument::namedItemGetter): Changed to call contentFrame by its new name.
        (KJS::HTMLElement::frameGetter): Ditto.
        (KJS::HTMLElement::iFrameGetter): Ditto.

        * khtml/ecma/kjs_window.cpp:
        (KJS::Window::getValueProperty): Changed to call FrameTree::childCount
        instead of Frame::frames.
        (KJS::Window::childFrameGetter): Changed to call FrameTree::child
        instead of Frame::childFrameNamed.
        (KJS::Window::namedFrameGetter): Changed to call FrameTree::find
        instead of Frame::findFrame.
        (KJS::Window::indexGetter): Changed to call FrameTree::child
        instead of Frame::frames.
        (KJS::Window::getOwnPropertySlot): Changed to call FrameTree::child,
        FrameTree::find, and FrameTree::childCount instead of Frame::childFrameNamed,
        and Frame::findFrame, and Frame::frames.
        (KJS::WindowFunc::callAsFunction): Call FrameTree::find to check if the window
        is already open when considering whether to block a pop-up.
        (KJS::FrameArray::getValueProperty): Changed to call FrameTree::childCount
        instead of Frame::frames.
        (KJS::FrameArray::indexGetter): Changed to call FrameTree::child
        instead of Frame::frames.
        (KJS::FrameArray::nameGetter): Changed to call FrameTree::child
        instead of Frame::findFrame.
        (KJS::FrameArray::getOwnPropertySlot): Changed to call FrameTree::child,
        and FrameTree::childCount instead of Frame::findFrame and Frame::frames.

        * khtml/html/html_baseimpl.h:
        * khtml/html/html_baseimpl.cpp:
        (WebCore::HTMLFrameElementImpl::isURLAllowed): Changed to call Page::frameCount
        instead of Frame::topLevelFrameCount.
        (WebCore::HTMLFrameElementImpl::openURL): Changed to call FrameTree::child
        instead of Frame::findFrame.
        (WebCore::HTMLFrameElementImpl::attach): Changed to call Page::incrementFrameCount
        instead of Frame::incrementFrameCount. Changed to call FrameTree::uniqueChildName
        instead of Frame::requestFrameName.
        (WebCore::HTMLFrameElementImpl::close): Changed to call Page::decrementFrameCount
        instead of Frame::decrementFrameCount. Changed to call FrameTree::child
        instead of Frame::findFrame.
        (WebCore::HTMLFrameElementImpl::contentFrame): Renamed from contentPart. Also
        changed to call FrameTree::child instead of Frame::findFrame.
        (WebCore::HTMLFrameElementImpl::contentDocument): Updated for name change of
        contentFrame from contentPart.
        (WebCore::HTMLIFrameElementImpl::attach): Changed to call Page::incrementFrameCount
        instead of Frame::incrementFrameCount. Changed to call FrameTree::uniqueChildName
        instead of Frame::requestFrameName.

        * rendering/render_frames.cpp: (WebCore::isURLAllowed): Changed to call Page::frameCount
        instead of Frame::topLevelFrameCount.

        * page/Frame.h: Removed frameNames, frames, childFrameNamed, findFrame, currentFrame,
        frameExists, incrementFrameCount, decrementFrameCount, topLevelFrameCount,
        generateFrameName, and requestFrameName functions.
        * page/Frame.cpp: (WebCore::Frame::requestFrame): Changed to use FrameTree::child
        instead of Frame::childFrameNamed.

        * page/FrameTree.h: Changed name to an atomic string. Changed childCount to unsigned.
        Added isDescendantOf, traverseNext, child, find, uniqueChildName.
        * page/FrameTree.cpp:
        (WebCore::FrameTree::setName): Changed to call uniqueChildName to handle name
        duplication logic.
        (WebCore::FrameTree::uniqueChildName): Added. Checks for duplication and generates
        an appropriate frame name if there is a duplicate.
        (WebCore::FrameTree::child): Added.
        (WebCore::FrameTree::find): Added.
        (WebCore::FrameTree::isDescendantOf): Added.
        (WebCore::FrameTree::traverseNext): Added.

        * page/Page.h: Added setGroupName, groupName, frameNamespace, incrementFrameCount,
        decrementFrameCount, and frameCount.
        * page/Page.cpp:
        (WebCore::Page::Page): Initialize m_frameCount to 0.
        (WebCore::Page::~Page): Call setGroupName to remove the page from any group it's in.
        (WebCore::Page::setGroupName): Added.
        (WebCore::Page::frameNamespace): Added.

        * platform/win/TemporaryLinkStubs.cpp: Removed FrameWin::generateFrameName.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@13257 268f45cc-cd09-0410-ab3c-d52691b4dbfc
32 files changed:
LayoutTests/ChangeLog
LayoutTests/fast/dom/Window/open-existing-pop-up-blocking-expected.checksum [new file with mode: 0644]
LayoutTests/fast/dom/Window/open-existing-pop-up-blocking-expected.png [new file with mode: 0644]
LayoutTests/fast/dom/Window/open-existing-pop-up-blocking-expected.txt [new file with mode: 0644]
LayoutTests/fast/dom/Window/open-existing-pop-up-blocking.html [new file with mode: 0644]
LayoutTests/fast/dom/Window/resources/open-sibling-subframe.html [new file with mode: 0644]
LayoutTests/fast/dom/Window/resources/sibling-subframe-content.html [new file with mode: 0644]
LayoutTests/fast/frames/frame-name-reset-expected.txt [new file with mode: 0644]
LayoutTests/fast/frames/frame-name-reset.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/bridge/mac/MacFrame.h
WebCore/bridge/mac/MacFrame.mm
WebCore/bridge/mac/PageMac.h
WebCore/bridge/mac/WebCoreFrameBridge.h
WebCore/bridge/mac/WebCoreFrameBridge.mm
WebCore/bridge/mac/WebCoreFrameNamespaces.h
WebCore/bridge/mac/WebCoreFrameNamespaces.mm [moved from WebCore/bridge/mac/WebCoreFrameNamespaces.m with 54% similarity]
WebCore/bridge/mac/WebCorePageBridge.h
WebCore/bridge/mac/WebCorePageBridge.mm
WebCore/khtml/ecma/kjs_html.cpp
WebCore/khtml/ecma/kjs_window.cpp
WebCore/khtml/html/html_baseimpl.cpp
WebCore/khtml/html/html_baseimpl.h
WebCore/page/Frame.cpp
WebCore/page/Frame.h
WebCore/page/FrameTree.cpp
WebCore/page/FrameTree.h
WebCore/page/Page.cpp
WebCore/page/Page.h
WebCore/platform/win/TemporaryLinkStubs.cpp
WebCore/rendering/render_frames.cpp