| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module mojom; |
| |
| import "url/mojom/url.mojom"; |
| |
| // Basic information describing a SiteInstance. |
| struct SiteInstanceInfo { |
| int32 id; |
| |
| // Boolean indicating whether the SiteInstance's process is locked to a |
| // specific URL. |
| bool locked; |
| |
| url.mojom.Url? site_url; |
| |
| // The URL to which the SiteInstance's process is locked. |
| url.mojom.Url? process_lock_url; |
| |
| // Specifies whether the SiteInstance requires an origin-keyed process. This |
| // is true for opt-in origin isolation via the OriginAgentCluster header, |
| // false otherwise. |
| bool requires_origin_keyed_process; |
| |
| // Specifies if the SiteInstance is for sandboxed iframe isolation. |
| bool is_sandbox_for_iframes; |
| |
| // Specifies whether this SiteInstance is for a <webview> guest. |
| bool is_guest; |
| |
| // If this SiteInstance uses a non-default StoragePartition, this specifies a |
| // string representation of that StoragePartition. |
| string? storage_partition; |
| }; |
| |
| // Basic information describing a frame and all of its subframes. |
| struct FrameInfo { |
| int32 routing_id; |
| int32 agent_scheduling_group_id; |
| int32 process_id; |
| |
| SiteInstanceInfo site_instance; |
| url.mojom.Url? last_committed_url; |
| |
| array<FrameInfo> subframes; |
| |
| enum Type { kActive, kBackForwardCache, kPrerender }; |
| Type type; |
| }; |
| |
| // Basic information describing a WebContents object and all frames that are |
| // in it. |
| struct WebContentsInfo { |
| string title; |
| FrameInfo root_frame; |
| array<FrameInfo> bfcached_root_frames; |
| array<FrameInfo> prerender_root_frames; |
| }; |
| |
| // Information about a currently active isolated origin, including the origin |
| // itself and a |source| string that describes how the origin was added. |
| struct IsolatedOriginInfo { |
| string origin; |
| string source; |
| }; |
| |
| // Interface used by chrome://process-internals to query data from the |
| // browser process. |
| interface ProcessInternalsHandler { |
| |
| // Returns a string containing the currently active isolation modes. |
| GetIsolationMode() => (string mode); |
| |
| // Returns a list of user-triggered isolated origins, which are typically |
| // saved when the user types a password into a corresponding site. These |
| // origins apply within the current profile only, they are preserved across |
| // restarts, and they are cleared when the user clears browsing data. |
| GetUserTriggeredIsolatedOrigins() => (array<string> isolated_origins); |
| |
| // Returns a list of web-triggered isolated origins, which are typically |
| // added in response to heuristics triggered directly by web sites, such |
| // as headers that suggest the site might benefit from isolation. Like |
| // user-triggered isolated origins, these isolated origins apply within |
| // the current profile only, they are preserved across |
| // restarts, and they are cleared when the user clears browsing data. |
| GetWebTriggeredIsolatedOrigins() => (array<string> isolated_origins); |
| |
| // Returns a list of isolated origins that apply globally in all profiles. |
| GetGloballyIsolatedOrigins() => (array<IsolatedOriginInfo> isolated_origins); |
| |
| // Returns an array of WebContentsInfo structs for all WebContents |
| // associated with the profile in which this call is made. |
| GetAllWebContentsInfo() => (array<WebContentsInfo> infos); |
| }; |