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

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

Issue 223333002: SW: Propagate errors/exceptions from service worker to browser (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 | Annotate | Revision Log
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/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
8 #include "content/browser/message_port_message_filter.h" 9 #include "content/browser/message_port_message_filter.h"
9 #include "content/browser/message_port_service.h" 10 #include "content/browser/message_port_service.h"
10 #include "content/browser/service_worker/embedded_worker_registry.h" 11 #include "content/browser/service_worker/embedded_worker_registry.h"
11 #include "content/browser/service_worker/service_worker_context_core.h" 12 #include "content/browser/service_worker/service_worker_context_core.h"
12 #include "content/browser/service_worker/service_worker_context_wrapper.h" 13 #include "content/browser/service_worker/service_worker_context_wrapper.h"
13 #include "content/browser/service_worker/service_worker_registration.h" 14 #include "content/browser/service_worker/service_worker_registration.h"
14 #include "content/browser/service_worker/service_worker_utils.h" 15 #include "content/browser/service_worker/service_worker_utils.h"
15 #include "content/common/service_worker/embedded_worker_messages.h" 16 #include "content/common/service_worker/embedded_worker_messages.h"
16 #include "content/common/service_worker/service_worker_messages.h" 17 #include "content/common/service_worker/service_worker_messages.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 OnAddScriptClient) 89 OnAddScriptClient)
89 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_RemoveScriptClient, 90 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_RemoveScriptClient,
90 OnRemoveScriptClient) 91 OnRemoveScriptClient)
91 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessage, OnPostMessage) 92 IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_PostMessage, OnPostMessage)
92 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStarted, 93 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStarted,
93 OnWorkerStarted) 94 OnWorkerStarted)
94 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStopped, 95 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_WorkerStopped,
95 OnWorkerStopped) 96 OnWorkerStopped)
96 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_SendMessageToBrowser, 97 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_SendMessageToBrowser,
97 OnSendMessageToBrowser) 98 OnSendMessageToBrowser)
99 IPC_MESSAGE_HANDLER(EmbeddedWorkerHostMsg_ReportException,
100 OnReportException)
98 IPC_MESSAGE_UNHANDLED(handled = false) 101 IPC_MESSAGE_UNHANDLED(handled = false)
99 IPC_END_MESSAGE_MAP() 102 IPC_END_MESSAGE_MAP()
100 103
101 return handled; 104 return handled;
102 } 105 }
103 106
104 void ServiceWorkerDispatcherHost::OnRegisterServiceWorker( 107 void ServiceWorkerDispatcherHost::OnRegisterServiceWorker(
105 int32 thread_id, 108 int32 thread_id,
106 int32 request_id, 109 int32 request_id,
107 const GURL& pattern, 110 const GURL& pattern,
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 void ServiceWorkerDispatcherHost::OnSendMessageToBrowser( 289 void ServiceWorkerDispatcherHost::OnSendMessageToBrowser(
287 int embedded_worker_id, 290 int embedded_worker_id,
288 int request_id, 291 int request_id,
289 const IPC::Message& message) { 292 const IPC::Message& message) {
290 if (!context_) 293 if (!context_)
291 return; 294 return;
292 context_->embedded_worker_registry()->OnSendMessageToBrowser( 295 context_->embedded_worker_registry()->OnSendMessageToBrowser(
293 embedded_worker_id, request_id, message); 296 embedded_worker_id, request_id, message);
294 } 297 }
295 298
299 void ServiceWorkerDispatcherHost::OnReportException(
300 int embedded_worker_id,
301 const base::string16& error_message,
302 int line_number,
303 int column_number,
304 const base::string16& source_url) {
305 // TODO(horo, nhiroki): Show the error on serviceworker-internals
306 // (http://crbug.com/359517).
307 DVLOG(2) << "[Error] " << error_message << " (" << source_url
308 << ":" << line_number << "," << column_number << ")";
309 }
310
296 void ServiceWorkerDispatcherHost::UnregistrationComplete( 311 void ServiceWorkerDispatcherHost::UnregistrationComplete(
297 int32 thread_id, 312 int32 thread_id,
298 int32 request_id, 313 int32 request_id,
299 ServiceWorkerStatusCode status) { 314 ServiceWorkerStatusCode status) {
300 if (status != SERVICE_WORKER_OK) { 315 if (status != SERVICE_WORKER_OK) {
301 SendRegistrationError(thread_id, request_id, status); 316 SendRegistrationError(thread_id, request_id, status);
302 return; 317 return;
303 } 318 }
304 319
305 Send(new ServiceWorkerMsg_ServiceWorkerUnregistered(thread_id, request_id)); 320 Send(new ServiceWorkerMsg_ServiceWorkerUnregistered(thread_id, request_id));
306 } 321 }
307 322
308 void ServiceWorkerDispatcherHost::SendRegistrationError( 323 void ServiceWorkerDispatcherHost::SendRegistrationError(
309 int32 thread_id, 324 int32 thread_id,
310 int32 request_id, 325 int32 request_id,
311 ServiceWorkerStatusCode status) { 326 ServiceWorkerStatusCode status) {
312 base::string16 error_message; 327 base::string16 error_message;
313 blink::WebServiceWorkerError::ErrorType error_type; 328 blink::WebServiceWorkerError::ErrorType error_type;
314 GetServiceWorkerRegistrationStatusResponse( 329 GetServiceWorkerRegistrationStatusResponse(
315 status, &error_type, &error_message); 330 status, &error_type, &error_message);
316 Send(new ServiceWorkerMsg_ServiceWorkerRegistrationError( 331 Send(new ServiceWorkerMsg_ServiceWorkerRegistrationError(
317 thread_id, request_id, error_type, error_message)); 332 thread_id, request_id, error_type, error_message));
318 } 333 }
319 334
320 } // namespace content 335 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698