Chromium Code Reviews| Index: blimp/engine/feature/engine_render_widget_feature.cc |
| diff --git a/blimp/engine/feature/engine_render_widget_feature.cc b/blimp/engine/feature/engine_render_widget_feature.cc |
| index 5fdec4868147d15f8fe7cab647f4f45e9a7f5a0f..f736a9cfbc863c995a865309292d9890da19a720 100644 |
| --- a/blimp/engine/feature/engine_render_widget_feature.cc |
| +++ b/blimp/engine/feature/engine_render_widget_feature.cc |
| @@ -15,10 +15,18 @@ |
| #include "third_party/WebKit/public/web/WebInputEvent.h" |
| namespace blimp { |
| +namespace engine { |
| -EngineRenderWidgetFeature::EngineRenderWidgetFeature() {} |
| +EngineRenderWidgetFeature::EngineRenderWidgetFeature(SettingsManager* settings) |
| + : settings_manager_(settings) { |
| + DCHECK(settings_manager_); |
|
haibinlu
2016/03/22 17:28:39
no need for DCHECK since the next line uses it.
Khushal
2016/03/25 23:00:22
Dereferencing it in the next line causes a seg fau
|
| + settings_manager_->AddObserver(this); |
| +} |
| -EngineRenderWidgetFeature::~EngineRenderWidgetFeature() {} |
| +EngineRenderWidgetFeature::~EngineRenderWidgetFeature() { |
| + DCHECK(settings_manager_); |
|
haibinlu
2016/03/22 17:28:39
ditto
|
| + settings_manager_->RemoveObserver(this); |
| +} |
| void EngineRenderWidgetFeature::set_render_widget_message_sender( |
| scoped_ptr<BlimpMessageProcessor> message_processor) { |
| @@ -43,6 +51,11 @@ void EngineRenderWidgetFeature::OnRenderWidgetCreated( |
| content::RenderWidgetHost* render_widget_host) { |
| DCHECK(render_widget_host); |
| + content::RenderViewHost* render_view_host = |
| + content::RenderViewHost::From(render_widget_host); |
| + if (render_view_host) |
| + settings_manager_->UpdateWebkitPreferences(render_view_host); |
| + |
| int render_widget_id = AddRenderWidget(tab_id, render_widget_host); |
| DCHECK_GT(render_widget_id, 0); |
| @@ -170,6 +183,22 @@ void EngineRenderWidgetFeature::ProcessMessage( |
| callback.Run(net::OK); |
| } |
| +void EngineRenderWidgetFeature::OnWebPreferencesChanged() { |
|
haibinlu
2016/03/22 17:28:39
can you add a test case for this method?
Khushal
2016/03/25 23:00:22
The method is using RenderViewHost::From(RenderWid
haibinlu
2016/03/25 23:53:13
can we use RenderViewHostImplTestHarness as in ren
Khushal
2016/03/28 19:20:11
We could possibly use it. I'll take a look into st
|
| + for (TabMap::iterator tab_it = tabs_.begin(); tab_it != tabs_.end(); |
| + tab_it++) { |
| + RenderWidgetMaps render_widget_maps = tab_it->second; |
| + RenderWidgetToIdMap render_widget_to_id = render_widget_maps.first; |
| + for (RenderWidgetToIdMap::iterator it = render_widget_to_id.begin(); |
| + it != render_widget_to_id.end(); it++) { |
| + content::RenderWidgetHost* render_widget_host = it->first; |
| + content::RenderViewHost* render_view_host = |
| + content::RenderViewHost::From(render_widget_host); |
| + if (render_view_host) |
| + settings_manager_->UpdateWebkitPreferences(render_view_host); |
| + } |
| + } |
| +} |
| + |
| EngineRenderWidgetFeature::RenderWidgetMessageDelegate* |
| EngineRenderWidgetFeature::FindDelegate(const int tab_id) { |
| DelegateMap::const_iterator it = delegates_.find(tab_id); |
| @@ -267,4 +296,5 @@ content::RenderWidgetHost* EngineRenderWidgetFeature::GetRenderWidgetHost( |
| return widget_id_it->second; |
| } |
| +} // namespace engine |
| } // namespace blimp |