mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
65 lines
2.9 KiB
Plaintext
65 lines
2.9 KiB
Plaintext
// 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 ash.mojom;
|
|
|
|
import "components/account_id/interfaces/account_id.mojom";
|
|
import "mojo/public/mojom/base/unguessable_token.mojom";
|
|
import "ui/gfx/geometry/mojo/geometry.mojom";
|
|
import "url/mojom/url.mojom";
|
|
|
|
// Interface for a class which is responsible for managing a WebContents in
|
|
// chrome/browser and owning associated resources until they are explicity
|
|
// released using the provided APIs.
|
|
interface WebContentsManager {
|
|
// Creates and manages WebContents as defined by the specified |params|. Any
|
|
// call to ManageWebContents should be paired with a corresponding call to
|
|
// ReleaseWebContents when the resources are no longer needed. To this end,
|
|
// the caller must supply an identifier by which to uniquely identify
|
|
// WebContents resources. When the rendered content is ready for embedding,
|
|
// the supplied callback will be run providing an unguessable |embed_token|.
|
|
// In the event of failure, the callback will still be run but no
|
|
// |embed_token| will be provided.
|
|
ManageWebContents(mojo_base.mojom.UnguessableToken id_token,
|
|
ManagedWebContentsParams params)
|
|
=> (mojo_base.mojom.UnguessableToken? embed_token);
|
|
|
|
// Releases any resources associated with the WebContents uniquely identified
|
|
// by |id_token|.
|
|
ReleaseWebContents(mojo_base.mojom.UnguessableToken id_token);
|
|
|
|
// Releases any resources associated with any WebContents uniquely identified
|
|
// by one of the specified |id_tokens|.
|
|
ReleaseAllWebContents(array<mojo_base.mojom.UnguessableToken> id_tokens);
|
|
|
|
// Navigates the WebContents uniquely identified by |id_token| back relative
|
|
// to the current history entry. The callback returns true if the WebContents
|
|
// were navigated, false otherwise.
|
|
NavigateWebContentsBack(mojo_base.mojom.UnguessableToken id_token)
|
|
=> (bool navigated);
|
|
};
|
|
|
|
// Defines parameters for a managed WebContents.
|
|
struct ManagedWebContentsParams {
|
|
// The account identifier for the profile.
|
|
signin.mojom.AccountId account_id;
|
|
// The initial URL.
|
|
url.mojom.Url url;
|
|
// The minimum desired size. Omitting defaults to (1, 1).
|
|
gfx.mojom.Size? min_size_dip;
|
|
// The maximum desired size. Omitting defaults to (INT_MAX, INT_MAX).
|
|
gfx.mojom.Size? max_size_dip;
|
|
// An optional delegate to handle top level browser requests. If omitted, top
|
|
// level browser requests will be handled according to default behavior.
|
|
ManagedWebContentsOpenUrlDelegate? open_url_delegate_ptr_info;
|
|
};
|
|
|
|
// Interface for a delegate to handle top level browser requests for a
|
|
// managed WebContents.
|
|
interface ManagedWebContentsOpenUrlDelegate {
|
|
// Invoked on a top level browser request to navigate to |url|. Return false
|
|
// to consume the navigation attempt or true to allow it to continue.
|
|
ShouldOpenUrlFromTab(url.mojom.Url url) => (bool should_open);
|
|
};
|