// Copyright 2018 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.

library chromium.web;

using fuchsia.sys;
using fuchsia.ui.viewsv1token;

interface Frame {
  // Creates and registers a view with the view manager and returns its
  // view owner which may subsequently be passed to |View.AddChild()|
  // to attach the view to a view hierarchy.
  //
  // |view_owner|: Request for the Frame's ViewOwner.
  // |services|: Request for the Frame's View-related services.
  1: CreateView(request<fuchsia.ui.viewsv1token.ViewOwner> view_owner,
                request<fuchsia.sys.ServiceProvider>? services);

  // Returns an interface through which the frame may be navigated to
  // a desired URL, reloaded, etc.
  //
  // |view_provider|: An interface request for the Frame's
  // NavigationController.
  2: GetNavigationController(request<NavigationController> controller);


  // Sets the observer for handling page navigation events.
  //
  // |observer|: The observer to use. Unregisters any existing observers
  //             if null.
  100: SetNavigationEventObserver(NavigationEventObserver? observer);
};
