| OLD | NEW |
| 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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // timed out. | 95 // timed out. |
| 96 }; | 96 }; |
| 97 | 97 |
| 98 // Whether the version has fetch handlers or not. | 98 // Whether the version has fetch handlers or not. |
| 99 enum class FetchHandlerExistence { | 99 enum class FetchHandlerExistence { |
| 100 UNKNOWN, // This version is a new version and not installed yet. | 100 UNKNOWN, // This version is a new version and not installed yet. |
| 101 EXISTS, | 101 EXISTS, |
| 102 DOES_NOT_EXIST, | 102 DOES_NOT_EXIST, |
| 103 }; | 103 }; |
| 104 | 104 |
| 105 // Navigation Preload support status of the service worker. | |
| 106 enum class NavigationPreloadSupportStatus { | |
| 107 SUPPORTED, | |
| 108 NOT_SUPPORTED_FIELD_TRIAL_STOPPED, | |
| 109 NOT_SUPPORTED_DISABLED_BY_COMMAND_LINE, | |
| 110 NOT_SUPPORTED_NO_VALID_ORIGIN_TRIAL_TOKEN, | |
| 111 }; | |
| 112 | |
| 113 class Listener { | 105 class Listener { |
| 114 public: | 106 public: |
| 115 virtual void OnRunningStateChanged(ServiceWorkerVersion* version) {} | 107 virtual void OnRunningStateChanged(ServiceWorkerVersion* version) {} |
| 116 virtual void OnVersionStateChanged(ServiceWorkerVersion* version) {} | 108 virtual void OnVersionStateChanged(ServiceWorkerVersion* version) {} |
| 117 virtual void OnDevToolsRoutingIdChanged(ServiceWorkerVersion* version) {} | 109 virtual void OnDevToolsRoutingIdChanged(ServiceWorkerVersion* version) {} |
| 118 virtual void OnMainScriptHttpResponseInfoSet( | 110 virtual void OnMainScriptHttpResponseInfoSet( |
| 119 ServiceWorkerVersion* version) {} | 111 ServiceWorkerVersion* version) {} |
| 120 virtual void OnErrorReported(ServiceWorkerVersion* version, | 112 virtual void OnErrorReported(ServiceWorkerVersion* version, |
| 121 const base::string16& error_message, | 113 const base::string16& error_message, |
| 122 int line_number, | 114 int line_number, |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 size_t GetExternalRequestCountForTest() const { | 394 size_t GetExternalRequestCountForTest() const { |
| 403 return external_request_uuid_to_request_id_.size(); | 395 return external_request_uuid_to_request_id_.size(); |
| 404 } | 396 } |
| 405 | 397 |
| 406 // Returns the amount of time left until the request with the latest | 398 // Returns the amount of time left until the request with the latest |
| 407 // expiration time expires. | 399 // expiration time expires. |
| 408 base::TimeDelta remaining_timeout() const { | 400 base::TimeDelta remaining_timeout() const { |
| 409 return max_request_expiration_time_ - tick_clock_->NowTicks(); | 401 return max_request_expiration_time_ - tick_clock_->NowTicks(); |
| 410 } | 402 } |
| 411 | 403 |
| 412 // Returns the Navigation Preload support status of the service worker. | |
| 413 // - Origin Trial: Have an effective token. | |
| 414 // Command line | |
| 415 // Default Enable Disabled | |
| 416 // Default A A B2 | |
| 417 // Field trial Enabled A A B2 | |
| 418 // Disabled B1 A B2 | |
| 419 // | |
| 420 // - Origin Trial: No token. | |
| 421 // Command line | |
| 422 // Default Enable Disabled | |
| 423 // Default C A C | |
| 424 // Field trial Enabled C A C | |
| 425 // Disabled C A C | |
| 426 // | |
| 427 // * A = SUPPORTED | |
| 428 // B1 = NOT_SUPPORTED_FIELD_TRIAL_STOPPED | |
| 429 // B2 = NOT_SUPPORTED_DISABLED_BY_COMMAND_LINE | |
| 430 // C = NOT_SUPPORTED_NO_VALID_ORIGIN_TRIAL_TOKEN | |
| 431 // | |
| 432 // There are three types of behaviors: | |
| 433 // - A: Navigation Preload related methods and attributes are available in JS | |
| 434 // and work correctly. | |
| 435 // - B: Navigation Preload related methods and attributes are available in | |
| 436 // JS. But NavigationPreloadManager's enable, disable and setHeaderValue | |
| 437 // methods always return a rejected promise. And FetchEvent's | |
| 438 // preloadResponse attribute returns a promise which always resolve with | |
| 439 // undefined. | |
| 440 // - C: Navigation Preload related methods and attributes are not available | |
| 441 // in JS. | |
| 442 // This method returns SUPPORTED only for A case. | |
| 443 // blink::OriginTrials::serviceWorkerNavigationPreloadEnabled() returns true | |
| 444 // for both A and B case. So the methods and attributes are available in JS. | |
| 445 NavigationPreloadSupportStatus GetNavigationPreloadSupportStatus() const; | |
| 446 | |
| 447 void CountFeature(uint32_t feature); | 404 void CountFeature(uint32_t feature); |
| 448 void set_used_features(const std::set<uint32_t>& used_features) { | 405 void set_used_features(const std::set<uint32_t>& used_features) { |
| 449 used_features_ = used_features; | 406 used_features_ = used_features; |
| 450 } | 407 } |
| 451 const std::set<uint32_t>& used_features() const { return used_features_; } | 408 const std::set<uint32_t>& used_features() const { return used_features_; } |
| 452 | 409 |
| 453 private: | 410 private: |
| 454 friend class base::RefCounted<ServiceWorkerVersion>; | 411 friend class base::RefCounted<ServiceWorkerVersion>; |
| 455 friend class ServiceWorkerMetrics; | 412 friend class ServiceWorkerMetrics; |
| 456 friend class ServiceWorkerReadFromCacheJobTest; | 413 friend class ServiceWorkerReadFromCacheJobTest; |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 878 | 835 |
| 879 // At this point |this| can have been deleted, so don't do anything other | 836 // At this point |this| can have been deleted, so don't do anything other |
| 880 // than returning. | 837 // than returning. |
| 881 | 838 |
| 882 return true; | 839 return true; |
| 883 } | 840 } |
| 884 | 841 |
| 885 } // namespace content | 842 } // namespace content |
| 886 | 843 |
| 887 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_ | 844 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_ |
| OLD | NEW |