[X2Go-Commits] [pale-moon] 275/294: Merge branch 'master' into default-pref

git-admin at x2go.org git-admin at x2go.org
Sat Apr 27 08:58:33 CEST 2019


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch upstream/28.5.0
in repository pale-moon.

commit af7e140d4ed8f5bc9a69da2f0338ad3cb1319dec
Merge: 40fc723 51722cd
Author: Ascrod <32915892+Ascrod at users.noreply.github.com>
Date:   Thu Apr 18 20:35:10 2019 -0400

    Merge branch 'master' into default-pref

 application/basilisk/app/profile/basilisk.js       |   42 -
 .../base/content/aboutaccounts/aboutaccounts.css   |   24 -
 .../base/content/aboutaccounts/aboutaccounts.js    |  538 ------
 .../base/content/aboutaccounts/aboutaccounts.xhtml |  112 --
 .../base/content/aboutaccounts/images/fox.png      |  Bin 1951 -> 0 bytes
 .../aboutaccounts/images/graphic_sync_intro.png    |  Bin 6441 -> 0 bytes
 .../aboutaccounts/images/graphic_sync_intro at 2x.png |  Bin 12852 -> 0 bytes
 .../basilisk/base/content/aboutaccounts/main.css   |  166 --
 .../base/content/aboutaccounts/normalize.css       |  402 -----
 .../basilisk/base/content/abouthome/aboutHome.css  |    4 +
 .../base/content/abouthome/aboutHome.xhtml         |    2 +
 .../basilisk/base/content/browser-context.inc      |   14 -
 .../basilisk/base/content/browser-doctype.inc      |    2 +
 .../basilisk/base/content/browser-fxaccounts.js    |  314 ----
 .../basilisk/base/content/browser-menubar.inc      |   34 +-
 .../basilisk/base/content/browser-places.js        |   13 +-
 application/basilisk/base/content/browser-sets.inc |    7 +-
 .../basilisk/base/content/browser-syncui.js        |  586 +++----
 application/basilisk/base/content/browser.css      |   12 +
 application/basilisk/base/content/browser.js       |   37 +-
 application/basilisk/base/content/browser.xul      |   70 +-
 .../basilisk/base/content/global-scripts.inc       |    2 -
 application/basilisk/base/content/nsContextMenu.js |    5 -
 .../basilisk/base/content/sync/customize.css       |   28 -
 .../basilisk/base/content/sync/customize.js        |   25 -
 .../basilisk/base/content/sync/customize.xul       |   62 -
 application/basilisk/base/content/web-panels.xul   |    1 -
 application/basilisk/base/jar.mn                   |   35 +-
 .../basilisk/components/about/AboutRedirector.cpp  |   10 +-
 application/basilisk/components/build/nsModule.cpp |    4 +-
 .../components/customizableui/CustomizableUI.jsm   |    1 -
 .../customizableui/CustomizableWidgets.jsm         |  138 --
 .../customizableui/content/panelUI.inc.xul         |  110 --
 .../basilisk/components/customizableui/moz.build   |    5 +-
 application/basilisk/components/moz.build          |    7 +-
 application/basilisk/components/nsBrowserGlue.js   |  119 +-
 .../basilisk/components/places/PlacesUIUtils.jsm   |    6 +-
 application/basilisk/components/places/moz.build   |    2 +-
 .../components/preferences/in-content/jar.mn       |    4 +-
 .../preferences/in-content/preferences.js          |    2 +
 .../preferences/in-content/preferences.xul         |    8 +
 .../components/preferences/in-content/sync.js      |  442 +----
 .../components/preferences/in-content/sync.xul     |  327 +---
 .../sync/aboutSyncTabs-bindings.xml                |    0
 .../content => components}/sync/aboutSyncTabs.css  |    0
 .../content => components}/sync/aboutSyncTabs.js   |  113 +-
 .../content => components}/sync/aboutSyncTabs.xul  |    0
 .../{base/content => components}/sync/addDevice.js |    0
 .../content => components}/sync/addDevice.xul      |    2 +-
 .../content => components}/sync/genericChange.js   |   15 +-
 .../content => components}/sync/genericChange.xul  |    4 +-
 application/basilisk/components/sync/jar.mn        |   22 +
 .../{base/content => components}/sync/key.xhtml    |    2 +-
 .../basilisk/components/sync}/moz.build            |    7 +-
 .../basilisk/components/sync/notification.xml      |  129 ++
 application/basilisk/components/sync/progress.js   |   71 +
 .../basilisk/components/sync/progress.xhtml        |   55 +
 .../{base/content => components}/sync/quota.js     |    0
 .../{base/content => components}/sync/quota.xul    |    0
 .../{base/content => components}/sync/setup.js     |   35 +-
 .../{base/content => components}/sync/setup.xul    |   15 +-
 .../{base/content => components}/sync/utils.js     |   29 +-
 .../components/syncedtabs/EventEmitter.jsm         |   45 -
 .../syncedtabs/SyncedTabsDeckComponent.js          |  169 --
 .../components/syncedtabs/SyncedTabsDeckStore.js   |   60 -
 .../components/syncedtabs/SyncedTabsDeckView.js    |  116 --
 .../components/syncedtabs/SyncedTabsListStore.js   |  235 ---
 .../components/syncedtabs/TabListComponent.js      |  138 --
 .../basilisk/components/syncedtabs/TabListView.js  |  568 -------
 application/basilisk/components/syncedtabs/jar.mn  |    7 -
 .../basilisk/components/syncedtabs/moz.build       |   17 -
 .../basilisk/components/syncedtabs/sidebar.js      |   30 -
 .../basilisk/components/syncedtabs/sidebar.xhtml   |  114 --
 application/basilisk/components/syncedtabs/util.js |   23 -
 application/basilisk/configure.in                  |    7 +
 application/basilisk/installer/allowed-dupes.mn    |    2 -
 application/basilisk/installer/package-manifest.in |    2 -
 .../locales/en-US/chrome/browser/aboutAccounts.dtd |   16 -
 .../locales/en-US/chrome/browser/aboutHome.dtd     |    4 +
 .../locales/en-US/chrome/browser/browser.dtd       |   66 +-
 .../en-US/chrome/browser/preferences/sync.dtd      |   73 +-
 .../locales/en-US/chrome/browser/syncBrand.dtd     |    1 -
 .../locales/en-US/chrome/browser/syncKey.dtd       |    8 +-
 .../locales/en-US/chrome/browser/syncProgress.dtd  |   15 +
 .../en-US/chrome/browser/syncQuota.properties      |    2 +-
 .../locales/en-US/chrome/browser/syncSetup.dtd     |   18 +-
 .../en-US/chrome/browser/syncSetup.properties      |   28 +-
 application/basilisk/locales/jar.mn                |   12 +-
 application/basilisk/modules/AboutHome.jsm         |    2 -
 application/basilisk/themes/linux/jar.mn           |    6 +-
 application/basilisk/themes/linux/syncProgress.css |   46 +
 .../basilisk/themes/linux/syncedtabs/sidebar.css   |   69 -
 application/basilisk/themes/osx/jar.mn             |   10 +-
 application/basilisk/themes/osx/syncProgress.css   |   46 +
 .../basilisk/themes/osx/syncedtabs/sidebar.css     |  154 --
 application/basilisk/themes/shared/browser.inc     |    2 +-
 .../themes/shared/customizableui/panelUI.inc.css   |  276 +---
 .../basilisk/themes/shared/menupanel.inc.css       |   19 +
 .../themes/shared/syncedtabs/sidebar.inc.css       |  234 ---
 .../basilisk/themes/shared/toolbarbuttons.inc.css  |   46 +
 application/basilisk/themes/windows/jar.mn         |    8 +-
 .../basilisk/themes/windows/syncProgress.css       |   46 +
 .../basilisk/themes/windows/syncedtabs/sidebar.css |  132 --
 application/palemoon/configure.in                  |    4 -
 mobile/android/app/mobile.js                       |   12 -
 mobile/android/base/android-services.mozbuild      |   61 -
 .../java/org/mozilla/gecko/push/PushService.java   |   24 +-
 .../android/base/resources/values-v21/themes.xml   |    5 -
 mobile/android/chrome/content/aboutAccounts.js     |  351 ----
 mobile/android/chrome/content/aboutAccounts.xhtml  |   83 -
 mobile/android/chrome/content/browser.js           |   14 -
 mobile/android/chrome/jar.mn                       |    2 -
 mobile/android/components/FxAccountsPush.js        |  164 --
 .../android/components/MobileComponents.manifest   |    5 -
 mobile/android/components/moz.build                |    1 -
 mobile/android/config/proguard/proguard.cfg        |    2 -
 mobile/android/confvars.sh                         |    2 +-
 mobile/android/installer/package-manifest.in       |    1 -
 mobile/android/modules/Accounts.jsm                |  105 +-
 mobile/android/modules/FxAccountsWebChannel.jsm    |  394 -----
 mobile/android/modules/moz.build                   |    1 -
 mobile/android/services/README.txt                 |    1 -
 .../FxAccountAndroidManifest_activities.xml.in     |   63 -
 .../FxAccountAndroidManifest_permissions.xml.in    |   18 -
 .../FxAccountAndroidManifest_services.xml.in       |   34 -
 .../gecko/background/ReadingListConstants.java     |   23 -
 .../gecko/background/common/EditorBranch.java      |   82 -
 .../gecko/background/common/GlobalConstants.java   |   90 -
 .../gecko/background/common/PrefsBranch.java       |   83 -
 .../gecko/background/common/log/Logger.java        |  232 ---
 .../log/writers/AndroidLevelCachingLogWriter.java  |  132 --
 .../common/log/writers/AndroidLogWriter.java       |   46 -
 .../log/writers/LevelFilteringLogWriter.java       |   67 -
 .../background/common/log/writers/LogWriter.java   |   29 -
 .../common/log/writers/PrintLogWriter.java         |   77 -
 .../common/log/writers/SimpleTagLogWriter.java     |   21 -
 .../common/log/writers/StringLogWriter.java        |   57 -
 .../common/log/writers/TagLogWriter.java           |   55 -
 .../log/writers/ThreadLocalTagLogWriter.java       |   25 -
 .../common/telemetry/TelemetryWrapper.java         |   56 -
 .../mozilla/gecko/background/db/CursorDumper.java  |   99 --
 .../java/org/mozilla/gecko/background/db/Tab.java  |   86 -
 .../background/fxa/FxAccount20CreateDelegate.java  |   52 -
 .../background/fxa/FxAccount20LoginDelegate.java   |   36 -
 .../gecko/background/fxa/FxAccountClient.java      |   24 -
 .../gecko/background/fxa/FxAccountClient20.java    |  914 -----------
 .../background/fxa/FxAccountClientException.java   |  133 --
 .../gecko/background/fxa/FxAccountRemoteError.java |   33 -
 .../gecko/background/fxa/FxAccountUtils.java       |  217 ---
 .../gecko/background/fxa/PasswordStretcher.java    |   12 -
 .../background/fxa/QuickPasswordStretcher.java     |   35 -
 .../mozilla/gecko/background/fxa/SkewHandler.java  |  111 --
 .../fxa/oauth/FxAccountAbstractClient.java         |  224 ---
 .../oauth/FxAccountAbstractClientException.java    |   68 -
 .../fxa/oauth/FxAccountOAuthClient10.java          |  129 --
 .../fxa/oauth/FxAccountOAuthRemoteError.java       |   19 -
 .../fxa/profile/FxAccountProfileClient10.java      |   59 -
 .../gecko/background/nativecode/NativeCrypto.java  |   60 -
 .../background/preferences/PreferenceFragment.java |  326 ----
 .../preferences/PreferenceManagerCompat.java       |  226 ---
 .../java/org/mozilla/gecko/browserid/ASNUtils.java |   82 -
 .../mozilla/gecko/browserid/BrowserIDKeyPair.java  |   35 -
 .../gecko/browserid/DSACryptoImplementation.java   |  255 ---
 .../mozilla/gecko/browserid/JSONWebTokenUtils.java |  245 ---
 .../gecko/browserid/MockMyIDTokenFactory.java      |  128 --
 .../gecko/browserid/RSACryptoImplementation.java   |  182 ---
 .../mozilla/gecko/browserid/SigningPrivateKey.java |   41 -
 .../gecko/browserid/VerifyingPublicKey.java        |   34 -
 .../AbstractBrowserIDRemoteVerifierClient.java     |   95 --
 .../verifier/BrowserIDRemoteVerifierClient10.java  |   62 -
 .../verifier/BrowserIDRemoteVerifierClient20.java  |   58 -
 .../verifier/BrowserIDVerifierClient.java          |    9 -
 .../verifier/BrowserIDVerifierDelegate.java        |   13 -
 .../verifier/BrowserIDVerifierException.java       |   41 -
 .../java/org/mozilla/gecko/fxa/AccountLoader.java  |  227 ---
 .../org/mozilla/gecko/fxa/FirefoxAccounts.java     |  222 ---
 .../org/mozilla/gecko/fxa/FxAccountConstants.java  |   75 -
 .../org/mozilla/gecko/fxa/FxAccountDevice.java     |   81 -
 .../gecko/fxa/FxAccountDeviceRegistrator.java      |  282 ----
 .../mozilla/gecko/fxa/FxAccountPushHandler.java    |   95 --
 .../org/mozilla/gecko/fxa/SyncStatusListener.java  |   31 -
 .../fxa/activities/CustomColorPreference.java      |   52 -
 .../fxa/activities/FxAccountAbstractActivity.java  |   80 -
 .../FxAccountConfirmAccountActivityWeb.java        |   11 -
 .../FxAccountFinishMigratingActivityWeb.java       |   11 -
 .../activities/FxAccountGetStartedActivityWeb.java |   11 -
 .../fxa/activities/FxAccountStatusActivity.java    |  228 ---
 .../fxa/activities/FxAccountStatusFragment.java    |  949 -----------
 .../FxAccountUpdateCredentialsActivityWeb.java     |   11 -
 .../fxa/activities/FxAccountWebFlowActivity.java   |   91 --
 .../activities/PicassoPreferenceIconTarget.java    |   63 -
 .../gecko/fxa/authenticator/AccountPickler.java    |  362 ----
 .../gecko/fxa/authenticator/AndroidFxAccount.java  |  929 -----------
 .../FxADefaultLoginStateMachineDelegate.java       |   84 -
 .../fxa/authenticator/FxAccountAuthenticator.java  |  385 -----
 .../FxAccountAuthenticatorService.java             |   55 -
 .../fxa/authenticator/FxAccountLoginDelegate.java  |   26 -
 .../fxa/authenticator/FxAccountLoginException.java |   33 -
 .../gecko/fxa/login/BaseRequestDelegate.java       |   49 -
 .../org/mozilla/gecko/fxa/login/Cohabiting.java    |   50 -
 .../java/org/mozilla/gecko/fxa/login/Doghouse.java |   25 -
 .../java/org/mozilla/gecko/fxa/login/Engaged.java  |   91 --
 .../fxa/login/FxAccountLoginStateMachine.java      |   84 -
 .../gecko/fxa/login/FxAccountLoginTransition.java  |   68 -
 .../java/org/mozilla/gecko/fxa/login/Married.java  |  117 --
 .../gecko/fxa/login/MigratedFromSync11.java        |   28 -
 .../org/mozilla/gecko/fxa/login/Separated.java     |   25 -
 .../java/org/mozilla/gecko/fxa/login/State.java    |   72 -
 .../org/mozilla/gecko/fxa/login/StateFactory.java  |  206 ---
 .../gecko/fxa/login/TokensAndKeysState.java        |   45 -
 .../fxa/receivers/FxAccountDeletedService.java     |  154 --
 .../fxa/receivers/FxAccountUpgradeReceiver.java    |  133 --
 .../fxa/sync/FxAccountNotificationManager.java     |  114 --
 .../gecko/fxa/sync/FxAccountProfileService.java    |  107 --
 .../gecko/fxa/sync/FxAccountSchedulePolicy.java    |  178 --
 .../gecko/fxa/sync/FxAccountSyncAdapter.java       |  568 -------
 .../gecko/fxa/sync/FxAccountSyncDelegate.java      |  110 --
 .../gecko/fxa/sync/FxAccountSyncService.java       |   28 -
 .../gecko/fxa/sync/FxAccountSyncStatusHelper.java  |  113 --
 .../org/mozilla/gecko/fxa/sync/SchedulePolicy.java |   43 -
 .../gecko/push/RegisterUserAgentResponse.java      |   19 -
 .../gecko/push/SubscribeChannelResponse.java       |   19 -
 .../gecko/push/autopush/AutopushClient.java        |  410 -----
 .../push/autopush/AutopushClientException.java     |   81 -
 .../gecko/sync/AlreadySyncingException.java        |   22 -
 .../org/mozilla/gecko/sync/BackoffHandler.java     |   34 -
 .../gecko/sync/BadRequiredFieldJSONException.java  |    5 -
 .../org/mozilla/gecko/sync/CollectionKeys.java     |  199 ---
 .../org/mozilla/gecko/sync/CommandProcessor.java   |  261 ---
 .../java/org/mozilla/gecko/sync/CommandRunner.java |   22 -
 .../mozilla/gecko/sync/CredentialException.java    |   56 -
 .../java/org/mozilla/gecko/sync/CryptoRecord.java  |  255 ---
 .../org/mozilla/gecko/sync/DelayedWorkTracker.java |   69 -
 .../org/mozilla/gecko/sync/EngineSettings.java     |   31 -
 .../org/mozilla/gecko/sync/ExtendedJSONObject.java |  426 -----
 .../java/org/mozilla/gecko/sync/GlobalSession.java | 1167 -------------
 .../mozilla/gecko/sync/HTTPFailureException.java   |   47 -
 .../org/mozilla/gecko/sync/InfoCollections.java    |  103 --
 .../org/mozilla/gecko/sync/InfoConfiguration.java  |   93 --
 .../java/org/mozilla/gecko/sync/InfoCounts.java    |   67 -
 .../org/mozilla/gecko/sync/JSONRecordFetcher.java  |  145 --
 .../org/mozilla/gecko/sync/KeyBundleProvider.java  |   11 -
 .../java/org/mozilla/gecko/sync/MetaGlobal.java    |  372 -----
 .../mozilla/gecko/sync/MetaGlobalException.java    |   45 -
 .../sync/MetaGlobalMissingEnginesException.java    |    9 -
 .../gecko/sync/MetaGlobalNotSetException.java      |    9 -
 .../gecko/sync/NoCollectionKeysSetException.java   |   16 -
 .../gecko/sync/NodeAuthenticationException.java    |   16 -
 .../mozilla/gecko/sync/NonArrayJSONException.java  |   17 -
 .../mozilla/gecko/sync/NonObjectJSONException.java |   17 -
 .../gecko/sync/NullClusterURLException.java        |   16 -
 .../mozilla/gecko/sync/PersistedMetaGlobal.java    |   86 -
 .../mozilla/gecko/sync/PrefsBackoffHandler.java    |   59 -
 .../main/java/org/mozilla/gecko/sync/README.txt    |    1 -
 .../sync/Server11PreviousPostFailedException.java  |   12 -
 .../sync/Server11RecordPostFailedException.java    |   12 -
 .../sync/SharedPreferencesClientsDataDelegate.java |  121 --
 .../mozilla/gecko/sync/Sync11Configuration.java    |   84 -
 .../org/mozilla/gecko/sync/SyncConfiguration.java  |  480 ------
 .../gecko/sync/SyncConfigurationException.java     |   16 -
 .../java/org/mozilla/gecko/sync/SyncConstants.java |   20 -
 .../java/org/mozilla/gecko/sync/SyncException.java |   34 -
 .../gecko/sync/SynchronizerConfiguration.java      |   68 -
 .../java/org/mozilla/gecko/sync/ThreadPool.java    |   15 -
 .../gecko/sync/UnexpectedJSONException.java        |   25 -
 ...nSynchronizerConfigurationVersionException.java |   16 -
 .../main/java/org/mozilla/gecko/sync/Utils.java    |  575 -------
 .../mozilla/gecko/sync/crypto/CryptoException.java |   19 -
 .../org/mozilla/gecko/sync/crypto/CryptoInfo.java  |  232 ---
 .../java/org/mozilla/gecko/sync/crypto/HKDF.java   |  128 --
 .../sync/crypto/HMACVerificationException.java     |   12 -
 .../org/mozilla/gecko/sync/crypto/KeyBundle.java   |  135 --
 .../sync/crypto/MissingCryptoInputException.java   |    9 -
 .../gecko/sync/crypto/NoKeyBundleException.java    |    9 -
 .../java/org/mozilla/gecko/sync/crypto/PBKDF2.java |   78 -
 .../gecko/sync/crypto/PersistedCrypto5Keys.java    |  103 --
 .../gecko/sync/delegates/ClientsDataDelegate.java  |   28 -
 .../gecko/sync/delegates/FreshStartDelegate.java   |   10 -
 .../sync/delegates/GlobalSessionCallback.java      |   49 -
 .../sync/delegates/JSONRecordFetchDelegate.java    |   19 -
 .../gecko/sync/delegates/KeyUploadDelegate.java    |   21 -
 .../gecko/sync/delegates/MetaGlobalDelegate.java   |   15 -
 .../gecko/sync/delegates/WipeServerDelegate.java   |   10 -
 .../middleware/Crypto5MiddlewareRepository.java    |   76 -
 .../Crypto5MiddlewareRepositorySession.java        |  172 --
 .../sync/middleware/MiddlewareRepository.java      |   22 -
 .../middleware/MiddlewareRepositorySession.java    |  185 ---
 .../net/AbstractBearerTokenAuthHeaderProvider.java |   34 -
 .../mozilla/gecko/sync/net/AuthHeaderProvider.java |   30 -
 .../org/mozilla/gecko/sync/net/BaseResource.java   |  565 -------
 .../gecko/sync/net/BaseResourceDelegate.java       |   44 -
 .../gecko/sync/net/BasicAuthHeaderProvider.java    |   51 -
 .../gecko/sync/net/BearerAuthHeaderProvider.java   |   22 -
 .../sync/net/BrowserIDAuthHeaderProvider.java      |   23 -
 .../gecko/sync/net/ConnectionMonitorThread.java    |   44 -
 .../sync/net/GzipNonChunkedCompressingEntity.java  |   92 --
 .../gecko/sync/net/HMACAuthHeaderProvider.java     |  257 ---
 .../gecko/sync/net/HandleProgressException.java    |   15 -
 .../gecko/sync/net/HawkAuthHeaderProvider.java     |  403 -----
 .../gecko/sync/net/HttpResponseObserver.java       |   20 -
 .../org/mozilla/gecko/sync/net/MozResponse.java    |  225 ---
 .../java/org/mozilla/gecko/sync/net/Resource.java  |   20 -
 .../mozilla/gecko/sync/net/ResourceDelegate.java   |   55 -
 .../org/mozilla/gecko/sync/net/SRPConstants.java   |  174 --
 .../org/mozilla/gecko/sync/net/SyncResponse.java   |  157 --
 .../sync/net/SyncStorageCollectionRequest.java     |  145 --
 .../net/SyncStorageCollectionRequestDelegate.java  |    9 -
 .../gecko/sync/net/SyncStorageRecordRequest.java   |   95 --
 .../mozilla/gecko/sync/net/SyncStorageRequest.java |  204 ---
 .../gecko/sync/net/SyncStorageRequestDelegate.java |   38 -
 .../net/SyncStorageRequestIncrementalDelegate.java |    9 -
 .../gecko/sync/net/SyncStorageResponse.java        |   85 -
 .../mozilla/gecko/sync/net/TLSSocketFactory.java   |   62 -
 .../sync/net/WBOCollectionRequestDelegate.java     |   35 -
 .../mozilla/gecko/sync/net/WBORequestDelegate.java |   14 -
 .../BookmarkNeedsReparentingException.java         |   17 -
 .../sync/repositories/BookmarksRepository.java     |   16 -
 .../ConstrainedServer11Repository.java             |   51 -
 .../sync/repositories/FetchFailedException.java    |   11 -
 .../sync/repositories/HashSetStoreTracker.java     |   61 -
 .../gecko/sync/repositories/HistoryRepository.java |   16 -
 .../sync/repositories/IdentityRecordFactory.java   |   15 -
 .../repositories/InactiveSessionException.java     |   17 -
 .../repositories/InvalidBookmarkTypeException.java |   17 -
 .../sync/repositories/InvalidRequestException.java |   16 -
 .../InvalidSessionTransitionException.java         |   17 -
 .../MultipleRecordsForGuidException.java           |   16 -
 .../repositories/NoContentProviderException.java   |   25 -
 .../sync/repositories/NoGuidForIdException.java    |   16 -
 .../repositories/NoStoreDelegateException.java     |   11 -
 .../sync/repositories/NullCursorException.java     |   17 -
 .../sync/repositories/ParentNotFoundException.java |   17 -
 .../repositories/ProfileDatabaseException.java     |   17 -
 .../gecko/sync/repositories/RecordFactory.java     |   13 -
 .../gecko/sync/repositories/RecordFilter.java      |   11 -
 .../gecko/sync/repositories/Repository.java        |   18 -
 .../gecko/sync/repositories/RepositorySession.java |  384 -----
 .../sync/repositories/RepositorySessionBundle.java |   55 -
 .../sync/repositories/Server11Repository.java      |  144 --
 .../repositories/Server11RepositorySession.java    |  104 --
 .../sync/repositories/StoreFailedException.java    |   11 -
 .../gecko/sync/repositories/StoreTracker.java      |   82 -
 .../StoreTrackingRepositorySession.java            |  102 --
 .../AndroidBrowserBookmarksDataAccessor.java       |  326 ----
 .../android/AndroidBrowserBookmarksRepository.java |   25 -
 .../AndroidBrowserBookmarksRepositorySession.java  | 1107 -------------
 .../android/AndroidBrowserHistoryDataAccessor.java |  188 ---
 .../android/AndroidBrowserHistoryRepository.java   |   25 -
 .../AndroidBrowserHistoryRepositorySession.java    |  208 ---
 .../android/AndroidBrowserRepository.java          |   74 -
 .../AndroidBrowserRepositoryDataAccessor.java      |  232 ---
 .../android/AndroidBrowserRepositorySession.java   |  792 ---------
 .../android/BookmarksDeletionManager.java          |  239 ---
 .../android/BookmarksInsertionManager.java         |  298 ----
 .../android/BrowserContractHelpers.java            |  154 --
 .../android/CachedSQLiteOpenHelper.java            |   62 -
 .../sync/repositories/android/ClientsDatabase.java |  252 ---
 .../android/ClientsDatabaseAccessor.java           |  178 --
 .../repositories/android/FennecTabsRepository.java |  383 -----
 .../android/FormHistoryRepositorySession.java      |  723 --------
 .../android/PasswordsRepositorySession.java        |  725 --------
 .../gecko/sync/repositories/android/RepoUtils.java |  290 ----
 .../sync/repositories/android/VisitsHelper.java    |  130 --
 ...eferrableRepositorySessionCreationDelegate.java |   41 -
 .../DeferredRepositorySessionBeginDelegate.java    |   46 -
 ...erredRepositorySessionFetchRecordsDelegate.java |   56 -
 .../DeferredRepositorySessionFinishDelegate.java   |   51 -
 .../DeferredRepositorySessionStoreDelegate.java    |   57 -
 .../delegates/RepositorySessionBeginDelegate.java  |   23 -
 .../delegates/RepositorySessionCleanDelegate.java  |   12 -
 .../RepositorySessionCreationDelegate.java         |   15 -
 .../RepositorySessionFetchRecordsDelegate.java     |   27 -
 .../delegates/RepositorySessionFinishDelegate.java |   16 -
 .../RepositorySessionGuidsSinceDelegate.java       |   10 -
 .../delegates/RepositorySessionStoreDelegate.java  |   23 -
 .../delegates/RepositorySessionWipeDelegate.java   |   13 -
 .../sync/repositories/domain/BookmarkRecord.java   |  488 ------
 .../repositories/domain/BookmarkRecordFactory.java |   25 -
 .../sync/repositories/domain/ClientRecord.java     |  231 ---
 .../repositories/domain/ClientRecordFactory.java   |   17 -
 .../repositories/domain/FormHistoryRecord.java     |  139 --
 .../sync/repositories/domain/HistoryRecord.java    |  217 ---
 .../repositories/domain/HistoryRecordFactory.java  |   25 -
 .../sync/repositories/domain/PasswordRecord.java   |  205 ---
 .../repositories/domain/PasswordRecordFactory.java |   19 -
 .../gecko/sync/repositories/domain/Record.java     |  308 ----
 .../repositories/domain/RecordParseException.java  |   14 -
 .../gecko/sync/repositories/domain/TabsRecord.java |  153 --
 .../repositories/domain/TabsRecordFactory.java     |   17 -
 .../sync/repositories/domain/VersionConstants.java |   14 -
 .../downloaders/BatchingDownloader.java            |  310 ----
 .../downloaders/BatchingDownloaderDelegate.java    |   91 --
 .../sync/repositories/uploaders/BatchMeta.java     |  165 --
 .../repositories/uploaders/BatchingUploader.java   |  344 ----
 .../repositories/uploaders/BufferSizeTracker.java  |  103 --
 .../repositories/uploaders/MayUploadProvider.java  |    9 -
 .../gecko/sync/repositories/uploaders/Payload.java |   66 -
 .../uploaders/PayloadUploadDelegate.java           |  185 ---
 .../uploaders/RecordUploadRunnable.java            |  176 --
 .../org/mozilla/gecko/sync/setup/Constants.java    |   29 -
 .../gecko/sync/setup/InvalidSyncKeyException.java  |    9 -
 .../gecko/sync/setup/activities/ActivityUtils.java |   34 -
 .../gecko/sync/setup/activities/WebURLFinder.java  |  161 --
 .../sync/stage/AbstractNonRepositorySyncStage.java |   26 -
 .../stage/AbstractSessionManagingSyncStage.java    |   43 -
 .../AndroidBrowserBookmarksServerSyncStage.java    |   80 -
 .../AndroidBrowserHistoryServerSyncStage.java      |   74 -
 .../gecko/sync/stage/CheckPreconditionsStage.java  |   13 -
 .../mozilla/gecko/sync/stage/CompletedStage.java   |   16 -
 .../gecko/sync/stage/EnsureCrypto5KeysStage.java   |  192 ---
 .../sync/stage/FennecTabsServerSyncStage.java      |   40 -
 .../sync/stage/FetchInfoCollectionsStage.java      |   44 -
 .../sync/stage/FetchInfoConfigurationStage.java    |   59 -
 .../gecko/sync/stage/FetchMetaGlobalStage.java     |   79 -
 .../sync/stage/FormHistoryServerSyncStage.java     |   76 -
 .../mozilla/gecko/sync/stage/GlobalSyncStage.java  |   93 --
 .../gecko/sync/stage/NoSuchStageException.java     |   13 -
 .../gecko/sync/stage/PasswordsServerSyncStage.java |   38 -
 .../stage/SafeConstrainedServer11Repository.java   |  110 --
 .../mozilla/gecko/sync/stage/ServerSyncStage.java  |  627 -------
 .../gecko/sync/stage/SyncClientsEngineStage.java   |  691 --------
 .../gecko/sync/stage/UploadMetaGlobalStage.java    |   18 -
 .../synchronizer/ConcurrentRecordConsumer.java     |  122 --
 .../gecko/sync/synchronizer/RecordConsumer.java    |   26 -
 .../gecko/sync/synchronizer/RecordsChannel.java    |  292 ----
 .../sync/synchronizer/RecordsChannelDelegate.java  |   13 -
 .../sync/synchronizer/RecordsConsumerDelegate.java |   23 -
 .../sync/synchronizer/SerialRecordConsumer.java    |  131 --
 .../sync/synchronizer/ServerLocalSynchronizer.java |   18 -
 .../ServerLocalSynchronizerSession.java            |   78 -
 .../synchronizer/SessionNotBegunException.java     |   19 -
 .../gecko/sync/synchronizer/Synchronizer.java      |  105 --
 .../sync/synchronizer/SynchronizerDelegate.java    |   10 -
 .../sync/synchronizer/SynchronizerSession.java     |  425 -----
 .../synchronizer/SynchronizerSessionDelegate.java  |   13 -
 .../gecko/sync/synchronizer/UnbundleError.java     |   19 -
 .../synchronizer/UnexpectedSessionException.java   |   26 -
 .../gecko/sync/telemetry/TelemetryContract.java    |   56 -
 .../gecko/tokenserver/TokenServerClient.java       |  330 ----
 .../tokenserver/TokenServerClientDelegate.java     |   19 -
 .../gecko/tokenserver/TokenServerException.java    |   89 -
 .../gecko/tokenserver/TokenServerToken.java        |   19 -
 .../java/org/mozilla/gecko/util/PRNGFixes.java     |  339 ----
 .../res/drawable-hdpi/fxaccount_sync_error.png     |  Bin 543 -> 0 bytes
 .../main/res/drawable-hdpi/sync_avatar_default.png |  Bin 5146 -> 0 bytes
 .../src/main/res/drawable-hdpi/sync_desktop.png    |  Bin 196 -> 0 bytes
 .../res/drawable-hdpi/sync_desktop_inactive.png    |  Bin 211 -> 0 bytes
 .../src/main/res/drawable-hdpi/sync_mobile.png     |  Bin 163 -> 0 bytes
 .../res/drawable-hdpi/sync_mobile_inactive.png     |  Bin 165 -> 0 bytes
 .../src/main/res/drawable-hdpi/sync_promo.png      |  Bin 994 -> 0 bytes
 .../res/drawable-xhdpi/fxaccount_sync_error.png    |  Bin 716 -> 0 bytes
 .../src/main/res/drawable-xhdpi/sync_desktop.png   |  Bin 229 -> 0 bytes
 .../res/drawable-xhdpi/sync_desktop_inactive.png   |  Bin 244 -> 0 bytes
 .../src/main/res/drawable-xhdpi/sync_mobile.png    |  Bin 210 -> 0 bytes
 .../res/drawable-xhdpi/sync_mobile_inactive.png    |  Bin 215 -> 0 bytes
 .../src/main/res/drawable-xhdpi/sync_promo.png     |  Bin 1236 -> 0 bytes
 .../res/drawable-xxhdpi/fxaccount_sync_error.png   |  Bin 1070 -> 0 bytes
 .../res/drawable-xxhdpi/sync_avatar_default.png    |  Bin 11124 -> 0 bytes
 .../src/main/res/drawable-xxhdpi/sync_desktop.png  |  Bin 339 -> 0 bytes
 .../res/drawable-xxhdpi/sync_desktop_inactive.png  |  Bin 363 -> 0 bytes
 .../src/main/res/drawable-xxhdpi/sync_mobile.png   |  Bin 246 -> 0 bytes
 .../res/drawable-xxhdpi/sync_mobile_inactive.png   |  Bin 249 -> 0 bytes
 .../layout/fxaccount_preference_list_fragment.xml  |   40 -
 .../layout/fxaccount_status_error_preference.xml   |   66 -
 .../src/main/res/layout/homescreen_prompt.xml      |   92 --
 .../src/main/res/layout/simple_helper_ui.xml       |   61 -
 .../src/main/res/menu/fxaccount_status_menu.xml    |    8 -
 .../src/main/res/values-v11/fxaccount_styles.xml   |   21 -
 .../src/main/res/values/fxaccount_colors.xml       |    9 -
 .../src/main/res/values/fxaccount_dimens.xml       |   18 -
 .../src/main/res/values/fxaccount_styles.xml       |   27 -
 .../src/main/res/xml/fxaccount_authenticator.xml   |   11 -
 .../src/main/res/xml/fxaccount_options.xml         |   18 -
 .../main/res/xml/fxaccount_status_prefscreen.xml   |  142 --
 .../src/main/res/xml/fxaccount_syncadapter.xml     |   12 -
 mobile/android/services/strings.xml.in             |   86 -
 modules/libpref/Preferences.cpp                    |    2 -
 modules/libpref/init/all.js                        |    3 -
 netwerk/base/nsFileStreams.cpp                     |    6 +-
 old-configure.in                                   |    7 -
 services/cloudsync/CloudSync.jsm                   |   89 -
 services/cloudsync/CloudSyncAdapters.jsm           |   88 -
 services/cloudsync/CloudSyncBookmarks.jsm          |  795 ---------
 .../cloudsync/CloudSyncBookmarksFolderCache.jsm    |  105 --
 services/cloudsync/CloudSyncEventSource.jsm        |   65 -
 services/cloudsync/CloudSyncLocal.jsm              |   87 -
 services/cloudsync/CloudSyncPlacesWrapper.jsm      |  375 -----
 services/cloudsync/CloudSyncTabs.jsm               |  318 ----
 services/cloudsync/docs/api.md                     |  234 ---
 services/cloudsync/docs/architecture.rst           |   54 -
 services/cloudsync/docs/dataformat.rst             |   77 -
 services/cloudsync/docs/example.rst                |  132 --
 services/cloudsync/docs/index.rst                  |   19 -
 services/cloudsync/moz.build                       |   21 -
 services/cloudsync/tests/mochitest/browser.ini     |    5 -
 .../cloudsync/tests/mochitest/browser_tabEvents.js |   79 -
 .../cloudsync/tests/mochitest/other_window.html    |    7 -
 services/cloudsync/tests/xpcshell/head.js          |   10 -
 .../cloudsync/tests/xpcshell/test_bookmarks.js     |   73 -
 services/cloudsync/tests/xpcshell/test_lazyload.js |   18 -
 services/cloudsync/tests/xpcshell/test_module.js   |   19 -
 services/cloudsync/tests/xpcshell/test_tabs.js     |   29 -
 services/cloudsync/tests/xpcshell/xpcshell.ini     |   10 -
 services/fxaccounts/Credentials.jsm                |  136 --
 services/fxaccounts/FxAccounts.jsm                 | 1725 --------------------
 services/fxaccounts/FxAccountsClient.jsm           |  623 -------
 services/fxaccounts/FxAccountsCommon.js            |  368 -----
 services/fxaccounts/FxAccountsComponents.manifest  |    4 -
 services/fxaccounts/FxAccountsConfig.jsm           |  179 --
 services/fxaccounts/FxAccountsOAuthClient.jsm      |  269 ---
 services/fxaccounts/FxAccountsOAuthGrantClient.jsm |  241 ---
 services/fxaccounts/FxAccountsProfile.jsm          |  191 ---
 services/fxaccounts/FxAccountsProfileClient.jsm    |  260 ---
 services/fxaccounts/FxAccountsPush.js              |  240 ---
 services/fxaccounts/FxAccountsStorage.jsm          |  606 -------
 services/fxaccounts/FxAccountsWebChannel.jsm       |  474 ------
 .../fxaccounts/interfaces/nsIFxAccountsUIGlue.idl  |   15 -
 services/fxaccounts/moz.build                      |   32 -
 services/fxaccounts/tests/mochitest/chrome.ini     |    7 -
 .../tests/mochitest/file_invalidEmailCase.sjs      |   80 -
 .../tests/mochitest/test_invalidEmailCase.html     |  131 --
 services/fxaccounts/tests/xpcshell/head.js         |   18 -
 .../fxaccounts/tests/xpcshell/test_accounts.js     | 1531 -----------------
 .../xpcshell/test_accounts_device_registration.js  |  526 ------
 services/fxaccounts/tests/xpcshell/test_client.js  |  917 -----------
 .../fxaccounts/tests/xpcshell/test_credentials.js  |  110 --
 .../tests/xpcshell/test_loginmgr_storage.js        |  214 ---
 .../fxaccounts/tests/xpcshell/test_oauth_client.js |   55 -
 .../tests/xpcshell/test_oauth_grant_client.js      |  292 ----
 .../xpcshell/test_oauth_grant_client_server.js     |   73 -
 .../tests/xpcshell/test_oauth_token_storage.js     |  165 --
 .../fxaccounts/tests/xpcshell/test_oauth_tokens.js |  251 ---
 services/fxaccounts/tests/xpcshell/test_profile.js |  409 -----
 .../tests/xpcshell/test_profile_client.js          |  411 -----
 .../fxaccounts/tests/xpcshell/test_push_service.js |  236 ---
 .../tests/xpcshell/test_storage_manager.js         |  477 ------
 .../fxaccounts/tests/xpcshell/test_web_channel.js  |  499 ------
 services/fxaccounts/tests/xpcshell/xpcshell.ini    |   23 -
 services/moz.build                                 |    6 -
 services/sync/modules-testing/fxa_utils.js         |   58 -
 services/sync/modules-testing/utils.js             |   85 +-
 services/sync/modules/util.js                      |   40 -
 services/sync/moz.build                            |    1 -
 .../sync/tests/unit/test_browserid_identity.js     |  682 --------
 services/sync/tests/unit/test_errorhandler.js      |    4 -
 .../sync/tests/unit/test_fxa_node_reassignment.js  |  321 ----
 .../sync/tests/unit/test_fxa_service_cluster.js    |   68 -
 services/sync/tests/unit/test_fxa_startOver.js     |   63 -
 services/sync/tests/unit/test_load_modules.js      |    1 -
 services/sync/tests/unit/xpcshell.ini              |    6 -
 .../extensions/tps/resource/auth/fxaccounts.jsm    |   96 --
 services/sync/tps/extensions/tps/resource/tps.jsm  |    4 +-
 testing/profiles/prefs_general.js                  |   15 -
 .../mochitest-browser-chrome-e10s.runtimes.json    |    1 -
 .../mochitest-browser-chrome.runtimes.json         |    1 -
 testing/talos/talos/config.py                      |    2 -
 toolkit/components/passwordmgr/LoginHelper.jsm     |    6 +-
 .../components/passwordmgr/storage-mozStorage.js   |    2 +-
 toolkit/identity/FirefoxAccounts.jsm               |  313 ----
 toolkit/identity/moz.build                         |    4 -
 toolkit/identity/tests/unit/head_identity.js       |    8 -
 .../identity/tests/unit/test_firefox_accounts.js   |  270 ---
 toolkit/identity/tests/unit/xpcshell.ini           |    1 -
 toolkit/modules/AppConstants.jsm                   |    7 -
 toolkit/modules/moz.build                          |    3 +-
 toolkit/xre/nsAppRunner.cpp                        |    2 +-
 .../lib/rules/import-browserjs-globals.js          |    3 +-
 tools/lint/eslint/modules.json                     |   11 +-
 widget/cocoa/nsNativeThemeCocoa.mm                 |    3 +-
 569 files changed, 1179 insertions(+), 62592 deletions(-)

