blob: 0b990ec45184a4faf7dcf71f0136344eb1a01874 [file] [log] [blame]
// Copyright 2019 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 ANDROID_WEBVIEW_BROWSER_SCOPED_ADD_FEATURE_FLAGS_H_
#define ANDROID_WEBVIEW_BROWSER_SCOPED_ADD_FEATURE_FLAGS_H_
#include <vector>
#include "base/feature_list.h"
#include "base/strings/string_piece.h"
namespace base {
class CommandLine;
}
namespace android_webview {
class ScopedAddFeatureFlags {
public:
explicit ScopedAddFeatureFlags(base::CommandLine* cl);
~ScopedAddFeatureFlags();
// Any existing (user set) enable/disable takes precedence.
void EnableIfNotSet(const base::Feature& feature);
void DisableIfNotSet(const base::Feature& feature);
private:
void AddFeatureIfNotSet(const base::Feature& feature, bool enable);
base::CommandLine* const cl_;
std::vector<base::StringPiece> enabled_features_;
std::vector<base::StringPiece> disabled_features_;
DISALLOW_COPY_AND_ASSIGN(ScopedAddFeatureFlags);
};
} // namespace android_webview
#endif // ANDROID_WEBVIEW_BROWSER_SCOPED_ADD_FEATURE_FLAGS_H_