| Index: services/ui/ime/ime_server_impl.cc
|
| diff --git a/services/ui/ime/ime_server_impl.cc b/services/ui/ime/ime_server_impl.cc
|
| index 0731d02a996b1a8e04aa8bd5603db25b9430b472..363737f49aacca116d2e312d86e7c5b32e134437 100644
|
| --- a/services/ui/ime/ime_server_impl.cc
|
| +++ b/services/ui/ime/ime_server_impl.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "services/ui/ime/ime_server_impl.h"
|
|
|
| +#include "base/memory/ptr_util.h"
|
| #include "services/catalog/public/interfaces/constants.mojom.h"
|
| #include "services/service_manager/public/cpp/connector.h"
|
| #include "services/ui/ime/ime_registrar_impl.h"
|
| @@ -46,14 +47,16 @@ void IMEServerImpl::OnDriverChanged(mojom::IMEDriverPtr driver) {
|
| driver_ = std::move(driver);
|
|
|
| while (!pending_requests_.empty()) {
|
| - driver_->StartSession(current_id_++,
|
| - std::move(pending_requests_.front().first),
|
| - std::move(pending_requests_.front().second));
|
| + driver_->StartSession(
|
| + current_id_++, std::move(pending_requests_.front()->client_info),
|
| + std::move(pending_requests_.front()->client),
|
| + std::move(pending_requests_.front()->input_method_request));
|
| pending_requests_.pop();
|
| }
|
| }
|
|
|
| void IMEServerImpl::StartSession(
|
| + mojom::TextInputClientInformationPtr client_info,
|
| mojom::TextInputClientPtr client,
|
| mojom::InputMethodRequest input_method_request) {
|
| if (driver_.get()) {
|
| @@ -61,11 +64,12 @@ void IMEServerImpl::StartSession(
|
| // clients to the driver as they are. We may need to check |caret_bounds|
|
| // parameter of InputMethod::OnCaretBoundsChanged() here and limit them to
|
| // client's focused window.
|
| - driver_->StartSession(current_id_++, std::move(client),
|
| - std::move(input_method_request));
|
| + driver_->StartSession(current_id_++, std::move(client_info),
|
| + std::move(client), std::move(input_method_request));
|
| } else {
|
| - pending_requests_.push(
|
| - std::make_pair(std::move(client), std::move(input_method_request)));
|
| + pending_requests_.push(base::MakeUnique<IMEServerImpl::PendingRequest>(
|
| + std::move(client_info), std::move(client),
|
| + std::move(input_method_request)));
|
| }
|
| }
|
|
|
| @@ -78,4 +82,14 @@ void IMEServerImpl::OnGotCatalogEntries(
|
| connector_->Connect((*entries.begin())->name);
|
| }
|
|
|
| +IMEServerImpl::PendingRequest::PendingRequest(
|
| + mojom::TextInputClientInformationPtr client_info,
|
| + mojom::TextInputClientPtr client,
|
| + mojom::InputMethodRequest input_method_request)
|
| + : client_info(std::move(client_info)),
|
| + client(std::move(client)),
|
| + input_method_request(std::move(input_method_request)) {}
|
| +
|
| +IMEServerImpl::PendingRequest::~PendingRequest() {}
|
| +
|
| } // namespace ui
|
|
|