[WRTjs] Enable WRTjs
[platform/framework/web/chromium-efl.git] / wrt / src / browser / wrt_browser_main_parts.cc
1 #include "wrt/src/browser/wrt_browser_main_parts.h"
2
3 #include "components/nacl/common/buildflags.h"
4 #include "content/public/common/result_codes.h"
5 #include "electron/shell/browser/browser_process_impl.h"
6 #include "electron/shell/browser/electron_browser_client.h"
7 #include "extensions/buildflags/buildflags.h"
8 #include "ui/aura/screen_ozone.h"
9 #include "ui/base/l10n/l10n_util.h"
10 #include "wrt/src/common/locale_manager.h"
11
12 #if ENABLE_CHROME_EXTENSIONS
13 #include "wrt/src/browser/extensions/wrt_browser_context_keyed_service_factories.h"
14 #endif
15 #if BUILDFLAG(ENABLE_NACL)
16 #include "components/nacl/browser/nacl_browser.h"
17 #include "components/nacl/browser/nacl_browser_delegate_impl_efl.h"
18 #include "components/nacl/browser/nacl_process_host.h"
19 #include "content/public/browser/browser_task_traits.h"
20 #include "content/public/browser/browser_thread.h"
21 #endif
22
23 #if ENABLE_CHROME_EXTENSIONS
24 #include "wrt/src/browser/extensions/wrt_browser_context_keyed_service_factories.h"
25 #include "wrt/src/browser/ui/webui/wrt_web_ui_controller_factory.h"
26 #endif
27
28 namespace wrt {
29
30 WRTBrowserMainParts::WRTBrowserMainParts()
31     : electron::ElectronBrowserMainParts() {}
32
33 WRTBrowserMainParts::~WRTBrowserMainParts() {}
34
35 void WRTBrowserMainParts::PreCreateMainMessageLoop() {
36   // skip ElectronBrowserMainParts::PreCreateMainMessageLoop for avoiding resource bundle conflict
37 }
38
39 int WRTBrowserMainParts::PreMainMessageLoopRun() {
40   ElectronBrowserMainParts::PreMainMessageLoopRun();
41
42 #if ENABLE_CHROME_EXTENSIONS
43   extensions::wrt::EnsureBrowserContextKeyedServiceFactoriesBuilt();
44   content::WebUIControllerFactory::RegisterFactory(
45       WRTWebUIControllerFactory::GetInstance());
46 #endif
47
48 #if BUILDFLAG(ENABLE_NACL)
49   nacl::NaClBrowser::SetDelegate(
50       std::make_unique<NaClBrowserDelegateImplEfl>());
51
52   base::PostTaskWithTraits(
53       FROM_HERE, {content::BrowserThread::IO},
54       base::BindOnce(&nacl::NaClProcessHost::EarlyStartup));
55 #endif
56
57   return content::RESULT_CODE_NORMAL_EXIT;
58 }
59
60 #if BUILDFLAG(USE_ALLOCATOR_SHIM)
61 void WRTBrowserMainParts::PostCreateThreads() {
62   extra_parts_profiling_.PostCreateThreads();
63 }
64 #endif
65
66 int WRTBrowserMainParts::PreCreateThreads() {
67   std::string system_locale = LocaleManager::GetSystemLocale();
68
69   // Initialize the app locale.
70   std::string app_locale = l10n_util::GetApplicationLocale(system_locale);
71   electron::ElectronBrowserClient::SetApplicationLocale(app_locale);
72   fake_browser_process_->SetApplicationLocale(app_locale);
73
74   screen_ = std::make_unique<aura::ScopedScreenOzone>();
75
76   return ElectronBrowserMainParts::PreCreateThreads();
77 }
78
79 }  // namespace wrt