OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.preferences.website; | 5 package org.chromium.chrome.browser.preferences.website; |
6 | 6 |
7 import android.content.Context; | 7 import android.content.Context; |
8 import android.content.DialogInterface; | 8 import android.content.DialogInterface; |
9 import android.content.res.Resources; | 9 import android.content.res.Resources; |
10 import android.graphics.PorterDuff; | 10 import android.graphics.PorterDuff; |
(...skipping 10 matching lines...) Expand all Loading... |
21 import android.text.format.Formatter; | 21 import android.text.format.Formatter; |
22 import android.widget.ListAdapter; | 22 import android.widget.ListAdapter; |
23 import android.widget.ListView; | 23 import android.widget.ListView; |
24 | 24 |
25 import org.chromium.base.ApiCompatibilityUtils; | 25 import org.chromium.base.ApiCompatibilityUtils; |
26 import org.chromium.chrome.R; | 26 import org.chromium.chrome.R; |
27 import org.chromium.chrome.browser.ContentSettingsType; | 27 import org.chromium.chrome.browser.ContentSettingsType; |
28 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; | 28 import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; |
29 import org.chromium.chrome.browser.search_engines.TemplateUrlService; | 29 import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
30 import org.chromium.chrome.browser.util.UrlUtilities; | 30 import org.chromium.chrome.browser.util.UrlUtilities; |
| 31 import org.chromium.content_public.browser.WebContents; |
31 | 32 |
32 import java.net.URI; | 33 import java.net.URI; |
33 import java.util.ArrayList; | 34 import java.util.ArrayList; |
34 import java.util.List; | 35 import java.util.List; |
35 import java.util.Map; | 36 import java.util.Map; |
36 import java.util.Set; | 37 import java.util.Set; |
37 | 38 |
38 /** | 39 /** |
39 * Shows the permissions and other settings for a particular website. | 40 * Shows the permissions and other settings for a particular website. |
40 */ | 41 */ |
41 public class SingleWebsitePreferences extends PreferenceFragment | 42 public class SingleWebsitePreferences extends PreferenceFragment |
42 implements DialogInterface.OnClickListener, OnPreferenceChangeListener, | 43 implements DialogInterface.OnClickListener, OnPreferenceChangeListener, |
43 OnPreferenceClickListener { | 44 OnPreferenceClickListener { |
44 // SingleWebsitePreferences expects either EXTRA_SITE (a Website) or | 45 // SingleWebsitePreferences expects either EXTRA_SITE (a Website) or |
45 // EXTRA_ORIGIN (a WebsiteAddress) to be present (but not both). If | 46 // EXTRA_ORIGIN (a WebsiteAddress) to be present (but not both). If |
46 // EXTRA_SITE is present, the fragment will display the permissions in that | 47 // EXTRA_SITE is present, the fragment will display the permissions in that |
47 // Website object. If EXTRA_ORIGIN is present, the fragment will find all | 48 // Website object. If EXTRA_ORIGIN is present, the fragment will find all |
48 // permissions for that website address and display those. If EXTRA_LOCATION | 49 // permissions for that website address and display those. If EXTRA_LOCATION |
49 // is present, the fragment will add a Location toggle, even if the site | 50 // is present, the fragment will add a Location toggle, even if the site |
50 // specifies no Location permission. | 51 // specifies no Location permission. |
51 public static final String EXTRA_SITE = "org.chromium.chrome.preferences.sit
e"; | 52 public static final String EXTRA_SITE = "org.chromium.chrome.preferences.sit
e"; |
52 public static final String EXTRA_ORIGIN = "org.chromium.chrome.preferences.o
rigin"; | 53 public static final String EXTRA_ORIGIN = "org.chromium.chrome.preferences.o
rigin"; |
53 public static final String EXTRA_LOCATION = "org.chromium.chrome.preferences
.location"; | 54 public static final String EXTRA_LOCATION = "org.chromium.chrome.preferences
.location"; |
54 | 55 |
| 56 public static final String EXTRA_WEB_CONTENTS = "org.chromium.chrome.prefere
nces.web_contents"; |
| 57 |
55 // Preference keys, see single_website_preferences.xml | 58 // Preference keys, see single_website_preferences.xml |
56 // Headings: | 59 // Headings: |
57 public static final String PREF_SITE_TITLE = "site_title"; | 60 public static final String PREF_SITE_TITLE = "site_title"; |
58 public static final String PREF_USAGE = "site_usage"; | 61 public static final String PREF_USAGE = "site_usage"; |
59 public static final String PREF_PERMISSIONS = "site_permissions"; | 62 public static final String PREF_PERMISSIONS = "site_permissions"; |
60 public static final String PREF_OS_PERMISSIONS_WARNING = "os_permissions_war
ning"; | 63 public static final String PREF_OS_PERMISSIONS_WARNING = "os_permissions_war
ning"; |
61 public static final String PREF_OS_PERMISSIONS_WARNING_EXTRA = "os_permissio
ns_warning_extra"; | 64 public static final String PREF_OS_PERMISSIONS_WARNING_EXTRA = "os_permissio
ns_warning_extra"; |
62 public static final String PREF_OS_PERMISSIONS_WARNING_DIVIDER = | 65 public static final String PREF_OS_PERMISSIONS_WARNING_DIVIDER = |
63 "os_permissions_warning_divider"; | 66 "os_permissions_warning_divider"; |
64 // Actions at the top (if adding new, see hasUsagePreferences below): | 67 // Actions at the top (if adding new, see hasUsagePreferences below): |
65 public static final String PREF_CLEAR_DATA = "clear_data"; | 68 public static final String PREF_CLEAR_DATA = "clear_data"; |
66 // Buttons: | 69 // Buttons: |
67 public static final String PREF_RESET_SITE = "reset_site_button"; | 70 public static final String PREF_RESET_SITE = "reset_site_button"; |
68 // Website permissions (if adding new, see hasPermissionsPreferences and res
etSite below): | 71 // Website permissions (if adding new, see hasPermissionsPreferences and res
etSite below): |
69 public static final String PREF_CAMERA_CAPTURE_PERMISSION = "camera_permissi
on_list"; | 72 public static final String PREF_CAMERA_CAPTURE_PERMISSION = "camera_permissi
on_list"; |
70 public static final String PREF_COOKIES_PERMISSION = "cookies_permission_lis
t"; | 73 public static final String PREF_COOKIES_PERMISSION = "cookies_permission_lis
t"; |
71 public static final String PREF_FULLSCREEN_PERMISSION = "fullscreen_permissi
on_list"; | 74 public static final String PREF_FULLSCREEN_PERMISSION = "fullscreen_permissi
on_list"; |
72 public static final String PREF_JAVASCRIPT_PERMISSION = "javascript_permissi
on_list"; | 75 public static final String PREF_JAVASCRIPT_PERMISSION = "javascript_permissi
on_list"; |
| 76 public static final String PREF_KEYGEN_PERMISSION = "keygen_permission_list"
; |
73 public static final String PREF_LOCATION_ACCESS = "location_access_list"; | 77 public static final String PREF_LOCATION_ACCESS = "location_access_list"; |
74 public static final String PREF_MIC_CAPTURE_PERMISSION = "microphone_permiss
ion_list"; | 78 public static final String PREF_MIC_CAPTURE_PERMISSION = "microphone_permiss
ion_list"; |
75 public static final String PREF_MIDI_SYSEX_PERMISSION = "midi_sysex_permissi
on_list"; | 79 public static final String PREF_MIDI_SYSEX_PERMISSION = "midi_sysex_permissi
on_list"; |
76 public static final String PREF_POPUP_PERMISSION = "popup_permission_list"; | 80 public static final String PREF_POPUP_PERMISSION = "popup_permission_list"; |
77 public static final String PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION = | 81 public static final String PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION = |
78 "protected_media_identifier_permission_list"; | 82 "protected_media_identifier_permission_list"; |
79 public static final String PREF_PUSH_NOTIFICATIONS_PERMISSION = | 83 public static final String PREF_PUSH_NOTIFICATIONS_PERMISSION = |
80 "push_notifications_list"; | 84 "push_notifications_list"; |
81 | 85 |
82 // All permissions from the permissions preference category must be listed h
ere. | 86 // All permissions from the permissions preference category must be listed h
ere. |
83 // TODO(mvanouwerkerk): Use this array in more places to reduce verbosity. | 87 // TODO(mvanouwerkerk): Use this array in more places to reduce verbosity. |
84 private static final String[] PERMISSION_PREFERENCE_KEYS = { | 88 private static final String[] PERMISSION_PREFERENCE_KEYS = { |
85 PREF_CAMERA_CAPTURE_PERMISSION, | 89 PREF_CAMERA_CAPTURE_PERMISSION, |
86 PREF_COOKIES_PERMISSION, | 90 PREF_COOKIES_PERMISSION, |
87 PREF_FULLSCREEN_PERMISSION, | 91 PREF_FULLSCREEN_PERMISSION, |
88 PREF_JAVASCRIPT_PERMISSION, | 92 PREF_JAVASCRIPT_PERMISSION, |
| 93 PREF_KEYGEN_PERMISSION, |
89 PREF_LOCATION_ACCESS, | 94 PREF_LOCATION_ACCESS, |
90 PREF_MIC_CAPTURE_PERMISSION, | 95 PREF_MIC_CAPTURE_PERMISSION, |
91 PREF_MIDI_SYSEX_PERMISSION, | 96 PREF_MIDI_SYSEX_PERMISSION, |
92 PREF_POPUP_PERMISSION, | 97 PREF_POPUP_PERMISSION, |
93 PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION, | 98 PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION, |
94 PREF_PUSH_NOTIFICATIONS_PERMISSION, | 99 PREF_PUSH_NOTIFICATIONS_PERMISSION, |
95 }; | 100 }; |
96 | 101 |
97 // The website this page is displaying details about. | 102 // The website this page is displaying details about. |
98 private Website mSite; | 103 private Website mSite; |
99 | 104 |
100 // The address of the site we want to display. Used only if EXTRA_ADDRESS is
provided. | 105 // The address of the site we want to display. Used only if EXTRA_ADDRESS is
provided. |
101 private WebsiteAddress mSiteAddress; | 106 private WebsiteAddress mSiteAddress; |
102 | 107 |
103 private class SingleWebsitePermissionsPopulator | 108 private class SingleWebsitePermissionsPopulator |
104 implements WebsitePermissionsFetcher.WebsitePermissionsCallback { | 109 implements WebsitePermissionsFetcher.WebsitePermissionsCallback { |
| 110 private final WebContents mWebContents; |
| 111 |
| 112 public SingleWebsitePermissionsPopulator(WebContents webContents) { |
| 113 mWebContents = webContents; |
| 114 } |
| 115 |
105 @Override | 116 @Override |
106 public void onWebsitePermissionsAvailable( | 117 public void onWebsitePermissionsAvailable( |
107 Map<String, Set<Website>> sitesByOrigin, Map<String, Set<Website
>> sitesByHost) { | 118 Map<String, Set<Website>> sitesByOrigin, Map<String, Set<Website
>> sitesByHost) { |
108 // This method may be called after the activity has been destroyed. | 119 // This method may be called after the activity has been destroyed. |
109 // In that case, bail out. | 120 // In that case, bail out. |
110 if (getActivity() == null) return; | 121 if (getActivity() == null) return; |
111 | 122 |
112 // TODO(mvanouwerkerk): Do this merge at data retrieval time in C++,
instead of now. | 123 // TODO(mvanouwerkerk): Do this merge at data retrieval time in C++,
instead of now. |
113 List<Set<Website>> allSites = new ArrayList<>(); | 124 List<Set<Website>> allSites = new ArrayList<>(); |
114 allSites.addAll(sitesByOrigin.values()); | 125 allSites.addAll(sitesByOrigin.values()); |
115 allSites.addAll(sitesByHost.values()); | 126 allSites.addAll(sitesByHost.values()); |
116 // TODO(mvanouwerkerk): Avoid modifying the outer class from this in
ner class. | 127 // TODO(mvanouwerkerk): Avoid modifying the outer class from this in
ner class. |
117 mSite = mergePermissionInfoForTopLevelOrigin(mSiteAddress, allSites)
; | 128 mSite = mergePermissionInfoForTopLevelOrigin(mSiteAddress, allSites)
; |
| 129 |
| 130 // Display Keygen Content Setting if Keygen is blocked. |
| 131 if (mSite.getKeygenInfo() == null && mWebContents != null |
| 132 && WebsitePreferenceBridge.getKeygenBlocked(mWebContents)) { |
| 133 String origin = mSiteAddress.getOrigin(); |
| 134 mSite.setKeygenInfo(new KeygenInfo(origin, origin, false)); |
| 135 } |
| 136 |
118 displaySitePermissions(); | 137 displaySitePermissions(); |
119 } | 138 } |
120 } | 139 } |
121 | 140 |
122 /** | 141 /** |
123 * Creates a Bundle with the correct arguments for opening this fragment for | 142 * Creates a Bundle with the correct arguments for opening this fragment for |
124 * the website with the given url. | 143 * the website with the given url. |
125 * | 144 * |
126 * @param url The URL to open the fragment with. This is a complete url incl
uding scheme, | 145 * @param url The URL to open the fragment with. This is a complete url incl
uding scheme, |
127 * domain, port, path, etc. | 146 * domain, port, path, etc. |
(...skipping 10 matching lines...) Expand all Loading... |
138 } | 157 } |
139 | 158 |
140 @Override | 159 @Override |
141 public void onActivityCreated(Bundle savedInstanceState) { | 160 public void onActivityCreated(Bundle savedInstanceState) { |
142 getActivity().setTitle(R.string.prefs_site_settings); | 161 getActivity().setTitle(R.string.prefs_site_settings); |
143 ListView listView = (ListView) getView().findViewById(android.R.id.list)
; | 162 ListView listView = (ListView) getView().findViewById(android.R.id.list)
; |
144 listView.setDivider(null); | 163 listView.setDivider(null); |
145 | 164 |
146 Object extraSite = getArguments().getSerializable(EXTRA_SITE); | 165 Object extraSite = getArguments().getSerializable(EXTRA_SITE); |
147 Object extraOrigin = getArguments().getSerializable(EXTRA_ORIGIN); | 166 Object extraOrigin = getArguments().getSerializable(EXTRA_ORIGIN); |
| 167 getArguments().setClassLoader(WebContents.class.getClassLoader()); |
| 168 Object webContents = getArguments().get(EXTRA_WEB_CONTENTS); |
148 | 169 |
149 if (extraSite != null && extraOrigin == null) { | 170 if (extraSite != null && extraOrigin == null) { |
150 mSite = (Website) extraSite; | 171 mSite = (Website) extraSite; |
151 displaySitePermissions(); | 172 displaySitePermissions(); |
152 } else if (extraOrigin != null && extraSite == null) { | 173 } else if (extraOrigin != null && extraSite == null) { |
153 mSiteAddress = WebsiteAddress.create((String) extraOrigin); | 174 mSiteAddress = WebsiteAddress.create((String) extraOrigin); |
154 WebsitePermissionsFetcher fetcher = | 175 WebsitePermissionsFetcher fetcher; |
155 new WebsitePermissionsFetcher(new SingleWebsitePermissionsPo
pulator()); | 176 fetcher = new WebsitePermissionsFetcher( |
| 177 new SingleWebsitePermissionsPopulator((WebContents) webContents)
); |
156 fetcher.fetchAllPreferences(); | 178 fetcher.fetchAllPreferences(); |
157 } else { | 179 } else { |
158 assert false : "Exactly one of EXTRA_SITE or EXTRA_SITE_ADDRESS must
be provided."; | 180 assert false : "Exactly one of EXTRA_SITE or EXTRA_SITE_ADDRESS must
be provided."; |
159 } | 181 } |
160 | 182 |
161 super.onActivityCreated(savedInstanceState); | 183 super.onActivityCreated(savedInstanceState); |
162 } | 184 } |
163 | 185 |
164 /** | 186 /** |
165 * Given an address and a list of sets of websites, returns a new site with
the same origin | 187 * Given an address and a list of sets of websites, returns a new site with
the same origin |
(...skipping 20 matching lines...) Expand all Loading... |
186 merged.setCookieInfo(other.getCookieInfo()); | 208 merged.setCookieInfo(other.getCookieInfo()); |
187 } | 209 } |
188 if (merged.getFullscreenInfo() == null && other.getFullscreenInf
o() != null | 210 if (merged.getFullscreenInfo() == null && other.getFullscreenInf
o() != null |
189 && permissionInfoIsForTopLevelOrigin(other.getFullscreen
Info(), origin)) { | 211 && permissionInfoIsForTopLevelOrigin(other.getFullscreen
Info(), origin)) { |
190 merged.setFullscreenInfo(other.getFullscreenInfo()); | 212 merged.setFullscreenInfo(other.getFullscreenInfo()); |
191 } | 213 } |
192 if (merged.getGeolocationInfo() == null && other.getGeolocationI
nfo() != null | 214 if (merged.getGeolocationInfo() == null && other.getGeolocationI
nfo() != null |
193 && permissionInfoIsForTopLevelOrigin(other.getGeolocatio
nInfo(), origin)) { | 215 && permissionInfoIsForTopLevelOrigin(other.getGeolocatio
nInfo(), origin)) { |
194 merged.setGeolocationInfo(other.getGeolocationInfo()); | 216 merged.setGeolocationInfo(other.getGeolocationInfo()); |
195 } | 217 } |
| 218 if (merged.getKeygenInfo() == null && other.getKeygenInfo() != n
ull |
| 219 && permissionInfoIsForTopLevelOrigin(other.getKeygenInfo
(), origin)) { |
| 220 merged.setKeygenInfo(other.getKeygenInfo()); |
| 221 } |
196 if (merged.getMidiInfo() == null && other.getMidiInfo() != null | 222 if (merged.getMidiInfo() == null && other.getMidiInfo() != null |
197 && permissionInfoIsForTopLevelOrigin(other.getMidiInfo()
, origin)) { | 223 && permissionInfoIsForTopLevelOrigin(other.getMidiInfo()
, origin)) { |
198 merged.setMidiInfo(other.getMidiInfo()); | 224 merged.setMidiInfo(other.getMidiInfo()); |
199 } | 225 } |
200 if (merged.getProtectedMediaIdentifierInfo() == null | 226 if (merged.getProtectedMediaIdentifierInfo() == null |
201 && other.getProtectedMediaIdentifierInfo() != null | 227 && other.getProtectedMediaIdentifierInfo() != null |
202 && permissionInfoIsForTopLevelOrigin( | 228 && permissionInfoIsForTopLevelOrigin( |
203 other.getProtectedMediaIdentifierInfo(), orig
in)) { | 229 other.getProtectedMediaIdentifierInfo(), orig
in)) { |
204 merged.setProtectedMediaIdentifierInfo(other.getProtectedMed
iaIdentifierInfo()); | 230 merged.setProtectedMediaIdentifierInfo(other.getProtectedMed
iaIdentifierInfo()); |
205 } | 231 } |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 preference.setOnPreferenceClickListener(this); | 303 preference.setOnPreferenceClickListener(this); |
278 } else if (PREF_CAMERA_CAPTURE_PERMISSION.equals(preference.getKey()
)) { | 304 } else if (PREF_CAMERA_CAPTURE_PERMISSION.equals(preference.getKey()
)) { |
279 setUpListPreference(preference, mSite.getCameraPermission()); | 305 setUpListPreference(preference, mSite.getCameraPermission()); |
280 } else if (PREF_COOKIES_PERMISSION.equals(preference.getKey())) { | 306 } else if (PREF_COOKIES_PERMISSION.equals(preference.getKey())) { |
281 setUpListPreference(preference, mSite.getCookiePermission()); | 307 setUpListPreference(preference, mSite.getCookiePermission()); |
282 } else if (PREF_FULLSCREEN_PERMISSION.equals(preference.getKey())) { | 308 } else if (PREF_FULLSCREEN_PERMISSION.equals(preference.getKey())) { |
283 preference.setEnabled(false); | 309 preference.setEnabled(false); |
284 setUpListPreference(preference, mSite.getFullscreenPermission())
; | 310 setUpListPreference(preference, mSite.getFullscreenPermission())
; |
285 } else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) { | 311 } else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) { |
286 setUpListPreference(preference, mSite.getJavaScriptPermission())
; | 312 setUpListPreference(preference, mSite.getJavaScriptPermission())
; |
| 313 } else if (PREF_KEYGEN_PERMISSION.equals(preference.getKey())) { |
| 314 setUpListPreference(preference, mSite.getKeygenPermission()); |
287 } else if (PREF_LOCATION_ACCESS.equals(preference.getKey())) { | 315 } else if (PREF_LOCATION_ACCESS.equals(preference.getKey())) { |
288 setUpLocationPreference(preference); | 316 setUpLocationPreference(preference); |
289 } else if (PREF_MIC_CAPTURE_PERMISSION.equals(preference.getKey()))
{ | 317 } else if (PREF_MIC_CAPTURE_PERMISSION.equals(preference.getKey()))
{ |
290 setUpListPreference(preference, mSite.getMicrophonePermission())
; | 318 setUpListPreference(preference, mSite.getMicrophonePermission())
; |
291 } else if (PREF_MIDI_SYSEX_PERMISSION.equals(preference.getKey())) { | 319 } else if (PREF_MIDI_SYSEX_PERMISSION.equals(preference.getKey())) { |
292 setUpListPreference(preference, mSite.getMidiPermission()); | 320 setUpListPreference(preference, mSite.getMidiPermission()); |
293 } else if (PREF_POPUP_PERMISSION.equals(preference.getKey())) { | 321 } else if (PREF_POPUP_PERMISSION.equals(preference.getKey())) { |
294 setUpListPreference(preference, mSite.getPopupPermission()); | 322 setUpListPreference(preference, mSite.getPopupPermission()); |
295 } else if (PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION.equals(prefere
nce.getKey())) { | 323 } else if (PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION.equals(prefere
nce.getKey())) { |
296 setUpListPreference(preference, mSite.getProtectedMediaIdentifie
rPermission()); | 324 setUpListPreference(preference, mSite.getProtectedMediaIdentifie
rPermission()); |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 private int getContentSettingsTypeFromPreferenceKey(String preferenceKey) { | 529 private int getContentSettingsTypeFromPreferenceKey(String preferenceKey) { |
502 switch (preferenceKey) { | 530 switch (preferenceKey) { |
503 case PREF_CAMERA_CAPTURE_PERMISSION: | 531 case PREF_CAMERA_CAPTURE_PERMISSION: |
504 return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAM
ERA; | 532 return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAM
ERA; |
505 case PREF_COOKIES_PERMISSION: | 533 case PREF_COOKIES_PERMISSION: |
506 return ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES; | 534 return ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES; |
507 case PREF_FULLSCREEN_PERMISSION: | 535 case PREF_FULLSCREEN_PERMISSION: |
508 return ContentSettingsType.CONTENT_SETTINGS_TYPE_FULLSCREEN; | 536 return ContentSettingsType.CONTENT_SETTINGS_TYPE_FULLSCREEN; |
509 case PREF_JAVASCRIPT_PERMISSION: | 537 case PREF_JAVASCRIPT_PERMISSION: |
510 return ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT; | 538 return ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT; |
| 539 case PREF_KEYGEN_PERMISSION: |
| 540 return ContentSettingsType.CONTENT_SETTINGS_TYPE_KEYGEN; |
511 case PREF_LOCATION_ACCESS: | 541 case PREF_LOCATION_ACCESS: |
512 return ContentSettingsType.CONTENT_SETTINGS_TYPE_GEOLOCATION; | 542 return ContentSettingsType.CONTENT_SETTINGS_TYPE_GEOLOCATION; |
513 case PREF_MIC_CAPTURE_PERMISSION: | 543 case PREF_MIC_CAPTURE_PERMISSION: |
514 return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC
; | 544 return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC
; |
515 case PREF_MIDI_SYSEX_PERMISSION: | 545 case PREF_MIDI_SYSEX_PERMISSION: |
516 return ContentSettingsType.CONTENT_SETTINGS_TYPE_MIDI_SYSEX; | 546 return ContentSettingsType.CONTENT_SETTINGS_TYPE_MIDI_SYSEX; |
517 case PREF_POPUP_PERMISSION: | 547 case PREF_POPUP_PERMISSION: |
518 return ContentSettingsType.CONTENT_SETTINGS_TYPE_POPUPS; | 548 return ContentSettingsType.CONTENT_SETTINGS_TYPE_POPUPS; |
519 case PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION: | 549 case PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION: |
520 return ContentSettingsType.CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA
_IDENTIFIER; | 550 return ContentSettingsType.CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA
_IDENTIFIER; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 public boolean onPreferenceChange(Preference preference, Object newValue) { | 589 public boolean onPreferenceChange(Preference preference, Object newValue) { |
560 ContentSetting permission = ContentSetting.fromString((String) newValue)
; | 590 ContentSetting permission = ContentSetting.fromString((String) newValue)
; |
561 if (PREF_CAMERA_CAPTURE_PERMISSION.equals(preference.getKey())) { | 591 if (PREF_CAMERA_CAPTURE_PERMISSION.equals(preference.getKey())) { |
562 mSite.setCameraPermission(permission); | 592 mSite.setCameraPermission(permission); |
563 } else if (PREF_COOKIES_PERMISSION.equals(preference.getKey())) { | 593 } else if (PREF_COOKIES_PERMISSION.equals(preference.getKey())) { |
564 mSite.setCookiePermission(permission); | 594 mSite.setCookiePermission(permission); |
565 } else if (PREF_FULLSCREEN_PERMISSION.equals(preference.getKey())) { | 595 } else if (PREF_FULLSCREEN_PERMISSION.equals(preference.getKey())) { |
566 mSite.setFullscreenPermission(permission); | 596 mSite.setFullscreenPermission(permission); |
567 } else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) { | 597 } else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) { |
568 mSite.setJavaScriptPermission(permission); | 598 mSite.setJavaScriptPermission(permission); |
| 599 } else if (PREF_KEYGEN_PERMISSION.equals(preference.getKey())) { |
| 600 mSite.setKeygenPermission(permission); |
569 } else if (PREF_LOCATION_ACCESS.equals(preference.getKey())) { | 601 } else if (PREF_LOCATION_ACCESS.equals(preference.getKey())) { |
570 mSite.setGeolocationPermission(permission); | 602 mSite.setGeolocationPermission(permission); |
571 } else if (PREF_MIC_CAPTURE_PERMISSION.equals(preference.getKey())) { | 603 } else if (PREF_MIC_CAPTURE_PERMISSION.equals(preference.getKey())) { |
572 mSite.setMicrophonePermission(permission); | 604 mSite.setMicrophonePermission(permission); |
573 } else if (PREF_MIDI_SYSEX_PERMISSION.equals(preference.getKey())) { | 605 } else if (PREF_MIDI_SYSEX_PERMISSION.equals(preference.getKey())) { |
574 mSite.setMidiPermission(permission); | 606 mSite.setMidiPermission(permission); |
575 } else if (PREF_POPUP_PERMISSION.equals(preference.getKey())) { | 607 } else if (PREF_POPUP_PERMISSION.equals(preference.getKey())) { |
576 mSite.setPopupPermission(permission); | 608 mSite.setPopupPermission(permission); |
577 } else if (PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION.equals(preference.
getKey())) { | 609 } else if (PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION.equals(preference.
getKey())) { |
578 mSite.setProtectedMediaIdentifierPermission(permission); | 610 mSite.setProtectedMediaIdentifierPermission(permission); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
611 if (preference != null) screen.removePreference(preference); | 643 if (preference != null) screen.removePreference(preference); |
612 } | 644 } |
613 | 645 |
614 // Clear the permissions. | 646 // Clear the permissions. |
615 mSite.setCameraPermission(ContentSetting.DEFAULT); | 647 mSite.setCameraPermission(ContentSetting.DEFAULT); |
616 mSite.setCookiePermission(ContentSetting.DEFAULT); | 648 mSite.setCookiePermission(ContentSetting.DEFAULT); |
617 WebsitePreferenceBridge.nativeClearCookieData(mSite.getAddress().getOrig
in()); | 649 WebsitePreferenceBridge.nativeClearCookieData(mSite.getAddress().getOrig
in()); |
618 mSite.setFullscreenPermission(ContentSetting.DEFAULT); | 650 mSite.setFullscreenPermission(ContentSetting.DEFAULT); |
619 mSite.setGeolocationPermission(ContentSetting.DEFAULT); | 651 mSite.setGeolocationPermission(ContentSetting.DEFAULT); |
620 mSite.setJavaScriptPermission(ContentSetting.DEFAULT); | 652 mSite.setJavaScriptPermission(ContentSetting.DEFAULT); |
| 653 mSite.setKeygenPermission(ContentSetting.DEFAULT); |
621 mSite.setMicrophonePermission(ContentSetting.DEFAULT); | 654 mSite.setMicrophonePermission(ContentSetting.DEFAULT); |
622 mSite.setMidiPermission(ContentSetting.DEFAULT); | 655 mSite.setMidiPermission(ContentSetting.DEFAULT); |
623 mSite.setPopupPermission(ContentSetting.DEFAULT); | 656 mSite.setPopupPermission(ContentSetting.DEFAULT); |
624 mSite.setProtectedMediaIdentifierPermission(ContentSetting.DEFAULT); | 657 mSite.setProtectedMediaIdentifierPermission(ContentSetting.DEFAULT); |
625 mSite.setPushNotificationPermission(ContentSetting.DEFAULT); | 658 mSite.setPushNotificationPermission(ContentSetting.DEFAULT); |
626 | 659 |
627 // Clear the storage and finish the activity if necessary. | 660 // Clear the storage and finish the activity if necessary. |
628 if (mSite.getTotalUsage() > 0) { | 661 if (mSite.getTotalUsage() > 0) { |
629 clearStoredData(); | 662 clearStoredData(); |
630 } else { | 663 } else { |
631 // Clearing stored data implies popping back to parent menu if there | 664 // Clearing stored data implies popping back to parent menu if there |
632 // is nothing left to show. Therefore, we only need to explicitly | 665 // is nothing left to show. Therefore, we only need to explicitly |
633 // close the activity if there's no stored data to begin with. | 666 // close the activity if there's no stored data to begin with. |
634 getActivity().finish(); | 667 getActivity().finish(); |
635 } | 668 } |
636 } | 669 } |
637 } | 670 } |
OLD | NEW |