Index: Source/core/page/Page.cpp |
diff --git a/Source/core/page/Page.cpp b/Source/core/page/Page.cpp |
index a022a6b8d2e483a3af6734474e96ac0bd1d7275b..7f3c39367788fea3a812c05568c02e7df6b0cb24 100644 |
--- a/Source/core/page/Page.cpp |
+++ b/Source/core/page/Page.cpp |
@@ -44,6 +44,7 @@ |
#include "core/page/FrameView.h" |
#include "core/page/PageConsole.h" |
#include "core/page/PageGroup.h" |
+#include "core/page/PageLifecycleNotifier.h" |
#include "core/page/PointerLockController.h" |
#include "core/page/Settings.h" |
#include "core/page/scrolling/ScrollingCoordinator.h" |
@@ -625,6 +626,9 @@ void Page::setVisibilityState(PageVisibilityState visibilityState, bool isInitia |
else |
setTimerAlignmentInterval(DOMTimer::visiblePageAlignmentInterval()); |
+ if (!isInitialState) |
+ lifecycleNotifier()->notifyPageVisibilityChanged(); |
+ |
if (!isInitialState && m_mainFrame) |
m_mainFrame->dispatchVisibilityStateChangeEvent(); |
} |
@@ -783,6 +787,16 @@ void Page::multisamplingChanged() |
(*it)->multisamplingChanged(m_settings->openGLMultisamplingEnabled()); |
} |
+PageLifecycleNotifier* Page::lifecycleNotifier() |
+{ |
+ return static_cast<PageLifecycleNotifier*>(LifecycleContext::lifecycleNotifier()); |
+} |
+ |
+PassOwnPtr<LifecycleNotifier> Page::createLifecycleNotifier() |
+{ |
+ return PageLifecycleNotifier::create(this); |
+} |
+ |
Page::PageClients::PageClients() |
: chromeClient(0) |
, contextMenuClient(0) |