Changeset 93543 in webkit


Ignore:
Timestamp:
Aug 22, 2011 2:35:23 PM (13 years ago)
Author:
andersca@apple.com
Message:

The UI process should keep track of whether a plug-in has focus or not
https://bugs.webkit.org/show_bug.cgi?id=66712

Reviewed by Darin Adler.

This is in preparation for implementing the updated Cocoa text input model.

Pipe through whether a plug-in and its containing window has focus or not, from the
plug-in process and all the way to the UI process.

  • PluginProcess/PluginControllerProxy.h:
  • PluginProcess/mac/PluginControllerProxyMac.mm:

(WebKit::PluginControllerProxy::pluginFocusOrWindowFocusChanged):

  • UIProcess/API/mac/PageClientImpl.h:
  • UIProcess/API/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::pluginFocusOrWindowFocusChanged):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _pluginFocusOrWindowFocusChanged:pluginComplexTextInputIdentifier:]):

  • UIProcess/API/mac/WKViewInternal.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::pluginFocusOrWindowFocusChanged):

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:

(WebKit::NetscapePlugin::platformSetFocus):
(WebKit::NetscapePlugin::windowFocusChanged):
(WebKit::NetscapePlugin::pluginFocusOrWindowFocusChanged):

  • WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:

(WebKit::PluginProxy::pluginFocusOrWindowFocusChanged):

  • WebProcess/Plugins/PluginController.h:
  • WebProcess/Plugins/PluginProxy.h:
  • WebProcess/Plugins/PluginProxy.messages.in:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::pluginFocusOrWindowFocusChanged):

  • WebProcess/Plugins/PluginView.h:
