[email protected] | 8643e6d | 2012-01-18 20:26:10 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | d977f9c | 2011-03-14 16:10:26 | [diff] [blame] | 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 CHROME_BROWSER_CHROME_CONTENT_BROWSER_CLIENT_H_ |
| 6 | #define CHROME_BROWSER_CHROME_CONTENT_BROWSER_CLIENT_H_ |
[email protected] | d977f9c | 2011-03-14 16:10:26 | [diff] [blame] | 7 | |
avi | e4d7b6f | 2015-12-26 00:59:18 | [diff] [blame] | 8 | #include <stddef.h> |
| 9 | |
dcheng | 4af4858 | 2016-04-19 00:29:35 | [diff] [blame] | 10 | #include <memory> |
[email protected] | e461da2f | 2012-02-16 19:06:40 | [diff] [blame] | 11 | #include <set> |
[email protected] | c99c442e | 2011-08-24 11:37:30 | [diff] [blame] | 12 | #include <string> |
[email protected] | d9be4770 | 2012-05-16 03:41:22 | [diff] [blame] | 13 | #include <utility> |
| 14 | #include <vector> |
[email protected] | c99c442e | 2011-08-24 11:37:30 | [diff] [blame] | 15 | |
tzik | 070c8ffb | 2017-03-29 05:28:12 | [diff] [blame] | 16 | #include "base/callback.h" |
Rayan Kanso | 411e84e | 2019-02-13 15:27:40 | [diff] [blame] | 17 | #include "base/containers/flat_map.h" |
tfarina | 2176f4b | 2015-09-17 07:09:26 | [diff] [blame] | 18 | #include "base/macros.h" |
yzshen | efcb7c7 | 2017-06-16 23:12:30 | [diff] [blame] | 19 | #include "base/memory/ref_counted.h" |
[email protected] | 2549f56 | 2014-07-24 02:55:34 | [diff] [blame] | 20 | #include "base/memory/weak_ptr.h" |
Yutaka Hirano | 93e92474 | 2020-11-11 10:40:13 | [diff] [blame] | 21 | #include "base/timer/timer.h" |
avi | e4d7b6f | 2015-12-26 00:59:18 | [diff] [blame] | 22 | #include "build/build_config.h" |
Xi Han | 85079c2 | 2019-04-18 21:43:05 | [diff] [blame] | 23 | #include "chrome/browser/startup_data.h" |
[email protected] | 87f3c08 | 2011-10-19 18:07:44 | [diff] [blame] | 24 | #include "content/public/browser/content_browser_client.h" |
Hans Wennborg | 5ffd139 | 2019-10-16 11:00:02 | [diff] [blame] | 25 | #include "content/public/browser/web_contents.h" |
Scott Violet | c8240b0 | 2018-03-08 22:03:59 | [diff] [blame] | 26 | #include "extensions/buildflags/buildflags.h" |
Scott Violet | a35f9a4 | 2018-03-22 22:00:44 | [diff] [blame] | 27 | #include "media/media_buildflags.h" |
Miyoung Shin | 6262215 | 2019-08-27 05:13:04 | [diff] [blame] | 28 | #include "mojo/public/cpp/bindings/pending_receiver.h" |
Julie Jeongeun Kim | fb6f530 | 2019-10-17 17:24:10 | [diff] [blame] | 29 | #include "mojo/public/cpp/bindings/pending_remote.h" |
Scott Violet | 02e38b9 | 2018-03-27 23:42:14 | [diff] [blame] | 30 | #include "ppapi/buildflags/buildflags.h" |
Yue Ru Sun | 03a6990a | 2020-10-24 18:04:31 | [diff] [blame] | 31 | #include "services/metrics/public/cpp/ukm_source_id.h" |
Takuto Ikuta | aa3b796c | 2019-02-06 02:54:56 | [diff] [blame] | 32 | #include "services/network/public/mojom/network_context.mojom-forward.h" |
Hiroki Nakagawa | 4136615 | 2020-07-27 18:31:40 | [diff] [blame] | 33 | #include "third_party/blink/public/common/loader/previews_state.h" |
[email protected] | d977f9c | 2011-03-14 16:10:26 | [diff] [blame] | 34 | |
[email protected] | a48ab711 | 2014-08-01 16:48:03 | [diff] [blame] | 35 | class ChromeContentBrowserClientParts; |
Chris Palmer | ac7d7564 | 2017-11-22 20:12:54 | [diff] [blame] | 36 | class PrefRegistrySimple; |
Yutaka Hirano | 93e92474 | 2020-11-11 10:40:13 | [diff] [blame] | 37 | class ScopedKeepAlive; |
[email protected] | a48ab711 | 2014-08-01 16:48:03 | [diff] [blame] | 38 | |
[email protected] | 2f3b1cc | 2014-03-17 23:07:15 | [diff] [blame] | 39 | namespace base { |
| 40 | class CommandLine; |
| 41 | } |
| 42 | |
scottmg | 8e6c608 | 2017-02-13 23:15:48 | [diff] [blame] | 43 | namespace blink { |
| 44 | namespace mojom { |
| 45 | class WindowFeatures; |
Donna Wu | 838ac36 | 2018-08-10 10:36:33 | [diff] [blame] | 46 | class WebUsbService; |
Domenic Denicola | 3d8e4c8a | 2020-02-27 21:09:28 | [diff] [blame] | 47 | } // namespace mojom |
Gyuyoung Kim | 1ac4ca78 | 2020-09-11 03:32:51 | [diff] [blame] | 48 | namespace web_pref { |
| 49 | struct WebPreferences; |
| 50 | } // namespace web_pref |
Minggang Wang | f6840ecf | 2019-07-29 05:15:02 | [diff] [blame] | 51 | class URLLoaderThrottle; |
Domenic Denicola | 3d8e4c8a | 2020-02-27 21:09:28 | [diff] [blame] | 52 | } // namespace blink |
scottmg | 8e6c608 | 2017-02-13 23:15:48 | [diff] [blame] | 53 | |
[email protected] | 9f9749a | 2012-03-02 19:37:00 | [diff] [blame] | 54 | namespace content { |
bengr | e8a146f | 2016-03-10 01:20:22 | [diff] [blame] | 55 | class BrowserContext; |
Olivier Yiptong | 935e6c4 | 2020-11-21 01:28:23 | [diff] [blame] | 56 | class FontAccessDelegate; |
[email protected] | 9f9749a | 2012-03-02 19:37:00 | [diff] [blame] | 57 | class QuotaPermissionContext; |
Domenic Denicola | 3d8e4c8a | 2020-02-27 21:09:28 | [diff] [blame] | 58 | } // namespace content |
[email protected] | 9f9749a | 2012-03-02 19:37:00 | [diff] [blame] | 59 | |
Ryan Sturm | aa05092f | 2018-10-21 03:56:54 | [diff] [blame] | 60 | namespace data_reduction_proxy { |
| 61 | class DataReductionProxyData; |
| 62 | } // namespace data_reduction_proxy |
| 63 | |
| 64 | namespace previews { |
| 65 | class PreviewsDecider; |
| 66 | class PreviewsUserData; |
| 67 | } // namespace previews |
| 68 | |
yzshen | efcb7c7 | 2017-06-16 23:12:30 | [diff] [blame] | 69 | namespace safe_browsing { |
Xinghui Lu | cf23c90 | 2020-06-10 17:38:25 | [diff] [blame] | 70 | class RealTimeUrlLookupServiceBase; |
yzshen | efcb7c7 | 2017-06-16 23:12:30 | [diff] [blame] | 71 | class SafeBrowsingService; |
Yuzhu Shen | 44094e2 | 2017-07-18 22:52:35 | [diff] [blame] | 72 | class UrlCheckerDelegate; |
Domenic Denicola | 3d8e4c8a | 2020-02-27 21:09:28 | [diff] [blame] | 73 | } // namespace safe_browsing |
yzshen | efcb7c7 | 2017-06-16 23:12:30 | [diff] [blame] | 74 | |
Evan Liu | 054dc08 | 2020-09-30 14:09:42 | [diff] [blame] | 75 | namespace sandbox { |
| 76 | class SeatbeltExecClient; |
| 77 | } // namespace sandbox |
| 78 | |
Dan Beam | f0a7e11 | 2019-06-07 18:40:58 | [diff] [blame] | 79 | namespace ui { |
| 80 | class NativeTheme; |
| 81 | } |
| 82 | |
| 83 | namespace url { |
| 84 | class Origin; |
| 85 | } |
| 86 | |
[email protected] | 443e931 | 2013-05-06 06:17:34 | [diff] [blame] | 87 | namespace user_prefs { |
[email protected] | c753f14 | 2013-02-10 13:14:04 | [diff] [blame] | 88 | class PrefRegistrySyncable; |
[email protected] | 443e931 | 2013-05-06 06:17:34 | [diff] [blame] | 89 | } |
[email protected] | bca1838 | 2012-06-25 19:15:23 | [diff] [blame] | 90 | |
sdefresne | 9fb6769 | 2015-08-03 18:48:22 | [diff] [blame] | 91 | namespace version_info { |
| 92 | enum class Channel; |
| 93 | } |
| 94 | |
Ovidio Henriquez | 3d729f6 | 2020-02-07 00:43:29 | [diff] [blame] | 95 | class ChromeBluetoothDelegate; |
Olivier Yiptong | 935e6c4 | 2020-11-21 01:28:23 | [diff] [blame] | 96 | class ChromeFontAccessDelegate; |
Matt Reynolds | 93616f9b | 2019-06-07 01:28:52 | [diff] [blame] | 97 | class ChromeHidDelegate; |
Reilly Grant | 0d28232 | 2019-01-29 02:42:58 | [diff] [blame] | 98 | class ChromeSerialDelegate; |
| 99 | |
Alexander Cooper | c844870 | 2020-03-14 01:39:56 | [diff] [blame] | 100 | #if BUILDFLAG(ENABLE_VR) |
| 101 | namespace vr { |
| 102 | class ChromeXrIntegrationClient; |
| 103 | } |
| 104 | #endif |
| 105 | |
Yutaka Hirano | 968d625 | 2018-12-04 05:09:31 | [diff] [blame] | 106 | // Returns the user agent of Chrome. |
| 107 | std::string GetUserAgent(); |
| 108 | |
Mike West | 6e4cbb3 | 2019-02-13 09:40:17 | [diff] [blame] | 109 | blink::UserAgentMetadata GetUserAgentMetadata(); |
| 110 | |
Aaron Tagliaboschi | 19ad8d3 | 2020-05-12 20:10:44 | [diff] [blame] | 111 | blink::UserAgentBrandList GenerateBrandVersionList( |
| 112 | int seed, |
| 113 | base::Optional<std::string> brand, |
Aaron Tagliaboschi | a06275dc | 2020-11-17 17:55:04 | [diff] [blame] | 114 | std::string major_version, |
| 115 | base::Optional<std::string> maybe_greasey_brand); |
Aaron Tagliaboschi | 19ad8d3 | 2020-05-12 20:10:44 | [diff] [blame] | 116 | |
[email protected] | d977f9c | 2011-03-14 16:10:26 | [diff] [blame] | 117 | class ChromeContentBrowserClient : public content::ContentBrowserClient { |
| 118 | public: |
danakj | 5beedd0 | 2020-10-30 15:55:13 | [diff] [blame] | 119 | ChromeContentBrowserClient(); |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 120 | ~ChromeContentBrowserClient() override; |
[email protected] | e461da2f | 2012-02-16 19:06:40 | [diff] [blame] | 121 | |
Chris Palmer | ac7d7564 | 2017-11-22 20:12:54 | [diff] [blame] | 122 | // TODO(https://crbug.com/787567): This file is about calls from content/ out |
| 123 | // to chrome/ to get values or notify about events, but both of these |
| 124 | // functions are from chrome/ to chrome/ and don't involve content/ at all. |
| 125 | // That suggests they belong somewhere else at the chrome/ layer. |
| 126 | static void RegisterLocalStatePrefs(PrefRegistrySimple* registry); |
[email protected] | 37ca3fe0 | 2013-07-05 15:32:44 | [diff] [blame] | 127 | static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); |
[email protected] | bca1838 | 2012-06-25 19:15:23 | [diff] [blame] | 128 | |
[email protected] | eabbfb1 | 2013-04-05 23:28:35 | [diff] [blame] | 129 | // Notification that the application locale has changed. This allows us to |
| 130 | // update our I/O thread cache of this value. |
| 131 | static void SetApplicationLocale(const std::string& locale); |
| 132 | |
Ahmed Fakhry | d70bf37b | 2018-04-04 17:07:24 | [diff] [blame] | 133 | // content::ContentBrowserClient: |
Patrick Monette | 61dfef9 | 2019-05-30 23:06:27 | [diff] [blame] | 134 | std::unique_ptr<content::BrowserMainParts> CreateBrowserMainParts( |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 135 | const content::MainFunctionParams& parameters) override; |
Gabriel Charette | e926fc1 | 2019-12-16 19:00:02 | [diff] [blame] | 136 | void PostAfterStartupTask( |
| 137 | const base::Location& from_here, |
| 138 | const scoped_refptr<base::SequencedTaskRunner>& task_runner, |
| 139 | base::OnceClosure task) override; |
falken | b09d443f | 2016-04-07 12:36:12 | [diff] [blame] | 140 | bool IsBrowserStartupComplete() override; |
Gabriel Charette | c8cca99 | 2017-08-10 18:21:49 | [diff] [blame] | 141 | void SetBrowserStartupIsCompleteForTesting() override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 142 | std::string GetStoragePartitionIdForSite( |
[email protected] | d1198fd | 2012-08-13 22:50:19 | [diff] [blame] | 143 | content::BrowserContext* browser_context, |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 144 | const GURL& site) override; |
John Abd-El-Malek | 9d57f9c | 2019-02-20 18:50:04 | [diff] [blame] | 145 | bool IsShuttingDown() override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 146 | bool IsValidStoragePartitionId(content::BrowserContext* browser_context, |
| 147 | const std::string& partition_id) override; |
Bret Sepulveda | 5665215 | 2020-06-24 14:47:13 | [diff] [blame] | 148 | content::StoragePartitionConfig GetStoragePartitionConfigForSite( |
[email protected] | 1bc2831 | 2012-11-08 08:31:53 | [diff] [blame] | 149 | content::BrowserContext* browser_context, |
Bret Sepulveda | 5665215 | 2020-06-24 14:47:13 | [diff] [blame] | 150 | const GURL& site) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 151 | content::WebContentsViewDelegate* GetWebContentsViewDelegate( |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 152 | content::WebContents* web_contents) override; |
Ken Rockot | 7c6275b | 2019-08-02 20:00:23 | [diff] [blame] | 153 | void RenderProcessWillLaunch(content::RenderProcessHost* host) override; |
Bo Liu | 4ade6b1b2 | 2017-11-28 02:26:35 | [diff] [blame] | 154 | bool AllowGpuLaunchRetryOnIOThread() override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 155 | GURL GetEffectiveURL(content::BrowserContext* browser_context, |
Alex Moshchuk | a31c788 | 2018-01-17 00:57:30 | [diff] [blame] | 156 | const GURL& url) override; |
Alexander Yashkin | 6aedc6e | 2018-08-15 08:58:45 | [diff] [blame] | 157 | bool ShouldCompareEffectiveURLsForSiteInstanceSelection( |
| 158 | content::BrowserContext* browser_context, |
| 159 | content::SiteInstance* candidate_site_instance, |
| 160 | bool is_main_frame, |
| 161 | const GURL& candidate_url, |
| 162 | const GURL& destination_url) override; |
Lucas Furukawa Gadani | 4909f3c | 2019-06-18 22:36:52 | [diff] [blame] | 163 | bool ShouldUseMobileFlingCurve() override; |
nick | cc0d914 | 2015-10-14 16:27:10 | [diff] [blame] | 164 | bool ShouldUseProcessPerSite(content::BrowserContext* browser_context, |
Aaron Colwell | abb540b | 2020-05-05 19:15:59 | [diff] [blame] | 165 | const GURL& site_url) override; |
Lukasz Anforowicz | 32d2712 | 2018-04-09 21:48:33 | [diff] [blame] | 166 | bool ShouldUseSpareRenderProcessHost(content::BrowserContext* browser_context, |
| 167 | const GURL& site_url) override; |
Clark DuVall | 4e1f0a7 | 2019-08-07 22:41:42 | [diff] [blame] | 168 | bool DoesSiteRequireDedicatedProcess(content::BrowserContext* browser_context, |
| 169 | const GURL& effective_site_url) override; |
Aaron Colwell | 8812a97 | 2020-10-02 23:36:56 | [diff] [blame] | 170 | bool ShouldLockProcessToSite(content::BrowserContext* browser_context, |
| 171 | const GURL& effective_site_url) override; |
Nasko Oskov | 3902367 | 2020-05-06 17:31:14 | [diff] [blame] | 172 | bool DoesWebUISchemeRequireProcessLock(base::StringPiece scheme) override; |
Maks Orlovich | 0e23e31 | 2019-07-16 13:13:56 | [diff] [blame] | 173 | bool ShouldTreatURLSchemeAsFirstPartyWhenTopLevel( |
Lily Chen | 0db055b | 2019-11-15 20:29:02 | [diff] [blame] | 174 | base::StringPiece scheme, |
| 175 | bool is_embedded_origin_secure) override; |
| 176 | bool ShouldIgnoreSameSiteCookieRestrictionsWhenTopLevel( |
| 177 | base::StringPiece scheme, |
| 178 | bool is_embedded_origin_secure) override; |
Xiaohan Wang | 15a07af | 2020-05-28 23:24:55 | [diff] [blame] | 179 | std::string GetSiteDisplayNameForCdmProcess( |
| 180 | content::BrowserContext* browser_context, |
| 181 | const GURL& site_url) override; |
Lukasz Anforowicz | 7097890d | 2019-11-20 21:49:22 | [diff] [blame] | 182 | void OverrideURLLoaderFactoryParams( |
Lukasz Anforowicz | e00adef | 2019-12-06 23:07:02 | [diff] [blame] | 183 | content::BrowserContext* browser_context, |
Lukasz Anforowicz | 5f335256 | 2019-11-14 16:53:59 | [diff] [blame] | 184 | const url::Origin& origin, |
Lukasz Anforowicz | e00adef | 2019-12-06 23:07:02 | [diff] [blame] | 185 | bool is_for_isolated_world, |
Lukasz Anforowicz | 7097890d | 2019-11-20 21:49:22 | [diff] [blame] | 186 | network::mojom::URLLoaderFactoryParams* factory_params) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 187 | void GetAdditionalWebUISchemes( |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 188 | std::vector<std::string>* additional_schemes) override; |
alexmos | 94875b3b | 2017-03-16 22:19:01 | [diff] [blame] | 189 | void GetAdditionalViewSourceSchemes( |
| 190 | std::vector<std::string>* additional_schemes) override; |
Lucas Furukawa Gadani | 4909f3c | 2019-06-18 22:36:52 | [diff] [blame] | 191 | bool LogWebUIUrl(const GURL& web_ui_url) override; |
John Abd-El-Malek | 04bfa853 | 2018-07-12 05:28:22 | [diff] [blame] | 192 | bool IsWebUIAllowedToMakeNetworkRequests(const url::Origin& origin) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 193 | bool IsHandledURL(const GURL& url) override; |
Frédéric Wang | 1eabba7 | 2020-10-23 15:36:55 | [diff] [blame] | 194 | bool HasCustomSchemeHandler(content::BrowserContext* browser_context, |
| 195 | const std::string& scheme) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 196 | bool CanCommitURL(content::RenderProcessHost* process_host, |
| 197 | const GURL& url) override; |
Lukasz Anforowicz | 63f3b943 | 2019-05-30 05:42:58 | [diff] [blame] | 198 | void OverrideNavigationParams( |
Scott Violet | 5ae6c42e | 2020-10-28 02:47:37 | [diff] [blame] | 199 | content::WebContents* web_contents, |
Lukasz Anforowicz | 63f3b943 | 2019-05-30 05:42:58 | [diff] [blame] | 200 | content::SiteInstance* site_instance, |
| 201 | ui::PageTransition* transition, |
| 202 | bool* is_renderer_initiated, |
| 203 | content::Referrer* referrer, |
| 204 | base::Optional<url::Origin>* initiator_origin) override; |
Charles Reis | 29e9dd1 | 2017-09-28 00:59:15 | [diff] [blame] | 205 | bool ShouldStayInParentProcessForNTP( |
| 206 | const GURL& url, |
| 207 | content::SiteInstance* parent_site_instance) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 208 | bool IsSuitableHost(content::RenderProcessHost* process_host, |
| 209 | const GURL& site_url) override; |
| 210 | bool MayReuseHost(content::RenderProcessHost* process_host) override; |
| 211 | bool ShouldTryToUseExistingProcessHost( |
| 212 | content::BrowserContext* browser_context, |
| 213 | const GURL& url) override; |
Alex Moshchuk | 9c9e388 | 2018-11-02 19:57:03 | [diff] [blame] | 214 | bool ShouldSubframesTryToReuseExistingProcess( |
| 215 | content::RenderFrameHost* main_frame) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 216 | void SiteInstanceGotProcess(content::SiteInstance* site_instance) override; |
| 217 | void SiteInstanceDeleting(content::SiteInstance* site_instance) override; |
| 218 | bool ShouldSwapBrowsingInstancesForNavigation( |
[email protected] | e9841fbd | 2013-02-22 23:12:14 | [diff] [blame] | 219 | content::SiteInstance* site_instance, |
Aaron Colwell | 16b4985d | 2019-11-13 00:20:56 | [diff] [blame] | 220 | const GURL& current_effective_url, |
| 221 | const GURL& destination_effective_url) override; |
Nasko Oskov | d83b571 | 2018-05-04 04:50:57 | [diff] [blame] | 222 | bool ShouldIsolateErrorPage(bool in_main_frame) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 223 | bool ShouldAssignSiteForURL(const GURL& url) override; |
Alex Moshchuk | d252c19 | 2017-07-17 22:03:48 | [diff] [blame] | 224 | std::vector<url::Origin> GetOriginsRequiringDedicatedProcess() override; |
Lukasz Anforowicz | 5e201abd | 2018-03-24 00:41:06 | [diff] [blame] | 225 | bool ShouldEnableStrictSiteIsolation() override; |
Aaron Colwell | 25617f7 | 2018-11-27 20:56:34 | [diff] [blame] | 226 | bool ShouldDisableSiteIsolation() override; |
Alex Moshchuk | 082b5f8 | 2019-03-14 01:34:16 | [diff] [blame] | 227 | std::vector<std::string> GetAdditionalSiteIsolationModes() override; |
Alex Moshchuk | e256d56 | 2019-04-26 21:43:57 | [diff] [blame] | 228 | void PersistIsolatedOrigin(content::BrowserContext* context, |
| 229 | const url::Origin& origin) override; |
Ken Rockot | 314714c | 2017-11-05 23:36:24 | [diff] [blame] | 230 | bool IsFileAccessAllowed(const base::FilePath& path, |
| 231 | const base::FilePath& absolute_path, |
| 232 | const base::FilePath& profile_path) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 233 | void AppendExtraCommandLineSwitches(base::CommandLine* command_line, |
| 234 | int child_process_id) override; |
Olivier Yiptong | 0daa93f | 2019-08-22 19:40:08 | [diff] [blame] | 235 | std::string GetApplicationClientGUIDForQuarantineCheck() override; |
Marijn Kruisselbrink | efe0bef6 | 2020-07-21 22:44:59 | [diff] [blame] | 236 | download::QuarantineConnectionCallback GetQuarantineConnectionCallback() |
| 237 | override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 238 | std::string GetApplicationLocale() override; |
| 239 | std::string GetAcceptLangs(content::BrowserContext* context) override; |
Dana Fried | 34d58000 | 2019-04-24 20:05:48 | [diff] [blame] | 240 | gfx::ImageSkia GetDefaultFavicon() override; |
bengr | e8a146f | 2016-03-10 01:20:22 | [diff] [blame] | 241 | bool IsDataSaverEnabled(content::BrowserContext* context) override; |
Kenichi Ishibashi | 4632987 | 2018-07-17 09:43:40 | [diff] [blame] | 242 | void UpdateRendererPreferencesForWorker( |
| 243 | content::BrowserContext* browser_context, |
Mario Sanchez Prada | 0bd8b8c | 2020-10-21 17:49:23 | [diff] [blame] | 244 | blink::RendererPreferences* out_prefs) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 245 | bool AllowAppCache(const GURL& manifest_url, |
Christian Dullweber | 7774015 | 2020-05-12 09:54:17 | [diff] [blame] | 246 | |
| 247 | const GURL& site_for_cookies, |
| 248 | const base::Optional<url::Origin>& top_frame_origin, |
Clark DuVall | 5690e74 | 2019-07-17 18:26:17 | [diff] [blame] | 249 | content::BrowserContext* context) override; |
John Abd-El-Malek | 7081094 | 2020-10-27 05:14:38 | [diff] [blame] | 250 | content::AllowServiceWorkerResult AllowServiceWorker( |
Matt Falkenhagen | 7b509e5 | 2019-08-15 23:11:41 | [diff] [blame] | 251 | const GURL& scope, |
Christian Dullweber | 2a2f218 | 2019-09-25 15:44:54 | [diff] [blame] | 252 | const GURL& site_for_cookies, |
| 253 | const base::Optional<url::Origin>& top_frame_origin, |
Matt Falkenhagen | 7b509e5 | 2019-08-15 23:11:41 | [diff] [blame] | 254 | const GURL& script_url, |
Alexander Timin | 17edc74 | 2020-04-23 18:22:18 | [diff] [blame] | 255 | content::BrowserContext* context) override; |
Jochen Eisinger | 0ff7645c | 2017-11-28 08:11:26 | [diff] [blame] | 256 | bool AllowSharedWorker(const GURL& worker_url, |
Christian Dullweber | 2a2f218 | 2019-09-25 15:44:54 | [diff] [blame] | 257 | const GURL& site_for_cookies, |
| 258 | const base::Optional<url::Origin>& top_frame_origin, |
Jochen Eisinger | 0ff7645c | 2017-11-28 08:11:26 | [diff] [blame] | 259 | const std::string& name, |
Hiroki Nakagawa | 018bb6d | 2017-11-30 03:31:37 | [diff] [blame] | 260 | const url::Origin& constructor_origin, |
Jochen Eisinger | 0ff7645c | 2017-11-28 08:11:26 | [diff] [blame] | 261 | content::BrowserContext* context, |
| 262 | int render_process_id, |
| 263 | int render_frame_id) override; |
Patrick Monette | 6cb099a | 2019-09-18 19:31:27 | [diff] [blame] | 264 | bool DoesSchemeAllowCrossOriginSharedWorker( |
| 265 | const std::string& scheme) override; |
Clark DuVall | ab63d14 | 2019-07-23 04:24:36 | [diff] [blame] | 266 | bool AllowSignedExchange(content::BrowserContext* browser_context) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 267 | void AllowWorkerFileSystem( |
[email protected] | 5c5a88e | 2011-11-12 00:45:35 | [diff] [blame] | 268 | const GURL& url, |
John Abd-El-Malek | 2a18d98d | 2019-08-08 04:31:57 | [diff] [blame] | 269 | content::BrowserContext* browser_context, |
Lukasz Anforowicz | 09060bdf7 | 2018-08-23 15:53:17 | [diff] [blame] | 270 | const std::vector<content::GlobalFrameRoutingId>& render_frames, |
John Abd-El-Malek | 2a18d98d | 2019-08-08 04:31:57 | [diff] [blame] | 271 | base::OnceCallback<void(bool)> callback) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 272 | bool AllowWorkerIndexedDB( |
[email protected] | 7c5ff9a | 2012-03-02 07:42:49 | [diff] [blame] | 273 | const GURL& url, |
John Abd-El-Malek | 2a18d98d | 2019-08-08 04:31:57 | [diff] [blame] | 274 | content::BrowserContext* browser_context, |
Lukasz Anforowicz | 09060bdf7 | 2018-08-23 15:53:17 | [diff] [blame] | 275 | const std::vector<content::GlobalFrameRoutingId>& render_frames) override; |
Ben Kelly | 6b2e61c | 2019-03-14 16:06:29 | [diff] [blame] | 276 | bool AllowWorkerCacheStorage( |
| 277 | const GURL& url, |
John Abd-El-Malek | 2a18d98d | 2019-08-08 04:31:57 | [diff] [blame] | 278 | content::BrowserContext* browser_context, |
Ben Kelly | 6b2e61c | 2019-03-14 16:06:29 | [diff] [blame] | 279 | const std::vector<content::GlobalFrameRoutingId>& render_frames) override; |
Joshua Bell | 1ebc8df | 2019-11-06 00:27:58 | [diff] [blame] | 280 | bool AllowWorkerWebLocks( |
| 281 | const GURL& url, |
| 282 | content::BrowserContext* browser_context, |
| 283 | const std::vector<content::GlobalFrameRoutingId>& render_frames) override; |
jyasskin | c993ce8d | 2016-03-31 00:38:34 | [diff] [blame] | 284 | AllowWebBluetoothResult AllowWebBluetooth( |
| 285 | content::BrowserContext* browser_context, |
| 286 | const url::Origin& requesting_origin, |
| 287 | const url::Origin& embedding_origin) override; |
beaufort.francois | 01135bf | 2016-11-23 14:37:36 | [diff] [blame] | 288 | std::string GetWebBluetoothBlocklist() override; |
Charlie Harrison | 071ac92 | 2020-06-25 19:11:22 | [diff] [blame] | 289 | bool AllowConversionMeasurement( |
| 290 | content::BrowserContext* browser_context) override; |
John Abd-El-Malek | 21bca7c | 2018-10-26 22:13:33 | [diff] [blame] | 291 | #if defined(OS_CHROMEOS) |
John Abd-El-Malek | 35bfaa5 | 2019-08-20 16:22:07 | [diff] [blame] | 292 | void OnTrustAnchorUsed(content::BrowserContext* browser_context) override; |
John Abd-El-Malek | 21bca7c | 2018-10-26 22:13:33 | [diff] [blame] | 293 | #endif |
Reilly Grant | 19aaccd | 2018-07-16 22:06:37 | [diff] [blame] | 294 | scoped_refptr<network::SharedURLLoaderFactory> |
| 295 | GetSystemSharedURLLoaderFactory() override; |
Sean Gilhuly | da1ee4b | 2018-11-13 21:56:09 | [diff] [blame] | 296 | network::mojom::NetworkContext* GetSystemNetworkContext() override; |
Andrew Moylan | 17329fc | 2017-09-25 07:43:30 | [diff] [blame] | 297 | std::string GetGeolocationApiKey() override; |
Ke He | 21ee87f | 2018-05-30 02:35:32 | [diff] [blame] | 298 | |
| 299 | #if defined(OS_ANDROID) |
| 300 | bool ShouldUseGmsCoreGeolocationProvider() override; |
| 301 | #endif |
Yeol | f3dc22ca | 2019-04-18 17:25:32 | [diff] [blame] | 302 | scoped_refptr<content::QuotaPermissionContext> CreateQuotaPermissionContext() |
| 303 | override; |
Mythri Alle | 0b8de0d | 2018-10-22 11:06:22 | [diff] [blame] | 304 | content::GeneratedCodeCacheSettings GetGeneratedCodeCacheSettings( |
| 305 | content::BrowserContext* context) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 306 | void AllowCertificateError( |
clamy | 0d32d6d | 2015-11-24 11:16:26 | [diff] [blame] | 307 | content::WebContents* web_contents, |
[email protected] | 4cf611e3 | 2012-02-13 16:06:17 | [diff] [blame] | 308 | int cert_error, |
| 309 | const net::SSLInfo& ssl_info, |
| 310 | const GURL& request_url, |
John Abd-El-Malek | c5b8df91 | 2019-05-07 17:02:23 | [diff] [blame] | 311 | bool is_main_frame_request, |
[email protected] | d9be4770 | 2012-05-16 03:41:22 | [diff] [blame] | 312 | bool strict_enforcement, |
Erik Staab | a65a603 | 2019-11-27 22:23:26 | [diff] [blame] | 313 | base::OnceCallback<void(content::CertificateRequestResultType)> callback) |
| 314 | override; |
Katie D | 1882617e | 2020-05-06 20:06:01 | [diff] [blame] | 315 | #if !defined(OS_ANDROID) |
| 316 | bool ShouldDenyRequestOnCertificateError(const GURL main_page_url) override; |
| 317 | #endif |
Daniel McArdle | 85735f5 | 2019-06-25 03:27:06 | [diff] [blame] | 318 | base::OnceClosure SelectClientCertificate( |
davidben | 3b8455ae7 | 2015-03-11 19:42:19 | [diff] [blame] | 319 | content::WebContents* web_contents, |
[email protected] | 7a593db | 2012-02-13 21:19:40 | [diff] [blame] | 320 | net::SSLCertRequestInfo* cert_request_info, |
mattm | 436ccfe | 2017-06-19 20:24:08 | [diff] [blame] | 321 | net::ClientCertIdentityList client_certs, |
dcheng | 4af4858 | 2016-04-19 00:29:35 | [diff] [blame] | 322 | std::unique_ptr<content::ClientCertificateDelegate> delegate) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 323 | content::MediaObserver* GetMediaObserver() override; |
Adrienne Walker | 80d95f0 | 2020-02-07 22:37:04 | [diff] [blame] | 324 | content::FeatureObserverClient* GetFeatureObserverClient() override; |
Richard Knoll | d0eae96 | 2019-04-04 12:34:02 | [diff] [blame] | 325 | content::PlatformNotificationService* GetPlatformNotificationService( |
| 326 | content::BrowserContext* browser_context) override; |
csharrison | 95f01e92 | 2017-04-24 18:52:35 | [diff] [blame] | 327 | bool CanCreateWindow(content::RenderFrameHost* opener, |
nick | 5ae4d2d | 2017-01-06 01:18:35 | [diff] [blame] | 328 | const GURL& opener_url, |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 329 | const GURL& opener_top_level_frame_url, |
Nasko Oskov | e9f1978 | 2019-01-04 18:32:35 | [diff] [blame] | 330 | const url::Origin& source_origin, |
scottmg | de42fb9 | 2017-02-10 17:56:03 | [diff] [blame] | 331 | content::mojom::WindowContainerType container_type, |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 332 | const GURL& target_url, |
| 333 | const content::Referrer& referrer, |
jochen | 67b271b | 2016-08-03 13:50:21 | [diff] [blame] | 334 | const std::string& frame_name, |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 335 | WindowOpenDisposition disposition, |
scottmg | 8e6c608 | 2017-02-13 23:15:48 | [diff] [blame] | 336 | const blink::mojom::WindowFeatures& features, |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 337 | bool user_gesture, |
| 338 | bool opener_suppressed, |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 339 | bool* no_javascript_access) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 340 | content::SpeechRecognitionManagerDelegate* |
zork | b548de08 | 2014-11-14 21:40:47 | [diff] [blame] | 341 | CreateSpeechRecognitionManagerDelegate() override; |
Scott Violet | 1644cf7 | 2020-06-24 04:51:55 | [diff] [blame] | 342 | #if defined(OS_CHROMEOS) |
Katie D | 840d953 | 2018-11-27 06:20:48 | [diff] [blame] | 343 | content::TtsControllerDelegate* GetTtsControllerDelegate() override; |
Scott Violet | 1644cf7 | 2020-06-24 04:51:55 | [diff] [blame] | 344 | #endif |
Katie D | 4713ee4 | 2018-11-30 01:48:27 | [diff] [blame] | 345 | content::TtsPlatform* GetTtsPlatform() override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 346 | void OverrideWebkitPrefs(content::RenderViewHost* rvh, |
Gyuyoung Kim | 1ac4ca78 | 2020-09-11 03:32:51 | [diff] [blame] | 347 | blink::web_pref::WebPreferences* prefs) override; |
Rakina Zata Amni | 347b7090 | 2020-07-22 10:49:04 | [diff] [blame] | 348 | bool OverrideWebPreferencesAfterNavigation( |
| 349 | content::WebContents* web_contents, |
Gyuyoung Kim | 1ac4ca78 | 2020-09-11 03:32:51 | [diff] [blame] | 350 | blink::web_pref::WebPreferences* prefs) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 351 | void BrowserURLHandlerCreated(content::BrowserURLHandler* handler) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 352 | base::FilePath GetDefaultDownloadDirectory() override; |
| 353 | std::string GetDefaultDownloadName() override; |
Dominik Röttsches | 4734783 | 2019-03-12 17:45:01 | [diff] [blame] | 354 | base::FilePath GetFontLookupTableCacheDir() override; |
jmadill | 57b52d4 | 2015-08-21 18:16:13 | [diff] [blame] | 355 | base::FilePath GetShaderDiskCacheDirectory() override; |
Khushal | 7ca0b78 | 2018-07-20 05:53:27 | [diff] [blame] | 356 | base::FilePath GetGrShaderDiskCacheDirectory() override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 357 | void DidCreatePpapiPlugin(content::BrowserPpapiHost* browser_host) override; |
| 358 | content::BrowserPpapiHost* GetExternalBrowserPpapiHost( |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 359 | int plugin_process_id) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 360 | bool AllowPepperSocketAPI( |
[email protected] | 157cc90 | 2012-11-02 06:31:58 | [diff] [blame] | 361 | content::BrowserContext* browser_context, |
| 362 | const GURL& url, |
[email protected] | dda5482 | 2013-06-15 01:26:39 | [diff] [blame] | 363 | bool private_api, |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 364 | const content::SocketPermissionRequest* params) override; |
adrian.belgun | d54465ba | 2016-05-18 10:03:58 | [diff] [blame] | 365 | bool IsPepperVpnProviderAPIAllowed(content::BrowserContext* browser_context, |
| 366 | const GURL& url) override; |
adrian.belgun | 5b341c7 | 2016-06-22 22:24:08 | [diff] [blame] | 367 | std::unique_ptr<content::VpnServiceProxy> GetVpnServiceProxy( |
| 368 | content::BrowserContext* browser_context) override; |
Brett Wilson | 804e83c | 2017-08-18 22:57:33 | [diff] [blame] | 369 | std::unique_ptr<ui::SelectFilePolicy> CreateSelectFilePolicy( |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 370 | content::WebContents* web_contents) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 371 | void GetAdditionalAllowedSchemesForFileSystem( |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 372 | std::vector<std::string>* additional_schemes) override; |
Ayu Ishii | fbb1fad | 2020-06-22 20:15:07 | [diff] [blame] | 373 | void GetSchemesBypassingSecureContextCheckAllowlist( |
falken | ad18509 | 2016-06-16 06:10:02 | [diff] [blame] | 374 | std::set<std::string>* schemes) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 375 | void GetURLRequestAutoMountHandlers( |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 376 | std::vector<storage::URLRequestAutoMountHandler>* handlers) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 377 | void GetAdditionalFileSystemBackends( |
[email protected] | 0ff5eb5 | 2013-07-10 20:35:31 | [diff] [blame] | 378 | content::BrowserContext* browser_context, |
[email protected] | 0225095 | 2013-04-24 23:52:53 | [diff] [blame] | 379 | const base::FilePath& storage_partition_path, |
avi | d6d88b91 | 2017-01-13 00:16:00 | [diff] [blame] | 380 | std::vector<std::unique_ptr<storage::FileSystemBackend>>* |
| 381 | additional_backends) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 382 | content::DevToolsManagerDelegate* GetDevToolsManagerDelegate() override; |
Rayan Kanso | 411e84e | 2019-02-13 15:27:40 | [diff] [blame] | 383 | void UpdateDevToolsBackgroundServiceExpiration( |
| 384 | content::BrowserContext* browser_context, |
| 385 | int service, |
| 386 | base::Time expiration_time) override; |
| 387 | base::flat_map<int, base::Time> GetDevToolsBackgroundServiceExpirations( |
| 388 | content::BrowserContext* browser_context) override; |
oysteine | c563c58 | 2015-02-13 19:19:52 | [diff] [blame] | 389 | content::TracingDelegate* GetTracingDelegate() override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 390 | bool IsPluginAllowedToCallRequestOSFileHandle( |
[email protected] | 487974a | 2014-06-13 16:49:01 | [diff] [blame] | 391 | content::BrowserContext* browser_context, |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 392 | const GURL& url) override; |
Daniel Cheng | a542fca | 2014-10-21 09:51:29 | [diff] [blame] | 393 | bool IsPluginAllowedToUseDevChannelAPIs( |
[email protected] | aec5ed5 | 2014-06-20 07:51:42 | [diff] [blame] | 394 | content::BrowserContext* browser_context, |
mostynb | 01d8b10e | 2014-10-13 09:44:44 | [diff] [blame] | 395 | const GURL& url) override; |
mlamouri | f8c23a200 | 2015-01-27 13:10:10 | [diff] [blame] | 396 | void OverridePageVisibilityState( |
| 397 | content::RenderFrameHost* render_frame_host, |
danakj | 0018a29a | 2018-12-01 01:03:43 | [diff] [blame] | 398 | content::PageVisibilityState* visibility_state) override; |
Avi Drissman | 2e458df | 2020-07-29 16:24:31 | [diff] [blame] | 399 | #if defined(OS_POSIX) && !defined(OS_MAC) |
dcheng | e1bc798 | 2014-10-30 00:32:40 | [diff] [blame] | 400 | void GetAdditionalMappedFilesForChildProcess( |
[email protected] | 2f3b1cc | 2014-03-17 23:07:15 | [diff] [blame] | 401 | const base::CommandLine& command_line, |
[email protected] | 40da3e0c | 2012-10-24 22:03:38 | [diff] [blame] | 402 | int child_process_id, |
brettw | 3c98c7d3 | 2017-07-25 01:44:20 | [diff] [blame] | 403 | content::PosixFileDescriptorInfo* mappings) override; |
Avi Drissman | 2e458df | 2020-07-29 16:24:31 | [diff] [blame] | 404 | #endif // defined(OS_POSIX) && !defined(OS_MAC) |
[email protected] | 4a65826d | 2011-08-25 16:04:01 | [diff] [blame] | 405 | #if defined(OS_WIN) |
Will Harris | 956e0ca | 2019-08-23 20:47:39 | [diff] [blame] | 406 | bool PreSpawnRenderer(sandbox::TargetPolicy* policy, |
| 407 | RendererSpawnFlags flags) override; |
Alex Gough | 9ab468a6c3 | 2019-12-10 19:10:22 | [diff] [blame] | 408 | base::string16 GetAppContainerSidForSandboxType( |
Robert Sesek | 7d0b49b | 2020-07-08 18:31:27 | [diff] [blame] | 409 | sandbox::policy::SandboxType sandbox_type) override; |
Will Harris | 956e0ca | 2019-08-23 20:47:39 | [diff] [blame] | 410 | bool IsRendererCodeIntegrityEnabled() override; |
[email protected] | 4a65826d | 2011-08-25 16:04:01 | [diff] [blame] | 411 | #endif |
ben | d1dd50f5 | 2016-06-26 22:10:48 | [diff] [blame] | 412 | void ExposeInterfacesToRenderer( |
ben | a06f7d6 | 2017-04-04 20:48:52 | [diff] [blame] | 413 | service_manager::BinderRegistry* registry, |
Sam McNally | 52e5028 | 2017-11-29 00:54:02 | [diff] [blame] | 414 | blink::AssociatedInterfaceRegistry* associated_registry, |
leon.han | 0b61879 | 2016-06-16 01:53:51 | [diff] [blame] | 415 | content::RenderProcessHost* render_process_host) override; |
Robert Sesek | c480a2e | 2020-04-09 17:26:11 | [diff] [blame] | 416 | void BindMediaServiceReceiver(content::RenderFrameHost* render_frame_host, |
| 417 | mojo::GenericPendingReceiver receiver) override; |
Oksana Zhuravlova | 4dd171e8 | 2019-08-16 20:54:00 | [diff] [blame] | 418 | void RegisterBrowserInterfaceBindersForFrame( |
Miyoung Shin | 70485f0 | 2019-12-05 05:21:03 | [diff] [blame] | 419 | content::RenderFrameHost* render_frame_host, |
Robert Sesek | 5a5fbb8 | 2020-05-04 16:18:28 | [diff] [blame] | 420 | mojo::BinderMapWithContext<content::RenderFrameHost*>* map) override; |
Julie Jeongeun Kim | db52a62 | 2019-09-18 00:20:20 | [diff] [blame] | 421 | bool BindAssociatedReceiverFromFrame( |
Ken Rockot | 0aad7ec | 2018-07-31 15:58:44 | [diff] [blame] | 422 | content::RenderFrameHost* render_frame_host, |
| 423 | const std::string& interface_name, |
| 424 | mojo::ScopedInterfaceEndpointHandle* handle) override; |
Steve Becker | 288faf0 | 2020-01-28 02:14:39 | [diff] [blame] | 425 | void BindBadgeServiceReceiverFromServiceWorker( |
| 426 | content::RenderProcessHost* service_worker_process_host, |
| 427 | const GURL& service_worker_scope, |
| 428 | mojo::PendingReceiver<blink::mojom::BadgeService> receiver) override; |
Ken Rockot | 251bc6e0 | 2019-09-17 21:46:33 | [diff] [blame] | 429 | void BindGpuHostReceiver(mojo::GenericPendingReceiver receiver) override; |
Lingqi Chi | f7ef80f6 | 2020-06-12 02:04:46 | [diff] [blame] | 430 | void BindUtilityHostReceiver(mojo::GenericPendingReceiver receiver) override; |
Ken Rockot | c185b2a | 2019-08-01 22:19:48 | [diff] [blame] | 431 | void BindHostReceiverForRenderer( |
| 432 | content::RenderProcessHost* render_process_host, |
| 433 | mojo::GenericPendingReceiver receiver) override; |
danakj | a9fe91c | 2019-05-01 19:02:29 | [diff] [blame] | 434 | void OpenURL( |
| 435 | content::SiteInstance* site_instance, |
| 436 | const content::OpenURLParams& params, |
| 437 | base::OnceCallback<void(content::WebContents*)> callback) override; |
zhaobin | f3704f8 | 2017-01-12 07:19:36 | [diff] [blame] | 438 | content::ControllerPresentationServiceDelegate* |
| 439 | GetControllerPresentationServiceDelegate( |
| 440 | content::WebContents* web_contents) override; |
| 441 | content::ReceiverPresentationServiceDelegate* |
| 442 | GetReceiverPresentationServiceDelegate( |
haibinlu | 9e605a9 | 2015-06-06 03:45:09 | [diff] [blame] | 443 | content::WebContents* web_contents) override; |
avi | d6d88b91 | 2017-01-13 00:16:00 | [diff] [blame] | 444 | std::vector<std::unique_ptr<content::NavigationThrottle>> |
| 445 | CreateThrottlesForNavigation(content::NavigationHandle* handle) override; |
clamy | 1e5574e | 2016-09-29 16:48:44 | [diff] [blame] | 446 | std::unique_ptr<content::NavigationUIData> GetNavigationUIData( |
| 447 | content::NavigationHandle* navigation_handle) override; |
Xiaohan Wang | a4e4184 | 2018-06-26 18:45:10 | [diff] [blame] | 448 | void GetHardwareSecureDecryptionCaps( |
| 449 | const std::string& key_system, |
Xiaohan Wang | a4e4184 | 2018-06-26 18:45:10 | [diff] [blame] | 450 | base::flat_set<media::VideoCodec>* video_codecs, |
Yuchen Liu | b33bfc1 | 2019-11-08 20:16:12 | [diff] [blame] | 451 | base::flat_set<media::EncryptionScheme>* encryption_schemes) override; |
miu | 54dca6c | 2016-11-17 10:59:38 | [diff] [blame] | 452 | #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
Gyuyoung Kim | a4f9f94 | 2019-10-26 02:55:50 | [diff] [blame] | 453 | void CreateMediaRemoter( |
| 454 | content::RenderFrameHost* render_frame_host, |
| 455 | mojo::PendingRemote<media::mojom::RemotingSource> source, |
| 456 | mojo::PendingReceiver<media::mojom::Remoter> receiver) final; |
miu | 54dca6c | 2016-11-17 10:59:38 | [diff] [blame] | 457 | #endif // BUILDFLAG(ENABLE_MEDIA_REMOTING) |
Michael Giuffrida | 6802ffe | 2017-09-29 03:40:25 | [diff] [blame] | 458 | base::FilePath GetLoggingFileName( |
| 459 | const base::CommandLine& command_line) override; |
Minggang Wang | f6840ecf | 2019-07-29 05:15:02 | [diff] [blame] | 460 | std::vector<std::unique_ptr<blink::URLLoaderThrottle>> |
Clark DuVall | fffa41e | 2019-06-25 20:27:19 | [diff] [blame] | 461 | CreateURLLoaderThrottles( |
| 462 | const network::ResourceRequest& request, |
| 463 | content::BrowserContext* browser_context, |
| 464 | const base::RepeatingCallback<content::WebContents*()>& wc_getter, |
| 465 | content::NavigationUIData* navigation_ui_data, |
| 466 | int frame_tree_node_id) override; |
Ken Rockot | 6414c4d9 | 2017-11-08 19:58:32 | [diff] [blame] | 467 | void RegisterNonNetworkNavigationURLLoaderFactories( |
John Abd-El-Malek | ea00630 | 2018-05-10 05:50:46 | [diff] [blame] | 468 | int frame_tree_node_id, |
Yue Ru Sun | 03a6990a | 2020-10-24 18:04:31 | [diff] [blame] | 469 | ukm::SourceIdObj ukm_source_id, |
Ken Rockot | 6414c4d9 | 2017-11-08 19:58:32 | [diff] [blame] | 470 | NonNetworkURLLoaderFactoryMap* factories) override; |
Hiroki Nakagawa | 1efa31d | 2019-10-01 22:36:34 | [diff] [blame] | 471 | void RegisterNonNetworkWorkerMainResourceURLLoaderFactories( |
| 472 | content::BrowserContext* browser_context, |
Lukasz Anforowicz | a782c5a | 2020-09-26 02:15:17 | [diff] [blame] | 473 | NonNetworkURLLoaderFactoryMap* factories) override; |
Ting Shao | 2dc6058 | 2019-07-15 04:43:36 | [diff] [blame] | 474 | void RegisterNonNetworkServiceWorkerUpdateURLLoaderFactories( |
| 475 | content::BrowserContext* browser_context, |
Lukasz Anforowicz | a782c5a | 2020-09-26 02:15:17 | [diff] [blame] | 476 | NonNetworkURLLoaderFactoryMap* factories) override; |
Ken Rockot | 6414c4d9 | 2017-11-08 19:58:32 | [diff] [blame] | 477 | void RegisterNonNetworkSubresourceURLLoaderFactories( |
John Abd-El-Malek | ea00630 | 2018-05-10 05:50:46 | [diff] [blame] | 478 | int render_process_id, |
| 479 | int render_frame_id, |
Ken Rockot | 6414c4d9 | 2017-11-08 19:58:32 | [diff] [blame] | 480 | NonNetworkURLLoaderFactoryMap* factories) override; |
Ken Rockot | a0dfaca1 | 2018-02-15 07:26:25 | [diff] [blame] | 481 | bool WillCreateURLLoaderFactory( |
Ken Rockot | 428b1d6 | 2018-06-06 17:12:21 | [diff] [blame] | 482 | content::BrowserContext* browser_context, |
Ken Rockot | a0dfaca1 | 2018-02-15 07:26:25 | [diff] [blame] | 483 | content::RenderFrameHost* frame, |
Kenichi Ishibashi | 09ee5e7 | 2018-11-27 07:12:38 | [diff] [blame] | 484 | int render_process_id, |
Karan Bhatia | 4a834b3 | 2019-08-16 22:26:44 | [diff] [blame] | 485 | URLLoaderFactoryType type, |
Lukasz Anforowicz | 76273365 | 2018-09-28 14:48:26 | [diff] [blame] | 486 | const url::Origin& request_initiator, |
Karan Bhatia | 303d0ac0 | 2019-12-05 03:01:00 | [diff] [blame] | 487 | base::Optional<int64_t> navigation_id, |
Yue Ru Sun | 03a6990a | 2020-10-24 18:04:31 | [diff] [blame] | 488 | ukm::SourceIdObj ukm_source_id, |
Dominic Farolino | 1be897a | 2019-07-20 08:11:42 | [diff] [blame] | 489 | mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver, |
Julie Jeongeun Kim | 47499a0c | 2019-08-28 07:23:18 | [diff] [blame] | 490 | mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>* |
| 491 | header_client, |
Yutaka Hirano | 499d1321 | 2019-12-04 11:03:33 | [diff] [blame] | 492 | bool* bypass_redirect_checks, |
dalyk | 0018c16f | 2020-01-08 20:20:08 | [diff] [blame] | 493 | bool* disable_secure_dns, |
Yutaka Hirano | 499d1321 | 2019-12-04 11:03:33 | [diff] [blame] | 494 | network::mojom::URLLoaderFactoryOverridePtr* factory_override) override; |
Jian Li | de7b4379 | 2018-06-01 23:22:13 | [diff] [blame] | 495 | std::vector<std::unique_ptr<content::URLLoaderRequestInterceptor>> |
| 496 | WillCreateURLLoaderRequestInterceptors( |
| 497 | content::NavigationUIData* navigation_ui_data, |
Ryan Sturm | 27d93f41 | 2019-02-15 21:30:14 | [diff] [blame] | 498 | int frame_tree_node_id, |
| 499 | const scoped_refptr<network::SharedURLLoaderFactory>& |
| 500 | network_loader_factory) override; |
Yutaka Hirano | 8e0b4d43 | 2019-07-04 07:12:38 | [diff] [blame] | 501 | bool WillInterceptWebSocket(content::RenderFrameHost* frame) override; |
| 502 | void CreateWebSocket( |
Yutaka Hirano | 70fa2591 | 2018-06-06 05:26:54 | [diff] [blame] | 503 | content::RenderFrameHost* frame, |
Yutaka Hirano | 8e0b4d43 | 2019-07-04 07:12:38 | [diff] [blame] | 504 | WebSocketFactory factory, |
| 505 | const GURL& url, |
Maks Orlovich | ab27e24 | 2020-01-07 18:10:39 | [diff] [blame] | 506 | const net::SiteForCookies& site_for_cookies, |
Yutaka Hirano | 8e0b4d43 | 2019-07-04 07:12:38 | [diff] [blame] | 507 | const base::Optional<std::string>& user_agent, |
Julie Jeongeun Kim | 3e973f9 | 2019-08-22 08:02:40 | [diff] [blame] | 508 | mojo::PendingRemote<network::mojom::WebSocketHandshakeClient> |
| 509 | handshake_client) override; |
Maks Orlovich | 710d5e3 | 2019-07-09 20:16:45 | [diff] [blame] | 510 | bool WillCreateRestrictedCookieManager( |
Maks Orlovich | e7db7a2 | 2019-07-25 01:47:46 | [diff] [blame] | 511 | network::mojom::RestrictedCookieManagerRole role, |
Maks Orlovich | 710d5e3 | 2019-07-09 20:16:45 | [diff] [blame] | 512 | content::BrowserContext* browser_context, |
| 513 | const url::Origin& origin, |
Maks Orlovich | ab27e24 | 2020-01-07 18:10:39 | [diff] [blame] | 514 | const net::SiteForCookies& site_for_cookies, |
Maks Orlovich | 11001fa | 2019-10-01 20:41:40 | [diff] [blame] | 515 | const url::Origin& top_frame_origin, |
Maks Orlovich | 710d5e3 | 2019-07-09 20:16:45 | [diff] [blame] | 516 | bool is_service_worker, |
| 517 | int process_id, |
| 518 | int routing_id, |
Julie Jeongeun Kim | d20f64b | 2019-08-26 04:13:03 | [diff] [blame] | 519 | mojo::PendingReceiver<network::mojom::RestrictedCookieManager>* receiver) |
| 520 | override; |
Matt Menke | ae4fdb1 | 2018-06-02 06:32:54 | [diff] [blame] | 521 | void OnNetworkServiceCreated( |
| 522 | network::mojom::NetworkService* network_service) override; |
Matthew Denton | 8888ae5 | 2020-05-14 08:20:02 | [diff] [blame] | 523 | void ConfigureNetworkContextParams( |
Ken Rockot | a0dfaca1 | 2018-02-15 07:26:25 | [diff] [blame] | 524 | content::BrowserContext* context, |
| 525 | bool in_memory, |
Matthew Denton | 8888ae5 | 2020-05-14 08:20:02 | [diff] [blame] | 526 | const base::FilePath& relative_partition_path, |
| 527 | network::mojom::NetworkContextParams* network_context_params, |
| 528 | network::mojom::CertVerifierCreationParams* cert_verifier_creation_params) |
| 529 | override; |
Robert Sesek | 34f68f31 | 2019-01-14 20:25:11 | [diff] [blame] | 530 | std::vector<base::FilePath> GetNetworkContextsParentDirectory() override; |
John Abd-El-Malek | c240cfc4 | 2020-07-08 12:22:44 | [diff] [blame] | 531 | base::DictionaryValue GetNetLogConstants() override; |
Min Qin | 75ed6df | 2017-12-01 20:39:15 | [diff] [blame] | 532 | bool AllowRenderingMhtmlOverHttp( |
Min Qin | 30a78a1 | 2017-12-06 01:29:13 | [diff] [blame] | 533 | content::NavigationUIData* navigation_ui_data) override; |
| 534 | bool ShouldForceDownloadResource(const GURL& url, |
| 535 | const std::string& mime_type) override; |
Donna Wu | 838ac36 | 2018-08-10 10:36:33 | [diff] [blame] | 536 | void CreateWebUsbService( |
Reilly Grant | c31b819 | 2017-12-15 19:54:34 | [diff] [blame] | 537 | content::RenderFrameHost* render_frame_host, |
Miyoung Shin | 6262215 | 2019-08-27 05:13:04 | [diff] [blame] | 538 | mojo::PendingReceiver<blink::mojom::WebUsbService> receiver) override; |
Ovidio Henriquez | 3d729f6 | 2020-02-07 00:43:29 | [diff] [blame] | 539 | content::BluetoothDelegate* GetBluetoothDelegate() override; |
Reilly Grant | 0d28232 | 2019-01-29 02:42:58 | [diff] [blame] | 540 | #if !defined(OS_ANDROID) |
Anatoliy Potapchuk | 096e4d0a | 2020-12-01 16:49:21 | [diff] [blame] | 541 | void CreateDeviceInfoService( |
| 542 | content::RenderFrameHost* render_frame_host, |
| 543 | mojo::PendingReceiver<blink::mojom::DeviceAPIService> receiver) override; |
Reilly Grant | 0d28232 | 2019-01-29 02:42:58 | [diff] [blame] | 544 | content::SerialDelegate* GetSerialDelegate() override; |
Matt Reynolds | 93616f9b | 2019-06-07 01:28:52 | [diff] [blame] | 545 | content::HidDelegate* GetHidDelegate() override; |
Olivier Yiptong | 935e6c4 | 2020-11-21 01:28:23 | [diff] [blame] | 546 | content::FontAccessDelegate* GetFontAccessDelegate() override; |
Nina Satragno | 8c832df | 2019-07-29 15:59:39 | [diff] [blame] | 547 | std::unique_ptr<content::AuthenticatorRequestClientDelegate> |
| 548 | GetWebAuthenticationRequestDelegate( |
Adam Langley | 5f3963f1 | 2020-01-21 19:10:33 | [diff] [blame] | 549 | content::RenderFrameHost* render_frame_host) override; |
Nina Satragno | 8c832df | 2019-07-29 15:59:39 | [diff] [blame] | 550 | #endif |
Anthony Vallee-Dubois | 8f5e7e1 | 2018-01-12 16:14:06 | [diff] [blame] | 551 | bool ShowPaymentHandlerWindow( |
| 552 | content::BrowserContext* browser_context, |
| 553 | const GURL& url, |
Anthony Vallee-Dubois | 98befeaa | 2018-01-18 16:31:32 | [diff] [blame] | 554 | base::OnceCallback<void(bool, int, int)> callback) override; |
Jun Cai | 9409ded | 2018-01-30 00:19:46 | [diff] [blame] | 555 | std::unique_ptr<net::ClientCertStore> CreateClientCertStore( |
David Benjamin | f6a3409 | 2019-11-07 19:55:10 | [diff] [blame] | 556 | content::BrowserContext* browser_context) override; |
David Benjamin | eced01fc | 2019-02-27 18:29:02 | [diff] [blame] | 557 | std::unique_ptr<content::LoginDelegate> CreateLoginDelegate( |
Emily Stark | f2c9bbd | 2019-04-09 17:08:58 | [diff] [blame] | 558 | const net::AuthChallengeInfo& auth_info, |
David Benjamin | eced01fc | 2019-02-27 18:29:02 | [diff] [blame] | 559 | content::WebContents* web_contents, |
Ken Rockot | 5f734e3 | 2018-06-13 01:41:03 | [diff] [blame] | 560 | const content::GlobalRequestID& request_id, |
Jun Cai | 8e165d2 | 2018-05-14 19:21:24 | [diff] [blame] | 561 | bool is_request_for_main_frame, |
Jun Cai | bc561f41 | 2018-02-28 18:41:39 | [diff] [blame] | 562 | const GURL& url, |
Ken Rockot | 5f734e3 | 2018-06-13 01:41:03 | [diff] [blame] | 563 | scoped_refptr<net::HttpResponseHeaders> response_headers, |
Jun Cai | bc561f41 | 2018-02-28 18:41:39 | [diff] [blame] | 564 | bool first_auth_attempt, |
Mark Pilgrim | 7cfcd11 | 2018-05-08 00:07:56 | [diff] [blame] | 565 | LoginAuthRequiredCallback auth_required_callback) override; |
John Abd-El-Malek | a67add8 | 2018-03-09 18:22:01 | [diff] [blame] | 566 | bool HandleExternalProtocol( |
| 567 | const GURL& url, |
danakj | f4b9e94 | 2019-11-29 15:43:04 | [diff] [blame] | 568 | content::WebContents::OnceGetter web_contents_getter, |
John Abd-El-Malek | a67add8 | 2018-03-09 18:22:01 | [diff] [blame] | 569 | int child_id, |
| 570 | content::NavigationUIData* navigation_data, |
| 571 | bool is_main_frame, |
| 572 | ui::PageTransition page_transition, |
Tim Volodine | b24393f3 | 2018-11-16 18:45:45 | [diff] [blame] | 573 | bool has_user_gesture, |
Emily Stark | 13b66bdf | 2019-10-04 17:11:45 | [diff] [blame] | 574 | const base::Optional<url::Origin>& initiating_origin, |
Julie Jeongeun Kim | fb6f530 | 2019-10-17 17:24:10 | [diff] [blame] | 575 | mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory) |
| 576 | override; |
Jennifer Apacible | 6010b023 | 2018-04-12 23:35:28 | [diff] [blame] | 577 | std::unique_ptr<content::OverlayWindow> CreateWindowForPictureInPicture( |
| 578 | content::PictureInPictureWindowController* controller) override; |
Kunihiko Sakamoto | 19aa708 | 2019-02-25 03:14:43 | [diff] [blame] | 579 | void RegisterRendererPreferenceWatcher( |
Makoto Shimazu | c750293 | 2018-08-15 02:12:56 | [diff] [blame] | 580 | content::BrowserContext* browser_context, |
Julie Jeongeun Kim | 6d8b749 | 2019-08-20 19:24:11 | [diff] [blame] | 581 | mojo::PendingRemote<blink::mojom::RendererPreferenceWatcher> watcher) |
| 582 | override; |
Daniel Vogelheim | 6008f57 | 2018-09-24 14:35:14 | [diff] [blame] | 583 | base::Optional<std::string> GetOriginPolicyErrorPage( |
Domenic Denicola | c3fedd4 | 2020-03-20 21:16:59 | [diff] [blame] | 584 | network::OriginPolicyState error_reason, |
Daniel Vogelheim | 7badd0d | 2019-02-04 14:42:18 | [diff] [blame] | 585 | content::NavigationHandle* handle) override; |
Takashi Toyoshima | 5af383aa | 2019-07-22 15:24:22 | [diff] [blame] | 586 | bool CanAcceptUntrustedExchangesIfNeeded() override; |
rajendrant | feea859 | 2018-10-19 18:26:06 | [diff] [blame] | 587 | void OnNetworkServiceDataUseUpdate(int32_t network_traffic_annotation_id_hash, |
| 588 | int64_t recv_bytes, |
| 589 | int64_t sent_bytes) override; |
Ken Rockot | 4e284d3 | 2020-03-06 06:26:49 | [diff] [blame] | 590 | base::FilePath GetSandboxedStorageServiceDataDirectory() override; |
Guido Urdaneta | e02b572 | 2020-07-22 05:58:21 | [diff] [blame] | 591 | bool ShouldSandboxAudioService() override; |
Hiroki Nakagawa | 4136615 | 2020-07-27 18:31:40 | [diff] [blame] | 592 | blink::PreviewsState DetermineAllowedPreviews( |
| 593 | blink::PreviewsState initial_state, |
Ryan Sturm | 647d1d9 | 2018-11-07 15:41:39 | [diff] [blame] | 594 | content::NavigationHandle* navigation_handle, |
| 595 | const GURL& current_navigation_url) override; |
Ryan Sturm | aa05092f | 2018-10-21 03:56:54 | [diff] [blame] | 596 | |
Hiroki Nakagawa | 4136615 | 2020-07-27 18:31:40 | [diff] [blame] | 597 | blink::PreviewsState DetermineCommittedPreviews( |
| 598 | blink::PreviewsState initial_state, |
Ryan Sturm | aa05092f | 2018-10-21 03:56:54 | [diff] [blame] | 599 | content::NavigationHandle* navigation_handle, |
| 600 | const net::HttpResponseHeaders* response_headers) override; |
Robert Ogden | 30bbc9d | 2019-04-30 20:15:13 | [diff] [blame] | 601 | |
Charlie Harrison | 650e1142 | 2018-12-04 00:37:26 | [diff] [blame] | 602 | void LogWebFeatureForCurrentPage(content::RenderFrameHost* render_frame_host, |
| 603 | blink::mojom::WebFeature feature) override; |
Ryan Sturm | aa05092f | 2018-10-21 03:56:54 | [diff] [blame] | 604 | |
Lucas Furukawa Gadani | 4909f3c | 2019-06-18 22:36:52 | [diff] [blame] | 605 | std::string GetProduct() override; |
| 606 | std::string GetUserAgent() override; |
| 607 | blink::UserAgentMetadata GetUserAgentMetadata() override; |
Yutaka Hirano | 968d625 | 2018-12-04 05:09:31 | [diff] [blame] | 608 | |
Lucas Furukawa Gadani | 4909f3c | 2019-06-18 22:36:52 | [diff] [blame] | 609 | base::Optional<gfx::ImageSkia> GetProductLogo() override; |
Austin Orion | e250d01 | 2019-05-29 02:56:27 | [diff] [blame] | 610 | |
Sam McNally | d54e23f9 | 2019-01-16 04:42:39 | [diff] [blame] | 611 | bool IsBuiltinComponent(content::BrowserContext* browser_context, |
| 612 | const url::Origin& origin) override; |
| 613 | |
Aaron Colwell | e1908d98 | 2020-06-26 22:08:15 | [diff] [blame] | 614 | bool ShouldBlockRendererDebugURL(const GURL& url, |
| 615 | content::BrowserContext* context) override; |
Oleg Davydov | 2cc0167b | 2019-02-05 14:32:48 | [diff] [blame] | 616 | |
Dominic Mazzoni | 21fb028 | 2019-02-13 18:32:47 | [diff] [blame] | 617 | ui::AXMode GetAXModeForBrowserContext( |
| 618 | content::BrowserContext* browser_context) override; |
| 619 | |
Eric Karl | d6cd75b | 2019-03-14 22:01:36 | [diff] [blame] | 620 | #if defined(OS_ANDROID) |
| 621 | ContentBrowserClient::WideColorGamutHeuristic GetWideColorGamutHeuristic() |
Lucas Furukawa Gadani | 4909f3c | 2019-06-18 22:36:52 | [diff] [blame] | 622 | override; |
Eric Karl | d6cd75b | 2019-03-14 22:01:36 | [diff] [blame] | 623 | #endif |
| 624 | |
Ehsan Karamad | 466529d | 2019-05-24 03:24:43 | [diff] [blame] | 625 | base::flat_set<std::string> GetPluginMimeTypesWithExternalHandlers( |
Clark DuVall | 1df2052b | 2019-08-05 19:58:46 | [diff] [blame] | 626 | content::BrowserContext* browser_context) override; |
Ehsan Karamad | 91413d7 | 2019-03-22 16:37:48 | [diff] [blame] | 627 | |
Yao Xiao | d06607b | 2019-05-02 23:16:36 | [diff] [blame] | 628 | void AugmentNavigationDownloadPolicy( |
| 629 | const content::WebContents* web_contents, |
| 630 | const content::RenderFrameHost* frame_host, |
| 631 | bool user_gesture, |
Lucas Furukawa Gadani | 4909f3c | 2019-06-18 22:36:52 | [diff] [blame] | 632 | content::NavigationDownloadPolicy* download_policy) override; |
Yao Xiao | d06607b | 2019-05-02 23:16:36 | [diff] [blame] | 633 | |
Yao Xiao | ebed8c1 | 2020-09-26 07:51:20 | [diff] [blame] | 634 | std::string GetInterestCohortForJsApi( |
| 635 | content::BrowserContext* browser_context, |
| 636 | const url::Origin& requesting_origin, |
| 637 | const net::SiteForCookies& site_for_cookies) override; |
| 638 | |
Lucas Furukawa Gadani | 4909f3c | 2019-06-18 22:36:52 | [diff] [blame] | 639 | bool IsBluetoothScanningBlocked(content::BrowserContext* browser_context, |
| 640 | const url::Origin& requesting_origin, |
| 641 | const url::Origin& embedding_origin) override; |
Jun Cai | 732a05e3 | 2019-05-29 19:34:19 | [diff] [blame] | 642 | |
Lucas Furukawa Gadani | 4909f3c | 2019-06-18 22:36:52 | [diff] [blame] | 643 | void BlockBluetoothScanning(content::BrowserContext* browser_context, |
| 644 | const url::Origin& requesting_origin, |
| 645 | const url::Origin& embedding_origin) override; |
Jun Cai | 732a05e3 | 2019-05-29 19:34:19 | [diff] [blame] | 646 | |
Clark DuVall | 1635a6b0 | 2020-11-06 18:53:51 | [diff] [blame] | 647 | bool ShouldLoadExtraIcuDataFile(std::string* split_name) override; |
Tibor Goldschwendt | bf1b96e | 2019-10-07 22:03:47 | [diff] [blame] | 648 | |
Guido Urdaneta | 4030d6a3 | 2019-10-17 09:38:16 | [diff] [blame] | 649 | bool ArePersistentMediaDeviceIDsAllowed( |
| 650 | content::BrowserContext* browser_context, |
| 651 | const GURL& scope, |
| 652 | const GURL& site_for_cookies, |
| 653 | const base::Optional<url::Origin>& top_frame_origin) override; |
| 654 | |
Hiroki Nakagawa | 4136615 | 2020-07-27 18:31:40 | [diff] [blame] | 655 | blink::PreviewsState DetermineAllowedPreviewsWithoutHoldback( |
| 656 | blink::PreviewsState initial_state, |
Robert Ogden | 30bbc9d | 2019-04-30 20:15:13 | [diff] [blame] | 657 | content::NavigationHandle* navigation_handle, |
| 658 | const GURL& current_navigation_url); |
| 659 | |
Hiroki Nakagawa | 4136615 | 2020-07-27 18:31:40 | [diff] [blame] | 660 | blink::PreviewsState DetermineCommittedPreviewsWithoutHoldback( |
| 661 | blink::PreviewsState initial_state, |
Robert Ogden | 30bbc9d | 2019-04-30 20:15:13 | [diff] [blame] | 662 | content::NavigationHandle* navigation_handle, |
| 663 | const net::HttpResponseHeaders* response_headers); |
| 664 | |
Ryan Sturm | aa05092f | 2018-10-21 03:56:54 | [diff] [blame] | 665 | // Determines the committed previews state for the passed in params. |
Hiroki Nakagawa | 4136615 | 2020-07-27 18:31:40 | [diff] [blame] | 666 | static blink::PreviewsState DetermineCommittedPreviewsForURL( |
Ryan Sturm | aa05092f | 2018-10-21 03:56:54 | [diff] [blame] | 667 | const GURL& url, |
| 668 | data_reduction_proxy::DataReductionProxyData* drp_data, |
| 669 | previews::PreviewsUserData* previews_user_data, |
| 670 | const previews::PreviewsDecider* previews_decider, |
Hiroki Nakagawa | 4136615 | 2020-07-27 18:31:40 | [diff] [blame] | 671 | blink::PreviewsState initial_state, |
Ryan Sturm | 737bd1d | 2019-02-28 01:38:05 | [diff] [blame] | 672 | content::NavigationHandle* navigation_handle); |
Ryan Sturm | aa05092f | 2018-10-21 03:56:54 | [diff] [blame] | 673 | |
Sam Goto | 5cf068e8 | 2019-11-04 23:08:44 | [diff] [blame] | 674 | #if !defined(OS_ANDROID) |
| 675 | void FetchRemoteSms( |
| 676 | content::BrowserContext* browser_context, |
| 677 | const url::Origin& origin, |
| 678 | base::OnceCallback<void(base::Optional<std::string>)> callback) override; |
| 679 | #endif |
| 680 | |
Roger Tawa | 03ffdbd | 2020-01-16 18:12:54 | [diff] [blame] | 681 | void IsClipboardPasteAllowed( |
| 682 | content::WebContents* web_contents, |
| 683 | const GURL& url, |
| 684 | const ui::ClipboardFormatType& data_type, |
| 685 | const std::string& data, |
| 686 | IsClipboardPasteAllowedCallback callback) override; |
| 687 | |
Lukasz Anforowicz | 4600ea3 | 2020-01-18 02:37:48 | [diff] [blame] | 688 | #if BUILDFLAG(ENABLE_PLUGINS) |
| 689 | bool ShouldAllowPluginCreation( |
| 690 | const url::Origin& embedder_origin, |
| 691 | const content::PepperPluginInfo& plugin_info) override; |
| 692 | #endif |
| 693 | |
Alexander Cooper | c844870 | 2020-03-14 01:39:56 | [diff] [blame] | 694 | #if BUILDFLAG(ENABLE_VR) |
| 695 | content::XrIntegrationClient* GetXrIntegrationClient() override; |
| 696 | #endif |
| 697 | |
Adrienne Walker | 29765129 | 2020-05-08 00:23:18 | [diff] [blame] | 698 | bool IsOriginTrialRequiredForAppCache( |
| 699 | content::BrowserContext* browser_context) override; |
Hidehiko Abe | 23e45e8 | 2020-08-25 08:41:48 | [diff] [blame] | 700 | void BindBrowserControlInterface(mojo::ScopedMessagePipeHandle pipe) override; |
Yutaka Hirano | 3e61366 | 2020-06-02 02:59:34 | [diff] [blame] | 701 | bool ShouldInheritCrossOriginEmbedderPolicyImplicitly( |
| 702 | const GURL& url) override; |
Titouan Rigoudy | cfc7355 | 2020-08-21 14:18:30 | [diff] [blame] | 703 | bool ShouldAllowInsecurePrivateNetworkRequests( |
Titouan Rigoudy | 9c2c014 | 2020-08-19 17:57:12 | [diff] [blame] | 704 | content::BrowserContext* browser_context, |
| 705 | const GURL& url) override; |
John Abd-El-Malek | dc02601 | 2020-06-15 23:28:56 | [diff] [blame] | 706 | ukm::UkmService* GetUkmService() override; |
Adrienne Walker | 29765129 | 2020-05-08 00:23:18 | [diff] [blame] | 707 | |
Yutaka Hirano | 93e92474 | 2020-11-11 10:40:13 | [diff] [blame] | 708 | void OnKeepaliveRequestStarted() override; |
| 709 | void OnKeepaliveRequestFinished() override; |
| 710 | |
Evan Liu | 054dc08 | 2020-09-30 14:09:42 | [diff] [blame] | 711 | #if defined(OS_MAC) |
| 712 | bool SetupEmbedderSandboxParameters( |
| 713 | sandbox::policy::SandboxType sandbox_type, |
| 714 | sandbox::SeatbeltExecClient* client) override; |
| 715 | #endif // defined(OS_MAC) |
| 716 | |
Koji Ishii | 3cbd93a | 2020-10-16 13:48:02 | [diff] [blame] | 717 | void GetHyphenationDictionary( |
| 718 | base::OnceCallback<void(const base::FilePath&)>) override; |
Rakina Zata Amni | ba3eecb | 2020-11-02 10:12:28 | [diff] [blame] | 719 | bool HasErrorPage(int http_status_code) override; |
Koji Ishii | 3cbd93a | 2020-10-16 13:48:02 | [diff] [blame] | 720 | |
danakj | 5beedd0 | 2020-10-30 15:55:13 | [diff] [blame] | 721 | StartupData* startup_data() { return &startup_data_; } |
| 722 | |
Ken Buchanan | 7d68835 | 2020-12-05 05:45:57 | [diff] [blame] | 723 | std::unique_ptr<content::IdentityRequestDialogController> |
| 724 | CreateIdentityRequestDialogController() override; |
| 725 | |
dbeam | 25472e0c | 2017-06-23 19:02:31 | [diff] [blame] | 726 | protected: |
| 727 | static bool HandleWebUI(GURL* url, content::BrowserContext* browser_context); |
| 728 | static bool HandleWebUIReverse(GURL* url, |
| 729 | content::BrowserContext* browser_context); |
Alison Maher | 7f366dc6 | 2020-03-03 19:46:00 | [diff] [blame] | 730 | virtual const ui::NativeTheme* GetWebTheme() const; // For testing. |
dbeam | 25472e0c | 2017-06-23 19:02:31 | [diff] [blame] | 731 | |
Yngve N. Pettersen | 2a4565b | 2019-12-05 01:21:10 | [diff] [blame] | 732 | // Used by subclasses (e.g. implemented by downstream embedders) to add |
| 733 | // their own extra part objects. |
| 734 | void AddExtraPart(ChromeContentBrowserClientParts* part) { |
| 735 | extra_parts_.push_back(part); |
| 736 | } |
| 737 | |
[email protected] | e461da2f | 2012-02-16 19:06:40 | [diff] [blame] | 738 | private: |
[email protected] | bfcf4566 | 2014-07-17 22:30:20 | [diff] [blame] | 739 | friend class DisableWebRtcEncryptionFlagTest; |
michaeln | 10e5fc35 | 2017-02-07 02:07:58 | [diff] [blame] | 740 | friend class InProcessBrowserTest; |
[email protected] | bfcf4566 | 2014-07-17 22:30:20 | [diff] [blame] | 741 | |
Robert Sesek | 466e43e | 2019-08-19 22:02:02 | [diff] [blame] | 742 | // Initializes |network_contexts_parent_directory_| on the UI thread. |
| 743 | void InitNetworkContextsParentDirectory(); |
| 744 | |
[email protected] | 30335fdf0 | 2014-02-26 19:51:27 | [diff] [blame] | 745 | // Copies disable WebRTC encryption switch depending on the channel. |
| 746 | static void MaybeCopyDisableWebRtcEncryptionSwitch( |
[email protected] | 2f3b1cc | 2014-03-17 23:07:15 | [diff] [blame] | 747 | base::CommandLine* to_command_line, |
| 748 | const base::CommandLine& from_command_line, |
sdefresne | 6e883e4 | 2015-07-30 08:05:54 | [diff] [blame] | 749 | version_info::Channel channel); |
[email protected] | 30335fdf0 | 2014-02-26 19:51:27 | [diff] [blame] | 750 | |
[email protected] | f917df2 | 2014-07-10 07:45:49 | [diff] [blame] | 751 | void FileSystemAccessed( |
[email protected] | bfcf4566 | 2014-07-17 22:30:20 | [diff] [blame] | 752 | const GURL& url, |
Lukasz Anforowicz | 09060bdf7 | 2018-08-23 15:53:17 | [diff] [blame] | 753 | const std::vector<content::GlobalFrameRoutingId>& render_frames, |
John Abd-El-Malek | 2a18d98d | 2019-08-08 04:31:57 | [diff] [blame] | 754 | base::OnceCallback<void(bool)> callback, |
[email protected] | bfcf4566 | 2014-07-17 22:30:20 | [diff] [blame] | 755 | bool allow); |
[email protected] | f917df2 | 2014-07-10 07:45:49 | [diff] [blame] | 756 | |
brettw | 00899e6 | 2016-11-12 02:10:17 | [diff] [blame] | 757 | #if BUILDFLAG(ENABLE_EXTENSIONS) |
[email protected] | bfcf4566 | 2014-07-17 22:30:20 | [diff] [blame] | 758 | void GuestPermissionRequestHelper( |
| 759 | const GURL& url, |
Lukasz Anforowicz | 09060bdf7 | 2018-08-23 15:53:17 | [diff] [blame] | 760 | const std::vector<content::GlobalFrameRoutingId>& render_frames, |
John Abd-El-Malek | 2a18d98d | 2019-08-08 04:31:57 | [diff] [blame] | 761 | base::OnceCallback<void(bool)> callback, |
[email protected] | bfcf4566 | 2014-07-17 22:30:20 | [diff] [blame] | 762 | bool allow); |
[email protected] | f917df2 | 2014-07-10 07:45:49 | [diff] [blame] | 763 | #endif |
| 764 | |
Xinghui Lu | cf23c90 | 2020-06-10 17:38:25 | [diff] [blame] | 765 | // Returns the existing UrlCheckerDelegate object if it is already created. |
| 766 | // Otherwise, creates a new one and returns it. It returns nullptr if |
| 767 | // |safe_browsing_enabled_for_profile| is false, because it should bypass safe |
| 768 | // browsing check when safe browsing is disabled. Set |
| 769 | // |should_check_on_sb_disabled| to true if you still want to perform safe |
| 770 | // browsing check when safe browsing is disabled(e.g. for enterprise real time |
| 771 | // URL check). |
Clark DuVall | 5497288d | 2019-07-17 00:17:56 | [diff] [blame] | 772 | scoped_refptr<safe_browsing::UrlCheckerDelegate> |
Xinghui Lu | cf23c90 | 2020-06-10 17:38:25 | [diff] [blame] | 773 | GetSafeBrowsingUrlCheckerDelegate(bool safe_browsing_enabled_for_profile, |
| 774 | bool should_check_on_sb_disabled); |
| 775 | |
| 776 | // Returns a RealTimeUrlLookupServiceBase object used for real time URL check. |
| 777 | // Returns an enterprise version if |is_enterprise_lookup_enabled| is true. |
| 778 | // Returns a consumer version if |is_enterprise_lookup_enabled| is false and |
| 779 | // |is_consumer_lookup_enabled| is true. Returns nullptr if both are false. |
| 780 | safe_browsing::RealTimeUrlLookupServiceBase* GetUrlLookupService( |
| 781 | content::BrowserContext* browser_context, |
| 782 | bool is_enterprise_lookup_enabled, |
| 783 | bool is_consumer_lookup_enabled); |
Yuzhu Shen | 44094e2 | 2017-07-18 22:52:35 | [diff] [blame] | 784 | |
Yutaka Hirano | 93e92474 | 2020-11-11 10:40:13 | [diff] [blame] | 785 | void OnKeepaliveTimerFired( |
| 786 | std::unique_ptr<ScopedKeepAlive> keep_alive_handle); |
| 787 | |
[email protected] | a48ab711 | 2014-08-01 16:48:03 | [diff] [blame] | 788 | // Vector of additional ChromeContentBrowserClientParts. |
| 789 | // Parts are deleted in the reverse order they are added. |
| 790 | std::vector<ChromeContentBrowserClientParts*> extra_parts_; |
| 791 | |
yzshen | efcb7c7 | 2017-06-16 23:12:30 | [diff] [blame] | 792 | scoped_refptr<safe_browsing::SafeBrowsingService> safe_browsing_service_; |
Yuzhu Shen | 44094e2 | 2017-07-18 22:52:35 | [diff] [blame] | 793 | scoped_refptr<safe_browsing::UrlCheckerDelegate> |
| 794 | safe_browsing_url_checker_delegate_; |
yzshen | efcb7c7 | 2017-06-16 23:12:30 | [diff] [blame] | 795 | |
danakj | 5beedd0 | 2020-10-30 15:55:13 | [diff] [blame] | 796 | StartupData startup_data_; |
Xi Han | ddb1ab1 | 2018-08-27 22:18:54 | [diff] [blame] | 797 | |
Reilly Grant | 0d28232 | 2019-01-29 02:42:58 | [diff] [blame] | 798 | #if !defined(OS_ANDROID) |
| 799 | std::unique_ptr<ChromeSerialDelegate> serial_delegate_; |
Matt Reynolds | 93616f9b | 2019-06-07 01:28:52 | [diff] [blame] | 800 | std::unique_ptr<ChromeHidDelegate> hid_delegate_; |
Olivier Yiptong | 935e6c4 | 2020-11-21 01:28:23 | [diff] [blame] | 801 | std::unique_ptr<ChromeFontAccessDelegate> font_access_delegate_; |
Reilly Grant | 0d28232 | 2019-01-29 02:42:58 | [diff] [blame] | 802 | #endif |
Ovidio Henriquez | 3d729f6 | 2020-02-07 00:43:29 | [diff] [blame] | 803 | std::unique_ptr<ChromeBluetoothDelegate> bluetooth_delegate_; |
Reilly Grant | 0d28232 | 2019-01-29 02:42:58 | [diff] [blame] | 804 | |
Alexander Cooper | c844870 | 2020-03-14 01:39:56 | [diff] [blame] | 805 | #if BUILDFLAG(ENABLE_VR) |
| 806 | std::unique_ptr<vr::ChromeXrIntegrationClient> xr_integration_client_; |
| 807 | #endif |
| 808 | |
Robert Sesek | 466e43e | 2019-08-19 22:02:02 | [diff] [blame] | 809 | // Returned from GetNetworkContextsParentDirectory() but created on the UI |
| 810 | // thread because it needs to access the Local State prefs. |
| 811 | std::vector<base::FilePath> network_contexts_parent_directory_; |
| 812 | |
Yutaka Hirano | 93e92474 | 2020-11-11 10:40:13 | [diff] [blame] | 813 | #if !defined(OS_ANDROID) |
| 814 | uint64_t num_keepalive_requests_ = 0; |
| 815 | base::OneShotTimer keepalive_timer_; |
| 816 | base::TimeTicks last_keepalive_request_time_; |
| 817 | #endif |
| 818 | |
Jeremy Roman | 495db68 | 2019-07-12 16:03:24 | [diff] [blame] | 819 | base::WeakPtrFactory<ChromeContentBrowserClient> weak_factory_{this}; |
[email protected] | 30335fdf0 | 2014-02-26 19:51:27 | [diff] [blame] | 820 | |
[email protected] | e461da2f | 2012-02-16 19:06:40 | [diff] [blame] | 821 | DISALLOW_COPY_AND_ASSIGN(ChromeContentBrowserClient); |
[email protected] | d977f9c | 2011-03-14 16:10:26 | [diff] [blame] | 822 | }; |
| 823 | |
[email protected] | d977f9c | 2011-03-14 16:10:26 | [diff] [blame] | 824 | #endif // CHROME_BROWSER_CHROME_CONTENT_BROWSER_CLIENT_H_ |