1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef EXTENSIONS_BROWSER_API_EXTENSION_VIEW_EXTENSION_VIEW_INTERNAL_API_H_
6 #define EXTENSIONS_BROWSER_API_EXTENSION_VIEW_EXTENSION_VIEW_INTERNAL_API_H_
8 #include "extensions/browser/api/capture_web_contents_function.h"
9 #include "extensions/browser/api/execute_code_function.h"
10 #include "extensions/browser/extension_function.h"
11 #include "extensions/browser/guest_view/extension_view/extension_view_guest.h"
13 namespace extensions
{
15 // An abstract base class for async extensionview APIs. It does a process ID
16 // check in RunAsync, and then calls RunAsyncSafe which must be overriden by
18 class ExtensionViewInternalExtensionFunction
: public AsyncExtensionFunction
{
20 ExtensionViewInternalExtensionFunction() {}
23 ~ExtensionViewInternalExtensionFunction() override
{}
25 // ExtensionFunction implementation.
26 bool RunAsync() final
;
29 virtual bool RunAsyncSafe(ExtensionViewGuest
* guest
) = 0;
32 class ExtensionViewInternalNavigateFunction
33 : public ExtensionViewInternalExtensionFunction
{
35 DECLARE_EXTENSION_FUNCTION("extensionViewInternal.navigate",
36 EXTENSIONVIEWINTERNAL_NAVIGATE
);
37 ExtensionViewInternalNavigateFunction() {}
40 ~ExtensionViewInternalNavigateFunction() override
{}
43 // ExtensionViewInternalExtensionFunction implementation.
44 bool RunAsyncSafe(ExtensionViewGuest
* guest
) override
;
46 DISALLOW_COPY_AND_ASSIGN(ExtensionViewInternalNavigateFunction
);
49 } // namespace extensions
51 #endif // CHROME_BROWSER_EXTENSIONS_API_EXTENSION_VIEW_EXTENSION_VIEW_INTERNAL_API_H_