diff options
author | simon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> | 2013-05-25 23:56:01 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-09 09:55:36 +0200 |
commit | f3484678deb631b7d994dd400b609dcb7bbbc04b (patch) | |
tree | ac9039ad86485ee18607e15adca2fc6b643ddc8f /Source | |
parent | 412ec5284b300668101a1db137e08a729008d164 (diff) | |
download | qtwebkit-f3484678deb631b7d994dd400b609dcb7bbbc04b.tar.gz |
Unprefix Page Visibility API
https://bugs.webkit.org/show_bug.cgi?id=102340
Source/WebCore:
Reviewed by Tim Horton.
Remove prefixes from the document properties, and the visibilitychanged event.
Rename the "preview" state to "unloaded". The "unloaded" state is never
reached yet (see https://bugs.webkit.org/show_bug.cgi?id=116769).
Add some comments to places where we should update the visibility state
when going in and out of the page cache, but cannot safely do so yet.
Tested by existing Page Visibility tests.
* dom/Document.cpp:
(WebCore::Document::pageVisibilityState):
(WebCore::Document::visibilityState):
(WebCore::Document::hidden):
(WebCore::Document::dispatchVisibilityStateChangeEvent):
* dom/Document.h:
* dom/Document.idl:
* dom/EventNames.h:
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
* page/Page.cpp:
(WebCore::Page::setVisibilityState):
* page/PageVisibilityState.cpp:
(WebCore::pageVisibilityStateString):
* page/PageVisibilityState.h:
Source/WebKit/efl:
Reviewed by Tim Horton.
Rename "preview" state to "unloaded" state.
* WebCoreSupport/AssertMatchingEnums.cpp:
* ewk/ewk_view.h:
Source/WebKit/mac:
Reviewed by Tim Horton.
Renaming of the "preview" state to "unloaded".
* WebView/WebView.mm:
* WebView/WebViewPrivate.h:
Source/WebKit2:
Reviewed by Tim Horton.
Renaming of the "preview" state to "unloaded".
* Shared/API/c/WKPageVisibilityTypes.h:
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toPageVisibilityState):
Tools:
Reviewed by Tim Horton.
Rename "preview" state to "unloaded" state, and adjust the tests
to test for it.
* DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setPageVisibility):
* TestWebKitAPI/Tests/WebKit2/PageVisibilityState.cpp:
(TestWebKitAPI::setPageVisibilityStateWithEvalContinuation):
(TestWebKitAPI::didRunStep2StateChangeHiddenToPrerender):
(TestWebKitAPI::didRunStep3StateChangePrerenderToUnloaded):
(TestWebKitAPI::didRunStep4InStateUnloaded):
* TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.html:
* TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setPageVisibility):
LayoutTests:
Reviewed by Tim Horton.
Remove prefixes, adjust to state name changes.
* fast/events/page-visibility-iframe-delete-test.html:
* fast/events/page-visibility-iframe-move-test-expected.txt:
* fast/events/page-visibility-iframe-move-test.html:
* fast/events/page-visibility-iframe-propagation-test-expected.txt:
* fast/events/page-visibility-iframe-propagation-test.html:
* fast/events/page-visibility-null-view-expected.txt:
* fast/events/page-visibility-null-view.html:
* fast/events/page-visibility-transition-test-expected.txt:
* fast/events/page-visibility-transition-test.html:
Change-Id: I9751efeae0bab8136a63c7e22ad0d513fc8ceb0c
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150695 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source')
-rw-r--r-- | Source/WebCore/dom/Document.cpp | 12 | ||||
-rw-r--r-- | Source/WebCore/dom/Document.h | 8 | ||||
-rw-r--r-- | Source/WebCore/dom/Document.idl | 4 | ||||
-rw-r--r-- | Source/WebCore/dom/EventNames.h | 2 | ||||
-rw-r--r-- | Source/WebCore/history/CachedFrame.cpp | 3 | ||||
-rw-r--r-- | Source/WebCore/loader/FrameLoader.cpp | 4 | ||||
-rw-r--r-- | Source/WebCore/page/Page.cpp | 2 | ||||
-rw-r--r-- | Source/WebCore/page/PageVisibilityState.cpp | 6 | ||||
-rw-r--r-- | Source/WebCore/page/PageVisibilityState.h | 2 | ||||
-rw-r--r-- | Source/WebKit/efl/WebCoreSupport/AssertMatchingEnums.cpp | 2 | ||||
-rw-r--r-- | Source/WebKit/efl/ewk/ewk_view.h | 2 | ||||
-rw-r--r-- | Source/WebKit/mac/WebView/WebView.mm | 4 | ||||
-rw-r--r-- | Source/WebKit/mac/WebView/WebViewPrivate.h | 2 | ||||
-rw-r--r-- | Source/WebKit2/Shared/API/c/WKPageVisibilityTypes.h | 2 | ||||
-rw-r--r-- | Source/WebKit2/Shared/API/c/WKSharedAPICast.h | 4 |
15 files changed, 34 insertions, 25 deletions
diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp index ec7ca673e..279db2040 100644 --- a/Source/WebCore/dom/Document.cpp +++ b/Source/WebCore/dom/Document.cpp @@ -1615,7 +1615,7 @@ void Document::removeTitle(Element* titleElement) } #if ENABLE(PAGE_VISIBILITY_API) -PageVisibilityState Document::visibilityState() const +PageVisibilityState Document::pageVisibilityState() const { // The visibility of the document is inherited from the visibility of the // page. If there is no page associated with the document, we will assume @@ -1626,19 +1626,19 @@ PageVisibilityState Document::visibilityState() const return m_frame->page()->visibilityState(); } -String Document::webkitVisibilityState() const +String Document::visibilityState() const { - return pageVisibilityStateString(visibilityState()); + return pageVisibilityStateString(pageVisibilityState()); } -bool Document::webkitHidden() const +bool Document::hidden() const { - return visibilityState() != PageVisibilityStateVisible; + return pageVisibilityState() != PageVisibilityStateVisible; } void Document::dispatchVisibilityStateChangeEvent() { - dispatchEvent(Event::create(eventNames().webkitvisibilitychangeEvent, false, false)); + dispatchEvent(Event::create(eventNames().visibilitychangeEvent, false, false)); } #endif diff --git a/Source/WebCore/dom/Document.h b/Source/WebCore/dom/Document.h index 4e2671611..622b1c6da 100644 --- a/Source/WebCore/dom/Document.h +++ b/Source/WebCore/dom/Document.h @@ -319,7 +319,7 @@ public: DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitpointerlockerror); #endif #if ENABLE(PAGE_VISIBILITY_API) - DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitvisibilitychange); + DEFINE_ATTRIBUTE_EVENT_LISTENER(visibilitychange); #endif void setViewportArguments(const ViewportArguments& viewportArguments) { m_viewportArguments = viewportArguments; } @@ -421,8 +421,8 @@ public: virtual KURL baseURI() const; #if ENABLE(PAGE_VISIBILITY_API) - String webkitVisibilityState() const; - bool webkitHidden() const; + String visibilityState() const; + bool hidden() const; void dispatchVisibilityStateChangeEvent(); #endif @@ -1232,7 +1232,7 @@ private: void displayBufferModifiedByEncodingInternal(CharacterType*, unsigned) const; #if ENABLE(PAGE_VISIBILITY_API) - PageVisibilityState visibilityState() const; + PageVisibilityState pageVisibilityState() const; #endif PassRefPtr<HTMLCollection> ensureCachedCollection(CollectionType); diff --git a/Source/WebCore/dom/Document.idl b/Source/WebCore/dom/Document.idl index 10cfefa07..443f4a568 100644 --- a/Source/WebCore/dom/Document.idl +++ b/Source/WebCore/dom/Document.idl @@ -362,8 +362,8 @@ #endif // Page visibility API. - [Conditional=PAGE_VISIBILITY_API] readonly attribute DOMString webkitVisibilityState; - [Conditional=PAGE_VISIBILITY_API] readonly attribute boolean webkitHidden; + [Conditional=PAGE_VISIBILITY_API] readonly attribute DOMString visibilityState; + [Conditional=PAGE_VISIBILITY_API] readonly attribute boolean hidden; // Security Policy API: http://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#script-interfaces [Conditional=CSP_NEXT] readonly attribute DOMSecurityPolicy securityPolicy; diff --git a/Source/WebCore/dom/EventNames.h b/Source/WebCore/dom/EventNames.h index 720fb414b..7fcebccc1 100644 --- a/Source/WebCore/dom/EventNames.h +++ b/Source/WebCore/dom/EventNames.h @@ -117,7 +117,7 @@ namespace WebCore { macro(updateready) \ macro(upgradeneeded) \ macro(versionchange) \ - macro(webkitvisibilitychange) \ + macro(visibilitychange) \ macro(write) \ macro(writeend) \ macro(writestart) \ diff --git a/Source/WebCore/history/CachedFrame.cpp b/Source/WebCore/history/CachedFrame.cpp index 9badc91da..b273e304c 100644 --- a/Source/WebCore/history/CachedFrame.cpp +++ b/Source/WebCore/history/CachedFrame.cpp @@ -128,6 +128,9 @@ void CachedFrameBase::restore() for (unsigned i = 0; i < m_childFrames.size(); ++i) m_childFrames[i]->open(); + // FIXME: update Page Visibility state here. + // https://bugs.webkit.org/show_bug.cgi?id=116770 + m_document->enqueuePageshowEvent(PageshowEventPersisted); HistoryItem* historyItem = frame->loader()->history()->currentItem(); diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp index 7fc354d16..1dc633e64 100644 --- a/Source/WebCore/loader/FrameLoader.cpp +++ b/Source/WebCore/loader/FrameLoader.cpp @@ -398,6 +398,10 @@ void FrameLoader::stopLoading(UnloadEventPolicy unloadEventPolicy) m_pageDismissalEventBeingDispatched = PageHideDismissal; m_frame->document()->domWindow()->dispatchEvent(PageTransitionEvent::create(eventNames().pagehideEvent, m_frame->document()->inPageCache()), m_frame->document()); } + + // FIXME: update Page Visibility state here. + // https://bugs.webkit.org/show_bug.cgi?id=116770 + if (!m_frame->document()->inPageCache()) { RefPtr<Event> unloadEvent(Event::create(eventNames().unloadEvent, false, false)); // The DocumentLoader (and thus its DocumentLoadTiming) might get destroyed diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp index 459386c79..5d62e0e96 100644 --- a/Source/WebCore/page/Page.cpp +++ b/Source/WebCore/page/Page.cpp @@ -1118,6 +1118,8 @@ void Page::checkSubframeCountConsistency() const #if ENABLE(PAGE_VISIBILITY_API) || ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING) void Page::setVisibilityState(PageVisibilityState visibilityState, bool isInitialState) { + // FIXME: the visibility state needs to be stored on the top-level document + // https://bugs.webkit.org/show_bug.cgi?id=116769 #if ENABLE(PAGE_VISIBILITY_API) if (m_visibilityState == visibilityState) return; diff --git a/Source/WebCore/page/PageVisibilityState.cpp b/Source/WebCore/page/PageVisibilityState.cpp index d9f774e79..a1bf7ce21 100644 --- a/Source/WebCore/page/PageVisibilityState.cpp +++ b/Source/WebCore/page/PageVisibilityState.cpp @@ -40,7 +40,7 @@ String pageVisibilityStateString(PageVisibilityState state) DEFINE_STATIC_LOCAL(const String, visible, (ASCIILiteral("visible"))); DEFINE_STATIC_LOCAL(const String, hidden, (ASCIILiteral("hidden"))); DEFINE_STATIC_LOCAL(const String, prerender, (ASCIILiteral("prerender"))); - DEFINE_STATIC_LOCAL(const String, preview, (ASCIILiteral("preview"))); + DEFINE_STATIC_LOCAL(const String, unloaded, (ASCIILiteral("unloaded"))); switch (state) { case PageVisibilityStateVisible: @@ -49,8 +49,8 @@ String pageVisibilityStateString(PageVisibilityState state) return hidden; case PageVisibilityStatePrerender: return prerender; - case PageVisibilityStatePreview: - return preview; + case PageVisibilityStateUnloaded: + return unloaded; } ASSERT_NOT_REACHED(); diff --git a/Source/WebCore/page/PageVisibilityState.h b/Source/WebCore/page/PageVisibilityState.h index 510554040..6680012aa 100644 --- a/Source/WebCore/page/PageVisibilityState.h +++ b/Source/WebCore/page/PageVisibilityState.h @@ -41,7 +41,7 @@ enum PageVisibilityState { PageVisibilityStateVisible, PageVisibilityStateHidden, PageVisibilityStatePrerender, - PageVisibilityStatePreview + PageVisibilityStateUnloaded }; #if ENABLE(PAGE_VISIBILITY_API) diff --git a/Source/WebKit/efl/WebCoreSupport/AssertMatchingEnums.cpp b/Source/WebKit/efl/WebCoreSupport/AssertMatchingEnums.cpp index 3f23604c7..3a84c6b35 100644 --- a/Source/WebKit/efl/WebCoreSupport/AssertMatchingEnums.cpp +++ b/Source/WebKit/efl/WebCoreSupport/AssertMatchingEnums.cpp @@ -52,7 +52,7 @@ using ::RightToLeftWritingDirection; COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGE_VISIBILITY_STATE_VISIBLE, PageVisibilityStateVisible); COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGE_VISIBILITY_STATE_HIDDEN, PageVisibilityStateHidden); COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGE_VISIBILITY_STATE_PRERENDER, PageVisibilityStatePrerender); -COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGE_VISIBILITY_STATE_PREVIEW, PageVisibilityStatePreview); +COMPILE_ASSERT_MATCHING_ENUM(EWK_PAGE_VISIBILITY_STATE_UNLOADED, PageVisibilityStateUnloaded); #endif COMPILE_ASSERT_MATCHING_ENUM(EWK_TEXT_SELECTION_NONE, VisibleSelection::NoSelection); diff --git a/Source/WebKit/efl/ewk/ewk_view.h b/Source/WebKit/efl/ewk/ewk_view.h index 65dc55eb9..2abe1ce1b 100644 --- a/Source/WebKit/efl/ewk/ewk_view.h +++ b/Source/WebKit/efl/ewk/ewk_view.h @@ -2486,7 +2486,7 @@ enum _Ewk_Page_Visibility_State { EWK_PAGE_VISIBILITY_STATE_VISIBLE, EWK_PAGE_VISIBILITY_STATE_HIDDEN, EWK_PAGE_VISIBILITY_STATE_PRERENDER, - EWK_PAGE_VISIBILITY_STATE_PREVIEW + EWK_PAGE_VISIBILITY_STATE_UNLOADED }; /// Creates a type name for @a _Ewk_Page_Visibility_State. typedef enum _Ewk_Page_Visibility_State Ewk_Page_Visibility_State; diff --git a/Source/WebKit/mac/WebView/WebView.mm b/Source/WebKit/mac/WebView/WebView.mm index fe445618f..0ed8115ec 100644 --- a/Source/WebKit/mac/WebView/WebView.mm +++ b/Source/WebKit/mac/WebView/WebView.mm @@ -417,8 +417,8 @@ static PageVisibilityState core(WebPageVisibilityState visibilityState) return PageVisibilityStateHidden; case WebPageVisibilityStatePrerender: return PageVisibilityStatePrerender; - case WebPageVisibilityStatePreview: - return PageVisibilityStatePreview; + case WebPageVisibilityStateUnloaded: + return PageVisibilityStateUnloaded; } ASSERT_NOT_REACHED(); diff --git a/Source/WebKit/mac/WebView/WebViewPrivate.h b/Source/WebKit/mac/WebView/WebViewPrivate.h index a4c85f943..2f4612846 100644 --- a/Source/WebKit/mac/WebView/WebViewPrivate.h +++ b/Source/WebKit/mac/WebView/WebViewPrivate.h @@ -119,7 +119,7 @@ typedef enum { WebPageVisibilityStateVisible, WebPageVisibilityStateHidden, WebPageVisibilityStatePrerender, - WebPageVisibilityStatePreview + WebPageVisibilityStateUnloaded } WebPageVisibilityState; typedef enum { diff --git a/Source/WebKit2/Shared/API/c/WKPageVisibilityTypes.h b/Source/WebKit2/Shared/API/c/WKPageVisibilityTypes.h index 8bc4cedd7..a64a3951c 100644 --- a/Source/WebKit2/Shared/API/c/WKPageVisibilityTypes.h +++ b/Source/WebKit2/Shared/API/c/WKPageVisibilityTypes.h @@ -34,7 +34,7 @@ enum { kWKPageVisibilityStateVisible, kWKPageVisibilityStateHidden, kWKPageVisibilityStatePrerender, - kWKPageVisibilityStatePreview + kWKPageVisibilityStateUnloaded }; typedef uint32_t WKPageVisibilityState; diff --git a/Source/WebKit2/Shared/API/c/WKSharedAPICast.h b/Source/WebKit2/Shared/API/c/WKSharedAPICast.h index f7b40b67b..6eae49bca 100644 --- a/Source/WebKit2/Shared/API/c/WKSharedAPICast.h +++ b/Source/WebKit2/Shared/API/c/WKSharedAPICast.h @@ -799,8 +799,8 @@ inline WebCore::PageVisibilityState toPageVisibilityState(WKPageVisibilityState return WebCore::PageVisibilityStateHidden; case kWKPageVisibilityStatePrerender: return WebCore::PageVisibilityStatePrerender; - case kWKPageVisibilityStatePreview: - return WebCore::PageVisibilityStatePreview; + case kWKPageVisibilityStateUnloaded: + return WebCore::PageVisibilityStateUnloaded; } ASSERT_NOT_REACHED(); |