Changeset 163821 in webkit


Ignore:
Timestamp:
Feb 10, 2014 2:30:33 PM (10 years ago)
Author:
barraclough@apple.com
Message:

Remove WKPageSetVisibilityState
https://bugs.webkit.org/show_bug.cgi?id=128551

Reviewed by Anders Carlsson.

Source/WebKit2:

Made prerender state automatic. We should move this further
up into WebCore, but this requires refactoring for the Page
construction order.

  • Shared/API/c/WKDeprecatedFunctions.cpp:

(WKPageSetVisibilityState):

  • deprecated.
  • UIProcess/API/C/WKPage.cpp:
    • removed WKPageSetVisibilityState.
  • UIProcess/API/C/WKPage.h:
    • removed WKPageSetVisibilityState.
  • UIProcess/WebPageProxy.cpp:
    • removed setVisibilityStatePrerender.
  • UIProcess/WebPageProxy.h:
    • removed setVisibilityStatePrerender.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • removed setVisibilityStatePrerender.
  • When creating a Page, automatically set the prerender state.
  • WebProcess/WebPage/WebPage.h:
    • removed setVisibilityStatePrerender.
  • WebProcess/WebPage/WebPage.messages.in:
    • removed SetVisibilityStatePrerender.

Tools:

  • TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:

(TestWebKitAPI::PageVisibilityStateWithWindowChanges::initializeView):
(TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest):

  • visibilityState of offs-creen WKView is automatically prerender.
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::setHidden):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPageVisibility):
(WTR::TestRunner::resetPageVisibility):

  • WebKitTestRunner/TestController.cpp:
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

  • removed calls to WKPageSetVisibilityState.
