Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Side by Side Diff: content/renderer/service_worker/embedded_worker_context_client.cc

Issue 668303004: WIP DO NOT COMMIT chromium side of navigator.connect (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/service_worker/embedded_worker_context_client.h" 5 #include "content/renderer/service_worker/embedded_worker_context_client.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
11 #include "base/lazy_instance.h" 11 #include "base/lazy_instance.h"
12 #include "base/message_loop/message_loop_proxy.h" 12 #include "base/message_loop/message_loop_proxy.h"
13 #include "base/pickle.h" 13 #include "base/pickle.h"
14 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "base/threading/thread_local.h" 16 #include "base/threading/thread_local.h"
17 #include "content/child/request_extra_data.h" 17 #include "content/child/request_extra_data.h"
18 #include "content/child/service_worker/service_worker_network_provider.h" 18 #include "content/child/service_worker/service_worker_network_provider.h"
19 #include "content/child/service_worker/web_cross_origin_service_worker_client_im pl.h"
19 #include "content/child/thread_safe_sender.h" 20 #include "content/child/thread_safe_sender.h"
20 #include "content/child/worker_task_runner.h" 21 #include "content/child/worker_task_runner.h"
21 #include "content/child/worker_thread_task_runner.h" 22 #include "content/child/worker_thread_task_runner.h"
22 #include "content/common/devtools_messages.h" 23 #include "content/common/devtools_messages.h"
23 #include "content/common/service_worker/embedded_worker_messages.h" 24 #include "content/common/service_worker/embedded_worker_messages.h"
24 #include "content/common/service_worker/service_worker_types.h" 25 #include "content/common/service_worker/service_worker_types.h"
25 #include "content/public/renderer/document_state.h" 26 #include "content/public/renderer/document_state.h"
26 #include "content/renderer/render_thread_impl.h" 27 #include "content/renderer/render_thread_impl.h"
27 #include "content/renderer/service_worker/embedded_worker_dispatcher.h" 28 #include "content/renderer/service_worker/embedded_worker_dispatcher.h"
28 #include "content/renderer/service_worker/service_worker_script_context.h" 29 #include "content/renderer/service_worker/service_worker_script_context.h"
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 blink::WebServiceWorkerEventResult result) { 331 blink::WebServiceWorkerEventResult result) {
331 DCHECK(script_context_); 332 DCHECK(script_context_);
332 script_context_->DidHandlePushEvent(request_id, result); 333 script_context_->DidHandlePushEvent(request_id, result);
333 } 334 }
334 335
335 void EmbeddedWorkerContextClient::didHandleSyncEvent(int request_id) { 336 void EmbeddedWorkerContextClient::didHandleSyncEvent(int request_id) {
336 DCHECK(script_context_); 337 DCHECK(script_context_);
337 script_context_->DidHandleSyncEvent(request_id); 338 script_context_->DidHandleSyncEvent(request_id);
338 } 339 }
339 340
341 void EmbeddedWorkerContextClient::didHandleCrossOriginConnectEvent(
342 int request_id,
343 bool accept_connect) {
344 DCHECK(script_context_);
345 script_context_->DidHandleCrossOriginConnectEvent(request_id, accept_connect);
346 }
347
340 blink::WebServiceWorkerNetworkProvider* 348 blink::WebServiceWorkerNetworkProvider*
341 EmbeddedWorkerContextClient::createServiceWorkerNetworkProvider( 349 EmbeddedWorkerContextClient::createServiceWorkerNetworkProvider(
342 blink::WebDataSource* data_source) { 350 blink::WebDataSource* data_source) {
343 // Create a content::ServiceWorkerNetworkProvider for this data source so 351 // Create a content::ServiceWorkerNetworkProvider for this data source so
344 // we can observe its requests. 352 // we can observe its requests.
345 scoped_ptr<ServiceWorkerNetworkProvider> provider( 353 scoped_ptr<ServiceWorkerNetworkProvider> provider(
346 new ServiceWorkerNetworkProvider()); 354 new ServiceWorkerNetworkProvider());
347 355
348 // Tell the network provider about which version to load. 356 // Tell the network provider about which version to load.
349 provider->SetServiceWorkerVersionId(service_worker_version_id_); 357 provider->SetServiceWorkerVersionId(service_worker_version_id_);
(...skipping 11 matching lines...) Expand all
361 369
362 void EmbeddedWorkerContextClient::postMessageToClient( 370 void EmbeddedWorkerContextClient::postMessageToClient(
363 int client_id, 371 int client_id,
364 const blink::WebString& message, 372 const blink::WebString& message,
365 blink::WebMessagePortChannelArray* channels) { 373 blink::WebMessagePortChannelArray* channels) {
366 DCHECK(script_context_); 374 DCHECK(script_context_);
367 script_context_->PostMessageToDocument(client_id, message, 375 script_context_->PostMessageToDocument(client_id, message,
368 make_scoped_ptr(channels)); 376 make_scoped_ptr(channels));
369 } 377 }
370 378
379 void EmbeddedWorkerContextClient::postCrossOriginMessage(
380 blink::WebCrossOriginServiceWorkerClient* client,
381 const blink::WebString& message,
382 blink::WebMessagePortChannelArray* channels) {
383 DCHECK(script_context_);
384 script_context_->PostCrossOriginMessage(
385 static_cast<WebCrossOriginServiceWorkerClientImpl*>(client), message,
386 make_scoped_ptr(channels));
387 }
388
371 void EmbeddedWorkerContextClient::OnMessageToWorker( 389 void EmbeddedWorkerContextClient::OnMessageToWorker(
372 int thread_id, 390 int thread_id,
373 int embedded_worker_id, 391 int embedded_worker_id,
374 const IPC::Message& message) { 392 const IPC::Message& message) {
375 if (!script_context_) 393 if (!script_context_)
376 return; 394 return;
377 DCHECK_EQ(embedded_worker_id_, embedded_worker_id); 395 DCHECK_EQ(embedded_worker_id_, embedded_worker_id);
378 script_context_->OnMessageReceived(message); 396 script_context_->OnMessageReceived(message);
379 } 397 }
380 398
381 void EmbeddedWorkerContextClient::SendWorkerStarted() { 399 void EmbeddedWorkerContextClient::SendWorkerStarted() {
382 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread()); 400 DCHECK(worker_task_runner_->RunsTasksOnCurrentThread());
383 TRACE_EVENT_ASYNC_END0("ServiceWorker", 401 TRACE_EVENT_ASYNC_END0("ServiceWorker",
384 "EmbeddedWorkerContextClient::StartingWorkerContext", 402 "EmbeddedWorkerContextClient::StartingWorkerContext",
385 this); 403 this);
386 Send(new EmbeddedWorkerHostMsg_WorkerStarted(embedded_worker_id_)); 404 Send(new EmbeddedWorkerHostMsg_WorkerStarted(embedded_worker_id_));
387 } 405 }
388 406
389 } // namespace content 407 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698