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

Side by Side Diff: content/public/browser/background_tracing_manager.h

Issue 1874903002: Convert //content from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix indent Created 4 years, 8 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 #ifndef CONTENT_PUBLIC_BROWSER_BACKGROUND_TRACING_MANAGER_H_ 5 #ifndef CONTENT_PUBLIC_BROWSER_BACKGROUND_TRACING_MANAGER_H_
6 #define CONTENT_PUBLIC_BROWSER_BACKGROUND_TRACING_MANAGER_H_ 6 #define CONTENT_PUBLIC_BROWSER_BACKGROUND_TRACING_MANAGER_H_
7 7
8 #include "base/memory/scoped_ptr.h" 8 #include <memory>
9
9 #include "base/trace_event/trace_event_impl.h" 10 #include "base/trace_event/trace_event_impl.h"
10 #include "base/values.h" 11 #include "base/values.h"
11 #include "content/common/content_export.h" 12 #include "content/common/content_export.h"
12 13
13 namespace content { 14 namespace content {
14 class BackgroundTracingConfig; 15 class BackgroundTracingConfig;
15 struct BackgroundTracingUploadConfig; 16 struct BackgroundTracingUploadConfig;
16 17
17 // BackgroundTracingManager is used on the browser process to trigger the 18 // BackgroundTracingManager is used on the browser process to trigger the
18 // collection of trace data and upload the results. Only the browser UI thread 19 // collection of trace data and upload the results. Only the browser UI thread
19 // is allowed to interact with the BackgroundTracingManager. All callbacks are 20 // is allowed to interact with the BackgroundTracingManager. All callbacks are
20 // called on the UI thread. 21 // called on the UI thread.
21 class BackgroundTracingManager { 22 class BackgroundTracingManager {
22 public: 23 public:
23 CONTENT_EXPORT static BackgroundTracingManager* GetInstance(); 24 CONTENT_EXPORT static BackgroundTracingManager* GetInstance();
24 25
25 // ReceiveCallback will will be called on the UI thread every time the 26 // ReceiveCallback will will be called on the UI thread every time the
26 // BackgroundTracingManager finalizes a trace. The first parameter of 27 // BackgroundTracingManager finalizes a trace. The first parameter of
27 // this callback is the trace data. The second is metadata that was 28 // this callback is the trace data. The second is metadata that was
28 // generated and embedded into the trace. The third is a callback to 29 // generated and embedded into the trace. The third is a callback to
29 // notify the BackgroundTracingManager that you've finished processing 30 // notify the BackgroundTracingManager that you've finished processing
30 // the trace data. 31 // the trace data.
31 // 32 //
32 // Example: 33 // Example:
33 // 34 //
34 // void Upload(const scoped_refptr<base::RefCountedString>& data, 35 // void Upload(const scoped_refptr<base::RefCountedString>& data,
35 // scoped_ptr<base::DictionaryValue>, 36 // std::unique_ptr<base::DictionaryValue>,
36 // base::Closure done_callback) { 37 // base::Closure done_callback) {
37 // BrowserThread::PostTaskAndReply( 38 // BrowserThread::PostTaskAndReply(
38 // BrowserThread::FILE, 39 // BrowserThread::FILE,
39 // FROM_HERE, 40 // FROM_HERE,
40 // base::Bind(&DoUploadOnFileThread, data), 41 // base::Bind(&DoUploadOnFileThread, data),
41 // done_callback 42 // done_callback
42 // ); 43 // );
43 // } 44 // }
44 // 45 //
45 typedef base::Callback<void(const scoped_refptr<base::RefCountedString>&, 46 typedef base::Callback<void(const scoped_refptr<base::RefCountedString>&,
46 scoped_ptr<const base::DictionaryValue>, 47 std::unique_ptr<const base::DictionaryValue>,
47 base::Closure)> ReceiveCallback; 48 base::Closure)>
49 ReceiveCallback;
48 50
49 // Set the triggering rules for when to start recording. 51 // Set the triggering rules for when to start recording.
50 // 52 //
51 // In preemptive mode, recording begins immediately and any calls to 53 // In preemptive mode, recording begins immediately and any calls to
52 // TriggerNamedEvent() will potentially trigger the trace to finalize and get 54 // TriggerNamedEvent() will potentially trigger the trace to finalize and get
53 // uploaded to the specified upload_sink. Once the trace has been uploaded, 55 // uploaded to the specified upload_sink. Once the trace has been uploaded,
54 // tracing will be enabled again. 56 // tracing will be enabled again.
55 // 57 //
56 // In reactive mode, recording begins when TriggerNamedEvent() is called, and 58 // In reactive mode, recording begins when TriggerNamedEvent() is called, and
57 // continues until either the next call to TriggerNamedEvent, or a timeout 59 // continues until either the next call to TriggerNamedEvent, or a timeout
58 // occurs. Tracing will not be re-enabled after the trace is finalized and 60 // occurs. Tracing will not be re-enabled after the trace is finalized and
59 // uploaded to the upload_sink. 61 // uploaded to the upload_sink.
60 // 62 //
61 // Calls to SetActiveScenario() with a config will fail if tracing is 63 // Calls to SetActiveScenario() with a config will fail if tracing is
62 // currently on. Use WhenIdle to register a callback to get notified when 64 // currently on. Use WhenIdle to register a callback to get notified when
63 // the manager is idle and a config can be set again. 65 // the manager is idle and a config can be set again.
64 enum DataFiltering { 66 enum DataFiltering {
65 NO_DATA_FILTERING, 67 NO_DATA_FILTERING,
66 ANONYMIZE_DATA, 68 ANONYMIZE_DATA,
67 }; 69 };
68 virtual bool SetActiveScenario(scoped_ptr<BackgroundTracingConfig> config, 70 virtual bool SetActiveScenario(
69 const ReceiveCallback& receive_callback, 71 std::unique_ptr<BackgroundTracingConfig> config,
70 DataFiltering data_filtering) = 0; 72 const ReceiveCallback& receive_callback,
73 DataFiltering data_filtering) = 0;
71 74
72 // Notifies the caller when the manager is idle (not recording or uploading), 75 // Notifies the caller when the manager is idle (not recording or uploading),
73 // so that a call to SetActiveScenario() is likely to succeed. 76 // so that a call to SetActiveScenario() is likely to succeed.
74 typedef base::Callback<void()> IdleCallback; 77 typedef base::Callback<void()> IdleCallback;
75 virtual void WhenIdle(IdleCallback idle_callback) = 0; 78 virtual void WhenIdle(IdleCallback idle_callback) = 0;
76 79
77 typedef base::Callback<void(bool)> StartedFinalizingCallback; 80 typedef base::Callback<void(bool)> StartedFinalizingCallback;
78 typedef int TriggerHandle; 81 typedef int TriggerHandle;
79 82
80 // Notifies that a manual trigger event has occurred, and we may need to 83 // Notifies that a manual trigger event has occurred, and we may need to
(...skipping 14 matching lines...) Expand all
95 const base::Closure& callback) = 0; 98 const base::Closure& callback) = 0;
96 virtual void FireTimerForTesting() = 0; 99 virtual void FireTimerForTesting() = 0;
97 100
98 protected: 101 protected:
99 virtual ~BackgroundTracingManager() {} 102 virtual ~BackgroundTracingManager() {}
100 }; 103 };
101 104
102 } // namespace content 105 } // namespace content
103 106
104 #endif // CONTENT_PUBLIC_BROWSER_BACKGROUND_TRACING_MANAGER_H_ 107 #endif // CONTENT_PUBLIC_BROWSER_BACKGROUND_TRACING_MANAGER_H_
OLDNEW
« no previous file with comments | « content/public/browser/background_tracing_config.cc ('k') | content/public/browser/browser_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698