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

[DartPackage="mojo_services"]
module mojo;

import "mojo/public/interfaces/network/url_request.mojom";

// Expresses a preference for where a navigation will be performed.
enum Target {
  // No preference
  DEFAULT,

  // In the same ViewManager node that the navigation was initiated
  SOURCE_NODE,

  // In a new ViewManager node
  NEW_NODE
};

// Embedders that support navigation of implement this interface.
interface NavigatorHost {
  RequestNavigate(Target target, URLRequest request);
  RequestNavigateHistory(int32 delta);

  // Applications call this to inform hosts of navigations they performed
  // locally. For example, pushState() navigations in an HTML application.
  DidNavigateLocally(string url);
};
