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

Side by Side Diff: chrome/browser/renderer_host/render_widget_host.cc

Issue 6010004: Refactor RenderWidgetHost::set_paint_observer() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove helper classes per review Created 9 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/renderer_host/render_widget_host.h" 5 #include "chrome/browser/renderer_host/render_widget_host.h"
6 6
7 #include "app/keyboard_codes.h" 7 #include "app/keyboard_codes.h"
8 #include "base/auto_reset.h" 8 #include "base/auto_reset.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
11 #include "base/metrics/histogram.h" 11 #include "base/metrics/histogram.h"
12 #include "chrome/browser/accessibility/browser_accessibility_state.h" 12 #include "chrome/browser/accessibility/browser_accessibility_state.h"
13 #include "chrome/browser/metrics/user_metrics.h" 13 #include "chrome/browser/metrics/user_metrics.h"
14 #include "chrome/browser/renderer_host/backing_store.h" 14 #include "chrome/browser/renderer_host/backing_store.h"
15 #include "chrome/browser/renderer_host/backing_store_manager.h" 15 #include "chrome/browser/renderer_host/backing_store_manager.h"
16 #include "chrome/browser/renderer_host/render_process_host.h" 16 #include "chrome/browser/renderer_host/render_process_host.h"
17 #include "chrome/browser/renderer_host/render_widget_helper.h" 17 #include "chrome/browser/renderer_host/render_widget_helper.h"
18 #include "chrome/browser/renderer_host/render_widget_host_painting_observer.h"
19 #include "chrome/browser/renderer_host/render_widget_host_view.h" 18 #include "chrome/browser/renderer_host/render_widget_host_view.h"
20 #include "chrome/common/chrome_switches.h" 19 #include "chrome/common/chrome_switches.h"
21 #include "chrome/common/result_codes.h" 20 #include "chrome/common/result_codes.h"
22 #include "chrome/common/native_web_keyboard_event.h" 21 #include "chrome/common/native_web_keyboard_event.h"
23 #include "chrome/common/notification_service.h" 22 #include "chrome/common/notification_service.h"
24 #include "chrome/common/render_messages.h" 23 #include "chrome/common/render_messages.h"
25 #include "chrome/common/render_messages_params.h" 24 #include "chrome/common/render_messages_params.h"
26 #include "third_party/WebKit/WebKit/chromium/public/WebCompositionUnderline.h" 25 #include "third_party/WebKit/WebKit/chromium/public/WebCompositionUnderline.h"
27 #include "webkit/glue/webcursor.h" 26 #include "webkit/glue/webcursor.h"
28 #include "webkit/plugins/npapi/webplugin.h" 27 #include "webkit/plugins/npapi/webplugin.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 66
68 /////////////////////////////////////////////////////////////////////////////// 67 ///////////////////////////////////////////////////////////////////////////////
69 // RenderWidgetHost 68 // RenderWidgetHost
70 69
71 RenderWidgetHost::RenderWidgetHost(RenderProcessHost* process, 70 RenderWidgetHost::RenderWidgetHost(RenderProcessHost* process,
72 int routing_id) 71 int routing_id)
73 : renderer_initialized_(false), 72 : renderer_initialized_(false),
74 renderer_accessible_(false), 73 renderer_accessible_(false),
75 view_(NULL), 74 view_(NULL),
76 process_(process), 75 process_(process),
77 painting_observer_(NULL),
78 routing_id_(routing_id), 76 routing_id_(routing_id),
79 is_loading_(false), 77 is_loading_(false),
80 is_hidden_(false), 78 is_hidden_(false),
81 is_accelerated_compositing_active_(false), 79 is_accelerated_compositing_active_(false),
82 repaint_ack_pending_(false), 80 repaint_ack_pending_(false),
83 resize_ack_pending_(false), 81 resize_ack_pending_(false),
84 mouse_move_pending_(false), 82 mouse_move_pending_(false),
85 mouse_wheel_pending_(false), 83 mouse_wheel_pending_(false),
86 needs_repainting_on_restore_(false), 84 needs_repainting_on_restore_(false),
87 is_unresponsive_(false), 85 is_unresponsive_(false),
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 789
792 void RenderWidgetHost::OnMsgRequestMove(const gfx::Rect& pos) { 790 void RenderWidgetHost::OnMsgRequestMove(const gfx::Rect& pos) {
793 // Note that we ignore the position. 791 // Note that we ignore the position.
794 if (view_) { 792 if (view_) {
795 view_->SetSize(pos.size()); 793 view_->SetSize(pos.size());
796 Send(new ViewMsg_Move_ACK(routing_id_)); 794 Send(new ViewMsg_Move_ACK(routing_id_));
797 } 795 }
798 } 796 }
799 797
800 void RenderWidgetHost::OnMsgPaintAtSizeAck(int tag, const gfx::Size& size) { 798 void RenderWidgetHost::OnMsgPaintAtSizeAck(int tag, const gfx::Size& size) {
801 if (painting_observer_) { 799 PaintAtSizeAckDetails details = {tag, size};
802 painting_observer_->WidgetDidReceivePaintAtSizeAck(this, tag, size); 800 gfx::Size size_details = size;
803 } 801 NotificationService::current()->Notify(
802 NotificationType::RENDER_WIDGET_HOST_DID_RECEIVE_PAINT_AT_SIZE_ACK,
803 Source<RenderWidgetHost>(this),
804 Details<PaintAtSizeAckDetails>(&details));
804 } 805 }
805 806
806 void RenderWidgetHost::OnMsgUpdateRect( 807 void RenderWidgetHost::OnMsgUpdateRect(
807 const ViewHostMsg_UpdateRect_Params& params) { 808 const ViewHostMsg_UpdateRect_Params& params) {
808 TimeTicks paint_start = TimeTicks::Now(); 809 TimeTicks paint_start = TimeTicks::Now();
809 810
810 if (paint_observer_.get()) 811 NotificationService::current()->Notify(
811 paint_observer_->RenderWidgetHostWillPaint(this); 812 NotificationType::RENDER_WIDGET_HOST_WILL_PAINT,
813 Source<RenderWidgetHost>(this),
814 NotificationService::NoDetails());
812 815
813 // Update our knowledge of the RenderWidget's size. 816 // Update our knowledge of the RenderWidget's size.
814 current_size_ = params.view_size; 817 current_size_ = params.view_size;
815 818
816 bool is_resize_ack = 819 bool is_resize_ack =
817 ViewHostMsg_UpdateRect_Flags::is_resize_ack(params.flags); 820 ViewHostMsg_UpdateRect_Flags::is_resize_ack(params.flags);
818 821
819 // resize_ack_pending_ needs to be cleared before we call DidPaintRect, since 822 // resize_ack_pending_ needs to be cleared before we call DidPaintRect, since
820 // that will end up reaching GetBackingStore. 823 // that will end up reaching GetBackingStore.
821 if (is_resize_ack) { 824 if (is_resize_ack) {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 // dispatch other window messages which could cause the view to be 896 // dispatch other window messages which could cause the view to be
894 // destroyed. 897 // destroyed.
895 if (view_ && !is_accelerated_compositing_active_) { 898 if (view_ && !is_accelerated_compositing_active_) {
896 view_being_painted_ = true; 899 view_being_painted_ = true;
897 view_->DidUpdateBackingStore(params.scroll_rect, params.dx, params.dy, 900 view_->DidUpdateBackingStore(params.scroll_rect, params.dx, params.dy,
898 params.copy_rects); 901 params.copy_rects);
899 view_being_painted_ = false; 902 view_being_painted_ = false;
900 } 903 }
901 } 904 }
902 905
903 if (paint_observer_.get()) 906 NotificationService::current()->Notify(
904 paint_observer_->RenderWidgetHostDidPaint(this); 907 NotificationType::RENDER_WIDGET_HOST_DID_PAINT,
908 Source<RenderWidgetHost>(this),
909 NotificationService::NoDetails());
905 910
906 // If we got a resize ack, then perhaps we have another resize to send? 911 // If we got a resize ack, then perhaps we have another resize to send?
907 if (is_resize_ack && view_) { 912 if (is_resize_ack && view_) {
908 // WasResized checks the current size and sends the resize update only 913 // WasResized checks the current size and sends the resize update only
909 // when something was actually changed. 914 // when something was actually changed.
910 WasResized(); 915 WasResized();
911 } 916 }
912 917
913 if (painting_observer_) 918 NotificationService::current()->Notify(
914 painting_observer_->WidgetDidUpdateBackingStore(this); 919 NotificationType::RENDER_WIDGET_HOST_DID_UPDATE_BACKING_STORE,
920 Source<RenderWidgetHost>(this),
921 NotificationService::NoDetails());
915 922
916 // Log the time delta for processing a paint message. 923 // Log the time delta for processing a paint message.
917 TimeDelta delta = TimeTicks::Now() - paint_start; 924 TimeDelta delta = TimeTicks::Now() - paint_start;
918 UMA_HISTOGRAM_TIMES("MPArch.RWH_OnMsgUpdateRect", delta); 925 UMA_HISTOGRAM_TIMES("MPArch.RWH_OnMsgUpdateRect", delta);
919 } 926 }
920 927
921 void RenderWidgetHost::OnMsgInputEventAck(const IPC::Message& message) { 928 void RenderWidgetHost::OnMsgInputEventAck(const IPC::Message& message) {
922 // Log the time delta for processing an input event. 929 // Log the time delta for processing an input event.
923 TimeDelta delta = TimeTicks::Now() - input_event_start_time_; 930 TimeDelta delta = TimeTicks::Now() - input_event_start_time_;
924 UMA_HISTOGRAM_TIMES("MPArch.RWH_InputEventDelta", delta); 931 UMA_HISTOGRAM_TIMES("MPArch.RWH_InputEventDelta", delta);
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
1248 return; 1255 return;
1249 1256
1250 for (int i = 0; i < static_cast<int>(deferred_plugin_handles_.size()); i++) { 1257 for (int i = 0; i < static_cast<int>(deferred_plugin_handles_.size()); i++) {
1251 #if defined(TOOLKIT_USES_GTK) 1258 #if defined(TOOLKIT_USES_GTK)
1252 view_->CreatePluginContainer(deferred_plugin_handles_[i]); 1259 view_->CreatePluginContainer(deferred_plugin_handles_[i]);
1253 #endif 1260 #endif
1254 } 1261 }
1255 1262
1256 deferred_plugin_handles_.clear(); 1263 deferred_plugin_handles_.clear();
1257 } 1264 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698