| Index: chrome/renderer/content_settings_observer.cc
|
| diff --git a/chrome/renderer/content_settings_observer.cc b/chrome/renderer/content_settings_observer.cc
|
| index 3769a85cce7d56ff343fd4b4d6e9e4a73460401f..332e29a7e99507e220d8fe1000637ae9826d3649 100644
|
| --- a/chrome/renderer/content_settings_observer.cc
|
| +++ b/chrome/renderer/content_settings_observer.cc
|
| @@ -170,11 +170,15 @@ ContentSettingsObserver::ContentSettingsObserver(
|
| ClearBlockedContentSettings();
|
| render_frame->GetWebFrame()->setContentSettingsClient(this);
|
|
|
| - if (render_frame->GetRenderView()->GetMainRenderFrame() != render_frame) {
|
| + content::RenderFrame* main_frame =
|
| + render_frame->GetRenderView()->GetMainRenderFrame();
|
| + // TODO(nasko): The main frame is not guaranteed to be in the same process
|
| + // with this frame with --site-per-process. This code needs to be updated
|
| + // to handle this case. See https://crbug.com/496670.
|
| + if (main_frame && main_frame != render_frame) {
|
| // Copy all the settings from the main render frame to avoid race conditions
|
| - // when initializing this data. See http://crbug.com/333308.
|
| - ContentSettingsObserver* parent = ContentSettingsObserver::Get(
|
| - render_frame->GetRenderView()->GetMainRenderFrame());
|
| + // when initializing this data. See https://crbug.com/333308.
|
| + ContentSettingsObserver* parent = ContentSettingsObserver::Get(main_frame);
|
| allow_displaying_insecure_content_ =
|
| parent->allow_displaying_insecure_content_;
|
| allow_running_insecure_content_ = parent->allow_running_insecure_content_;
|
|
|