blob: 7109cb1fa159ce51e198c2a2d5f5c77691e253f6 [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 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 is origin-keyed. This is true for
// opt-in origin isolation, false otherwise.
bool is_origin_keyed;
};
// 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;
bool is_bfcached;
};
// 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;
};
// 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 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);
};