Changeset 147489 in webkit


Ignore:
Timestamp:
Apr 2, 2013 1:00:25 PM (11 years ago)
Author:
andersca@apple.com
Message:

Add WKContextSetInvalidMessageFunction
https://bugs.webkit.org/show_bug.cgi?id=113820
<rdar://problem/12679817>

Reviewed by Tim Horton.

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetInvalidMessageFunction):
Call WebContext::didReceiveInvalidMessage.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::setInvalidMessageCallback):
Set the global variable.

(WebKit::WebContext::didReceiveInvalidMessage):
Construct a message name string and call the invalid message callback.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didReceiveInvalidMessage):
Call WebContext::didReceiveInvalidMessage.

Location:
trunk/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r147485 r147489  
     12013-04-02  Anders Carlsson  <andersca@apple.com>
     2
     3        Add WKContextSetInvalidMessageFunction
     4        https://bugs.webkit.org/show_bug.cgi?id=113820
     5        <rdar://problem/12679817>
     6
     7        Reviewed by Tim Horton.
     8
     9        * UIProcess/API/C/WKContext.cpp:
     10        (WKContextSetInvalidMessageFunction):
     11        Call WebContext::didReceiveInvalidMessage.
     12
     13        * UIProcess/API/C/WKContextPrivate.h:
     14        * UIProcess/WebContext.cpp:
     15        (WebKit::WebContext::setInvalidMessageCallback):
     16        Set the global variable.
     17
     18        (WebKit::WebContext::didReceiveInvalidMessage):
     19        Construct a message name string and call the invalid message callback.
     20
     21        * UIProcess/WebProcessProxy.cpp:
     22        (WebKit::WebProcessProxy::didReceiveInvalidMessage):
     23        Call WebContext::didReceiveInvalidMessage.
     24
    1252013-04-02  Alexey Proskuryakov  <ap@apple.com>
    226
  • trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp

    r146823 r147489  
    374374}
    375375
     376void WKContextSetInvalidMessageFunction(WKContextInvalidMessageFunction invalidMessageFunction)
     377{
     378    WebContext::setInvalidMessageCallback(invalidMessageFunction);
     379}
     380
    376381// Deprecated functions.
    377382void _WKContextSetAdditionalPluginsDirectory(WKContextRef context, WKStringRef pluginsDirectory)
  • trunk/Source/WebKit2/UIProcess/API/C/WKContextPrivate.h

    r137967 r147489  
    7979WK_EXPORT void WKContextSetUsesNetworkProcess(WKContextRef context, bool usesNetworkProcess);
    8080
     81typedef void (*WKContextInvalidMessageFunction)(WKStringRef messageName);
     82WK_EXPORT void WKContextSetInvalidMessageFunction(WKContextInvalidMessageFunction invalidMessageFunction);
     83
    8184#ifdef __cplusplus
    8285}
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r146823 r147489  
    450450}
    451451
     452void (*s_invalidMessageCallback)(WKStringRef messageName);
     453
     454void WebContext::setInvalidMessageCallback(void (*invalidMessageCallback)(WKStringRef messageName))
     455{
     456    s_invalidMessageCallback = invalidMessageCallback;
     457}
     458
     459void WebContext::didReceiveInvalidMessage(const CoreIPC::StringReference& messageReceiverName, const CoreIPC::StringReference& messageName)
     460{
     461    if (!s_invalidMessageCallback)
     462        return;
     463
     464    StringBuilder messageNameStringBuilder;
     465    messageNameStringBuilder.append(messageReceiverName.data(), messageReceiverName.size());
     466    messageNameStringBuilder.append(".");
     467    messageNameStringBuilder.append(messageName.data(), messageName.size());
     468
     469    s_invalidMessageCallback(toAPI(WebString::create(messageNameStringBuilder.toString()).get()));
     470}
     471
    452472WebProcessProxy* WebContext::ensureSharedWebProcess()
    453473{
  • trunk/Source/WebKit2/UIProcess/WebContext.h

    r147403 r147489  
    299299#endif
    300300
     301    static void setInvalidMessageCallback(void (*)(WKStringRef));
     302    static void didReceiveInvalidMessage(const CoreIPC::StringReference& messageReceiverName, const CoreIPC::StringReference& messageName);
     303
    301304private:
    302305    WebContext(ProcessModel, const String& injectedBundlePath);
  • trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp

    r144386 r147489  
    412412    WTFLogAlways("Received an invalid message \"%s.%s\" from the web process.\n", messageReceiverName.toString().data(), messageName.toString().data());
    413413
    414     // Terminate the WebProcesses.
     414    WebContext::didReceiveInvalidMessage(messageReceiverName, messageName);
     415
     416    // Terminate the WebProcess.
    415417    terminate();
    416418
Note: See TracChangeset for help on using the changeset viewer.