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

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

Issue 205563006: Add a status code to install event handled message from Service Worker (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | 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_version.h" 5 #include "content/browser/service_worker/service_worker_version.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "content/browser/service_worker/embedded_worker_instance.h" 8 #include "content/browser/service_worker/embedded_worker_instance.h"
9 #include "content/browser/service_worker/embedded_worker_registry.h" 9 #include "content/browser/service_worker/embedded_worker_registry.h"
10 #include "content/browser/service_worker/service_worker_context_core.h" 10 #include "content/browser/service_worker/service_worker_context_core.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 NOTREACHED() << "Got unexpected response: " << message.type() 78 NOTREACHED() << "Got unexpected response: " << message.type()
79 << " expected:" << expected_message_type; 79 << " expected:" << expected_message_type;
80 version->SetStatus(next_status_on_error); 80 version->SetStatus(next_status_on_error);
81 callback.Run(SERVICE_WORKER_ERROR_FAILED); 81 callback.Run(SERVICE_WORKER_ERROR_FAILED);
82 return; 82 return;
83 } 83 }
84 version->SetStatus(next_status_on_success); 84 version->SetStatus(next_status_on_success);
85 callback.Run(SERVICE_WORKER_OK); 85 callback.Run(SERVICE_WORKER_OK);
86 } 86 }
87 87
88 void HandleInstallEventFinished(base::WeakPtr<ServiceWorkerVersion> version,
kinuko 2014/03/25 11:16:49 I think we'll want to use this too for activate ev
falken 2014/03/26 07:53:56 Done.
89 const StatusCallback& callback,
90 ServiceWorkerStatusCode status,
91 const IPC::Message& message) {
92 if (status != SERVICE_WORKER_OK) {
93 version->SetStatus(ServiceWorkerVersion::NEW);
94 callback.Run(status);
95 return;
96 }
97 if (message.type() != ServiceWorkerHostMsg_InstallEventFinished::ID) {
98 NOTREACHED() << "Got unexpected response for InstallEvent: "
99 << message.type();
100 version->SetStatus(ServiceWorkerVersion::NEW);
101 callback.Run(SERVICE_WORKER_ERROR_FAILED);
102 return;
103 }
104 Tuple1<ServiceWorkerInstallEventResult> result;
105 ServiceWorkerHostMsg_InstallEventFinished::Read(&message, &result);
106 if (result.a == SERVICE_WORKER_INSTALL_EVENT_RESULT_REJECTED)
107 status = SERVICE_WORKER_ERROR_INSTALL_WORKER_FAILED;
108 callback.Run(status);
109 }
110
88 void HandleFetchResponse(const ServiceWorkerVersion::FetchCallback& callback, 111 void HandleFetchResponse(const ServiceWorkerVersion::FetchCallback& callback,
89 ServiceWorkerStatusCode status, 112 ServiceWorkerStatusCode status,
90 const IPC::Message& message) { 113 const IPC::Message& message) {
91 if (status != SERVICE_WORKER_OK) { 114 if (status != SERVICE_WORKER_OK) {
92 callback.Run(status, 115 callback.Run(status,
93 SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, 116 SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK,
94 ServiceWorkerResponse()); 117 ServiceWorkerResponse());
95 return; 118 return;
96 } 119 }
97 if (message.type() != ServiceWorkerHostMsg_FetchEventFinished::ID) { 120 if (message.type() != ServiceWorkerHostMsg_FetchEventFinished::ID) {
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 } 269 }
247 } 270 }
248 271
249 void ServiceWorkerVersion::DispatchInstallEvent( 272 void ServiceWorkerVersion::DispatchInstallEvent(
250 int active_version_embedded_worker_id, 273 int active_version_embedded_worker_id,
251 const StatusCallback& callback) { 274 const StatusCallback& callback) {
252 DCHECK_EQ(NEW, status()) << status(); 275 DCHECK_EQ(NEW, status()) << status();
253 SetStatus(INSTALLING); 276 SetStatus(INSTALLING);
254 SendMessageAndRegisterCallback( 277 SendMessageAndRegisterCallback(
255 ServiceWorkerMsg_InstallEvent(active_version_embedded_worker_id), 278 ServiceWorkerMsg_InstallEvent(active_version_embedded_worker_id),
256 base::Bind(&HandleEventFinished, weak_factory_.GetWeakPtr(), 279 base::Bind(
257 ServiceWorkerHostMsg_InstallEventFinished::ID, 280 &HandleInstallEventFinished, weak_factory_.GetWeakPtr(), callback));
258 callback, INSTALLED, NEW));
259 } 281 }
260 282
261 void ServiceWorkerVersion::DispatchActivateEvent( 283 void ServiceWorkerVersion::DispatchActivateEvent(
262 const StatusCallback& callback) { 284 const StatusCallback& callback) {
263 DCHECK_EQ(INSTALLED, status()) << status(); 285 DCHECK_EQ(INSTALLED, status()) << status();
264 SetStatus(ACTIVATING); 286 SetStatus(ACTIVATING);
265 // TODO(kinuko): Implement. 287 // TODO(kinuko): Implement.
266 NOTIMPLEMENTED(); 288 NOTIMPLEMENTED();
267 RunSoon(base::Bind(&HandleEventFinished, weak_factory_.GetWeakPtr(), 289 RunSoon(base::Bind(&HandleEventFinished, weak_factory_.GetWeakPtr(),
268 -1 /* dummy message_id */, callback, ACTIVE, INSTALLED, 290 -1 /* dummy message_id */, callback, ACTIVE, INSTALLED,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 if (callback) { 343 if (callback) {
322 callback->Run(SERVICE_WORKER_OK, message); 344 callback->Run(SERVICE_WORKER_OK, message);
323 message_callbacks_.Remove(request_id); 345 message_callbacks_.Remove(request_id);
324 return; 346 return;
325 } 347 }
326 NOTREACHED() << "Got unexpected message: " << request_id 348 NOTREACHED() << "Got unexpected message: " << request_id
327 << " " << message.type(); 349 << " " << message.type();
328 } 350 }
329 351
330 } // namespace content 352 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698