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
|
<!-- ##### SECTION Title ##### -->
EphyPermissionManager
<!-- ##### SECTION Short_Description ##### -->
Sets webpages' cookie, image and popup permissions.
<!-- ##### SECTION Long_Description ##### -->
<para>
The #EphyPermissionManager keeps a list of websites and their permissions. For
example, the user may want a certain website to display images but block
cookies and popup windows; this could correspond to three entries in the
#EphyPermissionManager.
</para>
<para>
Use ephy_permission_manager_add() to set permissions for a website,
ephy_permission_manager_remove() to remove the permissions, and
ephy_permission_manager_test() to test them. Note that
ephy_permission_manager_test() may return %EPHY_PERMISSION_DEFAULT, which
means the caller might need to find the default permission some other way.
</para>
<para>
The #EphyPermissionManager stores a list of site-specific permissions, but not
defaults. For popups, the default permission is determined by the GConf key
/apps/epiphany/web/allow_popups, which in turn determines Mozilla's
dom.disable_open_during_load preference. For cookies, the GConf key
/apps/epiphany/web/cookie_accept determines Mozilla's
network.cookie.cookieBehavior preference. For images, the default is determined
by Mozilla's network.image.imageBehavior preference.
</para>
<para>
The predefined permission types are EPT_COOKIE ("cookie"), EPT_IMAGE ("image")
and EPT_POPUP ("popup"). You can also make up your own type string.
</para>
<para>
Though the word "host" is used in many function descriptions, Mozilla
does not act as one would expect. Always pass a URL to any functions which
need have a "host" parameter. However, the "host" in an
#EphyPermissionInfo is a simple DNS hostname.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### STRUCT EphyPermissionInfo ##### -->
<para>
Details a specific permission of a specific website.
</para>
@host: The hostname of the website to which this permission applies.
@qtype:
@permission: An #EphyPermission (either allow or deny).
<!-- ##### ENUM EphyPermission ##### -->
<para>
Determines whether the website is allowed or denied access.
</para>
@EPHY_PERMISSION_ALLOWED:
The website is unconditionally allowed to perform the desired action.
@EPHY_PERMISSION_DENIED:
The website is unconditionally denied to perform the desired action.
@EPHY_PERMISSION_DEFAULT:
The user has not set a preference for this particular website; the
caller should therefore fall back to default settings.
<!-- ##### FUNCTION ephy_permission_info_free ##### -->
<para>
</para>
@info:
<!-- ##### FUNCTION ephy_permission_manager_add ##### -->
<para>
</para>
@manager:
@host:
@type:
@permission:
<!-- ##### FUNCTION ephy_permission_manager_remove ##### -->
<para>
</para>
@manager:
@host:
@type:
<!-- ##### FUNCTION ephy_permission_manager_clear ##### -->
<para>
</para>
@manager:
<!-- ##### FUNCTION ephy_permission_manager_test ##### -->
<para>
</para>
@manager:
@host:
@type:
@Returns:
<!-- ##### FUNCTION ephy_permission_manager_list ##### -->
<para>
</para>
@manager:
@type:
@Returns:
|