diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-09 23:02:42 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-09 23:02:42 +0000 |
commit | cec8588640e68e9fddf73b6f68cedfbaa97080a6 (patch) | |
tree | 99d2e6a04497d7f5103f8effd8bca793d1b12e05 /webkit/glue | |
parent | 090ac3fac1a1d4d49cec412321653c089838f965 (diff) | |
download | chromium_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.cc | 7 | ||||
-rw-r--r-- | webkit/glue/webview_impl.h | 1 | ||||
-rw-r--r-- | webkit/glue/webwidget_delegate.h | 3 | ||||
-rw-r--r-- | webkit/glue/webwidget_impl.cc | 6 | ||||
-rw-r--r-- | webkit/glue/webwidget_impl.h | 1 |
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_; |