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 |