Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 COMPONENTS_WEB_RESOURCE_WEB_RESOURCE_SERVICE_H_ | 5 #ifndef COMPONENTS_WEB_RESOURCE_WEB_RESOURCE_SERVICE_H_ |
| 6 #define COMPONENTS_WEB_RESOURCE_WEB_RESOURCE_SERVICE_H_ | 6 #define COMPONENTS_WEB_RESOURCE_WEB_RESOURCE_SERVICE_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 const char* disable_network_switch, | 57 const char* disable_network_switch, |
| 58 const ParseJSONCallback& parse_json_callback); | 58 const ParseJSONCallback& parse_json_callback); |
| 59 | 59 |
| 60 ~WebResourceService() override; | 60 ~WebResourceService() override; |
| 61 | 61 |
| 62 // Sleep until cache needs to be updated, but always for at least | 62 // Sleep until cache needs to be updated, but always for at least |
| 63 // |start_fetch_delay_ms| so we don't interfere with startup. | 63 // |start_fetch_delay_ms| so we don't interfere with startup. |
| 64 // Then begin updating resources. | 64 // Then begin updating resources. |
| 65 void StartAfterDelay(); | 65 void StartAfterDelay(); |
| 66 | 66 |
| 67 // Sets the ResourceRequestAllowedNotifier to make it configurable. | |
| 68 void SetResourceRequestAllowedNotifier( | |
| 69 std::unique_ptr<ResourceRequestAllowedNotifier> notifier); | |
| 70 | |
| 67 protected: | 71 protected: |
| 68 PrefService* prefs_; | 72 PrefService* prefs_; |
| 73 bool GetFetchScheduled() const; | |
| 69 | 74 |
| 70 private: | 75 private: |
| 76 friend class WebResourceServiceTest; | |
| 77 | |
| 71 // For the subclasses to process the result of a fetch. | 78 // For the subclasses to process the result of a fetch. |
| 72 virtual void Unpack(const base::DictionaryValue& parsed_json) = 0; | 79 virtual void Unpack(const base::DictionaryValue& parsed_json) = 0; |
| 73 | 80 |
| 74 // net::URLFetcherDelegate implementation: | 81 // net::URLFetcherDelegate implementation: |
| 75 void OnURLFetchComplete(const net::URLFetcher* source) override; | 82 void OnURLFetchComplete(const net::URLFetcher* source) override; |
| 76 | 83 |
| 77 // Schedules a fetch after |delay_ms| milliseconds. | 84 // Schedules a fetch after |delay_ms| milliseconds. |
| 78 void ScheduleFetch(int64_t delay_ms); | 85 void ScheduleFetch(int64_t delay_ms); |
| 79 | 86 |
| 80 // Starts fetching data from the server. | 87 // Starts fetching data from the server. |
| 81 void StartFetch(); | 88 void StartFetch(); |
| 82 | 89 |
| 83 // Set |in_fetch_| to false, clean up temp directories (in the future). | 90 // Set |in_fetch_| to false, clean up temp directories (in the future). |
| 84 void EndFetch(); | 91 void EndFetch(); |
| 85 | 92 |
| 86 // Callbacks from the JSON parser. | 93 // Callbacks from the JSON parser. |
| 87 void OnUnpackFinished(std::unique_ptr<base::Value> value); | 94 void OnUnpackFinished(std::unique_ptr<base::Value> value); |
| 88 void OnUnpackError(const std::string& error_message); | 95 void OnUnpackError(const std::string& error_message); |
| 89 | 96 |
| 90 // Implements ResourceRequestAllowedNotifier::Observer. | 97 // Implements ResourceRequestAllowedNotifier::Observer. |
| 91 void OnResourceRequestsAllowed() override; | 98 void OnResourceRequestsAllowed() override; |
| 92 | 99 |
| 93 // Helper class used to tell this service if it's allowed to make network | 100 // Helper class used to tell this service if it's allowed to make network |
| 94 // resource requests. | 101 // resource requests. |
| 95 ResourceRequestAllowedNotifier resource_request_allowed_notifier_; | 102 std::unique_ptr<ResourceRequestAllowedNotifier> |
| 103 resource_request_allowed_notifier_; | |
| 104 | |
| 105 // True if we have scheduled a fetch after start_fetch_delay_ms_ | |
| 106 // or another one in |cache_update_delay_ms_| time. Set to false | |
| 107 // before fetching starts so that next fetch is scheduled. This is | |
|
Dan Beam
2016/08/19 02:14:32
nit: wrap to 80 character lines
guptaag
2017/03/01 21:52:24
On 2016/08/19 02:14:32, Dan Beam wrote:
> nit: wra
| |
| 108 // to make sure not more than one fetch is scheduled for given point in time. | |
| 109 bool fetch_scheduled_; | |
| 96 | 110 |
| 97 // The tool that fetches the url data from the server. | 111 // The tool that fetches the url data from the server. |
| 98 std::unique_ptr<net::URLFetcher> url_fetcher_; | 112 std::unique_ptr<net::URLFetcher> url_fetcher_; |
| 99 | 113 |
| 100 // True if we are currently fetching or unpacking data. If we are asked to | 114 // True if we are currently fetching or unpacking data. If we are asked to |
| 101 // start a fetch when we are still fetching resource data, schedule another | 115 // start a fetch when we are still fetching resource data, schedule another |
| 102 // one in |cache_update_delay_ms_| time, and silently exit. | 116 // one in |cache_update_delay_ms_| time, and silently exit. |
| 103 bool in_fetch_; | 117 bool in_fetch_; |
| 104 | 118 |
| 105 // URL that hosts the web resource. | 119 // URL that hosts the web resource. |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 127 // So that we can delay our start so as not to affect start-up time; also, | 141 // So that we can delay our start so as not to affect start-up time; also, |
| 128 // so that we can schedule future cache updates. | 142 // so that we can schedule future cache updates. |
| 129 base::WeakPtrFactory<WebResourceService> weak_ptr_factory_; | 143 base::WeakPtrFactory<WebResourceService> weak_ptr_factory_; |
| 130 | 144 |
| 131 DISALLOW_COPY_AND_ASSIGN(WebResourceService); | 145 DISALLOW_COPY_AND_ASSIGN(WebResourceService); |
| 132 }; | 146 }; |
| 133 | 147 |
| 134 } // namespace web_resource | 148 } // namespace web_resource |
| 135 | 149 |
| 136 #endif // COMPONENTS_WEB_RESOURCE_WEB_RESOURCE_SERVICE_H_ | 150 #endif // COMPONENTS_WEB_RESOURCE_WEB_RESOURCE_SERVICE_H_ |
| OLD | NEW |