1 #ifndef BROWSER_WRT_BROWSER_CLIENT_H_
2 #define BROWSER_WRT_BROWSER_CLIENT_H_
4 #include "components/nacl/common/buildflags.h"
5 #include "electron/shell/browser/electron_browser_client.h"
6 #include "ppapi/buildflags/buildflags.h"
8 #if BUILDFLAG(IS_TIZEN_TV) || defined(ENABLE_TIZEN_SOCKETS)
9 #include "content/public/browser/render_process_host.h"
10 #include "services/service_manager/public/cpp/manifest.h"
15 class WRTBrowserClient : public electron::ElectronBrowserClient {
18 virtual ~WRTBrowserClient();
20 WRTBrowserClient(const WRTBrowserClient&) = delete;
21 WRTBrowserClient& operator=(const WRTBrowserClient&) = delete;
23 #if BUILDFLAG(ENABLE_NACL) || \
24 (defined(TIZEN_PEPPER_EXTENSIONS) && BUILDFLAG(ENABLE_PLUGINS))
25 void DidCreatePpapiPlugin(content::BrowserPpapiHost* browser_host) override;
27 #if defined(TIZEN_PEPPER_EXTENSIONS)
28 bool AllowPepperSocketAPI(
29 content::BrowserContext* browser_context,
32 const content::SocketPermissionRequest* params) override;
33 bool IsPluginAllowedToUseDevChannelAPIs(
34 content::BrowserContext* browser_context,
35 const GURL& url) override;
38 void BindHostReceiverForRenderer(
39 content::RenderProcessHost* render_process_host,
40 mojo::GenericPendingReceiver receiver) override;
42 std::unique_ptr<content::DevToolsManagerDelegate>
43 CreateDevToolsManagerDelegate() override;
44 electron::NotificationPresenter* GetNotificationPresenter();
46 #if BUILDFLAG(ENABLE_NACL)
47 content::BrowserPpapiHost* GetExternalBrowserPpapiHost(
48 int plugin_process_id) override;
50 std::vector<std::unique_ptr<content::NavigationThrottle>>
51 CreateThrottlesForNavigation(content::NavigationHandle* handle) override;
53 scoped_refptr<network::SharedURLLoaderFactory>
54 GetSystemSharedURLLoaderFactory() override;
56 bool ShouldEnableStrictSiteIsolation() override;
59 // content::ContentBrowserClient:
60 std::unique_ptr<content::BrowserMainParts> CreateBrowserMainParts(
61 bool is_integration_test) override;
62 void RenderProcessWillLaunch(content::RenderProcessHost* host) override;
63 void AppendExtraCommandLineSwitches(base::CommandLine* command_line,
64 int child_process_id) override;
66 content::RenderFrameHost* opener,
67 const GURL& opener_url,
68 const GURL& opener_top_level_frame_url,
69 const url::Origin& source_origin,
70 content::mojom::WindowContainerType container_type,
71 const GURL& target_url,
72 const content::Referrer& referrer,
73 const std::string& frame_name,
74 WindowOpenDisposition disposition,
75 const blink::mojom::WindowFeatures& features,
77 bool opener_suppressed,
78 bool* no_javascript_access) override;
79 void OverrideWebkitPrefs(content::WebContents* web_contents,
80 blink::web_pref::WebPreferences* prefs) override;
81 bool ForceSniffingFileUrlsForHtml() override;
82 std::string GetApplicationLocale() override;
83 std::unique_ptr<content::WebContentsViewDelegate> GetWebContentsViewDelegate(
84 content::WebContents* web_contents) override;
85 std::string GetUserAgent() override;
86 bool WillCreateURLLoaderFactory(
87 content::BrowserContext* browser_context,
88 content::RenderFrameHost* frame,
89 int render_process_id,
90 URLLoaderFactoryType type,
91 const url::Origin& request_initiator,
92 absl::optional<int64_t> navigation_id,
93 ukm::SourceIdObj ukm_source_id,
94 mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
95 mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
97 bool* bypass_redirect_checks,
98 bool* disable_secure_dns,
99 network::mojom::URLLoaderFactoryOverridePtr* factory_override,
100 scoped_refptr<base::SequencedTaskRunner> navigation_response_task_runner)
102 void ConfigureNetworkContextParams(
103 content::BrowserContext* browser_context,
105 const base::FilePath& relative_partition_path,
106 network::mojom::NetworkContextParams* network_context_params,
107 cert_verifier::mojom::CertVerifierCreationParams*
108 cert_verifier_creation_params) override;
109 void ExposeInterfacesToRenderer(
110 service_manager::BinderRegistry* registry,
111 blink::AssociatedInterfaceRegistry* associated_registry,
112 content::RenderProcessHost* render_process_host) override;
113 bool DoesSiteRequireDedicatedProcess(content::BrowserContext* browser_context,
114 const GURL& effective_site_url) override;
115 void GetAdditionalWebUISchemes(
116 std::vector<std::string>* additional_schemes) override;
117 void RegisterAssociatedInterfaceBindersForRenderFrameHost(
118 content::RenderFrameHost& render_frame_host,
119 blink::AssociatedInterfaceRegistry& associated_registry) override;
121 std::unique_ptr<electron::NotificationPresenter> notification_presenter_;
123 // URLLoaderFactory backed by the NetworkContext returned by GetContext(), so
124 // consumers don't all need to create their own factory.
125 scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory_;
130 #endif // BROWSER_WRT_BROWSER_CLIENT_H_