| 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_;
 | 
| 
 |