[webkit-changes] [295511] trunk

2022-06-13 Thread yurys
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

2022-06-13 Thread yurys
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

2022-06-10 Thread yurys
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

2022-05-27 Thread yurys
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

2022-05-20 Thread yurys
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

2022-05-17 Thread yurys
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

2022-05-17 Thread yurys
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

2022-05-16 Thread yurys
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

2022-05-12 Thread yurys
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

2022-05-11 Thread yurys
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

2022-05-03 Thread yurys
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

2022-04-29 Thread yurys
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

2022-04-05 Thread yurys
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

2022-04-02 Thread yurys
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

2021-06-10 Thread yurys
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

2021-05-05 Thread yurys
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

2020-07-07 Thread yurys
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

2020-05-16 Thread yurys
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

2020-01-06 Thread yurys
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

2019-12-18 Thread yurys
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

2019-12-12 Thread yurys
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

2019-12-05 Thread yurys
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

2019-12-05 Thread yurys
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

2019-12-04 Thread yurys
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

2019-11-20 Thread yurys
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

2019-11-08 Thread yurys
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

2019-11-07 Thread yurys
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

2019-11-04 Thread yurys
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 @@