Index: extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.cc |
diff --git a/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.cc b/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.cc |
index 05c14d8ecf6bfa1ef936e3a1f4edbbee1b309b8b..ce80c95037261e4b83018b5dce4a97d80dabd4bc 100644 |
--- a/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.cc |
+++ b/extensions/browser/api/virtual_keyboard_private/virtual_keyboard_private_api.cc |
@@ -15,10 +15,6 @@ |
#include "extensions/common/api/virtual_keyboard_private.h" |
#include "ui/events/event.h" |
-namespace SetMode = extensions::api::virtual_keyboard_private::SetMode; |
-namespace SetRequestedKeyboardState = |
- extensions::api::virtual_keyboard_private::SetKeyboardState; |
- |
namespace extensions { |
namespace { |
@@ -27,151 +23,122 @@ const char kNotYetImplementedError[] = |
"API is not implemented on this platform."; |
const char kVirtualKeyboardNotEnabled[] = |
"The virtual keyboard is not enabled."; |
+const char kUnknownError[] = "Unknown error."; |
+ |
+namespace keyboard = api::virtual_keyboard_private; |
+ |
+} // namespace |
-typedef BrowserContextKeyedAPIFactory<VirtualKeyboardAPI> factory; |
+bool VirtualKeyboardPrivateFunction::PreRunValidation(std::string* error) { |
+ if (!UIThreadExtensionFunction::PreRunValidation(error)) |
+ return false; |
-VirtualKeyboardDelegate* GetDelegate(SyncExtensionFunction* f) { |
- VirtualKeyboardAPI* api = factory::Get(f->browser_context()); |
+ VirtualKeyboardAPI* api = |
+ BrowserContextKeyedAPIFactory<VirtualKeyboardAPI>::Get(browser_context()); |
DCHECK(api); |
- return api ? api->delegate() : nullptr; |
+ delegate_ = api->delegate(); |
+ if (!delegate_) { |
+ *error = kNotYetImplementedError; |
+ return false; |
+ } |
+ return true; |
} |
-} // namespace |
+VirtualKeyboardPrivateFunction::~VirtualKeyboardPrivateFunction() {} |
-bool VirtualKeyboardPrivateInsertTextFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) { |
- base::string16 text; |
- EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &text)); |
- return delegate->InsertText(text); |
- } |
- error_ = kNotYetImplementedError; |
- return false; |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateInsertTextFunction::Run() { |
+ base::string16 text; |
+ EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &text)); |
+ if (!delegate()->InsertText(text)) |
+ return RespondNow(Error(kUnknownError)); |
+ return RespondNow(NoArguments()); |
} |
-bool VirtualKeyboardPrivateSendKeyEventFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) { |
- base::Value* options_value = nullptr; |
- base::DictionaryValue* params = nullptr; |
- std::string type; |
- int char_value; |
- int key_code; |
- std::string key_name; |
- int modifiers; |
- |
- EXTENSION_FUNCTION_VALIDATE(args_->Get(0, &options_value)); |
- EXTENSION_FUNCTION_VALIDATE(options_value->GetAsDictionary(¶ms)); |
- EXTENSION_FUNCTION_VALIDATE(params->GetString("type", &type)); |
- EXTENSION_FUNCTION_VALIDATE(params->GetInteger("charValue", &char_value)); |
- EXTENSION_FUNCTION_VALIDATE(params->GetInteger("keyCode", &key_code)); |
- EXTENSION_FUNCTION_VALIDATE(params->GetString("keyName", &key_name)); |
- EXTENSION_FUNCTION_VALIDATE(params->GetInteger("modifiers", &modifiers)); |
- return delegate->SendKeyEvent( |
- type, char_value, key_code, key_name, modifiers); |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateSendKeyEventFunction::Run() { |
+ std::unique_ptr<keyboard::SendKeyEvent::Params> params( |
+ keyboard::SendKeyEvent::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ EXTENSION_FUNCTION_VALIDATE(params->key_event.modifiers); |
+ const keyboard::VirtualKeyboardEvent& event = params->key_event; |
+ if (!delegate()->SendKeyEvent(keyboard::ToString(event.type), |
+ event.char_value, event.key_code, |
+ event.key_name, *event.modifiers)) { |
+ return RespondNow(Error(kUnknownError)); |
} |
- error_ = kNotYetImplementedError; |
- return false; |
+ return RespondNow(NoArguments()); |
} |
-bool VirtualKeyboardPrivateHideKeyboardFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) |
- return delegate->HideKeyboard(); |
- error_ = kNotYetImplementedError; |
- return false; |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateHideKeyboardFunction::Run() { |
+ if (!delegate()->HideKeyboard()) |
+ return RespondNow(Error(kUnknownError)); |
+ return RespondNow(NoArguments()); |
} |
-bool VirtualKeyboardPrivateSetHotrodKeyboardFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) { |
- bool enable; |
- EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(0, &enable)); |
- delegate->SetHotrodKeyboard(enable); |
- return true; |
- } |
- error_ = kNotYetImplementedError; |
- return false; |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateSetHotrodKeyboardFunction::Run() { |
+ bool enable = false; |
+ EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(0, &enable)); |
+ delegate()->SetHotrodKeyboard(enable); |
+ return RespondNow(NoArguments()); |
} |
-bool VirtualKeyboardPrivateLockKeyboardFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) { |
- bool lock; |
- EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(0, &lock)); |
- return delegate->LockKeyboard(lock); |
- } |
- error_ = kNotYetImplementedError; |
- return false; |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateLockKeyboardFunction::Run() { |
+ bool lock = false; |
+ EXTENSION_FUNCTION_VALIDATE(args_->GetBoolean(0, &lock)); |
+ if (!delegate()->LockKeyboard(lock)) |
+ return RespondNow(Error(kUnknownError)); |
+ return RespondNow(NoArguments()); |
} |
-bool VirtualKeyboardPrivateKeyboardLoadedFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) |
- return delegate->OnKeyboardLoaded(); |
- error_ = kNotYetImplementedError; |
- return false; |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateKeyboardLoadedFunction::Run() { |
+ if (!delegate()->OnKeyboardLoaded()) |
+ return RespondNow(Error(kUnknownError)); |
+ return RespondNow(NoArguments()); |
} |
-bool VirtualKeyboardPrivateGetKeyboardConfigFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) { |
- std::unique_ptr<base::DictionaryValue> results(new base::DictionaryValue()); |
- if (delegate->GetKeyboardConfig(results.get())) { |
- SetResult(std::move(results)); |
- return true; |
- } |
- } |
- return false; |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateGetKeyboardConfigFunction::Run() { |
+ std::unique_ptr<base::DictionaryValue> results(new base::DictionaryValue()); |
+ if (!delegate()->GetKeyboardConfig(results.get())) |
+ return RespondNow(Error(kUnknownError)); |
+ return RespondNow(OneArgument(std::move(results))); |
} |
-bool VirtualKeyboardPrivateOpenSettingsFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) { |
- if (delegate->IsLanguageSettingsEnabled()) |
- return delegate->ShowLanguageSettings(); |
- return false; |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateOpenSettingsFunction::Run() { |
+ if (!delegate()->IsLanguageSettingsEnabled() || |
+ !delegate()->ShowLanguageSettings()) { |
+ return RespondNow(Error(kUnknownError)); |
} |
- error_ = kNotYetImplementedError; |
- return false; |
+ return RespondNow(NoArguments()); |
} |
-bool VirtualKeyboardPrivateSetModeFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) { |
- std::unique_ptr<SetMode::Params> params = SetMode::Params::Create(*args_); |
- EXTENSION_FUNCTION_VALIDATE(params); |
- if (!delegate->SetVirtualKeyboardMode(params->mode)) { |
- error_ = kVirtualKeyboardNotEnabled; |
- return false; |
- } else { |
- return true; |
- } |
- } |
- error_ = kNotYetImplementedError; |
- return false; |
+ExtensionFunction::ResponseAction VirtualKeyboardPrivateSetModeFunction::Run() { |
+ std::unique_ptr<keyboard::SetMode::Params> params = |
+ keyboard::SetMode::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ if (!delegate()->SetVirtualKeyboardMode(params->mode)) |
+ return RespondNow(Error(kVirtualKeyboardNotEnabled)); |
+ return RespondNow(NoArguments()); |
} |
-bool VirtualKeyboardPrivateSetKeyboardStateFunction::RunSync() { |
- VirtualKeyboardDelegate* delegate = GetDelegate(this); |
- if (delegate) { |
- std::unique_ptr<SetRequestedKeyboardState::Params> params = |
- SetRequestedKeyboardState::Params::Create(*args_); |
- EXTENSION_FUNCTION_VALIDATE(params); |
- if (!delegate->SetRequestedKeyboardState(params->state)) { |
- error_ = kVirtualKeyboardNotEnabled; |
- return false; |
- } else { |
- return true; |
- } |
- } |
- error_ = kNotYetImplementedError; |
- return false; |
+ExtensionFunction::ResponseAction |
+VirtualKeyboardPrivateSetKeyboardStateFunction::Run() { |
+ std::unique_ptr<keyboard::SetKeyboardState::Params> params = |
+ keyboard::SetKeyboardState::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ if (!delegate()->SetRequestedKeyboardState(params->state)) |
+ return RespondNow(Error(kVirtualKeyboardNotEnabled)); |
+ return RespondNow(NoArguments()); |
} |
VirtualKeyboardAPI::VirtualKeyboardAPI(content::BrowserContext* context) { |
- delegate_ = |
- extensions::ExtensionsAPIClient::Get()->CreateVirtualKeyboardDelegate(); |
+ delegate_ = ExtensionsAPIClient::Get()->CreateVirtualKeyboardDelegate(); |
} |
VirtualKeyboardAPI::~VirtualKeyboardAPI() { |