Diff
Modified: trunk/LayoutTests/ChangeLog (213675 => 213676)
--- trunk/LayoutTests/ChangeLog 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/LayoutTests/ChangeLog 2017-03-09 22:40:25 UTC (rev 213676)
@@ -1,3 +1,19 @@
+2017-03-09 Daniel Bates <[email protected]>
+
+ Guard Credential Management implementation behind a runtime enabled feature flag
+ https://bugs.webkit.org/show_bug.cgi?id=169364
+ <rdar://problem/30957425>
+
+ Reviewed by Brent Fulgham.
+
+ * credentials/idlharness.html: Use comment header to enable Credential Management API.
+ * platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt: Update expected results now
+ that we no longer expose the Credential Management API by default.
+ * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/mac/js/dom/global-constructors-attributes-expected.txt: Ditto.
+ * platform/win/TestExpectations: For now, skip the Credential Management API tests.
+
2017-03-09 Yoav Weiss <[email protected]>
[link preload] Double downloads of preloaded CSS
Modified: trunk/LayoutTests/credentials/idlharness.html (213675 => 213676)
--- trunk/LayoutTests/credentials/idlharness.html 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/LayoutTests/credentials/idlharness.html 2017-03-09 22:40:25 UTC (rev 213676)
@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+<!DOCTYPE html><!-- webkit-test-runner [ enableCredentialManagement=true ] -->
<script src=""
<script src=""
<script src=""
Modified: trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt (213675 => 213676)
--- trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt 2017-03-09 22:40:25 UTC (rev 213676)
@@ -303,11 +303,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'Counter').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Counter').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Counter').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').value is Credential
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').value is Crypto
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').hasOwnProperty('set') is false
@@ -1173,11 +1168,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').value is PasswordCredential
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').value is Path2D
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').hasOwnProperty('set') is false
@@ -2108,11 +2098,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').value is SiteBoundCredential
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').value is SourceBuffer
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').hasOwnProperty('set') is false
Modified: trunk/LayoutTests/platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt (213675 => 213676)
--- trunk/LayoutTests/platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/LayoutTests/platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt 2017-03-09 22:40:25 UTC (rev 213676)
@@ -303,11 +303,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'Counter').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Counter').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Counter').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').value is Credential
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').value is Crypto
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').hasOwnProperty('set') is false
@@ -1173,11 +1168,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').value is PasswordCredential
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').value is Path2D
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').hasOwnProperty('set') is false
@@ -2108,11 +2098,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').value is SiteBoundCredential
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').value is SourceBuffer
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').hasOwnProperty('set') is false
Modified: trunk/LayoutTests/platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt (213675 => 213676)
--- trunk/LayoutTests/platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/LayoutTests/platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt 2017-03-09 22:40:25 UTC (rev 213676)
@@ -303,11 +303,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'Counter').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Counter').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Counter').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').value is Credential
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').value is Crypto
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').hasOwnProperty('set') is false
@@ -1173,11 +1168,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').value is PasswordCredential
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').value is Path2D
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').hasOwnProperty('set') is false
@@ -2108,11 +2098,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').value is SiteBoundCredential
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').value is SourceBuffer
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').hasOwnProperty('set') is false
Modified: trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt (213675 => 213676)
--- trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt 2017-03-09 22:40:25 UTC (rev 213676)
@@ -298,11 +298,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'Counter').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'Counter').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'Counter').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').value is Credential
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'Credential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').value is Crypto
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Crypto').hasOwnProperty('set') is false
@@ -1163,11 +1158,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'PageTransitionEvent').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').value is PasswordCredential
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'PasswordCredential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').value is Path2D
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'Path2D').hasOwnProperty('set') is false
@@ -2098,11 +2088,6 @@
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').hasOwnProperty('set') is false
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').enumerable is false
PASS Object.getOwnPropertyDescriptor(global, 'SharedArrayBuffer').configurable is true
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').value is SiteBoundCredential
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').hasOwnProperty('get') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').hasOwnProperty('set') is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').enumerable is false
-PASS Object.getOwnPropertyDescriptor(global, 'SiteBoundCredential').configurable is true
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').value is SourceBuffer
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').hasOwnProperty('get') is false
PASS Object.getOwnPropertyDescriptor(global, 'SourceBuffer').hasOwnProperty('set') is false
Modified: trunk/LayoutTests/platform/win/TestExpectations (213675 => 213676)
--- trunk/LayoutTests/platform/win/TestExpectations 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/LayoutTests/platform/win/TestExpectations 2017-03-09 22:40:25 UTC (rev 213676)
@@ -644,6 +644,9 @@
webkit.org/b/158836 imported/w3c/web-platform-tests/encrypted-media [ Skip ]
+# Credential Management not supported
+credentials/ [ Skip ]
+
################################################################################
########### End Missing Functionality Prevents Testing ##############
################################################################################
Modified: trunk/Source/_javascript_Core/ChangeLog (213675 => 213676)
--- trunk/Source/_javascript_Core/ChangeLog 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-03-09 22:40:25 UTC (rev 213676)
@@ -1,3 +1,16 @@
+2017-03-09 Daniel Bates <[email protected]>
+
+ Guard Credential Management implementation behind a runtime enabled feature flag
+ https://bugs.webkit.org/show_bug.cgi?id=169364
+ <rdar://problem/30957425>
+
+ Reviewed by Brent Fulgham.
+
+ Add common identifiers for Credential, PasswordCredential, and SiteBoundCredential that are
+ needed to guard these interfaces behind a runtime enabled feature flag.
+
+ * runtime/CommonIdentifiers.h:
+
2017-03-09 Mark Lam <[email protected]>
Refactoring some HeapVerifier code.
@@ -6120,8 +6133,8 @@
sum of the depths of its nodes, with a node's depth equal to the number
of frames in its associated call stack. For any stack trace,
- S = { s𝟶, s𝟷, …, s𝑘 }, with endpoints s𝟶, s𝑘
- depth(S) = depth(s𝟶) + depth(s𝟷) + … + depth(s𝑘)
+ S = { sퟶ, sퟷ, …, s푘 }, with endpoints sퟶ, s푘
+ depth(S) = depth(sퟶ) + depth(sퟷ) + … + depth(s푘)
A stack trace is truncated when it exceeds the maximum depth. Truncation
occurs on node boundaries, not call frames, consequently the maximum depth
@@ -6128,7 +6141,7 @@
is more of a target than a guarantee:
d = maximum stack trace depth
- for all S, depth(S) ≤ d + depth(s𝑘)
+ for all S, depth(S) ≤ d + depth(s푘)
Because nodes can belong to multiple stack traces, it may be necessary
to clone the tail of a stack trace being truncated to prevent other traces
@@ -6221,8 +6234,8 @@
sum of the depths of its nodes, with a node's depth equal to the number
of frames in its associated call stack. For any stack trace,
- S = { s𝟶, s𝟷, …, s𝑘 }, with endpoints s𝟶, s𝑘
- depth(S) = depth(s𝟶) + depth(s𝟷) + … + depth(s𝑘)
+ S = { sퟶ, sퟷ, …, s푘 }, with endpoints sퟶ, s푘
+ depth(S) = depth(sퟶ) + depth(sퟷ) + … + depth(s푘)
A stack trace is truncated when it exceeds the maximum depth. Truncation
occurs on node boundaries, not call frames, consequently the maximum depth
@@ -6229,7 +6242,7 @@
is more of a target than a guarantee:
d = maximum stack trace depth
- for all S, depth(S) ≤ d + depth(s𝑘)
+ for all S, depth(S) ≤ d + depth(s푘)
Because nodes can belong to multiple stack traces, it may be necessary
to clone the tail of a stack trace being truncated to prevent other traces
Modified: trunk/Source/_javascript_Core/runtime/CommonIdentifiers.h (213675 => 213676)
--- trunk/Source/_javascript_Core/runtime/CommonIdentifiers.h 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/_javascript_Core/runtime/CommonIdentifiers.h 2017-03-09 22:40:25 UTC (rev 213676)
@@ -36,6 +36,7 @@
macro(BYTES_PER_ELEMENT) \
macro(Boolean) \
macro(Collator) \
+ macro(Credential) \
macro(CustomElementRegistry) \
macro(Date) \
macro(DateTimeFormat) \
@@ -85,6 +86,7 @@
macro(Number) \
macro(NumberFormat) \
macro(Object) \
+ macro(PasswordCredential) \
macro(PerformanceEntry) \
macro(PerformanceEntryList) \
macro(PerformanceMark) \
@@ -112,6 +114,7 @@
macro(SetIterator)\
macro(ShadowRoot) \
macro(SharedArrayBuffer) \
+ macro(SiteBoundCredential) \
macro(StaticRange) \
macro(String) \
macro(Symbol) \
Modified: trunk/Source/WebCore/ChangeLog (213675 => 213676)
--- trunk/Source/WebCore/ChangeLog 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebCore/ChangeLog 2017-03-09 22:40:25 UTC (rev 213676)
@@ -1,3 +1,23 @@
+2017-03-09 Daniel Bates <[email protected]>
+
+ Guard Credential Management implementation behind a runtime enabled feature flag
+ https://bugs.webkit.org/show_bug.cgi?id=169364
+ <rdar://problem/30957425>
+
+ Reviewed by Brent Fulgham.
+
+ Add a runtime enabled feature flag for Credential Management (disabled by default).
+ Once we are happy with this feature we can enable the feature by default or remove the
+ the runtime enabled feature flag so as to enable it by default.
+
+ * Modules/credentials/BasicCredential.idl: Enable only if the runtime enabled feature flag is
+ enabled.
+ * Modules/credentials/PasswordCredential.idl: Ditto.
+ * Modules/credentials/SiteBoundCredential.idl: Ditto.
+ * page/RuntimeEnabledFeatures.h:
+ (WebCore::RuntimeEnabledFeatures::setCredentialManagementEnabled): Added.
+ (WebCore::RuntimeEnabledFeatures::credentialManagementEnabled): Added.
+
2017-03-09 Anders Carlsson <[email protected]>
Add delegate support to WebCore
Modified: trunk/Source/WebCore/Modules/credentials/BasicCredential.idl (213675 => 213676)
--- trunk/Source/WebCore/Modules/credentials/BasicCredential.idl 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebCore/Modules/credentials/BasicCredential.idl 2017-03-09 22:40:25 UTC (rev 213676)
@@ -25,6 +25,7 @@
[
InterfaceName=Credential,
+ EnabledAtRuntime=CredentialManagement,
] interface BasicCredential {
readonly attribute USVString id;
readonly attribute DOMString type;
Modified: trunk/Source/WebCore/Modules/credentials/PasswordCredential.idl (213675 => 213676)
--- trunk/Source/WebCore/Modules/credentials/PasswordCredential.idl 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebCore/Modules/credentials/PasswordCredential.idl 2017-03-09 22:40:25 UTC (rev 213676)
@@ -26,6 +26,7 @@
typedef (DOMFormData or URLSearchParams) CredentialBodyType;
[
+ EnabledAtRuntime=CredentialManagement,
Constructor(PasswordCredentialData data),
Constructor(HTMLFormElement form),
Exposed=Window,
Modified: trunk/Source/WebCore/Modules/credentials/SiteBoundCredential.idl (213675 => 213676)
--- trunk/Source/WebCore/Modules/credentials/SiteBoundCredential.idl 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebCore/Modules/credentials/SiteBoundCredential.idl 2017-03-09 22:40:25 UTC (rev 213676)
@@ -23,7 +23,9 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-interface SiteBoundCredential : BasicCredential {
+[
+ EnabledAtRuntime=CredentialManagement,
+] interface SiteBoundCredential : BasicCredential {
readonly attribute USVString name;
readonly attribute USVString iconURL;
};
Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (213675 => 213676)
--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h 2017-03-09 22:40:25 UTC (rev 213676)
@@ -75,6 +75,9 @@
void setModernMediaControlsEnabled(bool areEnabled) { m_areModernMediaControlsEnabled = areEnabled; }
bool modernMediaControlsEnabled() const { return m_areModernMediaControlsEnabled; }
+ void setCredentialManagementEnabled(bool isEnabled) { m_isCredentialManagementEnabled = isEnabled; }
+ bool credentialManagementEnabled() const { return m_isCredentialManagementEnabled; }
+
#if ENABLE(INDEXED_DATABASE_IN_WORKERS)
void setIndexedDBWorkersEnabled(bool isEnabled) { m_isIndexedDBWorkersEnabled = isEnabled; }
bool indexedDBWorkersEnabled() const { return m_isIndexedDBWorkersEnabled; }
@@ -210,6 +213,7 @@
bool m_isResourceTimingEnabled { false };
bool m_isUserTimingEnabled { false };
bool m_isInteractiveFormValidationEnabled { false };
+ bool m_isCredentialManagementEnabled { false };
bool m_isDOMIteratorEnabled { true };
bool m_isGeolocationEnabled { true };
Modified: trunk/Source/WebKit/mac/ChangeLog (213675 => 213676)
--- trunk/Source/WebKit/mac/ChangeLog 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit/mac/ChangeLog 2017-03-09 22:40:25 UTC (rev 213676)
@@ -1,3 +1,22 @@
+2017-03-09 Daniel Bates <[email protected]>
+
+ Guard Credential Management implementation behind a runtime enabled feature flag
+ https://bugs.webkit.org/show_bug.cgi?id=169364
+ <rdar://problem/30957425>
+
+ Reviewed by Brent Fulgham.
+
+ Add WebKit preference for Credential Management (disabled by default).
+
+ * WebView/WebPreferenceKeysPrivate.h:
+ * WebView/WebPreferences.mm:
+ (+[WebPreferences initialize]):
+ (-[WebPreferences credentialManagementEnabled]): Added.
+ (-[WebPreferences setCredentialManagementEnabled:]): Added.
+ * WebView/WebPreferencesPrivate.h:
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChanged:]):
+
2017-03-09 Anders Carlsson <[email protected]>
Add delegate support to WebCore
Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (213675 => 213676)
--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h 2017-03-09 22:40:25 UTC (rev 213676)
@@ -178,6 +178,7 @@
#define WebKitMediaStreamEnabledPreferenceKey @"WebKitMediaStreamEnabled"
#define WebKitPeerConnectionEnabledPreferenceKey @"WebKitPeerConnectionEnabled"
#define WebKitLinkPreloadEnabledPreferenceKey @"WebKitLinkPreloadEnabled"
+#define WebKitCredentialManagementEnabledPreferenceKey @"WebKitCredentialManagementEnabled"
#if !TARGET_OS_IPHONE
// These are private both because callers should be using the cover methods and because the
Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (213675 => 213676)
--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm 2017-03-09 22:40:25 UTC (rev 213676)
@@ -661,6 +661,7 @@
#endif
@NO, WebKitUserTimingEnabledPreferenceKey,
@NO, WebKitResourceTimingEnabledPreferenceKey,
+ @NO, WebKitCredentialManagementEnabledPreferenceKey,
nil];
#if !PLATFORM(IOS)
@@ -2994,6 +2995,16 @@
[self _setBoolValue:flag forKey:WebKitResourceTimingEnabledPreferenceKey];
}
+- (BOOL)credentialManagementEnabled
+{
+ return [self _boolValueForKey:WebKitCredentialManagementEnabledPreferenceKey];
+}
+
+- (void)setCredentialManagementEnabled:(BOOL)flag
+{
+ [self _setBoolValue:flag forKey:WebKitCredentialManagementEnabledPreferenceKey];
+}
+
#if PLATFORM(IOS)
- (BOOL)quickLookDocumentSavingEnabled
{
Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (213675 => 213676)
--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h 2017-03-09 22:40:25 UTC (rev 213676)
@@ -529,6 +529,9 @@
- (void)setModernMediaControlsEnabled:(BOOL)flag;
- (BOOL)modernMediaControlsEnabled;
+- (void)setCredentialManagementEnabled:(BOOL)flag;
+- (BOOL)credentialManagementEnabled;
+
@property (nonatomic) BOOL visualViewportEnabled;
@property (nonatomic) BOOL largeImageAsyncDecodingEnabled;
@property (nonatomic) BOOL animatedImageAsyncDecodingEnabled;
@@ -540,6 +543,7 @@
@property (nonatomic) BOOL userTimingEnabled;
@property (nonatomic) BOOL resourceTimingEnabled;
@property (nonatomic) BOOL linkPreloadEnabled;
+@property (nonatomic) BOOL credentialManagementEnabled;
#if TARGET_OS_IPHONE
@property (nonatomic) BOOL quickLookDocumentSavingEnabled;
Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (213675 => 213676)
--- trunk/Source/WebKit/mac/WebView/WebView.mm 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm 2017-03-09 22:40:25 UTC (rev 213676)
@@ -2928,6 +2928,7 @@
RuntimeEnabledFeatures::sharedFeatures().setUserTimingEnabled(preferences.userTimingEnabled);
RuntimeEnabledFeatures::sharedFeatures().setResourceTimingEnabled(preferences.resourceTimingEnabled);
RuntimeEnabledFeatures::sharedFeatures().setLinkPreloadEnabled(preferences.linkPreloadEnabled);
+ RuntimeEnabledFeatures::sharedFeatures().setCredentialManagementEnabled(preferences.credentialManagementEnabled);
NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds];
if (timeout > 0)
Modified: trunk/Source/WebKit2/ChangeLog (213675 => 213676)
--- trunk/Source/WebKit2/ChangeLog 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit2/ChangeLog 2017-03-09 22:40:25 UTC (rev 213676)
@@ -1,3 +1,21 @@
+2017-03-09 Daniel Bates <[email protected]>
+
+ Guard Credential Management implementation behind a runtime enabled feature flag
+ https://bugs.webkit.org/show_bug.cgi?id=169364
+ <rdar://problem/30957425>
+
+ Reviewed by Brent Fulgham.
+
+ Add WebKit2 preference for Credential Management (disabled by default).
+
+ * Shared/WebPreferencesDefinitions.h:
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetCredentialManagementEnabled): Added.
+ (WKPreferencesGetCredentialManagementEnabled): Added.
+ * UIProcess/API/C/WKPreferencesRefPrivate.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences):
+
2017-03-09 Andy Estes <[email protected]>
[iOS] Add SPI to print to a single tall PDF page
Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (213675 => 213676)
--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h 2017-03-09 22:40:25 UTC (rev 213676)
@@ -251,6 +251,7 @@
macro(CSSGridLayoutEnabled, cssGridLayoutEnabled, Bool, bool, true, "CSS Grid", "CSS Grid Layout Module support") \
macro(GamepadsEnabled, gamepadsEnabled, Bool, bool, true, "Gamepads", "Web Gamepad API support") \
macro(InputEventsEnabled, inputEventsEnabled, Bool, bool, true, "Input Events", "Enable InputEvents support") \
+ macro(CredentialManagementEnabled, credentialManagementEnabled, Bool, bool, false, "Credential Management", "Enable Credential Management support") \
\
#define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (213675 => 213676)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp 2017-03-09 22:40:25 UTC (rev 213676)
@@ -842,6 +842,16 @@
return toImpl(preferencesRef)->modernMediaControlsEnabled();
}
+void WKPreferencesSetCredentialManagementEnabled(WKPreferencesRef preferencesRef, bool flag)
+{
+ toImpl(preferencesRef)->setCredentialManagementEnabled(flag);
+}
+
+bool WKPreferencesGetCredentialManagementEnabled(WKPreferencesRef preferencesRef)
+{
+ return toImpl(preferencesRef)->credentialManagementEnabled();
+}
+
void WKPreferencesSetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef, bool flag)
{
toImpl(preferencesRef)->setShowsToolTipOverTruncatedText(flag);
Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h (213675 => 213676)
--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h 2017-03-09 22:40:25 UTC (rev 213676)
@@ -481,6 +481,10 @@
WK_EXPORT void WKPreferencesSetLinkPreloadEnabled(WKPreferencesRef, bool flag);
WK_EXPORT bool WKPreferencesGetLinkPreloadEnabled(WKPreferencesRef);
+// Defaults to false
+WK_EXPORT void WKPreferencesSetCredentialManagementEnabled(WKPreferencesRef, bool flag);
+WK_EXPORT bool WKPreferencesGetCredentialManagementEnabled(WKPreferencesRef);
+
#ifdef __cplusplus
}
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (213675 => 213676)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2017-03-09 22:40:25 UTC (rev 213676)
@@ -3262,6 +3262,7 @@
RuntimeEnabledFeatures::sharedFeatures().setUserTimingEnabled(store.getBoolValueForKey(WebPreferencesKey::userTimingEnabledKey()));
RuntimeEnabledFeatures::sharedFeatures().setResourceTimingEnabled(store.getBoolValueForKey(WebPreferencesKey::resourceTimingEnabledKey()));
RuntimeEnabledFeatures::sharedFeatures().setLinkPreloadEnabled(store.getBoolValueForKey(WebPreferencesKey::linkPreloadEnabledKey()));
+ RuntimeEnabledFeatures::sharedFeatures().setCredentialManagementEnabled(store.getBoolValueForKey(WebPreferencesKey::credentialManagementEnabledKey()));
bool processSuppressionEnabled = store.getBoolValueForKey(WebPreferencesKey::pageVisibilityBasedProcessSuppressionEnabledKey());
if (m_processSuppressionEnabled != processSuppressionEnabled) {
Modified: trunk/Tools/ChangeLog (213675 => 213676)
--- trunk/Tools/ChangeLog 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Tools/ChangeLog 2017-03-09 22:40:25 UTC (rev 213676)
@@ -1,3 +1,25 @@
+2017-03-09 Daniel Bates <[email protected]>
+
+ Guard Credential Management implementation behind a runtime enabled feature flag
+ https://bugs.webkit.org/show_bug.cgi?id=169364
+ <rdar://problem/30957425>
+
+ Reviewed by Brent Fulgham.
+
+ Add a new test option header, enableCredentialManagement, to DumpRenderTree/WebKitTestRunner
+ to enable Credential Management.
+
+ * DumpRenderTree/TestOptions.h:
+ * DumpRenderTree/TestOptions.mm:
+ (TestOptions::TestOptions):
+ * DumpRenderTree/mac/DumpRenderTree.mm:
+ (enableExperimentalFeatures):
+ (setWebPreferencesForTestOptions):
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::resetPreferencesToConsistentValues):
+ (WTR::updateTestOptionsFromTestHeader):
+ * WebKitTestRunner/TestOptions.h:
+
2017-03-09 Anders Carlsson <[email protected]>
Add delegate support to WebCore
Modified: trunk/Tools/DumpRenderTree/TestOptions.h (213675 => 213676)
--- trunk/Tools/DumpRenderTree/TestOptions.h 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Tools/DumpRenderTree/TestOptions.h 2017-03-09 22:40:25 UTC (rev 213676)
@@ -32,6 +32,7 @@
bool enableIntersectionObserver { false };
bool enableModernMediaControls { true };
bool enablePointerLock { false };
+ bool enableCredentialManagement { false };
TestOptions(NSURL*, const TestCommand&);
};
Modified: trunk/Tools/DumpRenderTree/TestOptions.mm (213675 => 213676)
--- trunk/Tools/DumpRenderTree/TestOptions.mm 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Tools/DumpRenderTree/TestOptions.mm 2017-03-09 22:40:25 UTC (rev 213676)
@@ -86,6 +86,8 @@
this->enableModernMediaControls = parseBooleanTestHeaderValue(value);
else if (key == "enablePointerLock")
this->enablePointerLock = parseBooleanTestHeaderValue(value);
+ else if (key == "enableCredentialManagement")
+ this->enableCredentialManagement = parseBooleanTestHeaderValue(value);
pairStart = pairEnd + 1;
}
}
Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (213675 => 213676)
--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2017-03-09 22:40:25 UTC (rev 213676)
@@ -849,6 +849,7 @@
[preferences setWebGL2Enabled:YES];
[preferences setWebGPUEnabled:YES];
[preferences setPeerConnectionEnabled:YES];
+ [preferences setCredentialManagementEnabled:YES];
}
// Called before each test.
@@ -968,6 +969,7 @@
preferences.intersectionObserverEnabled = options.enableIntersectionObserver;
preferences.modernMediaControlsEnabled = options.enableModernMediaControls;
+ preferences.credentialManagementEnabled = options.enableCredentialManagement;
}
// Called once on DumpRenderTree startup.
Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (213675 => 213676)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2017-03-09 22:40:25 UTC (rev 213676)
@@ -678,6 +678,7 @@
WKPreferencesSetNeedsSiteSpecificQuirks(preferences, options.needsSiteSpecificQuirks);
WKPreferencesSetIntersectionObserverEnabled(preferences, options.enableIntersectionObserver);
WKPreferencesSetModernMediaControlsEnabled(preferences, options.enableModernMediaControls);
+ WKPreferencesSetCredentialManagementEnabled(preferences, options.enableCredentialManagement);
static WKStringRef defaultTextEncoding = WKStringCreateWithUTF8CString("ISO-8859-1");
WKPreferencesSetDefaultTextEncodingName(preferences, defaultTextEncoding);
@@ -1005,6 +1006,8 @@
testOptions.enableModernMediaControls = parseBooleanTestHeaderValue(value);
if (key == "enablePointerLock")
testOptions.enablePointerLock = parseBooleanTestHeaderValue(value);
+ if (key == "enableCredentialManagement")
+ testOptions.enableCredentialManagement = parseBooleanTestHeaderValue(value);
pairStart = pairEnd + 1;
}
}
Modified: trunk/Tools/WebKitTestRunner/TestOptions.h (213675 => 213676)
--- trunk/Tools/WebKitTestRunner/TestOptions.h 2017-03-09 22:39:09 UTC (rev 213675)
+++ trunk/Tools/WebKitTestRunner/TestOptions.h 2017-03-09 22:40:25 UTC (rev 213676)
@@ -46,6 +46,7 @@
bool enableIntersectionObserver { false };
bool enableModernMediaControls { true };
bool enablePointerLock { false };
+ bool enableCredentialManagement { false };
float deviceScaleFactor { 1 };
Vector<String> overrideLanguages;