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

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

Issue 3163044: Expose Extension Bindings to Component Applications (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: review chanecs Created 10 years, 3 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
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 827 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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 }
OLDNEW
« no previous file with comments | « chrome/renderer/mock_render_thread.cc ('k') | chrome/renderer/resources/extension_process_bindings.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698