Index: content/browser/renderer_host/display_link_mac.cc |
diff --git a/content/browser/renderer_host/display_link_mac.cc b/content/browser/renderer_host/display_link_mac.cc |
index b4592a9f3b77832aa0801c6e5acd3bd841ee0244..7f35af280a11237127cc448b1566f0344b3ec691 100644 |
--- a/content/browser/renderer_host/display_link_mac.cc |
+++ b/content/browser/renderer_host/display_link_mac.cc |
@@ -94,6 +94,15 @@ bool DisplayLinkMac::GetVSyncParameters( |
return true; |
} |
+void DisplayLinkMac::AddObserver(Observer* observer) { |
+ StartOrContinueDisplayLink(); |
+ observer_list_.AddObserver(observer); |
+} |
+ |
+void DisplayLinkMac::RemoveObserver(Observer* observer) { |
+ observer_list.RemoveObserver(observer); |
+} |
+ |
void DisplayLinkMac::Tick(const CVTimeStamp* cv_time) { |
TRACE_EVENT0("browser", "DisplayLinkMac::GetVSyncParameters"); |
base::AutoLock lock(lock_); |
@@ -114,6 +123,10 @@ void DisplayLinkMac::Tick(const CVTimeStamp* cv_time) { |
interval_ = base::TimeDelta::FromMicroseconds( |
1000000 * static_cast<int64>(numerator) / denominator); |
timebase_and_interval_valid_ = true; |
+ |
+ FOR_EACH_OBSERVER(Observer, |
+ observer_list_, |
+ OnVSync(timebase_, interval_)); |
} |
void DisplayLinkMac::StartOrContinueDisplayLink() { |