diff --git a/browser/ui/webui/sync/sync_ui.cc b/browser/ui/webui/sync/sync_ui.cc index 1b5dd093834d..9250244fe734 100644 --- a/browser/ui/webui/sync/sync_ui.cc +++ b/browser/ui/webui/sync/sync_ui.cc @@ -45,6 +45,8 @@ class SyncUIDOMHandler : public WebUIMessageHandler, void DeleteDevice(const base::ListValue* args); void ResetSync(const base::ListValue* args); + void OnSyncSetupError(brave_sync::BraveSyncService* sync_service, + const std::string& error) override; void OnSyncStateChanged(brave_sync::BraveSyncService *sync_service) override; void OnHaveSyncWords(brave_sync::BraveSyncService *sync_service, const std::string& sync_words) override; @@ -193,6 +195,14 @@ void SyncUIDOMHandler::ResetSync(const base::ListValue* args) { sync_service_->OnResetSync(); } +void SyncUIDOMHandler::OnSyncSetupError( + brave_sync::BraveSyncService* sync_service, + const std::string& error) { + + web_ui()->CallJavascriptFunctionUnsafe( + "sync_ui_exports.syncSetupError", base::Value(error)); +} + void SyncUIDOMHandler::OnSyncStateChanged( brave_sync::BraveSyncService *sync_service) { LoadSyncSettingsView(); diff --git a/components/brave_sync/brave_sync_service_impl.cc b/components/brave_sync/brave_sync_service_impl.cc index 270f3f7d374b..07855a2b3c86 100644 --- a/components/brave_sync/brave_sync_service_impl.cc +++ b/components/brave_sync/brave_sync_service_impl.cc @@ -182,6 +182,9 @@ void BraveSyncServiceImpl::OnSetupSyncNewToSync( return; } + sync_words_.clear(); // If the previous attempt was connect to sync chain + // and failed to receive save-init-data + sync_prefs_->SetThisDeviceName(device_name); initializing_ = true; @@ -288,7 +291,7 @@ void BraveSyncServiceImpl::OnSyncSetupError(const std::string& error) { if (!sync_initialized_) { sync_prefs_->Clear(); } - OnSyncDebug(error); + NotifySyncSetupError(error); } void BraveSyncServiceImpl::OnGetInitData(const std::string& sync_version) { @@ -609,6 +612,12 @@ void BraveSyncServiceImpl::NotifyLogMessage(const std::string& message) { DLOG(INFO) << message; } +void BraveSyncServiceImpl::NotifySyncSetupError(const std::string& error) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + for (auto& observer : observers_) + observer.OnSyncSetupError(this, error); +} + void BraveSyncServiceImpl::NotifySyncStateChanged() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); for (auto& observer : observers_) diff --git a/components/brave_sync/brave_sync_service_impl.h b/components/brave_sync/brave_sync_service_impl.h index a81d147ff08e..4b270d9054e1 100644 --- a/components/brave_sync/brave_sync_service_impl.h +++ b/components/brave_sync/brave_sync_service_impl.h @@ -157,6 +157,7 @@ class BraveSyncServiceImpl : public BraveSyncService, const bool is_truncated ); void NotifyLogMessage(const std::string& message); + void NotifySyncSetupError(const std::string& error); void NotifySyncStateChanged(); void NotifyHaveSyncWords(const std::string& sync_words); diff --git a/components/brave_sync/brave_sync_service_observer.h b/components/brave_sync/brave_sync_service_observer.h index 2151b0cf1b20..e016c89631a5 100644 --- a/components/brave_sync/brave_sync_service_observer.h +++ b/components/brave_sync/brave_sync_service_observer.h @@ -13,6 +13,8 @@ class BraveSyncServiceObserver : public base::CheckedObserver { public: ~BraveSyncServiceObserver() override {} + virtual void OnSyncSetupError(BraveSyncService* sync_service, + const std::string& error) {} virtual void OnSyncStateChanged(BraveSyncService* sync_service) {} virtual void OnHaveSyncWords(BraveSyncService* sync_service, const std::string& sync_words) {} diff --git a/components/brave_sync/brave_sync_service_unittest.cc b/components/brave_sync/brave_sync_service_unittest.cc index 778e9da64039..19a01c09d57a 100644 --- a/components/brave_sync/brave_sync_service_unittest.cc +++ b/components/brave_sync/brave_sync_service_unittest.cc @@ -92,6 +92,7 @@ class MockBraveSyncServiceObserver : public BraveSyncServiceObserver { public: MockBraveSyncServiceObserver() {} + MOCK_METHOD2(OnSyncSetupError, void(BraveSyncService*, const std::string&)); MOCK_METHOD1(OnSyncStateChanged, void(BraveSyncService*)); MOCK_METHOD2(OnHaveSyncWords, void(BraveSyncService*, const std::string&)); }; @@ -296,6 +297,11 @@ TEST_F(BraveSyncServiceTest, GetSyncWords) { sync_service()->OnSyncWordsPrepared(words); } +TEST_F(BraveSyncServiceTest, SyncSetupError) { + EXPECT_CALL(*observer(), OnSyncSetupError(sync_service(), _)).Times(1); + sync_service()->OnSetupSyncHaveCode("", ""); +} + TEST_F(BraveSyncServiceTest, GetSeed) { EXPECT_CALL(*sync_client(), OnSyncEnabledChanged); EXPECT_CALL(*observer(), OnSyncStateChanged(sync_service())).Times(AtLeast(2)); diff --git a/components/brave_sync/extension/background.js b/components/brave_sync/extension/background.js index 306be29c723f..afcc65c852ac 100644 --- a/components/brave_sync/extension/background.js +++ b/components/brave_sync/extension/background.js @@ -249,7 +249,7 @@ class InjectedObject { chrome.braveSync.saveInitData(arg1/*seed*/, deviceId); break; case "sync-ready": - console.log(`"save-init-data"`); + console.log(`"sync-ready"`); chrome.braveSync.syncReady(); break; case "get-existing-objects": diff --git a/components/brave_sync/ui/brave_sync.tsx b/components/brave_sync/ui/brave_sync.tsx index e10b4ddb5c9e..a3a0c56ca43f 100644 --- a/components/brave_sync/ui/brave_sync.tsx +++ b/components/brave_sync/ui/brave_sync.tsx @@ -60,12 +60,17 @@ window.cr.define('sync_ui_exports', function () { getActions().onLogMessage(message) } + function syncSetupError(error: string) { + alert('Sync setup error: ' + error) + } + return { initialize, showSettings, haveSyncWords, haveSeedForQrCode, - logMessage + logMessage, + syncSetupError } })