OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/renderer/content_settings_observer.h" | 5 #include "chrome/renderer/content_settings_observer.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "components/content_settings/content/common/content_settings_messages.h " | 9 #include "components/content_settings/content/common/content_settings_messages.h " |
10 #include "content/public/common/url_constants.h" | 10 #include "content/public/common/url_constants.h" |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
163 allow_displaying_insecure_content_(false), | 163 allow_displaying_insecure_content_(false), |
164 allow_running_insecure_content_(false), | 164 allow_running_insecure_content_(false), |
165 content_setting_rules_(NULL), | 165 content_setting_rules_(NULL), |
166 is_interstitial_page_(false), | 166 is_interstitial_page_(false), |
167 npapi_plugins_blocked_(false), | 167 npapi_plugins_blocked_(false), |
168 current_request_id_(0), | 168 current_request_id_(0), |
169 should_whitelist_(should_whitelist) { | 169 should_whitelist_(should_whitelist) { |
170 ClearBlockedContentSettings(); | 170 ClearBlockedContentSettings(); |
171 render_frame->GetWebFrame()->setContentSettingsClient(this); | 171 render_frame->GetWebFrame()->setContentSettingsClient(this); |
172 | 172 |
173 if (render_frame->GetRenderView()->GetMainRenderFrame() != render_frame) { | 173 content::RenderFrame* main_frame = |
174 render_frame->GetRenderView()->GetMainRenderFrame(); | |
175 if (main_frame && main_frame != render_frame) { | |
174 // Copy all the settings from the main render frame to avoid race conditions | 176 // Copy all the settings from the main render frame to avoid race conditions |
175 // when initializing this data. See http://crbug.com/333308. | 177 // when initializing this data. See http://crbug.com/333308. |
Charlie Reis
2015/06/04 00:02:11
Unrelated: Will this bug regress for OOPIFs, since
nasko
2015/06/04 14:57:12
I think it deserves a bug and attention, as with O
| |
176 ContentSettingsObserver* parent = ContentSettingsObserver::Get( | 178 ContentSettingsObserver* parent = ContentSettingsObserver::Get(main_frame); |
177 render_frame->GetRenderView()->GetMainRenderFrame()); | |
178 allow_displaying_insecure_content_ = | 179 allow_displaying_insecure_content_ = |
179 parent->allow_displaying_insecure_content_; | 180 parent->allow_displaying_insecure_content_; |
180 allow_running_insecure_content_ = parent->allow_running_insecure_content_; | 181 allow_running_insecure_content_ = parent->allow_running_insecure_content_; |
181 temporarily_allowed_plugins_ = parent->temporarily_allowed_plugins_; | 182 temporarily_allowed_plugins_ = parent->temporarily_allowed_plugins_; |
182 is_interstitial_page_ = parent->is_interstitial_page_; | 183 is_interstitial_page_ = parent->is_interstitial_page_; |
183 npapi_plugins_blocked_ = parent->npapi_plugins_blocked_; | 184 npapi_plugins_blocked_ = parent->npapi_plugins_blocked_; |
184 } | 185 } |
185 } | 186 } |
186 | 187 |
187 ContentSettingsObserver::~ContentSettingsObserver() { | 188 ContentSettingsObserver::~ContentSettingsObserver() { |
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
697 return true; // Browser UI elements should still work. | 698 return true; // Browser UI elements should still work. |
698 | 699 |
699 if (EqualsASCII(origin.protocol(), content::kChromeDevToolsScheme)) | 700 if (EqualsASCII(origin.protocol(), content::kChromeDevToolsScheme)) |
700 return true; // DevTools UI elements should still work. | 701 return true; // DevTools UI elements should still work. |
701 | 702 |
702 #if defined(ENABLE_EXTENSIONS) | 703 #if defined(ENABLE_EXTENSIONS) |
703 if (EqualsASCII(origin.protocol(), extensions::kExtensionScheme)) | 704 if (EqualsASCII(origin.protocol(), extensions::kExtensionScheme)) |
704 return true; | 705 return true; |
705 #endif | 706 #endif |
706 | 707 |
707 // TODO(creis, fsamuel): Remove this once the concept of swapped out | 708 // TODO(creis, fsamuel): Remove this once the concept of swapped out |
Charlie Reis
2015/06/04 00:02:11
Ooh, just saw this as I was scrolling through. :)
nasko
2015/06/04 14:57:12
Acknowledged.
| |
708 // RenderFrames goes away. | 709 // RenderFrames goes away. |
709 if (document_url == GURL(content::kSwappedOutURL)) | 710 if (document_url == GURL(content::kSwappedOutURL)) |
710 return true; | 711 return true; |
711 | 712 |
712 // If the scheme is file:, an empty file name indicates a directory listing, | 713 // If the scheme is file:, an empty file name indicates a directory listing, |
713 // which requires JavaScript to function properly. | 714 // which requires JavaScript to function properly. |
714 if (EqualsASCII(origin.protocol(), url::kFileScheme)) { | 715 if (EqualsASCII(origin.protocol(), url::kFileScheme)) { |
715 return document_url.SchemeIs(url::kFileScheme) && | 716 return document_url.SchemeIs(url::kFileScheme) && |
716 document_url.ExtractFileName().empty(); | 717 document_url.ExtractFileName().empty(); |
717 } | 718 } |
718 | 719 |
719 return false; | 720 return false; |
720 } | 721 } |
OLD | NEW |