Changeset 159908 in webkit


Ignore:
Timestamp:
Dec 1, 2013 7:36:12 PM (10 years ago)
Author:
weinig@apple.com
Message:

Give UserMessageEncoders WebProcessProxy reference (like the decoders already have)
https://bugs.webkit.org/show_bug.cgi?id=125053

Reviewed by Dan Bernstein.

  • Give the UserMessageEncoders a process reference.
  • Switch UserMessageDecoders to storing a process reference, rather than pointer.
  • Shared/UserMessageCoders.h:
  • Shared/mac/ObjCObjectGraphCoders.h:
  • Shared/mac/ObjCObjectGraphCoders.mm:
  • UIProcess/WebConnectionToWebProcess.cpp:
  • UIProcess/WebContext.cpp:
  • UIProcess/WebContextUserMessageCoders.h:
  • UIProcess/WebPageProxy.cpp:
  • WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
Location:
trunk/Source/WebKit2
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r159906 r159908  
     12013-12-01  Sam Weinig  <sam@webkit.org>
     2
     3        Give UserMessageEncoders WebProcessProxy reference (like the decoders already have)
     4        https://bugs.webkit.org/show_bug.cgi?id=125053
     5
     6        Reviewed by Dan Bernstein.
     7
     8        - Give the UserMessageEncoders a process reference.
     9        - Switch UserMessageDecoders to storing a process reference, rather than pointer.
     10
     11        * Shared/UserMessageCoders.h:
     12        * Shared/mac/ObjCObjectGraphCoders.h:
     13        * Shared/mac/ObjCObjectGraphCoders.mm:
     14        * UIProcess/WebConnectionToWebProcess.cpp:
     15        * UIProcess/WebContext.cpp:
     16        * UIProcess/WebContextUserMessageCoders.h:
     17        * UIProcess/WebPageProxy.cpp:
     18        * WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h:
     19
    1202013-12-01  Sam Weinig  <sam@webkit.org>
    221
  • trunk/Source/WebKit2/Shared/UserMessageCoders.h

    r159765 r159908  
    7272class UserMessageEncoder {
    7373public:
    74     bool baseEncode(CoreIPC::ArgumentEncoder& encoder, API::Object::Type& type) const
     74    bool baseEncode(CoreIPC::ArgumentEncoder& encoder, const Owner& coder, API::Object::Type& type) const
    7575    {
    7676        if (!m_root) {
     
    8787            encoder << static_cast<uint64_t>(array->size());
    8888            for (size_t i = 0; i < array->size(); ++i)
    89                 encoder << Owner(array->at(i));
     89                encoder << Owner(coder, array->at(i));
    9090            return true;
    9191        }
     
    9999            for (; it != end; ++it) {
    100100                encoder << it->key;
    101                 encoder << Owner(it->value.get());
     101                encoder << Owner(coder, it->value.get());
    102102            }
    103103            return true;
     
    150150        case API::Object::Type::RenderLayer: {
    151151            WebRenderLayer* renderLayer = static_cast<WebRenderLayer*>(m_root);
    152             encoder << Owner(renderLayer->renderer());
     152            encoder << Owner(coder, renderLayer->renderer());
    153153            encoder << renderLayer->isReflection();
    154154            encoder << renderLayer->isClipping();
     
    156156            encoder << static_cast<uint32_t>(renderLayer->compositingLayerType());
    157157            encoder << renderLayer->absoluteBoundingBox();
    158             encoder << Owner(renderLayer->negativeZOrderList());
    159             encoder << Owner(renderLayer->normalFlowList());
    160             encoder << Owner(renderLayer->positiveZOrderList());
     158            encoder << Owner(coder, renderLayer->negativeZOrderList());
     159            encoder << Owner(coder, renderLayer->normalFlowList());
     160            encoder << Owner(coder, renderLayer->positiveZOrderList());
    161161            return true;
    162162        }
     
    166166            encoder << renderObject->elementTagName();
    167167            encoder << renderObject->elementID();
    168             encoder << Owner(renderObject->elementClassNames());
     168            encoder << Owner(coder, renderObject->elementClassNames());
    169169            encoder << renderObject->absolutePosition();
    170170            encoder << renderObject->frameRect();
    171             encoder << Owner(renderObject->children());
     171            encoder << Owner(coder, renderObject->children());
    172172            return true;
    173173        }
  • trunk/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.h

    r159765 r159908  
    3939class WebContextObjCObjectGraphEncoder {
    4040public:
    41     explicit WebContextObjCObjectGraphEncoder(ObjCObjectGraph*);
     41    explicit WebContextObjCObjectGraphEncoder(ObjCObjectGraph*, WebProcessProxy&);
    4242    void encode(CoreIPC::ArgumentEncoder&) const;
    4343
    4444private:
    4545    ObjCObjectGraph* m_objectGraph;
     46    WebProcessProxy& m_process;
    4647};
    4748
    4849class WebContextObjCObjectGraphDecoder {
    4950public:
    50     explicit WebContextObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>&, WebProcessProxy*);
     51    explicit WebContextObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>&, WebProcessProxy&);
    5152    static bool decode(CoreIPC::ArgumentDecoder&, WebContextObjCObjectGraphDecoder&);
    5253
    5354private:
    5455    RefPtr<ObjCObjectGraph>& m_objectGraph;
    55     WebProcessProxy* m_process;
     56    WebProcessProxy& m_process;
    5657};
    5758
     
    5960class InjectedBundleObjCObjectGraphEncoder {
    6061public:
    61     explicit InjectedBundleObjCObjectGraphEncoder(ObjCObjectGraph*);
     62    explicit InjectedBundleObjCObjectGraphEncoder(ObjCObjectGraph*, WebProcess&);
    6263    void encode(CoreIPC::ArgumentEncoder&) const;
    6364
    6465private:
    6566    ObjCObjectGraph* m_objectGraph;
     67    WebProcess& m_process;
    6668};
    6769
    6870class InjectedBundleObjCObjectGraphDecoder {
    6971public:
    70     explicit InjectedBundleObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>&, WebProcess*);
     72    explicit InjectedBundleObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>&, WebProcess&);
    7173    static bool decode(CoreIPC::ArgumentDecoder&, InjectedBundleObjCObjectGraphDecoder&);
    7274
    7375private:
    7476    RefPtr<ObjCObjectGraph>& m_objectGraph;
    75     WebProcess* m_process;
     77    WebProcess& m_process;
    7678};
    7779
  • trunk/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm

    r159877 r159908  
    9292class ObjCObjectGraphEncoder {
    9393public:
    94     bool baseEncode(CoreIPC::ArgumentEncoder& encoder, WebKitNSType& type) const
     94    bool baseEncode(CoreIPC::ArgumentEncoder& encoder, const Owner& coder, WebKitNSType& type) const
    9595    {
    9696        if (!m_root) {
     
    118118
    119119            for (NSUInteger i = 0; i < size; ++i)
    120                 encoder << Owner([array objectAtIndex:i]);
     120                encoder << Owner(coder, [array objectAtIndex:i]);
    121121            return true;
    122122        }
     
    130130            NSArray *values = [dictionary allValues];
    131131            for (NSUInteger i = 0; i < size; ++i) {
    132                 encoder << Owner([keys objectAtIndex:i]);
    133                 encoder << Owner([values objectAtIndex:i]);
     132                encoder << Owner(coder, [keys objectAtIndex:i]);
     133                encoder << Owner(coder, [values objectAtIndex:i]);
    134134            }
    135135
     
    269269    typedef ObjCObjectGraphEncoder<WebContextObjCObjectGraphEncoderImpl> Base;
    270270
    271     explicit WebContextObjCObjectGraphEncoderImpl(id root)
    272         : Base(root)
     271    explicit WebContextObjCObjectGraphEncoderImpl(id root, WebProcessProxy& process)
     272        : Base(root)
     273        , m_process(process)
     274    {
     275    }
     276
     277    WebContextObjCObjectGraphEncoderImpl(const WebContextObjCObjectGraphEncoderImpl& userMessageEncoder, id root)
     278        : Base(root)
     279        , m_process(userMessageEncoder.m_process)
    273280    {
    274281    }
     
    277284    {
    278285        WebKitNSType type = NullType;
    279         if (baseEncode(encoder, type))
     286        if (baseEncode(encoder, *this, type))
    280287            return;
    281288
     
    290297        case WKTypeRefWrapperType: {
    291298            WKTypeRefWrapper *wrapper = static_cast<WKTypeRefWrapper *>(m_root);
    292             encoder << WebContextUserMessageEncoder(toImpl(wrapper.object));
     299            encoder << WebContextUserMessageEncoder(toImpl(wrapper.object), m_process);
    293300            break;
    294301        }
     
    299306        }
    300307    }
     308
     309private:
     310    WebProcessProxy& m_process;
    301311};
    302312
     
    306316    typedef ObjCObjectGraphDecoder<WebContextObjCObjectGraphDecoderImpl> Base;
    307317
    308     WebContextObjCObjectGraphDecoderImpl(RetainPtr<id>& root, WebProcessProxy* process)
     318    WebContextObjCObjectGraphDecoderImpl(RetainPtr<id>& root, WebProcessProxy& process)
    309319        : Base(root)
    310320        , m_process(process)
     
    339349                return false;
    340350
    341             WebPageProxy* webPage = coder.m_process->webPage(pageID);
     351            WebPageProxy* webPage = coder.m_process.webPage(pageID);
    342352            if (!webPage)
    343353                coder.m_root = [NSNull null];
     
    363373
    364374private:
    365     WebProcessProxy* m_process;
     375    WebProcessProxy& m_process;
    366376};
    367377
     
    373383    typedef ObjCObjectGraphEncoder<InjectedBundleObjCObjectGraphEncoderImpl> Base;
    374384
    375     explicit InjectedBundleObjCObjectGraphEncoderImpl(id root)
    376         : Base(root)
     385    explicit InjectedBundleObjCObjectGraphEncoderImpl(id root, WebProcess& process)
     386        : Base(root)
     387        , m_process(process)
     388    {
     389    }
     390
     391    explicit InjectedBundleObjCObjectGraphEncoderImpl(const InjectedBundleObjCObjectGraphEncoderImpl& encoder, id root)
     392        : Base(root)
     393        , m_process(encoder.m_process)
    377394    {
    378395    }
     
    381398    {
    382399        WebKitNSType type = NullType;
    383         if (baseEncode(encoder, type))
     400        if (baseEncode(encoder, *this, type))
    384401            return;
    385402
     
    402419        }
    403420    }
     421
     422private:
     423    WebProcess& m_process;
    404424};
    405425
     
    408428    typedef ObjCObjectGraphDecoder<InjectedBundleObjCObjectGraphDecoderImpl> Base;
    409429
    410     InjectedBundleObjCObjectGraphDecoderImpl(RetainPtr<id>& root, WebProcess* process)
     430    InjectedBundleObjCObjectGraphDecoderImpl(RetainPtr<id>& root, WebProcess& process)
    411431        : Base(root)
    412432        , m_process(process)
     
    441461                return false;
    442462
    443             WebPage* webPage = coder.m_process->webPage(pageID);
     463            WebPage* webPage = coder.m_process.webPage(pageID);
    444464            if (!webPage)
    445465                coder.m_root = [NSNull null];
     
    465485
    466486private:
    467     WebProcess* m_process;
     487    WebProcess& m_process;
    468488};
    469489
     
    471491// Adaptors
    472492
    473 WebContextObjCObjectGraphEncoder::WebContextObjCObjectGraphEncoder(ObjCObjectGraph* objectGraph)
     493WebContextObjCObjectGraphEncoder::WebContextObjCObjectGraphEncoder(ObjCObjectGraph* objectGraph, WebProcessProxy& process)
    474494    : m_objectGraph(objectGraph)
     495    , m_process(process)
    475496{
    476497}
     
    478499void WebContextObjCObjectGraphEncoder::encode(CoreIPC::ArgumentEncoder& encoder) const
    479500{
    480     encoder << WebContextObjCObjectGraphEncoderImpl(m_objectGraph->rootObject());
    481 }
    482 
    483 WebContextObjCObjectGraphDecoder::WebContextObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>& objectGraph, WebProcessProxy* process)
     501    encoder << WebContextObjCObjectGraphEncoderImpl(m_objectGraph->rootObject(), m_process);
     502}
     503
     504WebContextObjCObjectGraphDecoder::WebContextObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>& objectGraph, WebProcessProxy& process)
    484505    : m_objectGraph(objectGraph)
    485506    , m_process(process)
     
    498519}
    499520
    500 InjectedBundleObjCObjectGraphEncoder::InjectedBundleObjCObjectGraphEncoder(ObjCObjectGraph* objectGraph)
     521InjectedBundleObjCObjectGraphEncoder::InjectedBundleObjCObjectGraphEncoder(ObjCObjectGraph* objectGraph, WebProcess& process)
    501522    : m_objectGraph(objectGraph)
     523    , m_process(process)
    502524{
    503525}
     
    505527void InjectedBundleObjCObjectGraphEncoder::encode(CoreIPC::ArgumentEncoder& encoder) const
    506528{
    507     encoder << InjectedBundleObjCObjectGraphEncoderImpl(m_objectGraph->rootObject());
    508 }
    509 
    510 InjectedBundleObjCObjectGraphDecoder::InjectedBundleObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>& objectGraph, WebProcess* process)
     529    encoder << InjectedBundleObjCObjectGraphEncoderImpl(m_objectGraph->rootObject(), m_process);
     530}
     531
     532InjectedBundleObjCObjectGraphDecoder::InjectedBundleObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>& objectGraph, WebProcess& process)
    511533    : m_objectGraph(objectGraph)
    512534    , m_process(process)
  • trunk/Source/WebKit2/UIProcess/WebConnectionToWebProcess.cpp

    r159765 r159908  
    5353void WebConnectionToWebProcess::encodeMessageBody(CoreIPC::ArgumentEncoder& encoder, API::Object* messageBody)
    5454{
    55     encoder << WebContextUserMessageEncoder(messageBody);
     55    encoder << WebContextUserMessageEncoder(messageBody, *m_process);
    5656}
    5757
    5858bool WebConnectionToWebProcess::decodeMessageBody(CoreIPC::ArgumentDecoder& decoder, RefPtr<API::Object>& messageBody)
    5959{
    60     WebContextUserMessageDecoder messageBodyDecoder(messageBody, m_process);
     60    WebContextUserMessageDecoder messageBodyDecoder(messageBody, *m_process);
    6161    return decoder.decode(messageBodyDecoder);
    6262}
  • trunk/Source/WebKit2/UIProcess/WebContext.cpp

    r159903 r159908  
    595595    if (!injectedBundleInitializationUserData)
    596596        injectedBundleInitializationUserData = m_injectedBundleInitializationUserData;
    597     process->send(Messages::WebProcess::InitializeWebProcess(parameters, WebContextUserMessageEncoder(injectedBundleInitializationUserData.get())), 0);
     597    process->send(Messages::WebProcess::InitializeWebProcess(parameters, WebContextUserMessageEncoder(injectedBundleInitializationUserData.get(), *process)), 0);
    598598
    599599    if (WebPreferences::anyPageGroupsAreUsingPrivateBrowsing())
     
    609609
    610610            messageData.encode(message.first);
    611             messageData.encode(WebContextUserMessageEncoder(message.second.get()));
     611            messageData.encode(WebContextUserMessageEncoder(message.second.get(), *process));
    612612            process->send(Messages::WebProcess::PostInjectedBundleMessage(CoreIPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
    613613        }
     
    785785    }
    786786
    787     // FIXME: Return early if the message body contains any references to WKPageRefs/WKFrameRefs etc. since they're local to a process.
    788 
    789     CoreIPC::ArgumentEncoder messageData;
    790     messageData.encode(messageName);
    791     messageData.encode(WebContextUserMessageEncoder(messageBody));
    792 
    793     for (size_t i = 0; i < m_processes.size(); ++i)
    794         m_processes[i]->send(Messages::WebProcess::PostInjectedBundleMessage(CoreIPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
     787    for (auto process : m_processes) {
     788        // FIXME: Return early if the message body contains any references to WKPageRefs/WKFrameRefs etc. since they're local to a process.
     789        CoreIPC::ArgumentEncoder messageData;
     790        messageData.encode(messageName);
     791        messageData.encode(WebContextUserMessageEncoder(messageBody, *process.get()));
     792
     793        process->send(Messages::WebProcess::PostInjectedBundleMessage(CoreIPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
     794    }
    795795}
    796796
     
    956956        String messageName;
    957957        RefPtr<API::Object> messageBody;
    958         WebContextUserMessageDecoder messageBodyDecoder(messageBody, WebProcessProxy::fromConnection(connection));
     958        WebContextUserMessageDecoder messageBodyDecoder(messageBody, *WebProcessProxy::fromConnection(connection));
    959959        if (!decoder.decode(messageName))
    960960            return;
     
    980980        // FIXME: We should probably encode something in the case that the arguments do not decode correctly.
    981981
     982        WebProcessProxy* process = WebProcessProxy::fromConnection(connection);
     983
    982984        String messageName;
    983985        RefPtr<API::Object> messageBody;
    984         WebContextUserMessageDecoder messageBodyDecoder(messageBody, WebProcessProxy::fromConnection(connection));
     986        WebContextUserMessageDecoder messageBodyDecoder(messageBody, *process);
    985987        if (!decoder.decode(messageName))
    986988            return;
     
    990992        RefPtr<API::Object> returnData;
    991993        didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody.get(), returnData);
    992         replyEncoder->encode(WebContextUserMessageEncoder(returnData.get()));
     994        replyEncoder->encode(WebContextUserMessageEncoder(returnData.get(), *process));
    993995        return;
    994996    }
  • trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h

    r159765 r159908  
    4646    typedef UserMessageEncoder<WebContextUserMessageEncoder> Base;
    4747
    48     explicit WebContextUserMessageEncoder(API::Object* root)
     48    explicit WebContextUserMessageEncoder(API::Object* root, WebProcessProxy& process)
    4949        : Base(root)
     50        , m_process(process)
     51    {
     52    }
     53
     54    WebContextUserMessageEncoder(const WebContextUserMessageEncoder& userMessageEncoder, API::Object* root)
     55        : Base(root)
     56        , m_process(userMessageEncoder.m_process)
    5057    {
    5158    }
     
    5461    {
    5562        API::Object::Type type = API::Object::Type::Null;
    56         if (baseEncode(encoder, type))
     63        if (baseEncode(encoder, *this, type))
    5764            return;
    5865
     
    7683        case API::Object::Type::ObjCObjectGraph: {
    7784            ObjCObjectGraph* objectGraph = static_cast<ObjCObjectGraph*>(m_root);
    78             encoder << WebContextObjCObjectGraphEncoder(objectGraph);
     85            encoder << WebContextObjCObjectGraphEncoder(objectGraph, m_process);
    7986            break;
    8087        }
     
    8592        }
    8693    }
     94
     95private:
     96    WebProcessProxy& m_process;
    8797};
    8898
     
    96106    typedef UserMessageDecoder<WebContextUserMessageDecoder> Base;
    97107
    98     WebContextUserMessageDecoder(RefPtr<API::Object>& root, WebProcessProxy* process)
     108    WebContextUserMessageDecoder(RefPtr<API::Object>& root, WebProcessProxy& process)
    99109        : Base(root)
    100110        , m_process(process)
     
    122132            if (!decoder.decode(pageID))
    123133                return false;
    124             coder.m_root = coder.m_process->webPage(pageID);
     134            coder.m_root = coder.m_process.webPage(pageID);
    125135            break;
    126136        }
     
    129139            if (!decoder.decode(frameID))
    130140                return false;
    131             coder.m_root = coder.m_process->webFrame(frameID);
     141            coder.m_root = coder.m_process.webFrame(frameID);
    132142            break;
    133143        }
     
    157167
    158168private:
    159     WebProcessProxy* m_process;
     169    WebProcessProxy& m_process;
    160170};
    161171
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r159903 r159908  
    607607    if (createdExtension)
    608608        m_process->willAcquireUniversalFileReadSandboxExtension();
    609     m_process->send(Messages::WebPage::LoadURL(url, sandboxExtensionHandle, WebContextUserMessageEncoder(userData)), m_pageID);
     609    m_process->send(Messages::WebPage::LoadURL(url, sandboxExtensionHandle, WebContextUserMessageEncoder(userData, process())), m_pageID);
    610610    m_process->responsivenessTimer()->start();
    611611}
     
    622622    if (createdExtension)
    623623        m_process->willAcquireUniversalFileReadSandboxExtension();
    624     m_process->send(Messages::WebPage::LoadURLRequest(urlRequest->resourceRequest(), sandboxExtensionHandle, WebContextUserMessageEncoder(userData)), m_pageID);
     624    m_process->send(Messages::WebPage::LoadURLRequest(urlRequest->resourceRequest(), sandboxExtensionHandle, WebContextUserMessageEncoder(userData, process())), m_pageID);
    625625    m_process->responsivenessTimer()->start();
    626626}
     
    649649    SandboxExtension::createHandle(resourceDirectoryPath, SandboxExtension::ReadOnly, sandboxExtensionHandle);
    650650    m_process->assumeReadAccessToBaseURL(resourceDirectoryURL);
    651     m_process->send(Messages::WebPage::LoadURL(fileURL, sandboxExtensionHandle, WebContextUserMessageEncoder(userData)), m_pageID);
     651    m_process->send(Messages::WebPage::LoadURL(fileURL, sandboxExtensionHandle, WebContextUserMessageEncoder(userData, process())), m_pageID);
    652652    m_process->responsivenessTimer()->start();
    653653}
     
    659659
    660660    m_process->assumeReadAccessToBaseURL(baseURL);
    661     m_process->send(Messages::WebPage::LoadData(data->dataReference(), MIMEType, encoding, baseURL, WebContextUserMessageEncoder(userData)), m_pageID);
     661    m_process->send(Messages::WebPage::LoadData(data->dataReference(), MIMEType, encoding, baseURL, WebContextUserMessageEncoder(userData, process())), m_pageID);
    662662    m_process->responsivenessTimer()->start();
    663663}
     
    669669
    670670    m_process->assumeReadAccessToBaseURL(baseURL);
    671     m_process->send(Messages::WebPage::LoadHTMLString(htmlString, baseURL, WebContextUserMessageEncoder(userData)), m_pageID);
     671    m_process->send(Messages::WebPage::LoadHTMLString(htmlString, baseURL, WebContextUserMessageEncoder(userData, process())), m_pageID);
    672672    m_process->responsivenessTimer()->start();
    673673}
     
    684684
    685685    m_process->assumeReadAccessToBaseURL(baseURL);
    686     m_process->send(Messages::WebPage::LoadAlternateHTMLString(htmlString, baseURL, unreachableURL, WebContextUserMessageEncoder(userData)), m_pageID);
     686    m_process->send(Messages::WebPage::LoadAlternateHTMLString(htmlString, baseURL, unreachableURL, WebContextUserMessageEncoder(userData, process())), m_pageID);
    687687    m_process->responsivenessTimer()->start();
    688688}
     
    693693        reattachToWebProcess();
    694694
    695     m_process->send(Messages::WebPage::LoadPlainTextString(string, WebContextUserMessageEncoder(userData)), m_pageID);
     695    m_process->send(Messages::WebPage::LoadPlainTextString(string, WebContextUserMessageEncoder(userData, process())), m_pageID);
    696696    m_process->responsivenessTimer()->start();
    697697}
     
    702702        reattachToWebProcess();
    703703
    704     m_process->send(Messages::WebPage::LoadWebArchiveData(webArchiveData->dataReference(), WebContextUserMessageEncoder(userData)), m_pageID);
     704    m_process->send(Messages::WebPage::LoadWebArchiveData(webArchiveData->dataReference(), WebContextUserMessageEncoder(userData, process())), m_pageID);
    705705    m_process->responsivenessTimer()->start();
    706706}
     
    823823{
    824824    RefPtr<API::Object> userData;
    825     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     825    WebContextUserMessageDecoder messageDecoder(userData, process());
    826826    if (!decoder.decode(messageDecoder))
    827827        return;
     
    20762076
    20772077    RefPtr<API::Object> userData;
    2078     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2078    WebContextUserMessageDecoder messageDecoder(userData, process());
    20792079    if (!decoder.decode(messageDecoder))
    20802080        return;
     
    20962096{
    20972097    RefPtr<API::Object> userData;
    2098     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2098    WebContextUserMessageDecoder messageDecoder(userData, process());
    20992099    if (!decoder.decode(messageDecoder))
    21002100        return;
     
    21152115{
    21162116    RefPtr<API::Object> userData;
    2117     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2117    WebContextUserMessageDecoder messageDecoder(userData, process());
    21182118    if (!decoder.decode(messageDecoder))
    21192119        return;
     
    21462146{
    21472147    RefPtr<API::Object> userData;
    2148     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2148    WebContextUserMessageDecoder messageDecoder(userData, process());
    21492149    if (!decoder.decode(messageDecoder))
    21502150        return;
     
    21832183{
    21842184    RefPtr<API::Object> userData;
    2185     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2185    WebContextUserMessageDecoder messageDecoder(userData, process());
    21862186    if (!decoder.decode(messageDecoder))
    21872187        return;
     
    21962196{
    21972197    RefPtr<API::Object> userData;
    2198     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2198    WebContextUserMessageDecoder messageDecoder(userData, process());
    21992199    if (!decoder.decode(messageDecoder))
    22002200        return;
     
    22142214{
    22152215    RefPtr<API::Object> userData;
    2216     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2216    WebContextUserMessageDecoder messageDecoder(userData, process());
    22172217    if (!decoder.decode(messageDecoder))
    22182218        return;
     
    22342234{
    22352235    RefPtr<API::Object> userData;
    2236     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2236    WebContextUserMessageDecoder messageDecoder(userData, process());
    22372237    if (!decoder.decode(messageDecoder))
    22382238        return;
     
    22542254{
    22552255    RefPtr<API::Object> userData;
    2256     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2256    WebContextUserMessageDecoder messageDecoder(userData, process());
    22572257    if (!decoder.decode(messageDecoder))
    22582258        return;
     
    22722272{
    22732273    RefPtr<API::Object> userData;
    2274     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2274    WebContextUserMessageDecoder messageDecoder(userData, process());
    22752275    if (!decoder.decode(messageDecoder))
    22762276        return;
     
    22852285{
    22862286    RefPtr<API::Object> userData;
    2287     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2287    WebContextUserMessageDecoder messageDecoder(userData, process());
    22882288    if (!decoder.decode(messageDecoder))
    22892289        return;
     
    22982298{
    22992299    RefPtr<API::Object> userData;
    2300     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2300    WebContextUserMessageDecoder messageDecoder(userData, process());
    23012301    if (!decoder.decode(messageDecoder))
    23022302        return;
     
    23082308{
    23092309    RefPtr<API::Object> userData;
    2310     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2310    WebContextUserMessageDecoder messageDecoder(userData, process());
    23112311    if (!decoder.decode(messageDecoder))
    23122312        return;
     
    23212321{
    23222322    RefPtr<API::Object> userData;
    2323     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2323    WebContextUserMessageDecoder messageDecoder(userData, process());
    23242324    if (!decoder.decode(messageDecoder))
    23252325        return;
     
    23342334{
    23352335    RefPtr<API::Object> userData;
    2336     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2336    WebContextUserMessageDecoder messageDecoder(userData, process());
    23372337    if (!decoder.decode(messageDecoder))
    23382338        return;
     
    23472347{
    23482348    RefPtr<API::Object> userData;
    2349     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2349    WebContextUserMessageDecoder messageDecoder(userData, process());
    23502350    if (!decoder.decode(messageDecoder))
    23512351        return;
     
    23712371{
    23722372    RefPtr<API::Object> userData;
    2373     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2373    WebContextUserMessageDecoder messageDecoder(userData, process());
    23742374    if (!decoder.decode(messageDecoder))
    23752375        return;
     
    24102410{
    24112411    RefPtr<API::Object> userData;
    2412     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2412    WebContextUserMessageDecoder messageDecoder(userData, process());
    24132413    if (!decoder.decode(messageDecoder))
    24142414        return;
     
    24302430{
    24312431    RefPtr<API::Object> userData;
    2432     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2432    WebContextUserMessageDecoder messageDecoder(userData, process());
    24332433    if (!decoder.decode(messageDecoder))
    24342434        return;
     
    24692469{
    24702470    RefPtr<API::Object> userData;
    2471     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2471    WebContextUserMessageDecoder messageDecoder(userData, process());
    24722472    if (!decoder.decode(messageDecoder))
    24732473        return;
     
    24842484{
    24852485    RefPtr<API::Object> userData;
    2486     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2486    WebContextUserMessageDecoder messageDecoder(userData, process());
    24872487    if (!decoder.decode(messageDecoder))
    24882488        return;
     
    25772577{
    25782578    RefPtr<API::Object> userData;
    2579     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     2579    WebContextUserMessageDecoder messageDecoder(userData, process());
    25802580    if (!decoder.decode(messageDecoder))
    25812581        return;
     
    30503050void WebPageProxy::postMessageToInjectedBundle(const String& messageName, API::Object* messageBody)
    30513051{
    3052     process().send(Messages::WebPage::PostInjectedBundleMessage(messageName, WebContextUserMessageEncoder(messageBody)), m_pageID);
     3052    process().send(Messages::WebPage::PostInjectedBundleMessage(messageName, WebContextUserMessageEncoder(messageBody, process())), m_pageID);
    30533053}
    30543054
     
    31213121{
    31223122    RefPtr<API::Object> userData;
    3123     WebContextUserMessageDecoder messageDecoder(userData, &m_process.get());
     3123    WebContextUserMessageDecoder messageDecoder(userData, process());
    31243124    if (!decoder.decode(messageDecoder))
    31253125        return;
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundleUserMessageCoders.h

    r159765 r159908  
    4949    typedef UserMessageEncoder<InjectedBundleUserMessageEncoder> Base;
    5050
    51     InjectedBundleUserMessageEncoder(API::Object* root)
     51    InjectedBundleUserMessageEncoder(API::Object* root)
     52        : Base(root)
     53    {
     54    }
     55
     56    InjectedBundleUserMessageEncoder(const InjectedBundleUserMessageEncoder&, API::Object* root)
    5257        : Base(root)
    5358    {
     
    5762    {
    5863        API::Object::Type type = API::Object::Type::Null;
    59         if (baseEncode(encoder, type))
     64        if (baseEncode(encoder, *this, type))
    6065            return;
    6166
     
    7984        case API::Object::Type::ObjCObjectGraph: {
    8085            ObjCObjectGraph* objectGraph = static_cast<ObjCObjectGraph*>(m_root);
    81             encoder << InjectedBundleObjCObjectGraphEncoder(objectGraph);
     86            encoder << InjectedBundleObjCObjectGraphEncoder(objectGraph, WebProcess::shared());
    8287            break;
    8388        }
     
    143148        case API::Object::Type::ObjCObjectGraph: {
    144149            RefPtr<ObjCObjectGraph> objectGraph;
    145             InjectedBundleObjCObjectGraphDecoder objectGraphDecoder(objectGraph, &WebProcess::shared());
     150            InjectedBundleObjCObjectGraphDecoder objectGraphDecoder(objectGraph, WebProcess::shared());
    146151            if (!decoder.decode(objectGraphDecoder))
    147152                return false;
Note: See TracChangeset for help on using the changeset viewer.