[NextBrowser] Crash fix on multiple browser windows 92/318792/2
authormayur.jain <mayur.jain@samsung.com>
Tue, 8 Oct 2024 10:10:07 +0000 (15:40 +0530)
committerBot Blink <blinkbot@samsung.com>
Tue, 8 Oct 2024 10:39:05 +0000 (10:39 +0000)
-Launching PWA window and closing incognito windows
 were crashing due to different browser instances
 on these windows.
-This patch will temporary fix the crashes by using
 same browser instance.
-Hybrid navigation and remocon clicks will not work
 on incognito and PWA windows.

Change-Id: I7b0ad0867da99737dee6584749e18f316e445e63
Signed-off-by: mayur.jain <mayur.jain@samsung.com>
chrome/browser/ui/samsung/samsung_browser_core.cc
chrome/browser/ui/samsung/samsung_browser_core.h

index 5232bd107071b0c41807b8638f04baf83ccc55de..6f689a1d20ed3ac45f60e91b19ee88077749b2e7 100644 (file)
@@ -28,7 +28,8 @@ SamsungBrowserCore::SamsungBrowserCore()
       m_high_contrast_controller(nullptr),
       m_samsung_pass(nullptr),
       m_data_sync_controller(nullptr),
-      m_samsung_account_manager(nullptr) {}
+      m_samsung_account_manager(nullptr),
+      m_initialized(false) {}
 
 SamsungBrowserCore* SamsungBrowserCore::instance() {
   if (!m_instance) {
@@ -38,8 +39,12 @@ SamsungBrowserCore* SamsungBrowserCore::instance() {
   return m_instance;
 }
 
-void SamsungBrowserCore::Init() {
+bool SamsungBrowserCore::Init() {
   LOG(INFO) << "SamsungBrowserCore::Init() ";
+  if (m_initialized) {
+    LOG(INFO) << "Already Initialized";
+    return true;
+  }
   SetWindowInstance();
   SetAccountManagerInstance();
   m_input_manager = std::make_unique<samsung_input_manager::InputManager>();
@@ -79,6 +84,8 @@ void SamsungBrowserCore::Init() {
   m_data_sync_controller->Init();
   m_opened_tabs_controller =
       std::make_unique<samsung_browser_controller::OpenedTabsController>();
+  m_initialized = true;
+  return true;
 }
 
 SamsungBrowserCore::~SamsungBrowserCore() {}
index 7da6d9c2372ab5754d05c26e706baeae24288478..d1e7f6c3ceab4a98dd55d556212194c65bcd4a65 100644 (file)
@@ -21,7 +21,7 @@ class SamsungBrowserCore {
  public:
   static SamsungBrowserCore* instance();
 
-  void Init();
+  bool Init();
   void SetBrowserInstance(Browser* browser);
   void SetAccountManagerInstance();
   Browser* GetBrowserInstance();
@@ -94,6 +94,7 @@ class SamsungBrowserCore {
   std::unique_ptr<SamsungPass> m_samsung_pass;
   raw_ptr<Browser> browser_;
   aura::WindowTreeHost* window_host;
+  bool m_initialized;
 };
 }  // namespace samsung_browser_main