blob: 5e32675b85cfc523a5b7d10fcee2c70a5117465e [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 "services/network/public/mojom/network_param.mojom";
import "ui/accessibility/mojom/ax_tree_id.mojom";
import "ui/base/mojom/window_open_disposition.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";
import "mojo/public/mojom/base/unguessable_token.mojom";
import "url/mojom/url.mojom";
// Parameters used to configure the behavior of |NavigableContents.Navigate|.
struct NavigateParams {
// Indicates that upon successful navigation, the session history should be
// cleared, resulting in the navigated page being the first and only entry in
// the session's history.
bool should_clear_session_history = false;
};
// 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, NavigateParams params);
// Attempts to navigate the web contents back in its history stack. The
// supplied |callback| is run to indicate success/failure of the attempt. The
// navigation attempt will fail if the history stack is empty.
GoBack() => (bool success);
// 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.
CreateView() => (mojo_base.mojom.UnguessableToken embed_token);
// Attempts to transfer global input focus to the navigated contents if they
// have an active visual representation.
Focus();
// Similar to above but for use specifically when UI traversal is being done
// via Tab-key cycling.
FocusThroughTabTraversal(bool reverse);
};
// A client interface used by the Content Service to push contents-scoped events
// back to the application.
interface NavigableContentsClient {
// Requests that the client relinquish focus from the content area's view.
ClearViewFocus();
// Notifies the client that a navigation has finished.
DidFinishNavigation(url.mojom.Url url,
bool is_main_frame,
bool is_error_page,
network.mojom.HttpResponseHeaders? response_headers);
// Notifies the client that the NavigableContents has stopped loading
// resources pertaining to a prior navigation request.
DidStopLoading();
// Indicates that the navigated contents changed in such a way as to elicit
// automatic resizing of the containing view. Only fired if
// |NavigableContentsParams.enable_view_auto_resize| was set to |true| when
// creating the corresponding NavigableContents. The client may use this as a
// signal to, e.g., resize a UI element containing the content view.
DidAutoResizeView(gfx.mojom.Size new_size);
// Notifies the client that a navigation was attempted by the contents (e.g.
// by user gesture or script behavior), but it was suppressed because
// |NavigableContentsParams.suppress_navigations| was set to |true| when the
// NavigableContents was created. See that flag's documentation for details
// regarding which types of navigations it can affect.
DidSuppressNavigation(url.mojom.Url url,
ui.mojom.WindowOpenDisposition disposition,
bool from_user_gesture);
// Informs the client of the ID of the content area's accessibility tree
// whenever it changes.
UpdateContentAXTree(ax.mojom.AXTreeID id);
};