Skip to content

Commit 469d7e3

Browse files
committed
P3A: Report sent from the json format submission.
Prevously, we marked P3A reports as sent when the protobuf format message was delivered successfully. When we started sending only json format messages, this led to messages being queued for retrial endlessly, greatly delaying submission. Move the completetion callback to the new json log uploader. Now that we're sending json-format messages to both P3A and P2A endpoints, we can consider that the completion of the task and only send protobuf messages incidentally. Fixes brave/brave-browser#23754
1 parent 92c27e6 commit 469d7e3

5 files changed

+24
-24
lines changed

components/p3a/brave_p3a_new_uploader.cc

+12-2
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,12 @@ net::NetworkTrafficAnnotationTag GetNetworkTrafficAnnotation(
7272
BraveP3ANewUploader::BraveP3ANewUploader(
7373
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
7474
const GURL& p3a_endpoint,
75-
const GURL& p2a_endpoint)
75+
const GURL& p2a_endpoint,
76+
const UploadCallback& on_upload_complete)
7677
: url_loader_factory_(url_loader_factory),
7778
p3a_endpoint_(p3a_endpoint),
78-
p2a_endpoint_(p2a_endpoint) {}
79+
p2a_endpoint_(p2a_endpoint),
80+
on_upload_complete_(on_upload_complete) {}
7981

8082
BraveP3ANewUploader::~BraveP3ANewUploader() = default;
8183

@@ -107,7 +109,15 @@ void BraveP3ANewUploader::UploadLog(const std::string& compressed_log_data,
107109

108110
void BraveP3ANewUploader::OnUploadComplete(
109111
std::unique_ptr<std::string> response_body) {
112+
int response_code = -1;
113+
if (url_loader_->ResponseInfo() && url_loader_->ResponseInfo()->headers)
114+
response_code = url_loader_->ResponseInfo()->headers->response_code();
115+
116+
int error_code = url_loader_->NetError();
117+
118+
bool was_https = url_loader_->GetFinalURL().SchemeIs(url::kHttpsScheme);
110119
url_loader_.reset();
120+
on_upload_complete_.Run(response_code, error_code, was_https);
111121
}
112122

113123
} // namespace brave

components/p3a/brave_p3a_new_uploader.h

+6-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include <memory>
1010
#include <string>
1111

12+
#include "base/callback.h"
1213
#include "base/memory/ref_counted.h"
1314
#include "url/gurl.h"
1415

@@ -25,10 +26,13 @@ namespace brave {
2526
// testing the new endpoint).
2627
class BraveP3ANewUploader {
2728
public:
29+
using UploadCallback = base::RepeatingCallback<void(int, int, bool)>;
30+
2831
BraveP3ANewUploader(
2932
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
3033
const GURL& p3a_endpoint,
31-
const GURL& p2a_endpoint);
34+
const GURL& p2a_endpoint,
35+
const UploadCallback& on_upload_complete);
3236

3337
BraveP3ANewUploader(const BraveP3ANewUploader&) = delete;
3438
BraveP3ANewUploader& operator=(const BraveP3ANewUploader&) = delete;
@@ -45,6 +49,7 @@ class BraveP3ANewUploader {
4549
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
4650
const GURL p3a_endpoint_;
4751
const GURL p2a_endpoint_;
52+
const UploadCallback on_upload_complete_;
4853
std::unique_ptr<network::SimpleURLLoader> url_loader_;
4954
};
5055

components/p3a/brave_p3a_service.cc

+3-3
Original file line numberDiff line numberDiff line change
@@ -167,11 +167,11 @@ void BraveP3AService::Init(
167167

168168
// Init other components.
169169
uploader_ = std::make_unique<BraveP3AUploader>(
170-
url_loader_factory, upload_server_url_, GURL(kP2AServerUrl),
171-
base::BindRepeating(&BraveP3AService::OnLogUploadComplete, this));
170+
url_loader_factory, upload_server_url_, GURL(kP2AServerUrl));
172171

173172
new_uploader_ = std::make_unique<BraveP3ANewUploader>(
174-
url_loader_factory, GURL(kP3AJsonServerUrl), GURL(kP2AJsonServerUrl));
173+
url_loader_factory, GURL(kP3AJsonServerUrl), GURL(kP2AJsonServerUrl),
174+
base::BindRepeating(&BraveP3AService::OnLogUploadComplete, this));
175175

176176
upload_scheduler_ = std::make_unique<BraveP3AScheduler>(
177177
base::BindRepeating(&BraveP3AService::StartScheduledUpload, this),

components/p3a/brave_p3a_uploader.cc

+2-12
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,10 @@ net::NetworkTrafficAnnotationTag GetNetworkTrafficAnnotation(
7272
BraveP3AUploader::BraveP3AUploader(
7373
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
7474
const GURL& p3a_endpoint,
75-
const GURL& p2a_endpoint,
76-
const UploadCallback& on_upload_complete)
75+
const GURL& p2a_endpoint)
7776
: url_loader_factory_(url_loader_factory),
7877
p3a_endpoint_(p3a_endpoint),
79-
p2a_endpoint_(p2a_endpoint),
80-
on_upload_complete_(on_upload_complete) {}
78+
p2a_endpoint_(p2a_endpoint) {}
8179

8280
BraveP3AUploader::~BraveP3AUploader() = default;
8381

@@ -112,15 +110,7 @@ void BraveP3AUploader::UploadLog(const std::string& compressed_log_data,
112110

113111
void BraveP3AUploader::OnUploadComplete(
114112
std::unique_ptr<std::string> response_body) {
115-
int response_code = -1;
116-
if (url_loader_->ResponseInfo() && url_loader_->ResponseInfo()->headers)
117-
response_code = url_loader_->ResponseInfo()->headers->response_code();
118-
119-
int error_code = url_loader_->NetError();
120-
121-
bool was_https = url_loader_->GetFinalURL().SchemeIs(url::kHttpsScheme);
122113
url_loader_.reset();
123-
on_upload_complete_.Run(response_code, error_code, was_https);
124114
}
125115

126116
} // namespace brave

components/p3a/brave_p3a_uploader.h

+1-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
#include <memory>
1010
#include <string>
1111

12-
#include "base/callback.h"
1312
#include "base/memory/ref_counted.h"
1413
#include "url/gurl.h"
1514

@@ -22,13 +21,10 @@ namespace brave {
2221

2322
class BraveP3AUploader {
2423
public:
25-
using UploadCallback = base::RepeatingCallback<void(int, int, bool)>;
26-
2724
BraveP3AUploader(
2825
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
2926
const GURL& p3a_endpoint,
30-
const GURL& p2a_endpoint,
31-
const UploadCallback& on_upload_complete);
27+
const GURL& p2a_endpoint);
3228

3329
BraveP3AUploader(const BraveP3AUploader&) = delete;
3430
BraveP3AUploader& operator=(const BraveP3AUploader&) = delete;
@@ -45,7 +41,6 @@ class BraveP3AUploader {
4541
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
4642
const GURL p3a_endpoint_;
4743
const GURL p2a_endpoint_;
48-
const UploadCallback on_upload_complete_;
4944
std::unique_ptr<network::SimpleURLLoader> url_loader_;
5045
};
5146

0 commit comments

Comments
 (0)