diff options
author | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-12 14:46:17 +0000 |
---|---|---|
committer | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-12 14:46:17 +0000 |
commit | f21c613a0ab52b707f8a2effacda74c77f4448ea (patch) | |
tree | 09051d286db764a71b97bc01f35765e607b4d20f /chrome/renderer | |
parent | 822cfc93fe52974b904b7f184c5448dee5d281c5 (diff) | |
download | chromium_src-f21c613a0ab52b707f8a2effacda74c77f4448ea.zip chromium_src-f21c613a0ab52b707f8a2effacda74c77f4448ea.tar.gz chromium_src-f21c613a0ab52b707f8a2effacda74c77f4448ea.tar.bz2 |
This is an attempt at finding the reason for the page_cycler slowness caused by
the new resize corner. Local experiment led me to believe that it is WebKit
that is slower when we specify a resize corner area.
To validate this hypothesis, I always return an empty rect to WebKit, but I
still compute and push the rect to the render widget and I also draw the bitmap
even if this will cause it to be drawn on top of the scroll bars when there is
only one.
TBR=brettw
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9654 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/render_widget.cc | 18 | ||||
-rw-r--r-- | chrome/renderer/render_widget.h | 7 |
2 files changed, 14 insertions, 11 deletions
diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc index fd5dcff..1b20ee7 100644 --- a/chrome/renderer/render_widget.cc +++ b/chrome/renderer/render_widget.cc @@ -229,11 +229,15 @@ void RenderWidget::OnClose() { } } -void RenderWidget::OnResize(const gfx::Size& new_size) { +void RenderWidget::OnResize(const gfx::Size& new_size, + const gfx::Rect& resizer_rect) { // During shutdown we can just ignore this message. if (!webwidget_) return; + // Remember the rect where the resize corner will be drawn. + resizer_rect_ = resizer_rect; + // TODO(darin): We should not need to reset this here. is_hidden_ = false; needs_repainting_on_restore_ = false; @@ -696,14 +700,10 @@ void RenderWidget::GetRootWindowRect(WebWidget* webwidget, gfx::Rect* rect) { void RenderWidget::GetRootWindowResizerRect(WebWidget* webwidget, gfx::Rect* rect) { -#if defined(OS_WIN) - Send(new ViewHostMsg_GetRootWindowResizerRect(routing_id_, host_window_, - rect)); -#else - // TODO(port): mac/linux currently choke on this message. - // See browser/renderer_host/render_message_host.cc. - NOTIMPLEMENTED(); -#endif + // This is disabled to verify if WebKit is responsible for the slow down + // that was witnessed in the page cycler tests when the resize corner + // code was commited... + *rect = gfx::Rect(); // resizer_rect_; } void RenderWidget::OnImeSetInputMode(bool is_active) { diff --git a/chrome/renderer/render_widget.h b/chrome/renderer/render_widget.h index d4d92c4..56ba30c 100644 --- a/chrome/renderer/render_widget.h +++ b/chrome/renderer/render_widget.h @@ -120,7 +120,7 @@ class RenderWidget : public IPC::Channel::Listener, // RenderWidget IPC message handlers void OnClose(); void OnCreatingNewAck(gfx::NativeViewId parent); - void OnResize(const gfx::Size& new_size); + void OnResize(const gfx::Size& new_size, const gfx::Rect& resizer_rect); void OnWasHidden(); void OnWasRestored(bool needs_repainting); void OnPaintRectAck(); @@ -204,6 +204,9 @@ class RenderWidget : public IPC::Channel::Listener, // scroll event is pending. gfx::Rect scroll_rect_; + // The area that must be reserved for drawing the resize corner. + gfx::Rect resizer_rect_; + // The scroll delta for a pending scroll event. gfx::Point scroll_delta_; @@ -262,4 +265,4 @@ class RenderWidget : public IPC::Channel::Listener, DISALLOW_EVIL_CONSTRUCTORS(RenderWidget); }; -#endif // CHROME_RENDERER_RENDER_WIDGET_H__ +#endif // CHROME_RENDERER_RENDER_WIDGET_H__ |