blob: a529780ed0056817135d4202a799741292117fb9 [file] [log] [blame]
// Copyright 2019 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 chrome.mojom;
import "components/content_settings/core/common/content_settings.mojom";
import "url/mojom/origin.mojom";
import "url/mojom/url.mojom";
// An interface to the content settings manager running in the browser process
// associated with a RenderFrameHost instance.
interface ContentSettingsManager {
// Enable cloning the connection, which helps support worker threads created
// from other worker threads.
Clone(pending_receiver<ContentSettingsManager> clone);
enum StorageType {
DATABASE,
LOCAL_STORAGE,
SESSION_STORAGE,
FILE_SYSTEM,
INDEXED_DB,
CACHE,
WEB_LOCKS,
};
// Sent by the renderer process to check whether access to a particular
// storage system is granted by content settings. Sync support is optional
// for when needed; prefer async whenever possible!
// TODO(darin): Ideally this interface would be attached to a document-
// specific browser-side object that would already know the origin info.
// Then these parameters would not need to be passed here.
[Sync]
AllowStorageAccess(
int32 render_frame_id,
StorageType storage_type,
url.mojom.Origin origin,
url.mojom.Url site_for_cookies,
url.mojom.Origin top_frame_origin) => (bool allowed);
// Tells the browser that content in the current page was blocked due to the
// user's content settings.
OnContentBlocked(
int32 render_frame_id,
content_settings.mojom.ContentSettingsType type);
};