Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1144)

Side by Side Diff: blimp/engine/feature/engine_render_widget_feature.cc

Issue 2520013002: Reland of Extracting placeholder information from Webkit to Blimp (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "blimp/engine/feature/engine_render_widget_feature.h" 5 #include "blimp/engine/feature/engine_render_widget_feature.h"
6 6
7 #include "base/numerics/safe_conversions.h" 7 #include "base/numerics/safe_conversions.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "blimp/common/create_blimp_message.h" 9 #include "blimp/common/create_blimp_message.h"
10 #include "blimp/common/proto/blimp_message.pb.h" 10 #include "blimp/common/proto/blimp_message.pb.h"
11 #include "blimp/common/proto/compositor.pb.h" 11 #include "blimp/common/proto/compositor.pb.h"
12 #include "blimp/common/proto/input.pb.h" 12 #include "blimp/common/proto/input.pb.h"
13 #include "blimp/common/proto/render_widget.pb.h" 13 #include "blimp/common/proto/render_widget.pb.h"
14 #include "blimp/net/input_message_converter.h" 14 #include "blimp/net/input_message_converter.h"
15 #include "content/public/browser/render_widget_host.h" 15 #include "content/public/browser/render_widget_host.h"
16 #include "content/public/browser/render_widget_host_view.h" 16 #include "content/public/browser/render_widget_host_view.h"
17 #include "content/public/common/form_field_data.h"
17 #include "net/base/net_errors.h" 18 #include "net/base/net_errors.h"
18 #include "third_party/WebKit/public/platform/WebInputEvent.h" 19 #include "third_party/WebKit/public/platform/WebInputEvent.h"
19 #include "ui/events/event.h" 20 #include "ui/events/event.h"
20 #include "ui/events/keycodes/dom/dom_code.h" 21 #include "ui/events/keycodes/dom/dom_code.h"
21 22
22 namespace blimp { 23 namespace blimp {
23 namespace engine { 24 namespace engine {
24 25
25 EngineRenderWidgetFeature::EngineRenderWidgetFeature(SettingsManager* settings) 26 EngineRenderWidgetFeature::EngineRenderWidgetFeature(SettingsManager* settings)
26 : settings_manager_(settings), weak_factory_(this) { 27 : settings_manager_(settings), weak_factory_(this) {
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 compositor_message->set_payload(message.data(), 129 compositor_message->set_payload(message.data(),
129 base::checked_cast<int>(message.size())); 130 base::checked_cast<int>(message.size()));
130 131
131 compositor_message_sender_->ProcessMessage(std::move(blimp_message), 132 compositor_message_sender_->ProcessMessage(std::move(blimp_message),
132 net::CompletionCallback()); 133 net::CompletionCallback());
133 } 134 }
134 135
135 void EngineRenderWidgetFeature::SendShowImeRequest( 136 void EngineRenderWidgetFeature::SendShowImeRequest(
136 const int tab_id, 137 const int tab_id,
137 content::RenderWidgetHost* render_widget_host, 138 content::RenderWidgetHost* render_widget_host,
138 const ui::TextInputClient* client) { 139 const content::FormFieldData& field) {
139 DCHECK(client);
140
141 ImeMessage* ime_message; 140 ImeMessage* ime_message;
142 std::unique_ptr<BlimpMessage> blimp_message = 141 std::unique_ptr<BlimpMessage> blimp_message =
143 CreateBlimpMessage(&ime_message, tab_id); 142 CreateBlimpMessage(&ime_message, tab_id);
144 143
145 int render_widget_id = GetRenderWidgetId(tab_id, render_widget_host); 144 int render_widget_id = GetRenderWidgetId(tab_id, render_widget_host);
146 DCHECK_GT(render_widget_id, 0); 145 DCHECK_GT(render_widget_id, 0);
147 ime_message->set_render_widget_id(render_widget_id); 146 ime_message->set_render_widget_id(render_widget_id);
148 ime_message->set_type(ImeMessage::SHOW_IME); 147 ime_message->set_type(ImeMessage::SHOW_IME);
149 ime_message->set_text_input_type( 148 ime_message->set_text_input_type(
150 InputMessageConverter::TextInputTypeToProto(client->GetTextInputType())); 149 InputMessageConverter::TextInputTypeToProto(field.text_input_type));
151 150 ime_message->set_ime_text(field.text);
152 gfx::Range text_range; 151 // TODO(shaktisahu): Add remaining fields to proto.
153 base::string16 existing_text;
154 client->GetTextRange(&text_range);
155 client->GetTextFromRange(text_range, &existing_text);
156 ime_message->set_ime_text(base::UTF16ToUTF8(existing_text));
157 152
158 ime_message_sender_->ProcessMessage(std::move(blimp_message), 153 ime_message_sender_->ProcessMessage(std::move(blimp_message),
159 net::CompletionCallback()); 154 net::CompletionCallback());
160 } 155 }
161 156
162 void EngineRenderWidgetFeature::SendHideImeRequest( 157 void EngineRenderWidgetFeature::SendHideImeRequest(
163 const int tab_id, 158 const int tab_id,
164 content::RenderWidgetHost* render_widget_host) { 159 content::RenderWidgetHost* render_widget_host) {
165 ImeMessage* ime_message; 160 ImeMessage* ime_message;
166 std::unique_ptr<BlimpMessage> blimp_message = 161 std::unique_ptr<BlimpMessage> blimp_message =
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 IdToRenderWidgetMap::const_iterator widget_id_it = 390 IdToRenderWidgetMap::const_iterator widget_id_it =
396 id_to_render_widget->find(render_widget_id); 391 id_to_render_widget->find(render_widget_id);
397 if (widget_id_it == id_to_render_widget->end()) 392 if (widget_id_it == id_to_render_widget->end())
398 return nullptr; 393 return nullptr;
399 394
400 return widget_id_it->second; 395 return widget_id_it->second;
401 } 396 }
402 397
403 } // namespace engine 398 } // namespace engine
404 } // namespace blimp 399 } // namespace blimp
OLDNEW
« no previous file with comments | « blimp/engine/feature/engine_render_widget_feature.h ('k') | blimp/engine/feature/engine_render_widget_feature_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698