Chromium Code Reviews| 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) |