Index: ppapi/proxy/ppb_text_input_proxy.cc |
diff --git a/ppapi/proxy/ppb_text_input_proxy.cc b/ppapi/proxy/ppb_text_input_proxy.cc |
deleted file mode 100644 |
index 3d2f873ba48ec8b2d58245d0e69eea838feadcd6..0000000000000000000000000000000000000000 |
--- a/ppapi/proxy/ppb_text_input_proxy.cc |
+++ /dev/null |
@@ -1,141 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "ppapi/proxy/ppb_text_input_proxy.h" |
- |
-#include "ppapi/proxy/plugin_dispatcher.h" |
-#include "ppapi/proxy/ppapi_messages.h" |
-#include "ppapi/shared_impl/ppb_instance_shared.h" |
-#include "ppapi/thunk/enter.h" |
-#include "ppapi/thunk/thunk.h" |
- |
-namespace ppapi { |
-namespace proxy { |
- |
-namespace { |
- |
-void RequestSurroundingText(PP_Instance instance) { |
- PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(instance); |
- if (!dispatcher) |
- return; // Instance has gone away while message was pending. |
- |
- // Just fake out a RequestSurroundingText message to the proxy for the PPP |
- // interface. |
- InterfaceProxy* proxy = dispatcher->GetInterfaceProxy(API_ID_PPB_TEXT_INPUT); |
- if (!proxy) |
- return; |
- proxy->OnMessageReceived(PpapiMsg_PPPTextInput_RequestSurroundingText( |
- API_ID_PPP_TEXT_INPUT, instance, |
- PPB_Instance_Shared::kExtraCharsForTextInput)); |
-} |
- |
-} // namespace |
- |
-PPB_TextInput_Proxy::PPB_TextInput_Proxy(Dispatcher* dispatcher) |
- : InterfaceProxy(dispatcher) { |
-} |
- |
-PPB_TextInput_Proxy::~PPB_TextInput_Proxy() { |
-} |
- |
-ppapi::thunk::PPB_TextInput_FunctionAPI* |
-PPB_TextInput_Proxy::AsPPB_TextInput_FunctionAPI() { |
- return this; |
-} |
- |
-void PPB_TextInput_Proxy::SetTextInputType(PP_Instance instance, |
- PP_TextInput_Type type) { |
- dispatcher()->Send(new PpapiHostMsg_PPBTextInput_SetTextInputType( |
- API_ID_PPB_TEXT_INPUT, instance, type)); |
-} |
- |
-void PPB_TextInput_Proxy::UpdateCaretPosition(PP_Instance instance, |
- const PP_Rect& caret, |
- const PP_Rect& bounding_box) { |
- dispatcher()->Send(new PpapiHostMsg_PPBTextInput_UpdateCaretPosition( |
- API_ID_PPB_TEXT_INPUT, instance, caret, bounding_box)); |
-} |
- |
-void PPB_TextInput_Proxy::CancelCompositionText(PP_Instance instance) { |
- dispatcher()->Send(new PpapiHostMsg_PPBTextInput_CancelCompositionText( |
- API_ID_PPB_TEXT_INPUT, instance)); |
-} |
- |
-void PPB_TextInput_Proxy::SelectionChanged(PP_Instance instance) { |
- // The "right" way to do this is to send the message to the host. However, |
- // all it will do it call RequestSurroundingText with a hardcoded number of |
- // characters in response, which is an entire IPC round-trip. |
- // |
- // We can avoid this round-trip by just implementing the |
- // RequestSurroundingText logic in the plugin process. If the logic in the |
- // host becomes more complex (like a more adaptive number of characters), |
- // we'll need to reevanuate whether we want to do the round trip instead. |
- // |
- // Be careful to post a task to avoid reentering the plugin. |
- MessageLoop::current()->PostTask( |
- FROM_HERE, |
- base::Bind(&RequestSurroundingText, instance)); |
-} |
- |
-void PPB_TextInput_Proxy::UpdateSurroundingText(PP_Instance instance, |
- const char* text, |
- uint32_t caret, |
- uint32_t anchor) { |
- dispatcher()->Send(new PpapiHostMsg_PPBTextInput_UpdateSurroundingText( |
- API_ID_PPB_TEXT_INPUT, instance, text, caret, anchor)); |
-} |
- |
-bool PPB_TextInput_Proxy::OnMessageReceived(const IPC::Message& msg) { |
- bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP(PPB_TextInput_Proxy, msg) |
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBTextInput_SetTextInputType, |
- OnMsgSetTextInputType) |
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBTextInput_UpdateCaretPosition, |
- OnMsgUpdateCaretPosition) |
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBTextInput_CancelCompositionText, |
- OnMsgCancelCompositionText) |
- IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBTextInput_UpdateSurroundingText, |
- OnMsgUpdateSurroundingText) |
- IPC_MESSAGE_UNHANDLED(handled = false) |
- IPC_END_MESSAGE_MAP() |
- return handled; |
-} |
- |
-void PPB_TextInput_Proxy::OnMsgSetTextInputType(PP_Instance instance, |
- PP_TextInput_Type type) { |
- ppapi::thunk::EnterFunctionNoLock<PPB_TextInput_FunctionAPI> enter(instance, |
- true); |
- if (enter.succeeded()) |
- enter.functions()->SetTextInputType(instance, type); |
-} |
- |
-void PPB_TextInput_Proxy::OnMsgUpdateCaretPosition(PP_Instance instance, |
- PP_Rect caret, |
- PP_Rect bounding_box) { |
- ppapi::thunk::EnterFunctionNoLock<PPB_TextInput_FunctionAPI> enter(instance, |
- true); |
- if (enter.succeeded()) |
- enter.functions()->UpdateCaretPosition(instance, caret, bounding_box); |
-} |
- |
-void PPB_TextInput_Proxy::OnMsgCancelCompositionText(PP_Instance instance) { |
- ppapi::thunk::EnterFunctionNoLock<PPB_TextInput_FunctionAPI> enter(instance, |
- true); |
- if (enter.succeeded()) |
- enter.functions()->CancelCompositionText(instance); |
-} |
- |
-void PPB_TextInput_Proxy::OnMsgUpdateSurroundingText(PP_Instance instance, |
- const std::string& text, |
- uint32_t caret, |
- uint32_t anchor) { |
- ppapi::thunk::EnterFunctionNoLock<PPB_TextInput_FunctionAPI> enter(instance, |
- true); |
- if (enter.succeeded()) |
- enter.functions()->UpdateSurroundingText(instance, |
- text.c_str(), caret, anchor); |
-} |
- |
-} // namespace proxy |
-} // namespace ppapi |