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

Side by Side Diff: content/browser/tracing/background_tracing_manager_browsertest.cc

Issue 1148633007: Hooked the trace event argument whitelist up to the background_trace_manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Moved tracing enabled callback to its own testing function Created 5 years, 6 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/trace_event/trace_event.h"
6 #include "content/public/browser/background_tracing_manager.h" 7 #include "content/public/browser/background_tracing_manager.h"
7 #include "content/public/browser/background_tracing_preemptive_config.h" 8 #include "content/public/browser/background_tracing_preemptive_config.h"
8 #include "content/public/browser/background_tracing_reactive_config.h" 9 #include "content/public/browser/background_tracing_reactive_config.h"
9 #include "content/public/test/content_browser_test.h" 10 #include "content/public/test/content_browser_test.h"
10 #include "content/public/test/content_browser_test_utils.h" 11 #include "content/public/test/content_browser_test_utils.h"
11 #include "content/public/test/test_utils.h" 12 #include "content/public/test/test_utils.h"
13 #include "third_party/zlib/zlib.h"
12 14
13 namespace content { 15 namespace content {
14 16
15 class BackgroundTracingManagerBrowserTest : public ContentBrowserTest { 17 class BackgroundTracingManagerBrowserTest : public ContentBrowserTest {
16 public: 18 public:
17 BackgroundTracingManagerBrowserTest() {} 19 BackgroundTracingManagerBrowserTest() {}
18 20
19 private: 21 private:
20 DISALLOW_COPY_AND_ASSIGN(BackgroundTracingManagerBrowserTest); 22 DISALLOW_COPY_AND_ASSIGN(BackgroundTracingManagerBrowserTest);
21 }; 23 };
22 24
23 class BackgroundTracingManagerUploadConfigWrapper { 25 class BackgroundTracingManagerUploadConfigWrapper {
24 public: 26 public:
25 BackgroundTracingManagerUploadConfigWrapper(const base::Closure& callback) 27 BackgroundTracingManagerUploadConfigWrapper(const base::Closure& callback)
26 : callback_(callback), receive_count_(0) { 28 : callback_(callback), receive_count_(0) {
27 receive_callback_ = 29 receive_callback_ =
28 base::Bind(&BackgroundTracingManagerUploadConfigWrapper::Upload, 30 base::Bind(&BackgroundTracingManagerUploadConfigWrapper::Upload,
29 base::Unretained(this)); 31 base::Unretained(this));
30 } 32 }
31 33
32 void Upload(const base::RefCountedString* file_contents, 34 void Upload(const scoped_refptr<base::RefCountedString>& file_contents,
33 base::Callback<void()> done_callback) { 35 base::Callback<void()> done_callback) {
34 receive_count_ += 1; 36 receive_count_ += 1;
37 EXPECT_TRUE(file_contents);
35 38
39 size_t compressed_length = file_contents->data().length();
40 const size_t output_buffer_length = 10 * 1024 * 1024;
41 std::vector<char> output_str(output_buffer_length);
42
43 z_stream stream = {0};
44 stream.total_in = stream.avail_in = compressed_length;
45 stream.total_out = stream.avail_out = output_buffer_length;
davidben 2015/06/02 22:52:02 Are you supposed to be setting total_in and total_
oystein (OOO til 10th of July) 2015/06/03 00:14:43 Done.
46 stream.next_in = (Bytef*)&file_contents->data()[0];
47 stream.next_out = (Bytef*)&output_str[0];
davidben 2015/06/02 22:52:02 You can use vector_as_array from base/stl_util.h
48
49 stream.zalloc = Z_NULL;
50 stream.zfree = Z_NULL;
51 stream.opaque = Z_NULL;
davidben 2015/06/02 22:52:01 You're already initializing it with zeros, right?
oystein (OOO til 10th of July) 2015/06/03 00:14:43 Removed.
52
53 int result = inflateInit2(&stream, 16 + MAX_WBITS);
davidben 2015/06/02 22:52:02 Where does 16 + MAX_WBITS come from?
oystein (OOO til 10th of July) 2015/06/03 00:14:43 zlib.h:771: (inflateInit2 docs) "The windowBits p
54 EXPECT_EQ(Z_OK, result);
55 result = inflate(&stream, Z_FINISH);
56 bool success = (result != Z_STREAM_ERROR);
davidben 2015/06/02 22:52:01 result == Z_STREAM_END? It seems there are other p
oystein (OOO til 10th of July) 2015/06/03 00:14:43 Done.
57 inflateEnd(&stream);
58 EXPECT_TRUE(success);
59
60 last_file_contents_ = &output_str[0];
davidben 2015/06/02 22:52:02 This is rather confusing since you're writing a po
oystein (OOO til 10th of July) 2015/06/03 00:14:43 Ah good catch; yeah you're right, it was indeed re
36 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 61 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
37 base::Bind(done_callback)); 62 base::Bind(done_callback));
38 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 63 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
39 base::Bind(callback_)); 64 base::Bind(callback_));
40 } 65 }
41 66
67 bool TraceHasMatchingString(const char* str) {
68 return last_file_contents_.find(str) != std::string::npos;
69 }
70
42 int get_receive_count() const { return receive_count_; } 71 int get_receive_count() const { return receive_count_; }
43 72
44 const BackgroundTracingManager::ReceiveCallback& get_receive_callback() 73 const BackgroundTracingManager::ReceiveCallback& get_receive_callback()
45 const { 74 const {
46 return receive_callback_; 75 return receive_callback_;
47 } 76 }
48 77
49 private: 78 private:
50 BackgroundTracingManager::ReceiveCallback receive_callback_; 79 BackgroundTracingManager::ReceiveCallback receive_callback_;
51 base::Closure callback_; 80 base::Closure callback_;
52 int receive_count_; 81 int receive_count_;
82 std::string last_file_contents_;
53 }; 83 };
54 84
55 void StartedFinalizingCallback(base::Closure callback, 85 void StartedFinalizingCallback(base::Closure callback,
56 bool expected, 86 bool expected,
57 bool value) { 87 bool value) {
58 EXPECT_EQ(expected, value); 88 EXPECT_EQ(expected, value);
59 if (!callback.is_null()) 89 if (!callback.is_null())
60 callback.Run(); 90 callback.Run();
61 } 91 }
62 92
(...skipping 11 matching lines...) Expand all
74 return config.Pass(); 104 return config.Pass();
75 } 105 }
76 106
77 void SetupBackgroundTracingManager() { 107 void SetupBackgroundTracingManager() {
78 content::BackgroundTracingManager::GetInstance() 108 content::BackgroundTracingManager::GetInstance()
79 ->InvalidateTriggerHandlesForTesting(); 109 ->InvalidateTriggerHandlesForTesting();
80 } 110 }
81 111
82 void DisableScenarioWhenIdle() { 112 void DisableScenarioWhenIdle() {
83 BackgroundTracingManager::GetInstance()->SetActiveScenario( 113 BackgroundTracingManager::GetInstance()->SetActiveScenario(
84 NULL, BackgroundTracingManager::ReceiveCallback(), false); 114 NULL, BackgroundTracingManager::ReceiveCallback(),
115 BackgroundTracingManager::NO_DATA_FILTERING);
85 } 116 }
86 117
87 // This tests that the endpoint receives the final trace data. 118 // This tests that the endpoint receives the final trace data.
88 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, 119 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
89 ReceiveTraceFinalContentsOnTrigger) { 120 ReceiveTraceFinalContentsOnTrigger) {
90 { 121 {
91 SetupBackgroundTracingManager(); 122 SetupBackgroundTracingManager();
92 123
93 base::RunLoop run_loop; 124 base::RunLoop run_loop;
94 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( 125 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
95 run_loop.QuitClosure()); 126 run_loop.QuitClosure());
96 127
97 scoped_ptr<BackgroundTracingPreemptiveConfig> config = 128 scoped_ptr<BackgroundTracingPreemptiveConfig> config =
98 CreatePreemptiveConfig(); 129 CreatePreemptiveConfig();
99 130
100 BackgroundTracingManager::TriggerHandle handle = 131 BackgroundTracingManager::TriggerHandle handle =
101 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test"); 132 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test");
102 133
103 BackgroundTracingManager::GetInstance()->SetActiveScenario( 134 BackgroundTracingManager::GetInstance()->SetActiveScenario(
104 config.Pass(), upload_config_wrapper.get_receive_callback(), true); 135 config.Pass(), upload_config_wrapper.get_receive_callback(),
davidben 2015/06/02 22:52:02 Why does both true and false (here and DisableScen
oystein (OOO til 10th of July) 2015/06/03 00:14:43 The parameter didn't actually do anything before t
136 BackgroundTracingManager::NO_DATA_FILTERING);
105 137
106 BackgroundTracingManager::GetInstance()->WhenIdle( 138 BackgroundTracingManager::GetInstance()->WhenIdle(
107 base::Bind(&DisableScenarioWhenIdle)); 139 base::Bind(&DisableScenarioWhenIdle));
108 140
109 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 141 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
110 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); 142 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true));
111 143
112 run_loop.Run(); 144 run_loop.Run();
113 145
114 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); 146 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1);
(...skipping 11 matching lines...) Expand all
126 run_loop.QuitClosure()); 158 run_loop.QuitClosure());
127 159
128 scoped_ptr<BackgroundTracingPreemptiveConfig> config = 160 scoped_ptr<BackgroundTracingPreemptiveConfig> config =
129 CreatePreemptiveConfig(); 161 CreatePreemptiveConfig();
130 162
131 content::BackgroundTracingManager::TriggerHandle handle = 163 content::BackgroundTracingManager::TriggerHandle handle =
132 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( 164 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
133 "test"); 165 "test");
134 166
135 BackgroundTracingManager::GetInstance()->SetActiveScenario( 167 BackgroundTracingManager::GetInstance()->SetActiveScenario(
136 config.Pass(), upload_config_wrapper.get_receive_callback(), true); 168 config.Pass(), upload_config_wrapper.get_receive_callback(),
169 BackgroundTracingManager::NO_DATA_FILTERING);
137 170
138 BackgroundTracingManager::GetInstance()->WhenIdle( 171 BackgroundTracingManager::GetInstance()->WhenIdle(
139 base::Bind(&DisableScenarioWhenIdle)); 172 base::Bind(&DisableScenarioWhenIdle));
140 173
141 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 174 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
142 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); 175 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true));
143 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 176 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
144 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false)); 177 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false));
145 178
146 run_loop.Run(); 179 run_loop.Run();
147 180
148 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); 181 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1);
149 } 182 }
150 } 183 }
151 184
185 namespace {
186
187 bool IsTraceEventArgsWhitelisted(const char* category_group_name,
188 const char* event_name) {
189 if (MatchPattern(category_group_name, "benchmark") &&
190 MatchPattern(event_name, "whitelisted")) {
191 return true;
192 }
193
194 return false;
195 }
196
197 } // namespace
198
199 // This tests that non-whitelisted args get stripped if required.
200 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
201 NoWhitelistedArgsStripped) {
202 {
davidben 2015/06/02 22:52:02 Why an extra level of scope here?
oystein (OOO til 10th of July) 2015/06/03 00:14:43 Whoops, copy and paste artifact from the existing
203 SetupBackgroundTracingManager();
204
205 base::trace_event::TraceLog::GetInstance()->SetArgumentFilterPredicate(
206 base::Bind(&IsTraceEventArgsWhitelisted));
207
208 base::RunLoop wait_for_upload;
209 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
210 wait_for_upload.QuitClosure());
211
212 scoped_ptr<BackgroundTracingPreemptiveConfig> config =
213 CreatePreemptiveConfig();
214
215 content::BackgroundTracingManager::TriggerHandle handle =
216 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
217 "test");
218
219 base::RunLoop wait_for_activated;
220 BackgroundTracingManager::GetInstance()
221 ->SetTracingEnabledCallbackForTesting(wait_for_activated.QuitClosure());
222 BackgroundTracingManager::GetInstance()->SetActiveScenario(
223 config.Pass(), upload_config_wrapper.get_receive_callback(),
224 BackgroundTracingManager::ANONYMIZE_DATA);
225
226 wait_for_activated.Run();
227
228 TRACE_EVENT1("benchmark", "whitelisted", "find_this", 1);
229 TRACE_EVENT1("benchmark", "not_whitelisted", "this_not_found", 1);
230
231 BackgroundTracingManager::GetInstance()->WhenIdle(
232 base::Bind(&DisableScenarioWhenIdle));
233
234 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
235 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true));
236
237 wait_for_upload.Run();
238
239 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1);
240 EXPECT_TRUE(upload_config_wrapper.TraceHasMatchingString("{"));
241 EXPECT_TRUE(upload_config_wrapper.TraceHasMatchingString("find_this"));
242 EXPECT_TRUE(
243 !upload_config_wrapper.TraceHasMatchingString("this_not_found"));
244 }
245 }
246
247 // This tests subprocesses (like a navigating renderer) which gets told to
248 // provide a argument-filtered trace and has no predicate in place to do the
249 // filtering (in this case, only the browser process gets it set), will crash
250 // rather than return potential PII.
251 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
252 CrashWhenSubprocessWithoutArgumentFilter) {
253 {
davidben 2015/06/02 22:52:01 Ditto.
oystein (OOO til 10th of July) 2015/06/03 00:14:43 Done.
254 SetupBackgroundTracingManager();
255
256 base::trace_event::TraceLog::GetInstance()->SetArgumentFilterPredicate(
257 base::Bind(&IsTraceEventArgsWhitelisted));
258
259 base::RunLoop wait_for_upload;
260 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
261 wait_for_upload.QuitClosure());
262
263 scoped_ptr<BackgroundTracingPreemptiveConfig> config =
264 CreatePreemptiveConfig();
265
266 content::BackgroundTracingManager::TriggerHandle handle =
267 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
268 "test");
269
270 BackgroundTracingManager::GetInstance()->SetActiveScenario(
271 config.Pass(), upload_config_wrapper.get_receive_callback(),
272 BackgroundTracingManager::ANONYMIZE_DATA);
273
274 NavigateToURL(shell(), GetTestUrl("", "about:blank"));
275
276 BackgroundTracingManager::GetInstance()->WhenIdle(
277 base::Bind(&DisableScenarioWhenIdle));
278
279 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
280 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true));
281
282 wait_for_upload.Run();
283
284 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1);
285 // We should *not* receive anything at all from the renderer,
286 // the process should've crashed rather than letting that happen.
287 EXPECT_TRUE(
288 !upload_config_wrapper.TraceHasMatchingString("CrRendererMain"));
289 }
290 }
291
152 // This tests multiple triggers still only gathers once. 292 // This tests multiple triggers still only gathers once.
153 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, 293 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
154 CallMultipleTriggersOnlyGatherOnce) { 294 CallMultipleTriggersOnlyGatherOnce) {
155 { 295 {
156 SetupBackgroundTracingManager(); 296 SetupBackgroundTracingManager();
157 297
158 base::RunLoop run_loop; 298 base::RunLoop run_loop;
159 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( 299 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
160 run_loop.QuitClosure()); 300 run_loop.QuitClosure());
161 301
162 scoped_ptr<BackgroundTracingPreemptiveConfig> config = 302 scoped_ptr<BackgroundTracingPreemptiveConfig> config =
163 CreatePreemptiveConfig(); 303 CreatePreemptiveConfig();
164 304
165 BackgroundTracingPreemptiveConfig::MonitoringRule rule; 305 BackgroundTracingPreemptiveConfig::MonitoringRule rule;
166 rule.type = 306 rule.type =
167 BackgroundTracingPreemptiveConfig::MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED; 307 BackgroundTracingPreemptiveConfig::MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED;
168 rule.named_trigger_info.trigger_name = "test1"; 308 rule.named_trigger_info.trigger_name = "test1";
169 config->configs.push_back(rule); 309 config->configs.push_back(rule);
170 310
171 rule.named_trigger_info.trigger_name = "test2"; 311 rule.named_trigger_info.trigger_name = "test2";
172 config->configs.push_back(rule); 312 config->configs.push_back(rule);
173 313
174 BackgroundTracingManager::TriggerHandle handle1 = 314 BackgroundTracingManager::TriggerHandle handle1 =
175 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test1"); 315 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test1");
176 BackgroundTracingManager::TriggerHandle handle2 = 316 BackgroundTracingManager::TriggerHandle handle2 =
177 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test2"); 317 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test2");
178 318
179 BackgroundTracingManager::GetInstance()->SetActiveScenario( 319 BackgroundTracingManager::GetInstance()->SetActiveScenario(
180 config.Pass(), upload_config_wrapper.get_receive_callback(), true); 320 config.Pass(), upload_config_wrapper.get_receive_callback(),
321 BackgroundTracingManager::NO_DATA_FILTERING);
181 322
182 BackgroundTracingManager::GetInstance()->WhenIdle( 323 BackgroundTracingManager::GetInstance()->WhenIdle(
183 base::Bind(&DisableScenarioWhenIdle)); 324 base::Bind(&DisableScenarioWhenIdle));
184 325
185 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 326 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
186 handle1, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); 327 handle1, base::Bind(&StartedFinalizingCallback, base::Closure(), true));
187 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 328 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
188 handle2, 329 handle2,
189 base::Bind(&StartedFinalizingCallback, base::Closure(), false)); 330 base::Bind(&StartedFinalizingCallback, base::Closure(), false));
190 331
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 (base::Closure())); 373 (base::Closure()));
233 374
234 scoped_ptr<BackgroundTracingPreemptiveConfig> config = 375 scoped_ptr<BackgroundTracingPreemptiveConfig> config =
235 CreatePreemptiveConfig(); 376 CreatePreemptiveConfig();
236 377
237 content::BackgroundTracingManager::TriggerHandle handle = 378 content::BackgroundTracingManager::TriggerHandle handle =
238 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( 379 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
239 "does_not_exist"); 380 "does_not_exist");
240 381
241 BackgroundTracingManager::GetInstance()->SetActiveScenario( 382 BackgroundTracingManager::GetInstance()->SetActiveScenario(
242 config.Pass(), upload_config_wrapper.get_receive_callback(), true); 383 config.Pass(), upload_config_wrapper.get_receive_callback(),
384 BackgroundTracingManager::NO_DATA_FILTERING);
243 385
244 BackgroundTracingManager::GetInstance()->WhenIdle( 386 BackgroundTracingManager::GetInstance()->WhenIdle(
245 base::Bind(&DisableScenarioWhenIdle)); 387 base::Bind(&DisableScenarioWhenIdle));
246 388
247 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 389 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
248 handle, 390 handle,
249 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); 391 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false));
250 392
251 run_loop.Run(); 393 run_loop.Run();
252 394
(...skipping 15 matching lines...) Expand all
268 CreatePreemptiveConfig(); 410 CreatePreemptiveConfig();
269 411
270 content::BackgroundTracingManager::TriggerHandle handle = 412 content::BackgroundTracingManager::TriggerHandle handle =
271 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( 413 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
272 "test"); 414 "test");
273 415
274 content::BackgroundTracingManager::GetInstance() 416 content::BackgroundTracingManager::GetInstance()
275 ->InvalidateTriggerHandlesForTesting(); 417 ->InvalidateTriggerHandlesForTesting();
276 418
277 BackgroundTracingManager::GetInstance()->SetActiveScenario( 419 BackgroundTracingManager::GetInstance()->SetActiveScenario(
278 config.Pass(), upload_config_wrapper.get_receive_callback(), true); 420 config.Pass(), upload_config_wrapper.get_receive_callback(),
421 BackgroundTracingManager::NO_DATA_FILTERING);
279 422
280 BackgroundTracingManager::GetInstance()->WhenIdle( 423 BackgroundTracingManager::GetInstance()->WhenIdle(
281 base::Bind(&DisableScenarioWhenIdle)); 424 base::Bind(&DisableScenarioWhenIdle));
282 425
283 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 426 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
284 handle, 427 handle,
285 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); 428 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false));
286 429
287 run_loop.Run(); 430 run_loop.Run();
288 431
(...skipping 14 matching lines...) Expand all
303 new content::BackgroundTracingPreemptiveConfig()); 446 new content::BackgroundTracingPreemptiveConfig());
304 447
305 BackgroundTracingPreemptiveConfig::MonitoringRule rule; 448 BackgroundTracingPreemptiveConfig::MonitoringRule rule;
306 rule.type = BackgroundTracingPreemptiveConfig:: 449 rule.type = BackgroundTracingPreemptiveConfig::
307 MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE; 450 MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE;
308 rule.histogram_trigger_info.histogram_name_to_trigger_on = "fake"; 451 rule.histogram_trigger_info.histogram_name_to_trigger_on = "fake";
309 rule.histogram_trigger_info.histogram_bin_to_trigger_on = 0; 452 rule.histogram_trigger_info.histogram_bin_to_trigger_on = 0;
310 config->configs.push_back(rule); 453 config->configs.push_back(rule);
311 454
312 bool result = BackgroundTracingManager::GetInstance()->SetActiveScenario( 455 bool result = BackgroundTracingManager::GetInstance()->SetActiveScenario(
313 config.Pass(), upload_config_wrapper.get_receive_callback(), true); 456 config.Pass(), upload_config_wrapper.get_receive_callback(),
457 BackgroundTracingManager::NO_DATA_FILTERING);
314 458
315 EXPECT_FALSE(result); 459 EXPECT_FALSE(result);
316 } 460 }
317 } 461 }
318 462
319 // This tests that reactive mode configs will fail. 463 // This tests that reactive mode configs will fail.
320 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, 464 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest,
321 DoesNotAllowReactiveConfig) { 465 DoesNotAllowReactiveConfig) {
322 { 466 {
323 SetupBackgroundTracingManager(); 467 SetupBackgroundTracingManager();
324 468
325 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( 469 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
326 (base::Closure())); 470 (base::Closure()));
327 471
328 scoped_ptr<BackgroundTracingConfig> config( 472 scoped_ptr<BackgroundTracingConfig> config(
329 new BackgroundTracingReactiveConfig()); 473 new BackgroundTracingReactiveConfig());
330 474
331 bool result = BackgroundTracingManager::GetInstance()->SetActiveScenario( 475 bool result = BackgroundTracingManager::GetInstance()->SetActiveScenario(
332 config.Pass(), upload_config_wrapper.get_receive_callback(), true); 476 config.Pass(), upload_config_wrapper.get_receive_callback(),
477 BackgroundTracingManager::NO_DATA_FILTERING);
333 478
334 EXPECT_FALSE(result); 479 EXPECT_FALSE(result);
335 } 480 }
336 } 481 }
337 482
338 } // namespace content 483 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698