// Copyright 2026 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module content_settings_internals.mojom;

import "components/content_settings/core/common/content_settings_types.mojom";
import "components/content_settings/core/common/content_settings.mojom";

// Mojo interface for DevUI access to Content Settings data.

// Renderer -> Browser
interface PageHandler {
  // Return a list of ContentSettings for the current profile and given type.
  // Reads directly from the HostContentSettingsMap.
  ReadContentSettings(content_settings.mojom.ContentSettingsType type) => (
    array<content_settings.mojom.ContentSettingPatternSource> content_settings);

  // Return a string representation of a ContentSettingsPattern.
  ContentSettingsPatternToString(
    content_settings.mojom.ContentSettingsPattern pattern) => (string s);

  // Return a ContentSettingsPattern representing a string.
  StringToContentSettingsPattern(string s) => (
    content_settings.mojom.ContentSettingsPattern pattern);
};

// Factory interface to create the handler.
interface PageHandlerFactory {
  // Creates a PageHandler and binds it to the given receiver.
  CreatePageHandler(pending_receiver<PageHandler> handler);
};
