Skip to content

Commit 5d916f6

Browse files
sleeviCommit bot
authored andcommitted
Remove support for the keygen tag
This removes support for <keygen> by updating it to be an HTMLUnknownElement. As a result, it's no longer a form-associated element and no longer has IDL-assigned properties. The <keygen> tag is still left in the parser, similar to <applet>, so that it maintains the document parse behaviours (such as self-closing), but is otherwise a neutered element. Tests that were relying on <keygen> having its own browser-created shadow root (for its custom select element) have been updated to use progress bars, while other tests (such as <keygen>-related crash tests) have been fully removed. As Blink no longer treats this tag as special, all the related IPC infrastructure is removed, including preferences and enterprise flags, and all localized strings, as they're all now unreachable. This concludes the "Intent to Remove" thread for <keygen> at https://groups.google.com/a/chromium.org/d/msg/blink-dev/z_qEpmzzKh8/BH-lkwdgBAAJ BUG=568184 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation Review-Url: https://codereview.chromium.org/2536993002 Cr-Commit-Position: refs/heads/master@{#440245}
1 parent 62c93a5 commit 5d916f6

249 files changed

Lines changed: 313 additions & 3553 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

android_webview/browser/aw_resource_context.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
#include "base/synchronization/lock.h"
1313
#include "content/public/browser/resource_context.h"
1414

15+
class GURL;
16+
1517
namespace net {
1618
class URLRequestContextGetter;
1719
}

chrome/android/java/res/xml/single_website_preferences.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@
4747
android:key="popup_permission_list" />
4848
<org.chromium.chrome.browser.preferences.ChromeBaseListPreference
4949
android:key="background_sync_permission_list" />
50-
<org.chromium.chrome.browser.preferences.ChromeBaseListPreference
51-
android:key="keygen_permission_list" />
5250
<org.chromium.chrome.browser.preferences.ChromeBaseListPreference
5351
android:key="protected_media_identifier_permission_list" />
5452
<org.chromium.chrome.browser.preferences.ChromeBaseListPreference

