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

Side by Side Diff: content/browser/service_worker/service_worker_dispatcher_host.cc

Issue 1171173002: [Background Sync] Use Mojo IPC to fire background sync events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove Chromium IPC for Sync from unit tests' Created 5 years, 5 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/browser/service_worker/service_worker_dispatcher_host.h" 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/profiler/scoped_tracker.h" 8 #include "base/profiler/scoped_tracker.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 : BrowserMessageFilter(kFilteredMessageClasses, 103 : BrowserMessageFilter(kFilteredMessageClasses,
104 arraysize(kFilteredMessageClasses)), 104 arraysize(kFilteredMessageClasses)),
105 render_process_id_(render_process_id), 105 render_process_id_(render_process_id),
106 message_port_message_filter_(message_port_message_filter), 106 message_port_message_filter_(message_port_message_filter),
107 resource_context_(resource_context), 107 resource_context_(resource_context),
108 channel_ready_(false) { 108 channel_ready_(false) {
109 } 109 }
110 110
111 ServiceWorkerDispatcherHost::~ServiceWorkerDispatcherHost() { 111 ServiceWorkerDispatcherHost::~ServiceWorkerDispatcherHost() {
112 if (GetContext()) { 112 if (GetContext()) {
113 GetContext()->RemoveMojoEventDispatcher(render_process_id_);
113 GetContext()->RemoveAllProviderHostsForProcess(render_process_id_); 114 GetContext()->RemoveAllProviderHostsForProcess(render_process_id_);
114 GetContext()->embedded_worker_registry()->RemoveChildProcessSender( 115 GetContext()->embedded_worker_registry()->RemoveChildProcessSender(
115 render_process_id_); 116 render_process_id_);
116 } 117 }
117 } 118 }
118 119
119 void ServiceWorkerDispatcherHost::Init( 120 void ServiceWorkerDispatcherHost::Init(
120 ServiceWorkerContextWrapper* context_wrapper) { 121 ServiceWorkerContextWrapper* context_wrapper) {
121 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { 122 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
122 BrowserThread::PostTask( 123 BrowserThread::PostTask(
123 BrowserThread::IO, FROM_HERE, 124 BrowserThread::IO, FROM_HERE,
124 base::Bind(&ServiceWorkerDispatcherHost::Init, 125 base::Bind(&ServiceWorkerDispatcherHost::Init,
125 this, make_scoped_refptr(context_wrapper))); 126 this, make_scoped_refptr(context_wrapper)));
126 return; 127 return;
127 } 128 }
128 129
129 context_wrapper_ = context_wrapper; 130 context_wrapper_ = context_wrapper;
130 if (!GetContext()) 131 if (!GetContext())
131 return; 132 return;
132 GetContext()->embedded_worker_registry()->AddChildProcessSender( 133 GetContext()->embedded_worker_registry()->AddChildProcessSender(
133 render_process_id_, this, message_port_message_filter_); 134 render_process_id_, this, message_port_message_filter_);
135
136 mojo_event_dispatcher_ =
137 make_scoped_ptr(new ServiceWorkerMojoEventDispatcher(render_process_id_));
138 GetContext()->AddMojoEventDispatcher(mojo_event_dispatcher_.get());
134 } 139 }
135 140
136 void ServiceWorkerDispatcherHost::OnFilterAdded(IPC::Sender* sender) { 141 void ServiceWorkerDispatcherHost::OnFilterAdded(IPC::Sender* sender) {
137 TRACE_EVENT0("ServiceWorker", 142 TRACE_EVENT0("ServiceWorker",
138 "ServiceWorkerDispatcherHost::OnFilterAdded"); 143 "ServiceWorkerDispatcherHost::OnFilterAdded");
139 channel_ready_ = true; 144 channel_ready_ = true;
140 std::vector<IPC::Message*> messages; 145 std::vector<IPC::Message*> messages;
141 pending_messages_.release(&messages); 146 pending_messages_.release(&messages);
142 for (size_t i = 0; i < messages.size(); ++i) { 147 for (size_t i = 0; i < messages.size(); ++i) {
143 BrowserMessageFilter::Send(messages[i]); 148 BrowserMessageFilter::Send(messages[i]);
(...skipping 1084 matching lines...) Expand 10 before | Expand all | Expand 10 after
1228 if (!handle) { 1233 if (!handle) {
1229 bad_message::ReceivedBadMessage(this, 1234 bad_message::ReceivedBadMessage(this,
1230 bad_message::SWDH_TERMINATE_BAD_HANDLE); 1235 bad_message::SWDH_TERMINATE_BAD_HANDLE);
1231 return; 1236 return;
1232 } 1237 }
1233 handle->version()->StopWorker( 1238 handle->version()->StopWorker(
1234 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); 1239 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
1235 } 1240 }
1236 1241
1237 } // namespace content 1242 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698