Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: chrome/browser/safe_browsing/mock_permission_report_sender.cc

Issue 2250163003: Permission Action Reporting: Fix flaky Browsertest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/safe_browsing/mock_permission_report_sender.h" 5 #include "chrome/browser/safe_browsing/mock_permission_report_sender.h"
6 6
7 #include "base/run_loop.h"
8
7 namespace safe_browsing { 9 namespace safe_browsing {
8 10
9 MockPermissionReportSender::MockPermissionReportSender() 11 MockPermissionReportSender::MockPermissionReportSender()
10 : net::ReportSender(nullptr, DO_NOT_SEND_COOKIES) { 12 : net::ReportSender(nullptr, DO_NOT_SEND_COOKIES) {
13 DCHECK(thread_checker_.CalledOnValidThread());
Sam McNally 2016/08/17 07:52:38 Using a ThreadChecker in a class that's shared amo
kcarattini 2016/08/19 03:59:46 Done.
11 number_of_reports_ = 0; 14 number_of_reports_ = 0;
12 } 15 }
13 16
14 MockPermissionReportSender::~MockPermissionReportSender() {} 17 MockPermissionReportSender::~MockPermissionReportSender() {
18 DCHECK(thread_checker_.CalledOnValidThread());
19 }
15 20
16 void MockPermissionReportSender::Send(const GURL& report_uri, 21 void MockPermissionReportSender::Send(const GURL& report_uri,
17 const std::string& report) { 22 const std::string& report) {
23 DCHECK(thread_checker_.CalledOnValidThread());
24 base::RunLoop run_loop;
25 quit_closure_ = run_loop.QuitClosure();
26 content::BrowserThread::PostTaskAndReply(
Sam McNally 2016/08/17 07:52:38 You don't need the RunLoop here. The IO thread doe
kcarattini 2016/08/19 03:59:46 Done.
27 content::BrowserThread::UI, FROM_HERE,
28 base::Bind(
29 &MockPermissionReportSender::SetReportOnUIThread,
30 base::Unretained(this)),
31 run_loop.QuitClosure());
32 run_loop.Run();
33 }
34
35 // UI thread
36 void MockReportSender::WaitForReportSet() {
37 report_set_ = false;
Sam McNally 2016/08/17 07:52:38 I don't think |report_set_| is needed.
kcarattini 2016/08/19 03:59:46 Done. I still don't quite understand how this is s
kcarattini 2016/08/22 05:09:05 I've figured this out now, thanks!
38 base::RunLoop run_loop;
39 quit_closure_ = run_loop.QuitClosure();
40 run_loop.Run();
41 }
42
43 // UI thread
44 void MockReportSender::SetReportOnUIThread() {
18 latest_report_uri_ = report_uri; 45 latest_report_uri_ = report_uri;
19 latest_report_ = report; 46 latest_report_ = report;
20 number_of_reports_++; 47 number_of_reports_++;
48
49 report_set_ = true;
50 NotifyReportSet();
51 }
52
53 // UI thread
54 void MockReportSender::NotifyReportSet() {
55 if (!quit_closure_.is_null() && report_set_) {
56 quit_closure_.Run();
57 quit_closure_.Reset();
58 }
21 } 59 }
22 60
23 const GURL& MockPermissionReportSender::latest_report_uri() { 61 const GURL& MockPermissionReportSender::latest_report_uri() {
62 DCHECK(thread_checker_.CalledOnValidThread());
24 return latest_report_uri_; 63 return latest_report_uri_;
25 } 64 }
26 65
27 const std::string& MockPermissionReportSender::latest_report() { 66 const std::string& MockPermissionReportSender::latest_report() {
67 DCHECK(thread_checker_.CalledOnValidThread());
28 return latest_report_; 68 return latest_report_;
29 } 69 }
30 70
31 int MockPermissionReportSender::GetAndResetNumberOfReportsSent() { 71 int MockPermissionReportSender::GetAndResetNumberOfReportsSent() {
72 DCHECK(thread_checker_.CalledOnValidThread());
73
32 int new_reports = number_of_reports_; 74 int new_reports = number_of_reports_;
33 number_of_reports_ = 0; 75 number_of_reports_ = 0;
34 return new_reports; 76 return new_reports;
35 } 77 }
36 78
37 } // namespace safe_browsing 79 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698