[webkit-changes] [295511] trunk
Title: [295511] trunk Revision 295511 Author yu...@chromium.org Date 2022-06-13 19:24:27 -0700 (Mon, 13 Jun 2022) Log Message [WPE][GTK] REGRESSION (r294381): WPEWebProcess leak after closing browser https://bugs.webkit.org/show_bug.cgi?id=241353 Reviewed by Alex Christensen. Do not keep strong reference to WebPageProxy in the async IPC callback, instead use WeakPtr to let the page be destroyed if necessary, otherwise the page may keep its process pool alive after the page was closed. * Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp: exposed a couple of internal methods for testing the behavior. (webkitWebViewForceRepaintForTesting): (webkitSetCachedProcessSuspensionDelayForTesting): * Source/WebKit/UIProcess/API/glib/WebKitWebViewInternal.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::forceRepaint): replaced strong reference in the callback with a weak one. * Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: (testNoWebProcessLeakAfterWebKitWebContextDestroy): new test that makes sure that outstanding async IPC callbacks are run when page and its context are destroyed. (beforeAll): * Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: (WebViewTest::waitUntilLoadFinished): * Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: Canonical link: https://commits.webkit.org/251516@main Modified Paths trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewInternal.h trunk/Source/WebKit/UIProcess/WebPageProxy.cpp trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp trunk/Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp trunk/Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.h Diff Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (295510 => 295511) --- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp 2022-06-14 01:17:18 UTC (rev 295510) +++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp 2022-06-14 02:24:27 UTC (rev 295511) @@ -5051,3 +5051,17 @@ webkitWebViewConfigureMediaCapture(webView, WebCore::MediaProducerMediaCaptureKind::Display, state); } + +void webkitWebViewForceRepaintForTesting(WebKitWebView* webView, ForceRepaintCallback callback, gpointer userData) +{ +g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); + +getPage(webView).forceRepaint([callback, userData]() { +callback(userData); +}); +} + +void webkitSetCachedProcessSuspensionDelayForTesting(double seconds) +{ +WebKit::WebsiteDataStore::setCachedProcessSuspensionDelayForTesting(Seconds(seconds)); +} Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewInternal.h (295510 => 295511) --- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewInternal.h 2022-06-14 01:17:18 UTC (rev 295510) +++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewInternal.h 2022-06-14 02:24:27 UTC (rev 295511) @@ -27,3 +27,6 @@ typedef struct _WebKitWebView WebKitWebView; WK_EXPORT void webkitWebViewRunJavascriptWithoutForcedUserGestures(WebKitWebView*, const gchar*, GCancellable*, GAsyncReadyCallback, gpointer); +typedef void (*ForceRepaintCallback) (gpointer userData); +WK_EXPORT void webkitWebViewForceRepaintForTesting(WebKitWebView*, ForceRepaintCallback, gpointer userData); +WK_EXPORT void webkitSetCachedProcessSuspensionDelayForTesting(double seconds); Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (295510 => 295511) --- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2022-06-14 01:17:18 UTC (rev 295510) +++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2022-06-14 02:24:27 UTC (rev 295511) @@ -4577,10 +4577,13 @@ m_drawingArea->waitForBackingStoreUpdateOnNextPaint(); -sendWithAsyncReply(Messages::WebPage::ForceRepaint(), [this, protectedThis = Ref { *this }, callback = WTFMove(callback)] () mutable { -callAfterNextPresentationUpdate([callback = WTFMove(callback)] (auto) mutable { +sendWithAsyncReply(Messages::WebPage::ForceRepaint(), [weakThis = WeakPtr { *this }, callback = WTFMove(callback)] () mutable { +if (weakThis) { +weakThis->callAfterNextPresentationUpdate([callback = WTFMove(callback)] (auto) mutable { +callback(); +}); +} else callback(); -}); }); } Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp (295510 => 295511) --- trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp 2022-06-14 01:17:18 UTC (rev 295510) +++ trunk/Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp 2022-06-14 02:24:27 UTC (rev 295511) @@ -21,6 +21,7 @@ #include "LoadTrackingTest.h" #include "WebKitTestServer.h" +#include "WebKitWebViewInternal.h" #include #include #include @@ -1043,6 +1044,32 @@ g_assert_cmpstr(WebViewTest::_javascript_ResultToCString(_javascript_Result), ==, "Europe/Berlin, Europe/Berlin, Europe/Berlin, Europe/Berlin"); } +static void
[webkit-changes] [295508] trunk/Source/WebKit/WebProcess/Storage/ WebServiceWorkerFetchTaskClient.h
Title: [295508] trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h Revision 295508 Author yu...@chromium.org Date 2022-06-13 17:41:13 -0700 (Mon, 13 Jun 2022) Log Message error: field ‘m_preloadResponse’ has incomplete type ‘WebCore::ResourceResponse’ https://bugs.webkit.org/show_bug.cgi?id=241579 Reviewed by Michael Catanzaro. Fix WPE compilation. * Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h: include missing header. Canonical link: https://commits.webkit.org/251513@main Modified Paths trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h Diff Modified: trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h (295507 => 295508) --- trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h 2022-06-14 00:37:03 UTC (rev 295507) +++ trunk/Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h 2022-06-14 00:41:13 UTC (rev 295508) @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [295466] trunk/Source/WebKit/UIProcess/WebPageProxy.h
Title: [295466] trunk/Source/WebKit/UIProcess/WebPageProxy.h Revision 295466 Author yu...@chromium.org Date 2022-06-10 15:45:06 -0700 (Fri, 10 Jun 2022) Log Message Unified build: error: reference to 'FontInfo' is ambiguous https://bugs.webkit.org/show_bug.cgi?id=241524 Reviewed by Darin Adler. Fix unified build error. * Source/WebKit/UIProcess/WebPageProxy.h: removed unused forward declaration. It may cause name clash with ::FontInfo (from QD.framework/Headers/Quickdraw.h) on Mac when this file is included into the same unified source as another .cpp file declaring 'using namespace WebKit;'. Canonical link: https://commits.webkit.org/251471@main Modified Paths trunk/Source/WebKit/UIProcess/WebPageProxy.h Diff Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.h (295465 => 295466) --- trunk/Source/WebKit/UIProcess/WebPageProxy.h 2022-06-10 22:13:36 UTC (rev 295465) +++ trunk/Source/WebKit/UIProcess/WebPageProxy.h 2022-06-10 22:45:06 UTC (rev 295466) @@ -399,7 +399,6 @@ struct EditorState; struct FrameTreeNodeData; struct FocusedElementInformation; -struct FontInfo; struct FrameInfoData; struct InputMethodState; struct InsertTextOptions; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [294977] trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm
Title: [294977] trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm Revision 294977 Author yu...@chromium.org Date 2022-05-27 19:19:02 -0700 (Fri, 27 May 2022) Log Message WKHTTPCookieStore tests should use removeDataOfTypes to delete all cookies https://bugs.webkit.org/show_bug.cgi?id=240726 Reviewed by Sihui Liu. Call WKWebsiteDataStore.removeDataOfTypes when to clear all cookies instead of deleting them one by one. Besides simplifying the code it documents the API recommended for the clients. * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm: (clearCookies): (TEST): (deleteCookies): Deleted. Canonical link: https://commits.webkit.org/251081@main Modified Paths trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm Diff Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm (294976 => 294977) --- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm 2022-05-28 02:12:20 UTC (rev 294976) +++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm 2022-05-28 02:19:02 UTC (rev 294977) @@ -459,14 +459,13 @@ TestWebKitAPI::Util::run(); } -static void deleteCookies(WKHTTPCookieStore *store, RetainPtr cookies, BlockPtr completionBlock) +static void clearCookies(WKWebsiteDataStore *dataStore) { -if (![cookies count]) -return completionBlock(); -[store deleteCookie:[cookies lastObject] completionHandler:^(void) { -[cookies removeLastObject]; -deleteCookies(store, cookies, completionBlock); +__block bool deleted = false; +[dataStore removeDataOfTypes:[NSSet setWithObject:WKWebsiteDataTypeCookies] modifiedSince:[NSDate distantPast] completionHandler:^{ +deleted = true; }]; +TestWebKitAPI::Util::run(); } TEST(WKHTTPCookieStore, ObserveCookiesReceivedFromHTTP) @@ -473,16 +472,6 @@ { TestWebKitAPI::HTTPServer server({{ "/"_s, {{{ "Set-Cookie"_s, "testkey=testvalue"_s }}, "hello"_s }}}); -auto removeAllCookies = [] (WKHTTPCookieStore *store) { -__block bool deletedAllCookies = false; -[store getAllCookies:^(NSArray *cookies) { -deleteCookies(store, adoptNS([cookies mutableCopy]), ^{ -deletedAllCookies = true; -}); -}]; -TestWebKitAPI::Util::run(); -}; - auto runTest = [&] (WKWebsiteDataStore *dataStore) { auto configuration = adoptNS([WKWebViewConfiguration new]); configuration.get().websiteDataStore = dataStore; @@ -489,7 +478,7 @@ auto webView = adoptNS([[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration.get()]); auto observer = adoptNS([CookieObserver new]); globalCookieStore = webView.get().configuration.websiteDataStore.httpCookieStore; -removeAllCookies(globalCookieStore.get()); +clearCookies(dataStore); [globalCookieStore addObserver:observer.get()]; observerCallbacks = 0; [webView loadRequest:server.request()]; @@ -726,27 +715,6 @@ return [first.name isEqual:second.name] && [first.domain isEqual:second.domain] && [first.path isEqual:second.path] && [first.value isEqual:second.value]; } -static void clearCookies(WKHTTPCookieStore* cookieStore) -{ -finished = false; -[cookieStore getAllCookies:^(NSArray *cookies) { -if (!cookies || !cookies.count) { -finished = true; -return; -} - -unsigned cookiesCount = cookies.count; -__block unsigned deletedCount = 0; -for (NSHTTPCookie* cookie in cookies) { -[cookieStore deleteCookie:cookie completionHandler:^{ -if (++deletedCount == cookiesCount) -finished = true; -}]; -} -}]; -TestWebKitAPI::Util::run(); -} - TEST(WKHTTPCookieStore, WithoutProcessPoolDuplicates) { RetainPtr httpCookieStore = [WKWebsiteDataStore defaultDataStore].httpCookieStore; @@ -764,7 +732,7 @@ RetainPtr sessionCookieDifferentValue = [NSHTTPCookie cookieWithProperties:properties.get()]; finished = false; -clearCookies(httpCookieStore.get()); +clearCookies([WKWebsiteDataStore defaultDataStore]); [httpCookieStore.get() setCookie:sessionCookie.get() completionHandler:^{ finished = true; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [294542] trunk/Tools/Scripts/webkitpy/style/checkers
Title: [294542] trunk/Tools/Scripts/webkitpy/style/checkers Revision 294542 Author yu...@chromium.org Date 2022-05-20 05:58:07 -0700 (Fri, 20 May 2022) Log Message check-webkit-style: more strict upper case enum exceptions https://bugs.webkit.org/show_bug.cgi?id=240681 Reviewed by Darin Adler. Added a new list of common abbreviations which are allowed to be used as all uppercase enum values. * Tools/Scripts/webkitpy/style/checkers/cpp.py: (_EnumState.process_clean_line): (_EnumState.process_clean_line.is_case_error): Extracted common logic for inline and multiline enum declarations. (_EnumState): * Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py: (NoNonVirtualDestructorsTest): Canonical link: https://commits.webkit.org/250797@main Modified Paths trunk/Tools/Scripts/webkitpy/style/checkers/cpp.py trunk/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py Diff Modified: trunk/Tools/Scripts/webkitpy/style/checkers/cpp.py (294541 => 294542) --- trunk/Tools/Scripts/webkitpy/style/checkers/cpp.py 2022-05-20 12:02:01 UTC (rev 294541) +++ trunk/Tools/Scripts/webkitpy/style/checkers/cpp.py 2022-05-20 12:58:07 UTC (rev 294542) @@ -1353,18 +1353,27 @@ # FIXME: The regular expressions for expr_all_uppercase and expr_enum_end only accept integers # and identifiers for the value of the enumerator, but do not accept any other constant # expressions. However, this is sufficient for now (11/27/2012). -expr_all_uppercase = r'\s*[A-Z0-9_]+\s*(?:=\s*[a-zA-Z0-9]+\s*)?,?\s*$' +expr_all_uppercase = r'\s*(?P[A-Z0-9_]+)\s*(?:=\s*[a-zA-Z0-9]+\s*)?,?\s*$' expr_starts_lowercase = r'\s*[a-jl-z]' expr_enum_end = r'}\s*(?:[a-zA-Z0-9]+\s*(?:=\s*[a-zA-Z0-9]+)?)?\s*;\s*' expr_enum_start = r'\s*(?:enum(?:\s+class)?(?:\s+(?P[a-zA-Z0-9]+))?)(?:\s*:\s*[a-zA-Z0-9_]+?)?\s*\{?\s*' + +def is_case_error(enum_name, value_declaration): +all_uppercase = match(expr_all_uppercase, value_declaration) +if all_uppercase: +if self.is_webidl_enum: +return False +if enum_name in _ALLOW_ALL_UPPERCASE_ENUM: +return False +return not all_uppercase.group('value') in _ALLOW_ABBREVIATION_ENUM_VALUES +return match(expr_starts_lowercase, value_declaration) + if self.in_enum_decl: if match(r'\s*' + expr_enum_end + r'$', line): self.in_enum_decl = False self.is_webidl_enum = False return True -elif match(expr_all_uppercase, line): -return self.is_webidl_enum or self.enum_decl_name in _ALLOW_ALL_UPPERCASE_ENUM -elif match(expr_starts_lowercase, line): +elif is_case_error(self.enum_decl_name, line): return False matched = match(expr_enum_start + r'$', line) if matched: @@ -1374,14 +1383,9 @@ matched = match(expr_enum_start + r'(?P[^{]*)' + expr_enum_end + r'$', line) if matched: members = matched.group('members').split(',') -allow_all_uppercase = matched.group('identifier') in _ALLOW_ALL_UPPERCASE_ENUM -found_invalid_member = False +enum_name = matched.group('identifier') for member in members: -if match(expr_all_uppercase, member): -found_invalid_member = not self.is_webidl_enum and not allow_all_uppercase -if match(expr_starts_lowercase, member): -found_invalid_member = True -if found_invalid_member: +if is_case_error(enum_name, member): self.is_webidl_enum = False return False return True @@ -2546,8 +2550,10 @@ # Enum declaration allowlist -_ALLOW_ALL_UPPERCASE_ENUM = ['JSTokenType', 'Meridiem', 'NSType', 'Requester'] +_ALLOW_ALL_UPPERCASE_ENUM = ['JSTokenType'] +# Enum value allowlist +_ALLOW_ABBREVIATION_ENUM_VALUES = ['AM', 'CF', 'PM', 'URL', 'XHR'] def check_enum_casing(clean_lines, line_number, enum_state, error): """Looks for incorrectly named enum values. Modified: trunk/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py (294541 => 294542) --- trunk/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py 2022-05-20 12:02:01 UTC (rev 294541) +++ trunk/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py 2022-05-20 12:58:07 UTC (rev 294542) @@ -4333,8 +4333,23 @@ enum class Requester { Main, XHR };''', '') +self.assert_lint( +'''enum class CommonAbbreviations { AM, CF, PM, URL, XHR };''', +'') + self.assert_multi_line_lint( '''\ +enum class CommonAbbreviationsMultiline { +AM, +CF, +PM, +
[webkit-changes] [294374] trunk
Title: [294374] trunk Revision 294374 Author yu...@chromium.org Date 2022-05-17 18:17:36 -0700 (Tue, 17 May 2022) Log Message Web Inspector: support EventSource resource type in Network Panel https://bugs.webkit.org/show_bug.cgi?id=240326 Reviewed by Devin Rousso. * http/tests/inspector/network/eventsource-type-expected.txt: Added. * http/tests/inspector/network/eventsource-type.html: Added. * http/tests/inspector/network/resources/event-source.py: Added. Web Inspector: support EventSource resource type in Network Panel https://bugs.webkit.org/show_bug.cgi?id=240326 * inspector/protocol/Page.json: added EventSource resource type. Web Inspector: support EventSource resource type in Network Panel https://bugs.webkit.org/show_bug.cgi?id=240326 Network requests initiated by EventSource now have their own requester type which allows to distinguish them from other requests. Test: http/tests/inspector/network/eventsource-type.html * inspector/agents/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::resourceTypeJSON): (WebCore::InspectorPageAgent::inspectorResourceType): * inspector/agents/InspectorPageAgent.h: * page/EventSource.cpp: (WebCore::EventSource::connect): * platform/network/ResourceRequestBase.h: Web Inspector: support EventSource resource type in Network Panel https://bugs.webkit.org/show_bug.cgi?id=240326 EventSource initiated requests are now displayed with their own type in the network panel. * Localizations/en.lproj/localizedStrings.js: * UserInterface/Controllers/NetworkManager.js: (WI.NetworkManager.prototype.canBeOverridden): * UserInterface/Models/Resource.js: (WI.Resource.displayNameForType): * UserInterface/Views/NetworkTableContentView.js: (WI.NetworkTableContentView.displayNameForResource): Canonical link: https://commits.webkit.org/250668@main Modified Paths trunk/Source/_javascript_Core/inspector/protocol/Page.json trunk/Source/WebCore/inspector/agents/InspectorPageAgent.cpp trunk/Source/WebCore/inspector/agents/InspectorPageAgent.h trunk/Source/WebCore/page/EventSource.cpp trunk/Source/WebCore/platform/network/ResourceRequestBase.h trunk/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js trunk/Source/WebInspectorUI/UserInterface/Controllers/NetworkManager.js trunk/Source/WebInspectorUI/UserInterface/Models/Resource.js trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js Added Paths trunk/LayoutTests/http/tests/inspector/network/eventsource-type-expected.txt trunk/LayoutTests/http/tests/inspector/network/eventsource-type.html trunk/LayoutTests/http/tests/inspector/network/resources/event-source.py Diff Added: trunk/LayoutTests/http/tests/inspector/network/eventsource-type-expected.txt (0 => 294374) --- trunk/LayoutTests/http/tests/inspector/network/eventsource-type-expected.txt (rev 0) +++ trunk/LayoutTests/http/tests/inspector/network/eventsource-type-expected.txt 2022-05-18 01:17:36 UTC (rev 294374) @@ -0,0 +1,20 @@ +Tests for Resource.Type.EventSource. + + +== Running test suite: Resource.Type.EventSource +-- Running test case: Resource.Type.EventSource.1.Event +PASS: Resource should be EventSource type. +PASS: Resource should be a GET request. +EventSource events: onmessage: the end. +PASS: Resource should have a 200 response. +PASS: Resource should receive 'Success' in the response. +PASS: Response should not be base64 encoded. + +-- Running test case: Resource.Type.EventSource.3.Events +PASS: Resource should be EventSource type. +PASS: Resource should be a GET request. +EventSource events: user: alice,user: bill,onmessage: the end. +PASS: Resource should have a 200 response. +PASS: Resource should receive 'Success' in the response. +PASS: Response should not be base64 encoded. + Added: trunk/LayoutTests/http/tests/inspector/network/eventsource-type.html (0 => 294374) --- trunk/LayoutTests/http/tests/inspector/network/eventsource-type.html (rev 0) +++ trunk/LayoutTests/http/tests/inspector/network/eventsource-type.html 2022-05-18 01:17:36 UTC (rev 294374) @@ -0,0 +1,74 @@ + + + + + +function triggerEventSourceRequest(users) { +const eventSource = new EventSource(`resources/event-source.py?users=${users}`); +const messages = []; +eventSource.addEventListener('user', e => { +messages.push('user: ' + e.data); +}); +eventSource._onmessage_ = e => { +messages.push("onmessage: " + e.data); +TestPage.dispatchEventToFrontend("Completed", messages); +} +} + +// + +function test() +{ +const suite = InspectorTest.createAsyncSuite("Resource.Type.EventSource"); + +function addTestCase({name, description, _expression_, resourceHandler}) { +suite.addTestCase({ +name, description, +async test() { +const completeEvent = InspectorTest.awaitEvent("Completed"); +InspectorTest.evaluateInPage(_expression_); +const event = await
[webkit-changes] [294342] trunk/metadata/contributors.json
Title: [294342] trunk/metadata/contributors.json Revision 294342 Author yu...@chromium.org Date 2022-05-17 14:11:55 -0700 (Tue, 17 May 2022) Log Message Add my github username to contributors.json https://bugs.webkit.org/show_bug.cgi?id=240539 Reviewed by Jonathan Bedard. * metadata/contributors.json: add my github username. Canonical link: https://commits.webkit.org/250657@main Modified Paths trunk/metadata/contributors.json Diff Modified: trunk/metadata/contributors.json (294341 => 294342) --- trunk/metadata/contributors.json 2022-05-17 20:42:58 UTC (rev 294341) +++ trunk/metadata/contributors.json 2022-05-17 21:11:55 UTC (rev 294342) @@ -7067,6 +7067,7 @@ "yu...@chromium.org" ], "expertise" : "Developer Tools, Web Inspector", + "github" : "yury-s", "name" : "Yury Semikhatsky", "nicks" : [ "yurys" ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [294268] trunk/Source/WebKit
Title: [294268] trunk/Source/WebKit Revision 294268 Author yu...@chromium.org Date 2022-05-16 15:25:50 -0700 (Mon, 16 May 2022) Log Message [SOUP2] Compute number of header bytes whe using soup 2 https://bugs.webkit.org/show_bug.cgi?id=240200 Reviewed by Michael Catanzaro. SOUP 2 lacks methods that allow to get computed head sizes (only present in v3), calculate the sizes manually when libsoup 2 is used. No new tests, covered by LayoutTests/http/tests/inspector/network/resource-sizes-network.html when compiled with SOUP 2. * NetworkProcess/soup/NetworkDataTaskSoup.cpp: (WebKit::addHeaderSizes): (WebKit::NetworkDataTaskSoup::didGetHeaders): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (294267 => 294268) --- trunk/Source/WebKit/ChangeLog 2022-05-16 22:25:02 UTC (rev 294267) +++ trunk/Source/WebKit/ChangeLog 2022-05-16 22:25:50 UTC (rev 294268) @@ -1,3 +1,20 @@ +2022-05-16 Yury Semikhatsky + +[SOUP2] Compute number of header bytes whe using soup 2 +https://bugs.webkit.org/show_bug.cgi?id=240200 + +Reviewed by Michael Catanzaro. + +SOUP 2 lacks methods that allow to get computed head sizes (only present in v3), +calculate the sizes manually when libsoup 2 is used. + +No new tests, covered by LayoutTests/http/tests/inspector/network/resource-sizes-network.html +when compiled with SOUP 2. + +* NetworkProcess/soup/NetworkDataTaskSoup.cpp: +(WebKit::addHeaderSizes): +(WebKit::NetworkDataTaskSoup::didGetHeaders): + 2022-05-16 Brent Fulgham Remove abandoned UseScreenCaptureKit preference Modified: trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp (294267 => 294268) --- trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp 2022-05-16 22:25:02 UTC (rev 294267) +++ trunk/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp 2022-05-16 22:25:50 UTC (rev 294268) @@ -1218,6 +1218,15 @@ return *m_networkLoadMetrics.additionalNetworkLoadMetricsForWebInspector; } +#if USE(SOUP2) +static void addHeaderSizes(const char *name, const char *value, gpointer pointer) +{ +uint64_t* size = static_cast(pointer); +// Each header is formatted as ": \r\n" +*size += strlen(name) + strlen(value) + 4; +} +#endif + void NetworkDataTaskSoup::didGetHeaders() { // We are a bit more conservative with the persistent credential storage than the session store, @@ -1263,6 +1272,20 @@ additionalMetrics.tlsProtocol = tlsProtocolVersionToString(soup_message_get_tls_protocol_version(m_soupMessage.get())); additionalMetrics.tlsCipher = String::fromUTF8(soup_message_get_tls_ciphersuite_name(m_soupMessage.get())); additionalMetrics.responseHeaderBytesReceived = soup_message_metrics_get_response_header_bytes_received(metrics); +#else +{ +auto* requestHeaders = soup_message_get_request_headers(m_soupMessage.get()); +uint64_t requestHeadersSize = 0; +soup_message_headers_foreach(requestHeaders, addHeaderSizes, ); +additionalMetrics.requestHeaderBytesSent = requestHeadersSize; +} + +{ +auto* responseHeaders = soup_message_get_response_headers(m_soupMessage.get()); +uint64_t responseHeadersSize = 0; +soup_message_headers_foreach(responseHeaders, addHeaderSizes, ); +additionalMetrics.responseHeaderBytesReceived = responseHeadersSize; +} #endif } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [294109] trunk/Source/WebKit
Title: [294109] trunk/Source/WebKit Revision 294109 Author yu...@chromium.org Date 2022-05-12 10:43:34 -0700 (Thu, 12 May 2022) Log Message [GTK][WPE] Do not return pointer to disposed timezone string https://bugs.webkit.org/show_bug.cgi?id=240327 Reviewed by Michael Catanzaro. Store time zone name in CString to avoid returning pointer to a temp string which was disposed before returning from webkit_web_context_get_time_zone_override. No new tests. Covered by existing unit tests. * UIProcess/API/glib/WebKitWebContext.cpp: (webkitWebContextSetProperty): (webkitWebContextConstructed): (webkit_web_context_get_time_zone_override): (webkit_web_context_set_time_zone_override): Deleted this function as the time zone can only be overridden during context construction. * UIProcess/API/gtk/WebKitWebContext.h: * UIProcess/API/wpe/WebKitWebContext.h: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebContext.h trunk/Source/WebKit/UIProcess/API/wpe/WebKitWebContext.h Diff Modified: trunk/Source/WebKit/ChangeLog (294108 => 294109) --- trunk/Source/WebKit/ChangeLog 2022-05-12 17:43:27 UTC (rev 294108) +++ trunk/Source/WebKit/ChangeLog 2022-05-12 17:43:34 UTC (rev 294109) @@ -1,3 +1,24 @@ +2022-05-12 Yury Semikhatsky + +[GTK][WPE] Do not return pointer to disposed timezone string +https://bugs.webkit.org/show_bug.cgi?id=240327 + +Reviewed by Michael Catanzaro. + +Store time zone name in CString to avoid returning pointer to a temp string which was +disposed before returning from webkit_web_context_get_time_zone_override. + +No new tests. Covered by existing unit tests. + +* UIProcess/API/glib/WebKitWebContext.cpp: +(webkitWebContextSetProperty): +(webkitWebContextConstructed): +(webkit_web_context_get_time_zone_override): +(webkit_web_context_set_time_zone_override): Deleted this function as the time zone can +only be overridden during context construction. +* UIProcess/API/gtk/WebKitWebContext.h: +* UIProcess/API/wpe/WebKitWebContext.h: + 2022-05-12 Olivier Blin REGRESSION(r291038) [GTK][WPE] Fix build without remote inspector Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp (294108 => 294109) --- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp 2022-05-12 17:43:27 UTC (rev 294108) +++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp 2022-05-12 17:43:34 UTC (rev 294109) @@ -248,7 +248,7 @@ WebKitMemoryPressureSettings* memoryPressureSettings; -String timeZoneOverride; +CString timeZoneOverride; }; static guint signals[LAST_SIGNAL] = { 0, }; @@ -393,8 +393,9 @@ break; } case PROP_TIME_ZONE_OVERRIDE: { -if (const auto* override = g_value_get_string(value)) -webkit_web_context_set_time_zone_override(context, override); +const auto* timeZone = g_value_get_string(value); +if (isTimeZoneValid(timeZone)) +context->priv->timeZoneOverride = timeZone; break; } default: @@ -425,7 +426,7 @@ // Once the settings have been passed to the ProcessPoolConfiguration, we don't need them anymore so we can free them. g_clear_pointer(>memoryPressureSettings, webkit_memory_pressure_settings_free); } -configuration.setTimeZoneOverride(priv->timeZoneOverride); +configuration.setTimeZoneOverride(String::fromUTF8(priv->timeZoneOverride.data(), priv->timeZoneOverride.length())); if (!priv->websiteDataManager) priv->websiteDataManager = adoptGRef(webkit_website_data_manager_new("local-storage-directory", priv->localStorageDirectory.data(), nullptr)); @@ -1871,24 +1872,6 @@ #endif /** - * webkit_web_context_set_time_zone_override: - * @context: a #WebKitWebContext - * @time_zone_override: value to set - * - * Set the #WebKitWebContext:time-zone-override property. Refer to the IANA database for valid - * specifiers, https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - * - * Since: 2.38 - */ -void webkit_web_context_set_time_zone_override(WebKitWebContext* context, const gchar* timeZoneOverride) -{ -g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context)); -g_return_if_fail(isTimeZoneValid(timeZoneOverride)); - -context->priv->timeZoneOverride = String::fromUTF8(timeZoneOverride); -} - -/** * webkit_web_context_get_time_zone_override: * @context: a #WebKitWebContext * @@ -1900,7 +1883,7 @@ { g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), nullptr); -return context->priv->timeZoneOverride.utf8().data(); +return context->priv->timeZoneOverride.data(); } void webkitWebContextInitializeNotificationPermissions(WebKitWebContext* context) Modified: trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebContext.h (294108 => 294109) ---
[webkit-changes] [294077] trunk
Title: [294077] trunk Revision 294077 Author yu...@chromium.org Date 2022-05-11 14:57:56 -0700 (Wed, 11 May 2022) Log Message [WinCairo] Support file downloads https://bugs.webkit.org/show_bug.cgi?id=240293 Reviewed by Fujii Hironori. .: * Source/cmake/OptionsWin.cmake: enable DOWNLOAD_ATTRIBUTE by default in WinCairo. Source/WebCore: Properly convert suggested file name to utf8. Coverred by LayoutTests/http/tests/download/literal-utf-8.html. * platform/network/curl/ResourceResponseCurl.cpp: (WebCore::ResourceResponse::platformSuggestedFilename const): Source/WebKit: Hooked up Curl calls to Download callbacks. Added basic support for file downloads in Curl. * NetworkProcess/curl/NetworkDataTaskCurl.cpp: (WebKit::NetworkDataTaskCurl::cancel): (WebKit::NetworkDataTaskCurl::curlDidReceiveData): (WebKit::NetworkDataTaskCurl::curlDidComplete): (WebKit::NetworkDataTaskCurl::deleteDownloadFile): (WebKit::NetworkDataTaskCurl::curlDidFailWithError): (WebKit::NetworkDataTaskCurl::invokeDidReceiveResponse): * NetworkProcess/curl/NetworkDataTaskCurl.h: LayoutTests: * platform/wincairo/TestExpectations: enable downloads tests. Modified Paths trunk/ChangeLog trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/wincairo/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/network/curl/ResourceResponseCurl.cpp trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp trunk/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h trunk/Source/cmake/OptionsWin.cmake Diff Modified: trunk/ChangeLog (294076 => 294077) --- trunk/ChangeLog 2022-05-11 21:57:24 UTC (rev 294076) +++ trunk/ChangeLog 2022-05-11 21:57:56 UTC (rev 294077) @@ -1,3 +1,12 @@ +2022-05-11 Yury Semikhatsky + +[WinCairo] Support file downloads +https://bugs.webkit.org/show_bug.cgi?id=240293 + +Reviewed by Fujii Hironori. + +* Source/cmake/OptionsWin.cmake: enable DOWNLOAD_ATTRIBUTE by default in WinCairo. + 2022-05-11 Jonathan Bedard Remove Subversion references from ReadMe Modified: trunk/LayoutTests/ChangeLog (294076 => 294077) --- trunk/LayoutTests/ChangeLog 2022-05-11 21:57:24 UTC (rev 294076) +++ trunk/LayoutTests/ChangeLog 2022-05-11 21:57:56 UTC (rev 294077) @@ -1,3 +1,12 @@ +2022-05-11 Yury Semikhatsky + +[WinCairo] Support file downloads +https://bugs.webkit.org/show_bug.cgi?id=240293 + +Reviewed by Fujii Hironori. + +* platform/wincairo/TestExpectations: enable downloads tests. + 2022-05-11 Antti Koivisto REGRESSION (r291788): MotionMark Suits subtest is 9% regressed Modified: trunk/LayoutTests/platform/wincairo/TestExpectations (294076 => 294077) --- trunk/LayoutTests/platform/wincairo/TestExpectations 2022-05-11 21:57:24 UTC (rev 294076) +++ trunk/LayoutTests/platform/wincairo/TestExpectations 2022-05-11 21:57:56 UTC (rev 294077) @@ -54,23 +54,15 @@ fast/dom/DeviceMotion [ Skip ] fast/dom/Window/window-properties-device-orientation.html [ Skip ] -# DOWNLOAD_ATTRIBUTE is disabled -fast/dom/HTMLAnchorElement/anchor-download.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-download-synthetic-click.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-download-user-triggered-synthetic-click.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-base-target-popup-not-allowed.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target-popup-not-allowed.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-blank-target.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-slashes.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-unicode.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-no-extension.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-file-blob-download-then-revoke.html [ Skip ] -fast/dom/HTMLAnchorElement/anchor-nodownload-set.html [ Skip ] +# Unexpected suggested file name. +fast/dom/HTMLAnchorElement/anchor-download-user-triggered-synthetic-click.html [ Failure ] +fast/dom/HTMLAnchorElement/anchor-download.html [ Failure ] +fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate.html [ Failure ] +fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download.html [ Failure ] +fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash.html [ Failure ] +fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote.html [ Failure ]
[webkit-changes] [293729] trunk
Title: [293729] trunk Revision 293729 Author yu...@chromium.org Date 2022-05-03 10:06:02 -0700 (Tue, 03 May 2022) Log Message [WK2] Add API to allow embedder to set a timezone override https://bugs.webkit.org/show_bug.cgi?id=213884 Source/_javascript_Core: Reviewed by Yusuke Suzuki. * runtime/DateConstructor.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): * runtime/DateConversion.cpp: (JSC::formatDateTime): Format the overridden timezone if it's enabled. * runtime/DateConversion.h: * runtime/DatePrototype.cpp: (JSC::formateDateInstance): * runtime/JSDateMath.cpp: (JSC::toICUTimeZone): (JSC::toOpaqueICUTimeZone): (JSC::OpaqueICUTimeZoneDeleter::operator()): (JSC::DateCache::calculateLocalTimeOffset): (JSC::DateCache::defaultTimeZone): (JSC::DateCache::timeZoneDisplayNameOverride): (JSC::DateCache::timeZoneCacheSlow): Apply timezone override if it is set. (JSC::DateCache::resetIfNecessary): * runtime/JSDateMath.h: Source/WebKit: Reviewed by Yusuke Suzuki. This patch adds: - new Cocoa API - new Glib API (targetting both WPE and GTK ports) - new C API (for the win port) that allows the embedder to set a timezone override for the underlying PageConfiguration. Since this API is not exposed in glib ports, a new contruct-time-only property was added to the WebKitWebContext API. It would also allow fine-grained control over multiple pages, for instance it's not possible currently to have two pages in different timezones. No new layout tests, this change is covered by new API tests. * Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode): * Shared/WebProcessCreationParameters.h: * UIProcess/API/APIProcessPoolConfiguration.cpp: (API::ProcessPoolConfiguration::copy): * UIProcess/API/APIProcessPoolConfiguration.h: * UIProcess/API/C/WKContextConfigurationRef.cpp: (WKContextConfigurationCopyTimeZoneOverride): (WKContextConfigurationSetTimeZoneOverride): * UIProcess/API/C/WKContextConfigurationRef.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: (-[_WKProcessPoolConfiguration timeZoneOverride]): (-[_WKProcessPoolConfiguration setTimeZoneOverride:]): * UIProcess/API/glib/WebKitWebContext.cpp: (webkitWebContextGetProperty): (webkitWebContextSetProperty): (webkitWebContextConstructed): (webkit_web_context_class_init): (webkit_web_context_set_time_zone_override): (webkit_web_context_get_time_zone_override): * UIProcess/API/gtk/WebKitWebContext.h: * UIProcess/API/wpe/WebKitWebContext.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess): * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): Apply timezone override if any on process start. Source/WTF: Reviewed by Yusuke Suzuki. * wtf/DateMath.cpp: New APIs to control and query the timezone override. (WTF::innerTimeZoneOverride): Static storage of the override informations. (WTF::WTF_REQUIRES_LOCK): (WTF::validateTimeZone): New function allowing to check if a timezone identifier is valid according to ICU's database and covert it to UChar buffer suitable for passing to ucal. (WTF::isTimeZoneValid): (WTF::setTimeZoneOverride): New API to set the timezone override, this is meant to be used on newly created WebProcesses. In addition to providing alternative name for the code that calls into ICU library, on POSIX systems writes new timezone to "TZ" environement variable to adjust result of strftime (called in formatDateTime). (WTF::getTimeZoneOverride): Query the timezone override. * wtf/DateMath.h: Tools: Reviewed by Yusuke Suzuki. Add API tests for the timezone configuration API. The GTK and WPE MiniBrowsers also gained new runtime options allowing to exercise this new API. * MiniBrowser/gtk/main.c: (activate): * MiniBrowser/wpe/main.cpp: (main): * TestWebKitAPI/SourcesCocoa.txt: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WebKitCocoa/TimeZoneOverride.mm: Added. (TimeZoneOverrideTest::runScriptAndExecuteCallback): (TimeZoneOverrideTest::callAsyncFunctionBody): (TEST_F): * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp: (testWebContextTimeZoneOverride): (testWebContextTimeZoneOverrideInWorker): (beforeAll): * TestWebKitAPI/glib/WebKitGLib/TestMain.cpp: (main): * TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp: (runJavaScriptReadyCallback): (WebViewTest::runJavaScriptAndWaitUntilFinished): * TestWebKitAPI/glib/WebKitGLib/WebViewTest.h: * flatpak/flatpakutils.py: (WebkitFlatpak.run_in_sandbox): Modified Paths trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/runtime/JSDateMath.cpp trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/DateMath.cpp trunk/Source/WTF/wtf/DateMath.h trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp trunk/Source/WebKit/Shared/WebProcessCreationParameters.h trunk/Source/WebKit/UIProcess/API/APIProcessPoolConfiguration.cpp
[webkit-changes] [293625] trunk
Title: [293625] trunk Revision 293625 Author yu...@chromium.org Date 2022-04-29 11:55:21 -0700 (Fri, 29 Apr 2022) Log Message Format time zone name using ICU instead of platform calls https://bugs.webkit.org/show_bug.cgi?id=239865 Reviewed by Yusuke Suzuki. JSTests: Added new tests that ensure Date's timezone is formatted using preferred language. * complex.yaml: * complex/timezone-format-de.js: Added. (shouldBe): * complex/timezone-format-en.js: Added. (shouldBe): Source/_javascript_Core: formatDateTime now uses cached display name of the timezone. * runtime/DateConstructor.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): * runtime/DateConversion.cpp: (JSC::formatDateTime): * runtime/DateConversion.h: * runtime/DatePrototype.cpp: (JSC::formateDateInstance): * runtime/JSDateMath.cpp: (JSC::toICUTimeZone): Encapsulate bitwise_cast into typesafe functions. (JSC::toOpaqueICUTimeZone): (JSC::OpaqueICUTimeZoneDeleter::operator()): (JSC::DateCache::calculateLocalTimeOffset): (JSC::DateCache::defaultTimeZone): (JSC::DateCache::timeZoneDisplayName): Both standard and daylight names are computed once on the first access as ICU methods internally acquire locks. (JSC::DateCache::timeZoneCacheSlow): (JSC::DateCache::resetIfNecessary): * runtime/JSDateMath.h: LayoutTests: Rebased existing layout tests to reflect new format (which is the same as in other browsers now). * storage/indexeddb/modern/date-basic-expected.txt: * storage/indexeddb/modern/date-basic-private-expected.txt: * storage/indexeddb/modern/get-keyrange-expected.txt: * storage/indexeddb/modern/get-keyrange-private-expected.txt: * storage/indexeddb/modern/idbobjectstore-delete-1-expected.txt: * storage/indexeddb/modern/idbobjectstore-delete-1-private-expected.txt: Modified Paths trunk/JSTests/ChangeLog trunk/JSTests/complex.yaml trunk/LayoutTests/ChangeLog trunk/LayoutTests/inspector/model/remote-object/date-expected.txt trunk/LayoutTests/inspector/unit-tests/cookie-expected.txt trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-expected.txt trunk/LayoutTests/storage/indexeddb/modern/date-basic-expected.txt trunk/LayoutTests/storage/indexeddb/modern/date-basic-private-expected.txt trunk/LayoutTests/storage/indexeddb/modern/get-keyrange-expected.txt trunk/LayoutTests/storage/indexeddb/modern/get-keyrange-private-expected.txt trunk/LayoutTests/storage/indexeddb/modern/idbobjectstore-delete-1-expected.txt trunk/LayoutTests/storage/indexeddb/modern/idbobjectstore-delete-1-private-expected.txt trunk/Source/_javascript_Core/API/tests/testapi.c trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/runtime/DateConstructor.cpp trunk/Source/_javascript_Core/runtime/DateConversion.cpp trunk/Source/_javascript_Core/runtime/DateConversion.h trunk/Source/_javascript_Core/runtime/DatePrototype.cpp trunk/Source/_javascript_Core/runtime/JSDateMath.cpp trunk/Source/_javascript_Core/runtime/JSDateMath.h Added Paths trunk/JSTests/complex/timezone-format-de.js trunk/JSTests/complex/timezone-format-en.js Diff Modified: trunk/JSTests/ChangeLog (293624 => 293625) --- trunk/JSTests/ChangeLog 2022-04-29 18:13:02 UTC (rev 293624) +++ trunk/JSTests/ChangeLog 2022-04-29 18:55:21 UTC (rev 293625) @@ -1,3 +1,19 @@ +2022-04-29 Yury Semikhatsky + +Format time zone name using ICU instead of platform calls +https://bugs.webkit.org/show_bug.cgi?id=239865 + +Reviewed by Yusuke Suzuki. + +Added new tests that ensure Date's timezone is formatted using preferred +language. + +* complex.yaml: +* complex/timezone-format-de.js: Added. +(shouldBe): +* complex/timezone-format-en.js: Added. +(shouldBe): + 2022-04-27 Angelos Oikonomopoulos Unskip flaky test on mips Added: trunk/JSTests/complex/timezone-format-de.js (0 => 293625) --- trunk/JSTests/complex/timezone-format-de.js (rev 0) +++ trunk/JSTests/complex/timezone-format-de.js 2022-04-29 18:55:21 UTC (rev 293625) @@ -0,0 +1,15 @@ +function shouldBe(actual, expected) { + if (actual !== expected) +throw new Error('bad value: ' + actual); +} + +// Thu Apr 28 2022 14:42:34 GMT-0700 (Pacific Daylight Time) +const date1 = new Date(1651182154000); +$vm.setUserPreferredLanguages(['de-DE']); +shouldBe(date1.toString(), 'Thu Apr 28 2022 23:42:34 GMT+0200 (Mitteleuropäische Sommerzeit)'); +shouldBe(date1.toTimeString(), '23:42:34 GMT+0200 (Mitteleuropäische Sommerzeit)'); + +// Tue Jan 18 2022 13:42:34 GMT-0800 (Pacific Standard Time) +const date2 = new Date(1642542154000); +shouldBe(date2.toString(), 'Tue Jan 18 2022 22:42:34 GMT+0100 (Mitteleuropäische Normalzeit)'); +shouldBe(date2.toTimeString(), '22:42:34 GMT+0100 (Mitteleuropäische Normalzeit)'); Added: trunk/JSTests/complex/timezone-format-en.js (0 => 293625) --- trunk/JSTests/complex/timezone-format-en.js (rev 0) +++
[webkit-changes] [292403] trunk
Title: [292403] trunk Revision 292403 Author yu...@chromium.org Date 2022-04-05 10:58:46 -0700 (Tue, 05 Apr 2022) Log Message Do not create network process in ~WebsiteDataStore destructor https://bugs.webkit.org/show_bug.cgi?id=238570 Reviewed by Chris Dumez. Source/WebKit: Check if m_networkProcess is initialized before removing session from it instead, otherwise WebsiteDataStore::networkProcess() lazily creates the process and it will keep running after WebsiteDataStore is destroyed. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::~WebsiteDataStore): Tools: The test is written by Chris Dumez. * TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm: (TEST): Test that creating and destroying ephemer WebsiteDataStore doesn't initialize default network process. Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp trunk/Tools/ChangeLog trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm Diff Modified: trunk/Source/WebKit/ChangeLog (292402 => 292403) --- trunk/Source/WebKit/ChangeLog 2022-04-05 17:57:55 UTC (rev 292402) +++ trunk/Source/WebKit/ChangeLog 2022-04-05 17:58:46 UTC (rev 292403) @@ -1,3 +1,18 @@ +2022-04-05 Yury Semikhatsky + +Do not create network process in ~WebsiteDataStore destructor +https://bugs.webkit.org/show_bug.cgi?id=238570 + +Reviewed by Chris Dumez. + +Check if m_networkProcess is initialized before removing session +from it instead, otherwise WebsiteDataStore::networkProcess() lazily +creates the process and it will keep running after WebsiteDataStore +is destroyed. + +* UIProcess/WebsiteData/WebsiteDataStore.cpp: +(WebKit::WebsiteDataStore::~WebsiteDataStore): + 2022-04-05 Eric Carlson 5 Media API tests are flakily timing out on iOS14 Modified: trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp (292402 => 292403) --- trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2022-04-05 17:57:55 UTC (rev 292402) +++ trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp 2022-04-05 17:58:46 UTC (rev 292403) @@ -150,7 +150,8 @@ ASSERT(allDataStores().get(m_sessionID) == this); allDataStores().remove(m_sessionID); -networkProcess().removeSession(*this); +if (m_networkProcess) +m_networkProcess->removeSession(*this); #if ENABLE(GPU_PROCESS) if (auto* gpuProcessProxy = GPUProcessProxy::singletonIfCreated()) gpuProcessProxy->removeSession(m_sessionID); Modified: trunk/Tools/ChangeLog (292402 => 292403) --- trunk/Tools/ChangeLog 2022-04-05 17:57:55 UTC (rev 292402) +++ trunk/Tools/ChangeLog 2022-04-05 17:58:46 UTC (rev 292403) @@ -1,3 +1,16 @@ +2022-04-05 Yury Semikhatsky + +Do not create network process in ~WebsiteDataStore destructor +https://bugs.webkit.org/show_bug.cgi?id=238570 + +Reviewed by Chris Dumez. + +The test is written by Chris Dumez. + +* TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm: +(TEST): Test that creating and destroying ephemer WebsiteDataStore doesn't initialize +default network process. + 2022-04-04 Jonathan Bedard [Merge-Queue] Add author to commit message Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm (292402 => 292403) --- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm 2022-04-05 17:57:55 UTC (rev 292402) +++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm 2022-04-05 17:58:46 UTC (rev 292403) @@ -159,6 +159,21 @@ TestWebKitAPI::Util::spinRunLoop(); } +TEST(NetworkProcess, DoNotLaunchOnDataStoreDestruction) +{ +auto storeConfiguration1 = adoptNS([[_WKWebsiteDataStoreConfiguration alloc] initNonPersistentConfiguration]); +auto websiteDataStore1 = adoptNS([[WKWebsiteDataStore alloc] _initWithConfiguration: storeConfiguration1.get()]); + +EXPECT_FALSE([WKWebsiteDataStore _defaultNetworkProcessExists]); +@autoreleasepool { +auto storeConfiguration2 = adoptNS([[_WKWebsiteDataStoreConfiguration alloc] initNonPersistentConfiguration]); +auto websiteDataStore2 = adoptNS([[WKWebsiteDataStore alloc] _initWithConfiguration: storeConfiguration2.get()]); +} + +TestWebKitAPI::Util::spinRunLoop(10); +EXPECT_FALSE([WKWebsiteDataStore _defaultNetworkProcessExists]); +} + TEST(NetworkProcess, CORSPreflightCachePartitioned) { using namespace TestWebKitAPI; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [292265] trunk/Source/WebKit
Title: [292265] trunk/Source/WebKit Revision 292265 Author yu...@chromium.org Date 2022-04-02 08:59:07 -0700 (Sat, 02 Apr 2022) Log Message GTK doesn't compile with ENABLE_ACCESSIBILITY=0 https://bugs.webkit.org/show_bug.cgi?id=238669 Reviewed by Michael Catanzaro. Fix GTK compilation with ENABLE_ACCESSIBILITY=0 No new tests. * UIProcess/API/gtk/WebKitWebViewBase.cpp: (webkitWebViewBaseDispose): (webkit_web_view_base_class_init): Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp Diff Modified: trunk/Source/WebKit/ChangeLog (292264 => 292265) --- trunk/Source/WebKit/ChangeLog 2022-04-02 13:35:04 UTC (rev 292264) +++ trunk/Source/WebKit/ChangeLog 2022-04-02 15:59:07 UTC (rev 292265) @@ -1,3 +1,18 @@ +2022-04-02 Yury Semikhatsky + +GTK doesn't compile with ENABLE_ACCESSIBILITY=0 +https://bugs.webkit.org/show_bug.cgi?id=238669 + +Reviewed by Michael Catanzaro. + +Fix GTK compilation with ENABLE_ACCESSIBILITY=0 + +No new tests. + +* UIProcess/API/gtk/WebKitWebViewBase.cpp: +(webkitWebViewBaseDispose): +(webkit_web_view_base_class_init): + 2022-04-02 Andres Gonzalez Expose AXObjectCache::treeData to the UI process. Modified: trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp (292264 => 292265) --- trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp 2022-04-02 13:35:04 UTC (rev 292264) +++ trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp 2022-04-02 15:59:07 UTC (rev 292265) @@ -700,8 +700,10 @@ #else g_clear_pointer(>priv->dialog, gtk_widget_destroy); webkitWebViewBaseSetToplevelOnScreenWindow(webView, nullptr); +#if ENABLE(ACCESSIBILITY) if (webView->priv->accessible) webkitWebViewAccessibleSetWebView(WEBKIT_WEB_VIEW_ACCESSIBLE(webView->priv->accessible.get()), nullptr); +#endif // ENABLE(ACCESSIBILITY) #endif #if GTK_CHECK_VERSION(3, 24, 0) webkitWebViewBaseCompleteEmojiChooserRequest(webView, emptyString()); @@ -1693,7 +1695,7 @@ return TRUE; } -#if !USE(GTK4) +#if !USE(GTK4) && ENABLE(ACCESSIBILITY) static AtkObject* webkitWebViewBaseGetAccessible(GtkWidget* widget) { WebKitWebViewBasePrivate* priv = WEBKIT_WEB_VIEW_BASE(widget)->priv; @@ -2227,7 +2229,7 @@ widgetClass->touch_event = webkitWebViewBaseTouchEvent; #endif widgetClass->query_tooltip = webkitWebViewBaseQueryTooltip; -#if !USE(GTK4) +#if !USE(GTK4) && ENABLE(ACCESSIBILITY) widgetClass->get_accessible = webkitWebViewBaseGetAccessible; #endif #if USE(GTK4) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [278752] trunk/Source/WebCore
Title: [278752] trunk/Source/WebCore Revision 278752 Author yu...@chromium.org Date 2021-06-10 20:37:18 -0700 (Thu, 10 Jun 2021) Log Message [REGRESSION][Curl] Network::ResourceTiming are broken after r278391 https://bugs.webkit.org/show_bug.cgi?id=226901 Reviewed by Fujii Hironori. Initialize fetchStart with startTime in Curl. No new tests. * platform/network/curl/CurlContext.cpp: (WebCore::CurlHandle::getNetworkLoadMetrics): Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/network/curl/CurlContext.cpp Diff Modified: trunk/Source/WebCore/ChangeLog (278751 => 278752) --- trunk/Source/WebCore/ChangeLog 2021-06-11 03:22:43 UTC (rev 278751) +++ trunk/Source/WebCore/ChangeLog 2021-06-11 03:37:18 UTC (rev 278752) @@ -1,3 +1,17 @@ +2021-06-10 Yury Semikhatsky + +[REGRESSION][Curl] Network::ResourceTiming are broken after r278391 +https://bugs.webkit.org/show_bug.cgi?id=226901 + +Reviewed by Fujii Hironori. + +Initialize fetchStart with startTime in Curl. + +No new tests. + +* platform/network/curl/CurlContext.cpp: +(WebCore::CurlHandle::getNetworkLoadMetrics): + 2021-06-10 Sam Weinig Nothing is keeping navigator.xr alive during GC Modified: trunk/Source/WebCore/platform/network/curl/CurlContext.cpp (278751 => 278752) --- trunk/Source/WebCore/platform/network/curl/CurlContext.cpp 2021-06-11 03:22:43 UTC (rev 278751) +++ trunk/Source/WebCore/platform/network/curl/CurlContext.cpp 2021-06-11 03:37:18 UTC (rev 278752) @@ -793,6 +793,7 @@ NetworkLoadMetrics networkLoadMetrics; +networkLoadMetrics.fetchStart = startTime; networkLoadMetrics.domainLookupStart = startTime; networkLoadMetrics.domainLookupEnd = startTime + Seconds(nameLookup); networkLoadMetrics.connectStart = networkLoadMetrics.domainLookupEnd; ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [277036] trunk/Source/ThirdParty/libwebrtc
Title: [277036] trunk/Source/ThirdParty/libwebrtc Revision 277036 Author yu...@chromium.org Date 2021-05-05 13:19:23 -0700 (Wed, 05 May 2021) Log Message [LibWebRTC][WPE][GTK] do not use system installed vpx headers when building webrtc https://bugs.webkit.org/show_bug.cgi?id=225401 Reviewed by Philippe Normand. Use vpx headers from Source/ThirdParty/libwebrtc instead of those from the host system. * CMakeLists.txt: expose libvpx headers to webrtc Modified Paths trunk/Source/ThirdParty/libwebrtc/CMakeLists.txt trunk/Source/ThirdParty/libwebrtc/ChangeLog Diff Modified: trunk/Source/ThirdParty/libwebrtc/CMakeLists.txt (277035 => 277036) --- trunk/Source/ThirdParty/libwebrtc/CMakeLists.txt 2021-05-05 19:37:52 UTC (rev 277035) +++ trunk/Source/ThirdParty/libwebrtc/CMakeLists.txt 2021-05-05 20:19:23 UTC (rev 277036) @@ -1698,6 +1698,7 @@ Source/third_party/libsrtp/crypto/include Source/third_party/libsrtp/include Source/third_party/libyuv/include +Source/third_party/libvpx/source/libvpx Source/third_party/opus/src/celt Source/third_party/opus/src/include Source/third_party/opus/src/silk @@ -1715,7 +1716,6 @@ if (APPLE) list(APPEND webrtc_INCLUDE_DIRECTORIES PRIVATE -Source/third_party/libvpx/source/libvpx Source/webrtc/sdk/objc Source/webrtc/sdk/objc/base Source/webrtc/sdk/objc/Framework/Classes Modified: trunk/Source/ThirdParty/libwebrtc/ChangeLog (277035 => 277036) --- trunk/Source/ThirdParty/libwebrtc/ChangeLog 2021-05-05 19:37:52 UTC (rev 277035) +++ trunk/Source/ThirdParty/libwebrtc/ChangeLog 2021-05-05 20:19:23 UTC (rev 277036) @@ -1,3 +1,14 @@ +2021-05-05 Yury Semikhatsky + +[LibWebRTC][WPE][GTK] do not use system installed vpx headers when building webrtc +https://bugs.webkit.org/show_bug.cgi?id=225401 + +Reviewed by Philippe Normand. + +Use vpx headers from Source/ThirdParty/libwebrtc instead of those from the host system. + +* CMakeLists.txt: expose libvpx headers to webrtc + 2021-04-27 Youenn Fablet Disable WebRTC trace event macros ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [264011] trunk/Tools
Title: [264011] trunk/Tools Revision 264011 Author yu...@chromium.org Date 2020-07-07 00:21:16 -0700 (Tue, 07 Jul 2020) Log Message [GTK][MiniBrowser] occasional crashes when closing while download in progress https://bugs.webkit.org/show_bug.cgi?id=214007 Reviewed by Carlos Garcia Campos. Remove signal handlers from WebKitDownload when BrowserDownload is finalized, WebKitDownload may emit a signal after the UI item has been destroyed which leads to a crash. * MiniBrowser/gtk/BrowserDownloadsBar.c: (browserDownloadFinalize): Modified Paths trunk/Tools/ChangeLog trunk/Tools/MiniBrowser/gtk/BrowserDownloadsBar.c Diff Modified: trunk/Tools/ChangeLog (264010 => 264011) --- trunk/Tools/ChangeLog 2020-07-07 04:44:17 UTC (rev 264010) +++ trunk/Tools/ChangeLog 2020-07-07 07:21:16 UTC (rev 264011) @@ -1,3 +1,17 @@ +2020-07-07 Yury Semikhatsky + +[GTK][MiniBrowser] occasional crashes when closing while download in progress +https://bugs.webkit.org/show_bug.cgi?id=214007 + +Reviewed by Carlos Garcia Campos. + +Remove signal handlers from WebKitDownload when BrowserDownload is finalized, +WebKitDownload may emit a signal after the UI item has been destroyed which leads +to a crash. + +* MiniBrowser/gtk/BrowserDownloadsBar.c: +(browserDownloadFinalize): + 2020-07-06 Wenson Hsieh Web process sometimes crashes when translating an article on spiegel.de Modified: trunk/Tools/MiniBrowser/gtk/BrowserDownloadsBar.c (264010 => 264011) --- trunk/Tools/MiniBrowser/gtk/BrowserDownloadsBar.c 2020-07-07 04:44:17 UTC (rev 264010) +++ trunk/Tools/MiniBrowser/gtk/BrowserDownloadsBar.c 2020-07-07 07:21:16 UTC (rev 264011) @@ -127,6 +127,7 @@ BrowserDownload *browserDownload = BROWSER_DOWNLOAD(object); if (browserDownload->download) { +g_signal_handlers_disconnect_by_data(browserDownload->download, browserDownload); g_object_unref(browserDownload->download); browserDownload->download = NULL; } ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [261781] trunk/Source/WebKit
Title: [261781] trunk/Source/WebKit Revision 261781 Author yu...@chromium.org Date 2020-05-16 02:21:33 -0700 (Sat, 16 May 2020) Log Message [GTK] Do not leak pages created by window.open https://bugs.webkit.org/show_bug.cgi?id=211970 Reviewed by Carlos Garcia Campos. Previously webkitWebViewCreateNewPage created unbalanced refence to WebPageProxy and returned it as a raw pointer. That raw pointer was later wrapped in a RefPtr in WebKitUIClient. This change ensures that all refs are balanced by returnin RefPtr instead of a raw pointer. * UIProcess/API/glib/WebKitWebView.cpp: (webkitWebViewCreateNewPage): * UIProcess/API/glib/WebKitWebViewPrivate.h: Modified Paths trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h Diff Modified: trunk/Source/WebKit/ChangeLog (261780 => 261781) --- trunk/Source/WebKit/ChangeLog 2020-05-16 08:24:22 UTC (rev 261780) +++ trunk/Source/WebKit/ChangeLog 2020-05-16 09:21:33 UTC (rev 261781) @@ -1,3 +1,19 @@ +2020-05-16 Yury Semikhatsky + +[GTK] Do not leak pages created by window.open +https://bugs.webkit.org/show_bug.cgi?id=211970 + +Reviewed by Carlos Garcia Campos. + +Previously webkitWebViewCreateNewPage created unbalanced refence to WebPageProxy and returned +it as a raw pointer. That raw pointer was later wrapped in a RefPtr in WebKitUIClient. +This change ensures that all refs are balanced by returnin RefPtr instead of +a raw pointer. + +* UIProcess/API/glib/WebKitWebView.cpp: +(webkitWebViewCreateNewPage): +* UIProcess/API/glib/WebKitWebViewPrivate.h: + 2020-05-15 Alex Christensen Use enum serialization instead of casting to/from uint32_t Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp (261780 => 261781) --- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp 2020-05-16 08:24:22 UTC (rev 261780) +++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp 2020-05-16 09:21:33 UTC (rev 261781) @@ -2320,7 +2320,7 @@ } #endif -WebPageProxy* webkitWebViewCreateNewPage(WebKitWebView* webView, const WindowFeatures& windowFeatures, WebKitNavigationAction* navigationAction) +RefPtr webkitWebViewCreateNewPage(WebKitWebView* webView, const WindowFeatures& windowFeatures, WebKitNavigationAction* navigationAction) { WebKitWebView* newWebView; g_signal_emit(webView, signals[CREATE], 0, navigationAction, ); @@ -2334,8 +2334,7 @@ webkitWindowPropertiesUpdateFromWebWindowFeatures(newWebView->priv->windowProperties.get(), windowFeatures); -RefPtr newPage = (newWebView); -return newPage.leakRef(); +return makeRefPtr(getPage(newWebView)); } void webkitWebViewReadyToShowPage(WebKitWebView* webView) Modified: trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h (261780 => 261781) --- trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h 2020-05-16 08:24:22 UTC (rev 261780) +++ trunk/Source/WebKit/UIProcess/API/glib/WebKitWebViewPrivate.h 2020-05-16 09:21:33 UTC (rev 261781) @@ -52,7 +52,7 @@ void webkitWebViewGetLoadDecisionForIcon(WebKitWebView*, const WebCore::LinkIcon&, Function&&); void webkitWebViewSetIcon(WebKitWebView*, const WebCore::LinkIcon&, API::Data&); #endif -WebKit::WebPageProxy* webkitWebViewCreateNewPage(WebKitWebView*, const WebCore::WindowFeatures&, WebKitNavigationAction*); +RefPtr webkitWebViewCreateNewPage(WebKitWebView*, const WebCore::WindowFeatures&, WebKitNavigationAction*); void webkitWebViewReadyToShowPage(WebKitWebView*); void webkitWebViewRunAsModal(WebKitWebView*); void webkitWebViewClosePage(WebKitWebView*); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [254111] trunk
Title: [254111] trunk Revision 254111 Author yu...@chromium.org Date 2020-01-06 20:42:34 -0800 (Mon, 06 Jan 2020) Log Message REGRESSION: [ Mac wk2 ] http/tests/inspector/target/provisional-load-cancels-previous-load.html is a flaky failure https://bugs.webkit.org/show_bug.cgi?id=205473 Source/WebInspectorUI: The failure was due to attempts to add output to the test page which could be not fully loaded after navigation. To make it deterministic it is now possible to keep provisional navigation paused and to defer output until the test page is ready. Reviewed by Brian Burg. * UserInterface/Protocol/Target.js: (WI.Target.prototype.initialize): (WI.Target.prototype._resumeIfPaused): extracted resume logic in a method that can be overridden in the tests. * UserInterface/Test/FrontendTestHarness.js: (FrontendTestHarness.prototype.deferOutputUntilTestPageIsReloaded): allow to pause output when navigation is started via protocol commands rather than the test harness. LayoutTests: Reviewed by Brian Burg. Keep provisional page paused until second navigation replaces it and also defer output until test page is fully initialized after navigation. * http/tests/inspector/target/provisional-load-cancels-previous-load.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/tests/inspector/target/provisional-load-cancels-previous-load.html trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Protocol/Target.js trunk/Source/WebInspectorUI/UserInterface/Test/FrontendTestHarness.js Diff Modified: trunk/LayoutTests/ChangeLog (254110 => 254111) --- trunk/LayoutTests/ChangeLog 2020-01-07 04:40:20 UTC (rev 254110) +++ trunk/LayoutTests/ChangeLog 2020-01-07 04:42:34 UTC (rev 254111) @@ -1,3 +1,16 @@ +2020-01-06 Yury Semikhatsky + +REGRESSION: [ Mac wk2 ] http/tests/inspector/target/provisional-load-cancels-previous-load.html is a flaky failure +https://bugs.webkit.org/show_bug.cgi?id=205473 + + +Reviewed by Brian Burg. + +Keep provisional page paused until second navigation replaces it and also +defer output until test page is fully initialized after navigation. + +* http/tests/inspector/target/provisional-load-cancels-previous-load.html: + 2020-01-06 Fujii Hironori Unreviewed test gardening for WinCairo port after r253326 and r250849. Modified: trunk/LayoutTests/http/tests/inspector/target/provisional-load-cancels-previous-load.html (254110 => 254111) --- trunk/LayoutTests/http/tests/inspector/target/provisional-load-cancels-previous-load.html 2020-01-07 04:40:20 UTC (rev 254110) +++ trunk/LayoutTests/http/tests/inspector/target/provisional-load-cancels-previous-load.html 2020-01-07 04:42:34 UTC (rev 254111) @@ -18,6 +18,10 @@ const url = "" let navigatedTwice = false; +let originalResumeIfPaused = WI.Target.prototype._resumeIfPaused; +// Keep first provisional navigation paused. +WI.Target.prototype._resumeIfPaused = () => {}; + WI.targetManager.addEventListener(WI.TargetManager.Event.TargetAdded, (event) => { let target = event.data.target; let targetId = targetIdMap.get(target.identifier); @@ -26,7 +30,10 @@ InspectorTest.expectTrue(target.isPaused, `Target ${targetId} should be paused on start.`); if (!navigatedTwice) { navigatedTwice = true; +WI.Target.prototype._resumeIfPaused = originalResumeIfPaused; +InspectorTest.deferOutputUntilTestPageIsReloaded(); + // Send two consequtive navigation requests. The latter will cancel provisional // load of the former. WI.mainTarget.PageAgent.navigate(url); Modified: trunk/Source/WebInspectorUI/ChangeLog (254110 => 254111) --- trunk/Source/WebInspectorUI/ChangeLog 2020-01-07 04:40:20 UTC (rev 254110) +++ trunk/Source/WebInspectorUI/ChangeLog 2020-01-07 04:42:34 UTC (rev 254111) @@ -1,3 +1,24 @@ +2020-01-06 Yury Semikhatsky + +REGRESSION: [ Mac wk2 ] http/tests/inspector/target/provisional-load-cancels-previous-load.html is a flaky failure +https://bugs.webkit.org/show_bug.cgi?id=205473 + + +The failure was due to attempts to add output to the test page which could be not fully +loaded after navigation. To make it deterministic it is now possible to keep provisional +navigation paused and to defer output until the test page is ready. + +Reviewed by Brian Burg. + +* UserInterface/Protocol/Target.js: +(WI.Target.prototype.initialize): +(WI.Target.prototype._resumeIfPaused): extracted resume logic in a method that +can be overridden in the tests. + +* UserInterface/Test/FrontendTestHarness.js: +(FrontendTestHarness.prototype.deferOutputUntilTestPageIsReloaded): allow
[webkit-changes] [253718] trunk
Title: [253718] trunk Revision 253718 Author yu...@chromium.org Date 2019-12-18 14:05:27 -0800 (Wed, 18 Dec 2019) Log Message Web Inspector: Runtime.enable reports duplicates (non existent) contexts https://bugs.webkit.org/show_bug.cgi?id=204859 Reviewed by Devin Rousso. Source/WebCore: Do not report main world context as non-main world one when Runtime.enable is called. Test: inspector/runtime/executionContextCreated-onEnable.html * inspector/agents/page/PageRuntimeAgent.cpp: (WebCore::PageRuntimeAgent::enable): (WebCore::PageRuntimeAgent::reportExecutionContextCreation): Source/WebInspectorUI: Assert that all contexts added to the list are unique. * UserInterface/Models/ExecutionContextList.js: (WI.ExecutionContextList.prototype.add): LayoutTests: Test that only existing contexts are reported. * http/tests/inspector/resources/stable-id-map.js: Added. (TestPage.registerInitializer.window.StableIdMap): (TestPage.registerInitializer.window.StableIdMap.prototype.get size): (TestPage.registerInitializer.window.StableIdMap.prototype.get let): (TestPage.registerInitializer): * http/tests/inspector/target/provisional-load-cancels-previous-load.html: * inspector/runtime/executionContextCreated-onEnable-expected.txt: Added. * inspector/runtime/executionContextCreated-onEnable.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/tests/inspector/target/provisional-load-cancels-previous-load-expected.txt trunk/LayoutTests/http/tests/inspector/target/provisional-load-cancels-previous-load.html trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Models/ExecutionContextList.js Added Paths trunk/LayoutTests/http/tests/inspector/resources/stable-id-map.js trunk/LayoutTests/inspector/runtime/executionContextCreated-onEnable-expected.txt trunk/LayoutTests/inspector/runtime/executionContextCreated-onEnable.html Diff Modified: trunk/LayoutTests/ChangeLog (253717 => 253718) --- trunk/LayoutTests/ChangeLog 2019-12-18 22:03:54 UTC (rev 253717) +++ trunk/LayoutTests/ChangeLog 2019-12-18 22:05:27 UTC (rev 253718) @@ -1,3 +1,21 @@ +2019-12-18 Yury Semikhatsky + +Web Inspector: Runtime.enable reports duplicates (non existent) contexts +https://bugs.webkit.org/show_bug.cgi?id=204859 + +Reviewed by Devin Rousso. + +Test that only existing contexts are reported. + +* http/tests/inspector/resources/stable-id-map.js: Added. +(TestPage.registerInitializer.window.StableIdMap): +(TestPage.registerInitializer.window.StableIdMap.prototype.get size): +(TestPage.registerInitializer.window.StableIdMap.prototype.get let): +(TestPage.registerInitializer): +* http/tests/inspector/target/provisional-load-cancels-previous-load.html: +* inspector/runtime/executionContextCreated-onEnable-expected.txt: Added. +* inspector/runtime/executionContextCreated-onEnable.html: Added. + 2019-12-18 youenn fablet Add support for Audio Capture in GPUProcess Added: trunk/LayoutTests/http/tests/inspector/resources/stable-id-map.js (0 => 253718) --- trunk/LayoutTests/http/tests/inspector/resources/stable-id-map.js (rev 0) +++ trunk/LayoutTests/http/tests/inspector/resources/stable-id-map.js 2019-12-18 22:05:27 UTC (rev 253718) @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2019 Microsoft Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Microsoft Corporation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + *
[webkit-changes] [253437] trunk/Source/WebInspectorUI
Title: [253437] trunk/Source/WebInspectorUI Revision 253437 Author yu...@chromium.org Date 2019-12-12 10:33:53 -0800 (Thu, 12 Dec 2019) Log Message Web Inspector: Error: Can't make a ContentView for an unknown representedObject of type: CallFrame https://bugs.webkit.org/show_bug.cgi?id=204823 Reviewed by Devin Rousso. If no type is stored in the cookie matching by type should fail. * UserInterface/Views/NavigationSidebarPanel.js: (WI.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie.treeElementMatchesCookie): (WI.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie): Modified Paths trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js Diff Modified: trunk/Source/WebInspectorUI/ChangeLog (253436 => 253437) --- trunk/Source/WebInspectorUI/ChangeLog 2019-12-12 18:33:29 UTC (rev 253436) +++ trunk/Source/WebInspectorUI/ChangeLog 2019-12-12 18:33:53 UTC (rev 253437) @@ -1,3 +1,16 @@ +2019-12-12 Yury Semikhatsky + +Web Inspector: Error: Can't make a ContentView for an unknown representedObject of type: CallFrame +https://bugs.webkit.org/show_bug.cgi?id=204823 + +Reviewed by Devin Rousso. + +If no type is stored in the cookie matching by type should fail. + +* UserInterface/Views/NavigationSidebarPanel.js: +(WI.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie.treeElementMatchesCookie): +(WI.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie): + 2019-12-12 Devin Rousso Web Inspector: REGRESSION(r251227): Uncaught Exception: undefined is not an object (evaluating 'target.DOMAgent.setInspectModeEnabled') Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js (253436 => 253437) --- trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js 2019-12-12 18:33:29 UTC (rev 253436) +++ trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js 2019-12-12 18:33:53 UTC (rev 253437) @@ -705,7 +705,7 @@ return false; if (matchTypeOnly) -return true; +return !!typeIdentifier; var candidateObjectCookie = {}; if (representedObject.saveIdentityToCookie) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [253179] trunk/LayoutTests
Title: [253179] trunk/LayoutTests Revision 253179 Author yu...@chromium.org Date 2019-12-05 15:48:40 -0800 (Thu, 05 Dec 2019) Log Message Web Inspector: http/tests/inspector/target/pause-on-inline-debugger-statement.html is crashing in debug https://bugs.webkit.org/show_bug.cgi?id=204901 Reviewed by Devin Rousso. Restructured the test to avoid inadvertent alert() when navigating to a new process. New logs are printed after inspected page has navigated. * http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt: * http/tests/inspector/target/pause-on-inline-debugger-statement.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt trunk/LayoutTests/http/tests/inspector/target/pause-on-inline-debugger-statement.html Diff Modified: trunk/LayoutTests/ChangeLog (253178 => 253179) --- trunk/LayoutTests/ChangeLog 2019-12-05 23:40:47 UTC (rev 253178) +++ trunk/LayoutTests/ChangeLog 2019-12-05 23:48:40 UTC (rev 253179) @@ -1,5 +1,18 @@ 2019-12-05 Yury Semikhatsky +Web Inspector: http/tests/inspector/target/pause-on-inline-debugger-statement.html is crashing in debug +https://bugs.webkit.org/show_bug.cgi?id=204901 + +Reviewed by Devin Rousso. + +Restructured the test to avoid inadvertent alert() when navigating to a new +process. New logs are printed after inspected page has navigated. + +* http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt: +* http/tests/inspector/target/pause-on-inline-debugger-statement.html: + +2019-12-05 Yury Semikhatsky + Web Inspector: Avoid using Runtime.executionContextCreated to figure out the iframe's contentDocument node. https://bugs.webkit.org/show_bug.cgi?id=122764 Modified: trunk/LayoutTests/http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt (253178 => 253179) --- trunk/LayoutTests/http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt 2019-12-05 23:40:47 UTC (rev 253178) +++ trunk/LayoutTests/http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt 2019-12-05 23:48:40 UTC (rev 253179) @@ -1,2 +1,7 @@ -ALERT: PASS: Should pause on debugger statement. Test page used to check that execution will break on inline 'debugger' statement after cross-origin navigation. + + +== Running test suite: Target.PSON +-- Running test case: InlineDebuggerStatement +PASS: Should pause on debugger statement. + Modified: trunk/LayoutTests/http/tests/inspector/target/pause-on-inline-debugger-statement.html (253178 => 253179) --- trunk/LayoutTests/http/tests/inspector/target/pause-on-inline-debugger-statement.html 2019-12-05 23:40:47 UTC (rev 253178) +++ trunk/LayoutTests/http/tests/inspector/target/pause-on-inline-debugger-statement.html 2019-12-05 23:48:40 UTC (rev 253179) @@ -11,24 +11,19 @@ suite.addTestCase({ name: "InlineDebuggerStatement", description: "Check that new provisional page can be paused before navigation.", -test(resolve, reject) { -WI.debuggerManager.awaitEvent(WI.DebuggerManager.Event.Paused) -.then(() => { -InspectorTest.pass(`Should pause on debugger statement.`); +async test() { +const url = "" +WI.mainTarget.PageAgent.navigate(url); -// Wait for page reload event to avoid race between test results flushing and the test completion. -let pageLoadPromise = InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad); -//WI.mainTarget.DebuggerAgent. -Promise.resolve().then(() => { -WI.debuggerManager.resume(); -}); -return pageLoadPromise; -}) -.then(resolve); +await WI.debuggerManager.awaitEvent(WI.DebuggerManager.Event.Paused); +// Wait for page reload event to avoid race between test results flushing and the test completion. +await Promise.all([ +InspectorTest.awaitEvent(FrontendTestHarness.Event.TestPageDidLoad), +WI.debuggerManager.resume() +]); -const url = "" -WI.mainTarget.PageAgent.navigate(url); +InspectorTest.pass(`Should pause on debugger statement.`); } }); ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [253166] trunk
Title: [253166] trunk Revision 253166 Author yu...@chromium.org Date 2019-12-05 12:35:24 -0800 (Thu, 05 Dec 2019) Log Message Web Inspector: Avoid using Runtime.executionContextCreated to figure out the iframe's contentDocument node. https://bugs.webkit.org/show_bug.cgi?id=122764 Reviewed by Devin Rousso. Source/WebCore: Force execution context creation on frame navigation similar to what inspector already does for all known contexts when Runtime.enable is called. This is a prerequisite for the injected script to work. Test: inspector/runtime/execution-context-in-scriptless-page.html * inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::didCommitLoadImpl): * inspector/agents/page/PageRuntimeAgent.cpp: (WebCore::PageRuntimeAgent::frameNavigated): * inspector/agents/page/PageRuntimeAgent.h: LayoutTests: Test that execution context is created and reported for pages without _javascript_. * inspector/runtime/execution-context-in-scriptless-page-expected.txt: Added. * inspector/runtime/execution-context-in-scriptless-page.html: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp trunk/Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp trunk/Source/WebCore/inspector/agents/page/PageRuntimeAgent.h Added Paths trunk/LayoutTests/inspector/runtime/execution-context-in-scriptless-page-expected.txt trunk/LayoutTests/inspector/runtime/execution-context-in-scriptless-page.html Diff Modified: trunk/LayoutTests/ChangeLog (253165 => 253166) --- trunk/LayoutTests/ChangeLog 2019-12-05 20:33:09 UTC (rev 253165) +++ trunk/LayoutTests/ChangeLog 2019-12-05 20:35:24 UTC (rev 253166) @@ -1,3 +1,16 @@ +2019-12-05 Yury Semikhatsky + +Web Inspector: Avoid using Runtime.executionContextCreated to figure out the iframe's contentDocument node. +https://bugs.webkit.org/show_bug.cgi?id=122764 + + +Reviewed by Devin Rousso. + +Test that execution context is created and reported for pages without _javascript_. + +* inspector/runtime/execution-context-in-scriptless-page-expected.txt: Added. +* inspector/runtime/execution-context-in-scriptless-page.html: Added. + 2019-12-05 youenn fablet maplike should define a set method Added: trunk/LayoutTests/inspector/runtime/execution-context-in-scriptless-page-expected.txt (0 => 253166) --- trunk/LayoutTests/inspector/runtime/execution-context-in-scriptless-page-expected.txt (rev 0) +++ trunk/LayoutTests/inspector/runtime/execution-context-in-scriptless-page-expected.txt 2019-12-05 20:35:24 UTC (rev 253166) @@ -0,0 +1,8 @@ +Test that Runtime.executionContextCreated event is fired even for pages without _javascript_. + + +== Running test suite: Runtime.executionContextCreated.ContextWithoutScript +-- Running test case: Runtime.executionContextCreated.ContextWithoutScript.SubFrame +PASS: Should receive Runtime.executionContextCreated notification. +PASS: Should be able to evaluate in subframe. + Added: trunk/LayoutTests/inspector/runtime/execution-context-in-scriptless-page.html (0 => 253166) --- trunk/LayoutTests/inspector/runtime/execution-context-in-scriptless-page.html (rev 0) +++ trunk/LayoutTests/inspector/runtime/execution-context-in-scriptless-page.html 2019-12-05 20:35:24 UTC (rev 253166) @@ -0,0 +1,53 @@ + + + + +function createFrame() +{ + let iframe = document.createElement("iframe"); + iframe.src = "" _javascript_."; + document.body.appendChild(iframe); +} + +function test() +{ +let suite = ProtocolTest.createAsyncSuite("Runtime.executionContextCreated.ContextWithoutScript"); + +suite.addTestCase({ +name: "Runtime.executionContextCreated.ContextWithoutScript.SubFrame", +description: "Test that Runtime.executionContextCreated event is fired when a new iframe is added to the page and its document doesn't have any _javascript_.", +async test() { +await InspectorProtocol.awaitCommand({method: "Page.enable"}); +await InspectorProtocol.awaitCommand({method: "Runtime.enable"}); + +let [executionContextCreatedEvent] = await Promise.all([ +InspectorProtocol.awaitEvent({event: "Runtime.executionContextCreated"}), +InspectorProtocol.awaitCommand({ +method: "Runtime.evaluate", +params: {_expression_: `createFrame()`} +}) +]); + +ProtocolTest.pass("Should receive Runtime.executionContextCreated notification."); + +let evaluateResult = await InspectorProtocol.awaitCommand({ +method: "Runtime.evaluate", +params: { +contextId: executionContextCreatedEvent.params.context.id, +_expression_: `document.body.textContent` +} +}); + +
[webkit-changes] [253097] trunk
Title: [253097] trunk Revision 253097 Author yu...@chromium.org Date 2019-12-04 00:24:13 -0800 (Wed, 04 Dec 2019) Log Message Web Inspector: allow inspector to pause provisional page load and restore its state https://bugs.webkit.org/show_bug.cgi?id=204170 Reviewed by Devin Rousso. Source/_javascript_Core: Added an option to Target domain to pause all new targets on start waiting for explicit 'resume' command from the inspector front-end. This allows to configure inspector backend (including user agent overrides, breakpoints and instrumentation) before navigation starts. * _javascript_Core.xcodeproj/project.pbxproj: * Sources.txt: * inspector/InspectorTarget.cpp: Added. (Inspector::InspectorTarget::pause): (Inspector::InspectorTarget::resume): (Inspector::InspectorTarget::setResumeCallback): * inspector/InspectorTarget.h: * inspector/agents/InspectorTargetAgent.cpp: (Inspector::InspectorTargetAgent::willDestroyFrontendAndBackend): (Inspector::InspectorTargetAgent::setPauseOnStart): (Inspector::InspectorTargetAgent::resume): (Inspector::buildTargetInfoObject): (Inspector::InspectorTargetAgent::targetCreated): (Inspector::InspectorTargetAgent::targetDestroyed): * inspector/agents/InspectorTargetAgent.h: * inspector/protocol/Target.json: Source/WebInspectorUI: All new targets are now automatically paused on start. For such provisional targets target manager will run regular initilization code (enable agents etc.) and then resume loading of the target. Responses and events from the target are defferred until the target is committed and becomes current main target. When the target manager receives event that the provisional target has been committed all accumulated protocol messages are replayed and going forward all new missages will be dispatched as usual. * UserInterface/Controllers/TargetManager.js: (WI.TargetManager): (WI.TargetManager.prototype.targetCreated): (WI.TargetManager.prototype.didCommitProvisionalTarget): (WI.TargetManager.prototype.targetDestroyed): (WI.TargetManager.prototype.dispatchMessageFromTarget): (WI.TargetManager.prototype._createTarget): (WI.TargetManager.prototype._checkAndHandlePageTargetTransition): (WI.TargetManager.prototype._checkAndHandlePageTargetTermination): * UserInterface/Protocol/Connection.js: (InspectorBackend.Connection): (InspectorBackend.Connection.prototype.addProvisionalMessage): (InspectorBackend.Connection.prototype.dispatchProvisionalMessages): * UserInterface/Protocol/MultiplexingBackendTarget.js: (WI.MultiplexingBackendTarget.prototype.initialize): * UserInterface/Protocol/PageTarget.js: (WI.PageTarget): * UserInterface/Protocol/Target.js: (WI.Target.prototype.initialize): (WI.Target.prototype.get isProvisional): (WI.Target.prototype.get isPaused): (WI.Target.prototype.didCommitProvisionalTarget): * UserInterface/Protocol/WorkerTarget.js: Source/WebKit: Provisional page loading can be deffered if inspector front-end is connected. This allows to configure inspector backend in the provisional page before load request is sent. If inspector front-end is not connected provisional loading will conitinue exactly as before. Tests: http/tests/inspector/target/pause-on-inline-debugger-statement.html http/tests/inspector/target/provisional-load-cancels-previous-load.html * UIProcess/InspectorTargetProxy.cpp: (WebKit::InspectorTargetProxy::disconnect): * UIProcess/WebPageInspectorController.cpp: (WebKit::WebPageInspectorController::shouldPauseLoading const): (WebKit::WebPageInspectorController::setContinueLoadingCallback): * UIProcess/WebPageInspectorController.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::continueNavigationInNewProcess): LayoutTests: Test that provisional loading which starts before previos provisional loading commits will be correctly handled by the insepctor. Test that script execution will break on debugger statement in inline scripts in case of cross origin navigation and PSON. * http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt: Added. * http/tests/inspector/target/pause-on-inline-debugger-statement.html: Added. * http/tests/inspector/target/provisional-load-cancels-previous-load-expected.txt: Added. * http/tests/inspector/target/provisional-load-cancels-previous-load.html: Added. * http/tests/inspector/target/resources/inline-debugger-statement.html: Added. * http/tests/inspector/target/target-events-for-provisional-page-expected.txt: * http/tests/inspector/target/target-events-for-provisional-page.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/tests/inspector/target/target-events-for-provisional-page-expected.txt trunk/LayoutTests/http/tests/inspector/target/target-events-for-provisional-page.html trunk/Source/_javascript_Core/ChangeLog trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj trunk/Source/_javascript_Core/Sources.txt trunk/Source/_javascript_Core/inspector/InspectorTarget.h
[webkit-changes] [252704] trunk/Source/WebInspectorUI
Title: [252704] trunk/Source/WebInspectorUI Revision 252704 Author yu...@chromium.org Date 2019-11-20 13:23:36 -0800 (Wed, 20 Nov 2019) Log Message Web Inspector: REGRESSION(r250618): main resource view is empty when pausing on inline 'debugger' statement https://bugs.webkit.org/show_bug.cgi?id=204086 Reviewed by Devin Rousso. SourceCodeRevision.currentRevision doesn't create new revisions under the hood anymore. This allows to avoid undesirable side effects when e.g. text editor tries to read current content of the SourceCode which results in a new revision (with empty content). New method editableRevision is introduced for applying changes to the resource while keeping original content revision intact. * UserInterface/Controllers/CSSManager.js: (WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound): (WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges): (WI.CSSManager.prototype._resourceContentDidChange): (WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent): * UserInterface/Models/SourceCode.js: (WI.SourceCode.prototype.get currentRevision): (WI.SourceCode.prototype.get editableRevision): (WI.SourceCode.prototype.get content): (WI.SourceCode.prototype.revisionContentDidChange): * UserInterface/Views/FontResourceContentView.js: (WI.FontResourceContentView.prototype.dropZoneHandleDrop): * UserInterface/Views/ImageResourceContentView.js: (WI.ImageResourceContentView.prototype.dropZoneHandleDrop): * UserInterface/Views/ResourceContentView.js: (WI.ResourceContentView.prototype._contentAvailable): (WI.ResourceContentView.prototype._handleImportLocalResourceOverride): * UserInterface/Views/ScriptContentView.js: (WI.ScriptContentView.prototype._handleTextEditorContentDidChange): * UserInterface/Views/TextResourceContentView.js: (WI.TextResourceContentView.prototype._textEditorContentDidChange): Modified Paths trunk/Source/WebInspectorUI/ChangeLog trunk/Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js trunk/Source/WebInspectorUI/UserInterface/Models/SourceCode.js trunk/Source/WebInspectorUI/UserInterface/Views/FontResourceContentView.js trunk/Source/WebInspectorUI/UserInterface/Views/ImageResourceContentView.js trunk/Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js trunk/Source/WebInspectorUI/UserInterface/Views/ScriptContentView.js trunk/Source/WebInspectorUI/UserInterface/Views/TextResourceContentView.js Diff Modified: trunk/Source/WebInspectorUI/ChangeLog (252703 => 252704) --- trunk/Source/WebInspectorUI/ChangeLog 2019-11-20 21:04:04 UTC (rev 252703) +++ trunk/Source/WebInspectorUI/ChangeLog 2019-11-20 21:23:36 UTC (rev 252704) @@ -1,3 +1,38 @@ +2019-11-20 Yury Semikhatsky + +Web Inspector: REGRESSION(r250618): main resource view is empty when pausing on inline 'debugger' statement +https://bugs.webkit.org/show_bug.cgi?id=204086 + +Reviewed by Devin Rousso. + +SourceCodeRevision.currentRevision doesn't create new revisions under the hood anymore. +This allows to avoid undesirable side effects when e.g. text editor tries to read current +content of the SourceCode which results in a new revision (with empty content). +New method editableRevision is introduced for applying changes to the resource while +keeping original content revision intact. + +* UserInterface/Controllers/CSSManager.js: +(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound): +(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges): +(WI.CSSManager.prototype._resourceContentDidChange): +(WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent): +* UserInterface/Models/SourceCode.js: +(WI.SourceCode.prototype.get currentRevision): +(WI.SourceCode.prototype.get editableRevision): +(WI.SourceCode.prototype.get content): +(WI.SourceCode.prototype.revisionContentDidChange): +* UserInterface/Views/FontResourceContentView.js: +(WI.FontResourceContentView.prototype.dropZoneHandleDrop): +* UserInterface/Views/ImageResourceContentView.js: +(WI.ImageResourceContentView.prototype.dropZoneHandleDrop): +* UserInterface/Views/ResourceContentView.js: +(WI.ResourceContentView.prototype._contentAvailable): +(WI.ResourceContentView.prototype._handleImportLocalResourceOverride): +* UserInterface/Views/ScriptContentView.js: +(WI.ScriptContentView.prototype._handleTextEditorContentDidChange): +* UserInterface/Views/TextResourceContentView.js: +(WI.TextResourceContentView.prototype._textEditorContentDidChange): + 2019-11-19 Devin Rousso Web Inspector: Local Overrides: the placeholder for the MIME type, status code, and status text is the same as the placeholder URL Modified:
[webkit-changes] [252305] trunk/LayoutTests
Title: [252305] trunk/LayoutTests Revision 252305 Author yu...@chromium.org Date 2019-11-08 22:27:57 -0800 (Fri, 08 Nov 2019) Log Message New test inspector-protocol/page/archive.html added in r154828 fails on EFL, Qt, GTK https://bugs.webkit.org/show_bug.cgi?id=120682 Reviewed by Devin Rousso. Generate custom expectations for inspector-protocol/page/archive.html on the platforms where Page.archive is not supported yet. * inspector/page/archive.html: 'Not supported' is a valid response on some platforms. * platform/gtk/TestExpectations: * platform/gtk/inspector/page/archive-expected.txt: Added. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/inspector/page/archive.html trunk/LayoutTests/platform/gtk/TestExpectations Added Paths trunk/LayoutTests/platform/gtk/inspector/page/ trunk/LayoutTests/platform/gtk/inspector/page/archive-expected.txt Diff Modified: trunk/LayoutTests/ChangeLog (252304 => 252305) --- trunk/LayoutTests/ChangeLog 2019-11-09 04:09:36 UTC (rev 252304) +++ trunk/LayoutTests/ChangeLog 2019-11-09 06:27:57 UTC (rev 252305) @@ -1,3 +1,17 @@ +2019-11-08 Yury Semikhatsky + +New test inspector-protocol/page/archive.html added in r154828 fails on EFL, Qt, GTK +https://bugs.webkit.org/show_bug.cgi?id=120682 + +Reviewed by Devin Rousso. + +Generate custom expectations for inspector-protocol/page/archive.html on the platforms +where Page.archive is not supported yet. + +* inspector/page/archive.html: 'Not supported' is a valid response on some platforms. +* platform/gtk/TestExpectations: +* platform/gtk/inspector/page/archive-expected.txt: Added. + 2019-11-08 Peng Liu Entering/Exiting Picture-in-Picture mode through webkitSetPresentationMode() does not fire events (enterpictureinpicture and leavepictureinpicture) defined in the spec Modified: trunk/LayoutTests/inspector/page/archive.html (252304 => 252305) --- trunk/LayoutTests/inspector/page/archive.html 2019-11-09 04:09:36 UTC (rev 252304) +++ trunk/LayoutTests/inspector/page/archive.html 2019-11-09 06:27:57 UTC (rev 252305) @@ -6,14 +6,17 @@ { InspectorProtocol.sendCommand("Page.enable", {}); InspectorProtocol.sendCommand("Page.archive", {}, function(event) { -var data = "" -if (!data) -ProtocolTest.log("FAIL: no data"); -else if (data.length < 1000) -ProtocolTest.log("FAIL: unexpectedly short data. A serialized archive should be pretty large."); -else -ProtocolTest.log("PASS: Received archive data."); - +if (event.error) { +ProtocolTest.fail(`Page.archive returned error: '${event.error.message}'.`); +} else { +let data = "" +if (!data) +ProtocolTest.fail("no data"); +else if (data.length < 1000) +ProtocolTest.fail("unexpectedly short data. A serialized archive should be pretty large."); +else +ProtocolTest.pass("Received archive data."); +} ProtocolTest.completeTest(); }); } Modified: trunk/LayoutTests/platform/gtk/TestExpectations (252304 => 252305) --- trunk/LayoutTests/platform/gtk/TestExpectations 2019-11-09 04:09:36 UTC (rev 252304) +++ trunk/LayoutTests/platform/gtk/TestExpectations 2019-11-09 06:27:57 UTC (rev 252305) @@ -2318,8 +2318,6 @@ webkit.org/b/116957 media/track/track-automatic-subtitles.html [ Timeout ] -webkit.org/b/120682 inspector/page/archive.html [ Timeout ] - webkit.org/b/147518 inspector/debugger/nested-inspectors.html [ Timeout ] Bug(GTK) plugins/reloadplugins-and-pages.html [ Timeout ] Added: trunk/LayoutTests/platform/gtk/inspector/page/archive-expected.txt (0 => 252305) --- trunk/LayoutTests/platform/gtk/inspector/page/archive-expected.txt (rev 0) +++ trunk/LayoutTests/platform/gtk/inspector/page/archive-expected.txt 2019-11-09 06:27:57 UTC (rev 252305) @@ -0,0 +1,2 @@ +FAIL: Page.archive returned error: 'Not supported'. + ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [252214] trunk/LayoutTests
Title: [252214] trunk/LayoutTests Revision 252214 Author yu...@chromium.org Date 2019-11-07 15:44:55 -0800 (Thu, 07 Nov 2019) Log Message Web Inspector: http/tests/inspector/target/target-events-for-provisional-page.html is flaky when running with other tests https://bugs.webkit.org/show_bug.cgi?id=203965 Reviewed by Devin Rousso. Enforce enableProcessSwapOnWindowOpen=true for the test so that it PSON is enabled regardless of other tests that may run before (the test may reuse Page instance from the previous test on which Page::openedByDOMWithOpener==true). * http/tests/inspector/target/target-events-for-provisional-page.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/http/tests/inspector/target/target-events-for-provisional-page.html Diff Modified: trunk/LayoutTests/ChangeLog (252213 => 252214) --- trunk/LayoutTests/ChangeLog 2019-11-07 23:39:56 UTC (rev 252213) +++ trunk/LayoutTests/ChangeLog 2019-11-07 23:44:55 UTC (rev 252214) @@ -1,3 +1,17 @@ +2019-11-07 Yury Semikhatsky + +Web Inspector: http/tests/inspector/target/target-events-for-provisional-page.html is flaky when running with other tests +https://bugs.webkit.org/show_bug.cgi?id=203965 + + +Reviewed by Devin Rousso. + +Enforce enableProcessSwapOnWindowOpen=true for the test so that it PSON is enabled regardless of other tests +that may run before (the test may reuse Page instance from the previous test on which +Page::openedByDOMWithOpener==true). + +* http/tests/inspector/target/target-events-for-provisional-page.html: + 2019-11-07 Kate Cheney Many resourceLoadStatistics tests and storageAccess tests using the ITP Modified: trunk/LayoutTests/http/tests/inspector/target/target-events-for-provisional-page.html (252213 => 252214) --- trunk/LayoutTests/http/tests/inspector/target/target-events-for-provisional-page.html 2019-11-07 23:39:56 UTC (rev 252213) +++ trunk/LayoutTests/http/tests/inspector/target/target-events-for-provisional-page.html 2019-11-07 23:44:55 UTC (rev 252214) @@ -1,4 +1,4 @@ - + ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [252027] trunk/LayoutTests
Title: [252027] trunk/LayoutTests
Revision 252027
Author yu...@chromium.org
Date 2019-11-04 16:26:32 -0800 (Mon, 04 Nov 2019)
Log Message
[GTK] Inspector protocol tests timing out on the bots
https://bugs.webkit.org/show_bug.cgi?id=122571
Reviewed by Devin Rousso.
Mark more inspector tests as passing on GTK.
* inspector/dom/focus.html: Remove 'focus' event listener before closing dummy inspector
window. Otherwise it triggers a WebPage::setActivityState which in turn triggers focus
event on the page and on the focused element which results in two extra 'focus' lines printed.
To be clear this only avoids the extra text output that could be added to the output. Timeout
and crash problems must have been fixed before (likely by the recent changes in local inspector
client).
* platform/gtk/TestExpectations:
Modified Paths
trunk/LayoutTests/ChangeLog
trunk/LayoutTests/inspector/dom/focus.html
trunk/LayoutTests/platform/gtk/TestExpectations
Diff
Modified: trunk/LayoutTests/ChangeLog (252026 => 252027)
--- trunk/LayoutTests/ChangeLog 2019-11-05 00:18:18 UTC (rev 252026)
+++ trunk/LayoutTests/ChangeLog 2019-11-05 00:26:32 UTC (rev 252027)
@@ -1,3 +1,20 @@
+2019-11-04 Yury Semikhatsky
+
+[GTK] Inspector protocol tests timing out on the bots
+https://bugs.webkit.org/show_bug.cgi?id=122571
+
+Reviewed by Devin Rousso.
+
+Mark more inspector tests as passing on GTK.
+
+* inspector/dom/focus.html: Remove 'focus' event listener before closing dummy inspector
+window. Otherwise it triggers a WebPage::setActivityState which in turn triggers focus
+event on the page and on the focused element which results in two extra 'focus' lines printed.
+To be clear this only avoids the extra text output that could be added to the output. Timeout
+and crash problems must have been fixed before (likely by the recent changes in local inspector
+client).
+* platform/gtk/TestExpectations:
+
2019-11-04 Truitt Savell
Unreviewed, rolling out r251993.
Modified: trunk/LayoutTests/inspector/dom/focus.html (252026 => 252027)
--- trunk/LayoutTests/inspector/dom/focus.html 2019-11-05 00:18:18 UTC (rev 252026)
+++ trunk/LayoutTests/inspector/dom/focus.html 2019-11-05 00:26:32 UTC (rev 252027)
@@ -2,12 +2,21 @@