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

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

Issue 2658603003: ServiceWorker: Enable UseCounter for ServiceWorkerGlobalScope (Closed)
Patch Set: int32_t -> uint32_t 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 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 // methods always return a rejected promise. And FetchEvent's 459 // methods always return a rejected promise. And FetchEvent's
460 // preloadResponse attribute returns a promise which always resolve with 460 // preloadResponse attribute returns a promise which always resolve with
461 // undefined. 461 // undefined.
462 // - C: Navigation Preload related methods and attributes are not available 462 // - C: Navigation Preload related methods and attributes are not available
463 // in JS. 463 // in JS.
464 // This method returns SUPPORTED only for A case. 464 // This method returns SUPPORTED only for A case.
465 // blink::OriginTrials::serviceWorkerNavigationPreloadEnabled() returns true 465 // blink::OriginTrials::serviceWorkerNavigationPreloadEnabled() returns true
466 // for both A and B case. So the methods and attributes are available in JS. 466 // for both A and B case. So the methods and attributes are available in JS.
467 NavigationPreloadSupportStatus GetNavigationPreloadSupportStatus() const; 467 NavigationPreloadSupportStatus GetNavigationPreloadSupportStatus() const;
468 468
469 void CountFeature(uint32_t feature);
470 void set_used_features(const std::set<uint32_t>& used_features) {
471 used_features_ = used_features;
472 }
473 const std::set<uint32_t>& used_features() const { return used_features_; }
474
469 private: 475 private:
470 friend class base::RefCounted<ServiceWorkerVersion>; 476 friend class base::RefCounted<ServiceWorkerVersion>;
471 friend class ServiceWorkerMetrics; 477 friend class ServiceWorkerMetrics;
472 friend class ServiceWorkerReadFromCacheJobTest; 478 friend class ServiceWorkerReadFromCacheJobTest;
473 friend class ServiceWorkerStallInStoppingTest; 479 friend class ServiceWorkerStallInStoppingTest;
474 friend class ServiceWorkerURLRequestJobTest; 480 friend class ServiceWorkerURLRequestJobTest;
475 friend class ServiceWorkerVersionBrowserTest; 481 friend class ServiceWorkerVersionBrowserTest;
476 friend class ServiceWorkerVersionTest; 482 friend class ServiceWorkerVersionTest;
477 483
478 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerControlleeRequestHandlerTest, 484 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerControlleeRequestHandlerTest,
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 // while this service worker is running (i.e., after it starts up until it 843 // while this service worker is running (i.e., after it starts up until it
838 // stops). 844 // stops).
839 std::unique_ptr<ServiceWorkerMetrics::ScopedEventRecorder> event_recorder_; 845 std::unique_ptr<ServiceWorkerMetrics::ScopedEventRecorder> event_recorder_;
840 846
841 bool stop_when_devtools_detached_ = false; 847 bool stop_when_devtools_detached_ = false;
842 848
843 // Keeps the first purpose of starting the worker for UMA. Cleared in 849 // Keeps the first purpose of starting the worker for UMA. Cleared in
844 // FinishStartWorker(). 850 // FinishStartWorker().
845 base::Optional<ServiceWorkerMetrics::EventType> start_worker_first_purpose_; 851 base::Optional<ServiceWorkerMetrics::EventType> start_worker_first_purpose_;
846 852
853 // This is the set of features that were used up until installation of this
854 // version completed, or used during the lifetime of |this|. The values must
855 // be from blink::UseCounter::Feature enum.
856 std::set<uint32_t> used_features_;
857
847 base::WeakPtrFactory<ServiceWorkerVersion> weak_factory_; 858 base::WeakPtrFactory<ServiceWorkerVersion> weak_factory_;
848 859
849 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerVersion); 860 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerVersion);
850 }; 861 };
851 862
852 template <typename ResponseMessage> 863 template <typename ResponseMessage>
853 void ServiceWorkerVersion::DispatchSimpleEvent(int request_id, 864 void ServiceWorkerVersion::DispatchSimpleEvent(int request_id,
854 const IPC::Message& message) { 865 const IPC::Message& message) {
855 RegisterSimpleRequest<ResponseMessage>(request_id); 866 RegisterSimpleRequest<ResponseMessage>(request_id);
856 DispatchEvent({request_id}, message); 867 DispatchEvent({request_id}, message);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 906
896 // At this point |this| can have been deleted, so don't do anything other 907 // At this point |this| can have been deleted, so don't do anything other
897 // than returning. 908 // than returning.
898 909
899 return true; 910 return true;
900 } 911 }
901 912
902 } // namespace content 913 } // namespace content
903 914
904 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_ 915 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698