Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / components / web_view / public / interfaces / web_view.mojom
blobd5bab2b4698cd83f35d9a5184d787caebdff923f
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 module web_view.mojom;
7 import "components/mus/public/interfaces/view_tree.mojom";
8 import "network/public/interfaces/url_loader.mojom";
10 enum ButtonState {
11   ENABLED,
12   DISABLED,
15 interface WebViewClient {
16   // Page-generated request for a top level frame navigation.
17   TopLevelNavigate(mojo.URLRequest request);
19   // Loading and progress notifications.
20   LoadingStateChanged(bool is_loading, double progress);
21   BackForwardChanged(ButtonState back_button, ButtonState forward_button);
23   // TODO(beng): also forward text direction.
24   TitleChanged(string? title);
27 interface WebView {
28   // Navigate the top level frame to |request|.
29   LoadRequest(mojo.URLRequest request);
31   // Provide a ViewTreeClient for this specific WebView.
32   GetViewTreeClient(mojo.ViewTreeClient& view_tree_client);
34   // Moves forward and backward.
35   GoBack();
36   GoForward();
39 interface WebViewFactory {
40   CreateWebView(WebViewClient client, WebView& web_view);