// Copyright (c) 2006-2008 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. /* ExternalJSObject class: Bound to a JavaScript window.external object using CppBoundClass::BindToJavascript(), this adds methods accessible from JS for compatibility with other browsers. */ #ifndef CHROME_RENDERER_EXTERNAL_JS_OBJECT_H__ #define CHROME_RENDERER_EXTERNAL_JS_OBJECT_H__ #include "base/basictypes.h" #include "webkit/glue/cpp_bound_class.h" class RenderView; class ExternalJSObject : public CppBoundClass { public: // Builds the property and method lists needed to bind this class to a JS // object. ExternalJSObject(); // A RenderView must be set before AddSearchProvider is called, or the call // will do nothing. void set_render_view(RenderView* rv) { render_view_ = rv; } // Given a URL to an OpenSearch document in the first argument, adds the // corresponding search provider as a keyword search. The nonstandard // capitalization is for compatibility with Firefox and IE. void AddSearchProvider(const CppArgumentList& args, CppVariant* result); private: RenderView* render_view_; DISALLOW_EVIL_CONSTRUCTORS(ExternalJSObject); }; #endif // CHROME_RENDERER_EXTERNAL_JS_OBJECT_H__