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