Commit e229fad8 authored by earthdok@chromium.org's avatar earthdok@chromium.org

Switch the WebstoreDataFetcherDelegate::OnWebstoreResponseParseSuccess interface to scoped_ptr.

Fixes memory leaks.

BUG=313695
R=benwells@chromium.org
TBR=satorux@chromium.org

Review URL: https://codereview.chromium.org/51113014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232877 0039d316-1c4b-4281-b951-d872f2087c98
parent 4bf4175b
......@@ -409,28 +409,27 @@ void KioskAppData::OnWebstoreRequestFailure() {
}
void KioskAppData::OnWebstoreResponseParseSuccess(
base::DictionaryValue* webstore_data) {
scoped_ptr<base::DictionaryValue> webstore_data) {
// Takes ownership of |webstore_data|.
scoped_ptr<base::DictionaryValue> data(webstore_data);
webstore_fetcher_.reset();
std::string manifest;
if (!CheckResponseKeyValue(data.get(), kManifestKey, &manifest))
if (!CheckResponseKeyValue(webstore_data.get(), kManifestKey, &manifest))
return;
if (!CheckResponseKeyValue(data.get(), kLocalizedNameKey, &name_))
if (!CheckResponseKeyValue(webstore_data.get(), kLocalizedNameKey, &name_))
return;
std::string icon_url_string;
if (!CheckResponseKeyValue(data.get(), kIconUrlKey, &icon_url_string))
if (!CheckResponseKeyValue(webstore_data.get(), kIconUrlKey,
&icon_url_string))
return;
GURL icon_url = GURL(extension_urls::GetWebstoreLaunchURL()).Resolve(
icon_url_string);
if (!icon_url.is_valid()) {
LOG(ERROR) << "Webstore response error (icon url): "
<< ValueToString(data.get());
<< ValueToString(webstore_data.get());
OnWebstoreResponseParseFailure(kInvalidWebstoreResponseError);
return;
}
......
......@@ -96,7 +96,7 @@ class KioskAppData : public base::SupportsWeakPtr<KioskAppData>,
// extensions::WebstoreDataFetcherDelegate overrides:
virtual void OnWebstoreRequestFailure() OVERRIDE;
virtual void OnWebstoreResponseParseSuccess(
base::DictionaryValue* webstore_data) OVERRIDE;
scoped_ptr<base::DictionaryValue> webstore_data) OVERRIDE;
virtual void OnWebstoreResponseParseFailure(
const std::string& error) OVERRIDE;
......
......@@ -53,8 +53,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(
......
......@@ -21,7 +21,7 @@ class WebstoreDataFetcherDelegate {
// Invoked when the web store response parsing is successful. Delegate takes
// ownership of |webstore_data|.
virtual void OnWebstoreResponseParseSuccess(
base::DictionaryValue* webstore_data) = 0;
scoped_ptr<base::DictionaryValue> webstore_data) = 0;
// Invoked when the web store response parsing is failed.
virtual void OnWebstoreResponseParseFailure(const std::string& error) = 0;
......
......@@ -88,7 +88,7 @@ void WebstoreStandaloneInstaller::OnWebstoreRequestFailure() {
}
void WebstoreStandaloneInstaller::OnWebstoreResponseParseSuccess(
DictionaryValue* webstore_data) {
scoped_ptr<DictionaryValue> webstore_data) {
if (!CheckRequestorAlive()) {
CompleteInstall(std::string());
return;
......@@ -153,7 +153,7 @@ void WebstoreStandaloneInstaller::OnWebstoreResponseParseSuccess(
}
// Assume ownership of webstore_data.
webstore_data_.reset(webstore_data);
webstore_data_ = webstore_data.Pass();
scoped_refptr<WebstoreInstallHelper> helper =
new WebstoreInstallHelper(this,
......
......@@ -149,7 +149,7 @@ class WebstoreStandaloneInstaller
virtual void OnWebstoreRequestFailure() OVERRIDE;
virtual void OnWebstoreResponseParseSuccess(
base::DictionaryValue* webstore_data) OVERRIDE;
scoped_ptr<base::DictionaryValue> webstore_data) OVERRIDE;
virtual void OnWebstoreResponseParseFailure(
const std::string& error) OVERRIDE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment