"webui/settings/samsung/samsung_pass_handler.h",
"samsung/storage_manager.cc",
"samsung/storage_manager.h",
+ "samsung/opened_tabs_controller.cc",
+ "samsung/opened_tabs_controller.h",
"samsung/hybrid_navigation_controller.cc",
"samsung/hybrid_navigation_controller.h",
"samsung/samsung_web_server_downloader.cc",
#include "ui/base/page_transition_types.h"
#include "url/gurl.h"
+#if defined(SAMSUNG_NEXT_BROWSER)
+#include "chrome/browser/ui/samsung/samsung_browser_core.h"
+#endif
+
namespace chrome {
void AddTabAt(Browser* browser,
if (!params.navigated_or_inserted_contents)
return;
-
+#if defined(SAMSUNG_NEXT_BROWSER)
+ auto controller = samsung_browser_main::SamsungBrowserCore::instance()
+ ->OpenedTabsController();
+ controller->RemoveThisDevice();
+ int tabCount = browser->tab_strip_model()->GetTabCount();
+ for (int i = 0; i < tabCount; i++) {
+ auto model = browser->tab_strip_model()->GetTabHandleAt(i).Get();
+ controller->PageLoaded(model);
+ }
+#endif
CoreTabHelper* core_tab_helper =
CoreTabHelper::FromWebContents(params.navigated_or_inserted_contents);
core_tab_helper->set_new_tab_start_time(new_tab_start_time);
--- /dev/null
+#include <codecvt>
+
+#include "chrome/browser/ui/samsung/opened_tabs_controller.h"
+#include "chrome/browser/ui/samsung/samsung_browser_core.h"
+
+namespace samsung_browser_controller {
+
+OpenedTabsController::OpenedTabsController() {
+ opened_tab_model_ =
+ std::move(samsung_browser_main::SamsungBrowserCore::instance()
+ ->StorageManager()
+ ->openedTabModel());
+}
+
+OpenedTabsController::~OpenedTabsController() {}
+
+void OpenedTabsController::PageLoaded(const TabModel* model) {
+ auto url = model->contents()->GetVisibleURL();
+ std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> conv;
+ auto title = conv.to_bytes(model->contents()->GetTitle());
+ // if (url.isInternal())
+ // {
+ // BROWSER_LOGD("url: is isInternal");
+ // m_openTabModel->remove(m_openTabItems[model]);
+ // return;
+ // }
+
+ auto systemConfiguration =
+ samsung_browser_main::SamsungBrowserCore::instance()
+ ->SystemConfiguration();
+ if (!systemConfiguration) {
+ LOG(ERROR) << "System configuration is null";
+ return;
+ }
+
+ auto thisDeviceID = systemConfiguration->GetString(
+ samsung_browser_fw_core::SamsungConfigKey::VDUID);
+ auto thisDeviceName = systemConfiguration->GetString(
+ samsung_browser_fw_core::SamsungConfigKey::TvName);
+
+ auto openTab = samsung_browser_fw_core::OpenedTabItem(
+ url.spec(), title, thisDeviceName, thisDeviceID);
+ opened_tab_items_[model] = openTab;
+ opened_tab_model_->add(openTab);
+}
+
+void OpenedTabsController::OnTabClosed(TabModel* model) {
+ opened_tab_model_->remove(opened_tab_items_[model]);
+ opened_tab_items_.erase(model);
+}
+
+void OpenedTabsController::OnTabCreated(TabModel* model) {
+ auto openTab = samsung_browser_fw_core::OpenedTabItem();
+ opened_tab_items_[model] = openTab;
+}
+
+void OpenedTabsController::RemoveThisDevice() {
+ std::string thisDevice =
+ samsung_browser_main::SamsungBrowserCore::instance()
+ ->SystemConfiguration()
+ ->GetString(samsung_browser_fw_core::SamsungConfigKey::VDUID);
+ opened_tab_model_->removeDevice(thisDevice);
+}
+
+} // namespace samsung_browser_controller
--- /dev/null
+#ifndef CHROME_BROWSER_UI_SAMSUNG_OPENED_TABS_CONTROLLER_H_
+#define CHROME_BROWSER_UI_SAMSUNG_OPENED_TABS_CONTROLLER_H_
+
+#include "chrome/browser/ui/tabs/tab_model.h"
+#include "components/samsung/opened_tabs/opened_tab_item.h"
+#include "components/samsung/opened_tabs/opened_tab_model.h"
+
+namespace samsung_browser_controller {
+
+class OpenedTabsController {
+ public:
+ OpenedTabsController();
+ virtual ~OpenedTabsController();
+ void PageLoaded(const TabModel*);
+ void OnTabCreated(TabModel*);
+ void OnTabClosed(TabModel*);
+ void RemoveThisDevice();
+
+ private:
+ std::map<const TabModel*, samsung_browser_fw_core::OpenedTabItem>
+ opened_tab_items_;
+ std::unique_ptr<samsung_browser_storage::BPOpenedTabModel> opened_tab_model_;
+};
+
+} // namespace samsung_browser_controller
+
+#endif // CHROME_BROWSER_UI_SAMSUNG_OPENED_TABS_CONTROLLER_H_
std::make_unique<samsung_browser_controller::DataSyncController>(
browser_);
m_data_sync_controller->Init();
+ m_opened_tabs_controller =
+ std::make_unique<samsung_browser_controller::OpenedTabsController>();
}
SamsungBrowserCore::~SamsungBrowserCore() {}
#include "chrome/browser/ui/samsung/high_contrast_controller.h"
#include "chrome/browser/ui/samsung/hybrid_navigation_controller.h"
#include "chrome/browser/ui/samsung/input_manager.h"
+#include "chrome/browser/ui/samsung/opened_tabs_controller.h"
#include "chrome/browser/ui/samsung/samsung_account_manager.h"
#include "chrome/browser/ui/samsung/samsung_web_server_downloader.h"
#include "chrome/browser/ui/samsung/storage_manager.h"
return m_data_sync_controller.get();
};
+ samsung_browser_controller::OpenedTabsController* OpenedTabsController() {
+ return m_opened_tabs_controller.get();
+ }
+
SamsungPass* GetSamsungPass() { return m_samsung_pass.get(); }
aura::WindowTreeHost* GetWindowInstance();
std::unique_ptr<samsung_input_manager::InputManager> m_input_manager;
std::unique_ptr<samsung_browser_controller::DataSyncController>
m_data_sync_controller;
+ std::unique_ptr<samsung_browser_controller::OpenedTabsController>
+ m_opened_tabs_controller;
std::unique_ptr<samsung_browser_configuration::SystemConfiguration>
m_system_configuration_;
std::unique_ptr<samsung_browser_controller::CursorController>