15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef CHROME_BROWSER_METRICS_METRICS_REPORTING_STATE_H_ 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define CHROME_BROWSER_METRICS_METRICS_REPORTING_STATE_H_ 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/callback.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccitypedef base::Callback<void(bool)> OnMetricsReportingCallbackType; 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Initiates a change to metrics reporting state to the new value of |enabled|. 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Starts or stops the metrics service based on the new state and then runs 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// |callback_fn| (which can be null) with the updated state (as the operation 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// may fail). On platforms other than CrOS and Android, also updates the 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// underlying pref. 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// TODO(gayane): Support setting the pref on all platforms. 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid InitiateMetricsReportingChange( 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool enabled, 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const OnMetricsReportingCallbackType& callback_fn); 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Returns whether MetricsReporting can be modified by the user (except CrOS and 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Android). 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccibool IsMetricsReportingUserChangable(); 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif // CHROME_BROWSER_METRICS_METRICS_REPORTING_STATE_H_ 27