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

Unified Diff: components/web_resource/web_resource_service.h

Issue 1291543004: Inject JSON parsing in WebResource as a callback rather than inheritance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@webResources1
Patch Set: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/chrome_browser.gypi ('k') | components/web_resource/web_resource_service.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/web_resource/web_resource_service.h
diff --git a/components/web_resource/web_resource_service.h b/components/web_resource/web_resource_service.h
index 8cc13c877f13d09e9d2fe899c16027e48c22fd86..85cd899237a9ef23baac72706f1f637c126952c6 100644
--- a/components/web_resource/web_resource_service.h
+++ b/components/web_resource/web_resource_service.h
@@ -7,6 +7,7 @@
#include <string>
+#include "base/callback_forward.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
@@ -34,6 +35,12 @@ class WebResourceService
: public net::URLFetcherDelegate,
public ResourceRequestAllowedNotifier::Observer {
public:
+ // Callbacks for JSON parsing.
+ using SuccessCallback = base::Callback<void(scoped_ptr<base::Value>)>;
+ using ErrorCallback = base::Callback<void(const std::string&)>;
+ using ParseJSONCallback = base::Callback<
+ void(const std::string&, const SuccessCallback&, const ErrorCallback&)>;
+
// Creates a new WebResourceService.
// If |application_locale| is not empty, it will be appended as a locale
// parameter to the resource URL.
@@ -44,7 +51,8 @@ class WebResourceService
int start_fetch_delay_ms,
int cache_update_delay_ms,
net::URLRequestContextGetter* request_context,
- const char* disable_network_switch);
+ const char* disable_network_switch,
+ const ParseJSONCallback& parse_json_callback);
~WebResourceService() override;
@@ -54,22 +62,12 @@ class WebResourceService
void StartAfterDelay();
protected:
- // Callbacks for JSON parsing.
- using SuccessCallback = base::Callback<void(scoped_ptr<base::Value>)>;
- using ErrorCallback = base::Callback<void(const std::string&)>;
-
PrefService* prefs_;
private:
// For the subclasses to process the result of a fetch.
virtual void Unpack(const base::DictionaryValue& parsed_json) = 0;
- // Parses a JSON string |data| and invokes |success_callback| or
- // |error_callback|.
- virtual void ParseJSON(const std::string& data,
- const SuccessCallback& success_callback,
- const ErrorCallback& error_callback) = 0;
-
// net::URLFetcherDelegate implementation:
void OnURLFetchComplete(const net::URLFetcher* source) override;
@@ -120,6 +118,9 @@ class WebResourceService
// The request context for the resource fetch.
scoped_refptr<net::URLRequestContextGetter> request_context_;
+ // Callback used to parse JSON.
+ ParseJSONCallback parse_json_callback_;
+
// So that we can delay our start so as not to affect start-up time; also,
// so that we can schedule future cache updates.
base::WeakPtrFactory<WebResourceService> weak_ptr_factory_;
« no previous file with comments | « chrome/chrome_browser.gypi ('k') | components/web_resource/web_resource_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698