⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 201543 in webkit


Ignore:
Timestamp:
May 31, 2016, 9:49:24 PM (10 years ago)
Author:
Chris Dumez
Message:

Modernize lambda captures in WorkerThreadableWebSocketChannel
https://bugs.webkit.org/show_bug.cgi?id=158246

Reviewed by Brady Eidson.

Modernize lambda captures in WorkerThreadableWebSocketChannel and drop
legacy URLCapture as it is no longer needed / used.

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::setMethodNotCompleted): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion): Deleted.

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • platform/URL.h:

(WebCore::operator==): Deleted.

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r201541 r201543  
     12016-05-31  Chris Dumez  <cdumez@apple.com>
     2
     3        Modernize lambda captures in WorkerThreadableWebSocketChannel
     4        https://bugs.webkit.org/show_bug.cgi?id=158246
     5
     6        Reviewed by Brady Eidson.
     7
     8        Modernize lambda captures in WorkerThreadableWebSocketChannel and drop
     9        legacy URLCapture as it is no longer needed / used.
     10
     11        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
     12        (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
     13        (WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
     14        (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
     15        (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
     16        (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
     17        (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
     18        (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
     19        (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
     20        (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
     21        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
     22        (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
     23        (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
     24        (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
     25        (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
     26        (WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
     27        (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
     28        (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
     29        (WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
     30        (WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
     31        (WebCore::WorkerThreadableWebSocketChannel::Bridge::setMethodNotCompleted): Deleted.
     32        (WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion): Deleted.
     33        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
     34        * platform/URL.h:
     35        (WebCore::operator==): Deleted.
     36
    1372016-05-31  Joseph Pecoraro  <pecoraro@apple.com>
    238
  • trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp

    r200895 r201543  
    144144}
    145145
    146 WorkerThreadableWebSocketChannel::Peer::Peer(PassRefPtr<ThreadableWebSocketChannelClientWrapper> clientWrapper, WorkerLoaderProxy& loaderProxy, ScriptExecutionContext* context, const String& taskMode)
    147     : m_workerClientWrapper(clientWrapper)
     146WorkerThreadableWebSocketChannel::Peer::Peer(RefPtr<ThreadableWebSocketChannelClientWrapper>&& clientWrapper, WorkerLoaderProxy& loaderProxy, ScriptExecutionContext* context, const String& taskMode)
     147    : m_workerClientWrapper(WTFMove(clientWrapper))
    148148    , m_loaderProxy(loaderProxy)
    149149    , m_mainWebSocketChannel(WebSocketChannel::create(downcast<Document>(context), this))
     
    176176    ThreadableWebSocketChannel::SendResult sendRequestResult = m_mainWebSocketChannel->send(message);
    177177    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    178     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, sendRequestResult] (ScriptExecutionContext&) {
     178    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), sendRequestResult] (ScriptExecutionContext&) {
    179179        workerClientWrapper->setSendRequestResult(sendRequestResult);
    180180    }, m_taskMode);
     
    189189    ThreadableWebSocketChannel::SendResult sendRequestResult = m_mainWebSocketChannel->send(binaryData, 0, binaryData.byteLength());
    190190    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    191     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, sendRequestResult] (ScriptExecutionContext&) {
     191    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), sendRequestResult] (ScriptExecutionContext&) {
    192192        workerClientWrapper->setSendRequestResult(sendRequestResult);
    193193    }, m_taskMode);
     
    202202    ThreadableWebSocketChannel::SendResult sendRequestResult = m_mainWebSocketChannel->send(binaryData);
    203203    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    204     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, sendRequestResult] (ScriptExecutionContext&) {
     204    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), sendRequestResult] (ScriptExecutionContext&) {
    205205        workerClientWrapper->setSendRequestResult(sendRequestResult);
    206206    }, m_taskMode);
     
    215215    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    216216    unsigned long bufferedAmount = m_mainWebSocketChannel->bufferedAmount();
    217     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, bufferedAmount] (ScriptExecutionContext& context) {
     217    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), bufferedAmount] (ScriptExecutionContext& context) {
    218218        ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    219219        workerClientWrapper->setBufferedAmount(bufferedAmount);
     
    267267
    268268    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    269     StringCapture capturedSubprotocol(m_mainWebSocketChannel->subprotocol());
    270     StringCapture capturedExtensions(m_mainWebSocketChannel->extensions());
    271     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, capturedSubprotocol, capturedExtensions] (ScriptExecutionContext& context) {
     269    String subprotocol = m_mainWebSocketChannel->subprotocol();
     270    String extensions = m_mainWebSocketChannel->extensions();
     271    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), subprotocol = subprotocol.isolatedCopy(), extensions = extensions.isolatedCopy()] (ScriptExecutionContext& context) {
    272272        ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    273         workerClientWrapper->setSubprotocol(capturedSubprotocol.string());
    274         workerClientWrapper->setExtensions(capturedExtensions.string());
     273        workerClientWrapper->setSubprotocol(subprotocol);
     274        workerClientWrapper->setExtensions(extensions);
    275275        workerClientWrapper->didConnect();
    276276    }, m_taskMode);
     
    282282
    283283    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    284     StringCapture capturedMessage(message);
    285     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, capturedMessage] (ScriptExecutionContext& context) {
     284    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), message = message.isolatedCopy()] (ScriptExecutionContext& context) {
    286285        ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    287         workerClientWrapper->didReceiveMessage(capturedMessage.string());
     286        workerClientWrapper->didReceiveMessage(message);
    288287    }, m_taskMode);
    289288}
     
    294293
    295294    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    296     Vector<uint8_t>* capturedData = new Vector<uint8_t>(WTFMove(binaryData));
    297     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, capturedData] (ScriptExecutionContext& context) {
     295    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), binaryData = WTFMove(binaryData)] (ScriptExecutionContext& context) mutable {
    298296        ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    299         workerClientWrapper->didReceiveBinaryData(WTFMove(*capturedData));
    300         delete capturedData;
     297        workerClientWrapper->didReceiveBinaryData(WTFMove(binaryData));
    301298    }, m_taskMode);
    302299}
     
    307304
    308305    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    309     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper, bufferedAmount] (ScriptExecutionContext& context) {
     306    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), bufferedAmount] (ScriptExecutionContext& context) {
    310307        ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    311308        workerClientWrapper->didUpdateBufferedAmount(bufferedAmount);
     
    318315
    319316    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    320     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper] (ScriptExecutionContext& context) {
     317    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper)] (ScriptExecutionContext& context) {
    321318        ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    322319        workerClientWrapper->didStartClosingHandshake();
     
    330327
    331328    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    332     StringCapture capturedReason(reason);
    333     m_loaderProxy.postTaskForModeToWorkerGlobalScope(
    334         [workerClientWrapper, unhandledBufferedAmount, closingHandshakeCompletion, code, capturedReason] (ScriptExecutionContext& context) {
     329    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), unhandledBufferedAmount, closingHandshakeCompletion, code, reason = reason.isolatedCopy()] (ScriptExecutionContext& context) {
    335330            ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    336             workerClientWrapper->didClose(unhandledBufferedAmount, closingHandshakeCompletion, code, capturedReason.string());
     331            workerClientWrapper->didClose(unhandledBufferedAmount, closingHandshakeCompletion, code, reason);
    337332        }, m_taskMode);
    338333}
     
    343338
    344339    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    345     m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper] (ScriptExecutionContext& context) {
     340    m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper)] (ScriptExecutionContext& context) {
    346341        ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    347342        workerClientWrapper->didReceiveMessageError();
     
    364359}
    365360
    366 void WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize(ScriptExecutionContext& context, WorkerLoaderProxy* loaderProxy, PassRefPtr<ThreadableWebSocketChannelClientWrapper> prpClientWrapper, const String& taskMode)
     361void WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize(ScriptExecutionContext& context, WorkerLoaderProxy* loaderProxy, RefPtr<ThreadableWebSocketChannelClientWrapper>&& passedClientWrapper, const String& taskMode)
    367362{
    368363    ASSERT(isMainThread());
    369364    ASSERT_UNUSED(context, context.isDocument());
    370365
    371     RefPtr<ThreadableWebSocketChannelClientWrapper> clientWrapper = prpClientWrapper;
    372 
    373     Peer* peerPtr = Peer::create(clientWrapper, *loaderProxy, &context, taskMode);
     366    RefPtr<ThreadableWebSocketChannelClientWrapper> clientWrapper = WTFMove(passedClientWrapper);
     367
     368    auto peer = std::make_unique<Peer>(clientWrapper.copyRef(), *loaderProxy, &context, taskMode);
    374369    bool sent = loaderProxy->postTaskForModeToWorkerGlobalScope({
    375370        ScriptExecutionContext::Task::CleanupTask,
    376         [clientWrapper, loaderProxy, peerPtr] (ScriptExecutionContext& context) {
     371        [clientWrapper, loaderProxy, peer = WTFMove(peer)] (ScriptExecutionContext& context) mutable {
    377372            ASSERT_UNUSED(context, context.isWorkerGlobalScope());
    378373            if (clientWrapper->failedWebSocketChannelCreation()) {
    379374                // If Bridge::initialize() quitted earlier, we need to kick mainThreadDestroy() to delete the peer.
    380                 loaderProxy->postTaskToLoader([peerPtr] (ScriptExecutionContext& context) {
     375                loaderProxy->postTaskToLoader([peer = WTFMove(peer)] (ScriptExecutionContext& context) {
    381376                    ASSERT(isMainThread());
    382377                    ASSERT_UNUSED(context, context.isDocument());
    383                     delete peerPtr;
    384378                });
    385379            } else
    386                 clientWrapper->didCreateWebSocketChannel(peerPtr);
     380                clientWrapper->didCreateWebSocketChannel(peer.release());
    387381        }
    388382    }, taskMode);
    389383
    390     if (!sent) {
     384    if (!sent)
    391385        clientWrapper->clearPeer();
    392         delete peerPtr;
    393     }
    394386}
    395387
     
    400392    Ref<Bridge> protectedThis(*this);
    401393
    402     WorkerLoaderProxy* loaderProxy = &m_loaderProxy;
    403     RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
    404     StringCapture capturedTaskMode(m_taskMode);
    405     m_loaderProxy.postTaskToLoader([loaderProxy, workerClientWrapper, capturedTaskMode] (ScriptExecutionContext& context) {
    406         mainThreadInitialize(context, loaderProxy, workerClientWrapper, capturedTaskMode.string());
     394    RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper;
     395    m_loaderProxy.postTaskToLoader([loaderProxy = &m_loaderProxy, workerClientWrapper = WTFMove(workerClientWrapper), taskMode = m_taskMode.isolatedCopy()] (ScriptExecutionContext& context) mutable {
     396        mainThreadInitialize(context, loaderProxy, WTFMove(workerClientWrapper), taskMode);
    407397    });
    408398    waitForMethodCompletion();
     
    420410        return;
    421411
    422     Peer* peer = m_peer;
    423     URLCapture capturedURL(url);
    424     StringCapture capturedProtocol(protocol);
    425     m_loaderProxy.postTaskToLoader([peer, capturedURL, capturedProtocol] (ScriptExecutionContext& context) {
    426         ASSERT(isMainThread());
    427         ASSERT_UNUSED(context, context.isDocument());
    428         ASSERT(peer);
    429 
    430         peer->connect(capturedURL.url(), capturedProtocol.string());
     412    m_loaderProxy.postTaskToLoader([peer = m_peer, url = url.isolatedCopy(), protocol = protocol.isolatedCopy()] (ScriptExecutionContext& context) {
     413        ASSERT(isMainThread());
     414        ASSERT_UNUSED(context, context.isDocument());
     415        ASSERT(peer);
     416
     417        peer->connect(url, protocol);
    431418    });
    432419}
     
    438425    setMethodNotCompleted();
    439426
    440     Peer* peer = m_peer;
    441     StringCapture capturedMessage(message);
    442     m_loaderProxy.postTaskToLoader([peer, capturedMessage] (ScriptExecutionContext& context) {
    443         ASSERT(isMainThread());
    444         ASSERT_UNUSED(context, context.isDocument());
    445         ASSERT(peer);
    446 
    447         peer->send(capturedMessage.string());
     427    m_loaderProxy.postTaskToLoader([peer = m_peer, message = message.isolatedCopy()] (ScriptExecutionContext& context) {
     428        ASSERT(isMainThread());
     429        ASSERT_UNUSED(context, context.isDocument());
     430        ASSERT(peer);
     431
     432        peer->send(message);
    448433    });
    449434
     
    462447
    463448    // ArrayBuffer isn't thread-safe, hence the content of ArrayBuffer is copied into Vector<char>.
    464     Vector<char>* dataPtr = std::make_unique<Vector<char>>(byteLength).release();
     449    Vector<char> data(byteLength);
    465450    if (binaryData.byteLength())
    466         memcpy(dataPtr->data(), static_cast<const char*>(binaryData.data()) + byteOffset, byteLength);
     451        memcpy(data.data(), static_cast<const char*>(binaryData.data()) + byteOffset, byteLength);
    467452    setMethodNotCompleted();
    468453
    469     Peer* peer = m_peer;
    470     m_loaderProxy.postTaskToLoader([peer, dataPtr] (ScriptExecutionContext& context) {
    471         ASSERT(isMainThread());
    472         ASSERT_UNUSED(context, context.isDocument());
    473         ASSERT(peer);
    474 
    475         std::unique_ptr<Vector<char>> data(dataPtr);
    476         RefPtr<ArrayBuffer> arrayBuffer = ArrayBuffer::create(data->data(), data->size());
    477         peer->send(*arrayBuffer);
     454    m_loaderProxy.postTaskToLoader([peer = m_peer, data = WTFMove(data)] (ScriptExecutionContext& context) {
     455        ASSERT(isMainThread());
     456        ASSERT_UNUSED(context, context.isDocument());
     457        ASSERT(peer);
     458
     459        auto arrayBuffer = ArrayBuffer::create(data.data(), data.size());
     460        peer->send(arrayBuffer);
    478461    });
    479462
     
    492475    setMethodNotCompleted();
    493476
    494     Peer* peer = m_peer;
    495     URLCapture capturedURL(binaryData.url());
    496     StringCapture capturedType(binaryData.type());
    497     long long size = binaryData.size();
    498     m_loaderProxy.postTaskToLoader([peer, capturedURL, capturedType, size] (ScriptExecutionContext& context) {
    499         ASSERT(isMainThread());
    500         ASSERT_UNUSED(context, context.isDocument());
    501         ASSERT(peer);
    502 
    503         peer->send(Blob::deserialize(capturedURL.url(), capturedType.string(), size, { }));
     477    m_loaderProxy.postTaskToLoader([peer = m_peer, url = binaryData.url().isolatedCopy(), type = binaryData.type().isolatedCopy(), size = binaryData.size()] (ScriptExecutionContext& context) {
     478        ASSERT(isMainThread());
     479        ASSERT_UNUSED(context, context.isDocument());
     480        ASSERT(peer);
     481
     482        peer->send(Blob::deserialize(url, type, size, { }));
    504483    });
    505484
     
    518497    setMethodNotCompleted();
    519498
    520     Peer* peer = m_peer;
    521     m_loaderProxy.postTaskToLoader([peer] (ScriptExecutionContext& context) {
     499    m_loaderProxy.postTaskToLoader([peer = m_peer] (ScriptExecutionContext& context) {
    522500        ASSERT(isMainThread());
    523501        ASSERT_UNUSED(context, context.isDocument());
     
    540518        return;
    541519
    542     Peer* peer = m_peer;
    543     StringCapture capturedReason(reason);
    544     m_loaderProxy.postTaskToLoader([peer, code, capturedReason] (ScriptExecutionContext& context) {
    545         ASSERT(isMainThread());
    546         ASSERT_UNUSED(context, context.isDocument());
    547         ASSERT(peer);
    548 
    549         peer->close(code, capturedReason.string());
     520    m_loaderProxy.postTaskToLoader([peer = m_peer, code, reason = reason.isolatedCopy()] (ScriptExecutionContext& context) {
     521        ASSERT(isMainThread());
     522        ASSERT_UNUSED(context, context.isDocument());
     523        ASSERT(peer);
     524
     525        peer->close(code, reason);
    550526    });
    551527}
     
    556532        return;
    557533
    558     Peer* peer = m_peer;
    559     StringCapture capturedReason(reason);
    560     m_loaderProxy.postTaskToLoader([peer, capturedReason] (ScriptExecutionContext& context) {
    561         ASSERT(isMainThread());
    562         ASSERT_UNUSED(context, context.isDocument());
    563         ASSERT(peer);
    564 
    565         peer->fail(capturedReason.string());
     534    m_loaderProxy.postTaskToLoader([peer = m_peer, reason = reason.isolatedCopy()] (ScriptExecutionContext& context) {
     535        ASSERT(isMainThread());
     536        ASSERT_UNUSED(context, context.isDocument());
     537        ASSERT(peer);
     538
     539        peer->fail(reason);
    566540    });
    567541}
     
    571545    clearClientWrapper();
    572546    if (m_peer) {
    573         Peer* peer = m_peer;
    574         m_loaderProxy.postTaskToLoader([peer] (ScriptExecutionContext& context) {
     547        m_loaderProxy.postTaskToLoader([peer = m_peer] (ScriptExecutionContext& context) {
    575548            ASSERT(isMainThread());
    576549            ASSERT_UNUSED(context, context.isDocument());
     
    587560        return;
    588561
    589     Peer* peer = m_peer;
    590     m_loaderProxy.postTaskToLoader([peer] (ScriptExecutionContext& context) {
     562    m_loaderProxy.postTaskToLoader([peer = m_peer] (ScriptExecutionContext& context) {
    591563        ASSERT(isMainThread());
    592564        ASSERT_UNUSED(context, context.isDocument());
     
    602574        return;
    603575
    604     Peer* peer = m_peer;
    605     m_loaderProxy.postTaskToLoader([peer] (ScriptExecutionContext& context) {
     576    m_loaderProxy.postTaskToLoader([peer = m_peer] (ScriptExecutionContext& context) {
    606577        ASSERT(isMainThread());
    607578        ASSERT_UNUSED(context, context.isDocument());
  • trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.h

    r198869 r201543  
    8181        WTF_MAKE_NONCOPYABLE(Peer); WTF_MAKE_FAST_ALLOCATED;
    8282    public:
    83         static Peer* create(PassRefPtr<ThreadableWebSocketChannelClientWrapper> clientWrapper, WorkerLoaderProxy& loaderProxy, ScriptExecutionContext* context, const String& taskMode)
    84         {
    85             return new Peer(clientWrapper, loaderProxy, context, taskMode);
    86         }
     83        Peer(RefPtr<ThreadableWebSocketChannelClientWrapper>&&, WorkerLoaderProxy&, ScriptExecutionContext*, const String& taskMode);
    8784        ~Peer();
    8885
     
    108105
    109106    private:
    110         Peer(PassRefPtr<ThreadableWebSocketChannelClientWrapper>, WorkerLoaderProxy&, ScriptExecutionContext*, const String& taskMode);
    111 
    112107        RefPtr<ThreadableWebSocketChannelClientWrapper> m_workerClientWrapper;
    113108        WorkerLoaderProxy& m_loaderProxy;
     
    153148
    154149        // Executed on the main thread to create a Peer for this bridge.
    155         static void mainThreadInitialize(ScriptExecutionContext&, WorkerLoaderProxy*, PassRefPtr<ThreadableWebSocketChannelClientWrapper>, const String& taskMode);
     150        static void mainThreadInitialize(ScriptExecutionContext&, WorkerLoaderProxy*, RefPtr<ThreadableWebSocketChannelClientWrapper>&&, const String& taskMode);
    156151
    157152        // Executed on the worker context's thread.
  • trunk/Source/WebCore/platform/URL.h

    r200909 r201543  
    331331#endif
    332332
    333 // Like StringCapture, but for URLs.
    334 class URLCapture {
    335 public:
    336     explicit URLCapture(const URL&);
    337     explicit URLCapture(URL&&);
    338     URLCapture(const URLCapture&);
    339     const URL& url() const;
    340     URL releaseURL();
    341 
    342 private:
    343     void operator=(const URLCapture&) = delete;
    344     URL m_URL;
    345 };
    346 
    347333// Inlines.
    348334
     
    433419{
    434420    return m_pathAfterLastSlash;
    435 }
    436 
    437 inline URLCapture::URLCapture(const URL& url)
    438     : m_URL(url)
    439 {
    440 }
    441 
    442 inline URLCapture::URLCapture(URL&& url)
    443     : m_URL(url)
    444 {
    445 }
    446 
    447 inline URLCapture::URLCapture(const URLCapture& other)
    448     : m_URL(other.m_URL.isolatedCopy())
    449 {
    450 }
    451 
    452 inline const URL& URLCapture::url() const
    453 {
    454     return m_URL;
    455 }
    456 
    457 inline URL URLCapture::releaseURL()
    458 {
    459     return WTFMove(m_URL);
    460421}
    461422
Note: See TracChangeset for help on using the changeset viewer.