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

Unified Diff: content/renderer/render_view.cc

Issue 7036019: Enabling page visibility api in the chrome browser. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years, 7 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/renderer/render_view.cc
diff --git a/content/renderer/render_view.cc b/content/renderer/render_view.cc
index 012594724e5e9c40e78a31a48657a470a5eb1e6d..98716da8f6042b0eec880873cd616271221f61ed 100644
--- a/content/renderer/render_view.cc
+++ b/content/renderer/render_view.cc
@@ -717,6 +717,13 @@ void RenderView::OnNavigate(const ViewMsg_Navigate_Params& params) {
is_reload = false;
}
+ // Correct the visible state of the webview before loading a document.
+ if (params.is_hidden) {
brettw 2011/05/18 22:11:38 Prefer no {} for single-line conditionals (prevail
Shishir 2011/05/20 03:48:19 Removed {} around condition. At this point the is
+ webview()->setVisibilityState(WebKit::WebPageVisibilityStateHidden, true);
+ } else {
+ webview()->setVisibilityState(WebKit::WebPageVisibilityStateVisible, true);
+ }
+
// A navigation resulting from loading a javascript URL should not be treated
// as a browser initiated event. Instead, we want it to look as if the page
// initiated any load resulting from JS execution.
@@ -3879,6 +3886,7 @@ void RenderView::OnWasHidden() {
if (webview()) {
webview()->settings()->setMinimumTimerInterval(
webkit_glue::kBackgroundTabTimerInterval);
+ webview()->setVisibilityState(WebKit::WebPageVisibilityStateHidden, false);
}
#if defined(OS_MACOSX)
@@ -3897,6 +3905,7 @@ void RenderView::OnWasRestored(bool needs_repainting) {
if (webview()) {
webview()->settings()->setMinimumTimerInterval(
webkit_glue::kForegroundTabTimerInterval);
+ webview()->setVisibilityState(WebKit::WebPageVisibilityStateVisible, false);
}
#if defined(OS_MACOSX)
@@ -4097,6 +4106,14 @@ void RenderView::registerProtocolHandler(const WebString& scheme,
title));
}
+WebKit::WebPageVisibilityState RenderView::visibilityState() const {
+ if (is_hidden()) {
brettw 2011/05/18 22:11:38 Ditto remove the {}
Shishir 2011/05/20 03:48:19 Done.
+ return WebKit::WebPageVisibilityStateHidden;
+ } else {
+ return WebKit::WebPageVisibilityStateVisible;
+ }
+}
+
bool RenderView::IsNonLocalTopLevelNavigation(
const GURL& url, WebKit::WebFrame* frame, WebKit::WebNavigationType type) {
// Must be a top level frame.
« content/browser/tab_contents/tab_contents_delegate.h ('K') | « content/renderer/render_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698