Changeset 201543 in webkit
- Timestamp:
- May 31, 2016, 9:49:24 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
Modules/websockets/WorkerThreadableWebSocketChannel.cpp (modified) (24 diffs)
-
Modules/websockets/WorkerThreadableWebSocketChannel.h (modified) (3 diffs)
-
platform/URL.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r201541 r201543 1 2016-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 1 37 2016-05-31 Joseph Pecoraro <pecoraro@apple.com> 2 38 -
trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp
r200895 r201543 144 144 } 145 145 146 WorkerThreadableWebSocketChannel::Peer::Peer( PassRefPtr<ThreadableWebSocketChannelClientWrapper>clientWrapper, WorkerLoaderProxy& loaderProxy, ScriptExecutionContext* context, const String& taskMode)147 : m_workerClientWrapper( clientWrapper)146 WorkerThreadableWebSocketChannel::Peer::Peer(RefPtr<ThreadableWebSocketChannelClientWrapper>&& clientWrapper, WorkerLoaderProxy& loaderProxy, ScriptExecutionContext* context, const String& taskMode) 147 : m_workerClientWrapper(WTFMove(clientWrapper)) 148 148 , m_loaderProxy(loaderProxy) 149 149 , m_mainWebSocketChannel(WebSocketChannel::create(downcast<Document>(context), this)) … … 176 176 ThreadableWebSocketChannel::SendResult sendRequestResult = m_mainWebSocketChannel->send(message); 177 177 RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper; 178 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper , sendRequestResult] (ScriptExecutionContext&) {178 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), sendRequestResult] (ScriptExecutionContext&) { 179 179 workerClientWrapper->setSendRequestResult(sendRequestResult); 180 180 }, m_taskMode); … … 189 189 ThreadableWebSocketChannel::SendResult sendRequestResult = m_mainWebSocketChannel->send(binaryData, 0, binaryData.byteLength()); 190 190 RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper; 191 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper , sendRequestResult] (ScriptExecutionContext&) {191 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), sendRequestResult] (ScriptExecutionContext&) { 192 192 workerClientWrapper->setSendRequestResult(sendRequestResult); 193 193 }, m_taskMode); … … 202 202 ThreadableWebSocketChannel::SendResult sendRequestResult = m_mainWebSocketChannel->send(binaryData); 203 203 RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper; 204 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper , sendRequestResult] (ScriptExecutionContext&) {204 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), sendRequestResult] (ScriptExecutionContext&) { 205 205 workerClientWrapper->setSendRequestResult(sendRequestResult); 206 206 }, m_taskMode); … … 215 215 RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper; 216 216 unsigned long bufferedAmount = m_mainWebSocketChannel->bufferedAmount(); 217 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper , bufferedAmount] (ScriptExecutionContext& context) {217 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), bufferedAmount] (ScriptExecutionContext& context) { 218 218 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 219 219 workerClientWrapper->setBufferedAmount(bufferedAmount); … … 267 267 268 268 RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper; 269 String Capture capturedSubprotocol(m_mainWebSocketChannel->subprotocol());270 String Capture 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) { 272 272 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 273 workerClientWrapper->setSubprotocol( capturedSubprotocol.string());274 workerClientWrapper->setExtensions( capturedExtensions.string());273 workerClientWrapper->setSubprotocol(subprotocol); 274 workerClientWrapper->setExtensions(extensions); 275 275 workerClientWrapper->didConnect(); 276 276 }, m_taskMode); … … 282 282 283 283 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) { 286 285 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 287 workerClientWrapper->didReceiveMessage( capturedMessage.string());286 workerClientWrapper->didReceiveMessage(message); 288 287 }, m_taskMode); 289 288 } … … 294 293 295 294 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 { 298 296 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 299 workerClientWrapper->didReceiveBinaryData(WTFMove(*capturedData)); 300 delete capturedData; 297 workerClientWrapper->didReceiveBinaryData(WTFMove(binaryData)); 301 298 }, m_taskMode); 302 299 } … … 307 304 308 305 RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper; 309 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper , bufferedAmount] (ScriptExecutionContext& context) {306 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper), bufferedAmount] (ScriptExecutionContext& context) { 310 307 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 311 308 workerClientWrapper->didUpdateBufferedAmount(bufferedAmount); … … 318 315 319 316 RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper; 320 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper ] (ScriptExecutionContext& context) {317 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper)] (ScriptExecutionContext& context) { 321 318 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 322 319 workerClientWrapper->didStartClosingHandshake(); … … 330 327 331 328 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) { 335 330 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 336 workerClientWrapper->didClose(unhandledBufferedAmount, closingHandshakeCompletion, code, capturedReason.string());331 workerClientWrapper->didClose(unhandledBufferedAmount, closingHandshakeCompletion, code, reason); 337 332 }, m_taskMode); 338 333 } … … 343 338 344 339 RefPtr<ThreadableWebSocketChannelClientWrapper> workerClientWrapper = m_workerClientWrapper; 345 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper ] (ScriptExecutionContext& context) {340 m_loaderProxy.postTaskForModeToWorkerGlobalScope([workerClientWrapper = WTFMove(workerClientWrapper)] (ScriptExecutionContext& context) { 346 341 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 347 342 workerClientWrapper->didReceiveMessageError(); … … 364 359 } 365 360 366 void WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize(ScriptExecutionContext& context, WorkerLoaderProxy* loaderProxy, PassRefPtr<ThreadableWebSocketChannelClientWrapper> prpClientWrapper, const String& taskMode)361 void WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize(ScriptExecutionContext& context, WorkerLoaderProxy* loaderProxy, RefPtr<ThreadableWebSocketChannelClientWrapper>&& passedClientWrapper, const String& taskMode) 367 362 { 368 363 ASSERT(isMainThread()); 369 364 ASSERT_UNUSED(context, context.isDocument()); 370 365 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); 374 369 bool sent = loaderProxy->postTaskForModeToWorkerGlobalScope({ 375 370 ScriptExecutionContext::Task::CleanupTask, 376 [clientWrapper, loaderProxy, peer Ptr] (ScriptExecutionContext& context){371 [clientWrapper, loaderProxy, peer = WTFMove(peer)] (ScriptExecutionContext& context) mutable { 377 372 ASSERT_UNUSED(context, context.isWorkerGlobalScope()); 378 373 if (clientWrapper->failedWebSocketChannelCreation()) { 379 374 // If Bridge::initialize() quitted earlier, we need to kick mainThreadDestroy() to delete the peer. 380 loaderProxy->postTaskToLoader([peer Ptr] (ScriptExecutionContext& context) {375 loaderProxy->postTaskToLoader([peer = WTFMove(peer)] (ScriptExecutionContext& context) { 381 376 ASSERT(isMainThread()); 382 377 ASSERT_UNUSED(context, context.isDocument()); 383 delete peerPtr;384 378 }); 385 379 } else 386 clientWrapper->didCreateWebSocketChannel(peer Ptr);380 clientWrapper->didCreateWebSocketChannel(peer.release()); 387 381 } 388 382 }, taskMode); 389 383 390 if (!sent) {384 if (!sent) 391 385 clientWrapper->clearPeer(); 392 delete peerPtr;393 }394 386 } 395 387 … … 400 392 Ref<Bridge> protectedThis(*this); 401 393 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); 407 397 }); 408 398 waitForMethodCompletion(); … … 420 410 return; 421 411 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); 431 418 }); 432 419 } … … 438 425 setMethodNotCompleted(); 439 426 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); 448 433 }); 449 434 … … 462 447 463 448 // 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); 465 450 if (binaryData.byteLength()) 466 memcpy(data Ptr->data(), static_cast<const char*>(binaryData.data()) + byteOffset, byteLength);451 memcpy(data.data(), static_cast<const char*>(binaryData.data()) + byteOffset, byteLength); 467 452 setMethodNotCompleted(); 468 453 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); 478 461 }); 479 462 … … 492 475 setMethodNotCompleted(); 493 476 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, { })); 504 483 }); 505 484 … … 518 497 setMethodNotCompleted(); 519 498 520 Peer* peer = m_peer; 521 m_loaderProxy.postTaskToLoader([peer] (ScriptExecutionContext& context) { 499 m_loaderProxy.postTaskToLoader([peer = m_peer] (ScriptExecutionContext& context) { 522 500 ASSERT(isMainThread()); 523 501 ASSERT_UNUSED(context, context.isDocument()); … … 540 518 return; 541 519 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); 550 526 }); 551 527 } … … 556 532 return; 557 533 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); 566 540 }); 567 541 } … … 571 545 clearClientWrapper(); 572 546 if (m_peer) { 573 Peer* peer = m_peer; 574 m_loaderProxy.postTaskToLoader([peer] (ScriptExecutionContext& context) { 547 m_loaderProxy.postTaskToLoader([peer = m_peer] (ScriptExecutionContext& context) { 575 548 ASSERT(isMainThread()); 576 549 ASSERT_UNUSED(context, context.isDocument()); … … 587 560 return; 588 561 589 Peer* peer = m_peer; 590 m_loaderProxy.postTaskToLoader([peer] (ScriptExecutionContext& context) { 562 m_loaderProxy.postTaskToLoader([peer = m_peer] (ScriptExecutionContext& context) { 591 563 ASSERT(isMainThread()); 592 564 ASSERT_UNUSED(context, context.isDocument()); … … 602 574 return; 603 575 604 Peer* peer = m_peer; 605 m_loaderProxy.postTaskToLoader([peer] (ScriptExecutionContext& context) { 576 m_loaderProxy.postTaskToLoader([peer = m_peer] (ScriptExecutionContext& context) { 606 577 ASSERT(isMainThread()); 607 578 ASSERT_UNUSED(context, context.isDocument()); -
trunk/Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.h
r198869 r201543 81 81 WTF_MAKE_NONCOPYABLE(Peer); WTF_MAKE_FAST_ALLOCATED; 82 82 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); 87 84 ~Peer(); 88 85 … … 108 105 109 106 private: 110 Peer(PassRefPtr<ThreadableWebSocketChannelClientWrapper>, WorkerLoaderProxy&, ScriptExecutionContext*, const String& taskMode);111 112 107 RefPtr<ThreadableWebSocketChannelClientWrapper> m_workerClientWrapper; 113 108 WorkerLoaderProxy& m_loaderProxy; … … 153 148 154 149 // 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); 156 151 157 152 // Executed on the worker context's thread. -
trunk/Source/WebCore/platform/URL.h
r200909 r201543 331 331 #endif 332 332 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 347 333 // Inlines. 348 334 … … 433 419 { 434 420 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() const453 {454 return m_URL;455 }456 457 inline URL URLCapture::releaseURL()458 {459 return WTFMove(m_URL);460 421 } 461 422
Note:
See TracChangeset
for help on using the changeset viewer.