blob: 86b820c21943d0b89ffaea49d670798ecf1c84c2 (
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
|
// Copyright (c) 2012 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_UI_WEBSITE_SETTINGS_UI_H_
#define CHROME_BROWSER_UI_WEBSITE_SETTINGS_UI_H_
#pragma once
#include <string>
#include <vector>
#include "chrome/browser/website_settings.h"
#include "chrome/common/content_settings.h"
#include "chrome/common/content_settings_types.h"
#include "ui/gfx/native_widget_types.h"
class CookieInfoList;
class GURL;
class PermissionInfoList;
class Profile;
class TabContentsWrapper;
class WebsiteSettings;
namespace content {
struct SSLStatus;
}
// The class |WebsiteSettingsUI| specifies the platform independent
// interface of the website settings UI. The website settings UI displays
// information and controls for site specific data (local stored objects like
// cookies), site specific permissions (location, popup, plugin, etc.
// permissions) and site specific information (identity, connection status,
// etc.).
class WebsiteSettingsUI {
public:
// |CookieInfo| contains information about the cookies from a specific source.
// A source can for example be a specific origin or an entire domain.
struct CookieInfo {
CookieInfo();
// String describing the cookie source.
std::string cookie_source;
// The number of allowed cookies.
int allowed;
// The number of blocked cookies.
int blocked;
};
// |PermissionInfo| contains information about a single permission |type| for
// the current website.
struct PermissionInfo {
PermissionInfo();
// Site permission |type|.
ContentSettingsType type;
// The current value for the permission |type| (e.g. ALLOW or BLOCK).
ContentSetting setting;
// The global default settings for this permission |type|.
ContentSetting default_setting;
};
// |IdentityInfo| contains information about the site's identity and
// connection.
struct IdentityInfo {
IdentityInfo();
// The site's identity.
std::string site_identity;
// Status of the site's identity.
WebsiteSettings::SiteIdentityStatus identity_status;
// Textual description of the site's identity status that is displayed to
// the user.
std::string identity_status_description;
// Status of the site's connection.
WebsiteSettings::SiteConnectionStatus connection_status;
// Textual description of the site's connection status that is displayed to
// the user.
std::string connection_status_description;
};
virtual ~WebsiteSettingsUI();
// Sets the |presenter| of the WebsiteSettingsUI that is responsible for
// setting the data to display in the UI.
virtual void SetPresenter(WebsiteSettings* presenter) = 0;
// Sets cookie information.
virtual void SetCookieInfo(const CookieInfoList& cookie_info_list) = 0;
// Sets permision information.
virtual void SetPermissionInfo(
const PermissionInfoList& permission_info_list) = 0;
// Sets site identity information.
virtual void SetIdentityInfo(const IdentityInfo& identity_info) = 0;
};
class CookieInfoList : public std::vector<WebsiteSettingsUI::CookieInfo> {
};
class PermissionInfoList
: public std::vector<WebsiteSettingsUI::PermissionInfo> {
};
#endif // CHROME_BROWSER_UI_WEBSITE_SETTINGS_UI_H_
|