diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-05 21:39:11 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-05 21:39:11 +0000 |
commit | 06533c0b11ce14b45eb0205fdc28a217eeba763c (patch) | |
tree | c2209aab205a7b2216c61be7e1ae6b231b7cb148 /webkit/extensions/v8/gears_extension.cc | |
parent | 68acddb6ced1c8d29e84fb1465f331515217e50a (diff) | |
download | chromium_src-06533c0b11ce14b45eb0205fdc28a217eeba763c.zip chromium_src-06533c0b11ce14b45eb0205fdc28a217eeba763c.tar.gz chromium_src-06533c0b11ce14b45eb0205fdc28a217eeba763c.tar.bz2 |
Refactor v8 extensions so that they aren't in the WebCore namespace, and can call functions in the rest of Chromium code without having to go through ChromiumBridge (which now lives upstream in the WebKit repository).
R=darin,mbelshe
Review URL: http://codereview.chromium.org/40132
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11040 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/extensions/v8/gears_extension.cc')
-rw-r--r-- | webkit/extensions/v8/gears_extension.cc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/webkit/extensions/v8/gears_extension.cc b/webkit/extensions/v8/gears_extension.cc new file mode 100644 index 0000000..f36ac61 --- /dev/null +++ b/webkit/extensions/v8/gears_extension.cc @@ -0,0 +1,44 @@ +// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "webkit/extensions/v8/gears_extension.h" + +namespace extensions_v8 { + +const char* kGearsExtensionName = "v8/Gears"; + +// Note: when a page touches the "google.gears.factory" object, this script +// touches the DOM. We expect the DOM to be available at that time. +const char* kGearsExtensionScript = + "var google;" + "if (!google)" + " google = {};" + "if (!google.gears)" + " google.gears = {};" + "(function() {" + " var factory = null;" + " google.gears.__defineGetter__('factory', function() {" + " if (!factory) {" + " factory = document.createElement('object');" + " factory.width = 0;" + " factory.height = 0;" + " factory.style.visibility = 'hidden';" + " factory.type = 'application/x-googlegears';" + " document.documentElement.appendChild(factory);" + " }" + " return factory;" + " });" + "})();"; + +class GearsExtensionWrapper : public v8::Extension { + public: + GearsExtensionWrapper() + : v8::Extension(kGearsExtensionName, kGearsExtensionScript) {} +}; + +v8::Extension* GearsExtension::Get() { + return new GearsExtensionWrapper(); +} + +} // namespace extensions_v8 |