summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-09 23:02:42 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-09 23:02:42 +0000
commitcec8588640e68e9fddf73b6f68cedfbaa97080a6 (patch)
tree99d2e6a04497d7f5103f8effd8bca793d1b12e05 /webkit/glue
parent090ac3fac1a1d4d49cec412321653c089838f965 (diff)
downloadchromium_src-cec8588640e68e9fddf73b6f68cedfbaa97080a6.zip
chromium_src-cec8588640e68e9fddf73b6f68cedfbaa97080a6.tar.gz
chromium_src-cec8588640e68e9fddf73b6f68cedfbaa97080a6.tar.bz2
Implement ScrollView::inWindow by plumbing through RenderWidget::is_hidden to improve performance when a tab is in the background.
BUG=2525 Review URL: http://codereview.chromium.org/6503 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3147 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/webview_impl.cc7
-rw-r--r--webkit/glue/webview_impl.h1
-rw-r--r--webkit/glue/webwidget_delegate.h3
-rw-r--r--webkit/glue/webwidget_impl.cc6
-rw-r--r--webkit/glue/webwidget_impl.h1
5 files changed, 18 insertions, 0 deletions
diff --git a/webkit/glue/webview_impl.cc b/webkit/glue/webview_impl.cc
index 85ef80d..ca86104 100644
--- a/webkit/glue/webview_impl.cc
+++ b/webkit/glue/webview_impl.cc
@@ -1469,6 +1469,13 @@ size_t WebViewImpl::getActiveTickmarkIndex(WebCore::Frame* frame) {
return webframe_impl->active_tickmark_index();
}
+bool WebViewImpl::isHidden() {
+ if (!delegate_)
+ return true;
+
+ return delegate_->IsHidden();
+}
+
//-----------------------------------------------------------------------------
// WebCore::BackForwardListClient
diff --git a/webkit/glue/webview_impl.h b/webkit/glue/webview_impl.h
index 1fb2ebb..ebe9e14 100644
--- a/webkit/glue/webview_impl.h
+++ b/webkit/glue/webview_impl.h
@@ -203,6 +203,7 @@ class WebViewImpl : public WebView,
virtual const WTF::Vector<RefPtr<WebCore::Range> >* getTickmarks(
WebCore::Frame* frame);
virtual size_t getActiveTickmarkIndex(WebCore::Frame* frame);
+ virtual bool isHidden();
// WebCore::BackForwardListClient
virtual void didAddHistoryItem(WebCore::HistoryItem* item);
diff --git a/webkit/glue/webwidget_delegate.h b/webkit/glue/webwidget_delegate.h
index faf4d0a..45d0dcc 100644
--- a/webkit/glue/webwidget_delegate.h
+++ b/webkit/glue/webwidget_delegate.h
@@ -79,6 +79,9 @@ class WebWidgetDelegate {
virtual void AddRef() = 0;
virtual void Release() = 0;
+ // Returns true if the widget is in a background tab.
+ virtual bool IsHidden() = 0;
+
WebWidgetDelegate() { }
virtual ~WebWidgetDelegate() { }
diff --git a/webkit/glue/webwidget_impl.cc b/webkit/glue/webwidget_impl.cc
index 36952e0..eb7870a 100644
--- a/webkit/glue/webwidget_impl.cc
+++ b/webkit/glue/webwidget_impl.cc
@@ -252,3 +252,9 @@ void WebWidgetImpl::setFocus() {
delegate_->Focus(this);
}
+bool WebWidgetImpl::isHidden() {
+ if (!delegate_)
+ return true;
+
+ return delegate_->IsHidden();
+}
diff --git a/webkit/glue/webwidget_impl.h b/webkit/glue/webwidget_impl.h
index 5c706a7..ddb4fde 100644
--- a/webkit/glue/webwidget_impl.h
+++ b/webkit/glue/webwidget_impl.h
@@ -85,6 +85,7 @@ class WebWidgetImpl : public WebWidget, public WebCore::WidgetClientWin {
virtual const WTF::Vector<RefPtr<WebCore::Range> >* getTickmarks(
WebCore::Frame* frame);
virtual size_t getActiveTickmarkIndex(WebCore::Frame* frame);
+ virtual bool isHidden();
WebWidgetDelegate* delegate_;
gfx::Size size_;