blob: f02aba519b72aac37ebeddde272e753e7749f01d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
|
// Copyright (c) 2011 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_WEBUI_OPTIONS_ADVANCED_OPTIONS_HANDLER_H_
#define CHROME_BROWSER_WEBUI_OPTIONS_ADVANCED_OPTIONS_HANDLER_H_
#pragma once
#include "chrome/browser/dom_ui/options/options_ui.h"
#include "chrome/browser/prefs/pref_member.h"
#include "chrome/browser/prefs/pref_set_observer.h"
#include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h"
#include "chrome/browser/remoting/remoting_options_handler.h"
#include "chrome/browser/ui/shell_dialogs.h"
class OptionsManagedBannerHandler;
// Chrome advanced options page UI handler.
class AdvancedOptionsHandler
: public OptionsPageUIHandler,
public SelectFileDialog::Listener,
public CloudPrintSetupFlow::Delegate {
public:
AdvancedOptionsHandler();
virtual ~AdvancedOptionsHandler();
// OptionsUIHandler implementation.
virtual void GetLocalizedValues(DictionaryValue* localized_strings);
virtual void Initialize();
// WebUIMessageHandler implementation.
virtual WebUIMessageHandler* Attach(WebUI* web_ui);
virtual void RegisterMessages();
// NotificationObserver implementation.
virtual void Observe(NotificationType type,
const NotificationSource& source,
const NotificationDetails& details);
// SelectFileDialog::Listener implementation
virtual void FileSelected(const FilePath& path, int index, void* params);
// CloudPrintSetupFlow::Delegate implementation.
virtual void OnDialogClosed();
private:
// Callback for the "selectDownloadLocation" message. This will prompt
// the user for a destination folder using platform-specific APIs.
void HandleSelectDownloadLocation(const ListValue* args);
// Callback for the "promptForDownloadAction" message. This will set
// the ask for save location pref accordingly.
void HandlePromptForDownload(const ListValue* args);
// Callback for the "autoOpenFileTypesResetToDefault" message. This will
// remove all auto-open file-type settings.
void HandleAutoOpenButton(const ListValue* args);
// Callback for the "metricsReportingCheckboxAction" message. This is called
// if the user toggles the metrics reporting checkbox.
void HandleMetricsReportingCheckbox(const ListValue* args);
// Callback for the "defaultFontSizeAction" message. This is called if the
// user changes the default font size. |args| is an array that contains
// one item, the font size as a numeric value.
void HandleDefaultFontSize(const ListValue* args);
#if defined(OS_WIN)
// Callback for the "Check SSL Revocation" checkbox. This is needed so we
// can support manual handling on Windows.
void HandleCheckRevocationCheckbox(const ListValue* args);
// Callback for the "Use SSL3" checkbox. This is needed so we can support
// manual handling on Windows.
void HandleUseSSL3Checkbox(const ListValue* args);
// Callback for the "Use TLS1" checkbox. This is needed so we can support
// manual handling on Windows.
void HandleUseTLS1Checkbox(const ListValue* args);
// Callback for the "Show Gears Settings" button.
void HandleShowGearsSettings(const ListValue* args);
#endif
#if !defined(OS_CHROMEOS)
// Callback for the "showNetworkProxySettings" message. This will invoke
// an appropriate dialog for configuring proxy settings.
void ShowNetworkProxySettings(const ListValue* args);
#endif
#if !defined(USE_NSS)
// Callback for the "showManageSSLCertificates" message. This will invoke
// an appropriate certificate management action based on the platform.
void ShowManageSSLCertificates(const ListValue* args);
#endif
#if !defined(OS_CHROMEOS)
// Callback for the Sign in to Cloud Print button. This will start
// the authentication process.
void ShowCloudPrintSetupDialog(const ListValue* args);
// Callback for the Disable Cloud Print button. This will sign out
// of cloud print.
void HandleDisableCloudPrintProxy(const ListValue* args);
// Callback for the Cloud Print manage button. This will open a new
// tab pointed at the management URL.
void ShowCloudPrintManagePage(const ListValue* args);
// Pings the service to send us it's current notion of the enabled state.
void RefreshCloudPrintStatusFromService();
// Setup the enabled or disabled state of the cloud print proxy
// management UI.
void SetupCloudPrintProxySection();
// Remove cloud print proxy section if cloud print proxy management UI is
// disabled.
void RemoveCloudPrintProxySection();
#endif
#if defined(ENABLE_REMOTING) && !defined(OS_CHROMEOS)
// Removes remoting section. Called if remoting is not enabled.
void RemoveRemotingSection();
// Callback for Setup Remoting button.
void ShowRemotingSetupDialog(const ListValue* args);
// Disable Remoting.
void DisableRemoting(const ListValue* args);
#endif
// Setup the checked state for the metrics reporting checkbox.
void SetupMetricsReportingCheckbox();
// Setup the visibility for the metrics reporting setting.
void SetupMetricsReportingSettingVisibility();
void SetupFontSizeLabel();
// Setup the download path based on user preferences.
void SetupDownloadLocationPath();
// Setup the pref whether to prompt for download location every time.
void SetupPromptForDownload();
// Setup the enabled state of the reset button.
void SetupAutoOpenFileTypesDisabledAttribute();
// Setup the proxy settings section UI.
void SetupProxySettingsSection();
#if defined(OS_WIN)
// Setup the checked state for SSL related checkboxes.
void SetupSSLConfigSettings();
#endif
scoped_refptr<SelectFileDialog> select_folder_dialog_;
#if !defined(OS_CHROMEOS)
BooleanPrefMember enable_metrics_recording_;
StringPrefMember cloud_print_proxy_email_;
BooleanPrefMember cloud_print_proxy_enabled_;
bool cloud_print_proxy_ui_enabled_;
#endif
#if defined(ENABLE_REMOTING) && !defined(OS_CHROMEOS)
remoting::RemotingOptionsHandler remoting_options_handler_;
#endif
FilePathPrefMember default_download_location_;
BooleanPrefMember ask_for_save_location_;
StringPrefMember auto_open_files_;
IntegerPrefMember default_font_size_;
IntegerPrefMember default_fixed_font_size_;
scoped_ptr<PrefSetObserver> proxy_prefs_;
scoped_ptr<OptionsManagedBannerHandler> banner_handler_;
DISALLOW_COPY_AND_ASSIGN(AdvancedOptionsHandler);
};
#endif // CHROME_BROWSER_WEBUI_OPTIONS_ADVANCED_OPTIONS_HANDLER_H_
|