Index: third_party/WebKit/Source/core/page/Page.cpp |
diff --git a/third_party/WebKit/Source/core/page/Page.cpp b/third_party/WebKit/Source/core/page/Page.cpp |
index 6ed312c28645668efdf089e6a98768aae7dbaed9..3099383143cb5d98f6480077ad20723e2f3f6d74 100644 |
--- a/third_party/WebKit/Source/core/page/Page.cpp |
+++ b/third_party/WebKit/Source/core/page/Page.cpp |
@@ -50,6 +50,7 @@ |
#include "core/paint/PaintLayer.h" |
#include "platform/graphics/GraphicsLayer.h" |
#include "platform/plugins/PluginData.h" |
+#include "platform/text/CompressibleString.h" |
#include "public/platform/Platform.h" |
namespace blink { |
@@ -136,6 +137,7 @@ Page::Page(PageClients& pageClients) |
, m_isPainting(false) |
#endif |
, m_frameHost(FrameHost::create(*this)) |
+ , m_timer(this, &Page::compressStrings) |
haraken
2016/01/15 12:46:21
m_timer => m_timerForCompressStrings
hajimehoshi
2016/01/18 09:42:26
Done.
|
{ |
ASSERT(m_editorClient); |
@@ -363,6 +365,7 @@ void Page::visitedStateChanged(LinkHash linkHash) |
void Page::setVisibilityState(PageVisibilityState visibilityState, bool isInitialState) |
{ |
+ CompressibleStringImpl::setPageBackground(visibilityState == PageVisibilityStateHidden); |
if (m_visibilityState == visibilityState) |
return; |
m_visibilityState = visibilityState; |
@@ -372,6 +375,12 @@ void Page::setVisibilityState(PageVisibilityState visibilityState, bool isInitia |
if (!isInitialState && m_mainFrame && m_mainFrame->isLocalFrame()) |
deprecatedLocalMainFrame()->didChangeVisibilityState(); |
+ |
+ if (m_visibilityState == PageVisibilityStateHidden && !m_timer.isActive()) { |
+ m_timer.startOneShot(10, BLINK_FROM_HERE); |
haraken
2016/01/15 12:46:21
Add a comment what you're doing this.
// Compress
haraken
2016/01/15 12:46:21
Avoid hard-coding 10.
static const double waiti
hajimehoshi
2016/01/18 09:42:26
Done.
hajimehoshi
2016/01/18 09:42:26
Done.
|
+ } else if (m_timer.isActive()) { |
+ m_timer.stop(); |
+ } |
} |
PageVisibilityState Page::visibilityState() const |
@@ -584,6 +593,13 @@ void Page::willBeDestroyed() |
PageLifecycleNotifier::notifyContextDestroyed(); |
} |
+void Page::compressStrings(Timer<Page>* timer) |
+{ |
+ ASSERT_UNUSED(timer, timer == &m_timer); |
+ if (m_visibilityState == PageVisibilityStateHidden) |
+ CompressibleStringImpl::compressAll(); |
+} |
+ |
Page::PageClients::PageClients() |
: chromeClient(nullptr) |
, contextMenuClient(nullptr) |