| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sync/profile_sync_service.h" | 5 #include "chrome/browser/sync/profile_sync_service.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cstddef> | 8 #include <cstddef> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 << " -- ProfileSyncService unusable: " << message; | 548 << " -- ProfileSyncService unusable: " << message; |
| 549 | 549 |
| 550 // Shut all data types down. | 550 // Shut all data types down. |
| 551 MessageLoop::current()->PostTask(FROM_HERE, | 551 MessageLoop::current()->PostTask(FROM_HERE, |
| 552 scoped_runnable_method_factory_.NewRunnableMethod( | 552 scoped_runnable_method_factory_.NewRunnableMethod( |
| 553 &ProfileSyncService::Shutdown, true)); | 553 &ProfileSyncService::Shutdown, true)); |
| 554 } | 554 } |
| 555 | 555 |
| 556 void ProfileSyncService::OnBackendInitialized( | 556 void ProfileSyncService::OnBackendInitialized( |
| 557 const WeakHandle<JsBackend>& js_backend, bool success) { | 557 const WeakHandle<JsBackend>& js_backend, bool success) { |
| 558 if (HasSyncSetupCompleted()) { | |
| 559 UMA_HISTOGRAM_BOOLEAN("Sync.FirstBackendInitializeSuccess", success); | |
| 560 } else { | |
| 561 UMA_HISTOGRAM_BOOLEAN("Sync.RestoreBackendInitializeSuccess", success); | |
| 562 } | |
| 563 | |
| 564 if (!success) { | 558 if (!success) { |
| 565 // Something went unexpectedly wrong. Play it safe: nuke our current state | 559 // If backend initialization failed, abort. We only want to blow away |
| 566 // and prepare ourselves to try again later. | 560 // state (DBs, etc) if this was a first-time scenario that failed. |
| 567 DisableForUser(); | 561 wizard_.Step(SyncSetupWizard::FATAL_ERROR); |
| 562 Shutdown(!HasSyncSetupCompleted()); |
| 568 return; | 563 return; |
| 569 } | 564 } |
| 570 | 565 |
| 571 backend_initialized_ = true; | 566 backend_initialized_ = true; |
| 572 | 567 |
| 573 sync_js_controller_.AttachJsBackend(js_backend); | 568 sync_js_controller_.AttachJsBackend(js_backend); |
| 574 | 569 |
| 575 // The very first time the backend initializes is effectively the first time | 570 // The very first time the backend initializes is effectively the first time |
| 576 // we can say we successfully "synced". last_synced_time_ will only be null | 571 // we can say we successfully "synced". last_synced_time_ will only be null |
| 577 // in this case, because the pref wasn't restored on StartUp. | 572 // in this case, because the pref wasn't restored on StartUp. |
| (...skipping 971 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1549 << "Unrecoverable error."; | 1544 << "Unrecoverable error."; |
| 1550 } else { | 1545 } else { |
| 1551 VLOG(0) << "ConfigureDataTypeManager not invoked because backend is not " | 1546 VLOG(0) << "ConfigureDataTypeManager not invoked because backend is not " |
| 1552 << "initialized"; | 1547 << "initialized"; |
| 1553 } | 1548 } |
| 1554 } | 1549 } |
| 1555 | 1550 |
| 1556 const FailedDatatypesHandler& ProfileSyncService::failed_datatypes_handler() { | 1551 const FailedDatatypesHandler& ProfileSyncService::failed_datatypes_handler() { |
| 1557 return failed_datatypes_handler_; | 1552 return failed_datatypes_handler_; |
| 1558 } | 1553 } |
| OLD | NEW |