1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file.
4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifndef EXTENSIONS_RENDERER_V8_CONTEXT_NATIVE_HANDLER_H_
6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define EXTENSIONS_RENDERER_V8_CONTEXT_NATIVE_HANDLER_H_
7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "extensions/renderer/object_backed_native_handler.h"
9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace extensions {
11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class Dispatcher;
13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class V8ContextNativeHandler : public ObjectBackedNativeHandler {
15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) public:
16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  V8ContextNativeHandler(ScriptContext* context, Dispatcher* dispatcher);
17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) private:
19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  void GetAvailability(const v8::FunctionCallbackInfo<v8::Value>& args);
20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  void GetModuleSystem(const v8::FunctionCallbackInfo<v8::Value>& args);
21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  void RunWithNativesEnabledModuleSystem(
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      const v8::FunctionCallbackInfo<v8::Value>& args);
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  ScriptContext* context_;
26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  Dispatcher* dispatcher_;
27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)};
28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}  // namespace extensions
30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif  // EXTENSIONS_RENDERER_V8_CONTEXT_NATIVE_HANDLER_H_
32