1// Copyright (c) 2012 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#include "chrome/browser/ui/browser_view_prefs.h"
6
7#include "base/prefs/pref_registry_simple.h"
8#include "base/prefs/pref_service.h"
9#include "chrome/common/pref_names.h"
10#include "components/pref_registry/pref_registry_syncable.h"
11
12#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
13#include "ui/base/x/x11_util.h"
14#endif
15
16namespace {
17
18// How long do we wait before we consider a window hung (in ms).
19const int kDefaultPluginMessageResponseTimeout = 25000;
20
21// How frequently we check for hung plugin windows.
22const int kDefaultHungPluginDetectFrequency = 2000;
23
24// DEPRECATED: this is replaced by kTabStripStackedLayout and exists for
25// backwards compatibility.
26// Old values: 0 = SHRINK (default), 1 = STACKED.
27const char kTabStripLayoutType[] = "tab_strip_layout_type";
28
29}  // namespace
30
31namespace chrome {
32
33void RegisterBrowserViewLocalPrefs(PrefRegistrySimple* registry) {
34  registry->RegisterIntegerPref(prefs::kPluginMessageResponseTimeout,
35                                kDefaultPluginMessageResponseTimeout);
36  registry->RegisterIntegerPref(prefs::kHungPluginDetectFrequency,
37                                kDefaultHungPluginDetectFrequency);
38  registry->RegisterIntegerPref(kTabStripLayoutType, 0);
39  registry->RegisterBooleanPref(prefs::kTabStripStackedLayout, false);
40}
41
42void RegisterBrowserViewProfilePrefs(
43    user_prefs::PrefRegistrySyncable* registry) {
44  bool custom_frame_default = false;
45#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
46  custom_frame_default = ui::GetCustomFramePrefDefault();
47#endif
48
49  registry->RegisterBooleanPref(
50      prefs::kUseCustomChromeFrame,
51      custom_frame_default,
52      user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
53}
54
55void MigrateBrowserTabStripPrefs(PrefService* prefs) {
56  if (prefs->HasPrefPath(kTabStripLayoutType)) {
57    prefs->SetBoolean(prefs::kTabStripStackedLayout,
58                      prefs->GetInteger(kTabStripLayoutType) != 0);
59    prefs->ClearPref(kTabStripLayoutType);
60  }
61}
62
63}  // namespace chrome
64