| // 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); |
| }; |