| 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 a5b1d60bf3e68d657fe029a21db820d4e4bfbfdd..3f1a0e66eb7ac672fb5b2c27865ff148cf7efc33 100644
|
| --- a/content/browser/renderer_host/render_view_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_view_host_impl.cc
|
| @@ -289,7 +289,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();
|
| @@ -329,7 +329,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;
|
|
|
| @@ -1420,7 +1420,10 @@ void RenderViewHostImpl::ExitFullscreen() {
|
| }
|
|
|
| WebPreferences RenderViewHostImpl::GetWebkitPreferences() {
|
| - return delegate_->GetWebkitPrefs();
|
| + if (!web_preferences_.get()) {
|
| + OnWebkitPreferencesChanged();
|
| + }
|
| + return *web_preferences_;
|
| }
|
|
|
| void RenderViewHostImpl::DisownOpener() {
|
| @@ -1431,9 +1434,14 @@ void RenderViewHostImpl::DisownOpener() {
|
| }
|
|
|
| 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 =
|
|
|