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 b5f2d583697fc24f7ad7676e3b0153c35ccd082e..1b59e5df37849783aa4b2a89e7bca68120307d23 100644 |
--- a/blimp/engine/feature/engine_render_widget_feature.cc |
+++ b/blimp/engine/feature/engine_render_widget_feature.cc |
@@ -18,10 +18,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_); |
+ settings_manager_->AddObserver(this); |
+} |
-EngineRenderWidgetFeature::~EngineRenderWidgetFeature() {} |
+EngineRenderWidgetFeature::~EngineRenderWidgetFeature() { |
+ DCHECK(settings_manager_); |
+ settings_manager_->RemoveObserver(this); |
+} |
void EngineRenderWidgetFeature::set_render_widget_message_sender( |
scoped_ptr<BlimpMessageProcessor> message_processor) { |
@@ -232,6 +240,22 @@ void EngineRenderWidgetFeature::ProcessMessage( |
callback.Run(net::OK); |
} |
+void EngineRenderWidgetFeature::OnWebPreferencesChanged() { |
+ 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) |
+ render_view_host->OnWebkitPreferencesChanged(); |
+ } |
+ } |
+} |
+ |
void EngineRenderWidgetFeature::SetTextFromIME(ui::TextInputClient* client, |
std::string text) { |
if (client && client->GetTextInputType() != ui::TEXT_INPUT_TYPE_NONE) { |
@@ -342,4 +366,5 @@ content::RenderWidgetHost* EngineRenderWidgetFeature::GetRenderWidgetHost( |
return widget_id_it->second; |
} |
+} // namespace engine |
} // namespace blimp |