blob: 620280eec5784d0763311d9d417284930a80133b [file] [log] [blame]
// 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.
module content.mojom;
import "mojo/public/mojom/base/unguessable_token.mojom";
import "url/mojom/url.mojom";
// The primary interface an application uses to drive a top-level, navigable
// content object. Typically this would correspond to e.g. a browser tab, but
// it is not strictly necessary that the contents have any graphical presence
// within the client application.
interface NavigableContents {
// Initiates a navigation to |url|.
Navigate(url.mojom.Url url);
// Creates a visual representation of the navigated contents, which is
// maintained by the Content Service. Responds with a |embed_token| which can
// be given to Mus in order to authorize embedding of that visual
// representation within the client application's own window tree.
//
// |in_service_process| must be true iff the client calling this method is
// running in the same process as the Content Service. This can be known in
// the client by calling
// |NavigableContentsView::IsClientRunningInServiceProcess()|.
//
// TODO(https://crbug.com/874143): Remove the |in_service_process| flag once
// we have more widely available UI Service support.
CreateView(bool in_service_process)
=> (mojo_base.mojom.UnguessableToken embed_token);
};
// A client interface used by the Content Service to push contents-scoped events
// back to the application.
interface NavigableContentsClient {
// Notifies the client that the NavigableContents has stopped loading
// resources pertaining to a prior navigation request.
DidStopLoading();
};