1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_ 6#define CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_ 7 8#include "chrome/common/chrome_version_info.h" 9 10namespace extensions { 11 12// Gets the current channel as seen by the Feature system. 13chrome::VersionInfo::Channel GetCurrentChannel(); 14 15// Sets the current channel as seen by the Feature system. In the browser 16// process this should be chrome::VersionInfo::GetChannel(), and in the 17// renderer this will need to come from an IPC. 18void SetCurrentChannel(chrome::VersionInfo::Channel channel); 19 20// Gets the default channel as seen by the Feature system. 21chrome::VersionInfo::Channel GetDefaultChannel(); 22 23// Scoped channel setter. Use for tests. 24class ScopedCurrentChannel { 25 public: 26 explicit ScopedCurrentChannel(chrome::VersionInfo::Channel channel) 27 : original_channel_(chrome::VersionInfo::CHANNEL_UNKNOWN) { 28 original_channel_ = GetCurrentChannel(); 29 SetCurrentChannel(channel); 30 } 31 32 ~ScopedCurrentChannel() { 33 SetCurrentChannel(original_channel_); 34 } 35 36 private: 37 chrome::VersionInfo::Channel original_channel_; 38}; 39 40} // namespace extensions 41 42#endif // CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_ 43