summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/ppb_text_input_proxy.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/proxy/ppb_text_input_proxy.cc')
-rw-r--r--ppapi/proxy/ppb_text_input_proxy.cc141
1 files changed, 0 insertions, 141 deletions
diff --git a/ppapi/proxy/ppb_text_input_proxy.cc b/ppapi/proxy/ppb_text_input_proxy.cc
deleted file mode 100644
index 3d2f873..0000000
--- 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