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

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

Issue 2689693003: Add a helper method to create SW SimpleEventCallbacks. (Closed)
Patch Set: Created 3 years, 10 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 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_ 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_
6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_ 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <functional> 10 #include <functional>
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 // This class corresponds to a specific version of a ServiceWorker 66 // This class corresponds to a specific version of a ServiceWorker
67 // script for a given pattern. When a script is upgraded, there may be 67 // script for a given pattern. When a script is upgraded, there may be
68 // more than one ServiceWorkerVersion "running" at a time, but only 68 // more than one ServiceWorkerVersion "running" at a time, but only
69 // one of them is activated. This class connects the actual script with a 69 // one of them is activated. This class connects the actual script with a
70 // running worker. 70 // running worker.
71 class CONTENT_EXPORT ServiceWorkerVersion 71 class CONTENT_EXPORT ServiceWorkerVersion
72 : NON_EXPORTED_BASE(public base::RefCounted<ServiceWorkerVersion>), 72 : NON_EXPORTED_BASE(public base::RefCounted<ServiceWorkerVersion>),
73 public EmbeddedWorkerInstance::Listener { 73 public EmbeddedWorkerInstance::Listener {
74 public: 74 public:
75 using StatusCallback = base::Callback<void(ServiceWorkerStatusCode)>; 75 using StatusCallback = base::Callback<void(ServiceWorkerStatusCode)>;
76 using SimpleEventCallback =
77 base::Callback<void(ServiceWorkerStatusCode, base::Time)>;
76 78
77 // Current version status; some of the status (e.g. INSTALLED and ACTIVATED) 79 // Current version status; some of the status (e.g. INSTALLED and ACTIVATED)
78 // should be persisted unlike running status. 80 // should be persisted unlike running status.
79 enum Status { 81 enum Status {
80 NEW, // The version is just created. 82 NEW, // The version is just created.
81 INSTALLING, // Install event is dispatched and being handled. 83 INSTALLING, // Install event is dispatched and being handled.
82 INSTALLED, // Install event is finished and is ready to be activated. 84 INSTALLED, // Install event is finished and is ready to be activated.
83 ACTIVATING, // Activate event is dispatched and being handled. 85 ACTIVATING, // Activate event is dispatched and being handled.
84 ACTIVATED, // Activation is finished and can run as activated. 86 ACTIVATED, // Activation is finished and can run as activated.
85 REDUNDANT, // The version is no longer running as activated, due to 87 REDUNDANT, // The version is no longer running as activated, due to
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 // TODO(mek): Use something other than a bool for event status. 270 // TODO(mek): Use something other than a bool for event status.
269 bool FinishRequest(int request_id, 271 bool FinishRequest(int request_id,
270 bool was_handled, 272 bool was_handled,
271 base::Time dispatch_event_time); 273 base::Time dispatch_event_time);
272 274
273 // Finishes an external request that was started by StartExternalRequest(). 275 // Finishes an external request that was started by StartExternalRequest().
274 // Returns false if there was an error finishing the request: e.g. the request 276 // Returns false if there was an error finishing the request: e.g. the request
275 // was not found or the worker already terminated. 277 // was not found or the worker already terminated.
276 bool FinishExternalRequest(const std::string& request_uuid); 278 bool FinishExternalRequest(const std::string& request_uuid);
277 279
280 // Creates a callback that is to be used for marking simple events dispatched
281 // through the ServiceWorkerEventDispatcher as finished for the |request_id|.
282 SimpleEventCallback CreateSimpleEventCallback(int request_id);
283
278 // This must be called when the worker is running. 284 // This must be called when the worker is running.
279 mojom::ServiceWorkerEventDispatcher* event_dispatcher() { 285 mojom::ServiceWorkerEventDispatcher* event_dispatcher() {
280 DCHECK(event_dispatcher_.is_bound()); 286 DCHECK(event_dispatcher_.is_bound());
281 return event_dispatcher_.get(); 287 return event_dispatcher_.get();
282 } 288 }
283 289
284 // Dispatches an event. If dispatching the event fails, all of the error 290 // Dispatches an event. If dispatching the event fails, all of the error
285 // callbacks that were associated with |request_ids| via StartRequest are 291 // callbacks that were associated with |request_ids| via StartRequest are
286 // called. 292 // called.
287 // Use RegisterRequestCallback or RegisterSimpleRequest to register a callback 293 // Use RegisterRequestCallback or RegisterSimpleRequest to register a callback
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 // expiration time expires. 428 // expiration time expires.
423 base::TimeDelta remaining_timeout() const { 429 base::TimeDelta remaining_timeout() const {
424 return max_request_expiration_time_ - tick_clock_->NowTicks(); 430 return max_request_expiration_time_ - tick_clock_->NowTicks();
425 } 431 }
426 432
427 // Callback function for simple events dispatched through mojo interface 433 // Callback function for simple events dispatched through mojo interface
428 // mojom::ServiceWorkerEventDispatcher, once all simple events got dispatched 434 // mojom::ServiceWorkerEventDispatcher, once all simple events got dispatched
429 // through mojo, OnSimpleEventResponse function could be removed. 435 // through mojo, OnSimpleEventResponse function could be removed.
430 void OnSimpleEventFinished(int request_id, 436 void OnSimpleEventFinished(int request_id,
431 ServiceWorkerStatusCode status, 437 ServiceWorkerStatusCode status,
432 base::Time dispatch_event_time); 438 base::Time dispatch_event_time);
shimazu 2017/02/13 00:28:52 Could you use CreateSimpleEventCallback at service
Peter Beverloo 2017/02/13 14:08:40 Done.
433 439
434 // Returns the Navigation Preload support status of the service worker. 440 // Returns the Navigation Preload support status of the service worker.
435 // - Origin Trial: Have an effective token. 441 // - Origin Trial: Have an effective token.
436 // Command line 442 // Command line
437 // Default Enable Disabled 443 // Default Enable Disabled
438 // Default A A B2 444 // Default A A B2
439 // Field trial Enabled A A B2 445 // Field trial Enabled A A B2
440 // Disabled B1 A B2 446 // Disabled B1 A B2
441 // 447 //
442 // - Origin Trial: No token. 448 // - Origin Trial: No token.
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 901
896 // At this point |this| can have been deleted, so don't do anything other 902 // At this point |this| can have been deleted, so don't do anything other
897 // than returning. 903 // than returning.
898 904
899 return true; 905 return true;
900 } 906 }
901 907
902 } // namespace content 908 } // namespace content
903 909
904 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_ 910 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698