| OLD | NEW |
| 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 #include "chrome/browser/extensions/webstore_data_fetcher.h" | 5 #include "chrome/browser/extensions/webstore_data_fetcher.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "chrome/browser/extensions/webstore_data_fetcher_delegate.h" | 9 #include "chrome/browser/extensions/webstore_data_fetcher_delegate.h" |
| 10 #include "chrome/browser/safe_json_parser.h" | 10 #include "chrome/browser/safe_json_parser.h" |
| 11 #include "chrome/common/extensions/extension_constants.h" | 11 #include "chrome/common/extensions/extension_constants.h" |
| 12 #include "extensions/common/extension_urls.h" |
| 12 #include "net/base/load_flags.h" | 13 #include "net/base/load_flags.h" |
| 13 #include "net/url_request/url_fetcher.h" | 14 #include "net/url_request/url_fetcher.h" |
| 14 #include "net/url_request/url_request_status.h" | 15 #include "net/url_request/url_request_status.h" |
| 15 | 16 |
| 17 namespace extensions { |
| 18 |
| 16 namespace { | 19 namespace { |
| 17 | 20 |
| 18 const char kInvalidWebstoreResponseError[] = "Invalid Chrome Web Store reponse"; | 21 const char kInvalidWebstoreResponseError[] = "Invalid Chrome Web Store reponse"; |
| 19 | 22 |
| 23 // Returns the URL used to get webstore data (ratings, manifest, icon URL, |
| 24 // etc.) about an extension from the webstore as JSON. |
| 25 GURL GetWebstoreItemJsonDataURL(const std::string& extension_id) { |
| 26 return GURL(GetWebstoreLaunchURL() + "/inlineinstall/detail/" + extension_id); |
| 27 } |
| 28 |
| 20 } // namespace | 29 } // namespace |
| 21 | 30 |
| 22 namespace extensions { | |
| 23 | |
| 24 WebstoreDataFetcher::WebstoreDataFetcher( | 31 WebstoreDataFetcher::WebstoreDataFetcher( |
| 25 WebstoreDataFetcherDelegate* delegate, | 32 WebstoreDataFetcherDelegate* delegate, |
| 26 net::URLRequestContextGetter* request_context, | 33 net::URLRequestContextGetter* request_context, |
| 27 const GURL& referrer_url, | 34 const GURL& referrer_url, |
| 28 const std::string webstore_item_id) | 35 const std::string webstore_item_id) |
| 29 : delegate_(delegate), | 36 : delegate_(delegate), |
| 30 request_context_(request_context), | 37 request_context_(request_context), |
| 31 referrer_url_(referrer_url), | 38 referrer_url_(referrer_url), |
| 32 id_(webstore_item_id) { | 39 id_(webstore_item_id) { |
| 33 } | 40 } |
| 34 | 41 |
| 35 WebstoreDataFetcher::~WebstoreDataFetcher() {} | 42 WebstoreDataFetcher::~WebstoreDataFetcher() {} |
| 36 | 43 |
| 37 void WebstoreDataFetcher::Start() { | 44 void WebstoreDataFetcher::Start() { |
| 38 GURL webstore_data_url(extension_urls::GetWebstoreItemJsonDataURL(id_)); | 45 GURL webstore_data_url(GetWebstoreItemJsonDataURL(id_)); |
| 39 | 46 |
| 40 webstore_data_url_fetcher_.reset(net::URLFetcher::Create( | 47 webstore_data_url_fetcher_.reset(net::URLFetcher::Create( |
| 41 webstore_data_url, net::URLFetcher::GET, this)); | 48 webstore_data_url, net::URLFetcher::GET, this)); |
| 42 webstore_data_url_fetcher_->SetRequestContext(request_context_); | 49 webstore_data_url_fetcher_->SetRequestContext(request_context_); |
| 43 webstore_data_url_fetcher_->SetReferrer(referrer_url_.spec()); | 50 webstore_data_url_fetcher_->SetReferrer(referrer_url_.spec()); |
| 44 webstore_data_url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES | | 51 webstore_data_url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES | |
| 45 net::LOAD_DISABLE_CACHE); | 52 net::LOAD_DISABLE_CACHE); |
| 46 webstore_data_url_fetcher_->Start(); | 53 webstore_data_url_fetcher_->Start(); |
| 47 } | 54 } |
| 48 | 55 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 new SafeJsonParser(webstore_json_data, | 87 new SafeJsonParser(webstore_json_data, |
| 81 base::Bind(&WebstoreDataFetcher::OnJsonParseSuccess, | 88 base::Bind(&WebstoreDataFetcher::OnJsonParseSuccess, |
| 82 AsWeakPtr()), | 89 AsWeakPtr()), |
| 83 base::Bind(&WebstoreDataFetcher::OnJsonParseFailure, | 90 base::Bind(&WebstoreDataFetcher::OnJsonParseFailure, |
| 84 AsWeakPtr())); | 91 AsWeakPtr())); |
| 85 // The parser will call us back via one of the callbacks. | 92 // The parser will call us back via one of the callbacks. |
| 86 parser->Start(); | 93 parser->Start(); |
| 87 } | 94 } |
| 88 | 95 |
| 89 } // namespace extensions | 96 } // namespace extensions |
| OLD | NEW |