| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_view_views.h" | 5 #include "chrome/browser/renderer_host/render_widget_host_view_views.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 #include "ui/base/text/text_elider.h" | 31 #include "ui/base/text/text_elider.h" |
| 32 #include "ui/gfx/canvas.h" | 32 #include "ui/gfx/canvas.h" |
| 33 #include "ui/gfx/canvas_skia.h" | 33 #include "ui/gfx/canvas_skia.h" |
| 34 #include "ui/views/ime/input_method.h" | 34 #include "ui/views/ime/input_method.h" |
| 35 #include "views/events/event.h" | 35 #include "views/events/event.h" |
| 36 #include "views/views_delegate.h" | 36 #include "views/views_delegate.h" |
| 37 #include "views/widget/tooltip_manager.h" | 37 #include "views/widget/tooltip_manager.h" |
| 38 #include "views/widget/widget.h" | 38 #include "views/widget/widget.h" |
| 39 | 39 |
| 40 #if defined(UI_COMPOSITOR_IMAGE_TRANSPORT) | 40 #if defined(UI_COMPOSITOR_IMAGE_TRANSPORT) |
| 41 #include "base/bind.h" | |
| 42 #include "content/browser/gpu/gpu_process_host_ui_shim.h" | |
| 43 #include "content/browser/renderer_host/accelerated_surface_container_linux.h" | 41 #include "content/browser/renderer_host/accelerated_surface_container_linux.h" |
| 44 #include "content/common/gpu/gpu_messages.h" | |
| 45 #include "ui/gfx/gl/gl_bindings.h" | 42 #include "ui/gfx/gl/gl_bindings.h" |
| 46 #endif | 43 #endif |
| 47 | 44 |
| 48 #if defined(TOOLKIT_USES_GTK) | 45 #if defined(TOOLKIT_USES_GTK) |
| 49 #include <gdk/gdkx.h> | 46 #include <gdk/gdkx.h> |
| 50 #include <gtk/gtk.h> | 47 #include <gtk/gtk.h> |
| 51 #include <gtk/gtkwindow.h> | 48 #include <gtk/gtkwindow.h> |
| 52 | 49 |
| 53 #include "content/browser/renderer_host/gtk_window_utils.h" | 50 #include "content/browser/renderer_host/gtk_window_utils.h" |
| 54 #include "views/widget/native_widget_gtk.h" | 51 #include "views/widget/native_widget_gtk.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 WebKit::WebMouseEvent* wmevent) { | 89 WebKit::WebMouseEvent* wmevent) { |
| 93 wmevent->timeStampSeconds = base::Time::Now().ToDoubleT(); | 90 wmevent->timeStampSeconds = base::Time::Now().ToDoubleT(); |
| 94 wmevent->modifiers = WebInputEventFlagsFromViewsEvent(event); | 91 wmevent->modifiers = WebInputEventFlagsFromViewsEvent(event); |
| 95 | 92 |
| 96 wmevent->windowX = wmevent->x = event.x(); | 93 wmevent->windowX = wmevent->x = event.x(); |
| 97 wmevent->windowY = wmevent->y = event.y(); | 94 wmevent->windowY = wmevent->y = event.y(); |
| 98 wmevent->globalX = wmevent->x + origin.x(); | 95 wmevent->globalX = wmevent->x + origin.x(); |
| 99 wmevent->globalY = wmevent->y + origin.y(); | 96 wmevent->globalY = wmevent->y + origin.y(); |
| 100 } | 97 } |
| 101 | 98 |
| 102 #if defined(UI_COMPOSITOR_IMAGE_TRANSPORT) | |
| 103 void AcknowledgeSwapBuffers(int32 route_id, int gpu_host_id) { | |
| 104 // It's possible that gpu_host_id is no longer valid at this point (like if | |
| 105 // gpu process was restarted after a crash). SendToGpuHost handles this. | |
| 106 GpuProcessHostUIShim::SendToGpuHost(gpu_host_id, | |
| 107 new AcceleratedSurfaceMsg_BuffersSwappedACK(route_id)); | |
| 108 } | |
| 109 #endif | |
| 110 | |
| 111 } // namespace | 99 } // namespace |
| 112 | 100 |
| 113 RenderWidgetHostViewViews::RenderWidgetHostViewViews(RenderWidgetHost* host) | 101 RenderWidgetHostViewViews::RenderWidgetHostViewViews(RenderWidgetHost* host) |
| 114 : host_(host), | 102 : host_(host), |
| 115 about_to_validate_and_paint_(false), | 103 about_to_validate_and_paint_(false), |
| 116 is_hidden_(false), | 104 is_hidden_(false), |
| 117 is_loading_(false), | 105 is_loading_(false), |
| 118 native_cursor_(gfx::kNullCursor), | 106 native_cursor_(gfx::kNullCursor), |
| 119 is_showing_context_menu_(false), | 107 is_showing_context_menu_(false), |
| 120 visually_deemphasized_(false), | 108 visually_deemphasized_(false), |
| (...skipping 1023 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1144 } | 1132 } |
| 1145 | 1133 |
| 1146 void RenderWidgetHostViewViews::AcceleratedSurfaceBuffersSwapped( | 1134 void RenderWidgetHostViewViews::AcceleratedSurfaceBuffersSwapped( |
| 1147 uint64 surface_id, | 1135 uint64 surface_id, |
| 1148 int32 route_id, | 1136 int32 route_id, |
| 1149 int gpu_host_id) { | 1137 int gpu_host_id) { |
| 1150 SetExternalTexture(accelerated_surface_containers_[surface_id]->GetTexture()); | 1138 SetExternalTexture(accelerated_surface_containers_[surface_id]->GetTexture()); |
| 1151 glFlush(); | 1139 glFlush(); |
| 1152 | 1140 |
| 1153 if (!GetWidget() || !GetWidget()->GetCompositor()) { | 1141 if (!GetWidget() || !GetWidget()->GetCompositor()) { |
| 1154 // We have no compositor, so we have no way to display the surface | 1142 // We have no compositor, so we have no way to display the surface. |
| 1155 AcknowledgeSwapBuffers(route_id, gpu_host_id); // Must still send the ACK | 1143 // Must still send the ACK. |
| 1144 host_->AcknowledgeSwapBuffers(route_id, gpu_host_id); |
| 1156 } else { | 1145 } else { |
| 1157 // Add sending an ACK to the list of things to do OnCompositingEnded | 1146 // Add sending an ACK to the list of things to do OnCompositingEnded |
| 1158 on_compositing_ended_callbacks_.push_back( | 1147 on_compositing_ended_callbacks_.push_back( |
| 1159 base::Bind(AcknowledgeSwapBuffers, route_id, gpu_host_id)); | 1148 base::Bind(&RenderWidgetHost::AcknowledgeSwapBuffers, |
| 1149 base::Unretained(host_), route_id, gpu_host_id)); |
| 1160 ui::Compositor *compositor = GetWidget()->GetCompositor(); | 1150 ui::Compositor *compositor = GetWidget()->GetCompositor(); |
| 1161 if (!compositor->HasObserver(this)) | 1151 if (!compositor->HasObserver(this)) |
| 1162 compositor->AddObserver(this); | 1152 compositor->AddObserver(this); |
| 1163 } | 1153 } |
| 1164 } | 1154 } |
| 1165 | 1155 |
| 1166 void RenderWidgetHostViewViews::OnCompositingEnded(ui::Compositor* compositor) { | 1156 void RenderWidgetHostViewViews::OnCompositingEnded(ui::Compositor* compositor) { |
| 1167 for (std::vector< base::Callback<void(void)> >::const_iterator | 1157 for (std::vector< base::Callback<void(void)> >::const_iterator |
| 1168 it = on_compositing_ended_callbacks_.begin(); | 1158 it = on_compositing_ended_callbacks_.begin(); |
| 1169 it != on_compositing_ended_callbacks_.end(); ++it) { | 1159 it != on_compositing_ended_callbacks_.end(); ++it) { |
| 1170 it->Run(); | 1160 it->Run(); |
| 1171 } | 1161 } |
| 1172 on_compositing_ended_callbacks_.clear(); | 1162 on_compositing_ended_callbacks_.clear(); |
| 1173 compositor->RemoveObserver(this); | 1163 compositor->RemoveObserver(this); |
| 1174 } | 1164 } |
| 1175 | 1165 |
| 1176 #endif | 1166 #endif |
| OLD | NEW |