103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// found in the LICENSE file.
403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#ifndef EXTENSIONS_RENDERER_GUEST_VIEW_GUEST_VIEW_INTERNAL_CUSTOM_BINDINGS_H_
603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#define EXTENSIONS_RENDERER_GUEST_VIEW_GUEST_VIEW_INTERNAL_CUSTOM_BINDINGS_H_
703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "extensions/renderer/object_backed_native_handler.h"
903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace extensions {
1103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class Dispatcher;
1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Implements custom bindings for the guestViewInternal API.
1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class GuestViewInternalCustomBindings : public ObjectBackedNativeHandler {
1503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) public:
1603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  explicit GuestViewInternalCustomBindings(ScriptContext* context);
1703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) private:
1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // AttachGuest attaches a GuestView to a provided container element. Once
2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // attached, the GuestView will participate in layout of the container page
2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // and become visible on screen.
2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // AttachGuest takes three parameters:
2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // |element_instance_id| uniquely identifies a container within the content
2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // module is able to host GuestViews.
2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // |guest_instance_id| uniquely identifies an unattached GuestView.
2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // |attach_params| is typically used to convey the current state of the
2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // container element at the time of attachment. These parameters are passed
2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // down to the GuestView. The GuestView may use these parameters to update the
2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  // state of the guest hosted in another process.
3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  void AttachGuest(const v8::FunctionCallbackInfo<v8::Value>& args);
3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)};
3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
3303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}  // namespace extensions
3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)
3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#endif  // EXTENSIONS_RENDERER_GUEST_VIEW_GUEST_VIEW_INTERNAL_CUSTOM_BINDINGS_H_
36