summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>2013-05-25 23:56:01 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-08-09 09:55:36 +0200
commitf3484678deb631b7d994dd400b609dcb7bbbc04b (patch)
treeac9039ad86485ee18607e15adca2fc6b643ddc8f /Source
parent412ec5284b300668101a1db137e08a729008d164 (diff)
downloadqtwebkit-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.cpp12
-rw-r--r--Source/WebCore/dom/Document.h8
-rw-r--r--Source/WebCore/dom/Document.idl4
-rw-r--r--Source/WebCore/dom/EventNames.h2
-rw-r--r--Source/WebCore/history/CachedFrame.cpp3
-rw-r--r--Source/WebCore/loader/FrameLoader.cpp4
-rw-r--r--Source/WebCore/page/Page.cpp2
-rw-r--r--Source/WebCore/page/PageVisibilityState.cpp6
-rw-r--r--Source/WebCore/page/PageVisibilityState.h2
-rw-r--r--Source/WebKit/efl/WebCoreSupport/AssertMatchingEnums.cpp2
-rw-r--r--Source/WebKit/efl/ewk/ewk_view.h2
-rw-r--r--Source/WebKit/mac/WebView/WebView.mm4
-rw-r--r--Source/WebKit/mac/WebView/WebViewPrivate.h2
-rw-r--r--Source/WebKit2/Shared/API/c/WKPageVisibilityTypes.h2
-rw-r--r--Source/WebKit2/Shared/API/c/WKSharedAPICast.h4
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();