Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / webstore_data_fetcher.cc
index 5d5e525..0300519 100644 (file)
@@ -8,7 +8,7 @@
 #include "base/values.h"
 #include "chrome/browser/extensions/webstore_data_fetcher_delegate.h"
 #include "chrome/browser/safe_json_parser.h"
-#include "chrome/common/extensions/extension_constants.h"
+#include "extensions/common/extension_urls.h"
 #include "net/base/load_flags.h"
 #include "net/url_request/url_fetcher.h"
 #include "net/url_request/url_request_status.h"
@@ -29,7 +29,8 @@ WebstoreDataFetcher::WebstoreDataFetcher(
     : delegate_(delegate),
       request_context_(request_context),
       referrer_url_(referrer_url),
-      id_(webstore_item_id) {
+      id_(webstore_item_id),
+      max_auto_retries_(0) {
 }
 
 WebstoreDataFetcher::~WebstoreDataFetcher() {}
@@ -43,6 +44,11 @@ void WebstoreDataFetcher::Start() {
   webstore_data_url_fetcher_->SetReferrer(referrer_url_.spec());
   webstore_data_url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES |
                                            net::LOAD_DISABLE_CACHE);
+  if (max_auto_retries_ > 0) {
+    webstore_data_url_fetcher_->SetMaxRetriesOn5xx(max_auto_retries_);
+    webstore_data_url_fetcher_->SetAutomaticallyRetryOnNetworkChanges(
+        max_auto_retries_);
+  }
   webstore_data_url_fetcher_->Start();
 }
 
@@ -53,8 +59,8 @@ void WebstoreDataFetcher::OnJsonParseSuccess(
     return;
   }
 
-  delegate_->OnWebstoreResponseParseSuccess(
-      static_cast<base::DictionaryValue*>(parsed_json.release()));
+  delegate_->OnWebstoreResponseParseSuccess(scoped_ptr<base::DictionaryValue>(
+      static_cast<base::DictionaryValue*>(parsed_json.release())));
 }
 
 void WebstoreDataFetcher::OnJsonParseFailure(