Changeset 70790 in webkit


Ignore:
Timestamp:
Oct 28, 2010 11:21:48 AM (13 years ago)
Author:
weinig@apple.com
Message:

Add WebKit2 API for window feature getter/setters
<rdar://problem/8590373>
https://bugs.webkit.org/show_bug.cgi?id=48496

Reviewed by Anders Carlsson.

WebKit2:

  • UIProcess/API/C/WKPage.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setToolbarsAreVisible):
(WebKit::WebPageProxy::getToolbarsAreVisible):
(WebKit::WebPageProxy::setMenuBarIsVisible):
(WebKit::WebPageProxy::getMenuBarIsVisible):
(WebKit::WebPageProxy::setStatusBarIsVisible):
(WebKit::WebPageProxy::getStatusBarIsVisible):
(WebKit::WebPageProxy::setIsResizable):
(WebKit::WebPageProxy::getIsResizable):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebUIClient.cpp:

(WebKit::WebUIClient::toolbarsAreVisible):
(WebKit::WebUIClient::setToolbarsAreVisible):
(WebKit::WebUIClient::menuBarIsVisible):
(WebKit::WebUIClient::setMenuBarIsVisible):
(WebKit::WebUIClient::statusBarIsVisible):
(WebKit::WebUIClient::setStatusBarIsVisible):
(WebKit::WebUIClient::isResizable):
(WebKit::WebUIClient::setIsResizable):

  • UIProcess/WebUIClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::setToolbarsVisible):
(WebKit::WebChromeClient::toolbarsVisible):
(WebKit::WebChromeClient::setStatusbarVisible):
(WebKit::WebChromeClient::statusbarVisible):
(WebKit::WebChromeClient::setMenubarVisible):
(WebKit::WebChromeClient::menubarVisible):
(WebKit::WebChromeClient::setResizable):
Plumb through the calls.

WebKitTools:

  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController awakeFromNib]):

  • MiniBrowser/win/BrowserView.cpp:

(BrowserView::create):

  • WebKitTestRunner/TestController.cpp:

(WTR::createOtherPage):
(WTR::TestController::initialize):

