| OLD | NEW |
| 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 835 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 // We don't yet support Gears on non-Windows, so don't tell pages that we do. | 846 // We don't yet support Gears on non-Windows, so don't tell pages that we do. |
| 847 WebScriptController::registerExtension(extensions_v8::GearsExtension::Get()); | 847 WebScriptController::registerExtension(extensions_v8::GearsExtension::Get()); |
| 848 #endif | 848 #endif |
| 849 WebScriptController::registerExtension( | 849 WebScriptController::registerExtension( |
| 850 extensions_v8::LoadTimesExtension::Get()); | 850 extensions_v8::LoadTimesExtension::Get()); |
| 851 WebScriptController::registerExtension( | 851 WebScriptController::registerExtension( |
| 852 extensions_v8::ChromeAppExtension::Get()); | 852 extensions_v8::ChromeAppExtension::Get()); |
| 853 WebScriptController::registerExtension( | 853 WebScriptController::registerExtension( |
| 854 extensions_v8::ExternalExtension::Get()); | 854 extensions_v8::ExternalExtension::Get()); |
| 855 | 855 |
| 856 const WebKit::WebString kExtensionScheme = | 856 // TODO(rafaelw). Note that extension-related v8 extensions are being |
| 857 WebKit::WebString::fromUTF8(chrome::kExtensionScheme); | 857 // bound currently based on is_extension_process_. This means that |
| 858 // non-extension renderers that slip into an extension process (for example, |
| 859 // an extension page opening an iframe) will be extension bindings setup. |
| 860 // This should be relatively rare, and the offending page won't be able to |
| 861 // make extension API requests because it'll be denied on both sides of |
| 862 // the renderer by a permission check. However, this is still fairly lame |
| 863 // and we should consider implementing a V8Proxy delegate that calls out |
| 864 // to the render thread and makes a decision as to whether to bind these |
| 865 // extensions based on the frame's url. |
| 866 // See: crbug.com/53610. |
| 858 | 867 |
| 859 WebScriptController::registerExtension( | 868 if (is_extension_process_) |
| 860 ExtensionProcessBindings::Get(), kExtensionScheme); | 869 WebScriptController::registerExtension(ExtensionProcessBindings::Get()); |
| 861 | 870 |
| 862 WebScriptController::registerExtension( | 871 WebScriptController::registerExtension( |
| 863 BaseJsV8Extension::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); | 872 BaseJsV8Extension::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); |
| 864 WebScriptController::registerExtension( | 873 if (is_extension_process_) |
| 865 BaseJsV8Extension::Get(), kExtensionScheme); | 874 WebScriptController::registerExtension(BaseJsV8Extension::Get()); |
| 875 |
| 866 WebScriptController::registerExtension( | 876 WebScriptController::registerExtension( |
| 867 JsonSchemaJsV8Extension::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); | 877 JsonSchemaJsV8Extension::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); |
| 868 WebScriptController::registerExtension(JsonSchemaJsV8Extension::Get(), | 878 if (is_extension_process_) |
| 869 kExtensionScheme); | 879 WebScriptController::registerExtension(JsonSchemaJsV8Extension::Get()); |
| 880 |
| 870 WebScriptController::registerExtension( | 881 WebScriptController::registerExtension( |
| 871 EventBindings::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); | 882 EventBindings::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); |
| 872 WebScriptController::registerExtension(EventBindings::Get(), | 883 if (is_extension_process_) |
| 873 kExtensionScheme); | 884 WebScriptController::registerExtension(EventBindings::Get()); |
| 885 |
| 874 WebScriptController::registerExtension( | 886 WebScriptController::registerExtension( |
| 875 RendererExtensionBindings::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); | 887 RendererExtensionBindings::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); |
| 876 WebScriptController::registerExtension( | 888 if (is_extension_process_) |
| 877 RendererExtensionBindings::Get(), kExtensionScheme); | 889 WebScriptController::registerExtension(RendererExtensionBindings::Get()); |
| 878 WebScriptController::registerExtension( | 890 |
| 879 ExtensionApiTestV8Extension::Get(), kExtensionScheme); | |
| 880 WebScriptController::registerExtension( | 891 WebScriptController::registerExtension( |
| 881 ExtensionApiTestV8Extension::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); | 892 ExtensionApiTestV8Extension::Get(), EXTENSION_GROUP_CONTENT_SCRIPTS); |
| 893 if (is_extension_process_) |
| 894 WebScriptController::registerExtension( |
| 895 ExtensionApiTestV8Extension::Get()); |
| 882 | 896 |
| 883 web_database_observer_impl_.reset(new WebDatabaseObserverImpl(this)); | 897 web_database_observer_impl_.reset(new WebDatabaseObserverImpl(this)); |
| 884 WebKit::WebDatabase::setObserver(web_database_observer_impl_.get()); | 898 WebKit::WebDatabase::setObserver(web_database_observer_impl_.get()); |
| 885 | 899 |
| 886 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); | 900 const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
| 887 | 901 |
| 888 if (command_line.HasSwitch(switches::kEnableBenchmarking)) { | 902 if (command_line.HasSwitch(switches::kEnableBenchmarking)) { |
| 889 WebScriptController::registerExtension( | 903 WebScriptController::registerExtension( |
| 890 extensions_v8::BenchmarkingExtension::Get()); | 904 extensions_v8::BenchmarkingExtension::Get()); |
| 891 } | 905 } |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1079 | 1093 |
| 1080 scoped_refptr<base::MessageLoopProxy> | 1094 scoped_refptr<base::MessageLoopProxy> |
| 1081 RenderThread::GetFileThreadMessageLoopProxy() { | 1095 RenderThread::GetFileThreadMessageLoopProxy() { |
| 1082 DCHECK(message_loop() == MessageLoop::current()); | 1096 DCHECK(message_loop() == MessageLoop::current()); |
| 1083 if (!file_thread_.get()) { | 1097 if (!file_thread_.get()) { |
| 1084 file_thread_.reset(new base::Thread("Renderer::FILE")); | 1098 file_thread_.reset(new base::Thread("Renderer::FILE")); |
| 1085 file_thread_->Start(); | 1099 file_thread_->Start(); |
| 1086 } | 1100 } |
| 1087 return file_thread_->message_loop_proxy(); | 1101 return file_thread_->message_loop_proxy(); |
| 1088 } | 1102 } |
| OLD | NEW |