Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Side by Side Diff: chrome/renderer/render_thread.cc

Issue 5268006: Changing the security model for "chrome" URLs... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/chrome_switches.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/render_thread.h" 5 #include "chrome/renderer/render_thread.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 852 matching lines...) Expand 10 before | Expand all | Expand 10 after
863 863
864 v8::V8::SetCounterFunction(base::StatsTable::FindLocation); 864 v8::V8::SetCounterFunction(base::StatsTable::FindLocation);
865 v8::V8::SetCreateHistogramFunction(CreateHistogram); 865 v8::V8::SetCreateHistogramFunction(CreateHistogram);
866 v8::V8::SetAddHistogramSampleFunction(AddHistogramSample); 866 v8::V8::SetAddHistogramSampleFunction(AddHistogramSample);
867 867
868 webkit_client_.reset(new RendererWebKitClientImpl); 868 webkit_client_.reset(new RendererWebKitClientImpl);
869 WebKit::initialize(webkit_client_.get()); 869 WebKit::initialize(webkit_client_.get());
870 870
871 WebScriptController::enableV8SingleThreadMode(); 871 WebScriptController::enableV8SingleThreadMode();
872 872
873 const CommandLine& command_line = *CommandLine::ForCurrentProcess();
874
873 // chrome: pages should not be accessible by normal content, and should 875 // chrome: pages should not be accessible by normal content, and should
874 // also be unable to script anything but themselves (to help limit the damage 876 // also be unable to script anything but themselves (to help limit the damage
875 // that a corrupt chrome: page could cause). 877 // that a corrupt chrome: page could cause).
876 WebString chrome_ui_scheme(ASCIIToUTF16(chrome::kChromeUIScheme)); 878 WebString chrome_ui_scheme(ASCIIToUTF16(chrome::kChromeUIScheme));
877 WebSecurityPolicy::registerURLSchemeAsLocal(chrome_ui_scheme); 879 if (command_line.HasSwitch(switches::kNewChromeUISecurityModel)) {
878 WebSecurityPolicy::registerURLSchemeAsNoAccess(chrome_ui_scheme); 880 WebSecurityPolicy::registerURLSchemeAsDisplayIsolated(chrome_ui_scheme);
881 } else {
882 WebSecurityPolicy::registerURLSchemeAsLocal(chrome_ui_scheme);
883 WebSecurityPolicy::registerURLSchemeAsNoAccess(chrome_ui_scheme);
884 }
879 885
880 // chrome-extension: resources shouldn't trigger insecure content warnings. 886 // chrome-extension: resources shouldn't trigger insecure content warnings.
881 WebString extension_scheme(ASCIIToUTF16(chrome::kExtensionScheme)); 887 WebString extension_scheme(ASCIIToUTF16(chrome::kExtensionScheme));
882 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); 888 WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme);
883 889
884 #if defined(OS_WIN) 890 #if defined(OS_WIN)
885 // We don't yet support Gears on non-Windows, so don't tell pages that we do. 891 // We don't yet support Gears on non-Windows, so don't tell pages that we do.
886 RegisterExtension(extensions_v8::GearsExtension::Get(), false); 892 RegisterExtension(extensions_v8::GearsExtension::Get(), false);
887 #endif 893 #endif
888 RegisterExtension(extensions_v8::LoadTimesExtension::Get(), false); 894 RegisterExtension(extensions_v8::LoadTimesExtension::Get(), false);
889 RegisterExtension(extensions_v8::ChromeAppExtension::Get(), false); 895 RegisterExtension(extensions_v8::ChromeAppExtension::Get(), false);
890 RegisterExtension(extensions_v8::ExternalExtension::Get(), false); 896 RegisterExtension(extensions_v8::ExternalExtension::Get(), false);
891 RegisterExtension(extensions_v8::SearchBoxExtension::Get(), false); 897 RegisterExtension(extensions_v8::SearchBoxExtension::Get(), false);
892 v8::Extension* search_extension = extensions_v8::SearchExtension::Get(); 898 v8::Extension* search_extension = extensions_v8::SearchExtension::Get();
893 // search_extension is null if not enabled. 899 // search_extension is null if not enabled.
894 if (search_extension) 900 if (search_extension)
895 RegisterExtension(search_extension, false); 901 RegisterExtension(search_extension, false);
896 902
897 const CommandLine& command_line = *CommandLine::ForCurrentProcess();
898
899 if (command_line.HasSwitch(switches::kEnableBenchmarking)) 903 if (command_line.HasSwitch(switches::kEnableBenchmarking))
900 RegisterExtension(extensions_v8::BenchmarkingExtension::Get(), false); 904 RegisterExtension(extensions_v8::BenchmarkingExtension::Get(), false);
901 905
902 if (command_line.HasSwitch(switches::kPlaybackMode) || 906 if (command_line.HasSwitch(switches::kPlaybackMode) ||
903 command_line.HasSwitch(switches::kRecordMode) || 907 command_line.HasSwitch(switches::kRecordMode) ||
904 command_line.HasSwitch(switches::kNoJsRandomness)) { 908 command_line.HasSwitch(switches::kNoJsRandomness)) {
905 RegisterExtension(extensions_v8::PlaybackExtension::Get(), false); 909 RegisterExtension(extensions_v8::PlaybackExtension::Get(), false);
906 } 910 }
907 911
908 if (command_line.HasSwitch(switches::kDomAutomationController)) 912 if (command_line.HasSwitch(switches::kDomAutomationController))
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
1143 } 1147 }
1144 1148
1145 return false; 1149 return false;
1146 } 1150 }
1147 1151
1148 void RenderThread::RegisterExtension(v8::Extension* extension, 1152 void RenderThread::RegisterExtension(v8::Extension* extension,
1149 bool restrict_to_extensions) { 1153 bool restrict_to_extensions) {
1150 WebScriptController::registerExtension(extension); 1154 WebScriptController::registerExtension(extension);
1151 v8_extensions_[extension->name()] = restrict_to_extensions; 1155 v8_extensions_[extension->name()] = restrict_to_extensions;
1152 } 1156 }
OLDNEW
« no previous file with comments | « chrome/common/chrome_switches.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698