Chromium Code Reviews| Index: content/renderer/pepper/pepper_plugin_instance_impl.cc |
| diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc |
| index d79c9f96630f73cfa6955beb71b592498802292d..711a7e9424ece1abe979e536b2f1e6fd28099a0e 100644 |
| --- a/content/renderer/pepper/pepper_plugin_instance_impl.cc |
| +++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc |
| @@ -16,7 +16,9 @@ |
| #include "base/strings/utf_offset_string_conversions.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/time/time.h" |
| +#include "cc/base/latency_info_swap_promise.h" |
| #include "cc/layers/texture_layer.h" |
| +#include "cc/trees/layer_tree_host.h" |
| #include "content/common/content_constants_internal.h" |
| #include "content/public/common/content_switches.h" |
| #include "content/public/common/page_zoom.h" |
| @@ -1094,8 +1096,22 @@ bool PepperPluginInstanceImpl::HandleInputEvent( |
| pending_user_gesture_token_.setOutOfProcess(); |
| } |
| + const ui::LatencyInfo* current_event_latency_info = NULL; |
| + if (render_frame_->GetRenderWidget()) { |
| + current_event_latency_info = |
| + render_frame_->GetRenderWidget()->current_event_latency_info(); |
|
piman
2014/04/25 01:59:43
In the future (e.g. after the blink merge), I'm ho
Yufeng Shen (Slow to review)
2014/04/25 20:42:42
Right. I always want to couple WebInputEvent with
|
| + } |
| + |
| // Each input event may generate more than one PP_InputEvent. |
| for (size_t i = 0; i < events.size(); i++) { |
| + if (current_event_latency_info) { |
| + events[i].latency_info.CopyLatencyFrom( |
| + *current_event_latency_info, |
| + ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT); |
| + events[i].latency_info.CopyLatencyFrom( |
| + *current_event_latency_info, |
| + ui::INPUT_EVENT_LATENCY_UI_COMPONENT); |
| + } |
| if (filtered_input_event_mask_ & event_class) |
| events[i].is_filtered = true; |
| else |
| @@ -1983,6 +1999,20 @@ bool PepperPluginInstanceImpl::PrepareTextureMailbox( |
| void PepperPluginInstanceImpl::OnDestruct() { render_frame_ = NULL; } |
| +void PepperPluginInstanceImpl::AddLatencyInfo( |
| + const std::vector<ui::LatencyInfo>& latency_info) { |
| + if (texture_layer_) { |
| + cc::LayerTreeHost* layer_tree_host = texture_layer_->layer_tree_host(); |
|
piman
2014/04/25 01:59:43
I'd rather we went to the compositor via the Rende
Yufeng Shen (Slow to review)
2014/04/25 20:42:42
done.
It now goes through render_frame_->GetRender
|
| + if (layer_tree_host) { |
| + for (size_t i = 0; i < latency_info.size(); i++) { |
| + scoped_ptr<cc::SwapPromise> swap_promise( |
| + new cc::LatencyInfoSwapPromise(latency_info[i])); |
| + layer_tree_host->QueueSwapPromise(swap_promise.Pass()); |
| + } |
| + } |
| + } |
| +} |
| + |
| void PepperPluginInstanceImpl::AddPluginObject(PluginObject* plugin_object) { |
| DCHECK(live_plugin_objects_.find(plugin_object) == |
| live_plugin_objects_.end()); |