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 "webkit/plugins/ppapi/ppapi_plugin_instance.h" | 5 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 if (!event_class) | 447 if (!event_class) |
448 return false; | 448 return false; |
449 | 449 |
450 if ((filtered_input_event_mask_ & event_class) || | 450 if ((filtered_input_event_mask_ & event_class) || |
451 (input_event_mask_ & event_class)) { | 451 (input_event_mask_ & event_class)) { |
452 // Actually send the event. | 452 // Actually send the event. |
453 std::vector< ::ppapi::InputEventData > events; | 453 std::vector< ::ppapi::InputEventData > events; |
454 CreateInputEventData(event, &events); | 454 CreateInputEventData(event, &events); |
455 | 455 |
456 // Each input event may generate more than one PP_InputEvent. | 456 // Each input event may generate more than one PP_InputEvent. |
457 ResourceTracker* tracker = ResourceTracker::Get(); | |
458 for (size_t i = 0; i < events.size(); i++) { | 457 for (size_t i = 0; i < events.size(); i++) { |
459 if (filtered_input_event_mask_ & event_class) | 458 if (filtered_input_event_mask_ & event_class) |
460 events[i].is_filtered = true; | 459 events[i].is_filtered = true; |
461 else | 460 else |
462 rv = true; // Unfiltered events are assumed to be handled. | 461 rv = true; // Unfiltered events are assumed to be handled. |
463 scoped_refptr<PPB_InputEvent_Impl> event_resource( | 462 scoped_refptr<PPB_InputEvent_Impl> event_resource( |
464 new PPB_InputEvent_Impl(this, events[i])); | 463 new PPB_InputEvent_Impl(this, events[i])); |
465 PP_Resource resource = event_resource->GetReference(); | 464 Resource::ScopedResourceId resource_id(event_resource.get()); |
466 | 465 |
467 rv |= PP_ToBool(plugin_input_event_interface_->HandleInputEvent( | 466 rv |= PP_ToBool(plugin_input_event_interface_->HandleInputEvent( |
468 pp_instance(), event_resource->GetReference())); | 467 pp_instance(), resource_id.id)); |
469 | |
470 // Release the reference we took above. | |
471 tracker->UnrefResource(resource); | |
472 } | 468 } |
473 } | 469 } |
474 } | 470 } |
475 | 471 |
476 if (cursor_.get()) | 472 if (cursor_.get()) |
477 *cursor_info = *cursor_; | 473 *cursor_info = *cursor_; |
478 return rv; | 474 return rv; |
479 } | 475 } |
480 | 476 |
481 void PluginInstance::HandlePolicyUpdate(const std::string& policy_json) { | 477 void PluginInstance::HandlePolicyUpdate(const std::string& policy_json) { |
(...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1546 } | 1542 } |
1547 | 1543 |
1548 void PluginInstance::DoSetCursor(WebCursorInfo* cursor) { | 1544 void PluginInstance::DoSetCursor(WebCursorInfo* cursor) { |
1549 cursor_.reset(cursor); | 1545 cursor_.reset(cursor); |
1550 if (fullscreen_container_) | 1546 if (fullscreen_container_) |
1551 fullscreen_container_->DidChangeCursor(*cursor); | 1547 fullscreen_container_->DidChangeCursor(*cursor); |
1552 } | 1548 } |
1553 | 1549 |
1554 } // namespace ppapi | 1550 } // namespace ppapi |
1555 } // namespace webkit | 1551 } // namespace webkit |
OLD | NEW |