#ifndef WEBLAYER_BROWSER_PAGE_SPECIFIC_CONTENT_SETTINGS_DELEGATE_H_
#define WEBLAYER_BROWSER_PAGE_SPECIFIC_CONTENT_SETTINGS_DELEGATE_H_
#include "base/memory/raw_ptr.h"
#include "components/content_settings/browser/page_specific_content_settings.h"
namespace weblayer {
class PageSpecificContentSettingsDelegate
: public content_settings::PageSpecificContentSettings::Delegate {
public:
explicit PageSpecificContentSettingsDelegate(
content::WebContents* web_contents);
~PageSpecificContentSettingsDelegate() override;
PageSpecificContentSettingsDelegate(
const PageSpecificContentSettingsDelegate&) = delete;
PageSpecificContentSettingsDelegate& operator=(
const PageSpecificContentSettingsDelegate&) = delete;
static void InitializeRenderer(content::RenderProcessHost* process);
private:
void UpdateLocationBar() override;
PrefService* GetPrefs() override;
HostContentSettingsMap* GetSettingsMap() override;
std::unique_ptr<BrowsingDataModel::Delegate> CreateBrowsingDataModelDelegate()
override;
void SetDefaultRendererContentSettingRules(
content::RenderFrameHost* rfh,
RendererContentSettingRules* rules) override;
std::vector<storage::FileSystemType> GetAdditionalFileSystemTypes() override;
browsing_data::CookieHelper::IsDeletionDisabledCallback
GetIsDeletionDisabledCallback() override;
bool IsMicrophoneCameraStateChanged(
content_settings::PageSpecificContentSettings::MicrophoneCameraState
microphone_camera_state,
const std::string& media_stream_selected_audio_device,
const std::string& media_stream_selected_video_device) override;
content_settings::PageSpecificContentSettings::MicrophoneCameraState
GetMicrophoneCameraState() override;
content::WebContents* MaybeGetSyncedWebContentsForPictureInPicture(
content::WebContents* web_contents) override;
void OnContentAllowed(ContentSettingsType type) override;
void OnContentBlocked(ContentSettingsType type) override;
void OnStorageAccessAllowed(
content_settings::mojom::ContentSettingsManager::StorageType storage_type,
const url::Origin& origin,
content::Page& page) override;
void OnCookieAccessAllowed(const net::CookieList& accessed_cookies,
content::Page& page) override;
void OnServiceWorkerAccessAllowed(const url::Origin& origin,
content::Page& page) override;
raw_ptr<content::WebContents> web_contents_;
};
}
#endif