Chromium Code Reviews| 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" | |
| 8 #include "chrome/common/chrome_switches.h" | |
| 7 #include "chrome/common/render_messages.h" | 9 #include "chrome/common/render_messages.h" |
| 8 #include "chrome/common/url_constants.h" | 10 #include "chrome/common/url_constants.h" |
| 9 #include "content/public/renderer/document_state.h" | 11 #include "content/public/renderer/document_state.h" |
| 10 #include "content/public/renderer/navigation_state.h" | 12 #include "content/public/renderer/navigation_state.h" |
| 11 #include "content/public/renderer/render_view.h" | 13 #include "content/public/renderer/render_view.h" |
| 12 #include "extensions/common/constants.h" | 14 #include "extensions/common/constants.h" |
| 13 #include "third_party/WebKit/Source/Platform/chromium/public/WebURL.h" | 15 #include "third_party/WebKit/Source/Platform/chromium/public/WebURL.h" |
| 14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDataSource.h" | 16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDataSource.h" |
| 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" | 17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" |
| 16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" | 18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 311 } | 313 } |
| 312 | 314 |
| 313 void ContentSettingsObserver::ClearBlockedContentSettings() { | 315 void ContentSettingsObserver::ClearBlockedContentSettings() { |
| 314 for (size_t i = 0; i < arraysize(content_blocked_); ++i) | 316 for (size_t i = 0; i < arraysize(content_blocked_); ++i) |
| 315 content_blocked_[i] = false; | 317 content_blocked_[i] = false; |
| 316 cached_storage_permissions_.clear(); | 318 cached_storage_permissions_.clear(); |
| 317 cached_script_permissions_.clear(); | 319 cached_script_permissions_.clear(); |
| 318 } | 320 } |
| 319 | 321 |
| 320 bool ContentSettingsObserver::IsWhitelistedForContentSettings(WebFrame* frame) { | 322 bool ContentSettingsObserver::IsWhitelistedForContentSettings(WebFrame* frame) { |
| 323 // Whitelist Instant processes. | |
| 324 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kInstantProcess)) | |
|
markusheintz_
2013/04/17 19:24:38
Sorry for being late in this party. Does this whit
ckocagil
2013/04/17 21:39:42
No, it affects all Instant processes, including th
| |
| 325 return true; | |
| 326 | |
| 321 // Whitelist ftp directory listings, as they require JavaScript to function | 327 // Whitelist ftp directory listings, as they require JavaScript to function |
| 322 // properly. | 328 // properly. |
| 323 webkit_glue::WebURLResponseExtraDataImpl* extra_data = | 329 webkit_glue::WebURLResponseExtraDataImpl* extra_data = |
| 324 static_cast<webkit_glue::WebURLResponseExtraDataImpl*>( | 330 static_cast<webkit_glue::WebURLResponseExtraDataImpl*>( |
| 325 frame->dataSource()->response().extraData()); | 331 frame->dataSource()->response().extraData()); |
| 326 if (extra_data && extra_data->is_ftp_directory_listing()) | 332 if (extra_data && extra_data->is_ftp_directory_listing()) |
| 327 return true; | 333 return true; |
| 328 return IsWhitelistedForContentSettings(frame->document().securityOrigin(), | 334 return IsWhitelistedForContentSettings(frame->document().securityOrigin(), |
| 329 frame->document().url()); | 335 frame->document().url()); |
| 330 } | 336 } |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 352 | 358 |
| 353 // If the scheme is file:, an empty file name indicates a directory listing, | 359 // If the scheme is file:, an empty file name indicates a directory listing, |
| 354 // which requires JavaScript to function properly. | 360 // which requires JavaScript to function properly. |
| 355 if (EqualsASCII(origin.protocol(), chrome::kFileScheme)) { | 361 if (EqualsASCII(origin.protocol(), chrome::kFileScheme)) { |
| 356 return document_url.SchemeIs(chrome::kFileScheme) && | 362 return document_url.SchemeIs(chrome::kFileScheme) && |
| 357 document_url.ExtractFileName().empty(); | 363 document_url.ExtractFileName().empty(); |
| 358 } | 364 } |
| 359 | 365 |
| 360 return false; | 366 return false; |
| 361 } | 367 } |
| OLD | NEW |