| // 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"; |
| |
| // Describes the current process counts and limit. |
| struct ProcessCountInfo { |
| // Soft limit on renderer processes. |
| uint64 renderer_process_limit; |
| |
| // Total number of renderer processes. |
| uint64 renderer_process_count_total; |
| |
| // Total number of live renderer processes. |
| uint64 live_renderer_processes_count_total; |
| |
| // Total number of renderer processes that actually count towards the limit, |
| // possibly ignoring some of the total (e.g., to prevent extensions from using |
| // up the limit). |
| uint64 renderer_process_count_for_limit; |
| }; |
| |
| // Basic information describing a SiteInstance. |
| struct SiteInstanceInfo { |
| int32 id; |
| |
| // ID of the SiteInstanceGroup this SiteInstance belongs to. |
| int32 site_instance_group_id; |
| |
| // ID of the BrowsingInstance this SiteInstance belongs to. |
| int32 browsing_instance_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 uses an origin-keyed agent cluster. |
| // TODO(crbug.com/342365078): Once we pass the AgentClusterKey from the |
| // browser to the renderer process and we have a mojom version of |
| // AgentClusterKey, replace this by an AgentClusterKey. |
| 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; |
| |
| // Specifies whether this SiteInstance is for a PDF. |
| bool is_pdf; |
| |
| // Specifies whether this SiteInstance has JavaScript optimizers enabled. |
| bool are_javascript_optimizers_enabled; |
| |
| // 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 information about the current process count and limit, across all |
| // profiles. |
| GetProcessCountInfo() => (ProcessCountInfo info); |
| |
| // Returns a string containing the currently active isolation modes. |
| GetIsolationMode() => (string mode); |
| |
| // Returns a string containing the currently active process per site mode. |
| GetProcessPerSiteMode() => (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); |
| }; |