Location:
trunk
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r163818 r163821  
     12014-02-10  Gavin Barraclough  <barraclough@apple.com>
     2
     3        Remove WKPageSetVisibilityState
     4        https://bugs.webkit.org/show_bug.cgi?id=128551
     5
     6        Reviewed by Anders Carlsson.
     7
     8        Made prerender state automatic. We should move this further
     9        up into WebCore, but this requires refactoring for the Page
     10        construction order.
     11
     12        * Shared/API/c/WKDeprecatedFunctions.cpp:
     13        (WKPageSetVisibilityState):
     14            - deprecated.
     15        * UIProcess/API/C/WKPage.cpp:
     16            - removed WKPageSetVisibilityState.
     17        * UIProcess/API/C/WKPage.h:
     18            - removed WKPageSetVisibilityState.
     19        * UIProcess/WebPageProxy.cpp:
     20            - removed setVisibilityStatePrerender.
     21        * UIProcess/WebPageProxy.h:
     22            - removed setVisibilityStatePrerender.
     23        * WebProcess/WebPage/WebPage.cpp:
     24        (WebKit::WebPage::WebPage):
     25            - removed setVisibilityStatePrerender.
     26            - When creating a Page, automatically set the prerender state.
     27        * WebProcess/WebPage/WebPage.h:
     28            - removed setVisibilityStatePrerender.
     29        * WebProcess/WebPage/WebPage.messages.in:
     30            - removed SetVisibilityStatePrerender.
     31
    1322014-02-10  Brady Eidson  <beidson@apple.com>
    233
  • trunk/Source/WebKit2/Shared/API/c/WKDeprecatedFunctions.cpp

    r161302 r163821  
    4242WK_EXPORT bool WKArrayIsMutable(WKArrayRef array);
    4343
     44WK_EXPORT void WKPageSetVisibilityState(WKPageRef, WKPageVisibilityState, bool);
     45
    4446WK_EXPORT bool WKDictionaryAddItem(WKMutableDictionaryRef dictionary, WKStringRef key, WKTypeRef item);
    4547WK_EXPORT bool WKDictionaryIsMutable(WKDictionaryRef dictionary);
     
    5456{
    5557    return false;
     58}
     59
     60void WKPageSetVisibilityState(WKPageRef, WKPageVisibilityState, bool)
     61{
    5662}
    5763
     
    7177}
    7278
    73 
    7479#if PLATFORM(MAC)
    7580CGContextRef WKGraphicsContextGetCGContext(WKGraphicsContextRef graphicsContext)
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp

    r163480 r163821  
    437437}
    438438
    439 void WKPageSetVisibilityState(WKPageRef pageRef, WKPageVisibilityState state, bool)
    440 {
    441     if (state == kWKPageVisibilityStatePrerender)
    442         toImpl(pageRef)->setVisibilityStatePrerender();
    443 }
    444 
    445439bool WKPageHasHorizontalScrollbar(WKPageRef pageRef)
    446440{
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.h

    r162568 r163821  
    156156WK_EXPORT void WKPageListenForLayoutMilestones(WKPageRef page, WKLayoutMilestones milestones);
    157157
    158 WK_EXPORT void WKPageSetVisibilityState(WKPageRef page, WKPageVisibilityState state, bool isInitialState);
    159 
    160158WK_EXPORT bool WKPageHasHorizontalScrollbar(WKPageRef page);
    161159WK_EXPORT bool WKPageHasVerticalScrollbar(WKPageRef page);
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r163671 r163821  
    17441744}
    17451745
    1746 void WebPageProxy::setVisibilityStatePrerender()
    1747 {
    1748     if (!isValid())
    1749         return;
    1750     m_process->send(Messages::WebPage::SetVisibilityStatePrerender(), m_pageID);
    1751 }
    1752 
    17531746void WebPageProxy::setSuppressScrollbarAnimations(bool suppressAnimations)
    17541747{
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r163671 r163821  
    592592    void listenForLayoutMilestones(WebCore::LayoutMilestones);
    593593
    594     void setVisibilityStatePrerender();
    595594    void didUpdateViewState() { m_waitingForDidUpdateViewState = false; }
    596595
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r163800 r163821  
    385385    setMemoryCacheMessagesEnabled(parameters.areMemoryCacheClientCallsEnabled);
    386386
     387    // If the page is created off-screen, its visibilityState should be prerender.
    387388    m_page->setViewState(m_viewState);
     389    if (!isVisible())
     390        m_page->setIsPrerender();
     391
    388392    updateIsInWindow(true);
    389393
     
    37213725}
    37223726
    3723 void WebPage::setVisibilityStatePrerender()
    3724 {
    3725     if (m_page)
    3726         m_page->setIsPrerender();
    3727 }
    3728 
    37293727void WebPage::setScrollingPerformanceLoggingEnabled(bool enabled)
    37303728{
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h

    r163800 r163821  
    639639    void recomputeShortCircuitHorizontalWheelEventsState();
    640640
    641     void setVisibilityStatePrerender();
    642641    void updateVisibilityState(bool isInitialState = false);
    643642
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in

    r163515 r163821  
    313313#endif
    314314
    315     SetVisibilityStatePrerender()
    316 
    317315#if PLATFORM(IOS)
    318316    WillStartUserTriggeredZooming();
  • trunk/Tools/ChangeLog

    r163797 r163821  
     12014-02-10  Gavin Barraclough  <barraclough@apple.com>
     2
     3        Remove WKPageSetVisibilityState
     4        https://bugs.webkit.org/show_bug.cgi?id=128551
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm:
     9        (TestWebKitAPI::PageVisibilityStateWithWindowChanges::initializeView):
     10        (TestWebKitAPI::PageVisibilityStateWithWindowChanges::runTest):
     11            - visibilityState of offs-creen WKView is automatically prerender.
     12        * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
     13        (WTR::InjectedBundle::setHidden):
     14        * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
     15        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
     16        (WTR::TestRunner::setPageVisibility):
     17        (WTR::TestRunner::resetPageVisibility):
     18        * WebKitTestRunner/TestController.cpp:
     19        * WebKitTestRunner/TestController.h:
     20        * WebKitTestRunner/TestInvocation.cpp:
     21        (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
     22            - removed calls to WKPageSetVisibilityState.
     23
    1242014-02-10  Carlos Garcia Campos  <cgarcia@igalia.com>
    225
  • trunk/Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm

    r162139 r163821  
    7878    virtual void teardownView(WebView *) override;
    7979    virtual void teardownView(WKView *) override;
    80     virtual void setPrerender(WebView *);
    81     virtual void setPrerender(WKView *);
    8280};
    8381
     
    8684    // Released in teardownView.
    8785    webView.UIDelegate = [[PageVisibilityStateDelegate alloc] init];
     86    [webView _setVisibilityState:WebPageVisibilityStatePrerender isInitialState:YES];
    8887}
    8988
     
    9392    webView.UIDelegate = nil;
    9493    [uiDelegate release];
    95 }
    96 
    97 void PageVisibilityStateWithWindowChanges::setPrerender(WebView *webView)
    98 {
    99     [webView _setVisibilityState:WebPageVisibilityStatePrerender isInitialState:YES];
    10094}
    10195
     
    116110}
    117111
    118 void PageVisibilityStateWithWindowChanges::setPrerender(WKView *wkView)
    119 {
    120     WKPageSetVisibilityState(wkView.pageRef, kWKPageVisibilityStatePrerender, true);
    121 }
    122 
    123112
    124113template <typename View>
     
    128117    EXPECT_NULL([view window]);
    129118    EXPECT_NULL([view superview]);
    130     EXPECT_JS_EQ(view, "document.visibilityState", "hidden");
    131     EXPECT_JS_EQ(view, "document.hidden", "true");
    132 
    133     // Mark the page as being a "prerender".
    134     setPrerender(view);
    135119    EXPECT_JS_EQ(view, "document.visibilityState", "prerender");
    136120    EXPECT_JS_EQ(view, "document.hidden", "true");
  • trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp

    r163427 r163821  
    466466}
    467467
    468 void InjectedBundle::setVisibilityState(WKPageVisibilityState visibilityState, bool isInitialState)
    469 {
    470     WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("SetVisibilityState"));
     468void InjectedBundle::setHidden(bool hidden)
     469{
     470    WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("SetHidden"));
    471471    WKRetainPtr<WKMutableDictionaryRef> messageBody(AdoptWK, WKMutableDictionaryCreate());
    472472
    473     WKRetainPtr<WKStringRef> visibilityStateKeyWK(AdoptWK, WKStringCreateWithUTF8CString("visibilityState"));
    474     WKRetainPtr<WKUInt64Ref> visibilityStateWK(AdoptWK, WKUInt64Create(visibilityState));
    475     WKDictionarySetItem(messageBody.get(), visibilityStateKeyWK.get(), visibilityStateWK.get());
    476 
    477     WKRetainPtr<WKStringRef> isInitialKeyWK(AdoptWK, WKStringCreateWithUTF8CString("isInitialState"));
    478     WKRetainPtr<WKBooleanRef> isInitialWK(AdoptWK, WKBooleanCreate(isInitialState));
     473    WKRetainPtr<WKStringRef> isInitialKeyWK(AdoptWK, WKStringCreateWithUTF8CString("hidden"));
     474    WKRetainPtr<WKBooleanRef> isInitialWK(AdoptWK, WKBooleanCreate(hidden));
    479475    WKDictionarySetItem(messageBody.get(), isInitialKeyWK.get(), isInitialWK.get());
    480476
  • trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h

    r141010 r163821  
    9797
    9898    // Page Visibility.
    99     void setVisibilityState(WKPageVisibilityState, bool isInitialState);
     99    void setHidden(bool);
    100100
    101101    // Work queue.
  • trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp

    r160731 r163821  
    486486void TestRunner::setPageVisibility(JSStringRef state)
    487487{
    488     WKPageVisibilityState visibilityState = kWKPageVisibilityStateVisible;
    489 
    490     if (JSStringIsEqualToUTF8CString(state, "hidden"))
    491         visibilityState = kWKPageVisibilityStateHidden;
    492     else if (JSStringIsEqualToUTF8CString(state, "prerender"))
    493         visibilityState = kWKPageVisibilityStatePrerender;
    494 
    495     InjectedBundle::shared().setVisibilityState(visibilityState, false);
     488    InjectedBundle::shared().setHidden(JSStringIsEqualToUTF8CString(state, "hidden") || JSStringIsEqualToUTF8CString(state, "prerender"));
    496489}
    497490
    498491void TestRunner::resetPageVisibility()
    499492{
    500     InjectedBundle::shared().setVisibilityState(kWKPageVisibilityStateVisible, true);
     493    InjectedBundle::shared().setHidden(false);
    501494}
    502495
  • trunk/Tools/WebKitTestRunner/TestController.cpp

    r162917 r163821  
    11671167}
    11681168
    1169 void TestController::setVisibilityState(WKPageVisibilityState visibilityState, bool isInitialState)
    1170 {
    1171     setHidden(visibilityState != kWKPageVisibilityStateVisible);
    1172     WKPageSetVisibilityState(m_mainWebView->page(), visibilityState, isInitialState);
    1173 }
    1174 
    11751169void TestController::decidePolicyForGeolocationPermissionRequestIfPossible()
    11761170{
  • trunk/Tools/WebKitTestRunner/TestController.h

    r162917 r163821  
    9292
    9393    // Page Visibility.
    94     void setVisibilityState(WKPageVisibilityState, bool isInitialState);
     94    void setHidden(bool);
    9595
    9696    bool resetStateToConsistentValues();
     
    164164    static void runModal(WKPageRef, const void* clientInfo);
    165165    static void runModal(PlatformWebView*);
    166 
    167     void setHidden(bool);
    168166
    169167    static const char* libraryPathForTesting();
  • trunk/Tools/WebKitTestRunner/TestInvocation.cpp

    r162729 r163821  
    544544    }
    545545
    546     if (WKStringIsEqualToUTF8CString(messageName, "SetVisibilityState")) {
     546    if (WKStringIsEqualToUTF8CString(messageName, "SetHidden")) {
    547547        ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID());
    548548        WKDictionaryRef messageBodyDictionary = static_cast<WKDictionaryRef>(messageBody);
    549549
    550         WKRetainPtr<WKStringRef> visibilityStateKeyWK(AdoptWK, WKStringCreateWithUTF8CString("visibilityState"));
    551         WKUInt64Ref visibilityStateWK = static_cast<WKUInt64Ref>(WKDictionaryGetItemForKey(messageBodyDictionary, visibilityStateKeyWK.get()));
    552         WKPageVisibilityState visibilityState = static_cast<WKPageVisibilityState>(WKUInt64GetValue(visibilityStateWK));
    553 
    554         WKRetainPtr<WKStringRef> isInitialKeyWK(AdoptWK, WKStringCreateWithUTF8CString("isInitialState"));
    555         WKBooleanRef isInitialWK = static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, isInitialKeyWK.get()));
    556         bool isInitialState = WKBooleanGetValue(isInitialWK);
    557 
    558         TestController::shared().setVisibilityState(visibilityState, isInitialState);
     550        WKRetainPtr<WKStringRef> isInitialKeyWK(AdoptWK, WKStringCreateWithUTF8CString("hidden"));
     551        WKBooleanRef hiddenWK = static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, isInitialKeyWK.get()));
     552        bool hidden = WKBooleanGetValue(hiddenWK);
     553
     554        TestController::shared().setHidden(hidden);
    559555        return;
    560556    }
Note: See TracChangeset for help on using the changeset viewer.