Chromium Code Reviews| 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 "webkit/plugins/ppapi/ppapi_plugin_instance.h" | 5 #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/linked_ptr.h" | 10 #include "base/memory/linked_ptr.h" |
| (...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 677 scoped_refptr<PluginInstance> ref(this); | 677 scoped_refptr<PluginInstance> ref(this); |
| 678 | 678 |
| 679 bool rv = false; | 679 bool rv = false; |
| 680 if (LoadInputEventInterface()) { | 680 if (LoadInputEventInterface()) { |
| 681 PP_InputEvent_Class event_class = ClassifyInputEvent(event.type); | 681 PP_InputEvent_Class event_class = ClassifyInputEvent(event.type); |
| 682 if (!event_class) | 682 if (!event_class) |
| 683 return false; | 683 return false; |
| 684 | 684 |
| 685 if ((filtered_input_event_mask_ & event_class) || | 685 if ((filtered_input_event_mask_ & event_class) || |
| 686 (input_event_mask_ & event_class)) { | 686 (input_event_mask_ & event_class)) { |
| 687 bool lowlevel_keyboard_events = (filtered_input_event_mask_ & | |
| 688 PP_INPUTEVENT_CLASS_LOWLEVEL_KEYBOARD_Dev); | |
| 689 | |
| 687 // Actually send the event. | 690 // Actually send the event. |
| 688 std::vector< ::ppapi::InputEventData > events; | 691 std::vector< ::ppapi::InputEventData > events; |
| 689 CreateInputEventData(event, &events); | 692 CreateInputEventData(event, lowlevel_keyboard_events, &events); |
| 690 | 693 |
| 691 // Each input event may generate more than one PP_InputEvent. | 694 // Each input event may generate more than one PP_InputEvent. |
| 692 for (size_t i = 0; i < events.size(); i++) { | 695 for (size_t i = 0; i < events.size(); i++) { |
| 693 if (filtered_input_event_mask_ & event_class) | 696 if (filtered_input_event_mask_ & event_class) |
| 694 events[i].is_filtered = true; | 697 events[i].is_filtered = true; |
| 695 else | 698 else |
| 696 rv = true; // Unfiltered events are assumed to be handled. | 699 rv = true; // Unfiltered events are assumed to be handled. |
| 697 scoped_refptr<PPB_InputEvent_Shared> event_resource( | 700 scoped_refptr<PPB_InputEvent_Shared> event_resource( |
| 698 new PPB_InputEvent_Shared(PPB_InputEvent_Shared::InitAsImpl(), | 701 new PPB_InputEvent_Shared(PPB_InputEvent_Shared::InitAsImpl(), |
| 699 pp_instance(), events[i])); | 702 pp_instance(), events[i])); |
| (...skipping 1191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1891 return PP_TRUE; | 1894 return PP_TRUE; |
| 1892 } | 1895 } |
| 1893 | 1896 |
| 1894 PP_Bool PluginInstance::FlashGetScreenSize(PP_Instance instance, | 1897 PP_Bool PluginInstance::FlashGetScreenSize(PP_Instance instance, |
| 1895 PP_Size* size) { | 1898 PP_Size* size) { |
| 1896 return GetScreenSize(instance, size); | 1899 return GetScreenSize(instance, size); |
| 1897 } | 1900 } |
| 1898 | 1901 |
| 1899 int32_t PluginInstance::RequestInputEvents(PP_Instance instance, | 1902 int32_t PluginInstance::RequestInputEvents(PP_Instance instance, |
| 1900 uint32_t event_classes) { | 1903 uint32_t event_classes) { |
| 1904 if (event_classes & PP_INPUTEVENT_CLASS_LOWLEVEL_KEYBOARD_Dev) | |
| 1905 event_classes |= PP_INPUTEVENT_CLASS_KEYBOARD; | |
|
Wez
2012/02/07 23:48:13
Can we not just require that the caller supply bot
garykac
2012/02/09 14:26:04
No longer applicable.
| |
| 1906 | |
| 1901 input_event_mask_ |= event_classes; | 1907 input_event_mask_ |= event_classes; |
| 1902 filtered_input_event_mask_ &= ~(event_classes); | 1908 filtered_input_event_mask_ &= ~(event_classes); |
| 1903 return ValidateRequestInputEvents(false, event_classes); | 1909 return ValidateRequestInputEvents(false, event_classes); |
| 1904 } | 1910 } |
| 1905 | 1911 |
| 1906 int32_t PluginInstance::RequestFilteringInputEvents(PP_Instance instance, | 1912 int32_t PluginInstance::RequestFilteringInputEvents(PP_Instance instance, |
| 1907 uint32_t event_classes) { | 1913 uint32_t event_classes) { |
| 1914 if (event_classes & PP_INPUTEVENT_CLASS_LOWLEVEL_KEYBOARD_Dev) | |
| 1915 event_classes |= PP_INPUTEVENT_CLASS_KEYBOARD; | |
| 1916 | |
| 1908 filtered_input_event_mask_ |= event_classes; | 1917 filtered_input_event_mask_ |= event_classes; |
| 1909 input_event_mask_ &= ~(event_classes); | 1918 input_event_mask_ &= ~(event_classes); |
| 1910 return ValidateRequestInputEvents(true, event_classes); | 1919 return ValidateRequestInputEvents(true, event_classes); |
| 1911 } | 1920 } |
| 1912 | 1921 |
| 1913 void PluginInstance::ClearInputEventRequest(PP_Instance instance, | 1922 void PluginInstance::ClearInputEventRequest(PP_Instance instance, |
| 1914 uint32_t event_classes) { | 1923 uint32_t event_classes) { |
| 1924 if (event_classes & PP_INPUTEVENT_CLASS_LOWLEVEL_KEYBOARD_Dev) | |
| 1925 event_classes |= PP_INPUTEVENT_CLASS_KEYBOARD; | |
| 1926 | |
| 1915 input_event_mask_ &= ~(event_classes); | 1927 input_event_mask_ &= ~(event_classes); |
| 1916 filtered_input_event_mask_ &= ~(event_classes); | 1928 filtered_input_event_mask_ &= ~(event_classes); |
| 1917 } | 1929 } |
| 1918 | 1930 |
| 1919 void PluginInstance::ZoomChanged(PP_Instance instance, double factor) { | 1931 void PluginInstance::ZoomChanged(PP_Instance instance, double factor) { |
| 1920 // We only want to tell the page to change its zoom if the whole page is the | 1932 // We only want to tell the page to change its zoom if the whole page is the |
| 1921 // plugin. If we're in an iframe, then don't do anything. | 1933 // plugin. If we're in an iframe, then don't do anything. |
| 1922 if (!IsFullPagePlugin()) | 1934 if (!IsFullPagePlugin()) |
| 1923 return; | 1935 return; |
| 1924 container()->zoomLevelChanged(WebView::zoomFactorToZoomLevel(factor)); | 1936 container()->zoomLevelChanged(WebView::zoomFactorToZoomLevel(factor)); |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2086 screen_size_for_fullscreen_ = gfx::Size(); | 2098 screen_size_for_fullscreen_ = gfx::Size(); |
| 2087 WebElement element = container_->element(); | 2099 WebElement element = container_->element(); |
| 2088 element.setAttribute(WebString::fromUTF8(kWidth), width_before_fullscreen_); | 2100 element.setAttribute(WebString::fromUTF8(kWidth), width_before_fullscreen_); |
| 2089 element.setAttribute(WebString::fromUTF8(kHeight), height_before_fullscreen_); | 2101 element.setAttribute(WebString::fromUTF8(kHeight), height_before_fullscreen_); |
| 2090 element.setAttribute(WebString::fromUTF8(kBorder), border_before_fullscreen_); | 2102 element.setAttribute(WebString::fromUTF8(kBorder), border_before_fullscreen_); |
| 2091 element.setAttribute(WebString::fromUTF8(kStyle), style_before_fullscreen_); | 2103 element.setAttribute(WebString::fromUTF8(kStyle), style_before_fullscreen_); |
| 2092 } | 2104 } |
| 2093 | 2105 |
| 2094 } // namespace ppapi | 2106 } // namespace ppapi |
| 2095 } // namespace webkit | 2107 } // namespace webkit |
| OLD | NEW |