Changeset 71173 in webkit


Ignore:
Timestamp:
Nov 2, 2010 2:54:41 PM (13 years ago)
Author:
andersca@apple.com
Message:

Implement PluginProxy::pluginScriptableNPObject
https://bugs.webkit.org/show_bug.cgi?id=48874

Reviewed by Sam Weinig.

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::getPluginScriptableNPObject):
Ask the plug-in for its scriptable NPObject, register it with the map and return its object ID.

  • PluginProcess/PluginControllerProxy.messages.in:

Add GetPluginScriptableNPObject message.

  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::pluginScriptableNPObject):
Send the GetPluginScriptableNPObject message.

Location:
trunk/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r71171 r71173  
     12010-11-02  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Sam Weinig.
     4
     5        Implement PluginProxy::pluginScriptableNPObject
     6        https://bugs.webkit.org/show_bug.cgi?id=48874
     7
     8        * PluginProcess/PluginControllerProxy.cpp:
     9        (WebKit::PluginControllerProxy::getPluginScriptableNPObject):
     10        Ask the plug-in for its scriptable NPObject, register it with the map and return its object ID.
     11
     12        * PluginProcess/PluginControllerProxy.messages.in:
     13        Add GetPluginScriptableNPObject message.
     14
     15        * WebProcess/Plugins/PluginProxy.cpp:
     16        (WebKit::PluginProxy::pluginScriptableNPObject):
     17        Send the GetPluginScriptableNPObject message.
     18
    1192010-11-02  Anders Carlsson  <andersca@apple.com>
    220
  • trunk/WebKit2/PluginProcess/PluginControllerProxy.cpp

    r71081 r71173  
    3131#include "DataReference.h"
    3232#include "NPRemoteObjectMap.h"
     33#include "NPRuntimeUtilities.h"
    3334#include "NetscapePlugin.h"
    3435#include "NotImplemented.h"
     
    314315}
    315316
     317void PluginControllerProxy::getPluginScriptableNPObject(uint64_t& pluginScriptableNPObjectID)
     318{
     319    NPObject* pluginScriptableNPObject = m_plugin->pluginScriptableNPObject();
     320    if (!pluginScriptableNPObject) {
     321        pluginScriptableNPObjectID = 0;
     322        return;
     323    }
     324   
     325    pluginScriptableNPObjectID = m_connection->npRemoteObjectMap()->registerNPObject(pluginScriptableNPObject);
     326    releaseNPObject(pluginScriptableNPObject);
     327}
     328
    316329#if PLATFORM(MAC)
    317330void PluginControllerProxy::windowFocusChanged(bool hasFocus)
  • trunk/WebKit2/PluginProcess/PluginControllerProxy.h

    r70162 r71173  
    9898    void setFocus(bool);
    9999    void didUpdate();
     100    void getPluginScriptableNPObject(uint64_t& pluginScriptableNPObjectID);
     101
    100102#if PLATFORM(MAC)
    101103    void windowFocusChanged(bool);
  • trunk/WebKit2/PluginProcess/PluginControllerProxy.messages.in

    r70162 r71173  
    6565    # Paint the entire plug-in.
    6666    PaintEntirePlugin() -> ()
    67    
     67
     68    # Get a reference to the plug-in's scriptable NPObject.
     69    GetPluginScriptableNPObject() -> (uint64_t pluginScriptableNPObjectID)
     70
    6871#if PLATFORM(MAC)
    6972    # Sent when the containing NSWindow's focus changes
  • trunk/WebKit2/WebProcess/Plugins/PluginProxy.cpp

    r71081 r71173  
    296296NPObject* PluginProxy::pluginScriptableNPObject()
    297297{
    298     notImplemented();
    299     return 0;
     298    uint64_t pluginScriptableNPObjectID = 0;
     299   
     300    if (!m_connection->connection()->sendSync(Messages::PluginControllerProxy::GetPluginScriptableNPObject(), Messages::PluginControllerProxy::GetPluginScriptableNPObject::Reply(pluginScriptableNPObjectID), m_pluginInstanceID))
     301        return 0;
     302
     303    if (!pluginScriptableNPObjectID)
     304        return 0;
     305
     306    return m_connection->npRemoteObjectMap()->createNPObjectProxy(pluginScriptableNPObjectID);
    300307}
    301308
Note: See TracChangeset for help on using the changeset viewer.