diff --cc application/basilisk/base/content/browser-syncui.js
index 7a80be8,67056e2..d0f4624
--- a/application/basilisk/base/content/browser-syncui.js
+++ b/application/basilisk/base/content/browser-syncui.js
@@@ -94,101 -64,54 +64,51 @@@ var gSyncUI = 
      this.updateUI();
    },
  
+   initNotifications: function SUI_initNotifications() {
+     const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+     let notificationbox = document.createElementNS(XULNS, "notificationbox");
+     notificationbox.id = "sync-notifications";
+     notificationbox.setAttribute("flex", "1");
  
-   // Returns a promise that resolves with true if Sync needs to be configured,
-   // false otherwise.
-   _needsSetup() {
-     // If Sync is configured for FxAccounts then we do that promise-dance.
-     if (this.weaveService.fxAccountsEnabled) {
-       return fxAccounts.getSignedInUser().then(user => {
-         // We want to treat "account needs verification" as "needs setup".
-         return !(user && user.verified);
-       });
-     }
-     // We are using legacy sync - check that.
-     let firstSync = Services.prefs.getCharPref("services.sync.firstSync", "");
+     let bottombox = document.getElementById("browser-bottombox");
+     bottombox.insertBefore(notificationbox, bottombox.firstChild);
  
-     return Promise.resolve(Weave.Status.checkSetup() == Weave.CLIENT_NOT_CONFIGURED ||
-                            firstSync == "notReady");
+     // Force a style flush to ensure that our binding is attached.
+     notificationbox.clientTop;
+ 
+     // notificationbox will listen to observers from now on.
+     Services.obs.removeObserver(this, "weave:notification:added");
    },
  
-   // Returns a promise that resolves with true if the user currently signed in
-   // to Sync needs to be verified, false otherwise.
-   _needsVerification() {
-     // For callers who care about the distinction between "needs setup" and
-     // "needs verification"
-     if (this.weaveService.fxAccountsEnabled) {
-       return fxAccounts.getSignedInUser().then(user => {
-         // If there is no user, they can't be in a "needs verification" state.
-         if (!user) {
-           return false;
-         }
-         return !user.verified;
-       });
-     }
+   _wasDelayed: false,
  
-     // Otherwise we are configured for legacy Sync, which has no verification
-     // concept.
-     return Promise.resolve(false);
+   _needsSetup: function SUI__needsSetup() {
 -    let firstSync = "";
 -    try {
 -      firstSync = Services.prefs.getCharPref("services.sync.firstSync");
 -    } catch (e) { }
++    let firstSync = Services.prefs.getCharPref("services.sync.firstSync", "");
+     return Weave.Status.checkSetup() == Weave.CLIENT_NOT_CONFIGURED ||
+            firstSync == "notReady";
    },
  
-   // Note that we don't show login errors in a notification bar here, but do
-   // still need to track a login-failed state so the "Tools" menu updates
-   // with the correct state.
-   _loginFailed: function () {
-     // If Sync isn't already ready, we don't want to force it to initialize
-     // by referencing Weave.Status - and it isn't going to be accurate before
-     // Sync is ready anyway.
-     if (!this.weaveService.ready) {
-       this.log.debug("_loginFailed has sync not ready, so returning false");
-       return false;
-     }
-     this.log.debug("_loginFailed has sync state=${sync}",
-                    { sync: Weave.Status.login});
-     return Weave.Status.login == Weave.LOGIN_FAILED_LOGIN_REJECTED;
-   },
+   updateUI: function SUI_updateUI() {
+     let needsSetup = this._needsSetup();
+     document.getElementById("sync-setup-state").hidden = !needsSetup;
+     document.getElementById("sync-syncnow-state").hidden = needsSetup;
  
-   // Kick off an update of the UI - does *not* return a promise.
-   updateUI() {
-     this._promiseUpdateUI().catch(err => {
-       this.log.error("updateUI failed", err);
-     })
-   },
+     if (!gBrowser)
+       return;
  
-   // Updates the UI - returns a promise.
-   _promiseUpdateUI() {
-     return this._needsSetup().then(needsSetup => {
-       if (!gBrowser)
-         return Promise.resolve();
- 
-       let loginFailed = this._loginFailed();
- 
-       // Start off with a clean slate
-       document.getElementById("sync-reauth-state").hidden = true;
-       document.getElementById("sync-setup-state").hidden = true;
-       document.getElementById("sync-syncnow-state").hidden = true;
- 
- #ifdef MOZ_SERVICES_CLOUDSYNC
-       if (CloudSync && CloudSync.ready && CloudSync().adapters.count) {
-         document.getElementById("sync-syncnow-state").hidden = false;
-       } else if (loginFailed) {
- #else
-       if (loginFailed) {
- #endif
-         // unhiding this element makes the menubar show the login failure state.
-         document.getElementById("sync-reauth-state").hidden = false;
-       } else if (needsSetup) {
-         document.getElementById("sync-setup-state").hidden = false;
-       } else {
-         document.getElementById("sync-syncnow-state").hidden = false;
-       }
+     let button = document.getElementById("sync-button");
+     if (!button)
+       return;
  
-       return this._updateSyncButtonsTooltip();
-     });
+     button.removeAttribute("status");
+     this._updateLastSyncTime();
+     if (needsSetup)
+       button.removeAttribute("tooltiptext");
    },
  
+ 
    // Functions called by observers
-   onActivityStart() {
+   onActivityStart: function SUI_onActivityStart() {
      if (!gBrowser)
        return;
  
@@@ -329,119 -261,63 +258,62 @@@
                          "syncAddDevice", "centerscreen,chrome,resizable=no");
    },
  
-   openPrefs: function (entryPoint) {
-     openPreferences("paneSync", { urlParams: { entrypoint: entryPoint } });
+   openQuotaDialog: function SUI_openQuotaDialog() {
+     let win = Services.wm.getMostRecentWindow("Sync:ViewQuota");
+     if (win)
+       win.focus();
+     else
+       Services.ww.activeWindow.openDialog(
+         "chrome://browser/content/sync/quota.xul", "",
+         "centerscreen,chrome,dialog,modal");
    },
  
-   openSignInAgainPage: function (entryPoint = "syncbutton") {
-     gFxAccounts.openSignInAgainPage(entryPoint);
+   openPrefs: function SUI_openPrefs() {
+     openPreferences("paneSync");
    },
  
-   /* After Sync is initialized we perform a once-only check for the sync
-      button being in "customize purgatory" and if so, move it to the panel.
-      This is done primarily for profiles created before SyncedTabs landed,
-      where the button defaulted to being in that purgatory.
-      We use a preference to ensure we only do it once, so people can still
-      customize it away and have it stick.
-   */
-   maybeMoveSyncedTabsButton() {
-     const prefName = "browser.migrated-sync-button";
-     let migrated = Services.prefs.getBoolPref(prefName, false);
-     if (migrated) {
 -
+   // Helpers
+   _updateLastSyncTime: function SUI__updateLastSyncTime() {
+     if (!gBrowser)
        return;
-     }
-     if (!CustomizableUI.getPlacementOfWidget("sync-button")) {
-       CustomizableUI.addWidgetToArea("sync-button", CustomizableUI.AREA_PANEL);
-     }
-     Services.prefs.setBoolPref(prefName, true);
-   },
  
-   /* Update the tooltip for the sync-status broadcaster (which will update the
-      Sync Toolbar button and the Sync spinner in the FxA hamburger area.)
-      If Sync is configured, the tooltip is when the last sync occurred,
-      otherwise the tooltip reflects the fact that Sync needs to be
-      (re-)configured.
-   */
-   _updateSyncButtonsTooltip: Task.async(function* () {
-     if (!gBrowser)
+     let syncButton = document.getElementById("sync-button");
+     if (!syncButton)
        return;
  
-     let email;
+     let lastSync;
      try {
-       email = Services.prefs.getCharPref("services.sync.username");
-     } catch (ex) {}
- 
-     let needsSetup = yield this._needsSetup();
-     let needsVerification = yield this._needsVerification();
-     let loginFailed = this._loginFailed();
-     // This is a little messy as the Sync buttons are 1/2 Sync related and
-     // 1/2 FxA related - so for some strings we use Sync strings, but for
-     // others we reach into gFxAccounts for strings.
-     let tooltiptext;
-     if (needsVerification) {
-       // "needs verification"
-       tooltiptext = gFxAccounts.strings.formatStringFromName("verifyDescription", [email], 1);
-     } else if (needsSetup) {
-       // "needs setup".
-       tooltiptext = this._stringBundle.GetStringFromName("signInToSync.description");
-     } else if (loginFailed) {
-       // "need to reconnect/re-enter your password"
-       tooltiptext = gFxAccounts.strings.formatStringFromName("reconnectDescription", [email], 1);
-     } else {
-       // Sync appears configured - format the "last synced at" time.
-       try {
-         let lastSync = new Date(Services.prefs.getCharPref("services.sync.lastSync"));
-         tooltiptext = this.formatLastSyncDate(lastSync);
-       }
-       catch (e) {
-         // pref doesn't exist (which will be the case until we've seen the
-         // first successful sync) or is invalid (which should be impossible!)
-         // Just leave tooltiptext as the empty string in these cases, which
-         // will cause the tooltip to be removed below.
-       }
+       lastSync = Services.prefs.getCharPref("services.sync.lastSync");
      }
- 
-     // We've done all our promise-y work and ready to update the UI - make
-     // sure it hasn't been torn down since we started.
-     if (!gBrowser)
+     catch (e) { };
+     if (!lastSync || this._needsSetup()) {
+       syncButton.removeAttribute("tooltiptext");
        return;
- 
-     let broadcaster = document.getElementById("sync-status");
-     if (broadcaster) {
-       if (tooltiptext) {
-         broadcaster.setAttribute("tooltiptext", tooltiptext);
-       } else {
-         broadcaster.removeAttribute("tooltiptext");
-       }
-     }
-   }),
- 
-   formatLastSyncDate: function(date) {
-     let dateFormat;
-     let sixDaysAgo = (() => {
-       let date = new Date();
-       date.setDate(date.getDate() - 6);
-       date.setHours(0, 0, 0, 0);
-       return date;
-     })();
-     // It may be confusing for the user to see "Last Sync: Monday" when the last sync was a indeed a Monday but 3 weeks ago
-     if (date < sixDaysAgo) {
-       dateFormat = {month: 'long', day: 'numeric'};
-     } else {
-       dateFormat = {weekday: 'long', hour: 'numeric', minute: 'numeric'};
      }
-     let lastSyncDateString = date.toLocaleDateString(undefined, dateFormat);
-     return this._stringBundle.formatStringFromName("lastSync2.label", [lastSyncDateString], 1);
+ 
+     // Show the day-of-week and time (HH:MM) of last sync
+     let lastSyncDate = new Date(lastSync).toLocaleFormat("%a %H:%M");
+     let lastSyncLabel =
+       this._stringBundle.formatStringFromName("lastSync2.label", [lastSyncDate], 1);
+ 
+     syncButton.setAttribute("tooltiptext", lastSyncLabel);
    },
  
-   onClientsSynced: function() {
-     let broadcaster = document.getElementById("sync-syncnow-state");
-     if (broadcaster) {
-       if (Weave.Service.clientsEngine.stats.numClients > 1) {
-         broadcaster.setAttribute("devices-status", "multi");
-       } else {
-         broadcaster.setAttribute("devices-status", "single");
-       }
+   clearError: function SUI_clearError(errorString) {
+     Weave.Notifications.removeAll(errorString);
+     this.updateUI();
+   },
+ 
+   onSyncFinish: function SUI_onSyncFinish() {
+     let title = this._stringBundle.GetStringFromName("error.sync.title");
+ 
+     // Clear out sync failures on a successful sync
+     this.clearError(title);
+ 
+     if (this._wasDelayed && Weave.Status.sync != Weave.NO_SYNC_NODE_FOUND) {
+       title = this._stringBundle.GetStringFromName("error.sync.no_node_found.title");
+       this.clearError(title);
+       this._wasDelayed = false;
      }
    },
  
diff --cc application/basilisk/components/sync/aboutSyncTabs.js
index 69ec71e,410494b..4808c05
--- a/application/basilisk/components/sync/aboutSyncTabs.js
+++ b/application/basilisk/components/sync/aboutSyncTabs.js
@@@ -303,10 -251,16 +251,10 @@@ var RemoteTabViewer = 
      }
    },
  
-   _refetchTabs: function (force) {
+   _refetchTabs: function(force) {
      if (!force) {
        // Don't bother refetching tabs if we already did so recently
 -      let lastFetch = 0;
 -      try {
 -        lastFetch = Services.prefs.getIntPref("services.sync.lastTabFetch");
 -      }
 -      catch (e) {
 -        /* Just use the default value of 0 */
 -      }
 +      lastFetch = Services.prefs.getIntPref("services.sync.lastTabFetch", 0);
  
        let now = Math.floor(Date.now() / 1000);
        if (now - lastFetch < 30) {

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/pale-moon.git


More information about the x2go-commits mailing list