Location:
trunk
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r70787 r70790  
     12010-10-28  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Add WebKit2 API for window feature getter/setters
     6        <rdar://problem/8590373>
     7        https://bugs.webkit.org/show_bug.cgi?id=48496
     8
     9        * UIProcess/API/C/WKPage.h:
     10        * UIProcess/WebPageProxy.cpp:
     11        (WebKit::WebPageProxy::setToolbarsAreVisible):
     12        (WebKit::WebPageProxy::getToolbarsAreVisible):
     13        (WebKit::WebPageProxy::setMenuBarIsVisible):
     14        (WebKit::WebPageProxy::getMenuBarIsVisible):
     15        (WebKit::WebPageProxy::setStatusBarIsVisible):
     16        (WebKit::WebPageProxy::getStatusBarIsVisible):
     17        (WebKit::WebPageProxy::setIsResizable):
     18        (WebKit::WebPageProxy::getIsResizable):
     19        * UIProcess/WebPageProxy.h:
     20        * UIProcess/WebPageProxy.messages.in:
     21        * UIProcess/WebUIClient.cpp:
     22        (WebKit::WebUIClient::toolbarsAreVisible):
     23        (WebKit::WebUIClient::setToolbarsAreVisible):
     24        (WebKit::WebUIClient::menuBarIsVisible):
     25        (WebKit::WebUIClient::setMenuBarIsVisible):
     26        (WebKit::WebUIClient::statusBarIsVisible):
     27        (WebKit::WebUIClient::setStatusBarIsVisible):
     28        (WebKit::WebUIClient::isResizable):
     29        (WebKit::WebUIClient::setIsResizable):
     30        * UIProcess/WebUIClient.h:
     31        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     32        (WebKit::WebChromeClient::setToolbarsVisible):
     33        (WebKit::WebChromeClient::toolbarsVisible):
     34        (WebKit::WebChromeClient::setStatusbarVisible):
     35        (WebKit::WebChromeClient::statusbarVisible):
     36        (WebKit::WebChromeClient::setMenubarVisible):
     37        (WebKit::WebChromeClient::menubarVisible):
     38        (WebKit::WebChromeClient::setResizable):
     39        Plumb through the calls.
     40
    1412010-10-28  Dan Bernstein  <mitz@apple.com>
    242
  • trunk/WebKit2/UIProcess/API/C/WKPage.h

    r70716 r70790  
    143143typedef void (*WKPageMouseDidMoveOverElementCallback)(WKPageRef page, WKEventModifiers modifiers, WKTypeRef userData, const void *clientInfo);
    144144typedef void (*WKPageDidNotHandleKeyEventCallback)(WKPageRef page, WKNativeEventPtr event, const void *clientInfo);
     145typedef bool (*WKPageGetToolbarsAreVisibleCallback)(WKPageRef page, const void *clientInfo);
     146typedef void (*WKPageSetToolbarsAreVisibleCallback)(WKPageRef page, bool toolbarsVisible, const void *clientInfo);
     147typedef bool (*WKPageGetMenuBarIsVisibleCallback)(WKPageRef page, const void *clientInfo);
     148typedef void (*WKPageSetMenuBarIsVisibleCallback)(WKPageRef page, bool menuBarVisible, const void *clientInfo);
     149typedef bool (*WKPageGetStatusBarIsVisibleCallback)(WKPageRef page, const void *clientInfo);
     150typedef void (*WKPageSetStatusBarIsVisibleCallback)(WKPageRef page, bool statusBarVisible, const void *clientInfo);
     151typedef bool (*WKPageGetIsResizableCallback)(WKPageRef page, const void *clientInfo);
     152typedef void (*WKPageSetIsResizableCallback)(WKPageRef page, bool resizable, const void *clientInfo);
    145153typedef WKRect (*WKPageGetWindowFrameCallback)(WKPageRef page, const void *clientInfo);
    146154typedef void (*WKPageSetWindowFrameCallback)(WKPageRef page, WKRect frame, const void *clientInfo);
     
    162170    WKPageMouseDidMoveOverElementCallback                               mouseDidMoveOverElement;
    163171    WKPageDidNotHandleKeyEventCallback                                  didNotHandleKeyEvent;
     172    WKPageGetToolbarsAreVisibleCallback                                 toolbarsAreVisible;
     173    WKPageSetToolbarsAreVisibleCallback                                 setToolbarsAreVisible;
     174    WKPageGetMenuBarIsVisibleCallback                                   menuBarIsVisible;
     175    WKPageSetMenuBarIsVisibleCallback                                   setMenuBarIsVisible;
     176    WKPageGetStatusBarIsVisibleCallback                                 statusBarIsVisible;
     177    WKPageSetStatusBarIsVisibleCallback                                 setStatusBarIsVisible;
     178    WKPageGetIsResizableCallback                                        isResizable;
     179    WKPageSetIsResizableCallback                                        setIsResizable;
    164180    WKPageGetWindowFrameCallback                                        getWindowFrame;
    165181    WKPageSetWindowFrameCallback                                        setWindowFrame;
  • trunk/WebKit2/UIProcess/API/qt/qwkpage.cpp

    r70777 r70790  
    320320        0,  /* mouseDidMoveOverElement */
    321321        0,  /* didNotHandleKeyEvent */
     322        0,  /* toolbarsAreVisible */
     323        0,  /* setToolbarsAreVisible */
     324        0,  /* menuBarIsVisible */
     325        0,  /* setMenuBarIsVisible */
     326        0,  /* statusBarIsVisible */
     327        0,  /* setStatusBarIsVisible */
     328        0,  /* isResizable */
     329        0,  /* setIsResizable */
    322330        0,  /* getWindowFrame */
    323331        0,  /* setWindowFrame */
  • trunk/WebKit2/UIProcess/WebPageProxy.cpp

    r70730 r70790  
    942942}
    943943
     944void WebPageProxy::setToolbarsAreVisible(bool toolbarsAreVisible)
     945{
     946    m_uiClient.setToolbarsAreVisible(this, toolbarsAreVisible);
     947}
     948
     949void WebPageProxy::getToolbarsAreVisible(bool& toolbarsAreVisible)
     950{
     951    toolbarsAreVisible = m_uiClient.toolbarsAreVisible(this);
     952}
     953
     954void WebPageProxy::setMenuBarIsVisible(bool menuBarIsVisible)
     955{
     956    m_uiClient.setMenuBarIsVisible(this, menuBarIsVisible);
     957}
     958
     959void WebPageProxy::getMenuBarIsVisible(bool& menuBarIsVisible)
     960{
     961    menuBarIsVisible = m_uiClient.menuBarIsVisible(this);
     962}
     963
     964void WebPageProxy::setStatusBarIsVisible(bool statusBarIsVisible)
     965{
     966    m_uiClient.setStatusBarIsVisible(this, statusBarIsVisible);
     967}
     968
     969void WebPageProxy::getStatusBarIsVisible(bool& statusBarIsVisible)
     970{
     971    statusBarIsVisible = m_uiClient.statusBarIsVisible(this);
     972}
     973
     974void WebPageProxy::setIsResizable(bool isResizable)
     975{
     976    m_uiClient.setIsResizable(this, isResizable);
     977}
     978
     979void WebPageProxy::getIsResizable(bool& isResizable)
     980{
     981    isResizable = m_uiClient.isResizable(this);
     982}
     983
    944984void WebPageProxy::setWindowFrame(const FloatRect& newWindowFrame)
    945985{
  • trunk/WebKit2/UIProcess/WebPageProxy.h

    r70730 r70790  
    276276    void setStatusText(const String&);
    277277    void mouseDidMoveOverElement(uint32_t modifiers, CoreIPC::ArgumentDecoder*);
     278    void setToolbarsAreVisible(bool toolbarsAreVisible);
     279    void getToolbarsAreVisible(bool& toolbarsAreVisible);
     280    void setMenuBarIsVisible(bool menuBarIsVisible);
     281    void getMenuBarIsVisible(bool& menuBarIsVisible);
     282    void setStatusBarIsVisible(bool statusBarIsVisible);
     283    void getStatusBarIsVisible(bool& statusBarIsVisible);
     284    void setIsResizable(bool isResizable);
     285    void getIsResizable(bool& isResizable);
    278286    void setWindowFrame(const WebCore::FloatRect&);
    279287    void getWindowFrame(WebCore::FloatRect&);
  • trunk/WebKit2/UIProcess/WebPageProxy.messages.in

    r70730 r70790  
    3737    SetToolTip(WTF::String toolTip)
    3838    TakeFocus(bool direction)
     39    SetToolbarsAreVisible(bool toolbarsAreVisible)
     40    GetToolbarsAreVisible() -> (bool toolbarsAreVisible)
     41    SetMenuBarIsVisible(bool menuBarIsVisible);
     42    GetMenuBarIsVisible() -> (bool menuBarIsVisible);
     43    SetStatusBarIsVisible(bool statusBarIsVisible)
     44    GetStatusBarIsVisible() -> (bool statusBarIsVisible)
     45    SetIsResizable(bool isResizable)
     46    GetIsResizable() -> (bool isResizable)
    3947    SetWindowFrame(WebCore::FloatRect windowFrame)
    4048    GetWindowFrame() -> (WebCore::FloatRect windowFrame)
  • trunk/WebKit2/UIProcess/WebUIClient.cpp

    r70676 r70790  
    149149}
    150150
     151bool WebUIClient::toolbarsAreVisible(WebPageProxy* page)
     152{
     153    if (!m_pageUIClient.toolbarsAreVisible)
     154        return true;
     155    return m_pageUIClient.toolbarsAreVisible(toAPI(page), m_pageUIClient.clientInfo);
     156
     157}
     158void WebUIClient::setToolbarsAreVisible(WebPageProxy* page, bool visible)
     159{
     160    if (!m_pageUIClient.setToolbarsAreVisible)
     161        return;
     162    m_pageUIClient.setToolbarsAreVisible(toAPI(page), visible, m_pageUIClient.clientInfo);
     163}
     164
     165bool WebUIClient::menuBarIsVisible(WebPageProxy* page)
     166{
     167    if (!m_pageUIClient.menuBarIsVisible)
     168        return true;
     169    return m_pageUIClient.menuBarIsVisible(toAPI(page), m_pageUIClient.clientInfo);
     170}
     171
     172void WebUIClient::setMenuBarIsVisible(WebPageProxy* page, bool visible)
     173{
     174    if (!m_pageUIClient.setMenuBarIsVisible)
     175        return;
     176    m_pageUIClient.setMenuBarIsVisible(toAPI(page), visible, m_pageUIClient.clientInfo);
     177}
     178
     179bool WebUIClient::statusBarIsVisible(WebPageProxy* page)
     180{
     181    if (!m_pageUIClient.statusBarIsVisible)
     182        return true;
     183    return m_pageUIClient.statusBarIsVisible(toAPI(page), m_pageUIClient.clientInfo);
     184}
     185
     186void WebUIClient::setStatusBarIsVisible(WebPageProxy* page, bool visible)
     187{
     188    if (!m_pageUIClient.setStatusBarIsVisible)
     189        return;
     190    m_pageUIClient.setStatusBarIsVisible(toAPI(page), visible, m_pageUIClient.clientInfo);
     191}
     192
     193bool WebUIClient::isResizable(WebPageProxy* page)
     194{
     195    if (!m_pageUIClient.isResizable)
     196        return true;
     197    return m_pageUIClient.isResizable(toAPI(page), m_pageUIClient.clientInfo);
     198}
     199
     200void WebUIClient::setIsResizable(WebPageProxy* page, bool resizable)
     201{
     202    if (!m_pageUIClient.setIsResizable)
     203        return;
     204    m_pageUIClient.setIsResizable(toAPI(page), resizable, m_pageUIClient.clientInfo);
     205}
     206
    151207void WebUIClient::setWindowFrame(WebPageProxy* page, const FloatRect& frame)
    152208{
  • trunk/WebKit2/UIProcess/WebUIClient.h

    r70564 r70790  
    6060    void mouseDidMoveOverElement(WebPageProxy*, WebEvent::Modifiers, APIObject*);
    6161
    62     void contentsSizeChanged(WebPageProxy*, const WebCore::IntSize&, WebFrameProxy*);
    6362    void didNotHandleKeyEvent(WebPageProxy*, const NativeWebKeyboardEvent&);
     63
     64    bool toolbarsAreVisible(WebPageProxy*);
     65    void setToolbarsAreVisible(WebPageProxy*, bool);
     66    bool menuBarIsVisible(WebPageProxy*);
     67    void setMenuBarIsVisible(WebPageProxy*, bool);
     68    bool statusBarIsVisible(WebPageProxy*);
     69    void setStatusBarIsVisible(WebPageProxy*, bool);
     70    bool isResizable(WebPageProxy*);
     71    void setIsResizable(WebPageProxy*, bool);
    6472
    6573    void setWindowFrame(WebPageProxy*, const WebCore::FloatRect&);
  • trunk/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp

    r70676 r70790  
    149149}
    150150
    151 void WebChromeClient::setToolbarsVisible(bool)
    152 {
    153     notImplemented();
     151void WebChromeClient::setToolbarsVisible(bool toolbarsAreVisible)
     152{
     153    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetToolbarsAreVisible(toolbarsAreVisible), m_page->pageID());
    154154}
    155155
    156156bool WebChromeClient::toolbarsVisible()
    157157{
     158    bool toolbarsAreVisible = true;
     159    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::GetToolbarsAreVisible(),
     160            Messages::WebPageProxy::GetToolbarsAreVisible::Reply(toolbarsAreVisible),
     161            m_page->pageID(), CoreIPC::Connection::NoTimeout))
     162        return true;
     163
     164    return toolbarsAreVisible;
     165}
     166
     167void WebChromeClient::setStatusbarVisible(bool statusBarIsVisible)
     168{
     169    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetStatusBarIsVisible(statusBarIsVisible), m_page->pageID());
     170}
     171
     172bool WebChromeClient::statusbarVisible()
     173{
     174    bool statusBarIsVisible = true;
     175    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::GetStatusBarIsVisible(),
     176            Messages::WebPageProxy::GetStatusBarIsVisible::Reply(statusBarIsVisible),
     177            m_page->pageID(), CoreIPC::Connection::NoTimeout))
     178        return true;
     179
     180    return statusBarIsVisible;
     181}
     182
     183void WebChromeClient::setScrollbarsVisible(bool)
     184{
     185    notImplemented();
     186}
     187
     188bool WebChromeClient::scrollbarsVisible()
     189{
    158190    notImplemented();
    159191    return true;
    160192}
    161193
    162 void WebChromeClient::setStatusbarVisible(bool)
    163 {
    164     notImplemented();
    165 }
    166 
    167 bool WebChromeClient::statusbarVisible()
    168 {
    169     notImplemented();
    170     return true;
    171 }
    172 
    173 void WebChromeClient::setScrollbarsVisible(bool)
    174 {
    175     notImplemented();
    176 }
    177 
    178 bool WebChromeClient::scrollbarsVisible()
    179 {
    180     notImplemented();
    181     return true;
    182 }
    183 
    184 void WebChromeClient::setMenubarVisible(bool)
    185 {
    186     notImplemented();
     194void WebChromeClient::setMenubarVisible(bool menuBarVisible)
     195{
     196    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetMenuBarIsVisible(menuBarVisible), m_page->pageID());
    187197}
    188198
    189199bool WebChromeClient::menubarVisible()
    190200{
    191     notImplemented();
    192     return true;
    193 }
    194 
    195 void WebChromeClient::setResizable(bool)
    196 {
    197     notImplemented();
     201    bool menuBarIsVisible = true;
     202    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::GetMenuBarIsVisible(),
     203            Messages::WebPageProxy::GetMenuBarIsVisible::Reply(menuBarIsVisible),
     204            m_page->pageID(), CoreIPC::Connection::NoTimeout))
     205        return true;
     206
     207    return menuBarIsVisible;
     208}
     209
     210void WebChromeClient::setResizable(bool resizable)
     211{
     212    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetIsResizable(resizable), m_page->pageID());
    198213}
    199214
  • trunk/WebKitTools/ChangeLog

    r70789 r70790  
     12010-10-27  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Add WebKit2 API for window feature getter/setters
     6        <rdar://problem/8590373>
     7        https://bugs.webkit.org/show_bug.cgi?id=48496
     8
     9        * MiniBrowser/mac/BrowserWindowController.m:
     10        (-[BrowserWindowController awakeFromNib]):
     11        * MiniBrowser/win/BrowserView.cpp:
     12        (BrowserView::create):
     13        * WebKitTestRunner/TestController.cpp:
     14        (WTR::createOtherPage):
     15        (WTR::TestController::initialize):
     16
    1172010-10-28  Søren Gjesse  <sgjesse@chromium.org>
    218
  • trunk/WebKitTools/MiniBrowser/mac/BrowserWindowController.m

    r70676 r70790  
    586586        mouseDidMoveOverElement,
    587587        0,          /* didNotHandleKeyEvent */
     588        0,          /* toolbarsAreVisible */
     589        0,          /* setToolbarsAreVisible */
     590        0,          /* menuBarIsVisible */
     591        0,          /* setMenuBarIsVisible */
     592        0,          /* statusBarIsVisible */
     593        0,          /* setStatusBarIsVisible */
     594        0,          /* isResizable */
     595        0,          /* setIsResizable */
    588596        getWindowFrame,
    589597        setWindowFrame,
  • trunk/WebKitTools/MiniBrowser/win/BrowserView.cpp

    r70676 r70790  
    106106        setStatusText,
    107107        mouseDidMoveOverElement,
    108         0               /* didNotHandleKeyEvent */
     108        0,          /* didNotHandleKeyEvent */
     109        0,          /* toolbarsAreVisible */
     110        0,          /* setToolbarsAreVisible */
     111        0,          /* menuBarIsVisible */
     112        0,          /* setMenuBarIsVisible */
     113        0,          /* statusBarIsVisible */
     114        0,          /* setStatusBarIsVisible */
     115        0,          /* isResizable */
     116        0,          /* setIsResizable */
     117        0,          /* getWindowFrame */
     118        0,          /* setWindowFrame */
     119        0,          /* runBeforeUnloadConfirmPanel */
     120        0,          /* didDraw */
     121        0           /* pageDidScroll */
    109122    };
    110123
  • trunk/WebKitTools/WebKitTestRunner/TestController.cpp

    r70723 r70790  
    118118        0, // mouseDidMoveOverElement
    119119        0, // didNotHandleKeyEvent
     120        0, // toolbarsAreVisible
     121        0, // setToolbarsAreVisible
     122        0, // menuBarIsVisible
     123        0, // setMenuBarIsVisible
     124        0, // statusBarIsVisible
     125        0, // setStatusBarIsVisible
     126        0, // isResizable
     127        0, // setIsResizable
    120128        getWindowFrameOtherPage,
    121129        setWindowFrameOtherPage,
     
    203211        0, // mouseDidMoveOverElement
    204212        0, // didNotHandleKeyEvent
     213        0, // toolbarsAreVisible
     214        0, // setToolbarsAreVisible
     215        0, // menuBarIsVisible
     216        0, // setMenuBarIsVisible
     217        0, // statusBarIsVisible
     218        0, // setStatusBarIsVisible
     219        0, // isResizable
     220        0, // setIsResizable
    205221        getWindowFrameMainPage,
    206222        setWindowFrameMainPage,
Note: See TracChangeset for help on using the changeset viewer.