chromium/components/subresource_filter/content/shared/browser/ruleset_publisher.h

// 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.

#ifndef COMPONENTS_SUBRESOURCE_FILTER_CONTENT_SHARED_BROWSER_RULESET_PUBLISHER_H_
#define COMPONENTS_SUBRESOURCE_FILTER_CONTENT_SHARED_BROWSER_RULESET_PUBLISHER_H_

#include <memory>

#include "base/files/file.h"
#include "base/files/file_path.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/single_thread_task_runner.h"
#include "components/subresource_filter/core/browser/ruleset_version.h"
#include "components/subresource_filter/core/browser/verified_ruleset_dealer.h"
#include "components/subresource_filter/core/common/ruleset_config.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/render_process_host_creation_observer.h"

namespace subresource_filter {

class RulesetService;

// Owned by the underlying RulesetService. Its main responsibility is receiving
// new versions of subresource filtering rules from the RulesetService, and
// distributing them to renderer processes, where they will be memory-mapped
// as-needed by an UnverifiedRulesetDealer.
//
// Implementers must define `SendRulesetToRenderProcess()` as well as a mojo
// interface and implementation class that lives on the renderer to receive the
// ruleset.
class RulesetPublisher : public content::RenderProcessHostCreationObserver {};

}  // namespace subresource_filter

#endif  // COMPONENTS_SUBRESOURCE_FILTER_CONTENT_SHARED_BROWSER_RULESET_PUBLISHER_H_