[webkit-changes] [WebKit/WebKit] 5c92b6: ITP: Add quirk to allow google.com first party coo...

2022-12-13 Thread John Wilander
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5c92b693e90814ca9c95750b6b1344e05e24543e
  
https://github.com/WebKit/WebKit/commit/5c92b693e90814ca9c95750b6b1344e05e24543e
  Author: John Wilander 
  Date:   2022-12-13 (Tue, 13 Dec 2022)

  Changed paths:
M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm

  Log Message:
  ---
  ITP: Add quirk to allow google.com first party cookie access when redirected 
to by third-party googleusercontent.com
https://bugs.webkit.org/show_bug.cgi?id=249260


Reviewed by Brent Fulgham.

* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk 
const):

Canonical link: https://commits.webkit.org/257826@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] df01a6: [SKAdNetwork for Web Ads] Safari/WebKit should ind...

2022-10-13 Thread John Wilander
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: df01a61834c787c2cf953136a42e4b25b5f645e1
  
https://github.com/WebKit/WebKit/commit/df01a61834c787c2cf953136a42e4b25b5f645e1
  Author: John Wilander 
  Date:   2022-10-13 (Thu, 13 Oct 2022)

  Changed paths:
M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm

  Log Message:
  ---
  [SKAdNetwork for Web Ads] Safari/WebKit should indicate version as "4.0" when 
calling SKAdNetwork SPI
https://bugs.webkit.org/show_bug.cgi?id=246479


Reviewed by Alex Christensen.

* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::donateToSKAdNetwork):

Canonical link: https://commits.webkit.org/255514@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [287970] trunk

2022-01-12 Thread wilander
Title: [287970] trunk








Revision 287970
Author wilan...@apple.com
Date 2022-01-12 19:23:40 -0800 (Wed, 12 Jan 2022)


Log Message
PCM: Same-site triggering events should support ephemeral measurement
https://bugs.webkit.org/show_bug.cgi?id=235160


Reviewed by Alex Christensen.

Source/WebCore:

We added ephemeral measurement for direct response advertising in https://bugs.webkit.org/show_bug.cgi?id=228984.
We added support for same-site triggering events in https://bugs.webkit.org/show_bug.cgi?id=233173.
These two features should work together.

The bug was that WebKit::NetworkSession::handlePrivateClickMeasurementConversion()
only checked for cross-site triggering events when handling ephemeral measurements.

Test: http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html

* loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::isNeitherSameSiteNorCrossSiteTriggeringEvent):
New convenience function to enhance readability in
WebKit::NetworkSession::handlePrivateClickMeasurementConversion().
* loader/PrivateClickMeasurement.h:

Source/WebKit:

We added ephemeral measurement for direct response advertising in https://bugs.webkit.org/show_bug.cgi?id=228984.
We added support for same-site triggering events in https://bugs.webkit.org/show_bug.cgi?id=233173.
These two features should work together.

* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
This function previously only checked for cross-site triggering events when
handling ephemeral measurements. Now it also checks for same-site triggering
events.

LayoutTests:

* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt: Added.
* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp


Added Paths

trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html




Diff

Modified: trunk/LayoutTests/ChangeLog (287969 => 287970)

--- trunk/LayoutTests/ChangeLog	2022-01-13 03:21:22 UTC (rev 287969)
+++ trunk/LayoutTests/ChangeLog	2022-01-13 03:23:40 UTC (rev 287970)
@@ -1,3 +1,14 @@
+2022-01-12  John Wilander  
+
+PCM: Same-site triggering events should support ephemeral measurement
+https://bugs.webkit.org/show_bug.cgi?id=235160
+
+
+Reviewed by Alex Christensen.
+
+* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt: Added.
+* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html: Added.
+
 2022-01-12  Diego Pino Garcia  
 
 [GTK][WPE] Unreviewed test gardening, merge common WebRTC test failures


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt (0 => 287970)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt	2022-01-13 03:23:40 UTC (rev 287970)
@@ -0,0 +1,16 @@
+CONSOLE MESSAGE: [Private Click Measurement] Triggering event was not accepted because the conversion data could not be parsed or was higher than the allowed maximum of 15.
+CONSOLE MESSAGE: Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin. Status code: 404
+CONSOLE MESSAGE: Fetch API cannot load https://localhost:8443/.well-known/private-click-measurement/trigger-attribution/Dummy?attributionSource=https://127.0.0.1 due to access control checks.
+Tests triggering of ephemeral private click measurement attribution with same-site triggering event request.
+
+
+Attributed Private Click Measurements:
+WebCore::PrivateClickMeasurement 1
+Source site: 127.0.0.1
+Attribute on site: localhost
+Source ID: 3
+Attribution trigger data: 12
+Attribution priority: 0
+Attribution earliest time to send: Within 24-48 hours
+Destination token: Not set
+Application bundle identifier: testBundleID


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html (0 => 287970)

--- trunk/LayoutTests/h

[webkit-changes] [287665] trunk/Source/WTF

2022-01-05 Thread wilander
Title: [287665] trunk/Source/WTF








Revision 287665
Author wilan...@apple.com
Date 2022-01-05 18:12:18 -0800 (Wed, 05 Jan 2022)


Log Message
Change version number for HAVE_RSA_PSS_OID
https://bugs.webkit.org/show_bug.cgi?id=234904


Reviewed by Alex Christensen.

* wtf/PlatformHave.h:

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/PlatformHave.h




Diff

Modified: trunk/Source/WTF/ChangeLog (287664 => 287665)

--- trunk/Source/WTF/ChangeLog	2022-01-06 02:09:04 UTC (rev 287664)
+++ trunk/Source/WTF/ChangeLog	2022-01-06 02:12:18 UTC (rev 287665)
@@ -1,3 +1,13 @@
+2022-01-05  John Wilander  
+
+Change version number for HAVE_RSA_PSS_OID
+https://bugs.webkit.org/show_bug.cgi?id=234904
+
+
+Reviewed by Alex Christensen.
+
+* wtf/PlatformHave.h:
+
 2022-01-05  Tim Horton  
 
 Momentum Event Dispatcher: Momentum tails may get truncated if the duration runs longer than the system's


Modified: trunk/Source/WTF/wtf/PlatformHave.h (287664 => 287665)

--- trunk/Source/WTF/wtf/PlatformHave.h	2022-01-06 02:09:04 UTC (rev 287664)
+++ trunk/Source/WTF/wtf/PlatformHave.h	2022-01-06 02:12:18 UTC (rev 287665)
@@ -942,10 +942,10 @@
 #define HAVE_VM_FLAGS_PERMANENT 1
 #endif
 
-#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 120400) \
-|| (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 150400) \
-|| (PLATFORM(APPLETV) && __TV_OS_VERSION_MAX_ALLOWED >= 150400) \
-|| (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MAX_ALLOWED >= 80400)
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 120300) \
+|| (PLATFORM(IOS_FAMILY) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 150300) \
+|| (PLATFORM(APPLETV) && __TV_OS_VERSION_MAX_ALLOWED >= 150300) \
+|| (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MAX_ALLOWED >= 80300)
 #define HAVE_RSA_PSS_OID 1
 #endif
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [287123] trunk/Tools

2021-12-15 Thread wilander
Title: [287123] trunk/Tools








Revision 287123
Author wilan...@apple.com
Date 2021-12-15 19:33:41 -0800 (Wed, 15 Dec 2021)


Log Message
TestWebKitAPI.PrivateClickMeasurement.MigrateWithDestinationToken is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=234335


Unreviewed test gardening.


* TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(cleanUp):
Made the function sleep-wait until the file is indeed deleted.

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm




Diff

Modified: trunk/Tools/ChangeLog (287122 => 287123)

--- trunk/Tools/ChangeLog	2021-12-16 02:15:38 UTC (rev 287122)
+++ trunk/Tools/ChangeLog	2021-12-16 03:33:41 UTC (rev 287123)
@@ -1,3 +1,15 @@
+2021-12-15  John Wilander  
+
+TestWebKitAPI.PrivateClickMeasurement.MigrateWithDestinationToken is a flaky failure
+https://bugs.webkit.org/show_bug.cgi?id=234335
+
+
+Unreviewed test gardening.
+
+* TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
+(cleanUp):
+Made the function sleep-wait until the file is indeed deleted.
+
 2021-12-15  Jonathan Bedard  
 
 [reporelaypy] Forward branches to alternate remote


Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm (287122 => 287123)

--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm	2021-12-16 02:15:38 UTC (rev 287122)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm	2021-12-16 03:33:41 UTC (rev 287123)
@@ -316,6 +316,8 @@
 NSFileManager *defaultFileManager = NSFileManager.defaultManager;
 NSString *itpRoot = WKWebsiteDataStore.defaultDataStore._configuration._resourceLoadStatisticsDirectory.path;
 [defaultFileManager removeItemAtPath:itpRoot error:nil];
+while ([defaultFileManager fileExistsAtPath:itpRoot])
+usleep(1);
 EXPECT_FALSE([defaultFileManager fileExistsAtPath:itpRoot]);
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [287013] trunk

2021-12-13 Thread wilander
Title: [287013] trunk








Revision 287013
Author wilan...@apple.com
Date 2021-12-13 23:56:44 -0800 (Mon, 13 Dec 2021)


Log Message
PCM: Remove old DB update and migration code, and add a unit test for destination token DB columns
https://bugs.webkit.org/show_bug.cgi?id=234281


Reviewed by Alex Christensen and Kate Cheney.

Source/WebKit:

WebKit::Database::needsUpdatedSchema() in PrivateClickMeasurement.cpp has a comment saying it
should be removed late 2021. WebKit::DatabaseUtilities::migrateDataToNewTablesIfNecessary()
returns directly if WebKit::Database::needsUpdatedSchema() returns false so always returning
false for WebKit::Database::needsUpdatedSchema() in PrivateClickMeasurement.cpp effectively
disables WebKit::DatabaseUtilities::migrateDataToNewTablesIfNecessary() for PCM.

New unit/API test PrivateClickMeasurement.MigrateWithDestinationToken added.

* NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:
(WebKit::PCM::Database::Database):
No longer calls the deleted DatabaseUtilities::migrateDataToNewTablesIfNecessary().
(WebKit::PCM::Database::attributionToStringForTesting const):
Now outputs destination token info.
(WebKit::PCM::Database::needsUpdatedSchema): Deleted.
* NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h:
needsUpdatedSchema() now always returns false.

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(addAttributedPCMv5):
(pollUntilPCMIsMigrated):
Now takes a parameter UsingDestinationToken and handles its expectation
accordingly.
(TEST):
New test PrivateClickMeasurement.MigrateWithDestinationToken.

LayoutTests:

These expect files are just updated with destination token dump output.

* http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt:
* http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt:
* http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt:
* http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt:
* http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt:
* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/second-conversion-with-higher-priority-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/second-conversion-with-lower-priority-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-expected.txt
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm




Diff

Modified: trunk/LayoutTests/ChangeLog (287012 => 287013)

--- trunk/LayoutTests/ChangeLog	2021-12-14 07:07:39 UTC (rev 287012)
+++ trunk/LayoutTests/ChangeLog	2021-12-14 07:56:44 UTC (rev 287013)
@@ -1,3 +1,24 @@
+2021-12-13  John Wilander  
+
+PCM: Remove old DB update and migration code, and add a unit test for destination token DB columns
+https://bugs.webkit.org/show_bug.cgi?id=234281
+
+
+Reviewed by Alex Christensen and Kate Cheney.
+
+These expect files are just updated with destination token dump output.
+
+* http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.

[webkit-changes] [286582] trunk/Tools

2021-12-06 Thread wilander
Title: [286582] trunk/Tools








Revision 286582
Author wilan...@apple.com
Date 2021-12-06 17:19:58 -0800 (Mon, 06 Dec 2021)


Log Message
Add WebCore::RegistrableDomain tests for duplicate sub domains
https://bugs.webkit.org/show_bug.cgi?id=233902


Unreviewed expansion of the RegistrableDomain.MatchesURLs API test.

https://bugs.webkit.org/show_bug.cgi?id=20 claims that duplicate sub domains
such as news.news.example.com causes WebKit's RegistrableDomain matching to fail
and treat same-site content as cross-site. This patch add tests of such duplicate
sub domains.


* TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp:
(TestWebKitAPI::TEST):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp




Diff

Modified: trunk/Tools/ChangeLog (286581 => 286582)

--- trunk/Tools/ChangeLog	2021-12-07 01:15:26 UTC (rev 286581)
+++ trunk/Tools/ChangeLog	2021-12-07 01:19:58 UTC (rev 286582)
@@ -1,3 +1,19 @@
+2021-12-06  John Wilander  
+
+Add WebCore::RegistrableDomain tests for duplicate sub domains
+https://bugs.webkit.org/show_bug.cgi?id=233902
+
+
+Unreviewed expansion of the RegistrableDomain.MatchesURLs API test.
+
+https://bugs.webkit.org/show_bug.cgi?id=20 claims that duplicate sub domains
+such as news.news.example.com causes WebKit's RegistrableDomain matching to fail
+and treat same-site content as cross-site. This patch add tests of such duplicate
+sub domains.
+
+* TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp:
+(TestWebKitAPI::TEST):
+
 2021-12-06  Brady Eidson  
 
 webpushd/webpushtool debugging additions


Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp (286581 => 286582)

--- trunk/Tools/TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp	2021-12-07 01:15:26 UTC (rev 286581)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp	2021-12-07 01:19:58 UTC (rev 286582)
@@ -58,13 +58,19 @@
 URL webkitURL { URL(), "https://webkit.org" };
 URL webkitURLWithPath { URL(), "https://webkit.org/road/to/nowhere/" };
 URL webkitSubdomainURL { URL(), "https://sub.domain.webkit.org" };
+URL webkitOtherSubdomainURL { URL(), "https://sub.other.webkit.org" };
+URL webkitDuplicateSubdomainURL { URL(), "https://domain.domain.webkit.org" };
 URL webkitSubdomainURLWithPath { URL(), "https://sub.domain.webkit.org/road/to/nowhere/" };
 RegistrableDomain webkitDomain { webkitURL };
+RegistrableDomain webkitSubdomain { webkitSubdomainURL };
 
 ASSERT_TRUE(webkitDomain.matches(webkitURL));
 ASSERT_TRUE(webkitDomain.matches(webkitURLWithPath));
 ASSERT_TRUE(webkitDomain.matches(webkitSubdomainURL));
+ASSERT_TRUE(webkitDomain.matches(webkitDuplicateSubdomainURL));
 ASSERT_TRUE(webkitDomain.matches(webkitSubdomainURLWithPath));
+ASSERT_TRUE(webkitSubdomain.matches(webkitOtherSubdomainURL));
+ASSERT_TRUE(webkitSubdomain.matches(webkitDuplicateSubdomainURL));
 
 URL localhostURL { URL(), "http://localhost" };
 URL localhostURLWithPath { URL(), "http://localhost/road/to/nowhere/" };






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [285967] trunk

2021-11-17 Thread wilander
orkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h:

Source/WTF:

* wtf/URL.cpp:
(WTF::queryParameters):
New convenience getter.
* wtf/URL.h:

Tools:

These changes are just a correction of a function name:
sourceUnlinkableToken() to sourceSecretToken()

* TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:
(TestWebKitAPI::TEST):

LayoutTests:

* http/tests/privateClickMeasurement/resources/redirectToConversionWithAttributionSource.py: Added.
* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-expected.txt: Added.
* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/URL.cpp
trunk/Source/WTF/wtf/URL.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLAnchorElement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp
trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm


Added Paths

trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionWithAttributionSource.py
trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive.html




Diff

Modified: trunk/LayoutTests/ChangeLog (285966 => 285967)

--- trunk/LayoutTests/ChangeLog	2021-11-18 00:38:36 UTC (rev 285966)
+++ trunk/LayoutTests/ChangeLog	2021-11-18 01:08:40 UTC (rev 285967)
@@ -1,3 +1,15 @@
+2021-11-17  John Wilander  
+
+PCM: Add capability for click destination to fire triggering event without cross-site requests to the click source
+https://bugs.webkit.org/show_bug.cgi?id=233173
+
+
+Reviewed by Alex Christensen.
+
+* http/tests/privateClickMeasurement/resources/redirectToConversionWithAttributionSource.py: Added.
+* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-expected.txt: Added.
+* http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive.html: Added.
+
 2021-11-17  Ryan Haddad  
 
 [iOS] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_window_open_download_block_downloads.tentative.html is frequently failing


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionWithAttributionSource.py (0 => 285967)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionWithAttributionSource.py	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionWithAttributionSource.py	2021-11-18 01:08:40 UTC (rev 285967)
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+import time
+from urllib.parse import parse_qs
+
+query = parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True)
+delay_ms = query.get('delay_ms', [None])[0]
+conversion_data = query.get('conversionData', [None])[0]
+priority = query.get('priority', [None])[0]
+
+if delay_ms is not None:
+time.sleep(int(delay_ms) * 0.001)
+
+sys.stdout.write(
+'status: 302\r\n'
+'Cache-Control: no-cache, no-store, must-revalidate\r\n'
+'Access-Control-Allow-Origin: *\r\n'
+'Access-Control-Allow-Methods: GET\r\n'
+'Content-Type: text/html\r\n'
+)
+
+if conversion_data is not None and priority is not None:
+sys.stdout.write('Location: /.well-known/private-click-measurement/trigger-attribution/{}/{}?attributionSource=https://127.0.0.1\r\n'.format(conversion_data, priority))
+elif conversion_data is not None:
+sys.stdout.write('Location: /.well-known/private-click-measurement/trigger-attribution/{}?attributionSource=https://127.0.0.1\r\n'.format(conversion_data))
+
+sys.stdout.write('\r\n')
Property changes on: trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionWithAttributionSo

[webkit-changes] [284899] trunk/LayoutTests

2021-10-26 Thread wilander
Title: [284899] trunk/LayoutTests








Revision 284899
Author wilan...@apple.com
Date 2021-10-26 14:39:45 -0700 (Tue, 26 Oct 2021)


Log Message
[ iOS 15 ] ASSERTION FAILED: isRunningTest(WebCore::applicationBundleIdentifier())
https://bugs.webkit.org/show_bug.cgi?id=231255

Kate's fix in https://commits.webkit.org/r284897 should now have removed the
cause of these assertion failures.

Unreviewed test gardening.


* platform/ios-wk2/TestExpectations:
Removed test expectation that was added in https://trac.webkit.org/changeset/284881/webkit

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios-wk2/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (284898 => 284899)

--- trunk/LayoutTests/ChangeLog	2021-10-26 21:36:10 UTC (rev 284898)
+++ trunk/LayoutTests/ChangeLog	2021-10-26 21:39:45 UTC (rev 284899)
@@ -1,3 +1,16 @@
+2021-10-26  John Wilander  
+
+[ iOS 15 ] ASSERTION FAILED: isRunningTest(WebCore::applicationBundleIdentifier())
+https://bugs.webkit.org/show_bug.cgi?id=231255
+
+Kate's fix in https://commits.webkit.org/r284897 should now have removed the
+cause of these assertion failures.
+
+Unreviewed test gardening.
+
+* platform/ios-wk2/TestExpectations:
+Removed test expectation that was added in https://trac.webkit.org/changeset/284881/webkit
+
 2021-10-26  Chris Dumez  
 
 error event should be fired at 

[webkit-changes] [284848] trunk

2021-10-25 Thread wilander
Title: [284848] trunk








Revision 284848
Author wilan...@apple.com
Date 2021-10-25 16:39:50 -0700 (Mon, 25 Oct 2021)


Log Message
Remove assert failure expectations after r284846 landed
https://bugs.webkit.org/show_bug.cgi?id=232048

https://bugs.webkit.org/show_bug.cgi?id=232102

https://bugs.webkit.org/show_bug.cgi?id=231255

https://bugs.webkit.org/show_bug.cgi?id=231431


Unreviewed test gardening.

Depends on this fix: https://trac.webkit.org/changeset/284846/webkit


Source/WebKit:

* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting):
Removed comment with Bugzilla reference.
I decided to keep the logging since it was so useful in finding the root
cause of the assertion crashes. Logging is only triggered when we will
fail the assertion.

LayoutTests:

* platform/ios-wk2/TestExpectations:
Removed crash expectations now that the app bundle ID setting for InAppBrowserPrivacy
API tests is being cleared after each test.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios-wk2/TestExpectations
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (284847 => 284848)

--- trunk/LayoutTests/ChangeLog	2021-10-25 23:33:27 UTC (rev 284847)
+++ trunk/LayoutTests/ChangeLog	2021-10-25 23:39:50 UTC (rev 284848)
@@ -1,3 +1,23 @@
+2021-10-25  John Wilander  
+
+Remove assert failure expectations after r284846 landed
+https://bugs.webkit.org/show_bug.cgi?id=232048
+
+https://bugs.webkit.org/show_bug.cgi?id=232102
+
+https://bugs.webkit.org/show_bug.cgi?id=231255
+
+https://bugs.webkit.org/show_bug.cgi?id=231431
+
+
+Unreviewed test gardening.
+
+Depends on this fix: https://trac.webkit.org/changeset/284846/webkit
+
+* platform/ios-wk2/TestExpectations:
+Removed crash expectations now that the app bundle ID setting for InAppBrowserPrivacy
+API tests is being cleared after each test.
+
 2021-10-25  Eric Hutchison  
 
 [ Mac wk1 ] 2 media-capabilities/webrtc tests are flaky failures.


Modified: trunk/LayoutTests/platform/ios-wk2/TestExpectations (284847 => 284848)

--- trunk/LayoutTests/platform/ios-wk2/TestExpectations	2021-10-25 23:33:27 UTC (rev 284847)
+++ trunk/LayoutTests/platform/ios-wk2/TestExpectations	2021-10-25 23:39:50 UTC (rev 284848)
@@ -2150,12 +2150,6 @@
 
 webkit.org/b/222563 [ Release ] http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html [ Pass Failure ]
 
-webkit.org/b/231255 http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html [ Pass Crash ]
-
-webkit.org/b/231431 http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html [ Pass Crash ]
-
-webkit.org/b/231748 http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html [ Pass Crash ]
-
 webkit.org/b/229563 imported/w3c/web-platform-tests/css/css-display/display-contents-blockify-dynamic.html [ Pass Timeout ]
 
 webkit.org/b/229567 [ Release ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html [ Pass ImageOnlyFailure ]
@@ -2228,8 +,6 @@
 
 webkit.org/b/232099 imported/w3c/web-platform-tests/websockets/Close-1000.any.html [ Pass Crash ]
 
-webkit.org/b/232102 http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html [ Pass Crash ]
-
 webkit.org/b/232120 imported/w3c/web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-multiple-hashing-algorithms.html [ Pass Failure DumpJSConsoleLogInStdErr ]
 
 webkit.org/b/225528 http/wpt/fetch/fetch-response-body-stop-in-worker.html [ Pass Crash ]


Modified: trunk/Source/WebKit/ChangeLog (284847 => 284848)

--- trunk/Source/WebKit/ChangeLog	2021-10-25 23:33:27 UTC (rev 284847)
+++ trunk/Source/WebKit/ChangeLog	2021-10-25 23:39:50 UTC (rev 284848)
@@ -1,3 +1,26 @@
+2021-10-25  John Wilander  
+
+Remove assert failure expectations after r284846 landed
+https://bugs.webkit.org/show_bug.cgi?id=232048
+
+https://bugs.webkit.org/show_bug.cgi?id=232102
+
+https://bugs.webkit.org/show_bug.cgi?id=231255
+
+https://bugs.webkit.org/show_bug.cgi?id=231431
+
+
+Unreviewed test gardening.
+
+Depends on this fix: https://trac.webkit.org/changeset/284846/webkit
+
+* NetworkProcess/NetworkSession.cpp:
+(WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting):
+Removed comment with Bugzilla reference.
+I decided to keep the logging since it was so useful in finding the root
+cause of the assertion crashes. Logging is only triggered when we will
+fail the assertion.
+
 2021-10-25  Wen

[webkit-changes] [284653] trunk/LayoutTests

2021-10-21 Thread wilander
Title: [284653] trunk/LayoutTests








Revision 284653
Author wilan...@apple.com
Date 2021-10-21 16:46:00 -0700 (Thu, 21 Oct 2021)


Log Message
PCM: Change expectation to pass so we can investigate http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html
https://bugs.webkit.org/show_bug.cgi?id=232115

Unreviewed test gardening.


* platform/ios-wk2/TestExpectations:
Removed expectation added in https://trac.webkit.org/changeset/284572/webkit.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios-wk2/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (284652 => 284653)

--- trunk/LayoutTests/ChangeLog	2021-10-21 23:13:02 UTC (rev 284652)
+++ trunk/LayoutTests/ChangeLog	2021-10-21 23:46:00 UTC (rev 284653)
@@ -1,3 +1,13 @@
+2021-10-21  John Wilander  
+
+PCM: Change expectation to pass so we can investigate http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html
+https://bugs.webkit.org/show_bug.cgi?id=232115
+
+Unreviewed test gardening.
+
+* platform/ios-wk2/TestExpectations:
+Removed expectation added in https://trac.webkit.org/changeset/284572/webkit.
+
 2021-10-21  Sihui Liu  
 
 FileSystemSyncAccessHandle should close platform file handle on close()


Modified: trunk/LayoutTests/platform/ios-wk2/TestExpectations (284652 => 284653)

--- trunk/LayoutTests/platform/ios-wk2/TestExpectations	2021-10-21 23:13:02 UTC (rev 284652)
+++ trunk/LayoutTests/platform/ios-wk2/TestExpectations	2021-10-21 23:46:00 UTC (rev 284653)
@@ -2230,8 +2230,6 @@
 
 webkit.org/b/231780 [ Debug ] imported/w3c/web-platform-tests/webrtc/simulcast/basic.https.html [ Pass Failure ]
 
-webkit.org/b/232048 http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html [ Pass Crash ]
-
 webkit.org/b/232099 imported/w3c/web-platform-tests/websockets/Close-1000.any.html [ Pass Crash ]
 
 webkit.org/b/232102 http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html [ Pass Crash ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [284649] trunk/Source/WebKit

2021-10-21 Thread wilander
Title: [284649] trunk/Source/WebKit








Revision 284649
Author wilan...@apple.com
Date 2021-10-21 15:28:30 -0700 (Thu, 21 Oct 2021)


Log Message
PCM: Add temporary logging when isRunningTest() assertion is about to fail to be able to investigate
https://bugs.webkit.org/show_bug.cgi?id=232108

Unreviewed. Just adding logging for test-only functionality.

This patch adds logging to when we are about to fail the assert of isRunningTest() in
WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting)(). This is
added to help investigate https://bugs.webkit.org/show_bug.cgi?id=232048.


* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (284648 => 284649)

--- trunk/Source/WebKit/ChangeLog	2021-10-21 21:49:28 UTC (rev 284648)
+++ trunk/Source/WebKit/ChangeLog	2021-10-21 22:28:30 UTC (rev 284649)
@@ -1,3 +1,17 @@
+2021-10-21  John Wilander  
+
+PCM: Add temporary logging when isRunningTest() assertion is about to fail to be able to investigate
+https://bugs.webkit.org/show_bug.cgi?id=232108
+
+Unreviewed. Just adding logging for test-only functionality.
+
+This patch adds logging to when we are about to fail the assert of isRunningTest() in
+WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting)(). This is
+added to help investigate https://bugs.webkit.org/show_bug.cgi?id=232048.
+
+* NetworkProcess/NetworkSession.cpp:
+(WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting):
+
 2021-10-21  Simon Fraser  
 
 Rare crash under DisplayLink::displayLinkCallback()


Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp (284648 => 284649)

--- trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp	2021-10-21 21:49:28 UTC (rev 284648)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp	2021-10-21 22:28:30 UTC (rev 284649)
@@ -455,6 +455,10 @@
 void NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting(String&& appBundleIDForTesting)
 {
 #if PLATFORM(COCOA)
+// FIXME: Remove this logging once https://bugs.webkit.org/show_bug.cgi?id=232048 has been resolved.
+auto appBundleID = WebCore::applicationBundleIdentifier();
+if (!isRunningTest(appBundleID))
+WTFLogAlways("isRunningTest() returned false. appBundleID is %s.", appBundleID.isEmpty() ? "empty" : appBundleID.utf8().data());
 RELEASE_ASSERT(isRunningTest(WebCore::applicationBundleIdentifier()));
 #endif
 privateClickMeasurement().setPrivateClickMeasurementAppBundleIDForTesting(WTFMove(appBundleIDForTesting));






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [284473] trunk/LayoutTests

2021-10-19 Thread wilander
Title: [284473] trunk/LayoutTests








Revision 284473
Author wilan...@apple.com
Date 2021-10-19 11:43:20 -0700 (Tue, 19 Oct 2021)


Log Message
http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231379


Reviewed by Chris Dumez.

* http/tests/resourceLoadStatistics/resources/redirect.py:
Added the response header 'Cache-Control: no-cache, no-store'.
Historically, we've had problems with redirects getting cached
so that they don't hit the network. In this particular case,
the same redirect is being done in different orders and might
fall into the cache trap.
* platform/mac-wk2/TestExpectations:
Removed [Pass Failure] expectation for sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/redirect.py
trunk/LayoutTests/platform/mac-wk2/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (284472 => 284473)

--- trunk/LayoutTests/ChangeLog	2021-10-19 18:41:13 UTC (rev 284472)
+++ trunk/LayoutTests/ChangeLog	2021-10-19 18:43:20 UTC (rev 284473)
@@ -1,3 +1,20 @@
+2021-10-19  John Wilander  
+
+http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html is a flaky failure
+https://bugs.webkit.org/show_bug.cgi?id=231379
+
+
+Reviewed by Chris Dumez.
+
+* http/tests/resourceLoadStatistics/resources/redirect.py:
+Added the response header 'Cache-Control: no-cache, no-store'.
+Historically, we've had problems with redirects getting cached
+so that they don't hit the network. In this particular case,
+the same redirect is being done in different orders and might
+fall into the cache trap.
+* platform/mac-wk2/TestExpectations:
+Removed [Pass Failure] expectation for sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html.
+
 2021-10-19  Youenn Fablet  
 
 Guarantee order of WebSocket events in case of being resumed


Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/redirect.py (284472 => 284473)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/redirect.py	2021-10-19 18:41:13 UTC (rev 284472)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/redirect.py	2021-10-19 18:43:20 UTC (rev 284473)
@@ -7,12 +7,12 @@
 query = parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True)
 redirect_url = query.get('redirectTo', [''])[0]
 
-sys.stdout.write('Content-Type: text/html\r\n')
-
 for name in ['name2', 'name3', 'message']:
 query_name = query.get(name, [None])[0]
 if query_name:
 redirect_url += '&{}={}'.format(name, query_name)
 
+sys.stdout.write('Content-Type: text/html\r\n')
+sys.stdout.write('Cache-Control: no-cache, no-store\r\n')
 sys.stdout.write('Location: {}\r\n\r\n'.format(redirect_url))
 sys.exit(0)
\ No newline at end of file


Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (284472 => 284473)

--- trunk/LayoutTests/platform/mac-wk2/TestExpectations	2021-10-19 18:41:13 UTC (rev 284472)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations	2021-10-19 18:43:20 UTC (rev 284473)
@@ -1668,8 +1668,6 @@
 
 webkit.org/b/231083 [ Debug ] imported/w3c/web-platform-tests/content-security-policy/generic/policy-inherited-correctly-by-plznavigate.html [ Pass Failure ]
 
-webkit.org/b/231379 [ BigSur Release ] http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html [ Pass Failure ]
-
 webkit.org/b/231386 [ BigSur ] http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html [ Pass Timeout ]
 
 webkit.org/b/231600 [ Release ] imported/w3c/web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window.html [ Pass Failure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [284229] trunk/Tools

2021-10-14 Thread wilander
Title: [284229] trunk/Tools








Revision 284229
Author wilan...@apple.com
Date 2021-10-14 19:55:32 -0700 (Thu, 14 Oct 2021)


Log Message
TestWebKitAPI.PrivateClickMeasurement.FraudPrevention is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=231393


Reviewed by Alex Christensen and Kate Cheney as part of https://bugs.webkit.org/show_bug.cgi?id=231553.

* TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
PrivateClickMeasurement.FraudPrevention fixed. It was missing a call to
_setPrivateClickMeasurementAppBundleIDForTesting() so that the app bundle ID
for the triggering event matches the app bundle ID where the click happened.

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm




Diff

Modified: trunk/Tools/ChangeLog (284228 => 284229)

--- trunk/Tools/ChangeLog	2021-10-15 02:21:54 UTC (rev 284228)
+++ trunk/Tools/ChangeLog	2021-10-15 02:55:32 UTC (rev 284229)
@@ -1,3 +1,17 @@
+2021-10-14  John Wilander  
+
+TestWebKitAPI.PrivateClickMeasurement.FraudPrevention is a constant timeout
+https://bugs.webkit.org/show_bug.cgi?id=231393
+
+
+Reviewed by Alex Christensen and Kate Cheney as part of https://bugs.webkit.org/show_bug.cgi?id=231553.
+
+* TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
+(TestWebKitAPI::TEST):
+PrivateClickMeasurement.FraudPrevention fixed. It was missing a call to
+_setPrivateClickMeasurementAppBundleIDForTesting() so that the app bundle ID
+for the triggering event matches the app bundle ID where the click happened.
+
 2021-10-14  Lauro Moura  
 
 [webkitpy] Occasional exception thrown in change_result_to_failure when repeating flaky layout tests


Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm (284228 => 284229)

--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm	2021-10-15 02:21:54 UTC (rev 284228)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm	2021-10-15 02:55:32 UTC (rev 284229)
@@ -317,8 +317,10 @@
 [webView _setPrivateClickMeasurementOverrideTimerForTesting:YES completionHandler:^{
 [webView _setPrivateClickMeasurementAttributionTokenPublicKeyURLForTesting:serverURL completionHandler:^{
 [webView _setPrivateClickMeasurementAttributionTokenSignatureURLForTesting:serverURL completionHandler:^{
-NSString *html = [NSString stringWithFormat:@"setTimeout(function(){ fetch('%@conversionRequestBeforeRedirect',{mode:'no-cors'}); }, 100);", serverURL];
-[webView loadHTMLString:html baseURL:exampleURL()];
+[webView _setPrivateClickMeasurementAppBundleIDForTesting:@"test.bundle.id" completionHandler:^{
+NSString *html = [NSString stringWithFormat:@"setTimeout(function(){ fetch('%@conversionRequestBeforeRedirect',{mode:'no-cors'}); }, 100);", serverURL];
+[webView loadHTMLString:html baseURL:exampleURL()];
+}];
 }];
 }];
 }];






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [283593] trunk

2021-10-05 Thread wilander
Title: [283593] trunk








Revision 283593
Author wilan...@apple.com
Date 2021-10-05 17:46:43 -0700 (Tue, 05 Oct 2021)


Log Message
PCM: Allow measurement of links in nested, cross-site iframes
https://bugs.webkit.org/show_bug.cgi?id=229204


Reviewed by Alex Christensen.

Developers have said it would be great to allow measurement of links served in
nested, cross-site iframes on the click source. The click still count as if it
happened on the first party click source site, and any attribution report still
goes to that first party. This change enables the *serving* of measurable links
in nested, cross-site iframes.

The standards issue where this was discussed:
https://github.com/privacycg/private-click-measurement/issues/7

Source/WebCore:

Test: http/tests/privateClickMeasurement/store-private-click-measurement-nested.html

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
Removed the block for nested, cross-site iframes.

LayoutTests:

* http/tests/privateClickMeasurement/resources/nestedTargetLink.html: Added.
* http/tests/privateClickMeasurement/store-private-click-measurement-nested-expected.txt: Added.
* http/tests/privateClickMeasurement/store-private-click-measurement-nested.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLAnchorElement.cpp


Added Paths

trunk/LayoutTests/http/tests/privateClickMeasurement/resources/nestedTargetLink.html
trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-nested-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-nested.html




Diff

Modified: trunk/LayoutTests/ChangeLog (283592 => 283593)

--- trunk/LayoutTests/ChangeLog	2021-10-06 00:42:35 UTC (rev 283592)
+++ trunk/LayoutTests/ChangeLog	2021-10-06 00:46:43 UTC (rev 283593)
@@ -1,3 +1,24 @@
+2021-10-05  John Wilander  
+
+PCM: Allow measurement of links in nested, cross-site iframes
+https://bugs.webkit.org/show_bug.cgi?id=229204
+
+
+Reviewed by Alex Christensen.
+
+Developers have said it would be great to allow measurement of links served in
+nested, cross-site iframes on the click source. The click still count as if it
+happened on the first party click source site, and any attribution report still
+goes to that first party. This change enables the *serving* of measurable links
+in nested, cross-site iframes.
+
+The standards issue where this was discussed:
+https://github.com/privacycg/private-click-measurement/issues/7
+
+* http/tests/privateClickMeasurement/resources/nestedTargetLink.html: Added.
+* http/tests/privateClickMeasurement/store-private-click-measurement-nested-expected.txt: Added.
+* http/tests/privateClickMeasurement/store-private-click-measurement-nested.html: Added.
+
 2021-10-05  Fujii Hironori  
 
 [WinCairo] Unreviewed test gardening after r283550


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/resources/nestedTargetLink.html (0 => 283593)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/resources/nestedTargetLink.html	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/resources/nestedTargetLink.html	2021-10-06 00:46:43 UTC (rev 283593)
@@ -0,0 +1,10 @@
+
+
+
+
+Nested target link
+
+
+Link
+
+
\ No newline at end of file


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-nested-expected.txt (0 => 283593)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-nested-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-nested-expected.txt	2021-10-06 00:46:43 UTC (rev 283593)
@@ -0,0 +1,9 @@
+Tests storage of private click measurement with nested links.
+
+Unattributed Private Click Measurements:
+WebCore::PrivateClickMeasurement 1
+Source site: 127.0.0.1
+Attribute on site: localhost
+Source ID: 3
+No attribution trigger data.
+Application bundle identifier: testBundleID


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-nested.html (0 => 283593)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-nested.html	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-nested.html	2021-10-06 00:46:43 UTC (rev 283593)
@@ -0,0 +1,55 @@
+ 
+
+
+
+
+
+<body _onload_="setTimeout(runTest, 0)">
+<div id="description">Tests storage of private click measurement with nested links.</div>
+<div id="output"></div>
+<script>
+prepareTest();
+
+function activateLink() {
+let element = document.getElementById("

[webkit-changes] [283342] trunk

2021-09-30 Thread wilander
Title: [283342] trunk








Revision 283342
Author wilan...@apple.com
Date 2021-09-30 15:42:17 -0700 (Thu, 30 Sep 2021)


Log Message
PCM: Change WebIDL attributes from all lowercase to camelcase to match spec and align with Attribution Reporting API
https://bugs.webkit.org/show_bug.cgi?id=230914


Reviewed by Brent Fulgham.

This patch changes Private Click Measurement's WebIDL attributes from
all lowercase to camelcase to match the spec and align with the
Attribution Reporting API proposal.

References
- Private Click Measurement proposal: https://privacycg.github.io/private-click-measurement/#linkformat
- Attribution Reporting API proposal: https://wicg.github.io/conversion-measurement-api/#monkeypatch-anchor

Source/WebCore:

Existing tests updated.

* html/HTMLAnchorElement.idl:

LayoutTests:

* http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt:
* http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
* http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html
trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLAnchorElement.idl




Diff

Modified: trunk/LayoutTests/ChangeLog (283341 => 283342)

--- trunk/LayoutTests/ChangeLog	2021-09-30 22:34:21 UTC (rev 283341)
+++ trunk/LayoutTests/ChangeLog	2021-09-30 22:42:17 UTC (rev 283342)
@@ -1,3 +1,23 @@
+2021-09-30  John Wilander  
+
+PCM: Change WebIDL attributes from all lowercase to camelcase to match spec and align with Attribution Reporting API
+https://bugs.webkit.org/show_bug.cgi?id=230914
+
+
+Reviewed by Brent Fulgham.
+
+This patch changes Private Click Measurement's WebIDL attributes from
+all lowercase to camelcase to match the spec and align with the
+Attribution Reporting API proposal.
+
+References
+- Private Click Measurement proposal: https://privacycg.github.io/private-click-measurement/#linkformat
+- Attribution Reporting API proposal: https://wicg.github.io/conversion-measurement-api/#monkeypatch-anchor
+
+* http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt:
+* http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
+* http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:
+
 2021-09-30  Ziran Sun  
 
 [css-grid]  Transfer sizes from the aspect-ratio while resolving min-length for auto repetitions


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt (283341 => 283342)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt	2021-09-30 22:34:21 UTC (rev 283341)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt	2021-09-30 22:42:17 UTC (rev 283342)
@@ -1,10 +1,10 @@
-Test for the new private click measurement attributes on anchor tags.
+Test for private click measurement attributes on anchor tags.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS anchorTag.attributionsourceid is 40
-PASS anchorTag.attributiondestination is "https://destination.example"
+PASS anchorTag.attributionSourceId is 40
+PASS anchorTag.attributionDestination is "https://destination.example"
 PASS successfullyParsed is true
 
 TEST COMPLETE


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html (283341 => 283342)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html	2021-09-30 22:34:21 UTC (rev 283341)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html	2021-09-30 22:42:17 UTC (rev 283342)
@@ -7,11 +7,11 @@
 
 
 
</span><del>-description("Test for the new private click measurement attributes on anchor tags.");
</del><ins>+description("Test for private click measurement attributes on anchor tags.");
</ins><span class="cx"> 
</span><span class="cx"> const anchorTag = document.getElementById("testTag");
</span><del>-shouldBeEqualToNumber("anchorTag.attributionsourceid", 40);
-shouldBeEqualToString("anchorTag.attributiondestination", "https://destination.example");
</del><ins>+shouldBeEqualToNumber("anchorTag.attributionSourceId", 40);
+shouldBeEqualToString("anchorTag.attributionDestination", "https://destination.example");
</ins>&

[webkit-changes] [283316] trunk

2021-09-30 Thread wilander
dings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setPrivateClickMeasurementAppBundleIDForTesting):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setPrivateClickMeasurementAppBundleIDForTesting):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

* http/tests/privateClickMeasurement/multiple-app-bundle-ids-expected.txt: Added.
* http/tests/privateClickMeasurement/multiple-app-bundle-ids.html: Added.
* http/tests/privateClickMeasurement/resources/util.js:
(tearDownAndFinish):

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/privateClickMeasurement/resources/util.js
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h
trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp
trunk/Source/WebKit/UIProcess/API/C/WKPagePrivate.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
trunk/Source/WebKit/UIProcess/WebPageProxy.h
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm
trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestController.h
trunk/Tools/WebKitTestRunner/TestInvocation.cpp


Added Paths

trunk/LayoutTests/http/tests/privateClickMeasurement/multiple-app-bundle-ids-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/multiple-app-bundle-ids.html




Diff

Modified: trunk/LayoutTests/ChangeLog (283315 => 283316)

--- trunk/LayoutTests/ChangeLog	2021-09-30 16:05:34 UTC (rev 283315)
+++ trunk/LayoutTests/ChangeLog	2021-09-30 16:22:01 UTC (rev 283316)
@@ -1,3 +1,20 @@
+2021-09-30  John Wilander  
+
+PCM: Take app bundle ID into consideration when matching triggering events with pending clicks
+https://bugs.webkit.org/show_bug.cgi?id=230778
+
+
+Reviewed by Alex Christensen.
+
+https://commits.webkit.org/r282884 added app bundle IDs to unattributed
+and attributed clicks in PCM. This patch makes sure we take those IDs
+into consideration in PCM::Database::attributePrivateClickMeasurement().
+
+* http/tests/privateClickMeasurement/multiple-app-bundle-ids-expected.txt: Added.
+* http/tests/privateClickMeasurement/multiple-app-bundle-ids.html: Added.
+* http/tests/privateClickMeasurement/resources/util.js:
+(tearDownAndFinish):
+
 2021-09-30  Alan Bujtas  
 
 (REGRESSION r282150) Missing background-color on inline box while hovering


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/multiple-app-bundle-ids-expected.txt (0 => 283316)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/multiple-app-bundle-ids-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/multiple-app-bundle-ids-expected.txt	2021-09-30 16:22:01 UTC (rev 283316)
@@ -0,0 +1,35 @@
+Tests private click measurement with multiple app bundle IDs, making sure only the matching ID is considered a match.
+
+
+
+
+
+Frame: ''
+
+Attribution received.
+HTTP_HOST: 127.0.0.1:8000
+Content type: application/json
+REQUEST_URI: /privateClickMeasurement/resources/conversionReport.py?recipient=ClickSource
+No cookies in attribution r

[webkit-changes] [281480] trunk

2021-08-23 Thread wilander
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
trunk/Source/WebKit/UIProcess/WebPageProxy.h
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestController.h
trunk/Tools/WebKitTestRunner/TestInvocation.cpp


Added Paths

trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html




Diff

Modified: trunk/LayoutTests/ChangeLog (281479 => 281480)

--- trunk/LayoutTests/ChangeLog	2021-08-24 00:20:27 UTC (rev 281479)
+++ trunk/LayoutTests/ChangeLog	2021-08-24 00:33:32 UTC (rev 281480)
@@ -1,3 +1,23 @@
+2021-08-23  John Wilander  
+
+PCM: Support ephemeral measurement with non-persistent WebCore::PrivateClickMeasurement
+https://bugs.webkit.org/show_bug.cgi?id=228984
+
+
+Reviewed by Kate Cheney.
+
+This patch adds support for ephemeral measurement with non-persistent
+WebCore::PrivateClickMeasurement for direct response advertising.
+Such advertising means there is only one pending click, held in memory,
+and only stored right before the triggering event causes attribution
+reports to be scheduled.
+
+* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt: Added.
+* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html: Added.
+* http/tests/privateClickMeasurement/resources/util.js:
+(tearDownAndFinish):
+Resets the new testRunner.setPrivateClickMeasurementEphemeralMeasurementForTesting().
+
 2021-08-23  Ayumi Kojima  
 
 [ Catalina EWS ] http/tests/media/hls/range-request.html is a flaky failure.


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt (0 => 281480)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral-expected.txt	2021-08-24 00:33:32 UTC (rev 281480)
@@ -0,0 +1,11 @@
+Tests triggering of ephemeral private click measurement attributions.
+
+
+Attributed Private Click Measurements:
+WebCore::PrivateClickMeasurement 1
+Source site: 127.0.0.1
+Attribute on site: localhost
+Source ID: 3
+Attribution trigger data: 12
+Attribution priority: 0
+Attribution earliest time to send: Within 24-48 hours


Added: trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html (0 => 281480)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-ephemeral.html	2021-08-24 00:33:32 UTC (rev 281480)
@@ -0,0 +1,53 @@
+ 
+
+
+
+
+
+<body _onload_="setTimeout(runTest, 0)">
+<div id="description">Tests triggering of ephemeral private click measurement attributions.</div>
+<a id="targetLink" href="" attributionsourceid=3 attributiondestination="http://localhost:8000">Link</a><br>
+<div id="output"></div>
+<script>
+prepareTest();
+
+function activateElement(elementID) {
+var element = document.getElementById(elementID);
+var centerX = element.offsetLeft + element.offsetWidth / 2;
+var centerY = element.offsetTop + element.offsetHeight / 2;
+UIHelper.activateAt(centerX, centerY).then(
+function () {
+},
+function () {
+document.getElementById("output").innerText = "FAIL Promise rejected.";
+tearDownAndFinish();
+}
+);
+}
+
+function runTest() {
+if (window.testRunner) {
+if (window.location.search === "?stepTwo") {
+let imageElement = document.createElement("img");
+imageElement.src = ""
+imageElement.id = "pixel";
+imageElement._onerror_ = function() {
+testRunner.dumpPrivateClickMeasurement();
+document.body.removeChild(document.getElementById("targetLink"));
+document.body.removeChild(document.getElementById("pixel"));
+tearDownAndFinish();
+};
+

[webkit-changes] [280930] trunk/Source/WebCore

2021-08-11 Thread wilander
Title: [280930] trunk/Source/WebCore








Revision 280930
Author wilan...@apple.com
Date 2021-08-11 13:39:42 -0700 (Wed, 11 Aug 2021)


Log Message
PCM: Flip WebCore's FraudPreventionEnabled to true if HAVE(RSA_BSSA) to match the experimental setting
https://bugs.webkit.org/show_bug.cgi?id=228961

Reviewed by Tim Horton.

Existing tests use the affected anchor attribute.

* page/RuntimeEnabledFeatures.h:
* page/Settings.yaml:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/RuntimeEnabledFeatures.h
trunk/Source/WebCore/page/Settings.yaml




Diff

Modified: trunk/Source/WebCore/ChangeLog (280929 => 280930)

--- trunk/Source/WebCore/ChangeLog	2021-08-11 20:35:31 UTC (rev 280929)
+++ trunk/Source/WebCore/ChangeLog	2021-08-11 20:39:42 UTC (rev 280930)
@@ -1,3 +1,15 @@
+2021-08-11  John Wilander  
+
+PCM: Flip WebCore's FraudPreventionEnabled to true if HAVE(RSA_BSSA) to match the experimental setting
+https://bugs.webkit.org/show_bug.cgi?id=228961
+
+Reviewed by Tim Horton.
+
+Existing tests use the affected anchor attribute.
+
+* page/RuntimeEnabledFeatures.h:
+* page/Settings.yaml:
+
 2021-08-11  Dana Estra  
 
 Start smooth keyboard scrolling animation when pageUp or pageDown key is pressed.


Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (280929 => 280930)

--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2021-08-11 20:35:31 UTC (rev 280929)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2021-08-11 20:39:42 UTC (rev 280930)
@@ -346,7 +346,11 @@
 bool m_lineHeightUnitsEnabled { false };
 
 bool m_privateClickMeasurementDebugModeEnabled { false };
+#if HAVE(RSA_BSSA)
+bool m_privateClickMeasurementFraudPreventionEnabled { true };
+#else
 bool m_privateClickMeasurementFraudPreventionEnabled { false };
+#endif
 
 #if ENABLE(TOUCH_EVENTS)
 bool m_mouseEventsSimulationEnabled { false };


Modified: trunk/Source/WebCore/page/Settings.yaml (280929 => 280930)

--- trunk/Source/WebCore/page/Settings.yaml	2021-08-11 20:35:31 UTC (rev 280929)
+++ trunk/Source/WebCore/page/Settings.yaml	2021-08-11 20:39:42 UTC (rev 280930)
@@ -441,6 +441,7 @@
   type: bool
   defaultValue:
 WebCore:
+  "HAVE(RSA_BSSA)": true
   default: false
 
 QuickTimePluginReplacementEnabled:






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [280009] trunk/Source/WebKit

2021-07-16 Thread wilander
Title: [280009] trunk/Source/WebKit








Revision 280009
Author wilan...@apple.com
Date 2021-07-16 16:53:23 -0700 (Fri, 16 Jul 2021)


Log Message
PCM: Add early return when unlinkable token is used and add more happy path Web Inspector logging
https://bugs.webkit.org/show_bug.cgi?id=228039


Reviewed by Kate Cheney.

There's a missing return after an accepted unlinkable token transaction. The
attribution object is therefore moved and stored twice.

This patch also adds more Web Inspector logging to the happy path for better
developer feedback.

No new tests.

* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
Add the missing return.
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
Add Web Inspector logging.
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
Add Web Inspector logging.
(WebKit::PrivateClickMeasurementManager::handleAttribution):
Add Web Inspector logging.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (280008 => 280009)

--- trunk/Source/WebKit/ChangeLog	2021-07-16 23:40:00 UTC (rev 280008)
+++ trunk/Source/WebKit/ChangeLog	2021-07-16 23:53:23 UTC (rev 280009)
@@ -1,3 +1,29 @@
+2021-07-16  John Wilander  
+
+PCM: Add early return when unlinkable token is used and add more happy path Web Inspector logging
+https://bugs.webkit.org/show_bug.cgi?id=228039
+
+
+Reviewed by Kate Cheney.
+
+There's a missing return after an accepted unlinkable token transaction. The
+attribution object is therefore moved and stored twice.
+
+This patch also adds more Web Inspector logging to the happy path for better
+developer feedback.
+
+No new tests.
+
+* NetworkProcess/PrivateClickMeasurementManager.cpp:
+(WebKit::PrivateClickMeasurementManager::storeUnattributed):
+Add the missing return.
+(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
+Add Web Inspector logging.
+(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
+Add Web Inspector logging.
+(WebKit::PrivateClickMeasurementManager::handleAttribution):
+Add Web Inspector logging.
+
 2021-07-16  Wenson Hsieh  
 
 REGRESSION (r277820): Can't scroll up and down using trackpad in Mail message viewer when in Slide Over


Modified: trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp (280008 => 280009)

--- trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp	2021-07-16 23:40:00 UTC (rev 280008)
+++ trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp	2021-07-16 23:53:23 UTC (rev 280009)
@@ -97,6 +97,7 @@
 #endif
 
 getSignedUnlinkableToken(WTFMove(attribution));
+return;
 });
 }
 
@@ -174,6 +175,8 @@
 return;
 }
 
+m_networkProcess->broadcastConsoleMessage(m_sessionID, MessageSource::PrivateClickMeasurement, MessageLevel::Log, makeString("[Private Click Measurement] Got JSON response for token public key request."_s));
+
 callback(WTFMove(attribution), jsonObject->getString("token_public_key"_s));
 });
 
@@ -216,9 +219,10 @@
 }
 
 auto signatureBase64URL = jsonObject->getString("unlinkable_token"_s);
-if (signatureBase64URL.isEmpty())
+if (signatureBase64URL.isEmpty()) {
+m_networkProcess->broadcastConsoleMessage(m_sessionID, MessageSource::PrivateClickMeasurement, MessageLevel::Error, makeString("[Private Click Measurement] JSON response doesn't have the key 'unlinkable_token' for token signing request."_s));
 return;
-
+}
 // FIX NOW!
 if (m_fraudPreventionValuesForTesting)
 attribution.setSourceSecretToken({ m_fraudPreventionValuesForTesting->secretToken, m_fraudPreventionValuesForTesting->signature, m_fraudPreventionValuesForTesting->keyID });
@@ -251,15 +255,17 @@
 auto& firstPartyURL = redirectRequest.firstPartyForCookies();
 
 if (!redirectDomain.matches(requestURL)) {
-m_networkProcess->broadcastConsoleMessage(m_sessionID, MessageSource::PrivateClickMeasurement, MessageLevel::Warning, "[Private Click Measurement] Attribution was not accepted because the HTTP redirect was not same-site."_s);
+m_networkProcess->broadcastConsoleMessage(m_sessionID, MessageSource::PrivateClickMeasurement, MessageLevel::Warning, "[Private Click Measurement] Triggering event was not accepted because the HTTP redirect was not same-site."_s);
 return;
 }
 
 if (redirectDomain.matches(firstPartyURL)) {
-m_networkProcess->broadcastConsoleMessage(m_sessionID, Messa

[webkit-changes] [279710] trunk

2021-07-07 Thread wilander
Title: [279710] trunk








Revision 279710
Author wilan...@apple.com
Date 2021-07-07 22:09:53 -0700 (Wed, 07 Jul 2021)


Log Message
PCM: Add error logging for CryptoKit operations
https://bugs.webkit.org/show_bug.cgi?id=227731


Reviewed by Brent Fulgham.

Resolves three FIXMEs for error logging in PCM's CryptoKit operations.

Source/WebCore:

No new tests. Only added logging.

* loader/PrivateClickMeasurement.h:
* loader/cocoa/PrivateClickMeasurementCocoa.mm:
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceSecretToken):

Source/WebKit:

* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):

Tools:

* TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
Now expects an optional string instead of a bool from the function
calls which means EXPECT_TRUE has become EXPECT_FALSE. The optional
string is non-nullopt if it carries an error message.
* TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:
(TestWebKitAPI::TEST):
Now expects an optional string instead of a bool from the function
calls which means EXPECT_TRUE has become EXPECT_FALSE. The optional
string is non-nullopt if it carries an error message.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp
trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm




Diff

Modified: trunk/Source/WebCore/ChangeLog (279709 => 279710)

--- trunk/Source/WebCore/ChangeLog	2021-07-08 04:48:27 UTC (rev 279709)
+++ trunk/Source/WebCore/ChangeLog	2021-07-08 05:09:53 UTC (rev 279710)
@@ -1,3 +1,20 @@
+2021-07-07  John Wilander  
+
+PCM: Add error logging for CryptoKit operations
+https://bugs.webkit.org/show_bug.cgi?id=227731
+
+
+Reviewed by Brent Fulgham.
+
+Resolves three FIXMEs for error logging in PCM's CryptoKit operations.
+
+No new tests. Only added logging.
+
+* loader/PrivateClickMeasurement.h:
+* loader/cocoa/PrivateClickMeasurementCocoa.mm:
+(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken):
+(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceSecretToken):
+
 2021-07-07  Chris Dumez  
 
 Our structured cloning implementation does not encode all of RegExp's flags


Modified: trunk/Source/WebCore/loader/PrivateClickMeasurement.h (279709 => 279710)

--- trunk/Source/WebCore/loader/PrivateClickMeasurement.h	2021-07-08 04:48:27 UTC (rev 279709)
+++ trunk/Source/WebCore/loader/PrivateClickMeasurement.h	2021-07-08 05:09:53 UTC (rev 279710)
@@ -354,8 +354,8 @@
 };
 
 #if PLATFORM(COCOA)
-WEBCORE_EXPORT bool calculateAndUpdateSourceUnlinkableToken(const String& serverPublicKeyBase64URL);
-WEBCORE_EXPORT bool calculateAndUpdateSourceSecretToken(const String& serverResponseBase64URL);
+WEBCORE_EXPORT std::optional calculateAndUpdateSourceUnlinkableToken(const String& serverPublicKeyBase64URL);
+WEBCORE_EXPORT std::optional calculateAndUpdateSourceSecretToken(const String& serverResponseBase64URL);
 #endif
 
 void setSourceUnlinkableTokenValue(const String& value) { m_sourceUnlinkableToken.valueBase64URL = value; }


Modified: trunk/Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm (279709 => 279710)

--- trunk/Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm	2021-07-08 04:48:27 UTC (rev 279709)
+++ trunk/Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm	2021-07-08 05:09:53 UTC (rev 279710)
@@ -30,50 +30,56 @@
 
 namespace WebCore {
 
-bool PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken(const String& serverPublicKeyBase64URL)
+std::optional PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken(const String& serverPublicKeyBase64URL)
 {
 #if HAVE(RSA_BSSA)
 {
 auto serverPublicKeyData = base64URLDecode(serverPublicKeyBase64URL);
 if (!serverPublicKeyData)
-return false;
+return "Could not decode the source's public key data."_s;
 auto serverPublicKey = adoptNS([[NSData alloc] initWithBytes:serverPublicKeyData->data() length:serverPublicKeyData->size()]);
 
-// FIXME(222018): Check error.
-m_sourceUnlinkableToken.blinder = adoptNS([PAL::allocRSABSSATokenBlinderInstance() initWithPublicKey:serverPublicKey.get() error:nullptr]);
+NSError* nsError = 0;
+m_sourceUnlinkableToken.blinder = adoptNS([PAL::allocRSABSSAToke

[webkit-changes] [279687] trunk/Tools

2021-07-07 Thread wilander
Title: [279687] trunk/Tools








Revision 279687
Author wilan...@apple.com
Date 2021-07-07 17:09:12 -0700 (Wed, 07 Jul 2021)


Log Message
PCM: API test PrivateClickMeasurement.ValidBlindedSecret is failing on platforms with RSABSSA
https://bugs.webkit.org/show_bug.cgi?id=22


Reviewed by Kate Cheney.

* TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:
(TestWebKitAPI::TEST):
   The test was looking for the value of JSON key "source_secret_token"
   which should be "source_unlinkable_token". This patch fixes that and
   renames the local variable accordingly.

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm




Diff

Modified: trunk/Tools/ChangeLog (279686 => 279687)

--- trunk/Tools/ChangeLog	2021-07-07 23:57:58 UTC (rev 279686)
+++ trunk/Tools/ChangeLog	2021-07-08 00:09:12 UTC (rev 279687)
@@ -1,3 +1,17 @@
+2021-07-07  John Wilander  
+
+PCM: API test PrivateClickMeasurement.ValidBlindedSecret is failing on platforms with RSABSSA
+https://bugs.webkit.org/show_bug.cgi?id=22
+
+
+Reviewed by Kate Cheney.
+
+* TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:
+(TestWebKitAPI::TEST):
+   The test was looking for the value of JSON key "source_secret_token"
+   which should be "source_unlinkable_token". This patch fixes that and
+   renames the local variable accordingly.
+
 2021-07-07  Ling Ho  
 
 Remove proxy server setting from Buildbot configuration


Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm (279686 => 279687)

--- trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm	2021-07-07 23:57:58 UTC (rev 279686)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm	2021-07-08 00:09:12 UTC (rev 279687)
@@ -77,15 +77,15 @@
 
 // Continue the test.
 EXPECT_TRUE(pcm.calculateAndUpdateSourceUnlinkableToken(base64URLEncodeToString(nsSpkiData.bytes, nsSpkiData.length)));
-auto sourceSecretToken = pcm.tokenSignatureJSON();
-EXPECT_EQ(sourceSecretToken->asObject()->size(), 4ul);
-EXPECT_STREQ(sourceSecretToken->getString("source_engagement_type"_s).utf8().data(), "click");
-EXPECT_STREQ(sourceSecretToken->getString("source_nonce"_s).utf8().data(), "ABCDEFabcdef0123456789");
-EXPECT_FALSE(sourceSecretToken->getString("source_secret_token"_s).isEmpty());
-EXPECT_EQ(sourceSecretToken->getInteger("version"_s), 2);
+auto sourceUnlinkableToken = pcm.tokenSignatureJSON();
+EXPECT_EQ(sourceUnlinkableToken->asObject()->size(), 4ul);
+EXPECT_STREQ(sourceUnlinkableToken->getString("source_engagement_type"_s).utf8().data(), "click");
+EXPECT_STREQ(sourceUnlinkableToken->getString("source_nonce"_s).utf8().data(), "ABCDEFabcdef0123456789");
+EXPECT_FALSE(sourceUnlinkableToken->getString("source_unlinkable_token"_s).isEmpty());
+EXPECT_EQ(sourceUnlinkableToken->getInteger("version"_s), 2);
 
 // Generate the signature.
-auto blindedMessage = base64URLDecode(sourceSecretToken->getString("source_secret_token"_s));
+auto blindedMessage = base64URLDecode(sourceUnlinkableToken->getString("source_unlinkable_token"_s));
 
 auto blindedSignature = adoptNS([[NSMutableData alloc] initWithLength:modulusNBytes]);
 ccrsabssa_sign_blinded_message(ciphersuite, rsaPrivateKey, blindedMessage->data(), blindedMessage->size(), static_cast([blindedSignature mutableBytes]), [blindedSignature length], rng);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [279491] trunk/Source/WebCore

2021-07-01 Thread wilander
Title: [279491] trunk/Source/WebCore








Revision 279491
Author wilan...@apple.com
Date 2021-07-01 18:07:54 -0700 (Thu, 01 Jul 2021)


Log Message
PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
https://bugs.webkit.org/show_bug.cgi?id=227556


Reviewed by Alex Christensen.


Source/WebCore:

No new tests since no functionality is changed.

* loader/cocoa/PrivateClickMeasurementCocoa.mm:
Changed import from CryptoKitCBridgingSoftLink.h to CryptoKitPrivateSoftLink.h.

Source/WebCore/PAL:

* PAL.xcodeproj/project.pbxproj:
* pal/PlatformMac.cmake:
* pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
* pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
* pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/PAL/ChangeLog
trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
trunk/Source/WebCore/PAL/pal/PlatformMac.cmake
trunk/Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm


Added Paths

trunk/Source/WebCore/PAL/pal/cocoa/CryptoKitPrivateSoftLink.h
trunk/Source/WebCore/PAL/pal/cocoa/CryptoKitPrivateSoftLink.mm
trunk/Source/WebCore/PAL/pal/spi/cocoa/CryptoKitPrivateSPI.h


Removed Paths

trunk/Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h
trunk/Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm
trunk/Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (279490 => 279491)

--- trunk/Source/WebCore/ChangeLog	2021-07-02 01:03:53 UTC (rev 279490)
+++ trunk/Source/WebCore/ChangeLog	2021-07-02 01:07:54 UTC (rev 279491)
@@ -1,3 +1,18 @@
+2021-07-01  John Wilander  
+
+PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
+https://bugs.webkit.org/show_bug.cgi?id=227556
+
+
+Reviewed by Alex Christensen.
+
+Patch by Frederic Jacobs.
+
+No new tests since no functionality is changed.
+
+* loader/cocoa/PrivateClickMeasurementCocoa.mm:
+Changed import from CryptoKitCBridgingSoftLink.h to CryptoKitPrivateSoftLink.h.
+
 2021-07-01  Alex Christensen  
 
 Align beacon CORS mode with Chrome and Firefox


Modified: trunk/Source/WebCore/PAL/ChangeLog (279490 => 279491)

--- trunk/Source/WebCore/PAL/ChangeLog	2021-07-02 01:03:53 UTC (rev 279490)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-07-02 01:07:54 UTC (rev 279491)
@@ -1,3 +1,19 @@
+2021-07-01  John Wilander  
+
+PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
+https://bugs.webkit.org/show_bug.cgi?id=227556
+
+
+Reviewed by Alex Christensen.
+
+Patch by Frederic Jacobs.
+
+* PAL.xcodeproj/project.pbxproj:
+* pal/PlatformMac.cmake:
+* pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
+* pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
+* pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.
+
 2021-07-01  Amir Mark Jr  
 
 Unreviewed, reverting r279452.


Modified: trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj (279490 => 279491)

--- trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2021-07-02 01:03:53 UTC (rev 279490)
+++ trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2021-07-02 01:07:54 UTC (rev 279491)
@@ -140,8 +140,8 @@
 		570AB8F920AF6E3D00B8BE87 /* NSXPCConnectionSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 570AB8F820AF6E3D00B8BE87 /* NSXPCConnectionSPI.h */; };
 		572A107822B456F500F410C8 /* AuthKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 572A107722B456F500F410C8 /* AuthKitSPI.h */; };
 		576CA9D622B854AB0030143C /* AppSSOSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 576CA9D522B854AB0030143C /* AppSSOSPI.h */; };
-		57F1C90925DCF0CF00E8F6EA /* CryptoKitCBridgingSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F1C90725DCF0CF00E8F6EA /* CryptoKitCBridgingSoftLink.h */; };
-		57F1C90A25DCF0CF00E8F6EA /* CryptoKitCBridgingSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 57F1C90825DCF0CF00E8F6EA /* CryptoKitCBridgingSoftLink.mm */; };
+		57F1C90925DCF0CF00E8F6EA /* CryptoKitPrivateSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F1C90725DCF0CF00E8F6EA /* CryptoKitPrivateSoftLink.h */; };
+		57F1C90A25DCF0CF00E8F6EA /* CryptoKitPrivateSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 57F1C90825DCF0CF00E8F6EA /* CryptoKitPrivateSoftLink.mm */; };
 		57FD318A22B3593E008D0E8B /* AppSSOSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 57FD318922B3593E008D0E8B /* AppSSOSoftLink.mm */; };
 		57FD318B22B35989008D0E8B /* AppSSOSoftLink.h in Headers */ = {isa = PBX

[webkit-changes] [279452] trunk/Source/WebCore

2021-06-30 Thread wilander
Title: [279452] trunk/Source/WebCore








Revision 279452
Author wilan...@apple.com
Date 2021-06-30 23:32:40 -0700 (Wed, 30 Jun 2021)


Log Message
PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
https://bugs.webkit.org/show_bug.cgi?id=227556


Reviewed by Alex Christensen.


Source/WebCore:

No new tests since no functionality is changed.

* loader/cocoa/PrivateClickMeasurementCocoa.mm:
Changed import from CryptoKitCBridgingSoftLink.h to CryptoKitPrivateSoftLink.h.

Source/WebCore/PAL:

* PAL.xcodeproj/project.pbxproj:
* pal/PlatformMac.cmake:
* pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
* pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
* pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/PAL/ChangeLog
trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
trunk/Source/WebCore/PAL/pal/PlatformMac.cmake
trunk/Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm


Added Paths

trunk/Source/WebCore/PAL/pal/cocoa/CryptoKitPrivateSoftLink.h
trunk/Source/WebCore/PAL/pal/cocoa/CryptoKitPrivateSoftLink.mm
trunk/Source/WebCore/PAL/pal/spi/cocoa/CryptoKitPrivateSPI.h


Removed Paths

trunk/Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h
trunk/Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm
trunk/Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (279451 => 279452)

--- trunk/Source/WebCore/ChangeLog	2021-07-01 06:32:12 UTC (rev 279451)
+++ trunk/Source/WebCore/ChangeLog	2021-07-01 06:32:40 UTC (rev 279452)
@@ -1,3 +1,18 @@
+2021-06-30  John Wilander  
+
+PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
+https://bugs.webkit.org/show_bug.cgi?id=227556
+
+
+Reviewed by Alex Christensen.
+
+Patch by Frederic Jacobs.
+
+No new tests since no functionality is changed.
+
+* loader/cocoa/PrivateClickMeasurementCocoa.mm:
+Changed import from CryptoKitCBridgingSoftLink.h to CryptoKitPrivateSoftLink.h.
+
 2021-06-30  Antoine Quint  
 
 [Model] [macOS] Add support for rendering model resources


Modified: trunk/Source/WebCore/PAL/ChangeLog (279451 => 279452)

--- trunk/Source/WebCore/PAL/ChangeLog	2021-07-01 06:32:12 UTC (rev 279451)
+++ trunk/Source/WebCore/PAL/ChangeLog	2021-07-01 06:32:40 UTC (rev 279452)
@@ -1,3 +1,19 @@
+2021-06-30  John Wilander  
+
+PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
+https://bugs.webkit.org/show_bug.cgi?id=227556
+
+
+Reviewed by Alex Christensen.
+
+Patch by Frederic Jacobs.
+
+* PAL.xcodeproj/project.pbxproj:
+* pal/PlatformMac.cmake:
+* pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
+* pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
+* pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.
+
 2021-06-30  Antoine Quint  
 
 [Model] [macOS] Add support for rendering model resources


Modified: trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj (279451 => 279452)

--- trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2021-07-01 06:32:12 UTC (rev 279451)
+++ trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj	2021-07-01 06:32:40 UTC (rev 279452)
@@ -140,8 +140,8 @@
 		570AB8F920AF6E3D00B8BE87 /* NSXPCConnectionSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 570AB8F820AF6E3D00B8BE87 /* NSXPCConnectionSPI.h */; };
 		572A107822B456F500F410C8 /* AuthKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 572A107722B456F500F410C8 /* AuthKitSPI.h */; };
 		576CA9D622B854AB0030143C /* AppSSOSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 576CA9D522B854AB0030143C /* AppSSOSPI.h */; };
-		57F1C90925DCF0CF00E8F6EA /* CryptoKitCBridgingSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F1C90725DCF0CF00E8F6EA /* CryptoKitCBridgingSoftLink.h */; };
-		57F1C90A25DCF0CF00E8F6EA /* CryptoKitCBridgingSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 57F1C90825DCF0CF00E8F6EA /* CryptoKitCBridgingSoftLink.mm */; };
+		57F1C90925DCF0CF00E8F6EA /* CryptoKitPrivateSoftLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F1C90725DCF0CF00E8F6EA /* CryptoKitPrivateSoftLink.h */; };
+		57F1C90A25DCF0CF00E8F6EA /* CryptoKitPrivateSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 57F1C90825DCF0CF00E8F6EA /* CryptoKitPrivateSoftLink.mm */; };
 		57FD318A22B3593E008D0E8B /* AppSSOSoftLink.mm in Sources */ = {isa = PBXBuildFile; fileRef = 57FD318922B3593E008D0E8B /* AppSSOSoftLink.mm */; };
 		57FD318B22B35989008D0E8B /* AppSSOSoft

[webkit-changes] [277534] trunk

2021-05-14 Thread wilander
page.py
trunk/LayoutTests/http/tests/cookies/same-site/user-load-cross-site-redirect-expected.txt
trunk/LayoutTests/http/tests/cookies/same-site/user-load-cross-site-redirect.py
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/CookieJar.cpp
trunk/Source/WebCore/loader/CookieJar.h
trunk/Source/WebCore/platform/network/SameSiteInfo.cpp
trunk/Source/WebCore/platform/network/SameSiteInfo.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebProcess/WebPage/WebCookieJar.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (277533 => 277534)

--- trunk/LayoutTests/ChangeLog	2021-05-15 05:02:06 UTC (rev 277533)
+++ trunk/LayoutTests/ChangeLog	2021-05-15 05:26:41 UTC (rev 277534)
@@ -1,3 +1,33 @@
+2021-05-14  John Wilander  
+
+_javascript_ can't access a SameSite=Strict cookie after page is loaded after a redirect from a third party site
+https://bugs.webkit.org/show_bug.cgi?id=208049
+
+
+Reviewed by Chris Dumez.
+
+The HTTP WG has decided that SameSite=strict cookies should be returned in document.cookie
+even in cases where they are not sent in the HTTP request for the page. Chromium and Gecko
+now work according to those rules and the spec is being updated.
+
+See:
+- https://github.com/httpwg/http-extensions/issues/769
+- https://github.com/httpwg/http-extensions/pull/1428/files.
+
+Tests changed and rebased accordingly.
+
+* http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt:
+* http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt:
+* http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt:
+* http/tests/cookies/same-site/popup-cross-site-post.html:
+* http/tests/cookies/same-site/popup-cross-site.html:
+* http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html:
+* http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.py:
+* http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.py:
+* http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.py:
+* http/tests/cookies/same-site/user-load-cross-site-redirect-expected.txt:
+* http/tests/cookies/same-site/user-load-cross-site-redirect.py:
+
 2021-05-14  Darin Adler  
 
 output element doesn't react properly to node tree mutations


Modified: trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt (277533 => 277534)

--- trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt	2021-05-15 05:02:06 UTC (rev 277533)
+++ trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt	2021-05-15 05:26:41 UTC (rev 277534)
@@ -10,7 +10,7 @@
 PASS Has cookie "lax" with value 19.
 
 Cookies visible in DOM:
-PASS Do not have DOM cookie "strict".
+PASS Has DOM cookie "strict" with value 19.
 PASS Has DOM cookie "implicit-strict" with value 19.
 PASS Has DOM cookie "strict-because-invalid-SameSite-value" with value 19.
 PASS Has DOM cookie "lax" with value 19.


Modified: trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt (277533 => 277534)

--- trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt	2021-05-15 05:02:06 UTC (rev 277533)
+++ trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt	2021-05-15 05:26:41 UTC (rev 277534)
@@ -10,7 +10,7 @@
 PASS Has cookie "lax" with value 5.
 
 Cookies visible in DOM:
-PASS Do not have DOM cookie "strict".
+PASS Has DOM cookie "strict" with value 5.
 PASS Has DOM cookie "implicit-strict" with value 5.
 PASS Has DOM cookie "strict-because-invalid-SameSite-value" with value 5.
 PASS Has DOM cookie "lax" with value 5.


Modified: trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt (277533 => 277534)

--- trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt	2021-05-15 05:02:06 UTC (rev 277533)
+++ trunk/LayoutTests/http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt	2021-05-15 05:26:41 UTC (rev 277534)
@@ -10,7 +10,7 @@
 PASS Has cookie "lax" with value 4.
 
 Cookies visible in DOM:
-PASS Do not have DOM cookie "strict".
+PASS Has DOM cookie "strict&

[webkit-changes] [276413] trunk/Source/WebKit

2021-04-21 Thread wilander
Title: [276413] trunk/Source/WebKit








Revision 276413
Author wilan...@apple.com
Date 2021-04-21 18:15:13 -0700 (Wed, 21 Apr 2021)


Log Message
PCM: Remove PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable overrides in testing
https://bugs.webkit.org/show_bug.cgi?id=224885


Reviewed by Brent Fulgham.

We had a temporary override to PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable
in WebKit::PrivateClickMeasurementManager::getTokenPublicKey() and
WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken().

This patch removes those overrides since the network load hang has been resolved.

No new tests. Existing tests cover this code.

* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (276412 => 276413)

--- trunk/Source/WebKit/ChangeLog	2021-04-22 01:04:28 UTC (rev 276412)
+++ trunk/Source/WebKit/ChangeLog	2021-04-22 01:15:13 UTC (rev 276413)
@@ -1,3 +1,23 @@
+2021-04-21  John Wilander  
+
+PCM: Remove PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable overrides in testing
+https://bugs.webkit.org/show_bug.cgi?id=224885
+
+
+Reviewed by Brent Fulgham.
+
+We had a temporary override to PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable
+in WebKit::PrivateClickMeasurementManager::getTokenPublicKey() and
+WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken().
+
+This patch removes those overrides since the network load hang has been resolved.
+
+No new tests. Existing tests cover this code.
+
+* NetworkProcess/PrivateClickMeasurementManager.cpp:
+(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
+(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
+
 2021-04-21  Chris Dumez  
 
 Regression(r275887) open.spotify.com says Safari is not supported


Modified: trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp (276412 => 276413)

--- trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp	2021-04-22 01:04:28 UTC (rev 276412)
+++ trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp	2021-04-22 01:15:13 UTC (rev 276413)
@@ -145,7 +145,6 @@
 if (attributionReportEndpoint == PrivateClickMeasurement::AttributionReportEndpoint::Destination)
 return;
 tokenPublicKeyURL = *m_tokenPublicKeyURLForTesting;
-pcmDataCarried = PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable;
 }
 
 if (tokenPublicKeyURL.isEmpty() || !tokenPublicKeyURL.isValid())
@@ -183,10 +182,8 @@
 // This is guaranteed to be close in time to the navigational click which makes it likely to be personally identifiable.
 auto pcmDataCarried = PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable;
 auto tokenSignatureURL = attribution.tokenSignatureURL();
-if (m_tokenSignatureURLForTesting) {
+if (m_tokenSignatureURLForTesting)
 tokenSignatureURL = *m_tokenSignatureURLForTesting;
-pcmDataCarried = PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable;
-}
 
 if (tokenSignatureURL.isEmpty() || !tokenSignatureURL.isValid())
 return;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [275419] trunk/Source/WebKit

2021-04-02 Thread wilander
Title: [275419] trunk/Source/WebKit








Revision 275419
Author wilan...@apple.com
Date 2021-04-02 07:01:07 -0700 (Fri, 02 Apr 2021)


Log Message
PCM: PrivateClickMeasurementManager::getTokenPublicKey() should not use PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable when validating the token before the attribution report is sent
https://bugs.webkit.org/show_bug.cgi?id=223956


Reviewed by Youenn Fablet.

No new tests. This just changes the NetworkLoadParameters field pcmDataCarried
for the initial public key load and for PCM Debug Mode. This network load setting
is not observable in tests.

* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
Now sends PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable
to PrivateClickMeasurementManager::getTokenPublicKey() since it's required.
(WebKit::generateNetworkLoadParameters):
Now takes the parameter isDebugModeEnabled and if it's true, forces
PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable since
Debug Mode disables privacy measures making PCM network requests likely
to be personally identifiable.
(WebKit::generateNetworkLoadParametersForHttpPost):
Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
(WebKit::generateNetworkLoadParametersForHttpGet):
Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
Now takes a PrivateClickMeasurement::PcmDataCarried parameter to be able
to request the public key in either network load mode.
Now also forwards isDebugModeEnabled to generateNetworkLoadParameters().
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
Now sends PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable
to PrivateClickMeasurementManager::getTokenPublicKey() since it's required.
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
* NetworkProcess/PrivateClickMeasurementManager.h:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h




Diff

Modified: trunk/Source/WebKit/ChangeLog (275418 => 275419)

--- trunk/Source/WebKit/ChangeLog	2021-04-02 13:26:00 UTC (rev 275418)
+++ trunk/Source/WebKit/ChangeLog	2021-04-02 14:01:07 UTC (rev 275419)
@@ -1,3 +1,39 @@
+2021-04-02  John Wilander  
+
+PCM: PrivateClickMeasurementManager::getTokenPublicKey() should not use PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable when validating the token before the attribution report is sent
+https://bugs.webkit.org/show_bug.cgi?id=223956
+
+
+Reviewed by Youenn Fablet.
+
+No new tests. This just changes the NetworkLoadParameters field pcmDataCarried
+for the initial public key load and for PCM Debug Mode. This network load setting
+is not observable in tests.
+
+* NetworkProcess/PrivateClickMeasurementManager.cpp:
+(WebKit::PrivateClickMeasurementManager::storeUnattributed):
+Now sends PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable
+to PrivateClickMeasurementManager::getTokenPublicKey() since it's required.
+(WebKit::generateNetworkLoadParameters):
+Now takes the parameter isDebugModeEnabled and if it's true, forces
+PrivateClickMeasurement::PcmDataCarried::PersonallyIdentifiable since
+Debug Mode disables privacy measures making PCM network requests likely
+to be personally identifiable.
+(WebKit::generateNetworkLoadParametersForHttpPost):
+Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
+(WebKit::generateNetworkLoadParametersForHttpGet):
+Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
+(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
+Now takes a PrivateClickMeasurement::PcmDataCarried parameter to be able
+to request the public key in either network load mode.
+Now also forwards isDebugModeEnabled to generateNetworkLoadParameters().
+(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
+Now sends PrivateClickMeasurement::PcmDataCarried::NonPersonallyIdentifiable
+to PrivateClickMeasurementManager::getTokenPublicKey() since it's required.
+(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
+Now forwards isDebugModeEnabled to generateNetworkLoadParameters().
+* NetworkProcess/PrivateClickMeasurementManager.h:
+
 2021-04-02  Youenn Fablet  
 
 Use webrtc GPU Process feature flag for audio capture on MacOS


Modified: t

[webkit-changes] [274543] trunk/Tools

2021-03-16 Thread wilander
Title: [274543] trunk/Tools








Revision 274543
Author wilan...@apple.com
Date 2021-03-16 17:54:17 -0700 (Tue, 16 Mar 2021)


Log Message
PCM: Use adoptWK in TestInvocation::didReceiveSynchronousMessageFromInjectedBundle()'s handling of "SetPrivateClickMeasurementAttributionReportURLsForTesting"
https://bugs.webkit.org/show_bug.cgi?id=223286


Reviewed by Darin Adler.

See Darin's initial comment here: https://bugs.webkit.org/show_bug.cgi?id=223238#c9

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/TestInvocation.cpp




Diff

Modified: trunk/Tools/ChangeLog (274542 => 274543)

--- trunk/Tools/ChangeLog	2021-03-17 00:53:41 UTC (rev 274542)
+++ trunk/Tools/ChangeLog	2021-03-17 00:54:17 UTC (rev 274543)
@@ -1,3 +1,16 @@
+2021-03-16  John Wilander  
+
+PCM: Use adoptWK in TestInvocation::didReceiveSynchronousMessageFromInjectedBundle()'s handling of "SetPrivateClickMeasurementAttributionReportURLsForTesting"
+https://bugs.webkit.org/show_bug.cgi?id=223286
+
+
+Reviewed by Darin Adler.
+
+See Darin's initial comment here: https://bugs.webkit.org/show_bug.cgi?id=223238#c9
+
+* WebKitTestRunner/TestInvocation.cpp:
+(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
+
 2021-03-16  Jonathan Bedard  
 
 [resultsdbpy] Save identifiers in commit table


Modified: trunk/Tools/WebKitTestRunner/TestInvocation.cpp (274542 => 274543)

--- trunk/Tools/WebKitTestRunner/TestInvocation.cpp	2021-03-17 00:53:41 UTC (rev 274542)
+++ trunk/Tools/WebKitTestRunner/TestInvocation.cpp	2021-03-17 00:54:17 UTC (rev 274543)
@@ -1354,9 +1354,9 @@
 
 if (WKStringIsEqualToUTF8CString(messageName, "SetPrivateClickMeasurementAttributionReportURLsForTesting")) {
 auto testDictionary = dictionaryValue(messageBody);
-auto sourceURL = WKURLCreateWithUTF8CString(toWTFString(stringValue(testDictionary, "SourceURLString")).utf8().data());
-auto attributeOnURL = WKURLCreateWithUTF8CString(toWTFString(stringValue(testDictionary, "AttributeOnURLString")).utf8().data());
-TestController::singleton().setPrivateClickMeasurementAttributionReportURLsForTesting(sourceURL, attributeOnURL);
+auto sourceURL = adoptWK(WKURLCreateWithUTF8CString(toWTFString(stringValue(testDictionary, "SourceURLString")).utf8().data()));
+auto attributeOnURL = adoptWK(WKURLCreateWithUTF8CString(toWTFString(stringValue(testDictionary, "AttributeOnURLString")).utf8().data()));
+TestController::singleton().setPrivateClickMeasurementAttributionReportURLsForTesting(sourceURL.get(), attributeOnURL.get());
 return nullptr;
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [274513] trunk

2021-03-16 Thread wilander
ocess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h
trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp
trunk/Source/WebKit/UIProcess/API/C/WKPagePrivate.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
trunk/Source/WebKit/UIProcess/WebPageProxy.h
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm
trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestController.h
trunk/Tools/WebKitTestRunner/TestInvocation.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (274512 => 274513)

--- trunk/LayoutTests/ChangeLog	2021-03-16 20:51:11 UTC (rev 274512)
+++ trunk/LayoutTests/ChangeLog	2021-03-16 20:57:04 UTC (rev 274513)
@@ -1,3 +1,30 @@
+2021-03-16  John Wilander  
+
+PCM: Test infrastructure for sending attribution reports to attribution website too
+https://bugs.webkit.org/show_bug.cgi?id=223238
+
+
+Reviewed by Brent Fulgham.
+
+setPrivateClickMeasurementAttributionReportURLForTesting() now is named
+setPrivateClickMeasurementAttributionReportURLsForTesting() in the layers that
+eventually reach WebKit::PrivateClickMeasurementManager. It takes two URLs
+attributionReportSourceURL and attributionReportAttributeOnURL and sets them
+in a new struct AttributionReportTestConfig.
+
+* http/tests/contentextensions/block-private-click-measurement.html:
+* http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:
+* http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:
+* http/tests/privateClickMeasurement/resources/getConversionData.php:
+* http/tests/privateClickMeasurement/resources/util.js:
+(tearDownAndFinish):
+* http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
+* http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
+* platform/mac-wk2/TestExpectations:
+This was marked as an old flaky failure and tracked in rdar://63357481.
+I've kept my eye on it and it does not seem flaky anymore. Removed failure
+expectation to get better test coverage.
+
 2021-03-16  Truitt Savell  
 
 Many media/media-fragments/ tests are crashing due to other tests that run before them.


Modified: trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html (274512 => 274513)

--- trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html	2021-03-16 20:51:11 UTC (rev 274512)
+++ trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html	2021-03-16 20:57:04 UTC (rev 274513)
@@ -15,7 +15,7 @@
 
 if (window.testRunner) {
 testRunner.setPrivateClickMeasurementOverrideTimerForTesting(true);
-testRunner.setPrivateClickMeasurementAttributionReportURLForTesting("http://127.0.0.1:8000/privateClickMeasurement/resources/conversionReport.php");
+testRunner.setPrivateClickMeasurementAttributionReportURLsForTesting("http://127.0.0.1:8000/privateClickMeasurement/resources/conversionReport.php", "http://localhost:8000/privateClickMeasurement/resources/conversionReport.php");
 }
 
 function activateElement(elementID) {


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html (274512 => 274513)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html	2021-03-16 20:51:11 UTC (rev 274512)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html	2021-03-16 20:57:04 UTC (rev 274513)
@@ -18,7 +18,7 @@
 prepareTest();
 
 if (window.testRunner)
-testRunner.setPrivateClickMeasurementAttributionReportURLForTesting("http://127.0.0.1:8000/privateClickMeasurement/resources/conversionReport.php?nonce=" + nonce);
+testRunner.setPrivateClickMeasurementAttributionReportURLsForTesting("http://127.0.0.1:8000/privateClickMeasurement/resources/conversionReport.php?nonce=" + nonce, "http://localhost:8000/privateClickMeasurement/resources/conversionReport.php?nonce=" + nonce);
 
 function activateElement(elementID) {
 var element = document.getElementById(elementID);


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html (274512 => 274513)

--- trunk/LayoutTests/http/tests/

[webkit-changes] [274453] trunk

2021-03-15 Thread wilander
Title: [274453] trunk








Revision 274453
Author wilan...@apple.com
Date 2021-03-15 16:44:21 -0700 (Mon, 15 Mar 2021)


Log Message
PCM: Split attributionReportURL() into attributionReportSourceURL() and attributionReportAttributeOnURL()
https://bugs.webkit.org/show_bug.cgi?id=223210


Reviewed by Brent Fulgham.

This patch splits WebCore::PrivateClickMeasurement::attributionReportURL() into
Source/WebCore:

PrivateClickMeasurement::attributionReportSourceURL() and
PrivateClickMeasurement::attributionReportAttributeOnURL() to
facilitate sending attribution reports to both the click source and destination.

No new tests. This patch doesn't change functionality and the functionality is
covered by existing tests.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
Changed the assertion to check both the attribution URLs.
* loader/PrivateClickMeasurement.cpp:
(WebCore::attributionReportURL):
Static convenience function to share code between
PrivateClickMeasurement::attributionReportSourceURL() and
PrivateClickMeasurement::attributionReportAttributeOnURL().
(WebCore::PrivateClickMeasurement::attributionReportSourceURL const):
Generates the well-known location for the click source.
(WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL const):
Generates the well-known location for the click destination.
(WebCore::PrivateClickMeasurement::attributionReportURL const): Deleted.
No mostly exists as a static convenience function (see above).
* loader/PrivateClickMeasurement.h:

Source/WebKit:

WebCore::PrivateClickMeasurement::attributionReportSourceURL() and
WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL() to
facilitate sending attribution reports to both the click source and destination.

* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
Removed a reference to ads in a log statement.
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
Now uses  WebCore::PrivateClickMeasurement::attributionReportSourceURL().

Tools:

WebCore::PrivateClickMeasurement::attributionReportSourceURL() and
WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL() to
facilitate sending attribution reports to both the click source and destination.

* TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
Updated to use the new functions and also not repeat tests of static
data.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLAnchorElement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (274452 => 274453)

--- trunk/Source/WebCore/ChangeLog	2021-03-15 23:41:59 UTC (rev 274452)
+++ trunk/Source/WebCore/ChangeLog	2021-03-15 23:44:21 UTC (rev 274453)
@@ -1,3 +1,35 @@
+2021-03-15  John Wilander  
+
+PCM: Split attributionReportURL() into attributionReportSourceURL() and attributionReportAttributeOnURL()
+https://bugs.webkit.org/show_bug.cgi?id=223210
+
+
+Reviewed by Brent Fulgham.
+
+This patch splits WebCore::PrivateClickMeasurement::attributionReportURL() into
+PrivateClickMeasurement::attributionReportSourceURL() and
+PrivateClickMeasurement::attributionReportAttributeOnURL() to
+facilitate sending attribution reports to both the click source and destination.
+
+No new tests. This patch doesn't change functionality and the functionality is
+covered by existing tests.
+
+* html/HTMLAnchorElement.cpp:
+(WebCore::HTMLAnchorElement::handleClick):
+Changed the assertion to check both the attribution URLs.
+* loader/PrivateClickMeasurement.cpp:
+(WebCore::attributionReportURL):
+Static convenience function to share code between
+PrivateClickMeasurement::attributionReportSourceURL() and
+PrivateClickMeasurement::attributionReportAttributeOnURL().
+(WebCore::PrivateClickMeasurement::attributionReportSourceURL const):
+Generates the well-known location for the click source.
+(WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL const):
+Generates the well-known location for the click destination.
+(WebCore::PrivateClickMeasurement::attributionReportURL const): Deleted.
+No mostly exists as a static convenience function (see above).
+* loader/PrivateClickMeasurement.h:
+
 2021-03-15  Wenson Hsieh  
 
 Image overlay creation should be idempotent


Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (274452 => 274453)

--- trunk/Sou

[webkit-changes] [274087] trunk

2021-03-08 Thread wilander
bCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:
(TestWebKitAPI::TEST):
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setPrivateClickMeasurementFraudPreventionValuesForTesting):
(WTR::TestRunner::setFraudPreventionValuesForTesting): Deleted.
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setPCMFraudPreventionValuesForTesting):
(WTR::TestController::setFraudPreventionValuesForTesting): Deleted.
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

* http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php: Renamed from LayoutTests/http/tests/privateClickMeasurement/resources/signToken.php.
The way this PHP file is used goes beyond signing tokens so it now has a generic name.
* http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
Re-baselined to reflect the new naming.
* http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebCore/loader/cocoa/PrivateClickMeasurementCocoa.mm
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h
trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp
trunk/Source/WebKit/UIProcess/API/C/WKPagePrivate.h
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
trunk/Source/WebKit/UIProcess/WebPageProxy.h
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp
trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm
trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestController.h
trunk/Tools/WebKitTestRunner/TestInvocation.cpp


Added Paths

trunk/LayoutTests/http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php


Removed Paths

trunk/LayoutTests/http/tests/privateClickMeasurement/resources/signToken.php




Diff

Modified: trunk/LayoutTests/ChangeLog (274086 => 274087)

--- trunk/LayoutTests/ChangeLog	2021-03-08 19:36:48 UTC (rev 274086)
+++ trunk/LayoutTests/ChangeLog	2021-03-08 19:51:56 UTC (rev 274087)
@@ -1,3 +1,20 @@
+2021-03-08  John Wilander  
+
+PCM: Align fraud prevention token naming with issue 73 in the Privacy CG repo
+https://bugs.webkit.org/show_bug.cgi?id=222838
+
+
+Reviewed by Brent Fulgham.
+
+This patch doesn't change functionality and only aligns naming to this W3C Privacy CG issue:
+https://github.com/privacycg/private-click-measurement/issues/73
+
+* http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php: Renamed from LayoutTests/http/tests/privateClickMeasurement/resources/signToken.php.
+The way this PHP file is used goes beyond signing tokens so it now has a generic name.
+* http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
+Re-baselined to reflect the new naming.
+* http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
+
 2021-03-06  Ryan Haddad  
 
 REGRESSION (r269627?): ASSERTION FAILED: &layoutState().establishedFormattingState(layoutBox.formattingContextRoot()) == this in WebCore::Layout::FormattingState::boxGeometry


Copied: trunk/LayoutTests/http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php (from rev 274085, trunk/LayoutTests/http/tests/privateClickMeasurement/resources/signToken.php) (0 => 274087)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php	(rev 0)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php	2021-03-08 19:51:56 UTC 

[webkit-changes] [273590] trunk

2021-02-26 Thread wilander
trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html
trunk/LayoutTests/platform/wk2/TestExpectations
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestController.h
trunk/Tools/WebKitTestRunner/TestInvocation.cpp


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html


Removed Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html




Diff

Modified: trunk/LayoutTests/ChangeLog (273589 => 273590)

--- trunk/LayoutTests/ChangeLog	2021-02-26 22:11:04 UTC (rev 273589)
+++ trunk/LayoutTests/ChangeLog	2021-02-26 22:26:35 UTC (rev 273590)
@@ -1,3 +1,27 @@
+2021-02-26  John Wilander  
+
+Non-cookie website data not deleted after 7 days of browser use without user interaction
+https://bugs.webkit.org/show_bug.cgi?id=48
+
+
+Reviewed by Brent Fulgham and informally by Kate Cheney.
+
+Existing test cases now make use of the new numberOfOperatingDaysPassed
+parameter to testRunner.setStatisticsExpiredStatistic() to control the exact
+number of operating days passed since user interaction.
+A new test case makes sure website data is not deleted below the threshold.
+
+* http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt: Added.
+* http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html: Added.
+Sets numberOfOperatingDaysPassed to 6.
+* http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt.
+* http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-with-user-interaction-7-days-ago.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html.
+Sets numberOfOperatingDaysPassed to 7.
+* http/tests/resourceLoadStatistics/operating-dates-all-website-data-removed.html:
+Sets numberOfOperatingDaysPassed to 30.
+* platform/wk2/TestExpectations:
+Updated existing expectation with new file name.
+
 2021-02-26  Lauro Moura  
 
 [GLIB] Move some css3 blending baselines to glib and update expectations


Copied: trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago-expected.txt (from rev 273589, trunk/LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt) (0 => 273590)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/operatin

[webkit-changes] [273088] trunk

2021-02-18 Thread wilander
/store-private-click-measurement-with-source-nonce-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html




Diff

Modified: trunk/LayoutTests/ChangeLog (273087 => 273088)

--- trunk/LayoutTests/ChangeLog	2021-02-18 19:40:50 UTC (rev 273087)
+++ trunk/LayoutTests/ChangeLog	2021-02-18 19:44:39 UTC (rev 273088)
@@ -1,3 +1,31 @@
+2021-02-18  John Wilander  
+
+PCM: Request signature for unlinkable token using attributionSourceNonce
+https://bugs.webkit.org/show_bug.cgi?id=222076
+
+
+Reviewed by Chris Dumez.
+
+* http/tests/contentextensions/block-private-click-measurement.html:
+Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().
+* http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:
+Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().
+* http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:
+Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().
+* http/tests/privateClickMeasurement/resources/getConversionData.php:
+Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().
+* http/tests/privateClickMeasurement/resources/getTokenSigningData.php: Added.
+* http/tests/privateClickMeasurement/resources/signToken.php: Added.
+* http/tests/privateClickMeasurement/resources/tokenSigningFilePath.php: Added.
+* http/tests/privateClickMeasurement/resources/util.js:
+(tearDownAndFinish):
+Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().
+Now also calls setPrivateClickMeasurementTokenSignatureURLForTesting().
+* http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
+Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().
+* http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt: Added.
+* http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html: Added.
+
 2021-02-18  Michael Saboff  
 
 [JSC] Implement RegExp Match Indices proposal


Modified: trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html (273087 => 273088)

--- trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html	2021-02-18 19:40:50 UTC (rev 273087)
+++ trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html	2021-02-18 19:44:39 UTC (rev 273088)
@@ -15,7 +15,7 @@
 
 if (window.testRunner) {
 testRunner.setPrivateClickMeasurementOverrideTimerForTesting(true);
-testRunner.setPrivateClickMeasurementConversionURLForTesting("http://127.0.0.1:8000/privateClickMeasurement/resources/conversionReport.php");
+testRunner.setPrivateClickMeasurementAttributionReportURLForTesting("http://127.0.0.1:8000/privateClickMeasurement/resources/conversionReport.php");
 }
 
 function activateElement(elementID) {


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html (273087 => 273088)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html	2021-02-18 19:40:50 UTC (rev 273087)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html	2021-02-18 19:44:39 UTC (rev 273088)
@@ -18,7 +18,7 @@
 prepareTest();
 
 if (window.testRunner)
-testRunner.setPrivateClickMeasurementConversionURLForTesting("http://127.0.0.1:8000/privateClickMeasurement/resources/conversionReport.php?nonce=" + nonce);
+testRunner.setPrivateClickMeasurementAttributionReportURLForTesting("http://127.0.0.1:8000/privateClickMeasurement/resources/conversionReport.php?nonce=" + nonce);
 
 function activateElement(elementID) {
 var element = document.getElementById(elementID);


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html (273087 => 273088)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html	2021-02-18 19:40:50 UTC (rev 273087)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html	2021-02-18 19:44:39 UTC (rev 273088)
@@ -18,7 +18,7 @@
 prepareTest();
 
 if (window.testRunner) {
-testRunner.setPrivateClickMeasurementConversionURLForTesting("http://127.0.0.1:8000/privateClickM

[webkit-changes] [272894] trunk

2021-02-15 Thread wilander
Title: [272894] trunk








Revision 272894
Author wilan...@apple.com
Date 2021-02-15 20:11:31 -0800 (Mon, 15 Feb 2021)


Log Message
PCM: Add high entropy attributionSourceNonce attribute to anchor tags
https://bugs.webkit.org/show_bug.cgi?id=221934


Reviewed by Jiewen Tan.

In Private Click Measurement (PCM), the source site should have the option to
provide a high entropy nonce with which PCM can asynchronously validate its
subsequent, asynchronous request for a signature of its unlinkable token.

The nonce attribute's name is attributionSourceNonce and it's a
128-bit/16-byte Base64URL encoded string.

The attribute is behind the experimental feature flag
PrivateClickMeasurementFraudPrevention.

Source/WebCore:

New API tests added.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
* html/HTMLAnchorElement.idl:
* html/HTMLAttributeNames.in:
* loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::EphemeralSourceNonce):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isValid const):
(WebCore::PrivateClickMeasurement::setEphemeralSourceNonce):
(WebCore::PrivateClickMeasurement::ephemeralSourceNonce const):
(WebCore::PrivateClickMeasurement::clearEphemeralSourceNonce):
* page/Settings.yaml:

Tools:

* TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLAnchorElement.cpp
trunk/Source/WebCore/html/HTMLAnchorElement.idl
trunk/Source/WebCore/html/HTMLAttributeNames.in
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebCore/page/Settings.yaml
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (272893 => 272894)

--- trunk/Source/WebCore/ChangeLog	2021-02-16 02:06:18 UTC (rev 272893)
+++ trunk/Source/WebCore/ChangeLog	2021-02-16 04:11:31 UTC (rev 272894)
@@ -1,3 +1,35 @@
+2021-02-15  John Wilander  
+
+PCM: Add high entropy attributionSourceNonce attribute to anchor tags
+https://bugs.webkit.org/show_bug.cgi?id=221934
+
+
+Reviewed by Jiewen Tan.
+
+In Private Click Measurement (PCM), the source site should have the option to
+provide a high entropy nonce with which PCM can asynchronously validate its
+subsequent, asynchronous request for a signature of its unlinkable token.
+
+The nonce attribute's name is attributionSourceNonce and it's a
+128-bit/16-byte Base64URL encoded string.
+
+The attribute is behind the experimental feature flag
+PrivateClickMeasurementFraudPrevention.
+
+New API tests added.
+
+* html/HTMLAnchorElement.cpp:
+(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
+* html/HTMLAnchorElement.idl:
+* html/HTMLAttributeNames.in:
+* loader/PrivateClickMeasurement.h:
+(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::EphemeralSourceNonce):
+(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isValid const):
+(WebCore::PrivateClickMeasurement::setEphemeralSourceNonce):
+(WebCore::PrivateClickMeasurement::ephemeralSourceNonce const):
+(WebCore::PrivateClickMeasurement::clearEphemeralSourceNonce):
+* page/Settings.yaml:
+
 2021-02-15  Eric Carlson  
 
 [macOS] Connect Touch Bar to MediaSession


Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (272893 => 272894)

--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp	2021-02-16 02:06:18 UTC (rev 272893)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp	2021-02-16 04:11:31 UTC (rev 272894)
@@ -450,7 +450,19 @@
 return WTF::nullopt;
 }
 
-return PrivateClickMeasurement { SourceID(attributionSourceID.value()), SourceSite(documentRegistrableDomain), AttributeOnSite(attributeOnURL) };
+auto privateClickMeasurement = PrivateClickMeasurement { SourceID(attributionSourceID.value()), SourceSite(documentRegistrableDomain), AttributeOnSite(attributeOnURL) };
+
+auto attributionSourceNonceAttr = attributeWithoutSynchronization(attributionsourcenonceAttr);
+if (!attributionSourceNonceAttr.isEmpty()) {
+auto ephemeralNonce = PrivateClickMeasurement::EphemeralSourceNonce { attributionSourceNonceAttr };
+if (!ephemeralNonce.isValid()) {
+document().addConsoleMessage(MessageSource::Other, MessageLevel::Warning, "attributionsourcenonce was not valid."_s);
+return WTF::nullopt;
+}
+privateClickMeasurement.setEphemeralSourceNonce(WTFMove(ephemeralNonce));
+}
+
+return privateClickMeasurement;
 }
 
 void HTMLAnchorElement::handleClick(Event& event)


Modified: trunk/Source/WebCore/html/HTMLAnchorElement.idl (272893 => 272894)

--- trunk/Source/WebCore/html/HTMLAnchorElement.idl	2021-02-16 02:06:18 UTC

[webkit-changes] [271799] trunk

2021-01-25 Thread wilander
Title: [271799] trunk








Revision 271799
Author wilan...@apple.com
Date 2021-01-25 10:28:41 -0800 (Mon, 25 Jan 2021)


Log Message
PCM: Use different well-known locations for triggering and reporting attribution
https://bugs.webkit.org/show_bug.cgi?id=220902


Reviewed by Brent Fulgham.

The discussion in W3C Privacy CG concluded that we should use distinct
well-known URL paths for websites triggering attribution and for the
browser reporting attribution
(https://github.com/privacycg/private-click-measurement/issues/59).

This patch changes the one location to these two:
/.well-known/private-click-measurement/trigger-attribution
/.well-known/private-click-measurement/report-attribution

Source/WebCore:

Existing tests updated.

* loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::parseAttributionRequest):
(WebCore::PrivateClickMeasurement::reportURL const):

Tools:

* TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):

LayoutTests:

* http/tests/privateClickMeasurement/resources/redirectToConversion.php:
* http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversion.php
trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm




Diff

Modified: trunk/LayoutTests/ChangeLog (271798 => 271799)

--- trunk/LayoutTests/ChangeLog	2021-01-25 18:19:47 UTC (rev 271798)
+++ trunk/LayoutTests/ChangeLog	2021-01-25 18:28:41 UTC (rev 271799)
@@ -1,3 +1,23 @@
+2021-01-25  John Wilander  
+
+PCM: Use different well-known locations for triggering and reporting attribution
+https://bugs.webkit.org/show_bug.cgi?id=220902
+
+
+Reviewed by Brent Fulgham.
+
+The discussion in W3C Privacy CG concluded that we should use distinct
+well-known URL paths for websites triggering attribution and for the
+browser reporting attribution
+(https://github.com/privacycg/private-click-measurement/issues/59).
+
+This patch changes the one location to these two:
+/.well-known/private-click-measurement/trigger-attribution
+/.well-known/private-click-measurement/report-attribution
+
+* http/tests/privateClickMeasurement/resources/redirectToConversion.php:
+* http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php:
+
 2021-01-25  Sam Weinig  
 
 Import css/css-color tests from WPT


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversion.php (271798 => 271799)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversion.php	2021-01-25 18:19:47 UTC (rev 271798)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversion.php	2021-01-25 18:28:41 UTC (rev 271799)
@@ -2,8 +2,8 @@
 header("HTTP/1.1 302 Found");
 header("Cache-Control: no-cache, no-store, must-revalidate");
 if (isset($_GET["conversionData"]) && isset($_GET["priority"])) {
-  header("Location: /.well-known/private-click-measurement/" . $_GET["conversionData"] . "/" . $_GET["priority"]);
+  header("Location: /.well-known/private-click-measurement/trigger-attribution/" . $_GET["conversionData"] . "/" . $_GET["priority"]);
 } else if (isset($_GET["conversionData"])) {
-  header("Location: /.well-known/private-click-measurement/" . $_GET["conversionData"]);
+  header("Location: /.well-known/private-click-measurement/trigger-attribution/" . $_GET["conversionData"]);
 }
 ?>


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php (271798 => 271799)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php	2021-01-25 18:19:47 UTC (rev 271798)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php	2021-01-25 18:28:41 UTC (rev 271799)
@@ -1,8 +1,8 @@
  header("HTTP/1.0 302 Found");
 if (isset($_GET["conversionData"]) && isset($_GET["priority"])) {
-  header("Location: https://127.0.0.1:8000/.well-known/private-click-measurement/" . $_GET["conversionData"] . "/" . $_GET["priority"]);
+  header("Location: https://127.0.0.1:8000/.well-known/private-click-measurement/trigger-attribution/" . $

[webkit-changes] [271473] trunk/Source

2021-01-13 Thread wilander
Title: [271473] trunk/Source








Revision 271473
Author wilan...@apple.com
Date 2021-01-13 16:10:07 -0800 (Wed, 13 Jan 2021)


Log Message
PCM: Output logs by default, including to Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=220596


Reviewed by Brent Fulgham.

This change turns on PCM output to Web Inspector and logs
Source/WebCore:

by default. In the case of WebCore::PrivateClickMeasurement,
this means we no longer need the debugModeEnabled()
convenience function.

* loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::parseAttributionRequest):
(WebCore::PrivateClickMeasurement::debugModeEnabled): Deleted.
* loader/PrivateClickMeasurement.h:

Source/WebKit:

by default. In some of the cases, the syslog output was
deleted since it doesn't make sense to log those messages
now that we have output in Web Inspector.

* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (271472 => 271473)

--- trunk/Source/WebCore/ChangeLog	2021-01-14 00:07:24 UTC (rev 271472)
+++ trunk/Source/WebCore/ChangeLog	2021-01-14 00:10:07 UTC (rev 271473)
@@ -1,3 +1,21 @@
+2021-01-13  John Wilander  
+
+PCM: Output logs by default, including to Web Inspector
+https://bugs.webkit.org/show_bug.cgi?id=220596
+
+
+Reviewed by Brent Fulgham.
+
+This change turns on PCM output to Web Inspector and logs
+by default. In the case of WebCore::PrivateClickMeasurement,
+this means we no longer need the debugModeEnabled()
+convenience function.
+
+* loader/PrivateClickMeasurement.cpp:
+(WebCore::PrivateClickMeasurement::parseAttributionRequest):
+(WebCore::PrivateClickMeasurement::debugModeEnabled): Deleted.
+* loader/PrivateClickMeasurement.h:
+
 2021-01-13  Said Abou-Hallawa  
 
 Move the space transform outside the Gradient class


Modified: trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp (271472 => 271473)

--- trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp	2021-01-14 00:07:24 UTC (rev 271472)
+++ trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp	2021-01-14 00:10:07 UTC (rev 271473)
@@ -61,25 +61,15 @@
 if (path.isEmpty() || !path.startsWith(privateClickMeasurementPathPrefix))
 return makeUnexpected(nullString());
 
-if (!redirectURL.protocolIs("https") || redirectURL.hasCredentials() || redirectURL.hasQuery() || redirectURL.hasFragmentIdentifier()) {
-if (UNLIKELY(debugModeEnabled())) {
-RELEASE_LOG_INFO(PrivateClickMeasurement, "Conversion was not accepted because the URL's protocol is not HTTPS or the URL contains one or more of username, password, query string, and fragment.");
-return makeUnexpected("[Private Click Measurement] Conversion was not accepted because the URL's protocol is not HTTPS or the URL contains one or more of username, password, query string, and fragment."_s);
-}
-return makeUnexpected(nullString());
-}
+if (!redirectURL.protocolIs("https") || redirectURL.hasCredentials() || redirectURL.hasQuery() || redirectURL.hasFragmentIdentifier())
+return makeUnexpected("[Private Click Measurement] Conversion was not accepted because the URL's protocol is not HTTPS or the URL contains one or more of username, password, query string, and fragment."_s);
 
 
 auto prefixLength = sizeof(privateClickMeasurementPathPrefix) - 1;
 if (path.length() == prefixLength + privateClickMeasurementAttributionTriggerDataPathSegmentSize) {
 auto attributionTriggerDataUInt64 = path.substring(prefixLength, privateClickMeasurementAttributionTriggerDataPathSegmentSize).toUInt64Strict();
-if (!attributionTriggerDataUInt64 || *attributionTriggerDataUInt64 > AttributionTriggerData::MaxEntropy) {
-if (UNLIKELY(debugModeEnabled())) {
-RELEASE_LOG_INFO(PrivateClickMeasurement, "Conversion was not accepted because the conversion data could not be parsed or was higher than the allowed maximum of %{public}u.", AttributionTriggerData::MaxEntropy);
-return makeUnexpected(makeString("[Private Click Measurement] Conversion was not accepted because the conversion data could not be parsed or was higher than the allowed maximum of "_s, AttributionTriggerData::MaxEntropy, "."_s));
-

[webkit-changes] [271448] trunk/Source/WebKit

2021-01-13 Thread wilander
Title: [271448] trunk/Source/WebKit








Revision 271448
Author wilan...@apple.com
Date 2021-01-13 11:42:29 -0800 (Wed, 13 Jan 2021)


Log Message
PCM: Experimental debug mode needs to be read from defaults differently on iOS
https://bugs.webkit.org/show_bug.cgi?id=220573


Reviewed by Brent Fulgham.

Experimental features on iOS use the prefix "WebKitExperimental" so we
need to read it that way on that platform. PCM is not supported on other
platforms than macOS and iOS at this point.

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (271447 => 271448)

--- trunk/Source/WebKit/ChangeLog	2021-01-13 19:25:37 UTC (rev 271447)
+++ trunk/Source/WebKit/ChangeLog	2021-01-13 19:42:29 UTC (rev 271448)
@@ -1,3 +1,18 @@
+2021-01-13  John Wilander  
+
+PCM: Experimental debug mode needs to be read from defaults differently on iOS
+https://bugs.webkit.org/show_bug.cgi?id=220573
+
+
+Reviewed by Brent Fulgham.
+
+Experimental features on iOS use the prefix "WebKitExperimental" so we
+need to read it that way on that platform. PCM is not supported on other
+platforms than macOS and iOS at this point.
+
+* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+(WebKit::WebProcessPool::platformInitializeNetworkProcess):
+
 2021-01-13  Megan Gardner  
 
 Defer setting up app highlight menus until needed to not delay launch time.


Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm (271447 => 271448)

--- trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2021-01-13 19:25:37 UTC (rev 271447)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2021-01-13 19:42:29 UTC (rev 271448)
@@ -491,7 +491,12 @@
 #endif
 
 parameters.enablePrivateClickMeasurement = ![defaults objectForKey:WebPreferencesKey::privateClickMeasurementEnabledKey()] || [defaults boolForKey:WebPreferencesKey::privateClickMeasurementEnabledKey()];
-parameters.enablePrivateClickMeasurementDebugMode = [defaults boolForKey:[NSString stringWithFormat:@"Experimental%@", WebPreferencesKey::privateClickMeasurementDebugModeEnabledKey().createCFString().get()]];
+#if PLATFORM(MAC)
+NSString *format = @"Experimental%@";
+#else
+NSString *format = @"WebKitExperimental%@";
+#endif
+parameters.enablePrivateClickMeasurementDebugMode = [defaults boolForKey:[NSString stringWithFormat:format, WebPreferencesKey::privateClickMeasurementDebugModeEnabledKey().createCFString().get()]];
 }
 
 void WebProcessPool::platformInvalidateContext()






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [271184] trunk/Source/WebKit

2021-01-05 Thread wilander
Title: [271184] trunk/Source/WebKit








Revision 271184
Author wilan...@apple.com
Date 2021-01-05 17:08:52 -0800 (Tue, 05 Jan 2021)


Log Message
PCM: Experimental debug mode stops working after initial use
https://bugs.webkit.org/show_bug.cgi?id=220336


Reviewed by Brent Fulgham.

The existing experimental PCM debug mode uses
RuntimeEnabledFeatures::sharedFeatures().privateClickMeasurementDebugModeEnabled()
which is not correct in the network process. This makes the flag to lose its
state after navigations in new tabs.

This patch moves the flag to be alongside the PCM feature flag in
WebKit::NetworkProcess.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setPrivateClickMeasurementDebugMode):
(WebKit::NetworkProcess::privateClickMeasurementDebugModeEnabled const):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::debugModeEnabled const):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (271183 => 271184)

--- trunk/Source/WebKit/ChangeLog	2021-01-06 00:44:51 UTC (rev 271183)
+++ trunk/Source/WebKit/ChangeLog	2021-01-06 01:08:52 UTC (rev 271184)
@@ -1,3 +1,26 @@
+2021-01-05  John Wilander  
+
+PCM: Experimental debug mode stops working after initial use
+https://bugs.webkit.org/show_bug.cgi?id=220336
+
+
+Reviewed by Brent Fulgham.
+
+The existing experimental PCM debug mode uses
+RuntimeEnabledFeatures::sharedFeatures().privateClickMeasurementDebugModeEnabled()
+which is not correct in the network process. This makes the flag to lose its
+state after navigations in new tabs.
+
+This patch moves the flag to be alongside the PCM feature flag in
+WebKit::NetworkProcess.
+
+* NetworkProcess/NetworkProcess.cpp:
+(WebKit::NetworkProcess::setPrivateClickMeasurementDebugMode):
+(WebKit::NetworkProcess::privateClickMeasurementDebugModeEnabled const):
+* NetworkProcess/NetworkProcess.h:
+* NetworkProcess/PrivateClickMeasurementManager.cpp:
+(WebKit::PrivateClickMeasurementManager::debugModeEnabled const):
+
 2021-01-05  Kimmo Kinnunen  
 
 WebKit IPC generator tests have duplicate receiver names, limiting the implementation


Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (271183 => 271184)

--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2021-01-06 00:44:51 UTC (rev 271183)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2021-01-06 01:08:52 UTC (rev 271184)
@@ -1324,14 +1324,14 @@
 return m_privateClickMeasurementEnabled;
 }
 
-void NetworkProcess::setPrivateClickMeasurementDebugMode(bool debugMode)
+void NetworkProcess::setPrivateClickMeasurementDebugMode(bool enabled)
 {
-if (RuntimeEnabledFeatures::sharedFeatures().privateClickMeasurementDebugModeEnabled() == debugMode)
+if (m_privateClickMeasurementDebugModeEnabled == enabled)
 return;
 
-RuntimeEnabledFeatures::sharedFeatures().setPrivateClickMeasurementDebugModeEnabled(debugMode);
+m_privateClickMeasurementDebugModeEnabled = enabled;
 
-String message = debugMode ? "[Private Click Measurement] Turned Debug Mode on."_s : "[Private Click Measurement] Turned Debug Mode off."_s;
+String message = enabled ? "[Private Click Measurement] Turned Debug Mode on."_s : "[Private Click Measurement] Turned Debug Mode off."_s;
 for (auto& networkConnectionToWebProcess : m_webProcessConnections.values()) {
 if (networkConnectionToWebProcess->sessionID().isEphemeral())
 continue;
@@ -1339,6 +1339,11 @@
 }
 }
 
+bool NetworkProcess::privateClickMeasurementDebugModeEnabled() const
+{
+return m_privateClickMeasurementDebugModeEnabled;
+}
+
 void NetworkProcess::preconnectTo(PAL::SessionID sessionID, WebPageProxyIdentifier webPageProxyID, WebCore::PageIdentifier webPageID, const URL& url, const String& userAgent, WebCore::StoredCredentialsPolicy storedCredentialsPolicy, Optional isNavigatingToAppBoundDomain)
 {
 LOG(Network, "(NetworkProcess) Preconnecting to URL %s (storedCredentialsPolicy %i)", url.string().utf8().data(), (int)storedCredentialsPolicy);


Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (271183 => 271184)

--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2021-01-06 00:44:51 UTC (rev 271183)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2021-01-06 01:08:52 UTC (rev 271184)
@@ -279,6 +279,7 @@
 void setPrivateClickMeasurementEnabled(bool);
 bool privateClickMeasurementEnabled() const;
 void setPrivateClickMeasurementDebugMode(bool);
+bool privateClickMeasurementDebugModeEnabled() const

[webkit-changes] [270726] trunk/Source/WebKit

2020-12-11 Thread wilander
Title: [270726] trunk/Source/WebKit








Revision 270726
Author wilan...@apple.com
Date 2020-12-11 18:31:53 -0800 (Fri, 11 Dec 2020)


Log Message
PCM: Change debugModeSecondsUntilSend from 60 seconds to 10 seconds
https://bugs.webkit.org/show_bug.cgi?id=219816


Unreviewed change to a constant, only used for debugging.


* NetworkProcess/PrivateClickMeasurementManager.cpp:
debugModeSecondsUntilSend changed to 10 seconds.
(WebKit::PrivateClickMeasurementManager::attribute):
Fixed bad indentation.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (270725 => 270726)

--- trunk/Source/WebKit/ChangeLog	2020-12-12 02:12:50 UTC (rev 270725)
+++ trunk/Source/WebKit/ChangeLog	2020-12-12 02:31:53 UTC (rev 270726)
@@ -1,3 +1,16 @@
+2020-12-11  John Wilander  
+
+PCM: Change debugModeSecondsUntilSend from 60 seconds to 10 seconds
+https://bugs.webkit.org/show_bug.cgi?id=219816
+
+
+Unreviewed change to a constant, only used for debugging.
+
+* NetworkProcess/PrivateClickMeasurementManager.cpp:
+debugModeSecondsUntilSend changed to 10 seconds.
+(WebKit::PrivateClickMeasurementManager::attribute):
+Fixed bad indentation.
+
 2020-12-11  Ryosuke Niwa  
 
 [GPU Process] Cache Font objects


Modified: trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp (270725 => 270726)

--- trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp	2020-12-12 02:12:50 UTC (rev 270725)
+++ trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp	2020-12-12 02:31:53 UTC (rev 270726)
@@ -47,7 +47,7 @@
 using AttributeOnSite = PrivateClickMeasurement::AttributeOnSite;
 using AttributionTriggerData = PrivateClickMeasurement::AttributionTriggerData;
 
-constexpr Seconds debugModeSecondsUntilSend { 60_s };
+constexpr Seconds debugModeSecondsUntilSend { 10_s };
 
 PrivateClickMeasurementManager::PrivateClickMeasurementManager(NetworkSession& networkSession, NetworkProcess& networkProcess, PAL::SessionID sessionID)
 : m_firePendingAttributionRequestsTimer(*this, &PrivateClickMeasurementManager::firePendingAttributionRequests)
@@ -128,7 +128,7 @@
 if (UNLIKELY(debugModeEnabled())) {
 RELEASE_LOG_INFO(PrivateClickMeasurement, "Setting timer for firing attribution request to the debug mode timeout of %{public}f seconds where the regular timeout would have been %{public}f seconds.", debugModeSecondsUntilSend.seconds(), secondsUntilSend.seconds());
 m_networkProcess->broadcastConsoleMessage(m_sessionID, MessageSource::PrivateClickMeasurement, MessageLevel::Log, makeString("[Private Click Measurement] Setting timer for firing attribution request to the debug mode timeout of "_s, debugModeSecondsUntilSend.seconds(), " seconds where the regular timeout would have been "_s, secondsUntilSend.seconds(), " seconds."_s));
-secondsUntilSend = debugModeSecondsUntilSend;
+secondsUntilSend = debugModeSecondsUntilSend;
 }
 startTimer(secondsUntilSend);
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [270723] trunk/Source/WebKit

2020-12-11 Thread wilander
Title: [270723] trunk/Source/WebKit








Revision 270723
Author wilan...@apple.com
Date 2020-12-11 17:34:33 -0800 (Fri, 11 Dec 2020)


Log Message
PCM: Add feature flag support in the network process
https://bugs.webkit.org/show_bug.cgi?id=219811


Reviewed by Alex Christensen.

No new tests. This just forwards a preference to the network process.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
Stores the incoming enablePrivateClickMeasurement from
WebKit::NetworkProcessCreationParameters.
(WebKit::NetworkProcess::setPrivateClickMeasurementEnabled):
(WebKit::NetworkProcess::privateClickMeasurementEnabled const):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
New field enablePrivateClickMeasurement.
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
Early return if the feature is not enabled.
(WebKit::PrivateClickMeasurementManager::handleAttribution):
Early return if the feature is not enabled.
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
Early return if the feature is not enabled.
(WebKit::PrivateClickMeasurementManager::featureEnabled const):
New convenience function.
* NetworkProcess/PrivateClickMeasurementManager.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
Sets the new enablePrivateClickMeasurement in
WebKit::NetworkProcessCreationParameters.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.h
trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (270722 => 270723)

--- trunk/Source/WebKit/ChangeLog	2020-12-12 01:18:17 UTC (rev 270722)
+++ trunk/Source/WebKit/ChangeLog	2020-12-12 01:34:33 UTC (rev 270723)
@@ -1,3 +1,40 @@
+2020-12-11  John Wilander  
+
+PCM: Add feature flag support in the network process
+https://bugs.webkit.org/show_bug.cgi?id=219811
+
+
+Reviewed by Alex Christensen.
+
+No new tests. This just forwards a preference to the network process.
+
+* NetworkProcess/NetworkProcess.cpp:
+(WebKit::NetworkProcess::initializeNetworkProcess):
+Stores the incoming enablePrivateClickMeasurement from
+WebKit::NetworkProcessCreationParameters.
+(WebKit::NetworkProcess::setPrivateClickMeasurementEnabled):
+(WebKit::NetworkProcess::privateClickMeasurementEnabled const):
+* NetworkProcess/NetworkProcess.h:
+* NetworkProcess/NetworkProcessCreationParameters.cpp:
+New field enablePrivateClickMeasurement.
+(WebKit::NetworkProcessCreationParameters::encode const):
+(WebKit::NetworkProcessCreationParameters::decode):
+* NetworkProcess/NetworkProcessCreationParameters.h:
+* NetworkProcess/PrivateClickMeasurementManager.cpp:
+(WebKit::PrivateClickMeasurementManager::storeUnattributed):
+Early return if the feature is not enabled.
+(WebKit::PrivateClickMeasurementManager::handleAttribution):
+Early return if the feature is not enabled.
+(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
+Early return if the feature is not enabled.
+(WebKit::PrivateClickMeasurementManager::featureEnabled const):
+New convenience function.
+* NetworkProcess/PrivateClickMeasurementManager.h:
+* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+(WebKit::WebProcessPool::platformInitializeNetworkProcess):
+Sets the new enablePrivateClickMeasurement in
+WebKit::NetworkProcessCreationParameters.
+
 2020-12-11  Jiewen Tan  
 
 Unreviewed, build fix after r270694


Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (270722 => 270723)

--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2020-12-12 01:18:17 UTC (rev 270722)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2020-12-12 01:34:33 UTC (rev 270723)
@@ -330,6 +330,7 @@
 
 setCacheModel(parameters.cacheModel);
 
+setPrivateClickMeasurementEnabled(parameters.enablePrivateClickMeasurement);
 setPrivateClickMeasurementDebugMode(parameters.enablePrivateClickMeasurementDebugMode);
 
 for (auto& supplement : m_supplements.values())
@@ -1313,6 +1314,16 @@
 }
 #endif // ENABLE(RESOURCE_LOAD_

[webkit-changes] [270667] trunk

2020-12-10 Thread wilander
Title: [270667] trunk








Revision 270667
Author wilan...@apple.com
Date 2020-12-10 21:32:04 -0800 (Thu, 10 Dec 2020)


Log Message
PCM: Turn feature on by default
https://bugs.webkit.org/show_bug.cgi?id=219762


Reviewed by Brent Fulgham.

This patch turns on Private Click Measurement (PCM) by default.
Source/WTF:

* Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Test cases no longer need to enable it.

* http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
* http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
* http/tests/privateClickMeasurement/clear-through-website-data-removal.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html
trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html
trunk/LayoutTests/http/tests/privateClickMeasurement/clear-through-website-data-removal.html
trunk/Source/WTF/ChangeLog
trunk/Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml




Diff

Modified: trunk/LayoutTests/ChangeLog (270666 => 270667)

--- trunk/LayoutTests/ChangeLog	2020-12-11 05:21:26 UTC (rev 270666)
+++ trunk/LayoutTests/ChangeLog	2020-12-11 05:32:04 UTC (rev 270667)
@@ -1,3 +1,20 @@
+2020-12-10  John Wilander  
+
+PCM: Turn feature on by default
+https://bugs.webkit.org/show_bug.cgi?id=219762
+
+
+Reviewed by Brent Fulgham.
+
+This patch turns on Private Click Measurement (PCM) by default.
+Test cases no longer need to enable it.
+
+* http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
+* http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
+* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
+* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
+* http/tests/privateClickMeasurement/clear-through-website-data-removal.html:
+
 2020-12-10  Youenn Fablet  
 
 Add a SFrame VP8 experimental compatibility mode


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html (270666 => 270667)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html	2020-12-11 05:21:26 UTC (rev 270666)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html	2020-12-11 05:32:04 UTC (rev 270667)
@@ -1,4 +1,4 @@
- 
+
 
 
 


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html (270666 => 270667)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html	2020-12-11 05:21:26 UTC (rev 270666)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html	2020-12-11 05:32:04 UTC (rev 270667)
@@ -1,4 +1,4 @@
- 
+ 
 
 
 


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html (270666 => 270667)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html	2020-12-11 05:21:26 UTC (rev 270666)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html	2020-12-11 05:32:04 UTC (rev 270667)
@@ -1,4 +1,4 @@
- 
+ 
 
 
 


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html (270666 => 270667)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html	2020-12-11 05:21:26 UTC (rev 270666)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html	2020-12-11 05:32:04 UTC (rev 270667)
@@ -1,4 +1,4 @@
- 
+ 
 
 
 


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/clear-through-website-data-removal.html (270666 => 270667)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/clear-through-website-data-removal.html	2020-12-11 05:21:26 UTC (rev 270666)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/clear-through-website-data-removal.html	2020-12-11 05:32:04 UTC (rev 27

[webkit-changes] [270598] trunk

2020-12-09 Thread wilander
Title: [270598] trunk








Revision 270598
Author wilan...@apple.com
Date 2020-12-09 13:24:40 -0800 (Wed, 09 Dec 2020)


Log Message
PCM: Make JSON key names use underscores according to the W3C conversation
https://bugs.webkit.org/show_bug.cgi?id=219696


Reviewed by Brent Fulgham.

Further discussion in https://github.com/privacycg/private-click-measurement/issues/30
concluded that the JSON report should use underscores in its keys instead of dashes.
This patch makes that change and shortens the "report_version" key to just "version".

Source/WebCore:

Existing tests updated.

* loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::json const):

Tools:

* TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):

LayoutTests:

* http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt:
* http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (270597 => 270598)

--- trunk/LayoutTests/ChangeLog	2020-12-09 20:55:17 UTC (rev 270597)
+++ trunk/LayoutTests/ChangeLog	2020-12-09 21:24:40 UTC (rev 270598)
@@ -1,3 +1,18 @@
+2020-12-09  John Wilander  
+
+PCM: Make JSON key names use underscores according to the W3C conversation
+https://bugs.webkit.org/show_bug.cgi?id=219696
+
+
+Reviewed by Brent Fulgham.
+
+Further discussion in https://github.com/privacycg/private-click-measurement/issues/30
+concluded that the JSON report should use underscores in its keys instead of dashes.
+This patch makes that change and shortens the "report_version" key to just "version".
+
+* http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt:
+* http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
+
 2020-12-09  Antti Koivisto  
 
 Font loads are triggered too late


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt (270597 => 270598)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt	2020-12-09 20:55:17 UTC (rev 270597)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt	2020-12-09 21:24:40 UTC (rev 270598)
@@ -11,7 +11,7 @@
 REQUEST_URI: /privateClickMeasurement/resources/conversionReport.php
 No cookies in attribution request.
 Request body:
-{"source-engagement-type":"click","source-site":"127.0.0.1","source-id":3,"attributed-on-site":"localhost","trigger-data":12,"report-version":1}
+{"source_engagement_type":"click","source_site":"127.0.0.1","source_id":3,"attributed_on_site":"localhost","trigger_data":12,"version":1}
 
 
 No stored Private Click Measurement data.


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt (270597 => 270598)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt	2020-12-09 20:55:17 UTC (rev 270597)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt	2020-12-09 21:24:40 UTC (rev 270598)
@@ -16,7 +16,7 @@
 REQUEST_URI: /privateClickMeasurement/resources/conversionReport.php
 No cookies in attribution request.
 Request body:
-{"source-engagement-type":"click","source-site":"127.0.0.1","source-id":3,"attributed-on-site":"localhost","trigger-data":12,"report-version":1}
+{"source_engagement_type":"click","source_site":"127.0.0.1","source_id":3,"attributed_on_site":"localhost","trigger_data":12,"version":1}
 
 
 


Modified: trunk/Source/WebCore/ChangeLog (270597 => 270598)

--- trunk/Source/WebCore/ChangeLog	2020-12-09 20:55:17 UTC (rev 270597)
+++ trunk/Source/WebCore/ChangeLog	2020-12-09 21:24:40 UTC (rev 270598)
@@ -1,3 +1,20 @@
+2020-12-09  John Wilander  
+
+PCM: Make JSON key names use underscores according to the W3C conversation
+   

[webkit-changes] [270456] trunk

2020-12-04 Thread wilander
Title: [270456] trunk








Revision 270456
Author wilan...@apple.com
Date 2020-12-04 14:18:51 -0800 (Fri, 04 Dec 2020)


Log Message
PCM: Switch to 8+4 bits for source IDs and trigger values respectively
https://bugs.webkit.org/show_bug.cgi?id=219519


Reviewed by Brent Fulgham.

We've received a lot of feedback saying increased entropy on the click side is more
important than the current 6 bits on the conversion side. Some of that conversation
is captured in https://github.com/privacycg/private-click-measurement/issues/28.

Source/WebCore:

This patch switches from 6+6 bits to 8+4 bits. It also fixes some minor logging
issues.

Existing layout tests and API tests were updated.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
* loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::parseAttributionRequest):
Removed the check that would log "Conversion was not accepted because the URL
path did not start with ..." on every redirect in PCM Debug Mode. It was wrong
and annoying.
(WebCore::PrivateClickMeasurement::json const):
Added a call to isValid(). Other checks made sure this wasn't an issue but I'd
rather have it in this public function too.
* loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::AttributionTriggerData::isValid const):

Source/WebKit:

This patch switches from 6+6 bits to 8+4 bits. It also makes sure PCM Debug Mode
consistently logs on the LOG level except for real errors.

Existing layout tests and API tests were updated.

* NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):

Tools:

This patch switches from 6+6 bits to 8+4 bits.

* TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):

LayoutTests:

This patch switches from 6+6 bits to 8+4 bits.

* http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt:
* http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt
trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLAnchorElement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.cpp
trunk/Source/WebCore/loader/PrivateClickMeasurement.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/PrivateClickMeasurementManager.cpp
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (270455 => 270456)

--- trunk/LayoutTests/ChangeLog	2020-12-04 22:14:21 UTC (rev 270455)
+++ trunk/LayoutTests/ChangeLog	2020-12-04 22:18:51 UTC (rev 270456)
@@ -1,3 +1,20 @@
+2020-12-04  John Wilander  
+
+PCM: Switch to 8+4 bits for source IDs and trigger values respectively
+https://bugs.webkit.org/show_bug.cgi?id=219519
+ 
+
+Reviewed by Brent Fulgham.
+
+We've received a lot of feedback saying increased entropy on the click side is more
+important than the current 6 bits on the conversion side. Some of that conversation
+is captured in https://github.com/privacycg/private-click-measurement/issues/28.
+
+This patch switches from 6+6 bits to 8+4 bits.
+
+* http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt:
+* http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:
+
 2020-12-04  Commit Queue  
 
 Unreviewed, reverting r270422.


Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt (270455 => 270456)

--- trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt	2020-12-04 22:14:21 UTC (rev 270455)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt	2020-12-04 22:18:51 UTC (rev 270456)
@@ -1,5 +1,5 @@
-CONSOLE MESSAGE: attributionsourceid must have a non-negative value less than or equal to 63 for Private Click Measurement.
-CONSOLE MESSAGE: attributionsourceid must have a non-negative value less than or equal to 63 for Private Click Measurement.
+CONSOLE MESSAGE: attributionsourceid must have a non-negative value less than or equal to 255 for Private Click Measurement.
+CONSOLE MESSAGE: attributionsourceid must have a non-negative value less than or equal to 255 for Private Click Measurement.
 CONSOLE MESSAGE: attributionsourceid can not be converted to a non-negative integer which is required for Private Click Measurement.
 CONSOLE MESSAGE: attributionsourceid can not be converted to a non-negative integer which is re

[webkit-changes] [269886] trunk

2020-11-16 Thread wilander
itAPI/Tests/WebCore/PrivateClickMeasurement.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (269885 => 269886)

--- trunk/LayoutTests/ChangeLog	2020-11-16 23:51:48 UTC (rev 269885)
+++ trunk/LayoutTests/ChangeLog	2020-11-17 00:00:32 UTC (rev 269886)
@@ -1,3 +1,38 @@
+2020-11-16  John Wilander  
+
+PCM: Change attribute and JSON key names according to the W3C conversation
+https://bugs.webkit.org/show_bug.cgi?id=218967
+
+Reviewed by Brent Fulgham.
+
+We've discussed extensively with Google and others on naming for the link
+attributes and JSON key names in these issues:
+https://github.com/privacycg/private-click-measurement/issues/30
+https://github.com/privacycg/private-click-measurement/issues/56
+
+This patch changes PCM accordingly.
+
+* http/tests/contentextensions/block-private-click-measurement.html:
+* http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt:
+* http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
+* http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt:
+* http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:
+* http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
+* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
+* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
+* http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html:
+* http/tests/privateClickMeasurement/clear-through-website-data-removal.html:
+* http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:
+* http/tests/privateClickMeasurement/expired-attributions-removed.html:
+* http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html:
+* http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html:
+* http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html:
+* http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html:
+* http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
+* http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
+* http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html:
+* http/tests/privateClickMeasurement/store-private-click-measurement.html:
+
 2020-11-16  Antoine Quint  
 
 Add an experimental  element


Modified: trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html (269885 => 269886)

--- trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html	2020-11-16 23:51:48 UTC (rev 269885)
+++ trunk/LayoutTests/http/tests/contentextensions/block-private-click-measurement.html	2020-11-17 00:00:32 UTC (rev 269886)
@@ -8,7 +8,7 @@
 
 
 Tests that private click measurement redirects to well-known location don't trigger a conversion if they are blocked by content blockers.
-Link
+Link
 
 
</span><span class="cx"> prepareTest();
</span></span></pre></div>
<a rel="nofollow" id="trunkLayoutTestshttptestsprivateClickMeasurementanchortagattributesreflectexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt (269885 => 269886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt	2020-11-16 23:51:48 UTC (rev 269885)
+++ trunk/LayoutTests/http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt	2020-11-17 00:00:32 UTC (rev 269886)
</span><span class="lines">@@ -3,8 +3,8 @@
</span><span class="cx"> On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-PASS anchorTag.adcampaignid is "40"
-PASS anchorTag.addestination is "destination.example"
</del><ins>+PASS anchorTag.attributionsourceid is "40"
+PASS anchorTag.attributeon is "destination.example"
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a rel="nofollow"

[webkit-changes] [269885] trunk/Source/WebKit

2020-11-16 Thread wilander
Title: [269885] trunk/Source/WebKit








Revision 269885
Author wilan...@apple.com
Date 2020-11-16 15:51:48 -0800 (Mon, 16 Nov 2020)


Log Message
NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking() redacts the cookie name in log output on customer builds
https://bugs.webkit.org/show_bug.cgi?id=218997


Unreviewed minor change to logging.

NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking() redacts the
cookie name in log output on customer builds. This patch changes the format
specifier from %s to %{public}s.

Note that this logging is just for ITP Debug Mode which is off by default, logs
in-memory only, and is disabled again on browser quit.

No new tests. This just changes log output on customer builds.


* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (269884 => 269885)

--- trunk/Source/WebKit/ChangeLog	2020-11-16 23:49:30 UTC (rev 269884)
+++ trunk/Source/WebKit/ChangeLog	2020-11-16 23:51:48 UTC (rev 269885)
@@ -1,3 +1,23 @@
+2020-11-16  John Wilander  
+
+NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking() redacts the cookie name in log output on customer builds
+https://bugs.webkit.org/show_bug.cgi?id=218997
+
+
+Unreviewed minor change to logging.
+
+NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking() redacts the
+cookie name in log output on customer builds. This patch changes the format
+specifier from %s to %{public}s.
+
+Note that this logging is just for ITP Debug Mode which is off by default, logs
+in-memory only, and is disabled again on browser quit.
+
+No new tests. This just changes log output on customer builds.
+
+* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+(WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):
+
 2020-11-16  Chris Dumez  
 
 [GPUProcess] Update GPUProcess process assertion based on active WebProcesses


Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (269884 => 269885)

--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2020-11-16 23:49:30 UTC (rev 269884)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2020-11-16 23:51:48 UTC (rev 269885)
@@ -205,7 +205,7 @@
 cookie = WebCore::NetworkStorageSession::capExpiryOfPersistentCookie(cookie, ageCapForCNAMECloakedCookies);
 [cappedCookies addObject:cookie];
 if (debugLoggingEnabled)
-RELEASE_LOG_INFO(ITPDebug, "Capped the expiry of third-party CNAME cloaked cookie named %s.", [[cookie name] UTF8String]);
+RELEASE_LOG_INFO(ITPDebug, "Capped the expiry of third-party CNAME cloaked cookie named %{public}s.", [[cookie name] UTF8String]);
 }
 return cappedCookies;
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [269489] trunk

2020-11-11 Thread wilander
Title: [269489] trunk








Revision 269489
Author wilan...@apple.com
Date 2020-11-05 16:16:56 -0800 (Thu, 05 Nov 2020)


Log Message
PCM: Switch to JSON report format
https://bugs.webkit.org/show_bug.cgi?id=218634


Reviewed by Brent Fulgham.

The standards conversation has landed in attribution reports in a JSON
format as opposed to the currently implemented URL format. Discussion
here: https://github.com/privacycg/private-click-measurement/issues/30

Source/WebCore:

No new tests. Existing layout and API tests were updated.

* Headers.cmake:
Added platform/network/HTTPHeaderValues.h to be able to expose it
to WebKit.
* WebCore.xcodeproj/project.pbxproj:
Now exporting platform/network/HTTPHeaderValues.h.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
Changed a function call from AdClickAttribution::url() to
AdClickAttribution::reportURL().
* loader/AdClickAttribution.cpp:
(WebCore::AdClickAttribution::reportURL const):
The URL no longer carries the report values.
Renamed from AdClickAttribution::url().
(WebCore::AdClickAttribution::json const):
New function to generate and return the report JSON.
(WebCore::AdClickAttribution::url const): Deleted.
Renamed to AdClickAttribution::reportURL().
(WebCore::AdClickAttribution::referrer const): Deleted.
The referrer is now part of the report JSON.
(WebCore::AdClickAttribution::urlForTesting const): Deleted.
This class no longer needs to help generate test URLs
since report values are now in JSON.
* loader/AdClickAttribution.h:
* platform/network/FormData.h:
Added export of create(const CString&).
* platform/network/HTTPHeaderValues.cpp:
(WebCore::HTTPHeaderValues::applicationJSONContentType):
Used create the new JSON report request.
* platform/network/HTTPHeaderValues.h:
Added export of maxAge0().

Source/WebKit:

* NetworkProcess/AdClickAttributionManager.cpp:
(WebKit::AdClickAttributionManager::fireConversionRequest):

Tools:

* TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp:
(TestWebKitAPI::TEST):

LayoutTests:

* http/tests/adClickAttribution/resources/conversionReport.php:
* http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/adClickAttribution/resources/conversionReport.php
trunk/LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Headers.cmake
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/html/HTMLAnchorElement.cpp
trunk/Source/WebCore/loader/AdClickAttribution.cpp
trunk/Source/WebCore/loader/AdClickAttribution.h
trunk/Source/WebCore/platform/network/FormData.h
trunk/Source/WebCore/platform/network/HTTPHeaderValues.cpp
trunk/Source/WebCore/platform/network/HTTPHeaderValues.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/AdClickAttributionManager.cpp
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (269488 => 269489)

--- trunk/LayoutTests/ChangeLog	2020-11-06 00:16:18 UTC (rev 269488)
+++ trunk/LayoutTests/ChangeLog	2020-11-06 00:16:56 UTC (rev 269489)
@@ -1,3 +1,18 @@
+2020-11-05  John Wilander  
+
+PCM: Switch to JSON report format
+https://bugs.webkit.org/show_bug.cgi?id=218634
+
+
+Reviewed by Brent Fulgham.
+
+The standards conversation has landed in attribution reports in a JSON
+format as opposed to the currently implemented URL format. Discussion
+here: https://github.com/privacycg/private-click-measurement/issues/30
+
+* http/tests/adClickAttribution/resources/conversionReport.php:
+* http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt:
+
 2020-11-05  Chris Dumez  
 
 Expose referrerPolicy attribute on HTMLLinkElement and HTMLAreaElement


Modified: trunk/LayoutTests/http/tests/adClickAttribution/resources/conversionReport.php (269488 => 269489)

--- trunk/LayoutTests/http/tests/adClickAttribution/resources/conversionReport.php	2020-11-06 00:16:18 UTC (rev 269488)
+++ trunk/LayoutTests/http/tests/adClickAttribution/resources/conversionReport.php	2020-11-06 00:16:56 UTC (rev 269489)
@@ -8,7 +8,7 @@
 if ($name === "HTTP_HOST") {
 fwrite($conversionFile, "$name: $value\n");
 } else if ($name === "REQUEST_URI") {
-$positionOfNonce = strpos($value, "&nonce=");
+$positionOfNonce = strpos($value, "?nonce=");
 if ($positionOfNonce === false)
 $outputURL = $value;
 else
@@ -17,11 +17,17 @@
 } else if ($name === "HTTP_COOKIE") {
 fwrite($conversionFile, "Cookies in conversion request: $value\n");
 $cookiesFound = true;
+} else if ($name === "CONTENT_TYPE"

[webkit-changes] [269129] trunk

2020-10-28 Thread wilander
Title: [269129] trunk








Revision 269129
Author wilan...@apple.com
Date 2020-10-28 17:00:17 -0700 (Wed, 28 Oct 2020)


Log Message
PCM: Accept ad click data when the link opens a new window
https://bugs.webkit.org/show_bug.cgi?id=214176


Reviewed by Brent Fulgham.

A link with the attribute target="_blank" takes another code path for
navigation which involves the creation of a new window and webpage. That
code path needs to transfer ad click attribution data to the new webpage
Source/WebKit:

where it can be picked up in WebPageProxy::didCommitLoadForFrame().
The ad click attribution data sits in the NavigationAction which is not
available in the completion handler WebPageProxy::createNewPage().
The client, which differs between TestRunner and e.g. Safari, consumes
the NavigationAction. I don't want to risk a regression in e.g. Safari
while still passing the test because TestRunner hasn't regressed.

Test: http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
Now also checks for pending ad click attribution data in its new
member variable m_newPageNavigationAdClickAttribution.
(WebKit::WebPageProxy::createNewPage):
Now forwards optional ad click attribution data to the completion
handler where it can be stored on the newly created webpage in the
new member variable m_newPageNavigationAdClickAttribution.
* UIProcess/WebPageProxy.h:
Added m_newPageNavigationAdClickAttribution.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
Added missing navigationAction.adClickAttribution() copy.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
Added missing navigationAction.adClickAttribution() copy.

LayoutTests:

where it can be picked up.

* http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt: Added.
* http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html: Added.
* http/tests/adClickAttribution/resources/convertAndPostMessageBack.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
trunk/Source/WebKit/UIProcess/WebPageProxy.h
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp


Added Paths

trunk/LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt
trunk/LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html
trunk/LayoutTests/http/tests/adClickAttribution/resources/convertAndPostMessageBack.html




Diff

Modified: trunk/LayoutTests/ChangeLog (269128 => 269129)

--- trunk/LayoutTests/ChangeLog	2020-10-28 23:51:45 UTC (rev 269128)
+++ trunk/LayoutTests/ChangeLog	2020-10-29 00:00:17 UTC (rev 269129)
@@ -1,3 +1,20 @@
+2020-10-28  John Wilander  
+
+PCM: Accept ad click data when the link opens a new window
+https://bugs.webkit.org/show_bug.cgi?id=214176
+
+
+Reviewed by Brent Fulgham.
+
+A link with the attribute target="_blank" takes another code path for
+navigation which involves the creation of a new window and webpage. That
+code path needs to transfer ad click attribution data to the new webpage
+where it can be picked up.
+
+* http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt: Added.
+* http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window.html: Added.
+* http/tests/adClickAttribution/resources/convertAndPostMessageBack.html: Added.
+
 2020-10-28  Truitt Savell  
 
 Rebase for fast/forms/input-appearance-spinbutton.html on Catalina after changes in r269036


Added: trunk/LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt (0 => 269129)

--- trunk/LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-window-expected.txt	2020-10-29 00:00:17 UTC (rev 269129)
@@ -0,0 +1,12 @@
+Tests triggering of ad click attribution conversions in a new window.
+
+
+Converted Ad Click Attributions:
+WebCore::AdClickAttribution 1
+Source: 127.0.0.1
+Destination: localhost
+Campaign ID: 3
+Conversion data: 12
+Conversion priority: 3
+Conversion earliest time to send: Within 24-48 hours
+Conversion request sent: false


Added: trunk/LayoutTests/http/tests/adClickAttribution/attribution-conversion-through-image-redirect-in-new-

[webkit-changes] [267973] trunk

2020-10-05 Thread wilander
Title: [267973] trunk








Revision 267973
Author wilan...@apple.com
Date 2020-10-05 09:42:08 -0700 (Mon, 05 Oct 2020)


Log Message
Storage Access API: Enable per-page storage access scope and align test cases
https://bugs.webkit.org/show_bug.cgi?id=217077


Reviewed by Brent Fulgham.

It was decided in https://github.com/privacycg/storage-access/issues/3 that
browsers should grant storage access for all same-site resources on the whole
page, not just the requesting iframe.

Source/WebCore:

No new tests. Existing tests aligned, including
LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html
which no longer calls
internals.settings.setStorageAccessAPIPerPageScopeEnabled(true)
to opt in to the setting that is now the default.

* dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):
Changed the settings check to do the reverse, i.e. assume
per-page access by default and per-frame access as the
exception.
* dom/DocumentStorageAccess.h:
Changed the default setting for m_storageAccessScope to per-page.
* page/Settings.yaml:
Changed the default to true for
storageAccessAPIPerPageScopeEnabled.

Source/WebKit:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::hasStorageAccess):
Added a call to WebPage::hasPageLevelStorageAccess()
and an early return if it returns true.
(WebKit::WebPage::clearPageLevelStorageAccess):
New function to clear the webpage's m_domainsWithPageLevelStorageAccess
map.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::clearResourceLoadStatistics):
Now clears all webpages' page level storage access maps.

LayoutTests:

* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html:
* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
* http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:
All of the above now explicitly call
internals.settings.setStorageAccessAPIPerPageScopeEnabled(false)
to opt out of the new default setting.
* http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html:
Changed to assume per-page is the default.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/DocumentStorageAccess.cpp
trunk/Source/WebCore/dom/DocumentStorageAccess.h
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
trunk/Source/WebKit/WebProcess/WebProcess.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (267972 => 267973)

--- trunk/LayoutTests/ChangeLog	2020-10-05 16:38:05 UTC (rev 267972)
+++ trunk/LayoutTests/ChangeLog	2020-10-05 16:42:08 UTC (rev 267973)
@@ -1,3 +1,25 @@
+2020-10-05  John Wilander  
+
+Storage Access API: Enable per-page storage access scope and align test cases
+https://bugs.webkit.org/show_bug.cgi?id=217077
+
+
+Reviewed by Brent Fulgham.
+
+It was decided in https://github.com/privacycg/storage-access/issues/3 that
+browsers should grant storage access for all same-site resources on the whole
+page, not just the requesting iframe.
+
+* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
+* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html:
+* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
+* http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:
+All of the above now explicitly call
+internals.settings.setStorageAccessAPIPerPageScope

[webkit-changes] [267817] trunk

2020-09-30 Thread wilander
Title: [267817] trunk








Revision 267817
Author wilan...@apple.com
Date 2020-09-30 20:21:06 -0700 (Wed, 30 Sep 2020)


Log Message
Storage Access API: Enable per-page storage access scope and align test cases
https://bugs.webkit.org/show_bug.cgi?id=217077


Reviewed by Brent Fulgham.

It was decided in https://github.com/privacycg/storage-access/issues/3 that
browsers should grant storage access for all same-site resources on the whole
page, not just the requesting iframe.

Source/WebCore:

No new tests. Existing tests aligned, including
LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html
which no longer calls
internals.settings.setStorageAccessAPIPerPageScopeEnabled(true)
to opt in to the setting that is now the default.

* dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):
Changed the settings check to do the reverse, i.e. assume
per-page access by default and per-frame access as the
exception.
* dom/DocumentStorageAccess.h:
Changed the default setting for m_storageAccessScope to per-page.
* page/Settings.yaml:
Changed the default to true for
storageAccessAPIPerPageScopeEnabled.

Source/WebKit:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::hasStorageAccess):
Added a call to WebPage::hasPageLevelStorageAccess()
and an early return if it returns true.

LayoutTests:

* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html:
* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
* http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:
All of the above now explicitly call
internals.settings.setStorageAccessAPIPerPageScopeEnabled(false)
to opt out of the new default setting.
* http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html:
Changed to assume per-page is the default.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/DocumentStorageAccess.cpp
trunk/Source/WebCore/dom/DocumentStorageAccess.h
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (267816 => 267817)

--- trunk/LayoutTests/ChangeLog	2020-10-01 03:06:11 UTC (rev 267816)
+++ trunk/LayoutTests/ChangeLog	2020-10-01 03:21:06 UTC (rev 267817)
@@ -1,3 +1,25 @@
+2020-09-30  John Wilander  
+
+Storage Access API: Enable per-page storage access scope and align test cases
+https://bugs.webkit.org/show_bug.cgi?id=217077
+
+
+Reviewed by Brent Fulgham.
+
+It was decided in https://github.com/privacycg/storage-access/issues/3 that
+browsers should grant storage access for all same-site resources on the whole
+page, not just the requesting iframe.
+
+* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:
+* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html:
+* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
+* http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html:
+All of the above now explicitly call
+internals.settings.setStorageAccessAPIPerPageScopeEnabled(false)
+to opt out of the new default setting.
+* http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html:
+Changed to assume per-page is the default.
+
 2020-09-30  Lauro Moura  
 
 [GLIB] Gardening some failures


Modified: trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-ifr

[webkit-changes] [266493] trunk/Source/WebKit

2020-09-02 Thread wilander
Title: [266493] trunk/Source/WebKit








Revision 266493
Author wilan...@apple.com
Date 2020-09-02 15:44:52 -0700 (Wed, 02 Sep 2020)


Log Message
Remove custom domain from SameSite=strict jail protection
https://bugs.webkit.org/show_bug.cgi?id=216083


Reviewed by Alex Christensen.

No new tests. This was a site-specific opt-in rule. The feature
itself has tests.

* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::shouldEnforceSameSiteStrictForSpecificDomain const):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (266492 => 266493)

--- trunk/Source/WebKit/ChangeLog	2020-09-02 22:11:59 UTC (rev 266492)
+++ trunk/Source/WebKit/ChangeLog	2020-09-02 22:44:52 UTC (rev 266493)
@@ -1,3 +1,17 @@
+2020-09-02  John Wilander  
+
+Remove custom domain from SameSite=strict jail protection
+https://bugs.webkit.org/show_bug.cgi?id=216083
+
+
+Reviewed by Alex Christensen.
+
+No new tests. This was a site-specific opt-in rule. The feature
+itself has tests.
+
+* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
+(WebKit::ResourceLoadStatisticsStore::shouldEnforceSameSiteStrictForSpecificDomain const):
+
 2020-09-01  Darin Adler  
 
 Remove comparePositions and make VisiblePosition improvements


Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp (266492 => 266493)

--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp	2020-09-02 22:11:59 UTC (rev 266492)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp	2020-09-02 22:44:52 UTC (rev 266493)
@@ -449,13 +449,9 @@
 
 bool ResourceLoadStatisticsStore::shouldEnforceSameSiteStrictForSpecificDomain(const RegistrableDomain& domain) const
 {
-static NeverDestroyed> domains = [] {
-HashSet set;
-set.add(RegistrableDomain::uncheckedCreateFromRegistrableDomainString("yahoo.co.jp"_s));
-return set;
-}();
-
-return domains.get().contains(domain);
+// We currently know of no domains that need this protection.
+UNUSED_PARAM(domain);
+return false;
 }
 
 void ResourceLoadStatisticsStore::setMaxStatisticsEntries(size_t maximumEntryCount)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [266479] trunk

2020-09-02 Thread wilander
Title: [266479] trunk








Revision 266479
Author wilan...@apple.com
Date 2020-09-02 12:19:54 -0700 (Wed, 02 Sep 2020)


Log Message
Storage Access API: Allow requests for storage access from nested iframes
https://bugs.webkit.org/show_bug.cgi?id=216019


Reviewed by Alex Christensen.

It was decided browsers should support requests for storage access from nested
iframes as part of the standardization of the Storage Access API. The issue is
discussed here: https://github.com/privacycg/storage-access/issues/10.

Source/WebCore:

No new tests. Existing tests were changed.

* dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccessQuickCheck):

LayoutTests:

* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database-expected.txt:
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database.html:
Now sets a cookie for the third party so that the test checks granted access.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe.html:
Now sets a cookie for the third party so that the test checks granted access.
* http/tests/storageAccess/resources/nesting-iframe.html:
Changed to now expect to be granted storage access.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database-expected.txt
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database.html
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-expected.txt
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe.html
trunk/LayoutTests/http/tests/storageAccess/resources/nesting-iframe.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/DocumentStorageAccess.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (266478 => 266479)

--- trunk/LayoutTests/ChangeLog	2020-09-02 19:15:43 UTC (rev 266478)
+++ trunk/LayoutTests/ChangeLog	2020-09-02 19:19:54 UTC (rev 266479)
@@ -1,3 +1,24 @@
+2020-09-02  John Wilander  
+
+Storage Access API: Allow requests for storage access from nested iframes
+https://bugs.webkit.org/show_bug.cgi?id=216019
+
+
+Reviewed by Alex Christensen.
+
+It was decided browsers should support requests for storage access from nested
+iframes as part of the standardization of the Storage Access API. The issue is
+discussed here: https://github.com/privacycg/storage-access/issues/10.
+
+* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database-expected.txt:
+* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database.html:
+Now sets a cookie for the third party so that the test checks granted access.
+* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-expected.txt:
+* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe.html:
+Now sets a cookie for the third party so that the test checks granted access.
+* http/tests/storageAccess/resources/nesting-iframe.html:
+Changed to now expect to be granted storage access.
+
 2020-09-02  Devin Rousso  
 
 REGRESSION: [ macOS ] media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-rtl.html is a flaky timeout


Modified: trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database-expected.txt (266478 => 266479)

--- trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database-expected.txt	2020-09-02 19:15:43 UTC (rev 266478)
+++ trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-database-expected.txt	2020-09-02 19:19:54 UTC (rev 266479)
@@ -1,10 +1,27 @@
-Tests that cross-origin iframe storage access is denied if the iframe is sandboxed, has the allow token, but is nested.
+Tests that cross-origin iframe storage access is granted if the iframe is sandboxed, has the allow token, and is nested.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS Storage access was denied. document.cookie == , cookies seen server-side == "No cookies"
+PASS Storage access was granted. document.cookie == firstPartyCookie=value, cookies seen server-side == {"firstPartyCookie":"value"}
 PASS successfullyParsed is true
 
 TEST COMPLETE
 
+
+
+Frame: ''
+
+Should not receive cookies.
+Did not receive cookie named &#

[webkit-changes] [266268] trunk/Source

2020-08-27 Thread wilander
Title: [266268] trunk/Source








Revision 266268
Author wilan...@apple.com
Date 2020-08-27 19:32:55 -0700 (Thu, 27 Aug 2020)


Log Message
Remove the feature flag for capped cookies set in 3rd-party CNAME cloaked HTTP responses and add ITP debug logging
https://bugs.webkit.org/show_bug.cgi?id=215902


Reviewed by Brent Fulgham.

This change removes the feature flag, effectively turning the feature on.
It also adds log output of cookie names that have been capped when ITP
Debug Mode is enabled.

Source/WebCore:

WebCore::NetworkStorageSession now has a member flag for ITP debug logging.

No new tests. This feature already has tests.

* page/Settings.yaml:
* platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::setResourceLoadStatisticsDebugLoggingEnabled):
(WebCore::NetworkStorageSession::resourceLoadStatisticsDebugLoggingEnabled const):
New function to be able to conditionalize log output in the new feature.
* platform/network/NetworkStorageSession.h:

Source/WebKit:

* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode):
Now sets the flag in WebCore::NetworkStorageSession through the new function
WebCore::NetworkStorageSession::setResourceLoadStatisticsDebugLoggingEnabled().
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::resetParametersToDefaultValues):
(WebKit::NetworkProcess::setIsRunningResourceLoadStatisticsTest):
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::setFirstPartyHostCNAMEDomain):
(WebKit::NetworkSession::firstPartyHostCNAMEDomain):
* NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::setCNAMECloakingMitigationEnabled): Deleted.
(WebKit::NetworkSession::cnameCloakingMitigationEnabled const): Deleted.
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::updateFirstPartyInfoForSession):
(WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):
* Shared/ResourceLoadStatisticsParameters.h:
(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):
* Shared/WebPreferences.yaml:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::platformSetNetworkParameters):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebCore/platform/network/NetworkStorageSession.cpp
trunk/Source/WebCore/platform/network/NetworkStorageSession.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
trunk/Source/WebKit/Shared/ResourceLoadStatisticsParameters.h
trunk/Source/WebKit/Shared/WebPreferences.yaml
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (266267 => 266268)

--- trunk/Source/WebCore/ChangeLog	2020-08-28 02:00:34 UTC (rev 266267)
+++ trunk/Source/WebCore/ChangeLog	2020-08-28 02:32:55 UTC (rev 266268)
@@ -1,3 +1,26 @@
+2020-08-27  John Wilander  
+
+Remove the feature flag for capped cookies set in 3rd-party CNAME cloaked HTTP responses and add ITP debug logging
+https://bugs.webkit.org/show_bug.cgi?id=215902
+
+
+Reviewed by Brent Fulgham.
+
+This change removes the feature flag, effectively turning the feature on.
+It also adds log output of cookie names that have been capped when ITP
+Debug Mode is enabled.
+
+WebCore::NetworkStorageSession now has a member flag for ITP debug logging.
+
+No new tests. This feature already has tests.
+
+* page/Settings.yaml:
+* platform/network/NetworkStorageSession.cpp:
+(WebCore::NetworkStorageSession::setResourceLoadStatisticsDebugLoggingEnabled):
+(WebCore::NetworkStorageSession::resourceLoadStatisticsDebugLoggingEnabled const):
+New function to be able to conditionalize log output in the new feature.
+* platform/network/NetworkStorageSession.h:
+
 2020-08-27  Frank Yang  
 
 CSS Filter invert() and opacity() Implementation Should Use Linear Transfer Function for Clarity and Simplicity


Modified: trunk/Source/WebCore/page/Settings.yaml (266267 => 266268)

--- trunk/Source/WebCore/page/Settings.yaml	2020-08-28 02:00:34 UTC (rev 266267)
+++ trunk/Source/WebCore/page/Settings.yaml	2020-08-28 02:32:55 UTC (rev 266268)
@@ -933,9 

[webkit-changes] [264001] trunk/Source/WebCore

2020-07-06 Thread wilander
Title: [264001] trunk/Source/WebCore








Revision 264001
Author wilan...@apple.com
Date 2020-07-06 17:15:28 -0700 (Mon, 06 Jul 2020)


Log Message
Follow-up to r263992: Make isKinjaLoginAvatarElement() a free function
https://bugs.webkit.org/show_bug.cgi?id=214015


Unreviewed follow-up to a quirk. Just changing
isKinjaLoginAvatarElement() from member to free function.

As requested in https://bugs.webkit.org/show_bug.cgi?id=213910#c10.


* page/Quirks.cpp:
(WebCore::isKinjaLoginAvatarElement):
(WebCore::Quirks::isKinjaLoginAvatarElement const): Deleted.
* page/Quirks.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Quirks.cpp
trunk/Source/WebCore/page/Quirks.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (264000 => 264001)

--- trunk/Source/WebCore/ChangeLog	2020-07-07 00:09:17 UTC (rev 264000)
+++ trunk/Source/WebCore/ChangeLog	2020-07-07 00:15:28 UTC (rev 264001)
@@ -1,3 +1,19 @@
+2020-07-06  John Wilander  
+
+Follow-up to r263992: Make isKinjaLoginAvatarElement() a free function
+https://bugs.webkit.org/show_bug.cgi?id=214015
+
+
+Unreviewed follow-up to a quirk. Just changing
+isKinjaLoginAvatarElement() from member to free function.
+
+As requested in https://bugs.webkit.org/show_bug.cgi?id=213910#c10.
+
+* page/Quirks.cpp:
+(WebCore::isKinjaLoginAvatarElement):
+(WebCore::Quirks::isKinjaLoginAvatarElement const): Deleted.
+* page/Quirks.h:
+
 2020-07-06  Chris Fleizach  
 
 AX: Implement user action spec for Escape action


Modified: trunk/Source/WebCore/page/Quirks.cpp (264000 => 264001)

--- trunk/Source/WebCore/page/Quirks.cpp	2020-07-07 00:09:17 UTC (rev 264000)
+++ trunk/Source/WebCore/page/Quirks.cpp	2020-07-07 00:15:28 UTC (rev 264001)
@@ -852,7 +852,7 @@
 }
 
 #if ENABLE(RESOURCE_LOAD_STATISTICS)
-bool Quirks::isKinjaLoginAvatarElement(const Element& element) const
+static bool isKinjaLoginAvatarElement(const Element& element)
 {
 // The click event handler has been found to trigger on a div or
 // span with these class names, or the svg, or the svg's path.


Modified: trunk/Source/WebCore/page/Quirks.h (264000 => 264001)

--- trunk/Source/WebCore/page/Quirks.h	2020-07-07 00:09:17 UTC (rev 264000)
+++ trunk/Source/WebCore/page/Quirks.h	2020-07-07 00:15:28 UTC (rev 264001)
@@ -116,10 +116,6 @@
 bool isGoogleMaps() const;
 #endif
 
-#if ENABLE(RESOURCE_LOAD_STATISTICS)
-bool isKinjaLoginAvatarElement(const Element&) const;
-#endif
-
 WeakPtr m_document;
 
 mutable Optional m_hasBrokenEncryptedMediaAPISupportQuirk;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [263992] trunk/Source/WebCore

2020-07-06 Thread wilander
Title: [263992] trunk/Source/WebCore








Revision 263992
Author wilan...@apple.com
Date 2020-07-06 16:01:18 -0700 (Mon, 06 Jul 2020)


Log Message
Storage Access API: Add the capability to open a popup and get user interaction so we can call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
https://bugs.webkit.org/show_bug.cgi?id=213910


Reviewed by Darin Adler.

This patch not only adds the capability but also adds a site-specific quirk for
the family of Kinja sites so that no previous user interaction with kinja.com
results in a login popup for kinja.com.

No new tests. This is for site-specific quirks.

* dom/Element.cpp:
(WebCore::Element::dispatchMouseEvent):
Just a change in the call into the quirk function.
* page/Quirks.cpp:
(WebCore::Quirks::isKinjaLoginAvatarElement const):
Convenience function for telling if the given element is the Kinja login avatar.
(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
Now takes the whole Element to be able to look at both classes and attributes.
* page/Quirks.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Element.cpp
trunk/Source/WebCore/page/Quirks.cpp
trunk/Source/WebCore/page/Quirks.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (263991 => 263992)

--- trunk/Source/WebCore/ChangeLog	2020-07-06 22:25:04 UTC (rev 263991)
+++ trunk/Source/WebCore/ChangeLog	2020-07-06 23:01:18 UTC (rev 263992)
@@ -1,3 +1,27 @@
+2020-07-06  John Wilander  
+
+Storage Access API: Add the capability to open a popup and get user interaction so we can call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
+https://bugs.webkit.org/show_bug.cgi?id=213910
+
+
+Reviewed by Darin Adler.
+
+This patch not only adds the capability but also adds a site-specific quirk for
+the family of Kinja sites so that no previous user interaction with kinja.com
+results in a login popup for kinja.com.
+
+No new tests. This is for site-specific quirks.
+
+* dom/Element.cpp:
+(WebCore::Element::dispatchMouseEvent):
+Just a change in the call into the quirk function.
+* page/Quirks.cpp:
+(WebCore::Quirks::isKinjaLoginAvatarElement const):
+Convenience function for telling if the given element is the Kinja login avatar.
+(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
+Now takes the whole Element to be able to look at both classes and attributes.
+* page/Quirks.h:
+
 2020-07-06  Peng Liu  
 
 Cleanup WebVideoFullscreenControllerAVKit.mm and PlaybackSessionInterfaceAVKit.mm


Modified: trunk/Source/WebCore/dom/Element.cpp (263991 => 263992)

--- trunk/Source/WebCore/dom/Element.cpp	2020-07-06 22:25:04 UTC (rev 263991)
+++ trunk/Source/WebCore/dom/Element.cpp	2020-07-06 23:01:18 UTC (rev 263992)
@@ -362,7 +362,7 @@
 if (dispatchPointerEventIfNeeded(*this, mouseEvent.get(), platformEvent, didNotSwallowEvent) == ShouldIgnoreMouseEvent::Yes)
 return false;
 
-if (hasClass() && Quirks::StorageAccessResult::ShouldCancelEvent == document().quirks().triggerOptionalStorageAccessQuirk(eventType, classNames()))
+if (Quirks::StorageAccessResult::ShouldCancelEvent == document().quirks().triggerOptionalStorageAccessQuirk(*this, eventType))
 return false;
 
 ASSERT(!mouseEvent->target() || mouseEvent->target() != relatedTarget);


Modified: trunk/Source/WebCore/page/Quirks.cpp (263991 => 263992)

--- trunk/Source/WebCore/page/Quirks.cpp	2020-07-06 22:25:04 UTC (rev 263991)
+++ trunk/Source/WebCore/page/Quirks.cpp	2020-07-06 23:01:18 UTC (rev 263992)
@@ -26,6 +26,7 @@
 #include "config.h"
 #include "Quirks.h"
 
+#include "Attr.h"
 #include "DOMTokenList.h"
 #include "DOMWindow.h"
 #include "Document.h"
@@ -39,11 +40,19 @@
 #include "HTMLObjectElement.h"
 #include "JSEventListener.h"
 #include "LayoutUnit.h"
+#include "NamedNodeMap.h"
 #include "ResourceLoadObserver.h"
 #include "RuntimeEnabledFeatures.h"
+#include "SVGPathElement.h"
+#include "SVGSVGElement.h"
+#include "ScriptController.h"
+#include "ScriptSourceCode.h"
 #include "Settings.h"
 #include "SpaceSplitString.h"
 #include "UserAgent.h"
+#include "UserContentTypes.h"
+#include "UserScript.h"
+#include "UserScriptTypes.h"
 
 namespace WebCore {
 
@@ -842,8 +851,38 @@
 #endif
 }
 
-Quirks::StorageAccessResult Quirks::triggerOptionalStorageAccessQuirk(const AtomString& eventType, const SpaceSplitString& classNames) const
+#if ENABLE(RESOURCE_LOAD_STATISTICS)
+bool Quirks::isKinjaLoginAvatarElement(const Element& element) const
 {
+// The click event

[webkit-changes] [263383] trunk/Source

2020-06-22 Thread wilander
ess.messages.in




Diff

Modified: trunk/Source/WebCore/ChangeLog (263382 => 263383)

--- trunk/Source/WebCore/ChangeLog	2020-06-23 04:00:42 UTC (rev 263382)
+++ trunk/Source/WebCore/ChangeLog	2020-06-23 04:13:24 UTC (rev 263383)
@@ -1,3 +1,53 @@
+2020-06-22  John Wilander  
+
+Storage Access API: Add the capability to call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
+https://bugs.webkit.org/show_bug.cgi?id=213418
+
+
+Reviewed by Alex Christensen.
+
+No new tests. This patch adds quirks for specific websites.
+The general functionality that's touched has tests under
+LayoutTests/http/tests/storageAccess/.
+
+* dom/Document.h:
+(WebCore::Document::isTopDocument const):
+New convenience function.
+(WebCore::Document::setUserDidInteractWithPage):
+Use of the new convenience function.
+(WebCore::Document::userDidInteractWithPage const):
+Use of the new convenience function.
+* dom/DocumentStorageAccess.cpp:
+(WebCore::DocumentStorageAccess::hasStorageAccessQuickCheck):
+(WebCore::DocumentStorageAccess::hasStorageAccess):
+(WebCore::DocumentStorageAccess::hasStorageAccessForDocumentQuirk):
+(WebCore::DocumentStorageAccess::requestStorageAccess):
+(WebCore::DocumentStorageAccess::requestStorageAccessQuickCheck):
+(WebCore::DocumentStorageAccess::requestStorageAccessForDocumentQuirk):
+(WebCore::DocumentStorageAccess::requestStorageAccessForNonDocumentQuirk):
+(WebCore::DocumentStorageAccess::requestStorageAccessQuirk):
+These functions are split up to allow quirks to call directly into the
+implementation of the Storage Access API without the _javascript_
+promise that goes with the web API. It also allows for quirks to call
+the API without an iframe document.
+* dom/DocumentStorageAccess.h:
+* dom/Element.cpp:
+(WebCore::Element::dispatchMouseEvent):
+The two existing quirks are for click events.
+* loader/ResourceLoadObserver.h:
+(WebCore::ResourceLoadObserver::setDomainsWithUserInteraction):
+(WebCore::ResourceLoadObserver::hasHadUserInteraction const):
+These two new functions allow the Storage Access API quirks
+to synchronously check if it's worth calling the API or not.
+If there has been no user interaction for the requesting
+domain, there is no need to call the API.
+* page/Quirks.cpp:
+(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
+This is the new quirks function, hiding the specifics of
+certain elements clicked and for which websites. It also
+calls the Storage Access API.
+* page/Quirks.h:
+
 2020-06-22  Chris Dumez  
 
 Introduce BaseAudioContext interface


Modified: trunk/Source/WebCore/dom/Document.h (263382 => 263383)

--- trunk/Source/WebCore/dom/Document.h	2020-06-23 04:00:42 UTC (rev 263382)
+++ trunk/Source/WebCore/dom/Document.h	2020-06-23 04:13:24 UTC (rev 263383)
@@ -3,7 +3,7 @@
  *   (C) 1999 Antti Koivisto (koivi...@kde.org)
  *   (C) 2001 Dirk Mueller (muel...@kde.org)
  *   (C) 2006 Alexey Proskuryakov (a...@webkit.org)
- * Copyright (C) 2004-2019 Apple Inc. All rights reserved.
+ * Copyright (C) 2004-2020 Apple Inc. All rights reserved.
  * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
  * Copyright (C) 2011 Google Inc. All rights reserved.
@@ -1033,6 +1033,7 @@
 
 Document* parentDocument() const;
 WEBCORE_EXPORT Document& topDocument() const;
+bool isTopDocument() const { return &topDocument() == this; }
 
 ScriptRunner& scriptRunner() { return *m_scriptRunner; }
 ScriptModuleLoader& moduleLoader() { return *m_moduleLoader; }
@@ -1243,8 +1244,8 @@
 bool processingUserGestureForMedia() const;
 void userActivatedMediaFinishedPlaying() { m_userActivatedMediaFinishedPlayingTimestamp = MonotonicTime::now(); }
 
-void setUserDidInteractWithPage(bool userDidInteractWithPage) { ASSERT(&topDocument() == this); m_userDidInteractWithPage = userDidInteractWithPage; }
-bool userDidInteractWithPage() const { ASSERT(&topDocument() == this); return m_userDidInteractWithPage; }
+void setUserDidInteractWithPage(bool userDidInteractWithPage) { ASSERT(isTopDocument()); m_userDidInteractWithPage = userDidInteractWithPage; }
+bool userDidInteractWithPage() const { ASSERT(isTopDocument()); return m_userDidInteractWithPage; }
 
 // Used for testing. Count handlers in the main document, and one per frame which contains handlers.
 WEBCORE_EXPORT unsigned wheelEventHandlerCount() const;


Modified: tru

[webkit-changes] [262495] trunk

2020-06-03 Thread wilander
Title: [262495] trunk








Revision 262495
Author wilan...@apple.com
Date 2020-06-03 11:07:49 -0700 (Wed, 03 Jun 2020)


Log Message
Storage Access API: Add setting for per-page storage access scope
https://bugs.webkit.org/show_bug.cgi?id=212682


Reviewed by Brent Fulgham.

Source/WebCore:

This is a follow-up patch to https://bugs.webkit.org/show_bug.cgi?id=212114,
adding an off-by-default setting and a test case for per-page storage access.

Test: http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html

* dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):
* page/Settings.yaml:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setStorageAccessAPIPerPageScopeEnabled):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

LayoutTests:

* http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame-expected.txt: Added.
* http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/DocumentStorageAccess.cpp
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebCore/testing/InternalSettings.cpp
trunk/Source/WebCore/testing/InternalSettings.h
trunk/Source/WebCore/testing/InternalSettings.idl


Added Paths

trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame-expected.txt
trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html




Diff

Modified: trunk/LayoutTests/ChangeLog (262494 => 262495)

--- trunk/LayoutTests/ChangeLog	2020-06-03 17:46:51 UTC (rev 262494)
+++ trunk/LayoutTests/ChangeLog	2020-06-03 18:07:49 UTC (rev 262495)
@@ -1,3 +1,14 @@
+2020-06-03  John Wilander  
+
+Storage Access API: Add setting for per-page storage access scope
+https://bugs.webkit.org/show_bug.cgi?id=212682
+
+
+Reviewed by Brent Fulgham.
+
+* http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame-expected.txt: Added.
+* http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html: Added.
+
 2020-06-03  Diego Pino Garcia  
 
 [WPE] Gardening, lint WPE test expectations


Added: trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame-expected.txt (0 => 262495)

--- trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame-expected.txt	2020-06-03 18:07:49 UTC (rev 262495)
@@ -0,0 +1,36 @@
+Tests that storage access is granted for all frames under per-page storage scope.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Storage access was granted. document.cookie == firstPartyCookie=value, cookies seen server-side == {"firstPartyCookie":"value"}
+PASS successfullyParsed is true
+
+TEST COMPLETE
+  
+
+
+Frame: ''
+
+Should not receive cookies without user interaction.
+Did not receive cookie named 'firstPartyCookie'.
+Client-side document.cookie:
+
+
+Frame: ''
+
+Should not receive cookies with user interaction.
+Did not receive cookie named 'firstPartyCookie'.
+Client-side document.cookie:
+
+
+Frame: ''
+
+
+
+
+Frame: ''
+
+Should receive cookies even though it's not the requesting frame.
+Received cookie named 'firstPartyCookie'.
+Client-side document.cookie: firstPartyCookie=value


Added: trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html (0 => 262495)

--- trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html	(rev 0)
+++ trunk/LayoutTests/http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html	2020-06-03 18:07:49 UTC (rev 262495)
@@ -0,0 +1,122 @@
+
+
+
+
+<body>
+<script>
+description("Tests that storage access is granted for all frames under per-page storage scope.");
+jsTestIsAsync = true;
+
+const hostUnderTest = "localhost:8000";
+const statisticsUrl = "http://" + hostUnderTest + "/temp";
+
+const partitionHost = "127.0.0.1:8000";
+const thirdPartyOrigin = "http://localhost:8000";
+const resourcePath = "/storageAccess/reso

[webkit-changes] [262024] trunk/Source

2020-05-21 Thread wilander
Title: [262024] trunk/Source








Revision 262024
Author wilan...@apple.com
Date 2020-05-21 13:22:39 -0700 (Thu, 21 May 2020)


Log Message
Storage Access API: Allow configurable storage access scope
https://bugs.webkit.org/show_bug.cgi?id=212114


Reviewed by Alex Christensen.

The scope of storage access as per-frame or per-page was discussed in the
standards process here: https://github.com/privacycg/storage-access/issues/3

The decision was to have per-page storage access by default. Recent feedback
from Google and conversation with Mozilla suggest that we might want to
support the caller choosing the scope.

This patch adds support for different scope configurations while keeping the
existing default as per-frame. A later patch will switch the default and add
test cases for per-page scope.

Source/WebCore:

A new struct is added WebCore::RequestStorageAccessResult which carries full
information about the storage access request result.

A new enum is added WebCore::StorageAccessScope to encode per-frame and
per-page access.

No new tests. No changed functionality. Tests already exist.

* dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):
* dom/DocumentStorageAccess.h:
(WebCore::RequestStorageAccessResult::encode const):
(WebCore::RequestStorageAccessResult::decode):
* page/ChromeClient.h:
(WebCore::ChromeClient::requestStorageAccess):

Source/WebKit:

Most of the changes is piping through the new enum
WebCore::StorageAccessScope from the call side to encode per-frame and
per-page access, and piping through the new struct
WebCore::RequestStorageAccessResult on the return side which carries full
information about the storage access request result.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::CompletionHandler

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/DocumentStorageAccess.cpp
trunk/Source/WebCore/dom/DocumentStorageAccess.h
trunk/Source/WebCore/page/ChromeClient.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
trunk/Source/WebKit/Scripts/webkit/messages.py
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (262023 => 262024)

--- trunk/Source/WebCore/ChangeLog	2020-05-21 20:14:36 UTC (rev 262023)
+++ trunk/Source/WebCore/ChangeLog	2020-05-21 20:22:39 UTC (rev 262024)
@@ -1,3 +1,38 @@
+2020-05-21  John Wilander  
+
+Storage Access API: Allow configurable storage access scope
+https://bugs.webkit.org/show_bug.cgi?id=212114
+
+
+Reviewed by Alex Christensen.
+
+The scope of storage access as per-frame or per-page was discussed in the
+standards process here: https://github.com/privacycg/storage-access/issues/3
+
+The decision was to have per-page storage access by default. Recent feedback
+from Google and conversation with Mozilla suggest that we might want to
+support the caller choosing the scope.
+
+This patch adds support for different scope configurations while keeping the
+existing default as per-frame. A later patch will switch the default and add
+test cases for per-page scope.
+
+A new struct is added WebCore::RequestStorageAccessResult which carries full
+information about the storage access request result.
+
+A new enum is added WebCore::StorageAccessScope to encode per-frame and
+per-page access.
+
+No new tests. No changed functionality. Tests already exist.
+
+* dom/DocumentStorageAccess.cpp:
+(WebCore::DocumentStorageAccess::requestStorageAccess):
+* dom/DocumentStorageAccess.h:
+(WebCore::RequestStorageAccessResult::encode const):
+(WebCore::RequestStorageAccessResult::decode):
+* page/ChromeClient.h:
+(WebCore::ChromeClient::requestStorageAccess):
+
 2020-05-21  Yoshiaki Jitsukawa  
 
 [PlayStation] Add minimal WKView API to enable TestWebKitAPI


Modified: trunk/Source/WebCore/dom/DocumentStorageAccess.

[webkit-changes] [261724] trunk/Source/WebKit

2020-05-14 Thread wilander
Title: [261724] trunk/Source/WebKit








Revision 261724
Author wilan...@apple.com
Date 2020-05-14 17:02:17 -0700 (Thu, 14 May 2020)


Log Message
Add quirk for cookie blocking latch mode aolmail.com redirecting to aol.com under aol.com
https://bugs.webkit.org/show_bug.cgi?id=211925


Reviewed by Brent Fulgham.

No new tests. Just a new quirk for a pair of domains added by request.

* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk const):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (261723 => 261724)

--- trunk/Source/WebKit/ChangeLog	2020-05-14 23:49:04 UTC (rev 261723)
+++ trunk/Source/WebKit/ChangeLog	2020-05-15 00:02:17 UTC (rev 261724)
@@ -1,3 +1,16 @@
+2020-05-14  John Wilander  
+
+Add quirk for cookie blocking latch mode aolmail.com redirecting to aol.com under aol.com
+https://bugs.webkit.org/show_bug.cgi?id=211925
+
+
+Reviewed by Brent Fulgham.
+
+No new tests. Just a new quirk for a pair of domains added by request.
+
+* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+(WebKit::NetworkDataTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk const):
+
 2020-05-14  Chris Dumez  
 
 Regression(r261163) Causes crashes on builds without libwebrtc.dylib


Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (261723 => 261724)

--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2020-05-14 23:49:04 UTC (rev 261723)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2020-05-15 00:02:17 UTC (rev 261724)
@@ -160,6 +160,7 @@
 static NeverDestroyed> quirkPairs = [] {
 HashMap map;
 map.add(RegistrableDomain::uncheckedCreateFromRegistrableDomainString("ymail.com"_s), RegistrableDomain::uncheckedCreateFromRegistrableDomainString("yahoo.com"_s));
+map.add(RegistrableDomain::uncheckedCreateFromRegistrableDomainString("aolmail.com"_s), RegistrableDomain::uncheckedCreateFromRegistrableDomainString("aol.com"_s));
 return map;
 }();
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [261242] trunk

2020-05-06 Thread wilander
youtTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion.html




Diff

Modified: trunk/LayoutTests/ChangeLog (261241 => 261242)

--- trunk/LayoutTests/ChangeLog	2020-05-06 18:43:19 UTC (rev 261241)
+++ trunk/LayoutTests/ChangeLog	2020-05-06 18:44:26 UTC (rev 261242)
@@ -1,3 +1,18 @@
+2020-05-06  John Wilander  
+
+Exempt app-bound domains from ITP's website data deletion and third-party cookie blocking between themselves
+https://bugs.webkit.org/show_bug.cgi?id=210674
+
+
+Reviewed by Chris Dumez.
+
+* http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other-expected.txt: Added.
+* http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html: Added.
+* http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-database.html: Added.
+* http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion-expected.txt: Added.
+* http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-website-data-deletion.html: Added.
+
 2020-05-06  Daniel Bates  
 
 [iOS] ASSERTION FAILED: !(_keyboardFlags & WebEventKeyboardInputModifierFlagsChanged) in -[WebEvent charactersIgnoringModifiers] when pressing modifier on PDF


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other-expected.txt (0 => 261242)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other-expected.txt	2020-05-06 18:44:26 UTC (rev 261242)
@@ -0,0 +1,33 @@
+Tests that app-bound domains are exempt from third-party cookie blocking between themselves.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
+
+
+Frame: ''
+
+Should not receive cookie.
+Did not receive cookie named 'firstPartyCookie'.
+Did not receive cookie named 'partitionedCookie'.
+Client-side document.cookie:
+
+
+Frame: ''
+
+Should not receive cookie.
+Did not receive cookie named 'firstPartyCookie'.
+Did not receive cookie named 'partitionedCookie'.
+Client-side document.cookie:
+
+
+Frame: ''
+
+Should receive cookie.
+Received cookie named 'firstPartyCookie'.
+Did not receive cookie named 'partitionedCookie'.
+Client-side document.cookie: firstPartyCookie=value


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html (0 => 261242)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html	2020-05-06 18:44:26 UTC (rev 261242)
@@ -0,0 +1,83 @@
+
+
+
+
+
+<body>
+<script>
+description("Tests that app-bound domains are exempt from third-party cookie blocking between themselves.");
+jsTestIsAsync = true;
+
+const firstPartyOrigin = "http://127.0.0.1:8000";
+const thirdPartyOrigin = "http://localhost:8000";
+const thirdPartyResourceUrl = thirdPartyOrigin + "/resourceLoadStatistics/resources";
+const firstPartyCookieName = "firstPartyCookie";
+const subPathToSetFirstPartyCookie = "/set-cookie.php?name=" + firstPartyCookieName + "&value=value";
+const partitionedCookieName = "partitionedCookie";
+   

[webkit-changes] [260169] trunk

2020-04-15 Thread wilander
Data/Cocoa/WebsiteDataStoreCocoa.mm
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestController.h
trunk/Tools/WebKitTestRunner/TestOptions.h
trunk/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html




Diff

Modified: trunk/LayoutTests/ChangeLog (260168 => 260169)

--- trunk/LayoutTests/ChangeLog	2020-04-16 02:19:13 UTC (rev 260168)
+++ trunk/LayoutTests/ChangeLog	2020-04-16 03:38:09 UTC (rev 260169)
@@ -1,3 +1,16 @@
+2020-04-15  John Wilander  
+
+Add SPI to configure WebsiteDataStores with a URL for standalone web applications and use it to disable first-party website data removal in ITP
+https://bugs.webkit.org/show_bug.cgi?id=209634
+
+
+Reviewed by Alex Christensen.
+
+* http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html: Added.
+* http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-expected.txt: Added.
+* http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html: Added.
+
 2020-04-15  Diego Pino Garcia  
 
 [GTK] Gardening, emit baselines after r260139


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt (0 => 260169)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt	2020-04-16 03:38:09 UTC (rev 260169)
@@ -0,0 +1,15 @@
+Check that non-cookie website data does not get removed after a period of no user interaction if the website is a standalone web application.
+
+Before deletion: Client-side cookie exists.
+Before deletion: HttpOnly cookie exists.
+Before deletion: Regular server-side cookie exists.
+Before deletion: LocalStorage entry does exist.
+Before deletion: IDB entry does exist.
+
+After deletion: HttpOnly cookie exists.
+After deletion: Client-side cookie exists.
+After deletion: Regular server-side cookie exists.
+After deletion: LocalStorage entry does exist.
+After deletion: IDB entry does exist.
+
+


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html (0 => 260169)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html	2020-04-16 03:38:09 UTC (rev 260169)
@@ -0,0 +1,255 @@
+
+
+
+
+
+<body _onload_="setTimeout('runTest()', 0)">
+<div id="description">Check that non-cookie website data does not get removed after a period of no user interaction if the website is a standalone web application.</div>
+<br>
+<div id="output"></div>
+<br>
+<script>
+testRunner.waitUntilDone();
+testRunner.dumpAsText();
+testRunner.setUseITPDatabase(true);
+
+const httpOnlyCookieName = "http-only-cookie";
+const serverSideCookieName = "server-side-cookie";
+const clientSideCookieName = "client-side-cookie";
+
+function sortStringArray(a, b) {
+a = a.toLowerCase();
+b = b.toLowerCase();
+
+return a > b ? 1 : b > a ? -1 : 0;
+}
+
+function addLinebreakToOutput() {
+let element = document.createElement("br");
+output.appendChild(element);
+}
+
+function addOutput(message) {
+let element = document.createElement("div");
+element.innerText = message;
+output.appendChild(element);
+}
+
+function checkCookies(isAfterDeletion) {
+let unsortedTestPassedMessages = [];
+let cookies = internals.getCookies();
+if (!coo

[webkit-changes] [259906] trunk/Source/WebKit

2020-04-10 Thread wilander
Title: [259906] trunk/Source/WebKit








Revision 259906
Author wilan...@apple.com
Date 2020-04-10 14:57:14 -0700 (Fri, 10 Apr 2020)


Log Message
Add capability to opt in specific domains into SameSite=strict bounce tracking protection
https://bugs.webkit.org/show_bug.cgi?id=210347


Reviewed by Brent Fulgham.

This change adds an additional opt-in condition to the shouldEnforceSameSiteStrictFor()
functions in both ResourceLoadStatisticsMemoryStore and ResourceLoadStatisticsDatabaseStore.

No new tests. This adds domain specific logic, quirk-style. The logFrameNavigation()
changes are covered by existing tests.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation):
Now only captures real redirects for the purposes of the SameSite=strict rule.
(WebKit::ResourceLoadStatisticsDatabaseStore::shouldEnforceSameSiteStrictFor):
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):
Now only captures real redirects for the purposes of the SameSite=strict rule.
(WebKit::ResourceLoadStatisticsMemoryStore::shouldEnforceSameSiteStrictFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
Removed stray newline.
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::shouldEnforceSameSiteStrictForSpecificDomain const):
   The new function with domains to subject to the new rule.
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h




Diff

Modified: trunk/Source/WebKit/ChangeLog (259905 => 259906)

--- trunk/Source/WebKit/ChangeLog	2020-04-10 21:50:10 UTC (rev 259905)
+++ trunk/Source/WebKit/ChangeLog	2020-04-10 21:57:14 UTC (rev 259906)
@@ -1,3 +1,32 @@
+2020-04-10  John Wilander  
+
+Add capability to opt in specific domains into SameSite=strict bounce tracking protection
+https://bugs.webkit.org/show_bug.cgi?id=210347
+
+
+Reviewed by Brent Fulgham.
+
+This change adds an additional opt-in condition to the shouldEnforceSameSiteStrictFor()
+functions in both ResourceLoadStatisticsMemoryStore and ResourceLoadStatisticsDatabaseStore.
+
+No new tests. This adds domain specific logic, quirk-style. The logFrameNavigation()
+changes are covered by existing tests.
+
+* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
+(WebKit::ResourceLoadStatisticsDatabaseStore::logFrameNavigation):
+Now only captures real redirects for the purposes of the SameSite=strict rule.
+(WebKit::ResourceLoadStatisticsDatabaseStore::shouldEnforceSameSiteStrictFor):
+* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
+(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):
+Now only captures real redirects for the purposes of the SameSite=strict rule.
+(WebKit::ResourceLoadStatisticsMemoryStore::shouldEnforceSameSiteStrictFor):
+(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
+Removed stray newline.
+* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
+(WebKit::ResourceLoadStatisticsStore::shouldEnforceSameSiteStrictForSpecificDomain const):
+   The new function with domains to subject to the new rule.
+* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
+
 2020-04-10  Chris Dumez  
 
 First render after a process swap does not use accelerated rendering


Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp (259905 => 259906)

--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp	2020-04-10 21:50:10 UTC (rev 259905)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp	2020-04-10 21:57:14 UTC (rev 259906)
@@ -1627,8 +1627,10 @@
 return;
 }
 insertDomainRelationshipList(topFrameUniqueRedirectsToQuery, HashSet({ targetDomain }), *redirectingDomainResult.second);
-insertDomainRelationshipList(topFrameUniqueRedirectsToSinceSameSiteStrictEnforcementQuery, HashSet({ targetDomain }), *redirectingDomainResult.second);
-RELEASE_LOG_INFO_IF(debugLoggingEnabled(), ITPDebug, "Did set %" PUBLIC_LOG_STRING " as making a top frame redirect to %" PUBLIC_LOG_STRING ".", sourceDomain.string().utf8().data(

[webkit-changes] [259693] trunk/Source/WebKit

2020-04-07 Thread wilander
Title: [259693] trunk/Source/WebKit








Revision 259693
Author wilan...@apple.com
Date 2020-04-07 17:34:20 -0700 (Tue, 07 Apr 2020)


Log Message
ITP Debug Mode logs should be more generic now that it blocks all third-party cookies by default
https://bugs.webkit.org/show_bug.cgi?id=210133


Reviewed by Brent Fulgham.

No new tests. Just a change of logging.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
Now logs if either vector has entries and uses more generic language.
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
Now logs if either vector has entries and uses more generic language.
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches):
Removed hard-coded references to third-party cookie blocking and parameterized it instead.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (259692 => 259693)

--- trunk/Source/WebKit/ChangeLog	2020-04-08 00:32:39 UTC (rev 259692)
+++ trunk/Source/WebKit/ChangeLog	2020-04-08 00:34:20 UTC (rev 259693)
@@ -1,3 +1,23 @@
+2020-04-07  John Wilander  
+
+ITP Debug Mode logs should be more generic now that it blocks all third-party cookies by default
+https://bugs.webkit.org/show_bug.cgi?id=210133
+
+
+Reviewed by Brent Fulgham.
+
+No new tests. Just a change of logging.
+
+* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
+(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
+Now logs if either vector has entries and uses more generic language.
+* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
+(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
+Now logs if either vector has entries and uses more generic language.
+* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
+(WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches):
+Removed hard-coded references to third-party cookie blocking and parameterized it instead.
+
 2020-04-07  Joonghun Park  
 
 Move the misplaced statement to the proper place where in


Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp (259692 => 259693)

--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp	2020-04-08 00:32:39 UTC (rev 259692)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp	2020-04-08 00:34:20 UTC (rev 259693)
@@ -2272,8 +2272,8 @@
 
 RegistrableDomainsToBlockCookiesFor domainsToBlock { domainsToBlockAndDeleteCookiesFor, domainsToBlockButKeepCookiesFor, domainsWithUserInteractionAsFirstParty };
 
-if (debugLoggingEnabled() && !domainsToBlockAndDeleteCookiesFor.isEmpty() && !domainsToBlockButKeepCookiesFor.isEmpty())
-debugLogDomainsInBatches("block", domainsToBlock);
+if (debugLoggingEnabled() && (!domainsToBlockAndDeleteCookiesFor.isEmpty() || !domainsToBlockButKeepCookiesFor.isEmpty()))
+debugLogDomainsInBatches("Applying cross-site tracking restrictions", domainsToBlock);
 
 RunLoop::main().dispatch([weakThis = makeWeakPtr(*this), store = makeRef(store()), domainsToBlock = crossThreadCopy(domainsToBlock), completionHandler = WTFMove(completionHandler)] () mutable {
 store->callUpdatePrevalentDomainsToBlockCookiesForHandler(domainsToBlock, [weakThis = WTFMove(weakThis), store = store.copyRef(), completionHandler = WTFMove(completionHandler)]() mutable {
@@ -2284,8 +2284,8 @@
 return;
 
 if (UNLIKELY(weakThis->debugLoggingEnabled())) {
-RELEASE_LOG_INFO(ITPDebug, "Done updating cookie blocking.");
-weakThis->debugBroadcastConsoleMessage(MessageSource::ITPDebug, MessageLevel::Info, "[ITP] Done updating cookie blocking."_s);
+RELEASE_LOG_INFO(ITPDebug, "Done applying cross-site tracking restrictions.");
+weakThis->debugBroadcastConsoleMessage(MessageSource::ITPDebug, MessageLevel::Info, "[ITP] Done applying cross-site tracking restrictions."_s);
 }
 });
 });


Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp (259692 => 259693)

--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatist

[webkit-changes] [259440] trunk

2020-04-02 Thread wilander
runk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestOptions.h
trunk/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html




Diff

Modified: trunk/LayoutTests/ChangeLog (259439 => 259440)

--- trunk/LayoutTests/ChangeLog	2020-04-03 02:49:39 UTC (rev 259439)
+++ trunk/LayoutTests/ChangeLog	2020-04-03 03:56:43 UTC (rev 259440)
@@ -1,5 +1,18 @@
 2020-04-02  John Wilander  
 
+Add SPI to configure WebsiteDataStores with a URL for standalone web applications and use it to disable first-party website data removal in ITP
+https://bugs.webkit.org/show_bug.cgi?id=209634
+
+
+Reviewed by Alex Christensen.
+
+* http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html: Added.
+* http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-expected.txt: Added.
+* http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html: Added.
+
+2020-04-02  John Wilander  
+
 Rebase expectation files for anchor tag tests with line number output
 https://bugs.webkit.org/show_bug.cgi?id=209945
 


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt (0 => 259440)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt	2020-04-03 03:56:43 UTC (rev 259440)
@@ -0,0 +1,15 @@
+Check that non-cookie website data does not get removed after a period of no user interaction if the website is a standalone web application.
+
+Before deletion: Client-side cookie exists.
+Before deletion: HttpOnly cookie exists.
+Before deletion: Regular server-side cookie exists.
+Before deletion: LocalStorage entry does exist.
+Before deletion: IDB entry does exist.
+
+After deletion: HttpOnly cookie exists.
+After deletion: Client-side cookie exists.
+After deletion: Regular server-side cookie exists.
+After deletion: LocalStorage entry does exist.
+After deletion: IDB entry does exist.
+
+


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html (0 => 259440)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html	2020-04-03 03:56:43 UTC (rev 259440)
@@ -0,0 +1,255 @@
+
+
+
+
+
+<body _onload_="setTimeout('runTest()', 0)">
+<div id="description">Check that non-cookie website data does not get removed after a period of no user interaction if the website is a standalone web application.</div>
+<br>
+<div id="output"></div>
+<br>
+<script>
+testRunner.waitUntilDone();
+testRunner.dumpAsText();
+testRunner.setUseITPDatabase(true);
+
+const httpOnlyCookieName = "http-only-cookie";
+const serverSideCookieName = "server-side-cookie";
+const clientSideCookieName = "client-side-cookie";
+
+function sortStringArray(a, b) {
+a = a.toLowerCase();
+b = b.toLowerCase();
+
+return a > b ? 1 : b > a ? -1 : 0;
+}
+
+function addLinebreakToOutput() {
+let element = document.createElement("br");
+output.appendChild(element);
+}
+
+function addOutput(message) {
+let element = document.createElement("div");
+element.innerText = message;
+output.appendChild(element);
+}
+
+function checkCookies(isAfterDeletion) {
+let unsortedTestPassedMessages = [];
+let cookies = internals.getCookies();
+if (!cookies.length)
+addOutput((isAfterDeletion ? "After" : "Before") + " script-accessible deletion: No cookies found.");
+for (let cookie of 

[webkit-changes] [259439] trunk/LayoutTests

2020-04-02 Thread wilander
Title: [259439] trunk/LayoutTests








Revision 259439
Author wilan...@apple.com
Date 2020-04-02 19:49:39 -0700 (Thu, 02 Apr 2020)


Log Message
Rebase expectation files for anchor tag tests with line number output
https://bugs.webkit.org/show_bug.cgi?id=209945


Unreviewed test gardening.


* http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
Rebased since the lines of the console output have changed.
* http/tests/security/anchor-download-block-crossorigin-expected.txt:
Rebased since the lines of the console output have changed.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt
trunk/LayoutTests/http/tests/security/anchor-download-block-crossorigin-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (259438 => 259439)

--- trunk/LayoutTests/ChangeLog	2020-04-03 01:51:16 UTC (rev 259438)
+++ trunk/LayoutTests/ChangeLog	2020-04-03 02:49:39 UTC (rev 259439)
@@ -1,3 +1,16 @@
+2020-04-02  John Wilander  
+
+Rebase expectation files for anchor tag tests with line number output
+https://bugs.webkit.org/show_bug.cgi?id=209945
+
+
+Unreviewed test gardening.
+
+* http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
+Rebased since the lines of the console output have changed.
+* http/tests/security/anchor-download-block-crossorigin-expected.txt:
+Rebased since the lines of the console output have changed.
+
 2020-04-02  Andres Gonzalez  
 
 Crash in RenderMenuList::didUpdateActiveOption.


Modified: trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt (259438 => 259439)

--- trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt	2020-04-03 01:51:16 UTC (rev 259438)
+++ trunk/LayoutTests/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt	2020-04-03 02:49:39 UTC (rev 259439)
@@ -1,14 +1,14 @@
-CONSOLE MESSAGE: line 188: adcampaignid must have a non-negative value less than or equal to 63 for Ad Click Attribution.
-CONSOLE MESSAGE: line 188: adcampaignid must have a non-negative value less than or equal to 63 for Ad Click Attribution.
-CONSOLE MESSAGE: line 188: adcampaignid can not be converted to a non-negative integer which is required for Ad Click Attribution.
-CONSOLE MESSAGE: line 188: adcampaignid can not be converted to a non-negative integer which is required for Ad Click Attribution.
-CONSOLE MESSAGE: line 188: adcampaignid can not be converted to a non-negative integer which is required for Ad Click Attribution.
-CONSOLE MESSAGE: line 188: addestination could not be converted to a valid HTTP-family URL.
-CONSOLE MESSAGE: line 188: addestination could not be converted to a valid HTTP-family URL.
-CONSOLE MESSAGE: line 188: addestination could not be converted to a valid HTTP-family URL.
-CONSOLE MESSAGE: line 188: Both adcampaignid and addestination need to be set for Ad Click Attribution to work.
-CONSOLE MESSAGE: line 188: Both adcampaignid and addestination need to be set for Ad Click Attribution to work.
-CONSOLE MESSAGE: line 188: addestination can not be the same site as the current website.
+CONSOLE MESSAGE: line 197: adcampaignid must have a non-negative value less than or equal to 63 for Ad Click Attribution.
+CONSOLE MESSAGE: line 197: adcampaignid must have a non-negative value less than or equal to 63 for Ad Click Attribution.
+CONSOLE MESSAGE: line 197: adcampaignid can not be converted to a non-negative integer which is required for Ad Click Attribution.
+CONSOLE MESSAGE: line 197: adcampaignid can not be converted to a non-negative integer which is required for Ad Click Attribution.
+CONSOLE MESSAGE: line 197: adcampaignid can not be converted to a non-negative integer which is required for Ad Click Attribution.
+CONSOLE MESSAGE: line 197: addestination could not be converted to a valid HTTP-family URL.
+CONSOLE MESSAGE: line 197: addestination could not be converted to a valid HTTP-family URL.
+CONSOLE MESSAGE: line 197: addestination could not be converted to a valid HTTP-family URL.
+CONSOLE MESSAGE: line 197: Both adcampaignid and addestination need to be set for Ad Click Attribution to work.
+CONSOLE MESSAGE: line 197: Both adcampaignid and addestination need to be set for Ad Click Attribution to work.
+CONSOLE MESSAGE: line 197: addestination can not be the same site as the current website.
 Test for validity of ad click attribution attributes on anchor tags.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Modified: trunk/LayoutTests/http/tests/security/anchor-download-block-crossorigin-expected.txt (259438 => 259439)

--- trunk/LayoutTests/http/tests/security/anchor-download-block-crossorigin-expected.txt	2020-04-03 01:51:16 UTC (rev 259438)
+++ trunk/LayoutTests/http/tests/s

[webkit-changes] [259275] trunk

2020-03-30 Thread wilander
275)

--- trunk/LayoutTests/ChangeLog	2020-03-31 02:41:13 UTC (rev 259274)
+++ trunk/LayoutTests/ChangeLog	2020-03-31 02:45:38 UTC (rev 259275)
@@ -1,3 +1,22 @@
+2020-03-30  John Wilander  
+
+Experimental: Enforce SameSite=strict for domains classified as bounce trackers
+https://bugs.webkit.org/show_bug.cgi?id=209761
+
+
+Reviewed by Brent Fulgham and Kate Cheney (informal).
+
+* http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database.html: Added.
+* http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-expected.txt: Added.
+* http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to.html: Added.
+* platform/ios/TestExpectations:
+New test cases marked as pass for Catalina+ based on CFNetwork API availability.
+* platform/mac-wk2/TestExpectations:
+New test cases marked as pass for Catalina+ based on CFNetwork API availability.
+* platform/wk2/TestExpectations:
+New test cases marked as skip due to CFNetwork API availability.
+
 2020-03-30  Alexey Shvayka  
 
 Add support in named capture group identifiers for direct surrogate pairs


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database-expected.txt (0 => 259275)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database-expected.txt	2020-03-31 02:45:38 UTC (rev 259275)
@@ -0,0 +1,12 @@
+Tests for SameSite=strict enforcement based on top frame unique redirects to.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Cookie was not SameSite=strict before test.
+PASS Cookie was SameSite=strict after first test.
+PASS Cookie was not SameSite=strict after second test.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database.html (0 => 259275)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database.html	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/enforce-samesite-strict-based-on-top-frame-unique-redirects-to-database.html	2020-03-31 02:45:38 UTC (rev 259275)
@@ -0,0 +1,98 @@
+
+
+
+
+
+<body>
+<script>
+description("Tests for SameSite=strict enforcement based on top frame unique redirects to.");
+jsTestIsAsync = true;
+
+const hostUnderTest = "127.0.0.1:8000";
+const statisticsUrl = "http://" + hostUnderTest + "/temp";
+function setMultipleTopFrameUniqueRedirectTo(redirectingParty) {
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.2:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.3:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.4:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.5:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.6:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.7:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.8:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.9:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.10:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.11:8000/temp");
+testRunner.setStatisticsTopFrameUniqueRedirectTo(redirectingParty, "http://127.0.0.12:8000/temp");
+}
+
+function completeTest() {
+let cookies = internals.getCookies();
+if (cookies.length !== 1) {
+testFailed("Should have exactly one cookie before test but found " + cookies.length + " cookies.");
+setEnableFeature(false, finishJSTest);
+return;
+}
+
+if (cookies[0].isSameSiteStrict)
+testFailed("Cookie w

[webkit-changes] [258970] trunk/Source/WebCore

2020-03-24 Thread wilander
Title: [258970] trunk/Source/WebCore








Revision 258970
Author wilan...@apple.com
Date 2020-03-24 20:31:27 -0700 (Tue, 24 Mar 2020)


Log Message
Build fix for deprecated DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection
https://bugs.webkit.org/show_bug.cgi?id=209530


Unreviewed build fix. Solution suggested by Darin Adler.


* page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.
(WebCore::ServicesOverlayController::buildSelectionHighlight):
Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/mac/ServicesOverlayController.mm




Diff

Modified: trunk/Source/WebCore/ChangeLog (258969 => 258970)

--- trunk/Source/WebCore/ChangeLog	2020-03-25 03:21:25 UTC (rev 258969)
+++ trunk/Source/WebCore/ChangeLog	2020-03-25 03:31:27 UTC (rev 258970)
@@ -1,3 +1,19 @@
+2020-03-24  John Wilander  
+
+Build fix for deprecated DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection
+https://bugs.webkit.org/show_bug.cgi?id=209530
+
+
+Unreviewed build fix. Solution suggested by Darin Adler.
+
+* page/mac/ServicesOverlayController.mm:
+(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
+Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
+ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.
+(WebCore::ServicesOverlayController::buildSelectionHighlight):
+Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
+ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.
+
 2020-03-24  Zalan Bujtas  
 
 [MultiColumn] Infinite recursion in RenderBlockFlow::relayoutToAvoidWidows


Modified: trunk/Source/WebCore/page/mac/ServicesOverlayController.mm (258969 => 258970)

--- trunk/Source/WebCore/page/mac/ServicesOverlayController.mm	2020-03-25 03:21:25 UTC (rev 258969)
+++ trunk/Source/WebCore/page/mac/ServicesOverlayController.mm	2020-03-25 03:31:27 UTC (rev 258970)
@@ -515,7 +515,9 @@
 rect.setLocation(mainFrameView.windowToContents(viewForRange->contentsToWindow(rect.location(;
 
 CGRect cgRect = rect;
+ALLOW_DEPRECATED_DECLARATIONS_BEGIN
 RetainPtr ddHighlight = adoptCF(DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection(nullptr, &cgRect, 1, mainFrameView.visibleContentRect(), DDHighlightStyleBubbleStandard | DDHighlightStyleStandardIconArrow, YES, NSWritingDirectionNatural, NO, YES));
+ALLOW_DEPRECATED_DECLARATIONS_END
 
 newPotentialHighlights.add(Highlight::createForTelephoneNumber(*this, ddHighlight, range.releaseNonNull()));
 }
@@ -556,8 +558,10 @@
 
 if (!cgRects.isEmpty()) {
 CGRect visibleRect = mainFrameView->visibleContentRect();
+ALLOW_DEPRECATED_DECLARATIONS_BEGIN
 RetainPtr ddHighlight = adoptCF(DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection(nullptr, cgRects.begin(), cgRects.size(), visibleRect, DDHighlightStyleBubbleNone | DDHighlightStyleStandardIconArrow | DDHighlightStyleButtonShowAlways, YES, NSWritingDirectionNatural, NO, YES));
-
+ALLOW_DEPRECATED_DECLARATIONS_END
+
 newPotentialHighlights.add(Highlight::createForSelection(*this, ddHighlight, selectionRange.releaseNonNull()));
 }
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [258969] trunk/Source/WebKit

2020-03-24 Thread wilander
Title: [258969] trunk/Source/WebKit








Revision 258969
Author wilan...@apple.com
Date 2020-03-24 20:21:25 -0700 (Tue, 24 Mar 2020)


Log Message
Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
https://bugs.webkit.org/show_bug.cgi?id=209463


Reviewed by Alex Christensen.

This change does three things:

1. Replaces the Vector> with a new struct called
RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.

2. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
- domainsToDeleteAllCookiesFor
- domainsToDeleteAllButHttpOnlyCookiesFor
- domainsToDeleteAllNonCookieWebsiteDataFor

3. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data
policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.

No new tests. No changed functionality. This code is covered by several existing tests.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): Deleted.
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isEmpty const):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/NetworkSession.h:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.h




Diff

Modified: trunk/Source/WebKit/ChangeLog (258968 => 258969)

--- trunk/Source/WebKit/ChangeLog	2020-03-25 02:07:38 UTC (rev 258968)
+++ trunk/Source/WebKit/ChangeLog	2020-03-25 03:21:25 UTC (rev 258969)
@@ -1,3 +1,52 @@
+2020-03-24  John Wilander  
+
+Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
+https://bugs.webkit.org/show_bug.cgi?id=209463
+
+
+Reviewed by Alex Christensen.
+
+This change does three things:
+
+1. Replaces the Vector> with a new struct called
+RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.
+
+2. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
+- domainsToDeleteAllCookiesFor
+- domainsToDeleteAllButHttpOnlyCookiesFor
+- domainsToDeleteAllNonCookieWebsiteDataFor
+
+3. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data
+policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.
+
+No new tests. No changed functionalit

[webkit-changes] [258928] trunk/Source/WebKit

2020-03-24 Thread wilander
Title: [258928] trunk/Source/WebKit








Revision 258928
Author wilan...@apple.com
Date 2020-03-24 12:29:44 -0700 (Tue, 24 Mar 2020)


Log Message
Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
https://bugs.webkit.org/show_bug.cgi?id=209463


Reviewed by Alex Christensen.

This change does three things:

1. Replaces the Vector> with a new struct called
RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.

2. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
- domainsToDeleteAllCookiesFor
- domainsToDeleteAllButHttpOnlyCookiesFor
- domainsToDeleteAllNonCookieWebsiteDataFor

3. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data
policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.

No new tests. No changed functionality. This code is covered by several existing tests.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): Deleted.
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isEmpty const):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): Deleted.
* NetworkProcess/NetworkSession.h:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.h




Diff

Modified: trunk/Source/WebKit/ChangeLog (258927 => 258928)

--- trunk/Source/WebKit/ChangeLog	2020-03-24 19:19:30 UTC (rev 258927)
+++ trunk/Source/WebKit/ChangeLog	2020-03-24 19:29:44 UTC (rev 258928)
@@ -1,3 +1,52 @@
+2020-03-24  John Wilander  
+
+Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
+https://bugs.webkit.org/show_bug.cgi?id=209463
+
+
+Reviewed by Alex Christensen.
+
+This change does three things:
+
+1. Replaces the Vector> with a new struct called
+RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.
+
+2. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
+- domainsToDeleteAllCookiesFor
+- domainsToDeleteAllButHttpOnlyCookiesFor
+- domainsToDeleteAllNonCookieWebsiteDataFor
+
+3. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data
+policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.
+
+No new tests. No changed functionalit

[webkit-changes] [258884] trunk

2020-03-23 Thread wilander
roller.h
trunk/Tools/WebKitTestRunner/TestInvocation.cpp
trunk/Tools/WebKitTestRunner/TestInvocation.h


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php
trunk/LayoutTests/http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html




Diff

Modified: trunk/LayoutTests/ChangeLog (258883 => 258884)

--- trunk/LayoutTests/ChangeLog	2020-03-23 22:59:32 UTC (rev 258883)
+++ trunk/LayoutTests/ChangeLog	2020-03-23 23:00:50 UTC (rev 258884)
@@ -1,3 +1,25 @@
+2020-03-23  John Wilander  
+
+Add the capability to change all of a website's cookies to SameSite=Strict
+https://bugs.webkit.org/show_bug.cgi?id=209369
+
+
+Reviewed by Alex Christensen and David Kilzer.
+
+* http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php: Added.
+* http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict-expected.txt: Added.
+* http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html: Added.
+* platform/ios/TestExpectations:
+Marked http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
+as Pass.
+* platform/mac-wk2/TestExpectations:
+Marked http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
+as Pass for Catalina+.
+* platform/wk2/TestExpectations:
+Skipped http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
+since it's only available on macOS Catalina and up and the functionality is not
+implemented on non-Cocoa platforms.
+
 2020-03-23  Jason Lawrence  
 
 [ Mac wk1 Debug ] http/tests/css/shared-stylesheet-mutation-preconstruct.html is flaky failing.


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php (0 => 258884)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php	2020-03-23 23:00:50 UTC (rev 258884)
@@ -0,0 +1,15 @@
+ time() + 300, "path" => "/", "samesite" => "Lax"]);
+setcookie("persistentSameSiteStrictCookie", "1", ["expires" => time() + 300, "path" => "/", "samesite" => "Strict"]);
+
+setcookie("sessionCookie", "1", "", "/");
+setcookie("sessionSecureCookie", "1", "", "/", "", TRUE);
+setcookie("sessionHttpOnlyCookie", "1", "", "/", "", FALSE, TRUE);
+setcookie("sessionSameSiteLaxCookie", "1", ["path" => "/", "samesite" => "Lax"]);
+setcookie("sessionSameSiteStrictCookie", "1", ["path" => "/", "samesite" => "Strict"]);
+?>


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict-expected.txt (0 => 258884)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict-expected.txt	2020-03-23 23:00:50 UTC (rev 258884)
@@ -0,0 +1,31 @@
+Tests setting all of a site's cookies to SameSite=strict.
+
+'clientSideCookie' 1 Before Change -- domain: '127.0.0.1' isSession: 'true'
+'clientSideCookie' 2 After Change --- domain: '127.0.0.1' isSession: 'true' isSameSiteStrict: 'true'
+
+'persistentCookie' 1 Before Change -- domain: '127.0.0.1' expiry set
+'persistentCookie' 2 After Change --- domain: '127.0.0.1' expiry set isSameSiteStrict: 'true'
+
+'persistentHttpOnlyCookie' 1 Before Change -- domain: '127.0.0.1' expiry set isHttpOnly: 'true'
+'persistentHttpOnlyCookie' 2 After Change --- domain: '127.0.0.1' expiry set isHttpOnly: 'true' isSameSiteStrict: 'true'
+
+'persistentSameSiteLaxCookie' 1 Before Change -- domain: '127.0.0.1' expiry set isSameSiteLax: 'true'
+'persistentSameSiteLaxCookie' 2 After Change --- domain: '127.0.0.1' expiry set isSameSiteStrict: 'true'
+
+'persistentSameSiteStrictCookie' 1 Before Change -- domain: '127.0.0.1' expiry set isSameSiteStrict: 'true'
+'persistentSameSiteStrictCookie' 2 After Change --- domain: '127.0.0.1' exp

[webkit-changes] [258672] trunk

2020-03-18 Thread wilander
ssion-on-navigation-to-prevalent-without-interaction-database.php
trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.php
trunk/LayoutTests/http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/grandfathering-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/grandfathering.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.php
trunk/LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.php
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestInvocation.cpp
trunk/Tools/WebKitTestRunner/TestInvocation.h


Added Paths

trunk/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-ephemeral-expected.txt
trunk/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-ephemeral.html
trunk/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral-expected.txt
trunk/LayoutTests/http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral.html
trunk/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral-expected.txt
trunk/LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral.html




Diff

Modified: trunk/LayoutTests/ChangeLog (258671 => 258672)

--- trunk/LayoutTests/ChangeLog	2020-03-19 00:41:36 UTC (rev 258671)
+++ trunk/LayoutTests/ChangeLog	2020-03-19 01:26:16 UTC (rev 258672)
@@ -1,3 +1,39 @@
+2020-03-18  John Wilander  
+
+WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener() should call its ephemeral counterpart when appropriate
+https://bugs.webkit.org/show_bug.cgi?id=209245
+
+
+Reviewed by Chris Dumez.
+
+There are new tests added for the code change. The rest of these change are to better
+align test cases with asynchronous TestRunner functions that landed in
+https://trac.webkit.org/changeset/258566 and https://trac.webkit.org/changeset/258598.
+
+While working on the new tests, I found a crasher which Chris Dumez fixed in
+https://trac.webkit.org/changeset/258562, so there's a dependency on that change.
+
+* http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-database.html:
+* http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction.html:
+* http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html:
+* http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html:
+* http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html:
+* http/tests/resourceLoadStatistics/count-third-party-script-loads.html:
+* http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database.php:
+* http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.php:
+* http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html:
+* http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script.html:
+* http/tests/resourceLoadStatistics/grandfathering-database.html:
+* http/tests/resourceLoadStatistics/grandfathering.html:
+* http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.php:
+* http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.php:
+* http/tests/storageAccess/deny-storage-access-under-opener-ephemeral-expected.txt: Added.
+* http/tests/storageAccess/deny-storage-access-under-opener-ephemeral.html: Added.
+* http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral-expected.txt: Added.
+* http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-ephemeral.html: Added.
+* http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral-expected.txt: Added.
+* http/tests/storageAccess/grant-storage-access-under-opener-at-popup-user-gesture-ephemeral.html: Added.
+
 2020-03-18  Ryan Haddad  
 
 svg/as-object/object-box-sizing-no-width-h

[webkit-changes] [258599] trunk/Source/WebKit

2020-03-17 Thread wilander
Title: [258599] trunk/Source/WebKit








Revision 258599
Author wilan...@apple.com
Date 2020-03-17 14:35:28 -0700 (Tue, 17 Mar 2020)


Log Message
Add quirk for cookie blocking latch mode ymail.com redirecting to yahoo.com under yahoo.com
https://bugs.webkit.org/show_bug.cgi?id=209193


Reviewed by Brent Fulgham.

No new tests. Site-specific quirk tested manually on the site in question.

* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::unblockCookies):
(WebKit::NetworkDataTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk const):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (258598 => 258599)

--- trunk/Source/WebKit/ChangeLog	2020-03-17 21:25:06 UTC (rev 258598)
+++ trunk/Source/WebKit/ChangeLog	2020-03-17 21:35:28 UTC (rev 258599)
@@ -1,3 +1,19 @@
+2020-03-17  John Wilander  
+
+Add quirk for cookie blocking latch mode ymail.com redirecting to yahoo.com under yahoo.com
+https://bugs.webkit.org/show_bug.cgi?id=209193
+
+
+Reviewed by Brent Fulgham.
+
+No new tests. Site-specific quirk tested manually on the site in question.
+
+* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
+* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+(WebKit::NetworkDataTaskCocoa::unblockCookies):
+(WebKit::NetworkDataTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk const):
+(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
+
 2020-03-17  Brian Burg  
 
 REGRESSION(r256882): WebDriver commands that run before initial navigation do not complete


Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h (258598 => 258599)

--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h	2020-03-17 21:25:06 UTC (rev 258598)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h	2020-03-17 21:35:28 UTC (rev 258599)
@@ -86,6 +86,8 @@
 #if ENABLE(RESOURCE_LOAD_STATISTICS)
 static NSHTTPCookieStorage *statelessCookieStorage();
 void blockCookies();
+void unblockCookies();
+bool needsFirstPartyCookieBlockingLatchModeQuirk(const URL& firstPartyURL, const URL& requestURL, const URL& redirectingURL) const;
 #endif
 bool isThirdPartyRequest(const WebCore::ResourceRequest&) const;
 bool isAlwaysOnLoggingAllowed() const;


Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (258598 => 258599)

--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2020-03-17 21:25:06 UTC (rev 258598)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2020-03-17 21:35:28 UTC (rev 258599)
@@ -151,6 +151,42 @@
 [m_task _setExplicitCookieStorage:statelessCookieStorage()._cookieStorage];
 m_hasBeenSetToUseStatelessCookieStorage = true;
 }
+
+void NetworkDataTaskCocoa::unblockCookies()
+{
+ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies));
+
+if (!m_hasBeenSetToUseStatelessCookieStorage)
+return;
+
+if (auto* storageSession = m_session->networkStorageSession()) {
+[m_task _setExplicitCookieStorage:storageSession->nsCookieStorage()._cookieStorage];
+m_hasBeenSetToUseStatelessCookieStorage = false;
+}
+}
+
+// FIXME: Temporary fix for  until content can be updated.
+bool NetworkDataTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk(const URL& firstPartyURL, const URL& requestURL, const URL& redirectingURL) const
+{
+using RegistrableDomain = WebCore::RegistrableDomain;
+static NeverDestroyed> quirkPairs = [] {
+HashMap map;
+map.add(RegistrableDomain::uncheckedCreateFromRegistrableDomainString("ymail.com"_s), RegistrableDomain::uncheckedCreateFromRegistrableDomainString("yahoo.com"_s));
+return map;
+}();
+
+RegistrableDomain firstPartyDomain { firstPartyURL };
+RegistrableDomain requestDomain { requestURL };
+if (firstPartyDomain != requestDomain)
+return false;
+
+RegistrableDomain redirectingDomain { redirectingURL };
+auto quirk = quirkPairs.get().find(redirectingDomain);
+if (quirk == quirkPairs.get().end())
+return false;
+
+return quirk->value == requestDomain;
+}
 #endif
 
 bool NetworkDataTaskCocoa::isThirdPartyRequest(const WebCore::ResourceRequest& request) const
@@ -387,7 +423,8 @@
 if (m_storedCredentialsPolicy == WebCore::StoredCredentialsPolicy::EphemeralStateless
 || (m_session->networkStorageSession() && m_session->networkStorageSession()->shouldBlockCookies(request, m_frameID, m_pageID)))
 blockCookies();
-}
+} 

[webkit-changes] [258448] trunk/Source

2020-03-13 Thread wilander
Title: [258448] trunk/Source








Revision 258448
Author wilan...@apple.com
Date 2020-03-13 16:35:40 -0700 (Fri, 13 Mar 2020)


Log Message
Remove unused code related to removePrevalentDomains()
https://bugs.webkit.org/show_bug.cgi?id=209078


Reviewed by Brent Fulgham.

The various removePrevalentDomains() functions and its IPC endpoint are unused and should be removed.

Source/WebCore:

No new tests. Just dead code removal.

* platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::removePrevalentDomains): Deleted.
* platform/network/NetworkStorageSession.h:

Source/WebKit:

* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::clearBlockingStateForDomains): Deleted.
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::removePrevalentDomains): Deleted.
(WebKit::WebResourceLoadStatisticsStore::callRemoveDomainsHandler): Deleted.
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::removePrevalentDomains): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/network/NetworkStorageSession.cpp
trunk/Source/WebCore/platform/network/NetworkStorageSession.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in




Diff

Modified: trunk/Source/WebCore/ChangeLog (258447 => 258448)

--- trunk/Source/WebCore/ChangeLog	2020-03-13 23:33:33 UTC (rev 258447)
+++ trunk/Source/WebCore/ChangeLog	2020-03-13 23:35:40 UTC (rev 258448)
@@ -1,3 +1,19 @@
+2020-03-13  John Wilander  
+
+Remove unused code related to removePrevalentDomains()
+https://bugs.webkit.org/show_bug.cgi?id=209078
+
+
+Reviewed by Brent Fulgham.
+
+The various removePrevalentDomains() functions and its IPC endpoint are unused and should be removed.
+
+No new tests. Just dead code removal.
+
+* platform/network/NetworkStorageSession.cpp:
+(WebCore::NetworkStorageSession::removePrevalentDomains): Deleted.
+* platform/network/NetworkStorageSession.h:
+
 2020-03-13  Myles C. Maxfield  
 
 [Cocoa] Push applicationSDKVersion() down from WebCore into WTF


Modified: trunk/Source/WebCore/platform/network/NetworkStorageSession.cpp (258447 => 258448)

--- trunk/Source/WebCore/platform/network/NetworkStorageSession.cpp	2020-03-13 23:33:33 UTC (rev 258447)
+++ trunk/Source/WebCore/platform/network/NetworkStorageSession.cpp	2020-03-13 23:35:40 UTC (rev 258448)
@@ -168,14 +168,6 @@
 m_registrableDomainsWithUserInteractionAsFirstParty.add(domains.begin(), domains.end());
 }
 
-void NetworkStorageSession::removePrevalentDomains(const Vector& domains)
-{
-for (auto& domain : domains) {
-m_registrableDomainsToBlockAndDeleteCookiesFor.remove(domain);
-m_registrableDomainsToBlockButKeepCookiesFor.remove(domain);
-}
-}
-
 bool NetworkStorageSession::hasStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional frameID, PageIdentifier pageID) const
 {
 if (frameID) {


Modified: trunk/Source/WebCore/platform/network/NetworkStorageSession.h (258447 => 258448)

--- trunk/Source/WebCore/platform/network/NetworkStorageSession.h	2020-03-13 23:33:33 UTC (rev 258447)
+++ trunk/Source/WebCore/platform/network/NetworkStorageSession.h	2020-03-13 23:35:40 UTC (rev 258448)
@@ -182,7 +182,6 @@
 WEBCORE_EXPORT void setPrevalentDomainsToBlockButKeepCookiesFor(const Vector&);
 WEBCORE_EXPORT void setDomainsWithUserInteractionAsFirstParty(const Vector&);
 WEBCORE_EXPORT void setAgeCapForClientSideCookies(Optional);
-WEBCORE_EXPORT void removePrevalentDomains(const Vector& domains);
 WEBCORE_EXPORT bool hasStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional, PageIdentifier) const;
 WEBCORE_EXPORT Vector getAllStorageAccessEntries() const;
 WEBCORE_EXPORT void grantStorageAccess(const RegistrableDomain& resourceDomain, const RegistrableDomain& firstPartyDomain, Optional, PageIdentifier);


Modified: trunk/Source/WebKit/ChangeLog (258447 => 258448)

--- trunk/Source/WebKit/ChangeLog	2020-03-13 23:33:33 UTC (rev 258447)
+++ trunk/Source/WebKit/ChangeLog	2020-03-13 23:35:40 UTC (rev 258448)
@@ -1,3 +1,24 @@
+2020-03-13  John Wilander  
+
+Remove unused code related to removePrevalentDomains()
+https://bugs.webkit.

[webkit-changes] [258431] trunk/LayoutTests

2020-03-13 Thread wilander
Title: [258431] trunk/LayoutTests








Revision 258431
Author wilan...@apple.com
Date 2020-03-13 14:32:45 -0700 (Fri, 13 Mar 2020)


Log Message
Add mixed content block test for imported scripts in worker global scope
https://bugs.webkit.org/show_bug.cgi?id=209075


Reviewed by Brent Fulgham.

* http/tests/security/mixedContent/insecure-worker-global-scope-expected.txt: Added.
* http/tests/security/mixedContent/insecure-worker-global-scope.html: Added.
* http/tests/security/mixedContent/resources/worker-importing-insecure-script.js: Added.
* http/tests/security/mixedContent/resources/worker-importing-secure-script.js: Added.
* http/tests/security/mixedContent/resources/worker-sending-message.js: Added.
* platform/mac-wk1/TestExpectations:
Test for some reason fails on Mojave Debug WK1 but not on Mojave Release WK1 or other bots.
Therefore skipped.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/mac-wk1/TestExpectations


Added Paths

trunk/LayoutTests/http/tests/security/mixedContent/insecure-worker-global-scope-expected.txt
trunk/LayoutTests/http/tests/security/mixedContent/insecure-worker-global-scope.html
trunk/LayoutTests/http/tests/security/mixedContent/resources/worker-importing-insecure-script.js
trunk/LayoutTests/http/tests/security/mixedContent/resources/worker-importing-secure-script.js
trunk/LayoutTests/http/tests/security/mixedContent/resources/worker-sending-message.js




Diff

Modified: trunk/LayoutTests/ChangeLog (258430 => 258431)

--- trunk/LayoutTests/ChangeLog	2020-03-13 21:25:03 UTC (rev 258430)
+++ trunk/LayoutTests/ChangeLog	2020-03-13 21:32:45 UTC (rev 258431)
@@ -1,3 +1,20 @@
+2020-03-13  John Wilander  
+
+Add mixed content block test for imported scripts in worker global scope
+https://bugs.webkit.org/show_bug.cgi?id=209075
+
+
+Reviewed by Brent Fulgham.
+
+* http/tests/security/mixedContent/insecure-worker-global-scope-expected.txt: Added.
+* http/tests/security/mixedContent/insecure-worker-global-scope.html: Added.
+* http/tests/security/mixedContent/resources/worker-importing-insecure-script.js: Added.
+* http/tests/security/mixedContent/resources/worker-importing-secure-script.js: Added.
+* http/tests/security/mixedContent/resources/worker-sending-message.js: Added.
+* platform/mac-wk1/TestExpectations:
+Test for some reason fails on Mojave Debug WK1 but not on Mojave Release WK1 or other bots.
+Therefore skipped.
+
 2020-03-13  Jacob Uphoff  
 
 REGRESSION (r257840): [ iOS ] fast/backgrounds/hidpi-bitmap-background-on-subpixel-position.html is flaky failing


Added: trunk/LayoutTests/http/tests/security/mixedContent/insecure-worker-global-scope-expected.txt (0 => 258431)

--- trunk/LayoutTests/http/tests/security/mixedContent/insecure-worker-global-scope-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/security/mixedContent/insecure-worker-global-scope-expected.txt	2020-03-13 21:32:45 UTC (rev 258431)
@@ -0,0 +1,13 @@
+CONSOLE MESSAGE: [blocked] The page at https://127.0.0.1:8443/security/mixedContent/insecure-worker-global-scope.html was not allowed to display insecure content from http://127.0.0.1:8000/security/mixedContent/resources/worker-sending-message.js.
+
+Tests that mixed content check blocks imported insecure script in a global worker scope.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Imported, secure worker script is running and sent a message: 'Running.'
+PASS Imported, insecure worker script threw an exception.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/http/tests/security/mixedContent/insecure-worker-global-scope.html (0 => 258431)

--- trunk/LayoutTests/http/tests/security/mixedContent/insecure-worker-global-scope.html	(rev 0)
+++ trunk/LayoutTests/http/tests/security/mixedContent/insecure-worker-global-scope.html	2020-03-13 21:32:45 UTC (rev 258431)
@@ -0,0 +1,42 @@
+
+
+
+<body _onload_="runTest()">
+<script>
+description("Tests that mixed content check blocks imported insecure script in a global worker scope.");
+jsTestIsAsync = true;
+
+if (document.location.protocol !== "https:")
+document.location.href = ""
+
+if (window.testRunner)
+testRunner.dumpAsText();
+
+const numberOfTestsToRun = 2;
+let numberOfTestsDone = 0;
+let interval = setInterval(function () {
+if (numberOfTestsDone === numberOfTestsToRun) {
+clearInterval(interval);
+finishJSTest();
+}
+}, 50);
+function runTest() {
+let worker = new Worker("https://127.0.0.1:8443/security/mixedContent/resources/worker-importing-secure-script.js");
+worker.addEventListener('message', function (mess

[webkit-changes] [257106] trunk/Source/WebKit

2020-02-20 Thread wilander
Title: [257106] trunk/Source/WebKit








Revision 257106
Author wilan...@apple.com
Date 2020-02-20 17:25:32 -0800 (Thu, 20 Feb 2020)


Log Message
Add fidelity.com to the desktop class quirks list
https://bugs.webkit.org/show_bug.cgi?id=208037


Reviewed by Brent Fulgham.

No new tests. This patch just adds a domain name to a quirks function.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingRecommendedForRequest):
fidelity.com and its subdomains now return false.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (257105 => 257106)

--- trunk/Source/WebKit/ChangeLog	2020-02-21 00:41:58 UTC (rev 257105)
+++ trunk/Source/WebKit/ChangeLog	2020-02-21 01:25:32 UTC (rev 257106)
@@ -1,3 +1,17 @@
+2020-02-20  John Wilander  
+
+Add fidelity.com to the desktop class quirks list
+https://bugs.webkit.org/show_bug.cgi?id=208037
+
+
+Reviewed by Brent Fulgham.
+
+No new tests. This patch just adds a domain name to a quirks function.
+
+* UIProcess/ios/WebPageProxyIOS.mm:
+(WebKit::desktopClassBrowsingRecommendedForRequest):
+fidelity.com and its subdomains now return false.
+
 2020-02-20  Sihui Liu  
 
 WebIDBServer resume should return early if suspend does not happen


Modified: trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (257105 => 257106)

--- trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm	2020-02-21 00:41:58 UTC (rev 257105)
+++ trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm	2020-02-21 01:25:32 UTC (rev 257106)
@@ -1407,6 +1407,10 @@
 return false;
 }
 
+// FIXME: Remove this quirk when  is complete.
+if (equalLettersIgnoringASCIICase(host, "fidelity.com") || host.endsWithIgnoringASCIICase(".fidelity.com"))
+return false;
+
 return true;
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [256090] trunk/Source/WebKit

2020-02-08 Thread wilander
Title: [256090] trunk/Source/WebKit








Revision 256090
Author wilan...@apple.com
Date 2020-02-08 07:48:54 -0800 (Sat, 08 Feb 2020)


Log Message
Resource Load Statistics: Hold off non-cookie website data deletion until an hour after user interaction
https://bugs.webkit.org/show_bug.cgi?id=207418


Reviewed by Chris Dumez.

This change makes sure there is at least a one-hour or older timestamp
for user interaction for some website before activating deletion of
non-cookie website data for sites the user has not interacted with.
This ensures that a fresh start such as after a reset or on a new
device doesn't interpret the lack of data as lack of user interaction.

No new tests. Existing tests make sure we don't regress the functionality.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor):
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (256089 => 256090)

--- trunk/Source/WebKit/ChangeLog	2020-02-08 14:10:25 UTC (rev 256089)
+++ trunk/Source/WebKit/ChangeLog	2020-02-08 15:48:54 UTC (rev 256090)
@@ -1,3 +1,24 @@
+2020-02-08  John Wilander  
+
+Resource Load Statistics: Hold off non-cookie website data deletion until an hour after user interaction
+https://bugs.webkit.org/show_bug.cgi?id=207418
+
+
+Reviewed by Chris Dumez.
+
+This change makes sure there is at least a one-hour or older timestamp
+for user interaction for some website before activating deletion of
+non-cookie website data for sites the user has not interacted with.
+This ensures that a fresh start such as after a reset or on a new
+device doesn't interpret the lack of data as lack of user interaction.
+
+No new tests. Existing tests make sure we don't regress the functionality.
+
+* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
+(WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor):
+* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
+(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor):
+
 2020-02-07  Jon Lee  
 
 Web Inspector: Revert slim toolbar


Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp (256089 => 256090)

--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp	2020-02-08 14:10:25 UTC (rev 256089)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp	2020-02-08 15:48:54 UTC (rev 256090)
@@ -2266,12 +2266,15 @@
 clearEndOfGrandfatheringTimeStamp();
 
 clearExpiredUserInteractions();
-
+
+auto now = WallTime::now();
+auto oldestUserInteraction = now;
 Vector> domainsToRemoveWebsiteDataFor;
 
 Vector domains = this->domains();
 Vector domainIDsToClearGrandfathering;
 for (auto& statistic : domains) {
+oldestUserInteraction = std::min(oldestUserInteraction, statistic.mostRecentUserInteractionTime);
 if (shouldRemoveAllWebsiteDataFor(statistic, shouldCheckForGrandfathering))
 domainsToRemoveWebsiteDataFor.append(std::make_pair(statistic.registrableDomain, WebsiteDataToRemove::All));
 else if (shouldRemoveAllButCookiesFor(statistic, shouldCheckForGrandfathering)) {
@@ -2282,6 +2285,13 @@
 domainIDsToClearGrandfathering.append(statistic.domainID);
 }
 
+// Give the user enough time to interact with websites until we remove non-cookie website data.
+if (!parameters().isRunningTest && now - oldestUserInteraction > parameters().minimumTimeBetweenDataRecordsRemoval) {
+domainsToRemoveWebsiteDataFor.removeAllMatching([&] (auto& pair) {
+return pair.second == WebsiteDataToRemove::AllButCookies;
+});
+}
+
 clearGrandfathering(WTFMove(domainIDsToClearGrandfathering));
 
 return domainsToRemoveWebsiteDataFor;


Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp (256089 => 256090)

--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp	2020-02-08 14:10:25 UTC (rev 256089)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp	2020-02-08 15:48:54 UTC (rev 256090)
@@ -924,8 +924,11 @@
 if (shouldClearGrandfathering)
 clearEndOfGrandfatheringTimeStamp();
 
+auto now = WallTime::now();
+auto oldestUserInteraction =

[webkit-changes] [254482] trunk/LayoutTests

2020-01-13 Thread wilander
Title: [254482] trunk/LayoutTests








Revision 254482
Author wilan...@apple.com
Date 2020-01-13 19:15:36 -0800 (Mon, 13 Jan 2020)


Log Message
Remove calls to testRunner.installStatisticsDidModifyDataRecordsCallback() in http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins*
https://bugs.webkit.org/show_bug.cgi?id=206188


Unreviewed test gardening.

Removed the calls to testRunner.installStatisticsDidModifyDataRecordsCallback()
to address flakiness.


* http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
* http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html




Diff

Modified: trunk/LayoutTests/ChangeLog (254481 => 254482)

--- trunk/LayoutTests/ChangeLog	2020-01-14 02:34:34 UTC (rev 254481)
+++ trunk/LayoutTests/ChangeLog	2020-01-14 03:15:36 UTC (rev 254482)
@@ -1,3 +1,17 @@
+2020-01-13  John Wilander  
+
+Remove calls to testRunner.installStatisticsDidModifyDataRecordsCallback() in http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins*
+https://bugs.webkit.org/show_bug.cgi?id=206188
+
+
+Unreviewed test gardening.
+
+Removed the calls to testRunner.installStatisticsDidModifyDataRecordsCallback()
+to address flakiness.
+
+* http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
+* http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
+
 2020-01-13  Justin Fan  
 
 [WebGL 2] Implement transform feedback and pass transform feedback conformance tests


Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html (254481 => 254482)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html	2020-01-14 02:34:34 UTC (rev 254481)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html	2020-01-14 03:15:36 UTC (rev 254482)
@@ -35,7 +35,6 @@
 testRunner.setStatisticsSubframeUnderTopFrameOrigin(statisticsUrl, topFrameOrigin3);
 
 testRunner.installStatisticsDidScanDataRecordsCallback(completeTest);
-testRunner.installStatisticsDidModifyDataRecordsCallback(completeTest);
 
 testRunner.statisticsProcessStatisticsAndDataRecords();
 });


Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html (254481 => 254482)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html	2020-01-14 02:34:34 UTC (rev 254481)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html	2020-01-14 03:15:36 UTC (rev 254482)
@@ -35,7 +35,6 @@
 testRunner.setStatisticsSubframeUnderTopFrameOrigin(statisticsUrl, topFrameOrigin3);
 
 testRunner.installStatisticsDidScanDataRecordsCallback(completeTest);
-testRunner.installStatisticsDidModifyDataRecordsCallback(completeTest);
 
 testRunner.statisticsProcessStatisticsAndDataRecords();
 });






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [254386] trunk/LayoutTests

2020-01-10 Thread wilander
Title: [254386] trunk/LayoutTests








Revision 254386
Author wilan...@apple.com
Date 2020-01-10 17:52:56 -0800 (Fri, 10 Jan 2020)


Log Message
Make http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins* use resource/util.js
https://bugs.webkit.org/show_bug.cgi?id=206100


Unreviewed test gardening.


* http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
* http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
These two tests now use setEnableFeature() in resources/util.js which makes sure
testRunner.setStatisticsNotifyPagesWhenDataRecordsWereScanned() is called with
false before ending the test.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html




Diff

Modified: trunk/LayoutTests/ChangeLog (254385 => 254386)

--- trunk/LayoutTests/ChangeLog	2020-01-11 01:29:02 UTC (rev 254385)
+++ trunk/LayoutTests/ChangeLog	2020-01-11 01:52:56 UTC (rev 254386)
@@ -1,3 +1,17 @@
+2020-01-10  John Wilander  
+
+Make http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins* use resource/util.js
+https://bugs.webkit.org/show_bug.cgi?id=206100
+
+
+Unreviewed test gardening.
+
+* http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
+* http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
+These two tests now use setEnableFeature() in resources/util.js which makes sure 
+testRunner.setStatisticsNotifyPagesWhenDataRecordsWereScanned() is called with
+false before ending the test.
+
 2020-01-10  Ryan Haddad  
 
 3 editing/spelling test failures on Mojave Release WK1


Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html (254385 => 254386)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html	2020-01-11 01:29:02 UTC (rev 254385)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html	2020-01-11 01:52:56 UTC (rev 254386)
@@ -4,8 +4,9 @@
 
 Tests for Classification Based on Sub Frame Under Top Frame Origins
 <ins>+<script src=""
</ins><span class="cx"> </head>
</span><del>-<body>
</del><ins>+<body _onload_="run()">
</ins><span class="cx"> <script>
</span><span class="cx"> const hostUnderTest = "127.0.0.1:8000";
</span><span class="cx"> const statisticsUrl = "http://" + hostUnderTest + "/temp";
</span><span class="lines">@@ -19,14 +20,12 @@
</span><span class="cx"> else
</span><span class="cx"> testPassed("Host did not get classified as prevalent resource.");
</span><span class="cx"> 
</span><del>-testRunner.statisticsResetToConsistentState(function() {
</del><ins>+setEnableFeature(false, function() {
</ins><span class="cx"> testRunner.notifyDone();
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function runTestRunnerTest() {
</span><del>-testRunner.setStatisticsNotifyPagesWhenDataRecordsWereScanned(true);
-
</del><span class="cx"> testRunner.setStatisticsPrevalentResource(statisticsUrl, false, function() {
</span><span class="cx"> if (testRunner.isStatisticsPrevalentResource(statisticsUrl))
</span><span class="cx"> testFailed("Host did not get set as non-prevalent resource.");
</span><span class="lines">@@ -42,11 +41,12 @@
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-if (document.location.host === hostUnderTest && window.testRunner && window.internals) {
-testRunner.setUseITPDatabase(true);
- 

[webkit-changes] [254374] trunk/Source/WebCore

2020-01-10 Thread wilander
Title: [254374] trunk/Source/WebCore








Revision 254374
Author wilan...@apple.com
Date 2020-01-10 15:48:24 -0800 (Fri, 10 Jan 2020)


Log Message
Resource Load Statistics: Align WebCore::NetworkStorageSession's m_thirdPartyCookieBlockingMode init value with r254239
https://bugs.webkit.org/show_bug.cgi?id=206082


Unreviewed minor, follow-up fix.


* platform/network/NetworkStorageSession.h:
The init value of m_thirdPartyCookieBlockingMode was changed to
ThirdPartyCookieBlockingMode::All to align it with r254239.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/network/NetworkStorageSession.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (254373 => 254374)

--- trunk/Source/WebCore/ChangeLog	2020-01-10 23:39:54 UTC (rev 254373)
+++ trunk/Source/WebCore/ChangeLog	2020-01-10 23:48:24 UTC (rev 254374)
@@ -1,3 +1,15 @@
+2020-01-10  John Wilander  
+
+Resource Load Statistics: Align WebCore::NetworkStorageSession's m_thirdPartyCookieBlockingMode init value with r254239
+https://bugs.webkit.org/show_bug.cgi?id=206082
+
+
+Unreviewed minor, follow-up fix.
+
+* platform/network/NetworkStorageSession.h:
+The init value of m_thirdPartyCookieBlockingMode was changed to
+ThirdPartyCookieBlockingMode::All to align it with r254239.
+
 2020-01-09  Per Arne Vollan  
 
 Map CSS value ID to system color in the UI process


Modified: trunk/Source/WebCore/platform/network/NetworkStorageSession.h (254373 => 254374)

--- trunk/Source/WebCore/platform/network/NetworkStorageSession.h	2020-01-10 23:39:54 UTC (rev 254373)
+++ trunk/Source/WebCore/platform/network/NetworkStorageSession.h	2020-01-10 23:48:24 UTC (rev 254374)
@@ -203,7 +203,7 @@
 Optional m_ageCapForClientSideCookiesShort { };
 HashMap m_navigatedToWithLinkDecorationByPrevalentResource;
 bool m_navigationWithLinkDecorationTestMode = false;
-ThirdPartyCookieBlockingMode m_thirdPartyCookieBlockingMode { ThirdPartyCookieBlockingMode::AllOnSitesWithoutUserInteraction };
+ThirdPartyCookieBlockingMode m_thirdPartyCookieBlockingMode { ThirdPartyCookieBlockingMode::All };
 #endif
 
 #if PLATFORM(COCOA)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [254310] trunk/Source/WebKit

2020-01-09 Thread wilander
Title: [254310] trunk/Source/WebKit








Revision 254310
Author wilan...@apple.com
Date 2020-01-09 15:47:34 -0800 (Thu, 09 Jan 2020)


Log Message
Check the existence of the optional m_sessionID before using it in WebProcess::setResourceLoadStatisticsEnabled()
https://bugs.webkit.org/show_bug.cgi?id=206035


Reviewed by Brent Fulgham.

No new tests.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setResourceLoadStatisticsEnabled):
Added a check that m_sessionID exists.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebProcess/WebProcess.cpp




Diff

Modified: trunk/Source/WebKit/ChangeLog (254309 => 254310)

--- trunk/Source/WebKit/ChangeLog	2020-01-09 23:47:02 UTC (rev 254309)
+++ trunk/Source/WebKit/ChangeLog	2020-01-09 23:47:34 UTC (rev 254310)
@@ -1,3 +1,17 @@
+2020-01-09  John Wilander  
+
+Check the existence of the optional m_sessionID before using it in WebProcess::setResourceLoadStatisticsEnabled()
+https://bugs.webkit.org/show_bug.cgi?id=206035
+
+
+Reviewed by Brent Fulgham.
+
+No new tests.
+
+* WebProcess/WebProcess.cpp:
+(WebKit::WebProcess::setResourceLoadStatisticsEnabled):
+Added a check that m_sessionID exists.
+
 2020-01-09  Tim Horton  
 
 Install WebKit framework symlink for more iOS-derived platforms


Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (254309 => 254310)

--- trunk/Source/WebKit/WebProcess/WebProcess.cpp	2020-01-09 23:47:02 UTC (rev 254309)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp	2020-01-09 23:47:34 UTC (rev 254310)
@@ -1630,7 +1630,7 @@
 
 void WebProcess::setResourceLoadStatisticsEnabled(bool enabled)
 {
-if (WebCore::DeprecatedGlobalSettings::resourceLoadStatisticsEnabled() == enabled || m_sessionID->isEphemeral())
+if (WebCore::DeprecatedGlobalSettings::resourceLoadStatisticsEnabled() == enabled || (m_sessionID && m_sessionID->isEphemeral()))
 return;
 WebCore::DeprecatedGlobalSettings::setResourceLoadStatisticsEnabled(enabled);
 #if ENABLE(RESOURCE_LOAD_STATISTICS)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [254296] trunk

2020-01-09 Thread wilander
/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
trunk/Source/WebKit/UIProcess/WebPageProxy.h
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/log-delayed-client-side-redirects.html




Diff

Modified: trunk/LayoutTests/ChangeLog (254295 => 254296)

--- trunk/LayoutTests/ChangeLog	2020-01-09 21:56:02 UTC (rev 254295)
+++ trunk/LayoutTests/ChangeLog	2020-01-09 22:01:46 UTC (rev 254296)
@@ -1,3 +1,22 @@
+2020-01-09  John Wilander  
+
+Resource Load Statistics: Add timing information to WebPageProxy::logFrameNavigation() to detect delayed client-side redirects
+https://bugs.webkit.org/show_bug.cgi?id=205522
+
+
+Reviewed by Chris Dumez.
+
+Results updated with additional data now that delayed redirects are captured.
+
+* http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt:
+* http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
+* http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database.html: Added.
+* http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-expected.txt: Added.
+* http/tests/resourceLoadStatistics/log-delayed-client-side-redirects.html: Added.
+* http/tests/storageAccess/aggregate-sorted-data-with-storage-access-database-expected.txt:
+* http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt:
+
 2020-01-09  Pablo Saavedra  
 
 Bad baseline for Catalina on xhr web-platform-tests imported in r254154


Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt (254295 => 254296)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt	2020-01-09 21:56:02 UTC (rev 254295)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt	2020-01-09 22:01:46 UTC (rev 254296)
@@ -6,6 +6,8 @@
 hadUserInteraction: No
 mostRecentUserInteraction: -1
 grandfathered: No
+TopFrameUniqueRedirectsTo:
+localhost
 IsScheduledForAllButCookieDataRemoval: No
 isPrevalentResource: Yes
 isVeryPrevalentResource: No
@@ -22,6 +24,8 @@
 hadUserInteraction: No
 mostRecentUserInteraction: -1
 grandfathered: No
+TopFrameUniqueRedirectsFrom:
+127.0.0.1
 TopFrameLinkDecorationsFrom:
 127.0.0.1
 127.0.0.2


Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt (254295 => 254296)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt	2020-01-09 21:56:02 UTC (rev 254295)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt	2020-01-09 22:01:46 UTC (rev 254296)
@@ -6,6 +6,8 @@
 hadUserInteraction: No
 mostRecentUserInteraction: -1
 grandfathered: No
+topFrameUniqueRedirectsFrom:
+127.0.0.1
 topFrameLinkDecorationsFrom:
 127.0.0.1
 gotLinkDecorationFromPrevalentResource: Yes
@@ -16,6 +18,8 @@
 hadUserInteraction: No
 mostRecentUserInteraction: -1
 grandfathered: No
+topFrameUniqueRedirectsTo:
+localhost
 gotLinkDecorationFromPrevalentResource: No
 isPrevalentResource: Yes
 isVeryPrevalentResource: No


Copied: trunk/LayoutTests/http/tests/resourceLoadStatistics/log-delayed-client-side-redirects-database-expected.txt (from rev 254295, trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt) (0 => 254296)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/log-delayed-client-si

[webkit-changes] [254293] trunk/Source

2020-01-09 Thread wilander
Title: [254293] trunk/Source








Revision 254293
Author wilan...@apple.com
Date 2020-01-09 13:32:04 -0800 (Thu, 09 Jan 2020)


Log Message
Resource Load Statistics: Flip experimental website data removal setting from an enable to a disable
https://bugs.webkit.org/show_bug.cgi?id=205966


Reviewed by Brent Fulgham.

To get default on behavior, experimental features in the network process need to be
turned from enable flags to disable flags. This patch does that for the experimental
website data removal flag.

Source/WebCore:

No new tests. This change just reverses the interpretation of a flag.

* page/Settings.yaml:

Source/WebKit:

This change also aligns the init values of the setting to match the default.

* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/NetworkSession.h:
* NetworkProcess/NetworkSessionCreationParameters.h:
* Shared/WebPreferences.yaml:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
trunk/Source/WebKit/Shared/WebPreferences.yaml
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm




Diff

Modified: trunk/Source/WebCore/ChangeLog (254292 => 254293)

--- trunk/Source/WebCore/ChangeLog	2020-01-09 21:10:17 UTC (rev 254292)
+++ trunk/Source/WebCore/ChangeLog	2020-01-09 21:32:04 UTC (rev 254293)
@@ -1,3 +1,19 @@
+2020-01-09  John Wilander  
+
+Resource Load Statistics: Flip experimental website data removal setting from an enable to a disable
+https://bugs.webkit.org/show_bug.cgi?id=205966
+
+
+Reviewed by Brent Fulgham.
+
+To get default on behavior, experimental features in the network process need to be
+turned from enable flags to disable flags. This patch does that for the experimental
+website data removal flag.
+
+No new tests. This change just reverses the interpretation of a flag.
+
+* page/Settings.yaml:
+
 2020-01-09  Chris Lord  
 
 ImageBitmap can't be created in workers in some cases due to main-thread assert in ImageSource


Modified: trunk/Source/WebCore/page/Settings.yaml (254292 => 254293)

--- trunk/Source/WebCore/page/Settings.yaml	2020-01-09 21:10:17 UTC (rev 254292)
+++ trunk/Source/WebCore/page/Settings.yaml	2020-01-09 21:32:04 UTC (rev 254293)
@@ -889,8 +889,8 @@
 isThirdPartyCookieBlockingDisabled:
   initial: false
 
-isFirstPartyWebsiteDataRemovalEnabled:
-  initial: true
+isFirstPartyWebsiteDataRemovalDisabled:
+  initial: false
 
 isFirstPartyWebsiteDataRemovalLiveOnTestingEnabled:
   initial: false


Modified: trunk/Source/WebKit/ChangeLog (254292 => 254293)

--- trunk/Source/WebKit/ChangeLog	2020-01-09 21:10:17 UTC (rev 254292)
+++ trunk/Source/WebKit/ChangeLog	2020-01-09 21:32:04 UTC (rev 254293)
@@ -1,3 +1,26 @@
+2020-01-09  John Wilander  
+
+Resource Load Statistics: Flip experimental website data removal setting from an enable to a disable
+https://bugs.webkit.org/show_bug.cgi?id=205966
+
+
+Reviewed by Brent Fulgham.
+
+To get default on behavior, experimental features in the network process need to be
+turned from enable flags to disable flags. This patch does that for the experimental
+website data removal flag.
+
+This change also aligns the init values of the setting to match the default.
+
+* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
+* NetworkProcess/NetworkSession.h:
+* NetworkProcess/NetworkSessionCreationParameters.h:
+* Shared/WebPreferences.yaml:
+* UIProcess/WebProcessPool.cpp:
+(WebKit::WebProcessPool::ensureNetworkProcess):
+* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+(WebKit::WebsiteDataStore::parameters):
+
 2020-01-09  Megan Gardner  
 
 Set the title for images so it will be correctly displayed in UIContextMenus


Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h (254292 => 254293)

--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h	2020-01-09 21:10:17 UTC (rev 254292)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h	2020-01-09 21:32:04 UTC (rev 254293)
@@ -277,7 +277,7 @@
 WebCore::ThirdPartyCookieBlockingMode m_thirdPartyCookieBlockingMode { WebCore::ThirdPartyCookieBlockingMode::All };
 bool m_dataRecordsBeingRemoved { false };
 ShouldIncludeLocalhost m_shouldIncludeLocalhost { ShouldIncludeLocalhost::Ye

[webkit-changes] [254239] trunk/Source

2020-01-08 Thread wilander
Title: [254239] trunk/Source








Revision 254239
Author wilan...@apple.com
Date 2020-01-08 17:21:01 -0800 (Wed, 08 Jan 2020)


Log Message
Resource Load Statistics: Flip experimental cookie blocking setting from an enable to a disable
https://bugs.webkit.org/show_bug.cgi?id=205963


Reviewed by Brent Fulgham.

To get default on behavior, experimental features in the network process need to be
turned from enable flags to disable flags. This patch does that for the experimental
cookie blocking flag.

Source/WebCore:

No new tests. This change just reverses the interpretation of a flag.

* page/Settings.yaml:

Source/WebKit:

This change also aligns the init values of the setting to match the default.

* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/NetworkSession.h:
* NetworkProcess/NetworkSessionCreationParameters.h:
* Shared/WebPreferences.yaml:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
trunk/Source/WebKit/Shared/WebPreferences.yaml
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm




Diff

Modified: trunk/Source/WebCore/ChangeLog (254238 => 254239)

--- trunk/Source/WebCore/ChangeLog	2020-01-09 01:18:46 UTC (rev 254238)
+++ trunk/Source/WebCore/ChangeLog	2020-01-09 01:21:01 UTC (rev 254239)
@@ -1,3 +1,19 @@
+2020-01-08  John Wilander  
+
+Resource Load Statistics: Flip experimental cookie blocking setting from an enable to a disable
+https://bugs.webkit.org/show_bug.cgi?id=205963
+
+
+Reviewed by Brent Fulgham.
+
+To get default on behavior, experimental features in the network process need to be
+turned from enable flags to disable flags. This patch does that for the experimental
+cookie blocking flag.
+
+No new tests. This change just reverses the interpretation of a flag.
+
+* page/Settings.yaml:
+
 2020-01-08  Devin Rousso  
 
 Move logic for parsing image-orientation to CSSParserFastPaths


Modified: trunk/Source/WebCore/page/Settings.yaml (254238 => 254239)

--- trunk/Source/WebCore/page/Settings.yaml	2020-01-09 01:18:46 UTC (rev 254238)
+++ trunk/Source/WebCore/page/Settings.yaml	2020-01-09 01:21:01 UTC (rev 254239)
@@ -886,8 +886,8 @@
   initial: true
   inspectorOverride: true
 
-isThirdPartyCookieBlockingEnabled:
-  initial: true
+isThirdPartyCookieBlockingDisabled:
+  initial: false
 
 isFirstPartyWebsiteDataRemovalEnabled:
   initial: true


Modified: trunk/Source/WebKit/ChangeLog (254238 => 254239)

--- trunk/Source/WebKit/ChangeLog	2020-01-09 01:18:46 UTC (rev 254238)
+++ trunk/Source/WebKit/ChangeLog	2020-01-09 01:21:01 UTC (rev 254239)
@@ -1,3 +1,26 @@
+2020-01-08  John Wilander  
+
+Resource Load Statistics: Flip experimental cookie blocking setting from an enable to a disable
+https://bugs.webkit.org/show_bug.cgi?id=205963
+
+
+Reviewed by Brent Fulgham.
+
+To get default on behavior, experimental features in the network process need to be
+turned from enable flags to disable flags. This patch does that for the experimental
+cookie blocking flag.
+
+This change also aligns the init values of the setting to match the default.
+
+* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
+* NetworkProcess/NetworkSession.h:
+* NetworkProcess/NetworkSessionCreationParameters.h:
+* Shared/WebPreferences.yaml:
+* UIProcess/WebProcessPool.cpp:
+(WebKit::WebProcessPool::ensureNetworkProcess):
+* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+(WebKit::WebsiteDataStore::parameters):
+
 2020-01-08  Brent Fulgham  
 
 Allow some sysctl-read calls needed by WebRTC


Modified: trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h (254238 => 254239)

--- trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h	2020-01-09 01:18:46 UTC (rev 254238)
+++ trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h	2020-01-09 01:21:01 UTC (rev 254239)
@@ -274,7 +274,7 @@
 const RegistrableDomain m_debugStaticPrevalentResource { URL { URL(), "https://3rdpartytestwebkit.org"_s } };
 bool m_debugLoggingEnabled { false };
 bool m_debugModeEnabled { false };
-WebCore::ThirdPartyCookieBlockingMode m_thirdPartyCookieBlockingMode { WebCore::ThirdPartyCookieBlockingMode::AllOnSitesWithoutUserInteraction };
+WebCore::ThirdPartyCookieBlockingMode m_thirdP

[webkit-changes] [253489] trunk

2019-12-13 Thread wilander
Title: [253489] trunk








Revision 253489
Author wilan...@apple.com
Date 2019-12-13 11:18:37 -0800 (Fri, 13 Dec 2019)


Log Message
IsLoggedIn: Abstract data type for IsLoggedIn state
https://bugs.webkit.org/show_bug.cgi?id=205041


Reviewed by Chris Dumez.

Source/WebCore:

New API tests added.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* page/LoggedInStatus.cpp: Added.
(WebCore::LoggedInStatus::create):
(WebCore::LoggedInStatus::LoggedInStatus):
(WebCore::LoggedInStatus::setTimeToLive):
(WebCore::LoggedInStatus::hasExpired const):
(WebCore::LoggedInStatus::expiry const):
* page/LoggedInStatus.h: Added.
(WebCore::LoggedInStatus::registrableDomain const):
(WebCore::LoggedInStatus::username const):
(WebCore::LoggedInStatus::credentialTokenType const):
(WebCore::LoggedInStatus::authenticationType const):
(WebCore::LoggedInStatus::loggedInTime const):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/LoggedInStatus.cpp: Added.
(TestWebKitAPI::TEST):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Sources.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj


Added Paths

trunk/Source/WebCore/page/LoggedInStatus.cpp
trunk/Source/WebCore/page/LoggedInStatus.h
trunk/Tools/TestWebKitAPI/Tests/WebCore/LoggedInStatus.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (253488 => 253489)

--- trunk/Source/WebCore/ChangeLog	2019-12-13 19:07:51 UTC (rev 253488)
+++ trunk/Source/WebCore/ChangeLog	2019-12-13 19:18:37 UTC (rev 253489)
@@ -1,3 +1,28 @@
+2019-12-13  John Wilander  
+
+IsLoggedIn: Abstract data type for IsLoggedIn state
+https://bugs.webkit.org/show_bug.cgi?id=205041
+
+
+Reviewed by Chris Dumez.
+
+New API tests added.
+
+* Sources.txt:
+* WebCore.xcodeproj/project.pbxproj:
+* page/LoggedInStatus.cpp: Added.
+(WebCore::LoggedInStatus::create):
+(WebCore::LoggedInStatus::LoggedInStatus):
+(WebCore::LoggedInStatus::setTimeToLive):
+(WebCore::LoggedInStatus::hasExpired const):
+(WebCore::LoggedInStatus::expiry const):
+* page/LoggedInStatus.h: Added.
+(WebCore::LoggedInStatus::registrableDomain const):
+(WebCore::LoggedInStatus::username const):
+(WebCore::LoggedInStatus::credentialTokenType const):
+(WebCore::LoggedInStatus::authenticationType const):
+(WebCore::LoggedInStatus::loggedInTime const):
+
 2019-12-13  Per Arne Vollan  
 
 [iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process


Modified: trunk/Source/WebCore/Sources.txt (253488 => 253489)

--- trunk/Source/WebCore/Sources.txt	2019-12-13 19:07:51 UTC (rev 253488)
+++ trunk/Source/WebCore/Sources.txt	2019-12-13 19:18:37 UTC (rev 253489)
@@ -1608,6 +1608,7 @@
 page/History.cpp
 page/IntersectionObserver.cpp
 page/IntersectionObserverEntry.cpp
+page/LoggedInStatus.cpp
 page/Location.cpp
 page/MemoryRelease.cpp
 page/MouseEventWithHitTestResults.cpp


Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (253488 => 253489)

--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2019-12-13 19:07:51 UTC (rev 253488)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2019-12-13 19:18:37 UTC (rev 253489)
@@ -1991,6 +1991,7 @@
 		6B0A07F221FA4B5C00D57391 /* AdClickAttribution.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B0A07F021FA4B5C00D57391 /* AdClickAttribution.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		6B1F48112298A37E00DE8B82 /* CrossSiteNavigationDataTransfer.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B1F480F22989EC400DE8B82 /* CrossSiteNavigationDataTransfer.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		6B3480940EEF50D400AC1B41 /* NativeImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3480920EEF50D400AC1B41 /* NativeImage.h */; settings = {ATTRIBUTES = (Private, ); }; };
+		6B4D412D23983F88002494C2 /* LoggedInStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B4D412B23983F88002494C2 /* LoggedInStatus.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		6B4E8613221B713F0022F389 /* RegistrableDomain.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B4E8612221B713F0022F389 /* RegistrableDomain.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		6B507A24234BF34100BE7C62 /* NavigatorIsLoggedIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B507A21234BF34100BE7C62 /* NavigatorIsLoggedIn.h */; };
 		6B693A2E1C51A82E00B03BEF /* ResourceLoadObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B693A2D1C51A82E00B03BEF /* ResourceLoadObserver.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -9210,6 +9211,8 @@
 		6B0A07F121FA4B5C00D57391 /* AdClickAttribution.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = AdClickAttribution.cpp; sourceTree = ""; }

[webkit-changes] [253185] trunk/Source

2019-12-05 Thread wilander
Title: [253185] trunk/Source








Revision 253185
Author wilan...@apple.com
Date 2019-12-05 16:26:09 -0800 (Thu, 05 Dec 2019)


Log Message
Resource Load Statistics (experimental): Add fast mode for non-cookie website data deletion
https://bugs.webkit.org/show_bug.cgi?id=204858


Reviewed by Alex Christensen.

Source/WebCore:

This change adds two internal flags:
- "Live-On Testing" with a one hour timeout instead of seven days.
- "Repro Testing" with an instant timeout (bar ITP's regular delays) instead of seven days.

These internal flags should be removed once testing is complete: 

No new tests. This change just adds new opt-in settings for manual testing.

* page/Settings.yaml:
* platform/network/NetworkStorageSession.h:
The FirstPartyWebsiteDataRemovalMode enum now has two new values:
- AllButCookiesLiveOnTestingTimeout
- AllButCookiesReproTestingTimeout

Source/WebKit:

The purpose of this change is to allow for dedicated testing of the change in
https://trac.webkit.org/changeset/253082/webkit. Waiting seven days just isn't a good
starting point.

This change adds two internal flags:
- "Live-On Testing" with a one hour timeout instead of seven days.
- "Repro Testing" with an instant timeout (bar ITP's regular delays) instead of seven days.

The change also makes sure that hasHadUnexpiredRecentUserInteraction() in
ResourceLoadStatisticsDatabaseStore and ResourceLoadStatisticsMemoryStore only
age out the user interaction timestamp if the OperatingDatesWindow is Long so
that we don't age out timestamps early with the shorter OperatingDatesWindows.

This change changes the default value of IsFirstPartyWebsiteDataRemovalEnabled to true.

These internal flags should be removed once testing is complete: 

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::hasHadUnexpiredRecentUserInteraction const):
(WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor const):
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired const):
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setFirstPartyWebsiteDataRemovalMode):
* NetworkProcess/NetworkProcess.messages.in:
* Shared/WebPreferences.yaml:
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebCore/platform/network/NetworkStorageSession.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/Shared/WebPreferences.yaml
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm




Diff

Modified: trunk/Source/WebCore/ChangeLog (253184 => 253185)

--- trunk/Source/WebCore/ChangeLog	2019-12-06 00:01:32 UTC (rev 253184)
+++ trunk/Source/WebCore/ChangeLog	2019-12-06 00:26:09 UTC (rev 253185)
@@ -1,3 +1,25 @@
+2019-12-05  John Wilander  
+
+Resource Load Statistics (experimental): Add fast mode for non-cookie website data deletion
+https://bugs.webkit.org/show_bug.cgi?id=204858
+
+
+Reviewed by Alex Christensen.
+
+This change adds two internal flags:
+- "Live-On Testing" with a one hour timeout instead of seven days.
+- "Repro Testing" with an instant timeout (bar ITP's regular delays) instead of seven days.
+
+These internal flags should be removed once testing is complete: 
+
+No new tests. This change just adds new opt-in settings for manual testing.
+
+* page/Settings.yaml:
+* platform/network/NetworkStorageSession.h:
+The FirstPartyWebsiteDataRemovalMode enum now has two new values:
+- AllButCookiesLiveOnTestingTimeout
+- AllButCookiesReproTestingTimeout
+
 2019-12-05  Chris Dumez  
 
 PageConfiguration::dragClient should use a smart pointer


Modified: trunk/Source/WebCore/page/Settings.yaml (253184 => 253185)

--- trunk/Source/WebCore/page/Settings.yaml	2019-12-06 00:01:32 UTC (rev 253184)
+++ trunk/Source/WebCore/page/Settings.yaml	2019-12-06 00:26:09 UTC (rev 253185)
@@ -887,8 +887,14 @@
   initial: true
 
 isFirstPartyWebsiteDataRemovalEnabled

[webkit-changes] [253082] trunk

2019-12-03 Thread wilander
:

LayoutTests:

* http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database.html:
* http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
Fixed some minor stuff in these two test cases to make any failures more clear.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-database-expected.txt: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-database.html: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-expected.txt: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-database-expected.txt: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-database.html: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-expected.txt: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebCore/platform/network/NetworkStorageSession.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSession.h
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
trunk/Source/WebKit/Scripts/webkit/messages.py
trunk/Source/WebKit/Shared/WebPreferences.yaml
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp
trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestController.h
trunk/Tools/WebKitTestRunner/TestInvocation.cpp
trunk/Tools/WebKitTestRunner/TestInvocation.h


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-with-user-interaction.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-without-user-interaction.html




Diff

Modified: trunk/LayoutTests/ChangeLog (253081 => 253082)

--- trunk/LayoutTests/ChangeLog	2019-12-04 02:36:54 UTC (rev 253081)
+++ trunk/LayoutTests/ChangeLog	2019-12-04 02:41:49 UTC (rev 253082)
@@ -1,3 +1,23 @@
+2019-12-03  John Wilander  
+
+Resource Load Statistics (experimental): Delete non-cookie website data after 7 days of no user interaction
+https://bugs.webkit.org/show_bug.cgi?id=204

[webkit-changes] [252641] trunk

2019-11-19 Thread wilander
 between test runs.
* http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
Removed the lastSeen output since it may differ between test runs.
* http/tests/resourceLoadStatistics/resources/dummy.js: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database-expected.txt:
Removed the lastSeen output since it may differ between test runs.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:
Removed the lastSeen output since it may differ between test runs.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/FrameLoader.cpp
trunk/Source/WebCore/loader/ResourceLoadObserver.h
trunk/Source/WebCore/loader/ResourceLoadStatistics.cpp
trunk/Source/WebCore/loader/ResourceLoadStatistics.h
trunk/Source/WebCore/loader/SubresourceLoader.cpp
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.h


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/count-third-party-script-loads-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/count-third-party-script-loads.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/dummy.js




Diff

Modified: trunk/LayoutTests/ChangeLog (252640 => 252641)

--- trunk/LayoutTests/ChangeLog	2019-11-19 20:00:28 UTC (rev 252640)
+++ trunk/LayoutTests/ChangeLog	2019-11-19 20:35:21 UTC (rev 252641)
@@ -1,3 +1,33 @@
+2019-11-19  John Wilander  
+
+Resource Load Statistics: Count third-party script loads under top frame
+https://bugs.webkit.org/show_bug.cgi?id=204262
+
+
+Reviewed by Alex Christensen.
+
+* http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html: Added.
+* http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt: Added.
+* http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html: Added.
+* http/tests/resourceLoadStatistics/count-third-party-script-loads-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html: Added.
+* http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt: Added.
+* http/tests/resourceLoadStatistics/count-third-party-script-loads.html: Added.
+* http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html: Added.
+* http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt: Added.
+* http/tests/resourceLoadStatistics/dont-count-third-party-image

[webkit-changes] [252623] trunk

2019-11-18 Thread wilander
Title: [252623] trunk








Revision 252623
Author wilan...@apple.com
Date 2019-11-18 22:30:46 -0800 (Mon, 18 Nov 2019)


Log Message
Check if ITP is on before applying third-party cookie blocking
https://bugs.webkit.org/show_bug.cgi?id=204322


Reviewed by Chris Dumez and Alexey Proskuryakov.

Source/WebCore:

This change makes sure WebCore::NetworkStorageSession knows
whether ITP is on or off and checks that first thing in
WebCore::NetworkStorageSession::shouldBlockCookies().

This check was never needed before since if ITP was off,
there would be no classified domains and thus the function
would always return false. However,
https://trac.webkit.org/changeset/251353/webkit introduced
full third-party cookie blocking for websites without user
interaction and that rule is checked before checking domain
classification. The effect was unconditional third-party
cookie blocking if ITP is off. This changes fixes that bug.

Note that this patch already landed as branch-specific in
https://trac.webkit.org/changeset/252549/webkit

Test: http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html

* platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::shouldBlockThirdPartyCookies const):
(WebCore::NetworkStorageSession::shouldBlockThirdPartyCookiesButKeepFirstPartyCookiesFor const):
(WebCore::NetworkStorageSession::shouldBlockCookies const):
Now checks whether ITP is on or off.
* platform/network/NetworkStorageSession.h:
(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled):

Source/WebKit:

This change makes sure WebCore::NetworkStorageSession knows
whether ITP is on or off and checks that first thing in
WebCore::NetworkStorageSession::shouldBlockCookies().

This check was never needed before since if ITP was off,
there would be no classified domains and thus the function
would always return false. However,
https://trac.webkit.org/changeset/251353/webkit introduced
full third-party cookie blocking for websites without user
interaction and that rule is checked before checking domain
classification. The effect was unconditional third-party
cookie blocking if ITP is off. This changes fixes that bug.

Note that this patch already landed as branch-specific in
https://trac.webkit.org/changeset/252549/webkit

* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
Now tells WebCore::NetworkStorageSession the status of
ITP.

Tools:

This is test infrastructure to allow a layout test to
disable ITP in the network process.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsEnabled):
(WTR::TestRunner::setStatisticsDebugMode):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsEnabled):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

* http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off-expected.txt: Added.
* http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/network/NetworkStorageSession.cpp
trunk/Source/WebCore/platform/network/NetworkStorageSession.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Tools/ChangeLog
trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
trunk/Tools/WebKitTestRunner/TestController.cpp
trunk/Tools/WebKitTestRunner/TestController.h
trunk/Tools/WebKitTestRunner/TestInvocation.cpp


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html




Diff

Modified: trunk/LayoutTests/ChangeLog (252622 => 252623)

--- trunk/LayoutTests/ChangeLog	2019-11-19 03:38:09 UTC (rev 252622)
+++ trunk/LayoutTests/ChangeLog	2019-11-19 06:30:46 UTC (rev 252623)
@@ -1,3 +1,14 @@
+2019-11-18  John Wilander  
+
+Check if ITP is on before applying third-party cookie blocking
+https://bugs.webkit.org/show_bug.cgi?id=204322
+
+
+Reviewed by Chris Dumez and Alexey Proskuryakov.
+
+* http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off-expected.txt: Added.
+* http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html: Added.
+
 2019-11-18  Simon Fraser  
 
 -webkit-font-smoothing: none leaves subsequent elements unantialiased


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/no-third-party-cookie-block

[webkit-changes] [252116] trunk

2019-11-05 Thread wilander
Title: [252116] trunk








Revision 252116
Author wilan...@apple.com
Date 2019-11-05 17:38:59 -0800 (Tue, 05 Nov 2019)


Log Message
Temporarily turn off NSURLSession isolation
https://bugs.webkit.org/show_bug.cgi?id=201822

Reviewed by Chris Dumez.

Source/WebKit:

Existing tests skipped.

Re-enabling it is tracked in rdar://problem/56921584.

* NetworkProcess/cache/NetworkCacheStorage.h:
Bumps the version to force a clean cache.
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
Skips setting needsIsolatedSession.

LayoutTests:

Re-enabling it is tracked in rdar://problem/56921584.

* platform/wk2/TestExpectations:
Skipped the associated tests.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/wk2/TestExpectations
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.h
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm




Diff

Modified: trunk/LayoutTests/ChangeLog (252115 => 252116)

--- trunk/LayoutTests/ChangeLog	2019-11-06 01:30:41 UTC (rev 252115)
+++ trunk/LayoutTests/ChangeLog	2019-11-06 01:38:59 UTC (rev 252116)
@@ -1,3 +1,15 @@
+2019-11-05  John Wilander  
+
+Temporarily turn off NSURLSession isolation
+https://bugs.webkit.org/show_bug.cgi?id=201822
+
+Reviewed by Chris Dumez.
+
+Re-enabling it is tracked in rdar://problem/56921584.
+
+* platform/wk2/TestExpectations:
+Skipped the associated tests.
+
 2019-11-05  Oriol Brufau  
 
 [css-lists] Implement list-style-type: 


Modified: trunk/LayoutTests/platform/wk2/TestExpectations (252115 => 252116)

--- trunk/LayoutTests/platform/wk2/TestExpectations	2019-11-06 01:30:41 UTC (rev 252115)
+++ trunk/LayoutTests/platform/wk2/TestExpectations	2019-11-06 01:38:59 UTC (rev 252116)
@@ -746,6 +746,10 @@
 http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html [ Skip ]
 http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html [ Skip ]
 
+# rdar://problem/56921584
+http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.php [ Skip ]
+http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.php [ Skip ]
+
 # This feature is currently disabled by default and unfinished .
 http/tests/navigation/process-swap-window-open.html [ Skip ]
 


Modified: trunk/Source/WebKit/ChangeLog (252115 => 252116)

--- trunk/Source/WebKit/ChangeLog	2019-11-06 01:30:41 UTC (rev 252115)
+++ trunk/Source/WebKit/ChangeLog	2019-11-06 01:38:59 UTC (rev 252116)
@@ -1,3 +1,20 @@
+2019-11-05  John Wilander  
+
+Temporarily turn off NSURLSession isolation
+https://bugs.webkit.org/show_bug.cgi?id=201822
+
+Reviewed by Chris Dumez.
+
+Existing tests skipped.
+
+Re-enabling it is tracked in rdar://problem/56921584.
+
+* NetworkProcess/cache/NetworkCacheStorage.h:
+Bumps the version to force a clean cache.
+* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
+Skips setting needsIsolatedSession.
+
 2019-11-05  Per Arne Vollan  
 
 Eliminate mach lookup to cfprefsd on process startup


Modified: trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.h (252115 => 252116)

--- trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.h	2019-11-06 01:30:41 UTC (rev 252115)
+++ trunk/Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.h	2019-11-06 01:38:59 UTC (rev 252116)
@@ -107,7 +107,7 @@
 size_t approximateSize() const;
 
 // Incrementing this number will delete all existing cache content for everyone. Do you really need to do it?
-static const unsigned version = 14;
+static const unsigned version = 15;
 #if PLATFORM(MAC)
 /// Allow the last stable version of the cache to co-exist with the latest development one.
 static const unsigned lastStableVersion = 13;


Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (252115 => 252116)

--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2019-11-06 01:30:41 UTC (rev 252115)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2019-11-06 01:38:59 UTC (rev 252116)
@@ -213,7 +213,7 @@
 if (auto* networkStorageSession = session.networkStorageSession()) {
 if (!shouldBlockCookies)
 shouldBlockCookies = networkStorageSession->shouldBlockCookies(request, frameID, pageID);
-needsIsolatedSession = networkStorageSession->shouldBlockThirdPartyCookiesButKeepFirstPartyCookiesFor(firstParty);
+// FIXME:  needsIsolatedSession should be set here.
 }
 #endif
 restrictRequestReferrerToOriginIfNeeded(request);






___
webkit-changes mailing list
webkit-changes@l

[webkit-changes] [252014] trunk

2019-11-04 Thread wilander
Title: [252014] trunk








Revision 252014
Author wilan...@apple.com
Date 2019-11-04 14:13:40 -0800 (Mon, 04 Nov 2019)


Log Message
Resource Load Statistics: Flush the shared ResourceLoadObserver when the webpage is closed by _javascript_
https://bugs.webkit.org/show_bug.cgi?id=203623


Reviewed by Alex Christensen.

Source/WebCore:

New API test added.

* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::shared):
Now returns its own empty observer if no shared one has been set.
* loader/ResourceLoadObserver.h:
(WebCore::ResourceLoadObserver::logSubresourceLoadingForTesting):
Test function to seed the web process' observer.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::close):
Now flushes the shared observer.

Source/WebKit:

This patch adds flushing of pending statistics when a window is closed by _javascript_,
when a webpage is removed from the web process, and when the web process prepares to
suspend.

New API test added.

* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
Now calls logTestingEvent() so that the test infrastructure can wait for updates.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _seedResourceLoadStatisticsForTestingWithFirstParty:thirdParty:shouldScheduleNotification:completionHandler:]):
Test infrastructure to seed every web process' WebCore::ResourceLoadObserver with test data.
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _clearResourceLoadStatistics:]):
(-[WKWebsiteDataStore _isRegisteredAsSubresourceUnderFirstParty:thirdParty:completionHandler:]):
Test infrastructure.
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::seedResourceLoadStatisticsForTesting):
Test infrastructure.
* UIProcess/WebProcessPool.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::isRegisteredAsSubresourceUnder):
Made sure the completion handler is called even if there is no network process.
(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
Now tells all web processes to turn ITP on or off.
* WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
(WebKit::WebResourceLoadObserver::~WebResourceLoadObserver):
(WebKit::WebResourceLoadObserver::logSubresourceLoadingForTesting):
Test infrastructure to seed the observer with test data.
* WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setWebsiteDataStoreParameters):
Now checks whether a shared observer already exists before setting one.
(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::prepareToSuspend):
These two functions now call WebProcess::flushResourceLoadStatistics().
(WebKit::WebProcess::setResourceLoadStatisticsEnabled):
This function now sets the process' shared WebCore::ResourceLoadObserver if none exists.
(WebKit::WebProcess::flushResourceLoadStatistics):
This function tells the shared WebCore::ResourceLoadObserver to send any pending
statistics to the central ITP store.
(WebKit::WebProcess::seedResourceLoadStatisticsForTesting):
Test infrastructure to seed the shared observer with test data.
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(TEST):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/ResourceLoadObserver.cpp
trunk/Source/WebCore/loader/ResourceLoadObserver.h
trunk/Source/WebCore/page/DOMWindow.cpp
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPool.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
trunk/Source/WebKit/UIProcess/WebProcessPool.h
trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebResourceLoadObserver.h
trunk/Source/WebKit/WebProcess/WebProcess.cpp
trunk/Source/WebKit/WebProcess/WebProcess.h
trunk/Source/WebKit/WebProcess/WebProcess.messages.in
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm




Diff

Modified: trunk/Source/WebCore/ChangeLog (252013 => 252014)

--- trunk/Source/WebCore/ChangeLog	2019-11-04 21:55:08 UTC (rev 252013)
+++ trunk/Source/WebCore/ChangeLog	2019-11-04 22:13:40 UTC (rev 252014)
@@ -1,3 +1,23 @@
+2019-11-04  John Wilander  
+
+Resource Load Statistics: Flush the shared ResourceLoadObserver when the webpage is closed by _javascript_
+https://bugs.webkit.org/show

[webkit-changes] [251663] trunk

2019-10-28 Thread wilander
ests/http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database.html
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-expected.txt
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-database-expected.txt
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-database.html
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-expected.txt
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie.html




Diff

Modified: trunk/LayoutTests/ChangeLog (251662 => 251663)

--- trunk/LayoutTests/ChangeLog	2019-10-28 18:56:19 UTC (rev 251662)
+++ trunk/LayoutTests/ChangeLog	2019-10-28 19:45:03 UTC (rev 251663)
@@ -1,3 +1,29 @@
+2019-10-28  John Wilander  
+
+Storage Access API: Make the API work with the experimental 3rd-party cookie blocking
+https://bugs.webkit.org/show_bug.cgi?id=203428
+
+
+Reviewed by Alex Christensen.
+
+* http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database-expected.txt: Added.
+* http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database.html: Added.
+* http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-expected.txt: Added.
+* http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking.html: Added.
+* http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database-expected.txt: Added.
+* http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database.html: Added.
+* http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-expected.txt: Added.
+* http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking.html: Added.
+* http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html:
+* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database-expected.txt: Added.
+* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database.html: Added.
+* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-expected.txt: Added.
+* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html: Added.
+* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-database-expected.txt: Added.
+* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-database.html: Added.
+* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-expected.txt: Added.
+* http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie.html: Added.
+
 2019-10-28  Alex Christensen  
 
 Remove flaky debug log from WK1 expectations after r251582


Added: trunk/LayoutTests/http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database-expected.txt (0 => 251663)

--- trunk/LayoutTests/http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database-expected.txt	2019-10-28 19:45:03 UTC (rev 251663)
@@ -0,0 +1,10 @@
+Tests that a cross-site iframe can not request storage access under general third-party cookie blocking if it has not received user interaction as first-party.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Storage access was denied. document.cookie == , cookies seen server-side == "No cookies"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database.html (0 => 251663)

--- trunk/LayoutTests/http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database.html	(rev 0)
+++ trunk/LayoutTests/http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-database.h

[webkit-changes] [251467] trunk

2019-10-22 Thread wilander
Title: [251467] trunk








Revision 251467
Author wilan...@apple.com
Date 2019-10-22 17:54:41 -0700 (Tue, 22 Oct 2019)


Log Message
Resource Load Statistics (experimental): Block all third-party cookies
https://bugs.webkit.org/show_bug.cgi?id=203266


Reviewed by Alex Christensen.

This change updates the experimental change in
 to block all
third-party cookies, regardless of user interaction with
the first-party website.

Source/WebCore:

Tests: http/tests/resourceLoadStatistics/third-party-cookie-blocking-database.html
   http/tests/resourceLoadStatistics/third-party-cookie-blocking.html

* page/Settings.yaml:
* platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::shouldBlockCookies const):
* platform/network/NetworkStorageSession.h:
(WebCore::NetworkStorageSession::setIsThirdPartyCookieBlockingEnabled):
(WebCore::NetworkStorageSession::setIsThirdPartyCookieBlockingOnSitesWithoutUserInteractionEnabled): Deleted.

Source/WebKit:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting):
* NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* NetworkProcess/NetworkSessionCreationParameters.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
* Shared/WebPreferences.yaml:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):

LayoutTests:

* http/tests/resourceLoadStatistics/third-party-cookie-blocking-database-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-expected.txt.
* http/tests/resourceLoadStatistics/third-party-cookie-blocking-database.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html.
* http/tests/resourceLoadStatistics/third-party-cookie-blocking-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt.
* http/tests/resourceLoadStatistics/third-party-cookie-blocking.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebCore/platform/network/NetworkStorageSession.cpp
trunk/Source/WebCore/platform/network/NetworkStorageSession.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
trunk/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
trunk/Source/WebKit/Shared/WebPreferences.yaml
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking.html


Removed Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html




Diff

Modified: trunk/LayoutTests/ChangeLog (251466 => 251467)

--- trunk/LayoutTests/ChangeLog	2019-10-23 00:33:37 UTC (rev 251466)
+++ trunk/LayoutTests/ChangeLog	2019-10-23 00:54:41 UTC (rev 251467)
@@ -1,3 +1,21 @@
+2019-10-22  John Wilander  
+
+Resource Load Statistics (experimental): Block all third-party cookies
+https://bugs.webkit.org/show_bug.cgi?id=203266
+
+
+Reviewed by Alex Christensen.
+
+This change updates the experimental change in
+ to block all
+third-party cookies, regardless of user interaction with
+the first-party website.
+
+* http/tests/resourceLoadStatistics/third-party-cookie-blocking-database-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-expected.txt.
+* http/tests/resourceLoadStatist

[webkit-changes] [251391] trunk

2019-10-21 Thread wilander
Title: [251391] trunk








Revision 251391
Author wilan...@apple.com
Date 2019-10-21 15:33:47 -0700 (Mon, 21 Oct 2019)


Log Message
Resource Load Statistics: Update cookie blocking in NetworkStorageSession after first user interaction
https://bugs.webkit.org/show_bug.cgi?id=203195


Reviewed by Alex Christensen and Chris Dumez.

Source/WebKit:

This change makes sure that the state of cookie blocking in
WebCore:: NetworkStorageSession is immediately updated if the logged
user interaction was new for this domain. It adds a completion
handler to WebResourceLoadStatisticsStore::logUserInteraction() so
that the call properly waits for everything to be updated.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::CompletionHandler

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
trunk/Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (251390 => 251391)

--- trunk/LayoutTests/ChangeLog	2019-10-21 22:31:49 UTC (rev 251390)
+++ trunk/LayoutTests/ChangeLog	2019-10-21 22:33:47 UTC (rev 251391)
@@ -1,3 +1,17 @@
+2019-10-21  John Wilander  
+
+Resource Load Statistics: Update cookie blocking in NetworkStorageSession after first user interaction
+https://bugs.webkit.org/show_bug.cgi?id=203195
+
+
+Reviewed by Alex Christensen and Chris Dumez.
+
+This patch removes the explicit calls to testRunner.statisticsUpdateCookieBlocking() since
+they are no longer needed. This makes sure the changed code is tested.
+
+* http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html:
+* http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html:
+
 2019-10-21  Wenson Hsieh  
 
 Unreviewed, re-enable a couple of passing layout tests


Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html (251390 => 251391)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html	2019-10-21 22:31:49 UTC (rev 251390)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html	2019-10-21 22:33:47 UTC (rev 251391)
@@ -46,10 +46,8 @@
 document.location.hash = "step4";
 // Produce user interaction for the first-party to allow third-party cookie access.
 testRunner.setStatisticsHasHadUserInteraction(partitionOrigin, true, function() {
-testRunner.statisticsUpdateCookieBlocking(function() {
-// Check that the cookie is no longer blocked for localhost under 127.0.0.1.
-openIframe(thirdPartyBaseUrl + subPathToGetCookies +  "&message=After user interaction, should receive first-party cookie.", runTest);
-});
+// Check that the cookie is no longer blocked for localhost under 127.0.0.1.
+openIframe(thirdPartyBaseUrl + subPathToGetCookies +  "&message=After user interaction, should receive first-party cookie.", runTest);
 });
 break;
 case "#step4":


Modified: trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html (251390 => 251391)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html	2019-10-21 22:31:49 UTC (rev 251390)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html	2019-10-21 22:33:47 UTC (rev 251391)
@@ -46,10 +46,8 @@
 document.location.hash = "step4";
 // Produce user interaction for the first-party to allow third-party cookie access.
 testRunner.setStatisticsHasHadUserInteraction(partitionOrigin, true, function() {
-testRunner.statisticsUpdateCookieBlocking(function() {
-// Check that the cookie is no longer blocked

[webkit-changes] [251213] trunk

2019-10-16 Thread wilander
/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html




Diff

Modified: trunk/LayoutTests/ChangeLog (251212 => 251213)

--- trunk/LayoutTests/ChangeLog	2019-10-16 22:16:29 UTC (rev 251212)
+++ trunk/LayoutTests/ChangeLog	2019-10-16 22:38:55 UTC (rev 251213)
@@ -1,3 +1,16 @@
+2019-10-16  John Wilander  
+
+Resource Load Statistics (experimental): Block all third-party cookies on websites without prior user interaction
+https://bugs.webkit.org/show_bug.cgi?id=203017
+
+
+Reviewed by Alex Christensen.
+
+* http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt: Added.
+* http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html: Added.
+* http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-expected.txt: Added.
+* http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html: Added.
+
 2019-10-16  Russell Epstein  
 
 Correct TestExpectations from r251119.


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt (0 => 251213)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt	2019-10-16 22:38:55 UTC (rev 251213)
@@ -0,0 +1,25 @@
+Tests that all third-party cookies are blocked under websites that have not received user interaction.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+  
+
+
+Frame: ''
+
+Before user interaction, should receive no cookies.
+Did not receive cookie named 'firstPartyCookie'.
+Did not receive cookie named 'partitionedCookie'.
+Client-side document.cookie:
+
+
+Frame: ''
+
+After user interaction, should receive first-party cookie.
+Received cookie named 'firstPartyCookie'.
+Did not receive cookie named 'partitionedCookie'.
+Client-side document.cookie: firstPartyCookie=value


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html (0 => 251213)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html	2019-10-16 22:38:55 UTC (rev 251213)
@@ -0,0 +1,78 @@
+
+
+
+
+
+<body>
+<script>
+description("Tests that all third-party cookies are blocked under websites that have not received user interaction.");
+jsTestIsAsync = true;
+
+const partitionHost = "127.0.0.1:8000";
+const partitionOrigin = "http://" + partitionHost;
+const thirdPartyOrigin = "http://localhost:8000";
+const resourcePath = "/resourceLoadStatistics/resources";
+const thirdPartyBaseUrl = thirdPartyOrigin + resourcePath;
+const firstPartyCookieName = "firstPartyCookie";
+const subPathToSetFirstPartyCookie = "/set-cookie.php?name=" + firstPartyCookieName + "&value=value";
+const partitionedCookieName = "partitionedCookie";
+const subPathToSetPartitionedCookie = "/set-cookie.php?name=" + partitionedCookieName + "&value=value";
+const returnUrl = partitionOrigin + "/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html";
+const subPathToGetCookies = "/get-cookies.php?name1=" + firstPartyCookieName + "&name2=" + partitionedCookieName;
+
+function openIframe(url, onLoadHandler) {
+const element = document.createElement("iframe");
+element.src = ""
+if (onLoadHandler) {
+element._onload_ = onLoadHandler;
+}
+document.body.appendChild(element);
+}
+
+function runTest() {
+switch (document.location.hash) {
+case "#step1":
+// Set first-party cookie for localhost.
+document.location.href = "" + subPathToSetFirstPartyCookie + "#" + returnUrl + "#step2";
+break;
+case &

[webkit-changes] [250944] trunk

2019-10-09 Thread wilander
Title: [250944] trunk








Revision 250944
Author wilan...@apple.com
Date 2019-10-09 17:03:47 -0700 (Wed, 09 Oct 2019)


Log Message
IsLoggedIn: Add as experimental feature
https://bugs.webkit.org/show_bug.cgi?id=202707


Reviewed by Brent Fulgham and Chris Dumez.

IsLoggedIn was proposed to the WebAppSec WG at TPAC 2019.
So far there is only an explainer posted to the mailing list:
https://lists.w3.org/Archives/Public/public-webappsec/2019Sep/0004.html

Source/WebCore:

This patch adds the three experimental web APIs:
- Promise setLoggedIn()
- Promise setLoggedOut()
- Promise isLoggedIn()

It also tests that those APIs are only exposed in secure contexts.

The functionality is implemented as a supplement to Navigator.

Tests: http/tests/is-logged-in/available-in-secure-contexts.https.html
   http/tests/is-logged-in/unavailable-in-insecure-contexts.html

* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Headers.cmake:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* page/NavigatorIsLoggedIn.cpp: Added.
(WebCore::NavigatorIsLoggedIn::from):
(WebCore::NavigatorIsLoggedIn::supplementName):
(WebCore::NavigatorIsLoggedIn::setLoggedIn):
(WebCore::NavigatorIsLoggedIn::setLoggedOut):
(WebCore::NavigatorIsLoggedIn::isLoggedIn):
* page/NavigatorIsLoggedIn.h: Added.
* page/NavigatorIsLoggedIn.idl: Added.
* page/PointerCaptureController.cpp:
* page/PointerCaptureController.h:
* page/Settings.yaml:

Source/WebKit:

* Shared/WebPreferences.yaml:

LayoutTests:

* http/tests/is-logged-in/available-in-secure-contexts.https-expected.txt: Added.
* http/tests/is-logged-in/available-in-secure-contexts.https.html: Added.
* http/tests/is-logged-in/unavailable-in-insecure-contexts-expected.txt: Added.
* http/tests/is-logged-in/unavailable-in-insecure-contexts.html: Added.
* platform/ios-device-wk1/TestExpectations:
* platform/ios-simulator-wk1/TestExpectations:
* platform/ios-wk1/TestExpectations:
* platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/mac-wk1/TestExpectations:
* platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/wincairo-wk1/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios-device-wk1/TestExpectations
trunk/LayoutTests/platform/ios-simulator-wk1/TestExpectations
trunk/LayoutTests/platform/ios-wk1/TestExpectations
trunk/LayoutTests/platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.txt
trunk/LayoutTests/platform/mac-wk1/TestExpectations
trunk/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt
trunk/LayoutTests/platform/wincairo-wk1/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources-input.xcfilelist
trunk/Source/WebCore/DerivedSources-output.xcfilelist
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/Headers.cmake
trunk/Source/WebCore/Sources.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/page/PointerCaptureController.cpp
trunk/Source/WebCore/page/PointerCaptureController.h
trunk/Source/WebCore/page/Settings.yaml
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Shared/WebPreferences.yaml


Added Paths

trunk/LayoutTests/http/tests/is-logged-in/
trunk/LayoutTests/http/tests/is-logged-in/available-in-secure-contexts.https-expected.txt
trunk/LayoutTests/http/tests/is-logged-in/available-in-secure-contexts.https.html
trunk/LayoutTests/http/tests/is-logged-in/unavailable-in-insecure-contexts-expected.txt
trunk/LayoutTests/http/tests/is-logged-in/unavailable-in-insecure-contexts.html
trunk/Source/WebCore/page/NavigatorIsLoggedIn.cpp
trunk/Source/WebCore/page/NavigatorIsLoggedIn.h
trunk/Source/WebCore/page/NavigatorIsLoggedIn.idl




Diff

Modified: trunk/LayoutTests/ChangeLog (250943 => 250944)

--- trunk/LayoutTests/ChangeLog	2019-10-09 23:50:03 UTC (rev 250943)
+++ trunk/LayoutTests/ChangeLog	2019-10-10 00:03:47 UTC (rev 250944)
@@ -1,3 +1,27 @@
+2019-10-09  John Wilander  
+
+IsLoggedIn: Add as experimental feature
+https://bugs.webkit.org/show_bug.cgi?id=202707
+
+
+Reviewed by Brent Fulgham and Chris Dumez.
+
+IsLoggedIn was proposed to the WebAppSec WG at TPAC 2019.
+So far there is only an explainer posted to the mailing list:
+https://lists.w3.org/Archives/Public/public-webappsec/2019Sep/0004.html
+
+* http/tests/is-logged-in/available-in-secure-contexts.https-expected.txt: Added.
+* http/tests/is-logged-in/available-in-secure-contexts.https.html: Added.
+* http/tests/is-logged-in/unavailable-in-insecure-contexts-expected.txt: Added.
+* http/tests/is-logged-in/unavailable-in-insecure-contexts.html: Added.
+* platform/ios-device-wk1/TestExpectations:
+* platform/ios-simulator-wk1/TestExpectations:
+* platform/ios-wk1/TestExpectations:
+* platform/mac-highsierra/fast/dom/navigator-detached-no-crash-expected.

[webkit-changes] [250676] trunk

2019-10-03 Thread wilander
/unsafe-url/cross-origin-http-http.html
trunk/LayoutTests/http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http.https.html
trunk/LayoutTests/http/tests/referrer-policy-iframe/unsafe-url/same-origin.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Document.cpp
trunk/Source/WebCore/dom/Document.h


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/downgrade-document-referrer-nested-third-party-iframe-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/downgrade-document-referrer-nested-third-party-iframe.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/downgrade-document-referrer-third-party-iframe-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/downgrade-document-referrer-third-party-iframe.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/leave-empty-document-referrer-alone-third-party-iframe-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/leave-empty-document-referrer-alone-third-party-iframe.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/nest-iframe-report-document-referrer.html
trunk/LayoutTests/http/tests/resourceLoadStatistics/resources/report-document-referrer.html




Diff

Modified: trunk/LayoutTests/ChangeLog (250675 => 250676)

--- trunk/LayoutTests/ChangeLog	2019-10-03 20:49:57 UTC (rev 250675)
+++ trunk/LayoutTests/ChangeLog	2019-10-03 20:50:34 UTC (rev 250676)
@@ -1,3 +1,72 @@
+2019-10-03  John Wilander  
+
+Resource Load Statistics: Downgrade document.referrer for all third-party iframes
+https://bugs.webkit.org/show_bug.cgi?id=202506
+
+
+Reviewed by Brent Fulgham.
+
+The tests that are not new rely on document.referrer and so they are made to turn off
+ITP before they run to maintain a full referrer.
+
+* http/tests/media/media-stream/enumerate-devices-source-id.html:
+* http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http-http.html:
+* http/tests/referrer-policy-iframe/no-referrer-when-downgrade/cross-origin-http.https.html:
+* http/tests/referrer-policy-iframe/no-referrer-when-downgrade/same-origin.html:
+* http/tests/referrer-policy-iframe/no-referrer/cross-origin-http-http.html:
+* http/tests/referrer-policy-iframe/no-referrer/cross-origin-http.https.html:
+* http/tests/referrer-policy-iframe/no-referrer/same-origin.html:
+* http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http-http.html:
+* http/tests/referrer-policy-iframe/origin-when-cross-origin/cross-origin-http.https.html:
+* http/tests/referrer-policy-iframe/origin-when-cross-origin/same-origin.html:
+* http/tests/referrer-policy-iframe/origin/cross-origin-http-http.html:
+* http/tests/referrer-policy-iframe/origin/cross-origin-http.https.html:
+* http/tests/referrer-policy-iframe/origin/same-origin.html:
+* http/tests/referrer-policy-iframe/same-origin/cross-origin-http-http.html:
+* http/tests/referrer-policy-iframe/same-origin/cross-origin-http.https.html:
+* http/tests/referrer-policy-iframe/same-origin/same-origin.html:
+* http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http-http.html:
+* http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/cross-origin-http.https.html:
+* http/tests/referrer-policy-iframe/strict-origin-when-cross-origin/same-origin.html:
+* http/tests/referrer-policy-iframe/strict-origin/cross-origin-http-http.html:
+* http/tests/referrer-policy-iframe/strict-origin/cross-origin-http.https.html:
+* http/tests/referrer-policy-iframe/strict-origin/same-origin.html:
+* http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http-http.html:
+* http/tests/referrer-policy-iframe/unsafe-url/cross-origin-http.https.html:
+* http/tests/referrer-policy-iframe/unsafe-url/same-origin.html:
+* http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http-http.html:
+* http/tests/referrer-policy/no-referrer-when-downgrade/cross-origin-http.https.html:
+* http/tests/referrer-policy/no-referrer-when-downgrade/same-origin.html:
+* http/tests/referrer-policy/no-referrer/cross-origin-http-http.html:
+* http/tests/referrer-policy/no-referrer/cross-origin-http.https.html:
+* http/tests/referrer-policy/no-referrer/same-origin.html:
+* http/tests/referrer-policy/origin-when-cross-origin/cross-origin-http-http.html:
+* http/tests/referrer-policy/origin-when-cross-origin/cross-origin-http.https.html:
+* http/tests/referrer-policy/origin-when-cross-origin/same-origin.html:
+* http/tests/referrer-policy/origin/cross-origin-http-http.html:
+* http/tests/referrer-policy/origin/cross-origin-http.https.html:
+* http/tests/referrer-policy/origin/same-origin.html:
+* http/te

[webkit-changes] [250589] trunk

2019-10-01 Thread wilander
s/storageAccess/has-storage-access-false-by-default-ephemeral.html
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-expected.txt
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-expected.txt
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html


Removed Paths

trunk/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html




Diff

Modified: trunk/LayoutTests/ChangeLog (250588 => 250589)

--- trunk/LayoutTests/ChangeLog	2019-10-02 00:06:58 UTC (rev 250588)
+++ trunk/LayoutTests/ChangeLog	2019-10-02 01:18:48 UTC (rev 250589)
@@ -1,3 +1,28 @@
+2019-10-01  John Wilander  
+
+Storage Access API: document.hasStorageAccess() should return true when the cookie policy allows access
+https://bugs.webkit.org/show_bug.cgi?id=202435
+
+
+Reviewed by Brent Fulgham.
+
+WebKit's Storage Access API implementation has so far only looked at whether ITP is
+blocking cookie access or not. However, the default cookie policy is still in
+effect underneath ITP. document.hasStorageAccess() should return true if the
+third-party:
+a) is not classified by ITP, and
+b) has cookies which implies it can use cookies as third-party according to the
+default cookie policy.
+
+* http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-expected.txt: Added.
+* http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html: Copied from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
+* http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-expected.txt: Added.
+* http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html: Copied from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
+* http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-expected.txt: Added.
+* http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html: Renamed from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
+* platform/ios/TestExpectations:
+* platform/mac-wk2/TestExpectations:
+
 2019-10-01  Rob Buis  
 
 [Mac] Layout Test imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location.any.html fails


Added: trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-expected.txt (0 => 250589)

--- trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-expected.txt	2019-10-02 01:18:48 UTC (rev 250589)
@@ -0,0 +1,10 @@
+Tests that document.hasStorageAccess() returns false for a 3rd-party iframe by default (ephemeral session).
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS No storage access. document.cookie == , cookies seen server-side == "No cookies"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Copied: trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html (from rev 250588, trunk/LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html) (0 => 250589)

--- trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html	(rev 0)
+++ trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html	2019-10-02 01:18:48 UTC (rev 250589)
@@ -0,0 +1,36 @@
+
+
+
+
+
+description("Tests that document.hasStorageAccess() returns false for a 3rd-party iframe by default (ephemeral session).");
+jsTestIsAsync = true;
+
+window.addEventListener("message", receiveMessage, false);
+
+function receiveMessage(event) {
+if (event.origin === "http://localhost:8000") {
+if (event.data.indexOf("PASS") !== -1)
+testPassed(event.data.replace("PASS ", ""));
+else
+testFailed(event.data.replace("FAIL ", ""));
+} else
+testFailed("Received a message from an unexpected origin: " + event.origin);
+finishJSTest();
+}
+
+const hostUnderTest = "localhost:8000";
+const statisticsUrl = "http://" + hostUnderTest + "/temp";
+function runTest() {
+let iframeElement = document.crea

[webkit-changes] [250431] trunk

2019-09-27 Thread wilander
Title: [250431] trunk








Revision 250431
Author wilan...@apple.com
Date 2019-09-27 10:14:20 -0700 (Fri, 27 Sep 2019)


Log Message
Storage Access API: document.hasStorageAccess() should return false by default
https://bugs.webkit.org/show_bug.cgi?id=202281


Reviewed by Alex Christensen.

document.hasStorageAccess() should return false by default so that it only
returns true if the context has asked for and been granted storage access.

Source/WebKit:

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess):
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):

LayoutTests:

* http/tests/storageAccess/has-storage-access-false-by-default-expected.txt: Added.
* http/tests/storageAccess/has-storage-access-false-by-default.html: Added.
* platform/ios/TestExpectations:
The new test is marked as [ Pass ].
* platform/mac-wk2/TestExpectations:
The new test is marked as [ Pass ].

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios/TestExpectations
trunk/LayoutTests/platform/mac-wk2/TestExpectations
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp
trunk/Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp


Added Paths

trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-expected.txt
trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default.html




Diff

Modified: trunk/LayoutTests/ChangeLog (250430 => 250431)

--- trunk/LayoutTests/ChangeLog	2019-09-27 16:56:58 UTC (rev 250430)
+++ trunk/LayoutTests/ChangeLog	2019-09-27 17:14:20 UTC (rev 250431)
@@ -1,3 +1,21 @@
+2019-09-27  John Wilander  
+
+Storage Access API: document.hasStorageAccess() should return false by default
+https://bugs.webkit.org/show_bug.cgi?id=202281
+
+
+Reviewed by Alex Christensen.
+
+document.hasStorageAccess() should return false by default so that it only
+returns true if the context has asked for and been granted storage access.
+
+* http/tests/storageAccess/has-storage-access-false-by-default-expected.txt: Added.
+* http/tests/storageAccess/has-storage-access-false-by-default.html: Added.
+* platform/ios/TestExpectations:
+The new test is marked as [ Pass ].
+* platform/mac-wk2/TestExpectations:
+The new test is marked as [ Pass ].
+
 2019-09-27  Chris Dumez  
 
 IDBRequest should not prevent a page from entering the back/forward cache


Added: trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-expected.txt (0 => 250431)

--- trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default-expected.txt	2019-09-27 17:14:20 UTC (rev 250431)
@@ -0,0 +1,10 @@
+Tests that document.hasStorageAccess() returns false for a 3rd-party iframe by default.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS No storage access. document.cookie == , cookies seen server-side == "No cookies"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default.html (0 => 250431)

--- trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default.html	(rev 0)
+++ trunk/LayoutTests/http/tests/storageAccess/has-storage-access-false-by-default.html	2019-09-27 17:14:20 UTC (rev 250431)
@@ -0,0 +1,37 @@
+
+
+
+
+description("Tests that document.hasStorageAccess() returns false for a 3rd-party iframe by default.");
+jsTestIsAsync = true;
+
+window.addEventListener("message", receiveMessage, false);
+
+function receiveMessage(event) {
+if (event.origin === "http://localhost:8000") {
+if (event.data.indexOf("PASS") !== -1)
+testPassed(event.data.replace("PASS ", ""));
+else
+testFailed(event.data.replace("FAIL ", ""));
+} else
+testFailed("Received a message from an unexpected origin: " + event.origin);
+setEnableFeature(false, finishJSTest);
+}
+
+const hostUnderTest = "localhost:8000";
+const statisticsUrl = "http://" + hostUnderTest + "/temp";
+function runTest() {
+setEnableFeature(true, function() {
+let iframeElement = document.createElement("iframe");
+iframeElement.id = "TheIframeThatRequests

[webkit-changes] [248803] trunk/Tools

2019-08-16 Thread wilander
Title: [248803] trunk/Tools








Revision 248803
Author wilan...@apple.com
Date 2019-08-16 16:51:21 -0700 (Fri, 16 Aug 2019)


Log Message
Add John Wilander as WebKit Reviewer
https://bugs.webkit.org/show_bug.cgi?id=200837

Unreviewed update to contributors.json to change my status to reviewer.
See email on reviewers mailing list for proof of granted privileges.


* Scripts/webkitpy/common/config/contributors.json:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/common/config/contributors.json




Diff

Modified: trunk/Tools/ChangeLog (248802 => 248803)

--- trunk/Tools/ChangeLog	2019-08-16 23:49:27 UTC (rev 248802)
+++ trunk/Tools/ChangeLog	2019-08-16 23:51:21 UTC (rev 248803)
@@ -1,3 +1,13 @@
+2019-08-16  John Wilander  
+
+Add John Wilander as WebKit Reviewer
+https://bugs.webkit.org/show_bug.cgi?id=200837
+
+Unreviewed update to contributors.json to change my status to reviewer.
+See email on reviewers mailing list for proof of granted privileges.
+
+* Scripts/webkitpy/common/config/contributors.json:
+
 2019-08-16  Timothy Hatcher  
 
 REGRESSION (r248436): WKWebView doesn’t respect isOpaque setting in NIB.


Modified: trunk/Tools/Scripts/webkitpy/common/config/contributors.json (248802 => 248803)

--- trunk/Tools/Scripts/webkitpy/common/config/contributors.json	2019-08-16 23:49:27 UTC (rev 248802)
+++ trunk/Tools/Scripts/webkitpy/common/config/contributors.json	2019-08-16 23:51:21 UTC (rev 248803)
@@ -2896,7 +2896,7 @@
   "nicks" : [
  "johnwilander"
   ],
-  "status" : "committer"
+  "status" : "reviewer"
},
"Johnny Ding" : {
   "emails" : [






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [248640] trunk

2019-08-13 Thread wilander
-- trunk/LayoutTests/ChangeLog	2019-08-13 22:30:44 UTC (rev 248639)
+++ trunk/LayoutTests/ChangeLog	2019-08-13 22:34:29 UTC (rev 248640)
@@ -1,3 +1,16 @@
+2019-08-13  John Wilander  
+
+Resource Load Statistics: Switch NSURLSession on top navigation to prevalent resource with user interaction
+https://bugs.webkit.org/show_bug.cgi?id=200642
+
+
+Reviewed by Alex Christensen.
+
+* http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-expected.txt: Added.
+* http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html: Added.
+* http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-expected.txt: Added.
+* http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.html: Added.
+
 2019-08-13  Ryan Haddad  
 
 [WebAuthN] Enable LocalAuthenticator for macOS


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-expected.txt (0 => 248640)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-expected.txt	2019-08-13 22:34:29 UTC (rev 248640)
@@ -0,0 +1,12 @@
+Tests that the session is not switched upon top frame navigation to a prevalent resource without user interaction.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Should have and has the session cookie.
+PASS Should have and has the persistent cookie.
+PASS Origin has no isolated session.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html (0 => 248640)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html	2019-08-13 22:34:29 UTC (rev 248640)
@@ -0,0 +1,108 @@
+
+
+
+
+
+<body _onload_="runTest()">
+<script>
+description("Tests that the session is not switched upon top frame navigation to a prevalent resource without user interaction.");
+jsTestIsAsync = true;
+
+const prevalentOrigin = "http://127.0.0.1:8000";
+const nonPrevalentOrigin = "http://localhost:8000";
+const sessionCookieName = "sessionCookie";
+const persistentCookieName = "persistentCookie";
+const twoMinutesInSeconds = 120;
+
+function setSessionCookie() {
+document.cookie = sessionCookieName + "=1; path=/";
+}
+
+function setPersistentCookie() {
+document.cookie = persistentCookieName + "=1; path=/; Max-Age=" + twoMinutesInSeconds + ";";
+}
+
+function checkCookies(shouldHaveSessionCookie, shouldHavePersistentCookie) {
+let hasSessionCookie = (document.cookie + "").includes(sessionCookieName),
+hasPersistentCookie = (document.cookie + "").includes(persistentCookieName);
+
+if (shouldHaveSessionCookie && hasSessionCookie)
+testPassed("Should have and has the session cookie.");
+else if (shouldHaveSessionCookie && !hasSessionCookie) {
+testFailed("Should have but doesn't have the session cookie.");
+setEnableFeature(false, finishJSTest);
+} else if (!shouldHaveSessionCookie && hasSessionCookie) {
+testFailed("Shouldn't have but has the session cookie.");
+setEnableFeature(false, finishJSTest);
+} else
+testPassed("Shouldn't have and doesn't have the session cookie.");
+
+
+if (shouldHavePersistentCookie && hasPersistentCookie)
+testPassed("Should have and has the persistent cookie.");
+else if (shouldHavePersistentCookie && !hasPersistentCookie) {
+testFailed("Should have but doesn't have the persistent cookie.");
+setEnableFeature(false, finishJSTest);
+} else if (!shouldHavePersistentCookie && hasPersistentCookie) {
+testFailed("Shouldn't have but has the persistent cookie.");
+setEnableFeature(false, finishJSTest);
+} else
+testPassed("Shouldn't have and doesn't have the persistent cookie.");
+}
+
+function runTest() {
+   

[webkit-changes] [248273] trunk

2019-08-05 Thread wilander
Title: [248273] trunk








Revision 248273
Author wilan...@apple.com
Date 2019-08-05 14:33:51 -0700 (Mon, 05 Aug 2019)


Log Message
Resource Load Statistics: Re-introduce latch mode for subresource cookie blocking
https://bugs.webkit.org/show_bug.cgi?id=200395


Reviewed by Darin Adler.

Back when we had a relaxation of cookie blocking 24 hours after first-party user
interaction, we made sure cookie blocking could be turned on and off in subresource
redirect chains. The 24 hour window is now long gone. This patch simplifies the
cookie blocking so that once a subresource request is denied cookies, any
subsequent redirect of that request will also be denied cookies, regardless of the
classification status of the domains involved. I call it latch mode.

Source/WebKit:

* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::blockCookies):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): Deleted.

LayoutTests:

* http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt.
* http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html.
Changed to expect no removal of blocking in the redirect and renamed accordingly.
* platform/ios/TestExpectations:
Renamed.
* platform/mac-wk2/TestExpectations:
Renamed.
* platform/wk2/TestExpectations:
Renamed.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios/TestExpectations
trunk/LayoutTests/platform/mac-wk2/TestExpectations
trunk/LayoutTests/platform/wk2/TestExpectations
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm


Added Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect.html


Removed Paths

trunk/LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt
trunk/LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html




Diff

Modified: trunk/LayoutTests/ChangeLog (248272 => 248273)

--- trunk/LayoutTests/ChangeLog	2019-08-05 21:24:52 UTC (rev 248272)
+++ trunk/LayoutTests/ChangeLog	2019-08-05 21:33:51 UTC (rev 248273)
@@ -1,3 +1,28 @@
+2019-08-05  John Wilander  
+
+Resource Load Statistics: Re-introduce latch mode for subresource cookie blocking
+https://bugs.webkit.org/show_bug.cgi?id=200395
+
+
+Reviewed by Darin Adler.
+
+Back when we had a relaxation of cookie blocking 24 hours after first-party user
+interaction, we made sure cookie blocking could be turned on and off in subresource
+redirect chains. The 24 hour window is now long gone. This patch simplifies the
+cookie blocking so that once a subresource request is denied cookies, any
+subsequent redirect of that request will also be denied cookies, regardless of the
+classification status of the domains involved. I call it latch mode.
+
+* http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt.
+* http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html.
+Changed to expect no removal of blocking in the redirect and renamed accordingly.
+* platform/ios/TestExpectations:
+Renamed.
+* platform/mac-wk2/TestExpectations:
+Renamed.
+* platform/wk2/TestExpectations:
+Renamed.
+
 2019-08-05  Youenn Fablet  
 
 Disable speculative loading if cache is not to be used for the load


Copied: trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-expected.txt (from rev 248272, trunk/LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt) (0 => 248273)

--- trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-expected.txt	2019-08-05 21:33:51 UTC (rev 248273)
@@ -0,0 +1,51 @@
+Tests that blocking is not removed mid-flight in redirects.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+  
+
+
+Frame: '&#

  1   2   3   >