)]}' { "commit": "9906cd4a18dbaf7bc4e4f84d74b7b3aa6c756f5f", "tree": "c0b6685c5f9a6a3d7bebb25018762598a2ef3021", "parents": [ "e0f5f32b82f576e50c4ce4b81eede6e14ad0d44f" ], "author": { "name": "katherine_cheney@apple.com", "email": "katherine_cheney@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc", "time": "Fri Feb 14 03:41:06 2020 +0000" }, "committer": { "name": "katherine_cheney@apple.com", "email": "katherine_cheney@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc", "time": "Fri Feb 14 03:41:06 2020 +0000" }, "message": "Source/WebCore:\nExpose prevalent domains on a per-page basis\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d207523\n\u003crdar://problem/59270758\u003e\n\nReviewed by Chris Dumez.\n\nTests: http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html\n http/tests/resourceLoadStatistics/prevalent-domains-per-page.html\n\nLogs subresource loads in CachedResourceLoader::requestResource, and\nredirects in ResourceLoader::willSendRequestInternal,\nand reports domains to the Web Process.\n\n* loader/FrameLoaderClient.h:\n* loader/cache/CachedResourceLoader.cpp:\n(WebCore::CachedResourceLoader::requestResource):\n* loader/cache/ResourceLoader.cpp:\n(WebCore::ResourceLoader::willSendRequestInternal):\n\nSource/WebKit:\nExpose prevalent domains on a per-page basis\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d207523\n\u003crdar://problem/59270758\u003e\n\nReviewed by Chris Dumez.\n\nTests: http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html\n http/tests/resourceLoadStatistics/prevalent-domains-per-page.html\n\nAdded an API to report prevalent domains. The Web Process sends all\nnew loads to the Network Process, which determines if the resources are\nprevalent. When the API is queried, the Web Process reports these\ndomains to the UI Process.\n\nThe WebPage keeps a hash set of previously loaded domains to avoid\nspamming IPC with repeat domains.\n\n* NetworkProcess/NetworkConnectionToWebProcess.cpp:\n(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):\n(WebKit::NetworkConnectionToWebProcess::reportSubresourceLoadToDomain):\n* NetworkProcess/NetworkConnectionToWebProcess.h:\n* NetworkProcess/NetworkConnectionToWebProcess.messages.in:\n* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:\n(-[WKWebsiteDataStore _getPrevalentDomainsFor:completionHandler:]):\n(-[WKWebsiteDataStore _clearPrevalentDomainsFor:]):\n* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:\n* UIProcess/WebPageProxy.cpp:\n(WebKit::WebPageProxy::didCommitLoadForFrame):\n* UIProcess/WebPageProxy.h:\n* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:\n(WebKit::WebFrameLoaderClient::addLoadedRegistrableDomain):\n* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:\n* WebProcess/WebPage/WebPage.cpp:\n(WebKit::WebPage::setIsSuspended):\n(WebKit::WebPage::addLoadedRegistrableDomain):\n(WebKit::WebPage::getPrevalentDomains):\n(WebKit::WebPage::clearPrevalentDomains):\n* WebProcess/WebPage/WebPage.h:\n* WebProcess/WebPage/WebPage.messages.in:\n\nTools:\n Expose prevalent domains on a per-page basis\n https://bugs.webkit.org/show_bug.cgi?id\u003d207523\n \u003crdar://problem/59270758\u003e\n\nReviewed by Chris Dumez.\n\nAdded WebKitTestRunner functions so this functionality can be tested.\nclearPrevalentDomains should be called between tests to reset the\nstate.\n\n* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:\n* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:\n(WTR::InjectedBundle::didReceiveMessageToPage):\n* WebKitTestRunner/InjectedBundle/TestRunner.cpp:\n(WTR::TestRunner::getPrevalentDomains):\n(WTR::TestRunner::callDidReceivePrevalentDomainsCallback):\n* WebKitTestRunner/InjectedBundle/TestRunner.h:\n* WebKitTestRunner/TestController.cpp:\n(WTR::TestController::resetStateToConsistentValues):\n(WTR::TestController::getPrevalentDomains):\n(WTR::TestController::clearPrevalentDomains):\n* WebKitTestRunner/TestController.h:\n* WebKitTestRunner/TestInvocation.cpp:\n(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):\n(WTR::TestInvocation::didReceivePrevalentDomains):\n* WebKitTestRunner/TestInvocation.h:\n* WebKitTestRunner/cocoa/TestControllerCocoa.mm:\n(WTR::TestController::getPrevalentDomains):\n(WTR::TestController::clearPrevalentDomains):\n\nLayoutTests:\nExpose prevalent domains on a per-page basis\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d207523\n\u003crdar://problem/59270758\u003e\n\nReviewed by Chris Dumez.\n\nAdded 2 new tests for the resource load statistics database and\nmemory stores. Added a basic iframe that both tests can use to test\nif a resource load from a prevalent domain gets reported properly.\n\n* http/tests/resourceLoadStatistics/prevalent-domains-per-page-database-expected.txt: Added.\n* http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html: Added.\n* http/tests/resourceLoadStatistics/prevalent-domains-per-page-expected.txt: Added.\n* http/tests/resourceLoadStatistics/prevalent-domains-per-page.html: Added.\n* http/tests/resourceLoadStatistics/resources/basic-iframe.html: Added.\n\n\ngit-svn-id: http://svn.webkit.org/repository/webkit/trunk@256583 268f45cc-cd09-0410-ab3c-d52691b4dbfc\n", "tree_diff": [ { "type": "modify", "old_id": "f7f9604ccea38bd76bc0333404504ef49a8f68b4", "old_mode": 33188, "old_path": "LayoutTests/ChangeLog", "new_id": "31868e13f08d575556dda70c2bbc217dea3e223c", "new_mode": 33188, "new_path": "LayoutTests/ChangeLog" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "97e1abbe93a7f0d735b73b3725714f046c4d75eb", "new_mode": 33188, "new_path": "LayoutTests/http/tests/resourceLoadStatistics/prevalent-domains-per-page-database-expected.txt" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "812eaee2347eb6eeb09348ea5157a0f896f07c93", "new_mode": 33188, "new_path": "LayoutTests/http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "97e1abbe93a7f0d735b73b3725714f046c4d75eb", "new_mode": 33188, "new_path": "LayoutTests/http/tests/resourceLoadStatistics/prevalent-domains-per-page-expected.txt" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "c18c6fba707a818675eaa8b3d210691e77263e3f", "new_mode": 33188, "new_path": "LayoutTests/http/tests/resourceLoadStatistics/prevalent-domains-per-page.html" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "2655f4e778ae9afa01df35d60c2d87473b4fbc6f", "new_mode": 33188, "new_path": "LayoutTests/http/tests/resourceLoadStatistics/resources/basic-iframe.html" }, { "type": "modify", "old_id": "2e0633cc74d67ae9d9c37225d214c9d6b24d0e7e", "old_mode": 33188, "old_path": "Source/WebCore/ChangeLog", "new_id": "4c2d446d866d4c2c511925ede60253f72d2c3518", "new_mode": 33188, "new_path": "Source/WebCore/ChangeLog" }, { "type": "modify", "old_id": "e9debe1b87f5da1168b3cf9666006551b3be3454", "old_mode": 33188, "old_path": "Source/WebCore/loader/FrameLoaderClient.h", "new_id": "98d02cf9e2aed803089d581e62628f903d6c1481", "new_mode": 33188, "new_path": "Source/WebCore/loader/FrameLoaderClient.h" }, { "type": "modify", "old_id": "a04e3d5ceb8a5bac3ee744a208b7c9a469a0c5fb", "old_mode": 33188, "old_path": "Source/WebCore/loader/ResourceLoader.cpp", "new_id": "7321700e4c173fcaa9187bd6cfc7489801ec695a", "new_mode": 33188, "new_path": "Source/WebCore/loader/ResourceLoader.cpp" }, { "type": "modify", "old_id": "c3d8e35ddf2b215e5ac7e91ba944516daa6082bc", "old_mode": 33188, "old_path": "Source/WebCore/loader/cache/CachedResourceLoader.cpp", "new_id": "d42eab4db45f056f5f2ec840da86fd44d9755804", "new_mode": 33188, "new_path": "Source/WebCore/loader/cache/CachedResourceLoader.cpp" }, { "type": "modify", "old_id": "90aec2536491028cb3bc16f41d860965a97c4c01", "old_mode": 33188, "old_path": "Source/WebCore/platform/RegistrableDomain.h", "new_id": "565e427dde7cce73ded29763bd6a8d0f8bc571f6", "new_mode": 33188, "new_path": "Source/WebCore/platform/RegistrableDomain.h" }, { "type": "modify", "old_id": "3d0aa94e4890c013a6f2f78fb096655c3711bf90", "old_mode": 33188, "old_path": "Source/WebKit/ChangeLog", "new_id": "fb2badeb3b06456bf6102e9a83f4ef2285d1f846", "new_mode": 33188, "new_path": "Source/WebKit/ChangeLog" }, { "type": "modify", "old_id": "e817344f19d38edc1676fa3d686962dc786eacbd", "old_mode": 33188, "old_path": "Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp", "new_id": "75e0b4a265c9ee59a0b430794f7ef0d217c72f17", "new_mode": 33188, "new_path": "Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp" }, { "type": "modify", "old_id": "86cc60d1a9975e9b58532b261bbcaca05b299a5f", "old_mode": 33188, "old_path": "Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h", "new_id": "eb6f55c6fe9e3b9d124af2a715f35ab13fe33e5e", "new_mode": 33188, "new_path": "Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h" }, { "type": "modify", "old_id": "43b5f674e55e8d76b1283dd7b7246b660b1812ac", "old_mode": 33188, "old_path": "Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in", "new_id": "ec9b0b8f84a84ffeb05851d493c595f26a5465c4", "new_mode": 33188, "new_path": "Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in" }, { "type": "modify", "old_id": "866754212ddd7fb8288b6f721929fd2966d38a86", "old_mode": 33188, "old_path": "Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm", "new_id": "432c207c81f1433edb3495fcc57ac5725c8e276a", "new_mode": 33188, "new_path": "Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm" }, { "type": "modify", "old_id": "6e99619d25058cff9f7828c56952b4afca4e2e16", "old_mode": 33188, "old_path": "Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h", "new_id": "7d3fd5fd68cd2cdd42015b5baba1db979f4815cd", "new_mode": 33188, "new_path": "Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h" }, { "type": "modify", "old_id": "7522ef16feaeb3a8ea3b28aa386c5bf9afc987ea", "old_mode": 33188, "old_path": "Source/WebKit/UIProcess/WebPageProxy.cpp", "new_id": "163b8f70142b25596a43d526223308c9045ebbe1", "new_mode": 33188, "new_path": "Source/WebKit/UIProcess/WebPageProxy.cpp" }, { "type": "modify", "old_id": "7dfcfa3bd6dccace47bc8d8455f57d6c9371a4ff", "old_mode": 33188, "old_path": "Source/WebKit/UIProcess/WebPageProxy.h", "new_id": "5ff6792d83fbc02b0f574cc7a22e857ba91fd7ae", "new_mode": 33188, "new_path": "Source/WebKit/UIProcess/WebPageProxy.h" }, { "type": "modify", "old_id": "121cdcae1df3bdd8952a74c7527440909be9ffbc", "old_mode": 33188, "old_path": "Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp", "new_id": "cfb3d43da857f4c083f8c712a0332f211e5db3af", "new_mode": 33188, "new_path": "Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp" }, { "type": "modify", "old_id": "9aa5a0549243a83940e5a950ddbc817a44b50943", "old_mode": 33188, "old_path": "Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h", "new_id": "e377b81d8415f644ca806e0fd4c7228f5a9cf672", "new_mode": 33188, "new_path": "Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h" }, { "type": "modify", "old_id": "e0284a818241d7130cad2753ddb880008fa9955a", "old_mode": 33188, "old_path": "Source/WebKit/WebProcess/WebPage/WebPage.cpp", "new_id": "aa99e9dc0b00d65258f3ce484dab5a904630db7c", "new_mode": 33188, "new_path": "Source/WebKit/WebProcess/WebPage/WebPage.cpp" }, { "type": "modify", "old_id": "bdab81b29cff201eaa13bf3d64d9234e03a81c5c", "old_mode": 33188, "old_path": "Source/WebKit/WebProcess/WebPage/WebPage.h", "new_id": "76d04a04d1f4a0b2423a782ad5b683efa018e3a6", "new_mode": 33188, "new_path": "Source/WebKit/WebProcess/WebPage/WebPage.h" }, { "type": "modify", "old_id": "1b4618bd3a704409c73c0c12122fd55ae5d7eafb", "old_mode": 33188, "old_path": "Source/WebKit/WebProcess/WebPage/WebPage.messages.in", "new_id": "d016e419109a805eb4f86b0a9019c5bc7b6679a0", "new_mode": 33188, "new_path": "Source/WebKit/WebProcess/WebPage/WebPage.messages.in" }, { "type": "modify", "old_id": "2a00691004651596c044c5c8d11cbd172c8e1d1f", "old_mode": 33188, "old_path": "Tools/ChangeLog", "new_id": "f01477b513488df277b86a046617a32f4ece9b7b", "new_mode": 33188, "new_path": "Tools/ChangeLog" }, { "type": "modify", "old_id": "160c2e9f3ba6477598aa52ca2c5a792808932867", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl", "new_id": "a7fd21e4a0f877653003b5a8ae148a467d9e2a8a", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl" }, { "type": "modify", "old_id": "faedaf5745bbc78b9db5c8757dc489f2f9a02f98", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp", "new_id": "958a79ba4348a97922803ee236190b502fdf3c1a", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp" }, { "type": "modify", "old_id": "24569c99320f032beb11c8a889232cc76553d072", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp", "new_id": "521f5e55d665309947ff645882844052a19a365f", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp" }, { "type": "modify", "old_id": "c3c10453e9328ebce895b6aa2faa81c1adf2baa2", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/InjectedBundle/TestRunner.h", "new_id": "7228b5b3df21b35516844fa15121fb832e4e94d7", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/InjectedBundle/TestRunner.h" }, { "type": "modify", "old_id": "bf142271a71598528f7f32317b57156fca6a045b", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/TestController.cpp", "new_id": "5cd9237c5ec9d77be6b0eaf09aac3170da766ce4", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/TestController.cpp" }, { "type": "modify", "old_id": "fa60882be1f570234b32962ca9ecc0c8e66d1729", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/TestController.h", "new_id": "4e651129ec294f6d5a59c4371e29635a1b1f994c", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/TestController.h" }, { "type": "modify", "old_id": "29b99f8c2328d7625fcbae65e8897df40ca2bcca", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/TestInvocation.cpp", "new_id": "81afb529840db2f38147d3fdde1306ef6d273a2c", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/TestInvocation.cpp" }, { "type": "modify", "old_id": "e1c2c5dbe526671e83b147d51ccbb671c2174f2b", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/TestInvocation.h", "new_id": "50337d675de090addf5b76c80072a17fba4c13e6", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/TestInvocation.h" }, { "type": "modify", "old_id": "3f9304ea4800c03d15b4e0e63dfbece72039fb23", "old_mode": 33188, "old_path": "Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm", "new_id": "81c0a067b235d015eaeafed27cabf9cb3bc9d7e2", "new_mode": 33188, "new_path": "Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm" } ] }