| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/renderer_host/render_widget_host_impl.h" | 5 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 6 | 6 |
| 7 #include <math.h> | 7 #include <math.h> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 #include "base/thread_task_runner_handle.h" | 23 #include "base/thread_task_runner_handle.h" |
| 24 #include "base/trace_event/trace_event.h" | 24 #include "base/trace_event/trace_event.h" |
| 25 #include "cc/base/switches.h" | 25 #include "cc/base/switches.h" |
| 26 #include "cc/output/compositor_frame.h" | 26 #include "cc/output/compositor_frame.h" |
| 27 #include "cc/output/compositor_frame_ack.h" | 27 #include "cc/output/compositor_frame_ack.h" |
| 28 #include "content/browser/accessibility/accessibility_mode_helper.h" | 28 #include "content/browser/accessibility/accessibility_mode_helper.h" |
| 29 #include "content/browser/accessibility/browser_accessibility_state_impl.h" | 29 #include "content/browser/accessibility/browser_accessibility_state_impl.h" |
| 30 #include "content/browser/bad_message.h" | 30 #include "content/browser/bad_message.h" |
| 31 #include "content/browser/browser_plugin/browser_plugin_guest.h" | 31 #include "content/browser/browser_plugin/browser_plugin_guest.h" |
| 32 #include "content/browser/gpu/compositor_util.h" | 32 #include "content/browser/gpu/compositor_util.h" |
| 33 #include "content/browser/gpu/gpu_process_host.h" | |
| 34 #include "content/browser/gpu/gpu_process_host_ui_shim.h" | |
| 35 #include "content/browser/gpu/gpu_surface_tracker.h" | |
| 36 #include "content/browser/renderer_host/dip_util.h" | 33 #include "content/browser/renderer_host/dip_util.h" |
| 37 #include "content/browser/renderer_host/frame_metadata_util.h" | 34 #include "content/browser/renderer_host/frame_metadata_util.h" |
| 38 #include "content/browser/renderer_host/input/input_router_config_helper.h" | 35 #include "content/browser/renderer_host/input/input_router_config_helper.h" |
| 39 #include "content/browser/renderer_host/input/input_router_impl.h" | 36 #include "content/browser/renderer_host/input/input_router_impl.h" |
| 40 #include "content/browser/renderer_host/input/synthetic_gesture.h" | 37 #include "content/browser/renderer_host/input/synthetic_gesture.h" |
| 41 #include "content/browser/renderer_host/input/synthetic_gesture_controller.h" | 38 #include "content/browser/renderer_host/input/synthetic_gesture_controller.h" |
| 42 #include "content/browser/renderer_host/input/synthetic_gesture_target.h" | 39 #include "content/browser/renderer_host/input/synthetic_gesture_target.h" |
| 43 #include "content/browser/renderer_host/input/timeout_monitor.h" | 40 #include "content/browser/renderer_host/input/timeout_monitor.h" |
| 44 #include "content/browser/renderer_host/input/touch_emulator.h" | 41 #include "content/browser/renderer_host/input/touch_emulator.h" |
| 45 #include "content/browser/renderer_host/render_process_host_impl.h" | 42 #include "content/browser/renderer_host/render_process_host_impl.h" |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 }; | 136 }; |
| 140 | 137 |
| 141 } // namespace | 138 } // namespace |
| 142 | 139 |
| 143 /////////////////////////////////////////////////////////////////////////////// | 140 /////////////////////////////////////////////////////////////////////////////// |
| 144 // RenderWidgetHostImpl | 141 // RenderWidgetHostImpl |
| 145 | 142 |
| 146 RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate, | 143 RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate, |
| 147 RenderProcessHost* process, | 144 RenderProcessHost* process, |
| 148 int32_t routing_id, | 145 int32_t routing_id, |
| 149 int32_t surface_id, | |
| 150 bool hidden) | 146 bool hidden) |
| 151 : view_(NULL), | 147 : view_(NULL), |
| 152 hung_renderer_delay_( | 148 hung_renderer_delay_( |
| 153 base::TimeDelta::FromMilliseconds(kHungRendererDelayMs)), | 149 base::TimeDelta::FromMilliseconds(kHungRendererDelayMs)), |
| 154 new_content_rendering_delay_( | 150 new_content_rendering_delay_( |
| 155 base::TimeDelta::FromMilliseconds(kNewContentRenderingDelayMs)), | 151 base::TimeDelta::FromMilliseconds(kNewContentRenderingDelayMs)), |
| 156 renderer_initialized_(false), | 152 renderer_initialized_(false), |
| 157 delegate_(delegate), | 153 delegate_(delegate), |
| 158 process_(process), | 154 process_(process), |
| 159 routing_id_(routing_id), | 155 routing_id_(routing_id), |
| 160 surface_id_(surface_id), | |
| 161 is_loading_(false), | 156 is_loading_(false), |
| 162 is_hidden_(hidden), | 157 is_hidden_(hidden), |
| 163 repaint_ack_pending_(false), | 158 repaint_ack_pending_(false), |
| 164 resize_ack_pending_(false), | 159 resize_ack_pending_(false), |
| 165 color_profile_out_of_date_(false), | 160 color_profile_out_of_date_(false), |
| 166 auto_resize_enabled_(false), | 161 auto_resize_enabled_(false), |
| 167 waiting_for_screen_rects_ack_(false), | 162 waiting_for_screen_rects_ack_(false), |
| 168 needs_repainting_on_restore_(false), | 163 needs_repainting_on_restore_(false), |
| 169 is_unresponsive_(false), | 164 is_unresponsive_(false), |
| 170 in_flight_event_count_(0), | 165 in_flight_event_count_(0), |
| 171 in_get_backing_store_(false), | 166 in_get_backing_store_(false), |
| 172 ignore_input_events_(false), | 167 ignore_input_events_(false), |
| 173 text_direction_updated_(false), | 168 text_direction_updated_(false), |
| 174 text_direction_(blink::WebTextDirectionLeftToRight), | 169 text_direction_(blink::WebTextDirectionLeftToRight), |
| 175 text_direction_canceled_(false), | 170 text_direction_canceled_(false), |
| 176 suppress_next_char_events_(false), | 171 suppress_next_char_events_(false), |
| 177 pending_mouse_lock_request_(false), | 172 pending_mouse_lock_request_(false), |
| 178 allow_privileged_mouse_lock_(false), | 173 allow_privileged_mouse_lock_(false), |
| 179 has_touch_handler_(false), | 174 has_touch_handler_(false), |
| 180 next_browser_snapshot_id_(1), | 175 next_browser_snapshot_id_(1), |
| 181 owned_by_render_frame_host_(false), | 176 owned_by_render_frame_host_(false), |
| 182 is_focused_(false), | 177 is_focused_(false), |
| 183 weak_factory_(this) { | 178 weak_factory_(this) { |
| 184 CHECK(delegate_); | 179 CHECK(delegate_); |
| 185 CHECK_NE(MSG_ROUTING_NONE, routing_id_); | 180 CHECK_NE(MSG_ROUTING_NONE, routing_id_); |
| 186 DCHECK_EQ(surface_id_, GpuSurfaceTracker::Get()->LookupSurfaceForRenderer( | |
| 187 process_->GetID(), routing_id_)); | |
| 188 | 181 |
| 189 std::pair<RoutingIDWidgetMap::iterator, bool> result = | 182 std::pair<RoutingIDWidgetMap::iterator, bool> result = |
| 190 g_routing_id_widget_map.Get().insert(std::make_pair( | 183 g_routing_id_widget_map.Get().insert(std::make_pair( |
| 191 RenderWidgetHostID(process->GetID(), routing_id_), this)); | 184 RenderWidgetHostID(process->GetID(), routing_id_), this)); |
| 192 CHECK(result.second) << "Inserting a duplicate item!"; | 185 CHECK(result.second) << "Inserting a duplicate item!"; |
| 193 process_->AddRoute(routing_id_, this); | 186 process_->AddRoute(routing_id_, this); |
| 194 | 187 |
| 195 // If we're initially visible, tell the process host that we're alive. | 188 // If we're initially visible, tell the process host that we're alive. |
| 196 // Otherwise we'll notify the process host when we are first shown. | 189 // Otherwise we'll notify the process host when we are first shown. |
| 197 if (!hidden) | 190 if (!hidden) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 217 new_content_rendering_timeout_.reset(new TimeoutMonitor( | 210 new_content_rendering_timeout_.reset(new TimeoutMonitor( |
| 218 base::Bind(&RenderWidgetHostImpl::ClearDisplayedGraphics, | 211 base::Bind(&RenderWidgetHostImpl::ClearDisplayedGraphics, |
| 219 weak_factory_.GetWeakPtr()))); | 212 weak_factory_.GetWeakPtr()))); |
| 220 } | 213 } |
| 221 | 214 |
| 222 RenderWidgetHostImpl::~RenderWidgetHostImpl() { | 215 RenderWidgetHostImpl::~RenderWidgetHostImpl() { |
| 223 if (view_weak_) | 216 if (view_weak_) |
| 224 view_weak_->RenderWidgetHostGone(); | 217 view_weak_->RenderWidgetHostGone(); |
| 225 SetView(NULL); | 218 SetView(NULL); |
| 226 | 219 |
| 227 GpuSurfaceTracker::Get()->RemoveSurface(surface_id_); | |
| 228 surface_id_ = 0; | |
| 229 | |
| 230 process_->RemoveRoute(routing_id_); | 220 process_->RemoveRoute(routing_id_); |
| 231 g_routing_id_widget_map.Get().erase( | 221 g_routing_id_widget_map.Get().erase( |
| 232 RenderWidgetHostID(process_->GetID(), routing_id_)); | 222 RenderWidgetHostID(process_->GetID(), routing_id_)); |
| 233 | 223 |
| 234 if (delegate_) | 224 if (delegate_) |
| 235 delegate_->RenderWidgetDeleted(this); | 225 delegate_->RenderWidgetDeleted(this); |
| 236 } | 226 } |
| 237 | 227 |
| 238 // static | 228 // static |
| 239 RenderWidgetHost* RenderWidgetHost::FromID( | 229 RenderWidgetHost* RenderWidgetHost::FromID( |
| (...skipping 1905 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2145 } | 2135 } |
| 2146 | 2136 |
| 2147 #if defined(OS_WIN) | 2137 #if defined(OS_WIN) |
| 2148 gfx::NativeViewAccessible | 2138 gfx::NativeViewAccessible |
| 2149 RenderWidgetHostImpl::GetParentNativeViewAccessible() { | 2139 RenderWidgetHostImpl::GetParentNativeViewAccessible() { |
| 2150 return delegate_ ? delegate_->GetParentNativeViewAccessible() : NULL; | 2140 return delegate_ ? delegate_->GetParentNativeViewAccessible() : NULL; |
| 2151 } | 2141 } |
| 2152 #endif | 2142 #endif |
| 2153 | 2143 |
| 2154 } // namespace content | 2144 } // namespace content |
| OLD | NEW |