chrome/android/java/src/org/chromium/chrome/browser/preferences/website/ContentSettingsResources.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,6 @@ private static Map<Integer, ResourceItem> getResourceInfo() {
118118
R.string.javascript_permission_title, ContentSetting.ALLOW,
119119
ContentSetting.BLOCK,
120120
R.string.website_settings_category_javascript_allowed, 0));
121-
localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_KEYGEN,
122-
new ResourceItem(R.drawable.permission_keygen,
123-
R.string.keygen_permission_title,
124-
R.string.keygen_permission_title, ContentSetting.ALLOW,
125-
ContentSetting.BLOCK,
126-
0, R.string.website_settings_category_blocked_recommended));
127121
localMap.put(
128122
ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA,
129123
new ResourceItem(R.drawable.permission_camera,

chrome/android/java/src/org/chromium/chrome/browser/preferences/website/KeygenInfo.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ public class SingleWebsitePreferences extends PreferenceFragment
7373
public static final String PREF_CAMERA_CAPTURE_PERMISSION = "camera_permission_list";
7474
public static final String PREF_COOKIES_PERMISSION = "cookies_permission_list";
7575
public static final String PREF_JAVASCRIPT_PERMISSION = "javascript_permission_list";
76-
public static final String PREF_KEYGEN_PERMISSION = "keygen_permission_list";
7776
public static final String PREF_LOCATION_ACCESS = "location_access_list";
7877
public static final String PREF_MIC_CAPTURE_PERMISSION = "microphone_permission_list";
7978
public static final String PREF_MIDI_SYSEX_PERMISSION = "midi_sysex_permission_list";
@@ -90,7 +89,6 @@ public class SingleWebsitePreferences extends PreferenceFragment
9089
PREF_CAMERA_CAPTURE_PERMISSION,
9190
PREF_COOKIES_PERMISSION,
9291
PREF_JAVASCRIPT_PERMISSION,
93-
PREF_KEYGEN_PERMISSION,
9492
PREF_LOCATION_ACCESS,
9593
PREF_MIC_CAPTURE_PERMISSION,
9694
PREF_MIDI_SYSEX_PERMISSION,
@@ -125,13 +123,6 @@ public void onWebsitePermissionsAvailable(Collection<Website> sites) {
125123
// TODO(mvanouwerkerk): Avoid modifying the outer class from this inner class.
126124
mSite = mergePermissionInfoForTopLevelOrigin(mSiteAddress, sites);
127125

128-
// Display Keygen Content Setting if Keygen is blocked.
129-
if (mSite.getKeygenInfo() == null && mWebContents != null
130-
&& WebsitePreferenceBridge.getKeygenBlocked(mWebContents)) {
131-
String origin = mSiteAddress.getOrigin();
132-
mSite.setKeygenInfo(new KeygenInfo(origin, origin, false));
133-
}
134-
135126
displaySitePermissions();
136127
}
137128
}
@@ -204,10 +195,6 @@ private static Website mergePermissionInfoForTopLevelOrigin(
204195
&& permissionInfoIsForTopLevelOrigin(other.getGeolocationInfo(), origin)) {
205196
merged.setGeolocationInfo(other.getGeolocationInfo());
206197
}
207-
if (merged.getKeygenInfo() == null && other.getKeygenInfo() != null
208-
&& permissionInfoIsForTopLevelOrigin(other.getKeygenInfo(), origin)) {
209-
merged.setKeygenInfo(other.getKeygenInfo());
210-
}
211198
if (merged.getMidiInfo() == null && other.getMidiInfo() != null
212199
&& permissionInfoIsForTopLevelOrigin(other.getMidiInfo(), origin)) {
213200
merged.setMidiInfo(other.getMidiInfo());
@@ -304,8 +291,6 @@ private void displaySitePermissions() {
304291
setUpListPreference(preference, mSite.getCookiePermission());
305292
} else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) {
306293
setUpListPreference(preference, mSite.getJavaScriptPermission());
307-
} else if (PREF_KEYGEN_PERMISSION.equals(preference.getKey())) {
308-
setUpListPreference(preference, mSite.getKeygenPermission());
309294
} else if (PREF_LOCATION_ACCESS.equals(preference.getKey())) {
310295
setUpLocationPreference(preference);
311296
} else if (PREF_MIC_CAPTURE_PERMISSION.equals(preference.getKey())) {
@@ -537,8 +522,6 @@ private int getContentSettingsTypeFromPreferenceKey(String preferenceKey) {
537522
return ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES;
538523
case PREF_JAVASCRIPT_PERMISSION:
539524
return ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT;
540-
case PREF_KEYGEN_PERMISSION:
541-
return ContentSettingsType.CONTENT_SETTINGS_TYPE_KEYGEN;
542525
case PREF_LOCATION_ACCESS:
543526
return ContentSettingsType.CONTENT_SETTINGS_TYPE_GEOLOCATION;
544527
case PREF_MIC_CAPTURE_PERMISSION:
@@ -599,8 +582,6 @@ public boolean onPreferenceChange(Preference preference, Object newValue) {
599582
mSite.setCookiePermission(permission);
600583
} else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) {
601584
mSite.setJavaScriptPermission(permission);
602-
} else if (PREF_KEYGEN_PERMISSION.equals(preference.getKey())) {
603-
mSite.setKeygenPermission(permission);
604585
} else if (PREF_LOCATION_ACCESS.equals(preference.getKey())) {
605586
mSite.setGeolocationPermission(permission);
606587
} else if (PREF_MIC_CAPTURE_PERMISSION.equals(preference.getKey())) {
@@ -679,7 +660,6 @@ protected void resetSite() {
679660
mSite.setCookiePermission(ContentSetting.DEFAULT);
680661
mSite.setGeolocationPermission(ContentSetting.DEFAULT);
681662
mSite.setJavaScriptPermission(ContentSetting.DEFAULT);
682-
mSite.setKeygenPermission(ContentSetting.DEFAULT);
683663
mSite.setMicrophonePermission(ContentSetting.DEFAULT);
684664
mSite.setMidiPermission(ContentSetting.DEFAULT);
685665
mSite.setNotificationPermission(ContentSetting.DEFAULT);

chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ public class Website implements Serializable {
3232
private ContentSettingException mCookieException;
3333
private GeolocationInfo mGeolocationInfo;
3434
private ContentSettingException mJavaScriptException;
35-
private KeygenInfo mKeygenInfo;
3635
private LocalStorageInfo mLocalStorageInfo;
3736
private MicrophoneInfo mMicrophoneInfo;
3837
private MidiInfo mMidiInfo;
@@ -235,33 +234,6 @@ public void setJavaScriptException(ContentSettingException exception) {
235234
mJavaScriptException = exception;
236235
}
237236

238-
/**
239-
* Sets the KeygenInfo object for this Website.
240-
*/
241-
public void setKeygenInfo(KeygenInfo info) {
242-
mKeygenInfo = info;
243-
}
244-
245-
public KeygenInfo getKeygenInfo() {
246-
return mKeygenInfo;
247-
}
248-
249-
/**
250-
* Returns what permission governs keygen access.
251-
*/
252-
public ContentSetting getKeygenPermission() {
253-
return mKeygenInfo != null ? mKeygenInfo.getContentSetting() : null;
254-
}
255-
256-
/**
257-
* Configure keygen access setting for this site.
258-
*/
259-
public void setKeygenPermission(ContentSetting value) {
260-
if (mKeygenInfo != null) {
261-
mKeygenInfo.setContentSetting(value);
262-
}
263-
}
264-
265237
/**
266238
* Sets microphone capture info class.
267239
*/

chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ public void fetchAllPreferences() {
5555
queue.add(new MidiInfoFetcher());
5656
// Cookies are stored per-host.
5757
queue.add(new CookieExceptionInfoFetcher());
58-
// Keygen permissions are per-origin.
59-
queue.add(new KeygenInfoFetcher());
6058
// Local storage info is per-origin.
6159
queue.add(new LocalStorageInfoFetcher());
6260
// Website storage is per-host.
@@ -269,18 +267,6 @@ public void run() {
269267
}
270268
}
271269

272-
private class KeygenInfoFetcher extends Task {
273-
@Override
274-
public void run() {
275-
for (KeygenInfo info : WebsitePreferenceBridge.getKeygenInfo()) {
276-
WebsiteAddress origin = WebsiteAddress.create(info.getOrigin());
277-
if (origin == null) continue;
278-
WebsiteAddress embedder = WebsiteAddress.create(info.getEmbedder());
279-
findOrCreateSite(origin, embedder).setKeygenInfo(info);
280-
}
281-
}
282-
}
283-
284270
private class LocalStorageInfoFetcher extends Task {
285271
@Override
286272
public void runAsync(final TaskQueue queue) {

chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import org.chromium.base.Callback;
88
import org.chromium.base.annotations.CalledByNative;
99
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
10-
import org.chromium.content_public.browser.WebContents;
1110

1211
import java.util.ArrayList;
1312
import java.util.HashMap;
@@ -27,30 +26,6 @@ public interface StorageInfoClearedCallback {
2726
public void onStorageInfoCleared();
2827
}
2928

30-
/**
31-
* @return the list of all origins that have keygen permissions in non-incognito mode.
32-
*/
33-
@SuppressWarnings("unchecked")
34-
public static List<KeygenInfo> getKeygenInfo() {
35-
ArrayList<KeygenInfo> list = new ArrayList<KeygenInfo>();
36-
nativeGetKeygenOrigins(list);
37-
return list;
38-
}
39-
40-
@CalledByNative
41-
private static void insertKeygenInfoIntoList(
42-
ArrayList<KeygenInfo> list, String origin, String embedder) {
43-
list.add(new KeygenInfo(origin, embedder, false));
44-
}
45-
46-
/**
47-
* @return whether we've blocked key generation in the current tab.
48-
*/
49-
@SuppressWarnings("unchecked")
50-
public static boolean getKeygenBlocked(WebContents webContents) {
51-
return nativeGetKeygenBlocked(webContents);
52-
}
53-
5429
/**
5530
* @return the list of all origins that have geolocation permissions in non-incognito mode.
5631
*/
@@ -247,12 +222,6 @@ static native int nativeGetGeolocationSettingForOrigin(
247222
String origin, String embedder, boolean isIncognito);
248223
public static native void nativeSetGeolocationSettingForOrigin(
249224
String origin, String embedder, int value, boolean isIncognito);
250-
private static native void nativeGetKeygenOrigins(Object list);
251-
static native int nativeGetKeygenSettingForOrigin(
252-
String origin, String embedder, boolean isIncognito);
253-
static native void nativeSetKeygenSettingForOrigin(
254-
String origin, int value, boolean isIncognito);
255-
private static native boolean nativeGetKeygenBlocked(Object webContents);
256225
private static native void nativeGetMidiOrigins(Object list);
257226
static native int nativeGetMidiSettingForOrigin(
258227
String origin, String embedder, boolean isIncognito);

chrome/android/java/strings/android_chrome_strings.grd

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -596,9 +596,6 @@ Your Google account may have other forms of browsing history like searches and a
596596
<message name="IDS_JAVASCRIPT_PERMISSION_TITLE" desc="Title of the permission to run javascript [CHAR-LIMIT=32]">
597597
JavaScript
598598
</message>
599-
<message name="IDS_KEYGEN_PERMISSION_TITLE" desc="Title of the permission to allow a form to perform client-side key generation [CHAR-LIMIT=32]">
600-
Key generation
601-
</message>
602599
<message name="IDS_MEDIA_PERMISSION_TITLE" desc="Title of the menu containing the media permissions [CHAR-LIMIT=32]">
603600
Media
604601
</message>

chrome/android/java_sources.gni

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,6 @@ chrome_java_sources = [
830830
"java/src/org/chromium/chrome/browser/preferences/website/ContentSettingException.java",
831831
"java/src/org/chromium/chrome/browser/preferences/website/ContentSettingsResources.java",
832832
"java/src/org/chromium/chrome/browser/preferences/website/GeolocationInfo.java",
833-
"java/src/org/chromium/chrome/browser/preferences/website/KeygenInfo.java",
834833
"java/src/org/chromium/chrome/browser/preferences/website/LocalStorageInfo.java",
835834
"java/src/org/chromium/chrome/browser/preferences/website/LocationCategory.java",
836835
"java/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivity.java",

0 commit comments

Comments
 (0)