summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authormad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-12 14:46:17 +0000
committermad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-12 14:46:17 +0000
commitf21c613a0ab52b707f8a2effacda74c77f4448ea (patch)
tree09051d286db764a71b97bc01f35765e607b4d20f /chrome/renderer
parent822cfc93fe52974b904b7f184c5448dee5d281c5 (diff)
downloadchromium_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.cc18
-rw-r--r--chrome/renderer/render_widget.h7
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__