| Index: chrome/browser/prefs/chrome_command_line_pref_store.h
|
| diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.h b/chrome/browser/prefs/chrome_command_line_pref_store.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a37280f137deb196b55f3cc8fa32c1c98fc1b5b9
|
| --- /dev/null
|
| +++ b/chrome/browser/prefs/chrome_command_line_pref_store.h
|
| @@ -0,0 +1,53 @@
|
| +// Copyright (c) 2016 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 CHROME_BROWSER_PREFS_CHROME_COMMAND_LINE_PREF_STORE_H_
|
| +#define CHROME_BROWSER_PREFS_CHROME_COMMAND_LINE_PREF_STORE_H_
|
| +
|
| +#include "base/command_line.h"
|
| +#include "base/macros.h"
|
| +#include "base/values.h"
|
| +#include "components/prefs/command_line_pref_store.h"
|
| +
|
| +// This PrefStore keeps track of preferences set by command-line switches,
|
| +// such as proxy settings.
|
| +class ChromeCommandLinePrefStore : public CommandLinePrefStore {
|
| + public:
|
| + explicit ChromeCommandLinePrefStore(const base::CommandLine* command_line);
|
| +
|
| + protected:
|
| + ~ChromeCommandLinePrefStore() override;
|
| +
|
| + // Logs a message and returns false if the proxy switches are
|
| + // self-contradictory. Protected so it can be used in unit testing.
|
| + // TODO(bauerb): make this method public and remove the subclass, which calls
|
| + // this method, from the test.
|
| + bool ValidateProxySwitches();
|
| +
|
| + private:
|
| + friend class TestCommandLinePrefStore;
|
| +
|
| + // Using the string and boolean maps, apply command-line switches to their
|
| + // corresponding preferences in this pref store.
|
| + void ApplySimpleSwitches();
|
| +
|
| + // Determines the proxy mode preference from the given proxy switches.
|
| + void ApplyProxyMode();
|
| +
|
| + // Apply the SSL/TLS preferences from the given switches.
|
| + void ApplySSLSwitches();
|
| +
|
| + // Determines whether the background mode is force-disabled.
|
| + void ApplyBackgroundModeSwitches();
|
| +
|
| + // Mappings of command line switches to prefs.
|
| + static const BooleanSwitchToPreferenceMapEntry boolean_switch_map_[];
|
| + static const SwitchToPreferenceMapEntry string_switch_map_[];
|
| + static const SwitchToPreferenceMapEntry path_switch_map_[];
|
| + static const SwitchToPreferenceMapEntry integer_switch_map_[];
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ChromeCommandLinePrefStore);
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_PREFS_CHROME_COMMAND_LINE_PREF_STORE_H_
|
|
|