1 // Copyright 2020 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef WEBLAYER_BROWSER_PAGE_SPECIFIC_CONTENT_SETTINGS_DELEGATE_H_ 6 #define WEBLAYER_BROWSER_PAGE_SPECIFIC_CONTENT_SETTINGS_DELEGATE_H_ 7 8 #include "components/content_settings/browser/page_specific_content_settings.h" 9 10 namespace weblayer { 11 12 // Called by PageSpecificContentSettings to handle WebLayer specific logic. 13 class PageSpecificContentSettingsDelegate 14 : public content_settings::PageSpecificContentSettings::Delegate { 15 public: 16 explicit PageSpecificContentSettingsDelegate( 17 content::WebContents* web_contents); 18 ~PageSpecificContentSettingsDelegate() override; 19 PageSpecificContentSettingsDelegate( 20 const PageSpecificContentSettingsDelegate&) = delete; 21 PageSpecificContentSettingsDelegate& operator=( 22 const PageSpecificContentSettingsDelegate&) = delete; 23 24 static void UpdateRendererContentSettingRules( 25 content::RenderProcessHost* process); 26 27 private: 28 // PageSpecificContentSettings::Delegate: 29 void UpdateLocationBar() override; 30 void SetContentSettingRules( 31 content::RenderProcessHost* process, 32 const RendererContentSettingRules& rules) override; 33 PrefService* GetPrefs() override; 34 HostContentSettingsMap* GetSettingsMap() override; 35 ContentSetting GetEmbargoSetting(const GURL& request_origin, 36 ContentSettingsType permission) override; 37 std::vector<storage::FileSystemType> GetAdditionalFileSystemTypes() override; 38 browsing_data::CookieHelper::IsDeletionDisabledCallback 39 GetIsDeletionDisabledCallback() override; 40 bool IsMicrophoneCameraStateChanged( 41 content_settings::PageSpecificContentSettings::MicrophoneCameraState 42 microphone_camera_state, 43 const std::string& media_stream_selected_audio_device, 44 const std::string& media_stream_selected_video_device) override; 45 content_settings::PageSpecificContentSettings::MicrophoneCameraState 46 GetMicrophoneCameraState() override; 47 void OnContentAllowed(ContentSettingsType type) override; 48 void OnContentBlocked(ContentSettingsType type) override; 49 void OnCacheStorageAccessAllowed(const url::Origin& origin) override; 50 void OnCookieAccessAllowed(const net::CookieList& accessed_cookies) override; 51 void OnDomStorageAccessAllowed(const url::Origin& origin) override; 52 void OnFileSystemAccessAllowed(const url::Origin& origin) override; 53 void OnIndexedDBAccessAllowed(const url::Origin& origin) override; 54 void OnServiceWorkerAccessAllowed(const url::Origin& origin) override; 55 void OnWebDatabaseAccessAllowed(const url::Origin& origin) override; 56 57 content::WebContents* web_contents_; 58 }; 59 60 } // namespace weblayer 61 62 #endif // WEBLAYER_BROWSER_PAGE_SPECIFIC_CONTENT_SETTINGS_DELEGATE_H_ 63