diff options
author | koz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-13 08:50:05 +0000 |
---|---|---|
committer | koz@chromium.org <koz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-13 08:50:05 +0000 |
commit | 9e03ce210f4bd6d76c7922c5fbc86df5d15579f3 (patch) | |
tree | fa5c8054fd999c98c1741de19eb1e3e2405b3d5d /chrome/renderer/extensions/custom_bindings_util.cc | |
parent | aa8946b27d7ab6c308b04d4c58061505c0cb1936 (diff) | |
download | chromium_src-9e03ce210f4bd6d76c7922c5fbc86df5d15579f3.zip chromium_src-9e03ce210f4bd6d76c7922c5fbc86df5d15579f3.tar.gz chromium_src-9e03ce210f4bd6d76c7922c5fbc86df5d15579f3.tar.bz2 |
Revert 126317 and 126306 because of a performance regression on page loading.
BUG=104100
TEST=existing tests
Review URL: http://codereview.chromium.org/9692034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126360 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions/custom_bindings_util.cc')
-rw-r--r-- | chrome/renderer/extensions/custom_bindings_util.cc | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/chrome/renderer/extensions/custom_bindings_util.cc b/chrome/renderer/extensions/custom_bindings_util.cc index 5de0470b..b9dfa84 100644 --- a/chrome/renderer/extensions/custom_bindings_util.cc +++ b/chrome/renderer/extensions/custom_bindings_util.cc @@ -31,6 +31,83 @@ namespace extensions { namespace custom_bindings_util { +std::vector<v8::Extension*> GetAll(ExtensionDispatcher* extension_dispatcher) { + // Must match kResourceIDs. + static const char* kJavascriptFiles[] = { + "extensions/browser_action_custom_bindings.js", + "extensions/content_settings_custom_bindings.js", + "extensions/experimental.declarative_custom_bindings.js", + "extensions/devtools_custom_bindings.js", + "extensions/input.ime_custom_bindings.js", + "extensions/omnibox_custom_bindings.js", + "extensions/page_action_custom_bindings.js", + "extensions/storage_custom_bindings.js", + "extensions/tts_engine_custom_bindings.js", + "extensions/types_custom_bindings.js", + }; + static const size_t kJavascriptFilesSize = arraysize(kJavascriptFiles); + + // Must match kJavascriptFiles. + static const int kResourceIDs[] = { + IDR_BROWSER_ACTION_CUSTOM_BINDINGS_JS, + IDR_CONTENT_SETTINGS_CUSTOM_BINDINGS_JS, + IDR_EXPERIMENTAL_DECLARATIVE_CUSTOM_BINDINGS_JS, + IDR_DEVTOOLS_CUSTOM_BINDINGS_JS, + IDR_INPUT_IME_CUSTOM_BINDINGS_JS, + IDR_OMNIBOX_CUSTOM_BINDINGS_JS, + IDR_PAGE_ACTION_CUSTOM_BINDINGS_JS, + IDR_STORAGE_CUSTOM_BINDINGS_JS, + IDR_TTS_ENGINE_CUSTOM_BINDINGS_JS, + IDR_TYPES_CUSTOM_BINDINGS_JS, + }; + static const size_t kResourceIDsSize = arraysize(kResourceIDs); + + static const char* kDependencies[] = { + "extensions/schema_generated_bindings.js", + }; + static const size_t kDependencyCount = arraysize(kDependencies); + + std::vector<v8::Extension*> result; + + // Custom bindings that have native code parts. + result.push_back(new ChromePrivateCustomBindings( + kDependencyCount, kDependencies, extension_dispatcher)); + result.push_back(new ContextMenusCustomBindings( + kDependencyCount, kDependencies)); + result.push_back(new ExtensionCustomBindings( + kDependencyCount, kDependencies, extension_dispatcher)); + result.push_back(new ExperimentalSocketCustomBindings( + kDependencyCount, kDependencies)); + result.push_back(new FileBrowserHandlerCustomBindings( + kDependencyCount, kDependencies)); + result.push_back(new FileBrowserPrivateCustomBindings( + kDependencyCount, kDependencies)); + result.push_back(new I18NCustomBindings( + kDependencyCount, kDependencies)); + result.push_back(new PageActionsCustomBindings( + kDependencyCount, kDependencies, extension_dispatcher)); + result.push_back(new PageCaptureCustomBindings( + kDependencyCount, kDependencies)); + result.push_back(new TabsCustomBindings( + kDependencyCount, kDependencies)); + result.push_back(new TTSCustomBindings( + kDependencyCount, kDependencies)); + result.push_back(new WebRequestCustomBindings( + kDependencyCount, kDependencies)); + + // Pure JavaScript custom bindings. + CHECK_EQ(kJavascriptFilesSize, kResourceIDsSize); + for (size_t i = 0; i < kJavascriptFilesSize; ++i) { + result.push_back(new ChromeV8Extension( + kJavascriptFiles[i], + kResourceIDs[i], + kDependencyCount, kDependencies, + NULL)); + } + + return result; +} + // Extracts the name of an API from the name of the V8 extension which contains // custom bindings for it (see kCustomBindingNames). std::string GetAPIName(const std::string& v8_extension_name) { |