Location:
trunk/Source/WebKit2
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r93539 r93543  
     12011-08-22  Anders Carlsson  <andersca@apple.com>
     2
     3        The UI process should keep track of whether a plug-in has focus or not
     4        https://bugs.webkit.org/show_bug.cgi?id=66712
     5
     6        Reviewed by Darin Adler.
     7
     8        This is in preparation for implementing the updated Cocoa text input model.
     9
     10        Pipe through whether a plug-in and its containing window has focus or not, from the
     11        plug-in process and all the way to the UI process.
     12
     13        * PluginProcess/PluginControllerProxy.h:
     14        * PluginProcess/mac/PluginControllerProxyMac.mm:
     15        (WebKit::PluginControllerProxy::pluginFocusOrWindowFocusChanged):
     16        * UIProcess/API/mac/PageClientImpl.h:
     17        * UIProcess/API/mac/PageClientImpl.mm:
     18        (WebKit::PageClientImpl::pluginFocusOrWindowFocusChanged):
     19        * UIProcess/API/mac/WKView.mm:
     20        (-[WKView _pluginFocusOrWindowFocusChanged:pluginComplexTextInputIdentifier:]):
     21        * UIProcess/API/mac/WKViewInternal.h:
     22        * UIProcess/PageClient.h:
     23        * UIProcess/WebPageProxy.h:
     24        * UIProcess/WebPageProxy.messages.in:
     25        * UIProcess/mac/WebPageProxyMac.mm:
     26        (WebKit::WebPageProxy::pluginFocusOrWindowFocusChanged):
     27        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
     28        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
     29        (WebKit::NetscapePlugin::platformSetFocus):
     30        (WebKit::NetscapePlugin::windowFocusChanged):
     31        (WebKit::NetscapePlugin::pluginFocusOrWindowFocusChanged):
     32        * WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:
     33        (WebKit::PluginProxy::pluginFocusOrWindowFocusChanged):
     34        * WebProcess/Plugins/PluginController.h:
     35        * WebProcess/Plugins/PluginProxy.h:
     36        * WebProcess/Plugins/PluginProxy.messages.in:
     37        * WebProcess/Plugins/PluginView.cpp:
     38        (WebKit::PluginView::pluginFocusOrWindowFocusChanged):
     39        * WebProcess/Plugins/PluginView.h:
     40
    1412011-08-22  Anders Carlsson  <andersca@apple.com>
    242
  • trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.h

    r93447 r93543  
    9797
    9898#if PLATFORM(MAC)
     99    virtual void pluginFocusOrWindowFocusChanged(bool);
    99100    virtual void setComplexTextInputState(PluginComplexTextInputState);
    100101    virtual mach_port_t compositingRenderServerPort();
  • trunk/Source/WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm

    r93447 r93543  
    3838
    3939namespace WebKit {
     40
     41void PluginControllerProxy::pluginFocusOrWindowFocusChanged(bool pluginHasFocusAndWindowHasFocus)
     42{
     43    m_connection->connection()->send(Messages::PluginProxy::PluginFocusOrWindowFocusChanged(pluginHasFocusAndWindowHasFocus), m_pluginInstanceID);
     44}
    4045
    4146void PluginControllerProxy::setComplexTextInputState(PluginComplexTextInputState pluginComplexTextInputState)
  • trunk/Source/WebKit2/UIProcess/API/mac/PageClientImpl.h

    r93447 r93543  
    9494    virtual void exitAcceleratedCompositingMode();
    9595
    96     virtual void accessibilityWebProcessTokenReceived(const CoreIPC::DataReference&);   
     96    virtual void accessibilityWebProcessTokenReceived(const CoreIPC::DataReference&);
     97
     98    virtual void pluginFocusOrWindowFocusChanged(uint64_t pluginComplexTextInputIdentifier, bool pluginHasFocusAndWindowHasFocus);
    9799    virtual void setPluginComplexTextInputState(uint64_t pluginComplexTextInputIdentifier, PluginComplexTextInputState);
    98100
  • trunk/Source/WebKit2/UIProcess/API/mac/PageClientImpl.mm

    r93447 r93543  
    343343#endif // USE(ACCELERATED_COMPOSITING)
    344344
     345void PageClientImpl::pluginFocusOrWindowFocusChanged(uint64_t pluginComplexTextInputIdentifier, bool pluginHasFocusAndWindowHasFocus)
     346{
     347    [m_wkView _pluginFocusOrWindowFocusChanged:pluginHasFocusAndWindowHasFocus pluginComplexTextInputIdentifier:pluginComplexTextInputIdentifier];
     348}
     349
    345350void PageClientImpl::setPluginComplexTextInputState(uint64_t pluginComplexTextInputIdentifier, PluginComplexTextInputState pluginComplexTextInputState)
    346351{
  • trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm

    r93539 r93543  
    22862286}
    22872287
     2288- (void)_pluginFocusOrWindowFocusChanged:(BOOL)pluginHasFocusAndWindowHasFocus pluginComplexTextInputIdentifier:(uint64_t)pluginComplexTextInputIdentifier
     2289{
     2290    // FIXME: Implement.
     2291}
     2292
    22882293- (void)_setPluginComplexTextInputState:(WebKit::PluginComplexTextInputState)pluginComplexTextInputState pluginComplexTextInputIdentifier:(uint64_t)pluginComplexTextInputIdentifier
    22892294{
  • trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h

    r93447 r93543  
    6767
    6868- (void)_setAccessibilityWebProcessToken:(NSData *)data;
     69
     70- (void)_pluginFocusOrWindowFocusChanged:(BOOL)pluginHasFocusAndWindowHasFocus pluginComplexTextInputIdentifier:(uint64_t)pluginComplexTextInputIdentifier;
    6971- (void)_setPluginComplexTextInputState:(WebKit::PluginComplexTextInputState)pluginComplexTextInputState pluginComplexTextInputIdentifier:(uint64_t)pluginComplexTextInputIdentifier;
    7072
  • trunk/Source/WebKit2/UIProcess/PageClient.h

    r93458 r93543  
    161161
    162162#if PLATFORM(MAC)
     163    virtual void pluginFocusOrWindowFocusChanged(uint64_t pluginComplexTextInputIdentifier, bool pluginHasFocusAndWindowHasFocus) = 0;
    163164    virtual void setPluginComplexTextInputState(uint64_t pluginComplexTextInputIdentifier, PluginComplexTextInputState) = 0;
    164165    virtual CGContextRef containingWindowGraphicsContext() = 0;
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r93447 r93543  
    767767
    768768#if PLATFORM(MAC)
     769    void pluginFocusOrWindowFocusChanged(uint64_t pluginComplexTextInputIdentifier, bool pluginHasFocusAndWindowHasFocus);
    769770    void setPluginComplexTextInputState(uint64_t pluginComplexTextInputIdentifier, uint64_t complexTextInputState);
    770771#endif
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in

    r93447 r93543  
    230230
    231231    # Plug-in complex text input support messages
     232    PluginFocusOrWindowFocusChanged(uint64_t pluginComplexTextInputIdentifier, bool pluginHasFocusAndWindowHasFocus)
    232233    SetPluginComplexTextInputState(uint64_t pluginComplexTextInputIdentifier, uint64_t complexTextInputState)
    233234
  • trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm

    r93447 r93543  
    343343}
    344344
     345void WebPageProxy::pluginFocusOrWindowFocusChanged(uint64_t pluginComplexTextInputIdentifier, bool pluginHasFocusAndWindowHasFocus)
     346{
     347    m_pageClient->pluginFocusOrWindowFocusChanged(pluginComplexTextInputIdentifier, pluginHasFocusAndWindowHasFocus);
     348}
     349
    345350void WebPageProxy::setPluginComplexTextInputState(uint64_t pluginComplexTextInputIdentifier, uint64_t pluginComplexTextInputState)
    346351{
  • trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h

    r93447 r93543  
    192192    virtual void sendComplexTextInput(const String& textInput);
    193193
     194    void pluginFocusOrWindowFocusChanged();
    194195    void setComplexTextInputEnabled(bool);
    195196#endif
  • trunk/Source/WebKit2/WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm

    r93447 r93543  
    788788{
    789789    m_pluginHasFocus = hasFocus;
    790     setComplexTextInputEnabled(m_pluginHasFocus && m_windowHasFocus);
     790    pluginFocusOrWindowFocusChanged();
    791791
    792792    switch (m_eventModel) {
     
    816816{
    817817    m_windowHasFocus = hasFocus;
    818     setComplexTextInputEnabled(m_pluginHasFocus && m_windowHasFocus);
     818    pluginFocusOrWindowFocusChanged();
    819819
    820820    switch (m_eventModel) {
     
    976976}
    977977
     978void NetscapePlugin::pluginFocusOrWindowFocusChanged()
     979{
     980    bool pluginHasFocusAndWindowHasFocus = m_pluginHasFocus && m_windowHasFocus;
     981
     982    controller()->pluginFocusOrWindowFocusChanged(pluginHasFocusAndWindowHasFocus);
     983    setComplexTextInputEnabled(pluginHasFocusAndWindowHasFocus);
     984}
     985
    978986void NetscapePlugin::setComplexTextInputEnabled(bool complexTextInputEnabled)
    979987{
  • trunk/Source/WebKit2/WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm

    r93447 r93543  
    5656}
    5757
     58void PluginProxy::pluginFocusOrWindowFocusChanged(bool pluginHasFocusAndWindowHasFocus)
     59{
     60    controller()->pluginFocusOrWindowFocusChanged(pluginHasFocusAndWindowHasFocus);
     61}
     62
    5863void PluginProxy::setComplexTextInputState(uint64_t complexTextInputState)
    5964{
  • trunk/Source/WebKit2/WebProcess/Plugins/PluginController.h

    r93456 r93543  
    113113
    114114#if PLATFORM(MAC)
     115    // Tells the controller that the plug-in focus or window focus did change.
     116    virtual void pluginFocusOrWindowFocusChanged(bool) = 0;
     117
    115118    // Tells the controller that complex text input be enabled or disabled for the plug-in.
    116119    virtual void setComplexTextInputState(PluginComplexTextInputState) = 0;
  • trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.h

    r93447 r93543  
    120120    void setStatusbarText(const String& statusbarText);
    121121#if PLATFORM(MAC)
     122    void pluginFocusOrWindowFocusChanged(bool);
    122123    void setComplexTextInputState(uint64_t);
    123124#endif
  • trunk/Source/WebKit2/WebProcess/Plugins/PluginProxy.messages.in

    r93447 r93543  
    5858
    5959#if PLATFORM(MAC)
     60    # Called when the plug-in's focus or its containing window focus changes.
     61    PluginFocusOrWindowFocusChanged(bool pluginHasFocusAndWindowHasFocus)
     62
    6063    # Change whether complext text input is enabled for this plug-in.
    6164    SetComplexTextInputState(uint64_t complexTextInputState)
  • trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp

    r93447 r93543  
    10681068
    10691069#if PLATFORM(MAC)
     1070void PluginView::pluginFocusOrWindowFocusChanged(bool pluginHasFocusAndWindowHasFocus)
     1071{
     1072    m_webPage->send(Messages::WebPageProxy::PluginFocusOrWindowFocusChanged(m_plugin->pluginComplexTextInputIdentifier(), pluginHasFocusAndWindowHasFocus));
     1073}
     1074
    10701075void PluginView::setComplexTextInputState(PluginComplexTextInputState pluginComplexTextInputState)
    10711076{
  • trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h

    r93447 r93543  
    142142#endif
    143143#if PLATFORM(MAC)
     144    virtual void pluginFocusOrWindowFocusChanged(bool pluginHasFocusAndWindowHasFocus);
    144145    virtual void setComplexTextInputState(PluginComplexTextInputState);
    145146    virtual mach_port_t compositingRenderServerPort();
Note: See TracChangeset for help on using the changeset viewer.