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

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

Issue 1810213009: blimp: Add settings to allow the client to download the whole page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@record_full_document
Patch Set: Use ContentBrowserClient to override prefs. Created 4 years, 9 months 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 "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
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
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
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