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

Unified Diff: components/web_resource/web_resource_service.cc

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
Index: components/web_resource/web_resource_service.cc
diff --git a/components/web_resource/web_resource_service.cc b/components/web_resource/web_resource_service.cc
index b2d0e4b67da27d84a19ccae9370c4888da95f8e0..1afd22eef4ead5c51edbd832b065d600cb0439dc 100644
--- a/components/web_resource/web_resource_service.cc
+++ b/components/web_resource/web_resource_service.cc
@@ -39,7 +39,8 @@ WebResourceService::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)
: prefs_(prefs),
resource_request_allowed_notifier_(prefs, disable_network_switch),
in_fetch_(false),
@@ -49,6 +50,7 @@ WebResourceService::WebResourceService(
start_fetch_delay_ms_(start_fetch_delay_ms),
cache_update_delay_ms_(cache_update_delay_ms),
request_context_(request_context),
+ parse_json_callback_(parse_json_callback),
weak_ptr_factory_(this) {
resource_request_allowed_notifier_.Init(this);
DCHECK(prefs);
@@ -78,15 +80,17 @@ void WebResourceService::OnURLFetchComplete(const net::URLFetcher* source) {
if (data.empty() || data == "{}") {
OnUnpackFinished(make_scoped_ptr(new base::DictionaryValue()).Pass());
} else {
- ParseJSON(data, base::Bind(&WebResourceService::OnUnpackFinished,
- weak_ptr_factory_.GetWeakPtr()),
- base::Bind(&WebResourceService::OnUnpackError,
- weak_ptr_factory_.GetWeakPtr()));
+ parse_json_callback_.Run(data,
+ base::Bind(&WebResourceService::OnUnpackFinished,
+ weak_ptr_factory_.GetWeakPtr()),
+ base::Bind(&WebResourceService::OnUnpackError,
+ weak_ptr_factory_.GetWeakPtr()));
}
} else {
// Don't parse data if attempt to download was unsuccessful.
// Stop loading new web resource data, and silently exit.
- // We do not call ParseJSON(), so we need to call EndFetch() ourselves.
+ // We do not call parse_json_callback_, so we need to call EndFetch()
+ // ourselves.
EndFetch();
}
}
« no previous file with comments | « components/web_resource/web_resource_service.h ('k') | ios/chrome/browser/web_resource/ios_web_resource_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698