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

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

Issue 1002393005: Revert of ServiceWorker: Introduce SWMessageSender in order to mock IPC messaging (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix patch apply failure Created 5 years, 9 months 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/lazy_instance.h" 10 #include "base/lazy_instance.h"
11 #include "base/message_loop/message_loop_proxy.h" 11 #include "base/message_loop/message_loop_proxy.h"
12 #include "base/pickle.h" 12 #include "base/pickle.h"
13 #include "base/strings/string16.h" 13 #include "base/strings/string16.h"
14 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
15 #include "base/thread_task_runner_handle.h" 15 #include "base/thread_task_runner_handle.h"
16 #include "base/threading/thread_local.h" 16 #include "base/threading/thread_local.h"
17 #include "base/trace_event/trace_event.h" 17 #include "base/trace_event/trace_event.h"
18 #include "content/child/request_extra_data.h" 18 #include "content/child/request_extra_data.h"
19 #include "content/child/service_worker/service_worker_dispatcher.h" 19 #include "content/child/service_worker/service_worker_dispatcher.h"
20 #include "content/child/service_worker/service_worker_message_sender.h"
21 #include "content/child/service_worker/service_worker_network_provider.h" 20 #include "content/child/service_worker/service_worker_network_provider.h"
22 #include "content/child/service_worker/service_worker_provider_context.h" 21 #include "content/child/service_worker/service_worker_provider_context.h"
23 #include "content/child/service_worker/service_worker_registration_handle_refere nce.h" 22 #include "content/child/service_worker/service_worker_registration_handle_refere nce.h"
24 #include "content/child/service_worker/web_service_worker_impl.h" 23 #include "content/child/service_worker/web_service_worker_impl.h"
25 #include "content/child/service_worker/web_service_worker_provider_impl.h" 24 #include "content/child/service_worker/web_service_worker_provider_impl.h"
26 #include "content/child/service_worker/web_service_worker_registration_impl.h" 25 #include "content/child/service_worker/web_service_worker_registration_impl.h"
27 #include "content/child/thread_safe_sender.h" 26 #include "content/child/thread_safe_sender.h"
28 #include "content/child/worker_task_runner.h" 27 #include "content/child/worker_task_runner.h"
29 #include "content/common/devtools_messages.h" 28 #include "content/common/devtools_messages.h"
30 #include "content/common/service_worker/embedded_worker_messages.h" 29 #include "content/common/service_worker/embedded_worker_messages.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 int embedded_worker_id, 98 int embedded_worker_id,
100 int64 service_worker_version_id, 99 int64 service_worker_version_id,
101 const GURL& service_worker_scope, 100 const GURL& service_worker_scope,
102 const GURL& script_url, 101 const GURL& script_url,
103 int worker_devtools_agent_route_id) 102 int worker_devtools_agent_route_id)
104 : embedded_worker_id_(embedded_worker_id), 103 : embedded_worker_id_(embedded_worker_id),
105 service_worker_version_id_(service_worker_version_id), 104 service_worker_version_id_(service_worker_version_id),
106 service_worker_scope_(service_worker_scope), 105 service_worker_scope_(service_worker_scope),
107 script_url_(script_url), 106 script_url_(script_url),
108 worker_devtools_agent_route_id_(worker_devtools_agent_route_id), 107 worker_devtools_agent_route_id_(worker_devtools_agent_route_id),
109 sender_(new ServiceWorkerMessageSender( 108 sender_(ChildThreadImpl::current()->thread_safe_sender()),
110 ChildThreadImpl::current()->thread_safe_sender())),
111 main_thread_task_runner_(RenderThreadImpl::current()->GetTaskRunner()), 109 main_thread_task_runner_(RenderThreadImpl::current()->GetTaskRunner()),
112 weak_factory_(this) { 110 weak_factory_(this) {
113 TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker", 111 TRACE_EVENT_ASYNC_BEGIN0("ServiceWorker",
114 "EmbeddedWorkerContextClient::StartingWorkerContext", 112 "EmbeddedWorkerContextClient::StartingWorkerContext",
115 this); 113 this);
116 TRACE_EVENT_ASYNC_STEP_INTO0( 114 TRACE_EVENT_ASYNC_STEP_INTO0(
117 "ServiceWorker", 115 "ServiceWorker",
118 "EmbeddedWorkerContextClient::StartingWorkerContext", 116 "EmbeddedWorkerContextClient::StartingWorkerContext",
119 this, 117 this,
120 "PrepareWorker"); 118 "PrepareWorker");
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 275
278 Send(new EmbeddedWorkerHostMsg_ReportConsoleMessage( 276 Send(new EmbeddedWorkerHostMsg_ReportConsoleMessage(
279 embedded_worker_id_, params)); 277 embedded_worker_id_, params));
280 } 278 }
281 279
282 void EmbeddedWorkerContextClient::sendDevToolsMessage( 280 void EmbeddedWorkerContextClient::sendDevToolsMessage(
283 int call_id, 281 int call_id,
284 const blink::WebString& message, 282 const blink::WebString& message,
285 const blink::WebString& state_cookie) { 283 const blink::WebString& state_cookie) {
286 DevToolsAgent::SendChunkedProtocolMessage( 284 DevToolsAgent::SendChunkedProtocolMessage(
287 sender_->thread_safe_sender(), worker_devtools_agent_route_id_, 285 sender_.get(), worker_devtools_agent_route_id_,
288 call_id, message.utf8(), state_cookie.utf8()); 286 call_id, message.utf8(), state_cookie.utf8());
289 } 287 }
290 288
291 void EmbeddedWorkerContextClient::didHandleActivateEvent( 289 void EmbeddedWorkerContextClient::didHandleActivateEvent(
292 int request_id, 290 int request_id,
293 blink::WebServiceWorkerEventResult result) { 291 blink::WebServiceWorkerEventResult result) {
294 DCHECK(script_context_); 292 DCHECK(script_context_);
295 script_context_->DidHandleActivateEvent(request_id, result); 293 script_context_->DidHandleActivateEvent(request_id, result);
296 } 294 }
297 295
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 return new WebServiceWorkerNetworkProviderImpl(); 379 return new WebServiceWorkerNetworkProviderImpl();
382 } 380 }
383 381
384 blink::WebServiceWorkerProvider* 382 blink::WebServiceWorkerProvider*
385 EmbeddedWorkerContextClient::createServiceWorkerProvider() { 383 EmbeddedWorkerContextClient::createServiceWorkerProvider() {
386 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread()); 384 DCHECK(main_thread_task_runner_->RunsTasksOnCurrentThread());
387 DCHECK(provider_context_); 385 DCHECK(provider_context_);
388 386
389 // Blink is responsible for deleting the returned object. 387 // Blink is responsible for deleting the returned object.
390 return new WebServiceWorkerProviderImpl( 388 return new WebServiceWorkerProviderImpl(
391 sender()->thread_safe_sender(), provider_context_.get()); 389 thread_safe_sender(), provider_context_.get());
392 } 390 }
393 391
394 void EmbeddedWorkerContextClient::postMessageToClient( 392 void EmbeddedWorkerContextClient::postMessageToClient(
395 const blink::WebString& uuid, 393 const blink::WebString& uuid,
396 const blink::WebString& message, 394 const blink::WebString& message,
397 blink::WebMessagePortChannelArray* channels) { 395 blink::WebMessagePortChannelArray* channels) {
398 DCHECK(script_context_); 396 DCHECK(script_context_);
399 script_context_->PostMessageToClient( 397 script_context_->PostMessageToClient(
400 uuid, message, make_scoped_ptr(channels)); 398 uuid, message, make_scoped_ptr(channels));
401 } 399 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 DCHECK(script_context_); 450 DCHECK(script_context_);
453 451
454 ServiceWorkerRegistrationObjectInfo info; 452 ServiceWorkerRegistrationObjectInfo info;
455 ServiceWorkerVersionAttributes attrs; 453 ServiceWorkerVersionAttributes attrs;
456 bool found = 454 bool found =
457 provider_context_->GetRegistrationInfoAndVersionAttributes(&info, &attrs); 455 provider_context_->GetRegistrationInfoAndVersionAttributes(&info, &attrs);
458 if (!found) 456 if (!found)
459 return; // Cannot be associated with a registration in some tests. 457 return; // Cannot be associated with a registration in some tests.
460 458
461 ServiceWorkerDispatcher* dispatcher = 459 ServiceWorkerDispatcher* dispatcher =
462 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance(sender()); 460 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance(
461 thread_safe_sender());
463 462
464 // Register a registration and its version attributes with the dispatcher 463 // Register a registration and its version attributes with the dispatcher
465 // living on the worker thread. 464 // living on the worker thread.
466 scoped_ptr<WebServiceWorkerRegistrationImpl> registration( 465 scoped_ptr<WebServiceWorkerRegistrationImpl> registration(
467 dispatcher->CreateServiceWorkerRegistration(info, false)); 466 dispatcher->CreateServiceWorkerRegistration(info, false));
468 registration->SetInstalling( 467 registration->SetInstalling(
469 dispatcher->GetServiceWorker(attrs.installing, false)); 468 dispatcher->GetServiceWorker(attrs.installing, false));
470 registration->SetWaiting( 469 registration->SetWaiting(
471 dispatcher->GetServiceWorker(attrs.waiting, false)); 470 dispatcher->GetServiceWorker(attrs.waiting, false));
472 registration->SetActive( 471 registration->SetActive(
473 dispatcher->GetServiceWorker(attrs.active, false)); 472 dispatcher->GetServiceWorker(attrs.active, false));
474 473
475 script_context_->SetRegistrationInServiceWorkerGlobalScope( 474 script_context_->SetRegistrationInServiceWorkerGlobalScope(
476 registration.Pass()); 475 registration.Pass());
477 } 476 }
478 477
479 } // namespace content 478 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698