| 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 "chrome/browser/extensions/api/input_ime/input_ime_api.h" | 5 #include "chrome/browser/extensions/api/input_ime/input_ime_api.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "chrome/browser/chrome_notification_types.h" | 8 #include "chrome/browser/chrome_notification_types.h" |
| 9 #include "chrome/common/extensions/api/input_ime.h" | 9 #include "chrome/common/extensions/api/input_ime.h" |
| 10 #include "content/public/browser/notification_registrar.h" | 10 #include "content/public/browser/notification_registrar.h" |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 InputMethodEngineBase* engine = | 276 InputMethodEngineBase* engine = |
| 277 event_router ? event_router->GetActiveEngine(extension_id()) : nullptr; | 277 event_router ? event_router->GetActiveEngine(extension_id()) : nullptr; |
| 278 if (engine) { | 278 if (engine) { |
| 279 engine->KeyEventHandled(extension_id(), params->request_id, | 279 engine->KeyEventHandled(extension_id(), params->request_id, |
| 280 params->response); | 280 params->response); |
| 281 } | 281 } |
| 282 return RespondNow(NoArguments()); | 282 return RespondNow(NoArguments()); |
| 283 } | 283 } |
| 284 | 284 |
| 285 ExtensionFunction::ResponseAction InputImeSetCompositionFunction::Run() { | 285 ExtensionFunction::ResponseAction InputImeSetCompositionFunction::Run() { |
| 286 bool success = false; | |
| 287 InputImeEventRouter* event_router = | 286 InputImeEventRouter* event_router = |
| 288 GetInputImeEventRouter(Profile::FromBrowserContext(browser_context())); | 287 GetInputImeEventRouter(Profile::FromBrowserContext(browser_context())); |
| 289 InputMethodEngineBase* engine = | 288 InputMethodEngineBase* engine = |
| 290 event_router ? event_router->GetActiveEngine(extension_id()) : nullptr; | 289 event_router ? event_router->GetActiveEngine(extension_id()) : nullptr; |
| 291 if (engine) { | 290 if (engine) { |
| 292 std::unique_ptr<SetComposition::Params> parent_params( | 291 std::unique_ptr<SetComposition::Params> parent_params( |
| 293 SetComposition::Params::Create(*args_)); | 292 SetComposition::Params::Create(*args_)); |
| 294 const SetComposition::Params::Parameters& params = | 293 const SetComposition::Params::Parameters& params = |
| 295 parent_params->parameters; | 294 parent_params->parameters; |
| 296 std::vector<InputMethodEngineBase::SegmentInfo> segments; | 295 std::vector<InputMethodEngineBase::SegmentInfo> segments; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 312 InputMethodEngineBase::SEGMENT_STYLE_NO_UNDERLINE; | 311 InputMethodEngineBase::SEGMENT_STYLE_NO_UNDERLINE; |
| 313 } | 312 } |
| 314 segments.push_back(segment_info); | 313 segments.push_back(segment_info); |
| 315 } | 314 } |
| 316 } | 315 } |
| 317 int selection_start = | 316 int selection_start = |
| 318 params.selection_start ? *params.selection_start : params.cursor; | 317 params.selection_start ? *params.selection_start : params.cursor; |
| 319 int selection_end = | 318 int selection_end = |
| 320 params.selection_end ? *params.selection_end : params.cursor; | 319 params.selection_end ? *params.selection_end : params.cursor; |
| 321 std::string error; | 320 std::string error; |
| 322 success = engine->SetComposition(params.context_id, params.text.c_str(), | 321 if (!engine->SetComposition(params.context_id, params.text.c_str(), |
| 323 selection_start, selection_end, | 322 selection_start, selection_end, params.cursor, |
| 324 params.cursor, segments, &error); | 323 segments, &error)) { |
| 325 SetError(error); | 324 std::unique_ptr<base::ListValue> results = |
| 325 base::MakeUnique<base::ListValue>(); |
| 326 results->Append(base::MakeUnique<base::FundamentalValue>(false)); |
| 327 return RespondNow(ErrorWithArguments(std::move(results), error)); |
| 328 } |
| 326 } | 329 } |
| 327 std::unique_ptr<base::ListValue> output = | 330 return RespondNow( |
| 328 SetComposition::Results::Create(success); | 331 OneArgument(base::MakeUnique<base::FundamentalValue>(true))); |
| 329 return RespondNow(ArgumentList(std::move(output))); | |
| 330 } | 332 } |
| 331 | 333 |
| 332 ExtensionFunction::ResponseAction InputImeCommitTextFunction::Run() { | 334 ExtensionFunction::ResponseAction InputImeCommitTextFunction::Run() { |
| 333 bool success = false; | |
| 334 InputImeEventRouter* event_router = | 335 InputImeEventRouter* event_router = |
| 335 GetInputImeEventRouter(Profile::FromBrowserContext(browser_context())); | 336 GetInputImeEventRouter(Profile::FromBrowserContext(browser_context())); |
| 336 InputMethodEngineBase* engine = | 337 InputMethodEngineBase* engine = |
| 337 event_router ? event_router->GetActiveEngine(extension_id()) : nullptr; | 338 event_router ? event_router->GetActiveEngine(extension_id()) : nullptr; |
| 338 if (engine) { | 339 if (engine) { |
| 339 std::unique_ptr<CommitText::Params> parent_params( | 340 std::unique_ptr<CommitText::Params> parent_params( |
| 340 CommitText::Params::Create(*args_)); | 341 CommitText::Params::Create(*args_)); |
| 341 const CommitText::Params::Parameters& params = parent_params->parameters; | 342 const CommitText::Params::Parameters& params = parent_params->parameters; |
| 342 std::string error; | 343 std::string error; |
| 343 success = | 344 if (!engine->CommitText(params.context_id, params.text.c_str(), &error)) { |
| 344 engine->CommitText(params.context_id, params.text.c_str(), &error); | 345 std::unique_ptr<base::ListValue> results = |
| 345 SetError(error); | 346 base::MakeUnique<base::ListValue>(); |
| 347 results->Append(base::MakeUnique<base::FundamentalValue>(false)); |
| 348 return RespondNow(ErrorWithArguments(std::move(results), error)); |
| 349 } |
| 346 } | 350 } |
| 347 std::unique_ptr<base::ListValue> output = | 351 return RespondNow( |
| 348 CommitText::Results::Create(success); | 352 OneArgument(base::MakeUnique<base::FundamentalValue>(true))); |
| 349 return RespondNow(ArgumentList(std::move(output))); | |
| 350 } | 353 } |
| 351 | 354 |
| 352 ExtensionFunction::ResponseAction InputImeSendKeyEventsFunction::Run() { | 355 ExtensionFunction::ResponseAction InputImeSendKeyEventsFunction::Run() { |
| 353 InputImeEventRouter* event_router = | 356 InputImeEventRouter* event_router = |
| 354 GetInputImeEventRouter(Profile::FromBrowserContext(browser_context())); | 357 GetInputImeEventRouter(Profile::FromBrowserContext(browser_context())); |
| 355 InputMethodEngineBase* engine = | 358 InputMethodEngineBase* engine = |
| 356 event_router ? event_router->GetActiveEngine(extension_id()) : nullptr; | 359 event_router ? event_router->GetActiveEngine(extension_id()) : nullptr; |
| 357 if (!engine) | 360 if (!engine) |
| 358 return RespondNow(Error(kErrorEngineNotAvailable)); | 361 return RespondNow(Error(kErrorEngineNotAvailable)); |
| 359 | 362 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 InputImeEventRouter* GetInputImeEventRouter(Profile* profile) { | 417 InputImeEventRouter* GetInputImeEventRouter(Profile* profile) { |
| 415 if (!profile) | 418 if (!profile) |
| 416 return nullptr; | 419 return nullptr; |
| 417 if (profile->HasOffTheRecordProfile()) | 420 if (profile->HasOffTheRecordProfile()) |
| 418 profile = profile->GetOffTheRecordProfile(); | 421 profile = profile->GetOffTheRecordProfile(); |
| 419 return extensions::InputImeEventRouterFactory::GetInstance()->GetRouter( | 422 return extensions::InputImeEventRouterFactory::GetInstance()->GetRouter( |
| 420 profile); | 423 profile); |
| 421 } | 424 } |
| 422 | 425 |
| 423 } // namespace extensions | 426 } // namespace extensions |
| OLD | NEW |