OLD | NEW |
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 "net/base/net_errors.h" | 17 #include "net/base/net_errors.h" |
18 #include "third_party/WebKit/public/web/WebInputEvent.h" | 18 #include "third_party/WebKit/public/web/WebInputEvent.h" |
19 | 19 |
20 namespace blimp { | 20 namespace blimp { |
| 21 namespace engine { |
21 | 22 |
22 EngineRenderWidgetFeature::EngineRenderWidgetFeature() {} | 23 EngineRenderWidgetFeature::EngineRenderWidgetFeature(SettingsManager* settings) |
| 24 : settings_manager_(settings) { |
| 25 DCHECK(settings_manager_); |
| 26 settings_manager_->AddObserver(this); |
| 27 } |
23 | 28 |
24 EngineRenderWidgetFeature::~EngineRenderWidgetFeature() {} | 29 EngineRenderWidgetFeature::~EngineRenderWidgetFeature() { |
| 30 DCHECK(settings_manager_); |
| 31 settings_manager_->RemoveObserver(this); |
| 32 } |
25 | 33 |
26 void EngineRenderWidgetFeature::set_render_widget_message_sender( | 34 void EngineRenderWidgetFeature::set_render_widget_message_sender( |
27 scoped_ptr<BlimpMessageProcessor> message_processor) { | 35 scoped_ptr<BlimpMessageProcessor> message_processor) { |
28 DCHECK(message_processor); | 36 DCHECK(message_processor); |
29 render_widget_message_sender_ = std::move(message_processor); | 37 render_widget_message_sender_ = std::move(message_processor); |
30 } | 38 } |
31 | 39 |
32 void EngineRenderWidgetFeature::set_input_message_sender( | 40 void EngineRenderWidgetFeature::set_input_message_sender( |
33 scoped_ptr<BlimpMessageProcessor> message_processor) { | 41 scoped_ptr<BlimpMessageProcessor> message_processor) { |
34 DCHECK(message_processor); | 42 DCHECK(message_processor); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 message->ime().ime_text()); | 233 message->ime().ime_text()); |
226 } | 234 } |
227 break; | 235 break; |
228 default: | 236 default: |
229 NOTREACHED(); | 237 NOTREACHED(); |
230 } | 238 } |
231 | 239 |
232 callback.Run(net::OK); | 240 callback.Run(net::OK); |
233 } | 241 } |
234 | 242 |
| 243 void EngineRenderWidgetFeature::OnWebPreferencesChanged() { |
| 244 for (TabMap::iterator tab_it = tabs_.begin(); tab_it != tabs_.end(); |
| 245 tab_it++) { |
| 246 RenderWidgetMaps render_widget_maps = tab_it->second; |
| 247 RenderWidgetToIdMap render_widget_to_id = render_widget_maps.first; |
| 248 for (RenderWidgetToIdMap::iterator it = render_widget_to_id.begin(); |
| 249 it != render_widget_to_id.end(); it++) { |
| 250 content::RenderWidgetHost* render_widget_host = it->first; |
| 251 content::RenderViewHost* render_view_host = |
| 252 content::RenderViewHost::From(render_widget_host); |
| 253 if (render_view_host) |
| 254 render_view_host->OnWebkitPreferencesChanged(); |
| 255 } |
| 256 } |
| 257 } |
| 258 |
235 void EngineRenderWidgetFeature::SetTextFromIME(ui::TextInputClient* client, | 259 void EngineRenderWidgetFeature::SetTextFromIME(ui::TextInputClient* client, |
236 std::string text) { | 260 std::string text) { |
237 if (client && client->GetTextInputType() != ui::TEXT_INPUT_TYPE_NONE) { | 261 if (client && client->GetTextInputType() != ui::TEXT_INPUT_TYPE_NONE) { |
238 // Clear out any existing text first and then insert new text entered | 262 // Clear out any existing text first and then insert new text entered |
239 // through IME. | 263 // through IME. |
240 gfx::Range text_range; | 264 gfx::Range text_range; |
241 client->GetTextRange(&text_range); | 265 client->GetTextRange(&text_range); |
242 client->ExtendSelectionAndDelete(text_range.length(), text_range.length()); | 266 client->ExtendSelectionAndDelete(text_range.length(), text_range.length()); |
243 | 267 |
244 client->InsertText(base::UTF8ToUTF16(text)); | 268 client->InsertText(base::UTF8ToUTF16(text)); |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 const IdToRenderWidgetMap* id_to_render_widget = &render_widget_maps->second; | 359 const IdToRenderWidgetMap* id_to_render_widget = &render_widget_maps->second; |
336 | 360 |
337 IdToRenderWidgetMap::const_iterator widget_id_it = | 361 IdToRenderWidgetMap::const_iterator widget_id_it = |
338 id_to_render_widget->find(render_widget_id); | 362 id_to_render_widget->find(render_widget_id); |
339 if (widget_id_it == id_to_render_widget->end()) | 363 if (widget_id_it == id_to_render_widget->end()) |
340 return nullptr; | 364 return nullptr; |
341 | 365 |
342 return widget_id_it->second; | 366 return widget_id_it->second; |
343 } | 367 } |
344 | 368 |
| 369 } // namespace engine |
345 } // namespace blimp | 370 } // namespace blimp |
OLD | NEW |