Skip to content

Commit 9ee98d3

Browse files
committed
Fix crash in BraveStatsUpdater when computer wakes from suspend
Fix #1116
1 parent 1242c54 commit 9ee98d3

File tree

2 files changed

+11
-14
lines changed

2 files changed

+11
-14
lines changed

browser/brave_stats_updater.cc

+6-13
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "brave/browser/version_info.h"
1616
#include "net/base/load_flags.h"
1717
#include "net/base/url_util.h"
18+
#include "net/http/http_response_headers.h"
1819
#include "net/traffic_annotation/network_traffic_annotation.h"
1920
#include "services/network/public/cpp/resource_request.h"
2021
#include "services/network/public/cpp/simple_url_loader.h"
@@ -24,9 +25,6 @@ const char kBaseUpdateURL[] = "https://laptop-updates.brave.com/1/usage/brave-co
2425
// Ping the update server once an hour.
2526
const int kUpdateServerPingFrequency = 60 * 60;
2627

27-
// Maximum size of the server ping response in bytes.
28-
const int kMaxUpdateServerPingResponseSizeBytes = 1024 * 1024;
29-
3028
namespace {
3129

3230
std::string GetChannelName() {
@@ -100,19 +98,16 @@ void BraveStatsUpdater::Stop() {
10098

10199
void BraveStatsUpdater::OnSimpleLoaderComplete(
102100
std::unique_ptr<brave::BraveStatsUpdaterParams> stats_updater_params,
103-
std::unique_ptr<std::string> response_body) {
101+
scoped_refptr<net::HttpResponseHeaders> headers) {
104102
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
105103
int response_code = -1;
106-
if (simple_url_loader_->ResponseInfo() &&
107-
simple_url_loader_->ResponseInfo()->headers)
108-
response_code =
109-
simple_url_loader_->ResponseInfo()->headers->response_code();
104+
if (headers)
105+
response_code = headers->response_code();
110106
if (simple_url_loader_->NetError() != net::OK || response_code < 200 ||
111107
response_code > 299) {
112108
LOG(ERROR) << "Failed to send usage stats to update server"
113109
<< ", error: " << simple_url_loader_->NetError()
114110
<< ", response code: " << response_code
115-
<< ", payload: " << *response_body
116111
<< ", url: " << simple_url_loader_->GetFinalURL().spec();
117112
return;
118113
}
@@ -155,12 +150,10 @@ void BraveStatsUpdater::OnServerPingTimerFired() {
155150
->GetURLLoaderFactory();
156151
simple_url_loader_ = network::SimpleURLLoader::Create(
157152
std::move(resource_request), traffic_annotation);
158-
simple_url_loader_->SetAllowHttpErrorResults(true);
159-
simple_url_loader_->DownloadToString(
153+
simple_url_loader_->DownloadHeadersOnly(
160154
loader_factory,
161155
base::BindOnce(&BraveStatsUpdater::OnSimpleLoaderComplete,
162-
base::Unretained(this), std::move(stats_updater_params)),
163-
kMaxUpdateServerPingResponseSizeBytes);
156+
base::Unretained(this), std::move(stats_updater_params)));
164157
}
165158

166159
///////////////////////////////////////////////////////////////////////////////

browser/brave_stats_updater.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
class PrefRegistrySimple;
1414
class PrefService;
1515

16+
namespace net {
17+
class HttpResponseHeaders;
18+
}
19+
1620
namespace network {
1721
class SimpleURLLoader;
1822
}
@@ -33,7 +37,7 @@ class BraveStatsUpdater {
3337
// Invoked from SimpleURLLoader after download is complete.
3438
void OnSimpleLoaderComplete(
3539
std::unique_ptr<brave::BraveStatsUpdaterParams> stats_updater_params,
36-
std::unique_ptr<std::string> response_body);
40+
scoped_refptr<net::HttpResponseHeaders> headers);
3741

3842
// Invoked from RepeatingTimer when server ping timer fires.
3943
void OnServerPingTimerFired();

0 commit comments

Comments
 (0)