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

Unified Diff: content/browser/tracing/background_tracing_manager_impl.h

Issue 2769963005: Add EnabledStateObserver to BackgroundTracingManager (Closed)
Patch Set: Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/tracing/background_tracing_manager_impl.h
diff --git a/content/browser/tracing/background_tracing_manager_impl.h b/content/browser/tracing/background_tracing_manager_impl.h
index 637c70d0b51d26893b38fe3c380599706016608e..faeea93ef8ae5de259c9bde916b5ddcea8d32d0f 100644
--- a/content/browser/tracing/background_tracing_manager_impl.h
+++ b/content/browser/tracing/background_tracing_manager_impl.h
@@ -21,9 +21,25 @@ namespace content {
class BackgroundTracingRule;
class TracingDelegate;
-class BackgroundTracingManagerImpl : public BackgroundTracingManager {
+class CONTENT_EXPORT BackgroundTracingManagerImpl
+ : public BackgroundTracingManager {
public:
- static CONTENT_EXPORT BackgroundTracingManagerImpl* GetInstance();
+ // Enabled state observers get a callback when the state of background tracing
+ // changes.
+ class EnabledStateObserver {
+ public:
+ // Called when the activation of a background tracing scenario is
+ // successful.
+ virtual void OnScenarioActivated(
+ const BackgroundTracingConfigImpl& config) = 0;
+
+ // Called after tracing is enabled on all processes because the rule was
+ // triggered.
+ virtual void OnTracingEnabled(
+ BackgroundTracingConfigImpl::CategoryPreset preset) = 0;
+ };
+
+ static BackgroundTracingManagerImpl* GetInstance();
bool SetActiveScenario(std::unique_ptr<BackgroundTracingConfig>,
const ReceiveCallback&,
@@ -40,14 +56,17 @@ class BackgroundTracingManagerImpl : public BackgroundTracingManager {
void AbortScenario();
bool HasActiveScenario() override;
+ void OnStartTracingDone(BackgroundTracingConfigImpl::CategoryPreset preset);
+
+ // Add/remove EnabledStateObserver.
+ void AddEnabledStateObserver(EnabledStateObserver* observer);
+ void RemoveEnabledStateObserver(EnabledStateObserver* observer);
+
// For tests
void InvalidateTriggerHandlesForTesting() override;
- void SetTracingEnabledCallbackForTesting(
- const base::Closure& callback) override;
- CONTENT_EXPORT void SetRuleTriggeredCallbackForTesting(
- const base::Closure& callback);
+ void SetRuleTriggeredCallbackForTesting(const base::Closure& callback);
void FireTimerForTesting() override;
- CONTENT_EXPORT bool IsTracingForTesting();
+ bool IsTracingForTesting();
private:
BackgroundTracingManagerImpl();
@@ -103,6 +122,8 @@ class BackgroundTracingManagerImpl : public BackgroundTracingManager {
TriggerHandle triggered_named_event_handle_;
+ std::vector<EnabledStateObserver*> background_tracing_observer_list_;
+
IdleCallback idle_callback_;
base::Closure tracing_enabled_callback_for_testing_;
base::Closure rule_triggered_callback_for_testing_;

Powered by Google App Engine
This is Rietveld 408576698