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

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

Issue 2782933002: Reland of Add EnabledStateObserver to BackgroundTracingManager (Closed)
Patch Set: Fix 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..4e329a3f978c35173b61a03026a0b7a1bdcb998f 100644
--- a/content/browser/tracing/background_tracing_manager_impl.h
+++ b/content/browser/tracing/background_tracing_manager_impl.h
@@ -23,7 +23,24 @@ class TracingDelegate;
class BackgroundTracingManagerImpl : public BackgroundTracingManager {
public:
- static CONTENT_EXPORT BackgroundTracingManagerImpl* GetInstance();
+ // Enabled state observers get a callback when the state of background tracing
+ // changes.
+ class CONTENT_EXPORT 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;
+
+ virtual ~EnabledStateObserver() = default;
+ };
+
+ CONTENT_EXPORT static BackgroundTracingManagerImpl* GetInstance();
bool SetActiveScenario(std::unique_ptr<BackgroundTracingConfig>,
const ReceiveCallback&,
@@ -40,10 +57,15 @@ class BackgroundTracingManagerImpl : public BackgroundTracingManager {
void AbortScenario();
bool HasActiveScenario() override;
+ void OnStartTracingDone(BackgroundTracingConfigImpl::CategoryPreset preset);
+
+ // Add/remove EnabledStateObserver.
+ CONTENT_EXPORT void AddEnabledStateObserver(EnabledStateObserver* observer);
+ CONTENT_EXPORT 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 FireTimerForTesting() override;
@@ -103,6 +125,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