[WRTjs] Refactor popup
[platform/framework/web/chromium-efl.git] / wrt / src / browser / wrt_browser_client.h
1 #ifndef BROWSER_WRT_BROWSER_CLIENT_H_
2 #define BROWSER_WRT_BROWSER_CLIENT_H_
3
4 #include "components/nacl/common/buildflags.h"
5 #include "electron/shell/browser/electron_browser_client.h"
6 #include "ppapi/buildflags/buildflags.h"
7
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"
11 #endif
12
13 namespace wrt {
14
15 class WRTBrowserClient : public electron::ElectronBrowserClient {
16  public:
17   WRTBrowserClient();
18   virtual ~WRTBrowserClient();
19
20   WRTBrowserClient(const WRTBrowserClient&) = delete;
21   WRTBrowserClient& operator=(const WRTBrowserClient&) = delete;
22
23 #if BUILDFLAG(ENABLE_NACL) || \
24     (defined(TIZEN_PEPPER_EXTENSIONS) && BUILDFLAG(ENABLE_PLUGINS))
25   void DidCreatePpapiPlugin(content::BrowserPpapiHost* browser_host) override;
26 #endif
27 #if defined(TIZEN_PEPPER_EXTENSIONS)
28   bool AllowPepperSocketAPI(
29       content::BrowserContext* browser_context,
30       const GURL& url,
31       bool private_api,
32       const content::SocketPermissionRequest* params) override;
33   bool IsPluginAllowedToUseDevChannelAPIs(
34       content::BrowserContext* browser_context,
35       const GURL& url) override;
36 #endif
37
38   void BindHostReceiverForRenderer(
39       content::RenderProcessHost* render_process_host,
40       mojo::GenericPendingReceiver receiver) override;
41
42   std::unique_ptr<content::DevToolsManagerDelegate>
43   CreateDevToolsManagerDelegate() override;
44   electron::NotificationPresenter* GetNotificationPresenter();
45
46 #if BUILDFLAG(ENABLE_NACL)
47   content::BrowserPpapiHost* GetExternalBrowserPpapiHost(
48       int plugin_process_id) override;
49 #endif
50   std::vector<std::unique_ptr<content::NavigationThrottle>>
51   CreateThrottlesForNavigation(content::NavigationHandle* handle) override;
52
53   scoped_refptr<network::SharedURLLoaderFactory>
54   GetSystemSharedURLLoaderFactory() override;
55
56   bool ShouldEnableStrictSiteIsolation() override;
57
58  protected:
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;
65   bool CanCreateWindow(
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,
76       bool user_gesture,
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>*
96           header_client,
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)
101       override;
102   void ConfigureNetworkContextParams(
103       content::BrowserContext* browser_context,
104       bool in_memory,
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;
120
121   std::unique_ptr<electron::NotificationPresenter> notification_presenter_;
122
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_;
126 };
127
128 }  // namespace wrt
129
130 #endif  // BROWSER_WRT_BROWSER_CLIENT_H_