Index: content/browser/renderer_host/render_view_host_impl.cc |
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc |
index 436cd68bb0f005c53cf277783177235d997f8ee9..cc58d7f233bd1fd26cb181707603193083ac6800 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.cc |
+++ b/content/browser/renderer_host/render_view_host_impl.cc |
@@ -292,7 +292,7 @@ bool RenderViewHostImpl::CreateRenderView( |
ViewMsg_New_Params params; |
params.renderer_preferences = |
delegate_->GetRendererPrefs(GetProcess()->GetBrowserContext()); |
- params.web_preferences = delegate_->GetWebkitPrefs(); |
+ params.web_preferences = GetWebkitPreferences(); |
params.view_id = GetRoutingID(); |
params.main_frame_routing_id = main_frame_routing_id_; |
params.surface_id = surface_id(); |
@@ -333,7 +333,7 @@ void RenderViewHostImpl::SyncRendererPrefs() { |
GetProcess()->GetBrowserContext()))); |
} |
-WebPreferences RenderViewHostImpl::GetWebkitPrefs(const GURL& url) { |
+WebPreferences RenderViewHostImpl::ComputeWebkitPrefs(const GURL& url) { |
TRACE_EVENT0("browser", "RenderViewHostImpl::GetWebkitPrefs"); |
WebPreferences prefs; |
@@ -1430,7 +1430,10 @@ void RenderViewHostImpl::ExitFullscreen() { |
} |
WebPreferences RenderViewHostImpl::GetWebkitPreferences() { |
- return delegate_->GetWebkitPrefs(); |
+ if (!web_preferences_.get()) { |
+ OnWebkitPreferencesChanged(); |
+ } |
+ return *web_preferences_; |
jam
2014/07/21 17:40:33
nit: indentation
chrishtr
2014/07/21 18:16:07
Done.
|
} |
void RenderViewHostImpl::DisownOpener() { |
@@ -1446,9 +1449,14 @@ void RenderViewHostImpl::SetAccessibilityCallbackForTesting( |
} |
void RenderViewHostImpl::UpdateWebkitPreferences(const WebPreferences& prefs) { |
+ web_preferences_.reset(new WebPreferences(prefs)); |
Send(new ViewMsg_UpdateWebPreferences(GetRoutingID(), prefs)); |
} |
+void RenderViewHostImpl::OnWebkitPreferencesChanged() { |
+ UpdateWebkitPreferences(delegate_->ComputeWebkitPrefs()); |
+} |
+ |
void RenderViewHostImpl::GetAudioOutputControllers( |
const GetAudioOutputControllersCallback& callback) const { |
AudioRendererHost* audio_host = |