Commit 602bec12 authored by Vasilii Sukhanov's avatar Vasilii Sukhanov Committed by Commit Bot

Use WeakPtr for BrandcodeConfigFetcher.

The class uses interprocess communication and doesn't have to survive the
parsing result.

Bug: 1023606
Change-Id: I3828b9da3395eee73fd371450349bd062647642a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1911793Reviewed-by: default avatarBalazs Engedy <engedy@chromium.org>
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#714877}
parent 620415db
...@@ -54,7 +54,7 @@ BrandcodeConfigFetcher::BrandcodeConfigFetcher( ...@@ -54,7 +54,7 @@ BrandcodeConfigFetcher::BrandcodeConfigFetcher(
const FetchCallback& callback, const FetchCallback& callback,
const GURL& url, const GURL& url,
const std::string& brandcode) const std::string& brandcode)
: fetch_callback_(callback) { : fetch_callback_(callback), weak_ptr_factory_(this) {
DCHECK(!brandcode.empty()); DCHECK(!brandcode.empty());
net::NetworkTrafficAnnotationTag traffic_annotation = net::NetworkTrafficAnnotationTag traffic_annotation =
net::DefineNetworkTrafficAnnotation("brandcode_config", R"( net::DefineNetworkTrafficAnnotation("brandcode_config", R"(
...@@ -91,7 +91,7 @@ BrandcodeConfigFetcher::BrandcodeConfigFetcher( ...@@ -91,7 +91,7 @@ BrandcodeConfigFetcher::BrandcodeConfigFetcher(
simple_url_loader_->DownloadToStringOfUnboundedSizeUntilCrashAndDie( simple_url_loader_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
url_loader_factory, url_loader_factory,
base::BindOnce(&BrandcodeConfigFetcher::OnSimpleLoaderComplete, base::BindOnce(&BrandcodeConfigFetcher::OnSimpleLoaderComplete,
base::Unretained(this))); weak_ptr_factory_.GetWeakPtr()));
// Abort the download attempt if it takes too long. // Abort the download attempt if it takes too long.
download_timer_.Start(FROM_HERE, download_timer_.Start(FROM_HERE,
base::TimeDelta::FromSeconds(kDownloadTimeoutSec), base::TimeDelta::FromSeconds(kDownloadTimeoutSec),
...@@ -112,7 +112,7 @@ void BrandcodeConfigFetcher::OnSimpleLoaderComplete( ...@@ -112,7 +112,7 @@ void BrandcodeConfigFetcher::OnSimpleLoaderComplete(
data_decoder::DataDecoder::ParseXmlIsolated( data_decoder::DataDecoder::ParseXmlIsolated(
*response_body, *response_body,
base::BindOnce(&BrandcodeConfigFetcher::OnXmlConfigParsed, base::BindOnce(&BrandcodeConfigFetcher::OnXmlConfigParsed,
base::Unretained(this))); weak_ptr_factory_.GetWeakPtr()));
} else { } else {
std::move(fetch_callback_).Run(); std::move(fetch_callback_).Run();
} }
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/timer/timer.h" #include "base/timer/timer.h"
#include "services/data_decoder/public/cpp/data_decoder.h" #include "services/data_decoder/public/cpp/data_decoder.h"
...@@ -65,6 +66,8 @@ class BrandcodeConfigFetcher { ...@@ -65,6 +66,8 @@ class BrandcodeConfigFetcher {
// Fetched settings. // Fetched settings.
std::unique_ptr<BrandcodedDefaultSettings> default_settings_; std::unique_ptr<BrandcodedDefaultSettings> default_settings_;
base::WeakPtrFactory<BrandcodeConfigFetcher> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(BrandcodeConfigFetcher); DISALLOW_COPY_AND_ASSIGN(BrandcodeConfigFetcher);
}; };
......
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