Changeset 87421 in webkit


Ignore:
Timestamp:
May 26, 2011 12:48:46 PM (13 years ago)
Author:
bweinstein@apple.com
Message:

WebKit2: Status bar, toolbar, and menu bar checks should be in the injected bundle
https://bugs.webkit.org/show_bug.cgi?id=61474
<rdar://problem/9468337>

Reviewed by Adam Roben.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:
  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:

(WebKit::InjectedBundlePageUIClient::statusBarIsVisible): Call the function on the client

if it exists.

(WebKit::InjectedBundlePageUIClient::menuBarIsVisible): Ditto.
(WebKit::InjectedBundlePageUIClient::toolbarsAreVisible): Ditto.

  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::statusbarVisible): Add a possible short-circuit in the injected bundle.
(WebKit::WebChromeClient::menubarVisible): Ditto.
(WebKit::WebChromeClient::toolbarsVisible): Ditto.

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::InjectedBundlePage): Add empty entries in the WKBundlePageUIClient.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r87397 r87421  
     12011-05-25  Brian Weinstein  <bweinstein@apple.com>
     2
     3        Reviewed by Adam Roben.
     4
     5        WebKit2: Status bar, toolbar, and menu bar checks should be in the injected bundle
     6        https://bugs.webkit.org/show_bug.cgi?id=61474
     7        <rdar://problem/9468337>
     8
     9        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
     10        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
     11        (WebKit::InjectedBundlePageUIClient::statusBarIsVisible): Call the function on the client
     12            if it exists.
     13        (WebKit::InjectedBundlePageUIClient::menuBarIsVisible): Ditto.
     14        (WebKit::InjectedBundlePageUIClient::toolbarsAreVisible): Ditto.
     15        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
     16        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     17        (WebKit::WebChromeClient::statusbarVisible): Add a possible short-circuit in the injected bundle.
     18        (WebKit::WebChromeClient::menubarVisible): Ditto.
     19        (WebKit::WebChromeClient::toolbarsVisible): Ditto.
     20
    1212011-05-26  Steve Falkenburg  <sfalken@apple.com>
    222
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.h

    r86584 r87421  
    172172typedef struct WKBundlePageResourceLoadClient WKBundlePageResourceLoadClient;
    173173
     174enum {
     175    WKBundlePageUIElementVisibilityUnknown,
     176    WKBundlePageUIElementVisible,
     177    WKBundlePageUIElementHidden
     178};
     179typedef uint32_t WKBundlePageUIElementVisibility;
     180   
    174181// UI Client
    175182typedef void (*WKBundlePageWillAddMessageToConsoleCallback)(WKBundlePageRef page, WKStringRef message, uint32_t lineNumber, const void *clientInfo);
     
    183190typedef WKStringRef (*WKBundlePageGenerateFileForUploadCallback)(WKBundlePageRef page, WKStringRef originalFilePath, const void* clientInfo);
    184191typedef bool (*WKBundlePageShouldRubberBandInDirectionCallback)(WKBundlePageRef page, WKScrollDirection scrollDirection, const void* clientInfo);
     192typedef WKBundlePageUIElementVisibility (*WKBundlePageStatusBarIsVisible)(WKBundlePageRef page, const void *clientInfo);
     193typedef WKBundlePageUIElementVisibility (*WKBundlePageMenuBarIsVisible)(WKBundlePageRef page, const void *clientInfo);
     194typedef WKBundlePageUIElementVisibility (*WKBundlePageToolbarsAreVisible)(WKBundlePageRef page, const void *clientInfo);
    185195   
    186196struct WKBundlePageUIClient {
     
    198208    WKBundlePageGenerateFileForUploadCallback                           generateFileForUpload;
    199209    WKBundlePageShouldRubberBandInDirectionCallback                     shouldRubberBandInDirection;
     210    WKBundlePageStatusBarIsVisible                                      statusBarIsVisible;
     211    WKBundlePageMenuBarIsVisible                                        menuBarIsVisible;
     212    WKBundlePageToolbarsAreVisible                                      toolbarsAreVisible;
    200213};
    201214typedef struct WKBundlePageUIClient WKBundlePageUIClient;
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp

    r86783 r87421  
    122122    return m_client.shouldRubberBandInDirection(toAPI(page), direction, m_client.clientInfo);
    123123}
     124   
     125WKBundlePageUIElementVisibility InjectedBundlePageUIClient::statusBarIsVisible(WebPage* page)
     126{
     127    if (!m_client.statusBarIsVisible)
     128        return WKBundlePageUIElementVisibilityUnknown;
     129   
     130    return m_client.statusBarIsVisible(toAPI(page), m_client.clientInfo);
     131}
     132
     133WKBundlePageUIElementVisibility InjectedBundlePageUIClient::menuBarIsVisible(WebPage* page)
     134{
     135    if (!m_client.menuBarIsVisible)
     136        return WKBundlePageUIElementVisibilityUnknown;
     137   
     138    return m_client.menuBarIsVisible(toAPI(page), m_client.clientInfo);
     139}
     140
     141WKBundlePageUIElementVisibility InjectedBundlePageUIClient::toolbarsAreVisible(WebPage* page)
     142{
     143    if (!m_client.toolbarsAreVisible)
     144        return WKBundlePageUIElementVisibilityUnknown;
     145   
     146    return m_client.toolbarsAreVisible(toAPI(page), m_client.clientInfo);
     147}
    124148
    125149} // namespace WebKit
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageUIClient.h

    r86584 r87421  
    6161   
    6262    bool shouldRubberBandInDirection(WebPage*, WKScrollDirection) const;
     63
     64    WKBundlePageUIElementVisibility statusBarIsVisible(WebPage*);
     65    WKBundlePageUIElementVisibility menuBarIsVisible(WebPage*);
     66    WKBundlePageUIElementVisibility toolbarsAreVisible(WebPage*);
    6367};
    6468
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp

    r86806 r87421  
    199199bool WebChromeClient::toolbarsVisible()
    200200{
     201    WKBundlePageUIElementVisibility toolbarsVisibility = m_page->injectedBundleUIClient().toolbarsAreVisible(m_page);
     202    if (toolbarsVisibility != WKBundlePageUIElementVisibilityUnknown)
     203        return toolbarsVisibility == WKBundlePageUIElementVisible;
     204   
    201205    bool toolbarsAreVisible = true;
    202206    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::GetToolbarsAreVisible(), Messages::WebPageProxy::GetToolbarsAreVisible::Reply(toolbarsAreVisible), m_page->pageID()))
     
    213217bool WebChromeClient::statusbarVisible()
    214218{
     219    WKBundlePageUIElementVisibility statusbarVisibility = m_page->injectedBundleUIClient().statusBarIsVisible(m_page);
     220    if (statusbarVisibility != WKBundlePageUIElementVisibilityUnknown)
     221        return statusbarVisibility == WKBundlePageUIElementVisible;
     222
    215223    bool statusBarIsVisible = true;
    216224    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::GetStatusBarIsVisible(), Messages::WebPageProxy::GetStatusBarIsVisible::Reply(statusBarIsVisible), m_page->pageID()))
     
    238246bool WebChromeClient::menubarVisible()
    239247{
     248    WKBundlePageUIElementVisibility menubarVisibility = m_page->injectedBundleUIClient().menuBarIsVisible(m_page);
     249    if (menubarVisibility != WKBundlePageUIElementVisibilityUnknown)
     250        return menubarVisibility == WKBundlePageUIElementVisible;
     251   
    240252    bool menuBarIsVisible = true;
    241253    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::GetMenuBarIsVisible(), Messages::WebPageProxy::GetMenuBarIsVisible::Reply(menuBarIsVisible), m_page->pageID()))
  • trunk/Tools/ChangeLog

    r87413 r87421  
     12011-05-25  Brian Weinstein  <bweinstein@apple.com>
     2
     3        Reviewed by Adam Roben.
     4
     5        WebKit2: Status bar, toolbar, and menu bar checks should be in the injected bundle
     6        https://bugs.webkit.org/show_bug.cgi?id=61474
     7        <rdar://problem/9468337>
     8
     9        * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
     10        (WTR::InjectedBundlePage::InjectedBundlePage): Add empty entries in the WKBundlePageUIClient.
     11
    1122011-05-26  Andreas Kling  <kling@webkit.org>
    213
  • trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp

    r86584 r87421  
    227227        0, /*generateFileForUpload*/
    228228        0, /*shouldRubberBandInDirection*/
     229        0, /*statusBarIsVisible*/
     230        0, /*menuBarIsVisible*/
     231        0, /*toolbarsAreVisible*/
    229232    };
    230233    WKBundlePageSetUIClient(m_page, &uiClient);
Note: See TracChangeset for help on using the changeset viewer.