| 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 |