blob: dcd3772a692ecced3a645252b647a5ed3c6e22bf [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_UTILS_H_
#define COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_UTILS_H_
#include "components/sync/base/model_type.h"
namespace syncer {
class SyncService;
// Indicates whether uploading of data to Google is enabled, i.e. the user has
// given consent to upload this data. Since this enum is used for logging
// histograms, entries must not be removed or reordered.
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.sync
enum class UploadState {
// Syncing is enabled in principle, but the sync service is not actually
// active yet. Either it's still initializing (in which case we e.g. don't
// know about any auth errors yet), or it's in a transient auth error state.
INITIALIZING,
// We are not syncing to Google, and the caller should assume that we do not
// have consent to do so. This can have a number of reasons, e.g.: sync as a
// whole is disabled, or the given model type is disabled, or we're in
// "local sync" mode, or this data type is encrypted with a custom passphrase
// (in which case we're technically still uploading, but Google can't inspect
// the data), or we're in a persistent auth error state. As one special case
// of an auth error, sync may be "paused" because the user signed out of the
// content area.
NOT_ACTIVE,
// We're actively syncing data to Google servers, in a form that is readable
// by Google.
ACTIVE,
// Used when logging histograms. Must have this exact name.
kMaxValue = ACTIVE
};
// Returns whether |type| is being uploaded to Google. This is useful for
// features that depend on user consent for uploading data (e.g. history) to
// Google.
UploadState GetUploadToGoogleState(const SyncService* sync_service,
ModelType type);
// NOTE: Used in a UMA histogram, do not reorder etc.
enum SyncEventCodes {
// Events starting the sync service.
// START_FROM_NTP = 1,
// START_FROM_WRENCH = 2,
// START_FROM_OPTIONS = 3,
// START_FROM_BOOKMARK_MANAGER = 4,
// START_FROM_PROFILE_MENU = 5,
// START_FROM_URL = 6,
// Events regarding cancellation of the signon process of sync.
// CANCEL_FROM_SIGNON_WITHOUT_AUTH = 10,
// CANCEL_DURING_SIGNON = 11,
CANCEL_DURING_CONFIGURE = 12, // Cancelled before choosing data types and
// clicking OK.
// Events resulting in the stoppage of sync service.
STOP_FROM_OPTIONS = 20, // Sync was stopped from Wrench->Options.
// STOP_FROM_ADVANCED_DIALOG = 21,
MAX_SYNC_EVENT_CODE = 22
};
void RecordSyncEvent(SyncEventCodes code);
} // namespace syncer
#endif // COMPONENTS_SYNC_DRIVER_SYNC_SERVICE_UTILS_H_