[webkit-changes] [294966] trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py

2022-05-27 Thread aboya
Title: [294966] trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py








Revision 294966
Author ab...@igalia.com
Date 2022-05-27 16:40:43 -0700 (Fri, 27 May 2022)


Log Message
git-webkit pr: Show server response when updating an issue fails

Reviewed by Jonathan Bedard.

Small changes are also made to the request() method to make it more
reusable: now it can handle methods other than GET, and can print custom
error messages when requests fail.

Bare usages of python-requests have been refactored to use
self.request() where possible (that is, when the path being accessed is
within the repo URL).

* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

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

Modified Paths

trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py




Diff

Modified: trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py (294965 => 294966)

--- trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py	2022-05-27 23:09:30 UTC (rev 294965)
+++ trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py	2022-05-27 23:40:43 UTC (rev 294966)
@@ -137,7 +137,7 @@
 save_in_keyring=save_in_keyring,
 )
 
-def request(self, path=None, params=None, headers=None, authenticated=None, paginate=True):
+def request(self, path=None, params=None, method='GET', headers=None, authenticated=None, paginate=True, json=None, error_message=None):
 headers = {key: value for key, value in headers.items()} if headers else dict()
 headers['Accept'] = headers.get('Accept', 'application/vnd.github.v3+json')
 
@@ -158,10 +158,12 @@
 name=self.name,
 path='{}'.format(path) if path else '',
 )
-response = requests.get(url, params=params, headers=headers, auth=auth)
+response = requests.request(method, url, params=params, headers=headers, auth=auth, json=json)
 if authenticated is None and not auth and response.status_code // 100 == 4:
-return self.request(path=path, params=params, headers=headers, authenticated=True, paginate=paginate)
-if response.status_code != 200:
+return self.request(path=path, params=params, method=method, headers=headers, authenticated=True, paginate=paginate, json=json, error_message=error_message)
+if response.status_code // 100 != 2:
+if error_message:
+sys.stderr.write("{}\n".format(error_message))
 sys.stderr.write("Request to '{}' returned status code '{}'\n".format(url, response.status_code))
 message = response.json().get('message')
 if message:
@@ -193,6 +195,9 @@
 )
 if response.status_code // 100 != 2:
 sys.stderr.write("Request to '{}' returned status code '{}'\n".format(url, response.status_code))
+message = response.json().get('message')
+if message:
+sys.stderr.write('Message: {}\n'.format(message))
 sys.stderr.write(self.REFRESH_TOKEN_PROMPT)
 return None
 
@@ -368,19 +373,14 @@
 for label in labels:
 if not self.labels.get(label):
 raise ValueError("'{}' is not a label for '{}'".format(label, self.url))
-response = requests.put(
-'{api_url}/repos/{owner}/{name}/issues/{id}/labels'.format(
-api_url=self.api_url,
-owner=self.owner,
-name=self.name,
-id=issue.id,
-), auth=HTTPBasicAuth(*self.credentials(required=True)),
-headers=dict(Accept='application/vnd.github.v3+json'),
+response = self.request(
+'issues/{id}/labels'.format(id=issue.id),
+method='PUT',
+authenticated=True,
 json=dict(labels=labels),
+error_message="Failed to modify '{}'".format(issue)
 )
-if response.status_code // 100 != 2:
-sys.stderr.write("Failed to modify '{}'\n".format(issue))
-sys.stderr.write(self.REFRESH_TOKEN_PROMPT)
+if not response:
 if not update_dict:
 return None
 elif project and component and version:
@@ -390,45 +390,33 @@
 
 if update_dict:
 update_dict['number'] = [issue.id]
-response = requests.patch(
-'{api_url}/repos/{owner}/{name}/issues/{id}'.format(
-api_url=self.api_url,
-owner=self.owner,
-name=self.name,
-id=issue.id,
-), auth=HTTPBasicAuth(*self.credentials(required=True)),
-headers=dict(Accept='application/vnd.github.v3+json'),
+response = self.request(
+'issues/{id}'.format(id=issue.id),
+method='PATCH',
+

[webkit-changes] [294491] trunk/Tools/Scripts/libraries

2022-05-19 Thread aboya
Title: [294491] trunk/Tools/Scripts/libraries








Revision 294491
Author ab...@igalia.com
Date 2022-05-19 10:13:30 -0700 (Thu, 19 May 2022)


Log Message
git-webkit setup: Fix various pitfalls with credentials input
https://bugs.webkit.org/show_bug.cgi?id=240574

Reviewed by Jonathan Bedard.

Yesterday I tried to run `git webkit setup`.

To put it mildly, it wasn't a smooth ride. I ended up having to debug the
tooling for hours just to be able to get it running.

This patch fixes several issues I found during the process, so that the next
unlucky person doesn't have to go through this again.

1. Whenever a request failed, the response from the server was not shown in
anyway, instead printing an unhelpful generic message. This patch adds code to
write to the screen the responses obtained from the GitHub API, so that the
next person having problems with it doesn't need to add debugging code to know
what is wrong.

2. When copying and pasting tokens from the browser it's very easy to
accidentally grab some leading or trailing whitespace. This is especially easy
to miss for the blind terminal key prompt. This patch adds code to trim these
fields. This is generally good UX practice since leading and trailing spaces
are virtually always accidental. [1]

3. The validation code for GitHub username and token was not run under `git
webkit setup`. Looking at the code it's clear the intention was for that
validation to be done to check (1) a plain GitHub username is used instead of
an email address associated to that account and (2) that a test log-in
succeeds. But because the credentials function is called in many places, the
first instance that actually gets called happens to not set validate=True in
the arguments.

   Validating passwords that have just been input for the first time should not
be an optional feature that is disabled by default. Otherwise any mistake in
the credentials input can cause cryptic errors and the user is left on their
own to figure out what is going on, and eventually, how to manually interact
with the keychain to remove or edit the bogus username and/or token. This patch
makes changes so that validation is made whenever the user is prompt for
username and token, no matter in what codepath this becomes necessary.

[1] https://tonyshowoff.com/articles/should-you-trim-passwords/

* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:
(Tracker.credentials):
* Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
* Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:
(credentials):
* Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.github):

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

Modified Paths

trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py
trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py
trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py
trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py




Diff

Modified: trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py (294490 => 294491)

--- trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py	2022-05-19 17:10:02 UTC (rev 294490)
+++ trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py	2022-05-19 17:13:30 UTC (rev 294491)
@@ -125,7 +125,8 @@
 url=""
 required=required,
 prompt=self.url.split('//')[-1],
-validater=validater if validate else None,
+validater=validater,
+validate_existing_credentials=validate
 )
 
 def _login_arguments(self, required=False, query=None):


Modified: trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py (294490 => 294491)

--- trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py	2022-05-19 17:10:02 UTC (rev 294490)
+++ trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py	2022-05-19 17:13:30 UTC (rev 294491)
@@ -125,7 +125,8 @@
 name=self.url.split('/')[2].replace('.', '_').upper(),
 prompt=prompt,
 key_name='token',
-validater=validater if validate else None,
+validater=validater,
+validate_existing_credentials=validate,
 save_in_keyring=save_in_keyring,
 )
 


Modified: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py (294490 => 294491)

--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py	2022-05-19 17:10:02 UTC (rev 294490)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py	2022-05-19 17:13:30 UTC (rev 294491)
@@ -29,7 +29,7 @@
 _cache = dict()
 
 
-def credentials(url, required=True, name=None, prompt=None, key_name='password', validater=None, retry=3, save_in_keyring=None):
+def credentials(url, required=True, name=None, prompt=None, key_name='password', validater=None, validate_existing_credentials=False, retry=3, save_in_keyring=None):
 

[webkit-changes] [294483] trunk/metadata/contributors.json

2022-05-19 Thread aboya
Title: [294483] trunk/metadata/contributors.json








Revision 294483
Author ab...@igalia.com
Date 2022-05-19 08:36:21 -0700 (Thu, 19 May 2022)


Log Message
Link Alicia Boya Garcia's GitHub to contributors.json

Reviewed by Jonathan Bedard.

* metadata/contributors.json:

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

Modified Paths

trunk/metadata/contributors.json




Diff

Modified: trunk/metadata/contributors.json (294482 => 294483)

--- trunk/metadata/contributors.json	2022-05-19 15:28:47 UTC (rev 294482)
+++ trunk/metadata/contributors.json	2022-05-19 15:36:21 UTC (rev 294483)
@@ -487,6 +487,7 @@
  "ab...@igalia.com",
  "ntr...@gmail.com"
   ],
+  "github" : "ntrrgc",
   "name" : "Alicia Boya Garcia",
   "nicks" : [
  "ntrrgc",






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


[webkit-changes] [286485] trunk

2021-12-03 Thread aboya
Title: [286485] trunk








Revision 286485
Author ab...@igalia.com
Date 2021-12-03 00:25:14 -0800 (Fri, 03 Dec 2021)


Log Message
[MSE] Fix erase range to prevent accidental deletion in files with changing durations
https://bugs.webkit.org/show_bug.cgi?id=233528

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

In didReceiveSample(), eraseBeginTime was being set to
highestPresentationTimestamp minus a tolerance. The tolerance is not
needed since highestPresentationTimestamp is loaded from exact frame
timestamps, and can cause accidental frame erasure in situations where
there are frames with frames smaller than the tolerance, which is the
case for certain MP4 files.

Test: media/media-source/media-source-append-tiny-durations.html

* platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::didReceiveSample):

LayoutTests:

* media/media-source/media-source-append-tiny-durations-expected.txt: Added.
* media/media-source/media-source-append-tiny-durations.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.cpp


Added Paths

trunk/LayoutTests/media/media-source/media-source-append-tiny-durations-expected.txt
trunk/LayoutTests/media/media-source/media-source-append-tiny-durations.html




Diff

Modified: trunk/LayoutTests/ChangeLog (286484 => 286485)

--- trunk/LayoutTests/ChangeLog	2021-12-03 08:06:10 UTC (rev 286484)
+++ trunk/LayoutTests/ChangeLog	2021-12-03 08:25:14 UTC (rev 286485)
@@ -1,3 +1,13 @@
+2021-12-03  Alicia Boya García  
+
+[MSE] Fix erase range to prevent accidental deletion in files with changing durations
+https://bugs.webkit.org/show_bug.cgi?id=233528
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+* media/media-source/media-source-append-tiny-durations-expected.txt: Added.
+* media/media-source/media-source-append-tiny-durations.html: Added.
+
 2021-12-02  Chris Dumez  
 
 html/semantics/forms/constraints/form-validation-validity-valid.html WPT test is failing


Added: trunk/LayoutTests/media/media-source/media-source-append-tiny-durations-expected.txt (0 => 286485)

--- trunk/LayoutTests/media/media-source/media-source-append-tiny-durations-expected.txt	(rev 0)
+++ trunk/LayoutTests/media/media-source/media-source-append-tiny-durations-expected.txt	2021-12-03 08:25:14 UTC (rev 286485)
@@ -0,0 +1,27 @@
+This tests that an append of non-overlapping samples of varying durations, some of them under a millisecond, don't trigger accidental erasure.
+This is done in some MP4 files, where decode durations are manipulated to code media containing B-frames while maintaining a start PTS = 0.
+
+RUN(video.src = ""
+EVENT(sourceopen)
+RUN(sourceBuffer = source.addSourceBuffer("video/mock; codecs=mock"))
+RUN(sourceBuffer.appendBuffer(initSegment))
+EVENT(updateend)
+RUN(sourceBuffer.appendBuffer(makeSamples(1)))
+EVENT(updateend)
+EXPECTED (bufferedSamples.length == '5') OK
+{PTS({0/1 = 0.00}), DTS({0/1 = 0.00}), duration({1/1 = 0.000100}), flags(1), generation(1)}
+{PTS({2000/1 = 0.20}), DTS({1/1 = 0.000100}), duration({999/1 = 0.099900}), flags(0), generation(1)}
+{PTS({1000/1 = 0.10}), DTS({1000/1 = 0.10}), duration({1/1 = 0.000100}), flags(0), generation(1)}
+{PTS({4000/1 = 0.40}), DTS({1001/1 = 0.100100}), duration({999/1 = 0.099900}), flags(0), generation(1)}
+{PTS({3000/1 = 0.30}), DTS({2000/1 = 0.20}), duration({1000/1 = 0.10}), flags(0), generation(1)}
+Testing the behavior is consistent when re-appending.
+RUN(sourceBuffer.appendBuffer(makeSamples(2)))
+EVENT(updateend)
+EXPECTED (bufferedSamples.length == '5') OK
+{PTS({0/1 = 0.00}), DTS({0/1 = 0.00}), duration({1/1 = 0.000100}), flags(1), generation(2)}
+{PTS({2000/1 = 0.20}), DTS({1/1 = 0.000100}), duration({999/1 = 0.099900}), flags(0), generation(2)}
+{PTS({1000/1 = 0.10}), DTS({1000/1 = 0.10}), duration({1/1 = 0.000100}), flags(0), generation(2)}
+{PTS({4000/1 = 0.40}), DTS({1001/1 = 0.100100}), duration({999/1 = 0.099900}), flags(0), generation(2)}
+{PTS({3000/1 = 0.30}), DTS({2000/1 = 0.20}), duration({1000/1 = 0.10}), flags(0), generation(2)}
+END OF TEST
+


Added: trunk/LayoutTests/media/media-source/media-source-append-tiny-durations.html (0 => 286485)

--- trunk/LayoutTests/media/media-source/media-source-append-tiny-durations.html	(rev 0)
+++ trunk/LayoutTests/media/media-source/media-source-append-tiny-durations.html	2021-12-03 08:25:14 UTC (rev 286485)
@@ -0,0 +1,63 @@
+
+
+
+media-source-append-tiny-durations
+
+var source;
+var sourceBuffer;
+var initSegment;
+
+if (window.internals)
+internals.initializeMockMediaSource();
+
+function makeSamples(generation) {
+return 

[webkit-changes] [284711] trunk

2021-10-22 Thread aboya
Title: [284711] trunk








Revision 284711
Author ab...@igalia.com
Date 2021-10-22 13:22:52 -0700 (Fri, 22 Oct 2021)


Log Message
[MSE][GStreamer] Honor MP4 edit lists, bis
https://bugs.webkit.org/show_bug.cgi?id=231019

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch takes into consideration the GstSegment attached to a
sample to offset the PTS and DTS. This ensures accurate timestamps are
obtained for MP4 files containing edit lists (commonly necessary for
files containing video with B frames to have PTS starting at zero).

Before this was implemented, a workaround was in place based on a
heuristic (DTS = 0 && PTS > 0 && PTS < 0.1). The workaround is
preserved for the sake of content without proper edit lists, but
any edit list takes preference.

The time fudge factor has been modified from 0.083 seconds up to
0.100 seconds to accomodate the size of the empty edit in test.mp4
used by Web Platform Tests.

This test fixes improves expectation results and fixes two subtests in
imported/w3c/web-platform-tests/media-source/mediasource-remove.html.

This is a reworked version that avoids using gst_sample_set_buffer()
which is not available on GStreamer 1.14, and fixes an issue where
frames that would get a negative DTS were not being enqueued properly.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::currentTimeFudgeFactor):
* platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::timeFudgeFactor const):
* platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::toGstClockTime):
* platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::bufferTimeToStreamTime):
(WebCore::AppendPipeline::appsinkNewSample):

LayoutTests:

Update expectations for mediasource-remove.html in the GStreamer
ports, as a couple subtests get fixed.

* platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp
trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.h
trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (284710 => 284711)

--- trunk/LayoutTests/ChangeLog	2021-10-22 19:50:43 UTC (rev 284710)
+++ trunk/LayoutTests/ChangeLog	2021-10-22 20:22:52 UTC (rev 284711)
@@ -1,3 +1,15 @@
+2021-10-22  Alicia Boya García  
+
+[MSE][GStreamer] Honor MP4 edit lists, bis
+https://bugs.webkit.org/show_bug.cgi?id=231019
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Update expectations for mediasource-remove.html in the GStreamer
+ports, as a couple subtests get fixed.
+
+* platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
+
 2021-10-22  Chris Dumez  
 
 Unreviewed, drop custom iOS expectations for noopener-noreferrer-sizing.window.html.


Modified: trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt (284710 => 284711)

--- trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt	2021-10-22 19:50:43 UTC (rev 284710)
+++ trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt	2021-10-22 20:22:52 UTC (rev 284711)
@@ -11,8 +11,8 @@
 PASS Test aborting a remove operation.
 PASS Test remove with a start at the duration.
 PASS Test remove transitioning readyState from 'ended' to 'open'.
-FAIL Test removing all appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
-FAIL Test removing beginning of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
-FAIL Test removing the middle of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
-FAIL Test removing the end of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
+PASS Test removing all appended data.
+PASS Test removing beginning of appended data.
+FAIL Test removing the middle of appended data. assert_equals: Buffered ranges after remove(). expected "{ [0.095, 0.997) [3.298, 6.548) }" but got "{ [0.095, 0.975) [3.298, 6.548) }"
+FAIL Test removing the end of appended data. assert_equals: Buffered ranges after remove(). expected "{ [0.095, 1.022) }" but got "{ [0.095, 0.995) }"
 


Modified: trunk/Source/WebCore/ChangeLog (284710 => 284711)

--- 

[webkit-changes] [284087] trunk

2021-10-13 Thread aboya
Title: [284087] trunk








Revision 284087
Author ab...@igalia.com
Date 2021-10-13 03:21:50 -0700 (Wed, 13 Oct 2021)


Log Message
Unreviewed, reverting r283609

Build failure with GStreamer 1.14 and regression causing frame
corruption.

Reverted changeset:

"[MSE][GStreamer] Honor MP4 edit lists"
https://bugs.webkit.org/show_bug.cgi?id=231019
https://commits.webkit.org/r283609

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp
trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.h
trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (284086 => 284087)

--- trunk/LayoutTests/ChangeLog	2021-10-13 10:00:32 UTC (rev 284086)
+++ trunk/LayoutTests/ChangeLog	2021-10-13 10:21:50 UTC (rev 284087)
@@ -1,3 +1,16 @@
+2021-10-13  Alicia Boya García  
+
+Unreviewed, reverting r283609
+
+Build failure with GStreamer 1.14 and regression causing frame
+corruption.
+
+Reverted changeset:
+
+"[MSE][GStreamer] Honor MP4 edit lists"
+https://bugs.webkit.org/show_bug.cgi?id=231019
+https://commits.webkit.org/r283609
+
 2021-10-13  Youenn Fablet  
 
 Add support for WebRTC media capabilities


Modified: trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt (284086 => 284087)

--- trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt	2021-10-13 10:00:32 UTC (rev 284086)
+++ trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt	2021-10-13 10:21:50 UTC (rev 284087)
@@ -11,8 +11,8 @@
 PASS Test aborting a remove operation.
 PASS Test remove with a start at the duration.
 PASS Test remove transitioning readyState from 'ended' to 'open'.
-PASS Test removing all appended data.
-PASS Test removing beginning of appended data.
-FAIL Test removing the middle of appended data. assert_equals: Buffered ranges after remove(). expected "{ [0.095, 0.997) [3.298, 6.548) }" but got "{ [0.095, 0.975) [3.298, 6.548) }"
-FAIL Test removing the end of appended data. assert_equals: Buffered ranges after remove(). expected "{ [0.095, 1.022) }" but got "{ [0.095, 0.995) }"
+FAIL Test removing all appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
+FAIL Test removing beginning of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
+FAIL Test removing the middle of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
+FAIL Test removing the end of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
 


Modified: trunk/Source/WebCore/ChangeLog (284086 => 284087)

--- trunk/Source/WebCore/ChangeLog	2021-10-13 10:00:32 UTC (rev 284086)
+++ trunk/Source/WebCore/ChangeLog	2021-10-13 10:21:50 UTC (rev 284087)
@@ -1,3 +1,16 @@
+2021-10-13  Alicia Boya García  
+
+Unreviewed, reverting r283609
+
+Build failure with GStreamer 1.14 and regression causing frame
+corruption.
+
+Reverted changeset:
+
+"[MSE][GStreamer] Honor MP4 edit lists"
+https://bugs.webkit.org/show_bug.cgi?id=231019
+https://commits.webkit.org/r283609
+
 2021-10-13  Carlos Garcia Campos  
 
 Unreviewed. Fix GTK build with ATSPI enabled after r283851


Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp (284086 => 284087)

--- trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp	2021-10-13 10:00:32 UTC (rev 284086)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp	2021-10-13 10:21:50 UTC (rev 284087)
@@ -323,8 +323,8 @@
 
 const MediaTime& MediaSource::currentTimeFudgeFactor()
 {
-// Allow hasCurrentTime() to be off by as much as 100ms.
-static NeverDestroyed fudgeFactor(1, 10);
+// Allow hasCurrentTime() to be off by as much as the length of two 24fps video frames
+static NeverDestroyed fudgeFactor(2002, 24000);
 return fudgeFactor;
 }
 


Modified: trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.h (284086 => 284087)

--- trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.h	2021-10-13 10:00:32 UTC (rev 284086)
+++ trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.h	2021-10-13 10:21:50 UTC (rev 284087)
@@ -150,7 +150,7 @@
 protected:
 // The following method should never be called directly and be overridden instead.
 WEBCORE_EXPORT virtual void append(Vector&&);
-virtual 

[webkit-changes] [283609] trunk

2021-10-06 Thread aboya
Title: [283609] trunk








Revision 283609
Author ab...@igalia.com
Date 2021-10-06 02:48:38 -0700 (Wed, 06 Oct 2021)


Log Message
[MSE][GStreamer] Honor MP4 edit lists
https://bugs.webkit.org/show_bug.cgi?id=231019

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch takes into consideration the GstSegment attached to a
sample to offset the PTS and DTS. This ensures accurate timestamps are
obtained for MP4 files containing edit lists (commonly necessary for
files containing video with B frames to have PTS starting at zero).

Before this was implemented, a workaround was in place based on a
heuristic (DTS = 0 && PTS > 0 && PTS < 0.1). The workaround is
preserved for the sake of content without proper edit lists, but
any edit list takes preference.

The time fudge factor has been modified from 0.083 seconds up to
0.100 seconds to accomodate the size of the empty edit in test.mp4
used by Web Platform Tests.

This test fixes improves expectation results and fixes two subtests in
imported/w3c/web-platform-tests/media-source/mediasource-remove.html.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::currentTimeFudgeFactor):
* platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::timeFudgeFactor const):
* platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::extendToTheBeginning): Deleted.
* platform/graphics/gstreamer/MediaSampleGStreamer.h:
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::bufferTimeToStreamTimeClamped):
(WebCore::AppendPipeline::appsinkNewSample):

LayoutTests:

Update expectations for mediasource-remove.html in the GStreamer
ports, as a couple subtests get fixed.

* platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp
trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.h
trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (283608 => 283609)

--- trunk/LayoutTests/ChangeLog	2021-10-06 09:35:17 UTC (rev 283608)
+++ trunk/LayoutTests/ChangeLog	2021-10-06 09:48:38 UTC (rev 283609)
@@ -1,3 +1,15 @@
+2021-10-06  Alicia Boya García  
+
+[MSE][GStreamer] Honor MP4 edit lists
+https://bugs.webkit.org/show_bug.cgi?id=231019
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Update expectations for mediasource-remove.html in the GStreamer
+ports, as a couple subtests get fixed.
+
+* platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
+
 2021-10-05  John Wilander  
 
 PCM: Allow measurement of links in nested, cross-site iframes


Modified: trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt (283608 => 283609)

--- trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt	2021-10-06 09:35:17 UTC (rev 283608)
+++ trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt	2021-10-06 09:48:38 UTC (rev 283609)
@@ -11,8 +11,8 @@
 PASS Test aborting a remove operation.
 PASS Test remove with a start at the duration.
 PASS Test remove transitioning readyState from 'ended' to 'open'.
-FAIL Test removing all appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
-FAIL Test removing beginning of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
-FAIL Test removing the middle of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
-FAIL Test removing the end of appended data. assert_equals: Initial buffered range. expected "{ [0.095, 6.548) }" but got "{ [0.000, 6.548) }"
+PASS Test removing all appended data.
+PASS Test removing beginning of appended data.
+FAIL Test removing the middle of appended data. assert_equals: Buffered ranges after remove(). expected "{ [0.095, 0.997) [3.298, 6.548) }" but got "{ [0.095, 0.975) [3.298, 6.548) }"
+FAIL Test removing the end of appended data. assert_equals: Buffered ranges after remove(). expected "{ [0.095, 1.022) }" but got "{ [0.095, 0.995) }"
 


Modified: trunk/Source/WebCore/ChangeLog (283608 => 283609)

--- trunk/Source/WebCore/ChangeLog	2021-10-06 09:35:17 UTC (rev 283608)
+++ trunk/Source/WebCore/ChangeLog	2021-10-06 09:48:38 UTC (rev 283609)
@@ -1,3 +1,38 @@
+2021-10-06  Alicia Boya García  
+
+[MSE][GStreamer] Honor MP4 edit lists
+

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

2021-09-28 Thread aboya
Title: [283176] trunk/Source/WebCore








Revision 283176
Author ab...@igalia.com
Date 2021-09-28 09:32:30 -0700 (Tue, 28 Sep 2021)


Log Message
[MSE][GStreamer] Don't create MediaSourceTrackGStreamer objects twice for the same track
https://bugs.webkit.org/show_bug.cgi?id=230829

Reviewed by Xabier Rodriguez-Calvar.

The existing code in
SourceBufferPrivateGStreamer::didReceiveInitializationSegment()
was not checking if the track already existing, creating and
immediately destroying a MediaSourceTrackGStreamer, which then crashed
on an assertion (ASSERTION FAILED: m_isRemoved).

This fixes the following two tests which were crashing with the former
assertion when running in Debug:

- media/media-source/media-mp4-h264-partial-abort.html
- media/media-source/media-source-abort-resets-parser.html

* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (283175 => 283176)

--- trunk/Source/WebCore/ChangeLog	2021-09-28 16:24:56 UTC (rev 283175)
+++ trunk/Source/WebCore/ChangeLog	2021-09-28 16:32:30 UTC (rev 283176)
@@ -1,3 +1,25 @@
+2021-09-28  Alicia Boya García  
+
+[MSE][GStreamer] Don't create MediaSourceTrackGStreamer objects twice for the same track
+https://bugs.webkit.org/show_bug.cgi?id=230829
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+The existing code in
+SourceBufferPrivateGStreamer::didReceiveInitializationSegment()
+was not checking if the track already existing, creating and
+immediately destroying a MediaSourceTrackGStreamer, which then crashed
+on an assertion (ASSERTION FAILED: m_isRemoved).
+
+This fixes the following two tests which were crashing with the former
+assertion when running in Debug:
+
+- media/media-source/media-mp4-h264-partial-abort.html
+- media/media-source/media-source-abort-resets-parser.html
+
+* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
+(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
+
 2021-09-28  Alex Christensen  
 
 Mostly fix Mac CMake build


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp (283175 => 283176)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp	2021-09-28 16:24:56 UTC (rev 283175)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp	2021-09-28 16:32:30 UTC (rev 283176)
@@ -209,17 +209,20 @@
 for (auto& trackInfo : initializationSegment.videoTracks) {
 GRefPtr initialCaps = static_cast(trackInfo.track.get())->initialCaps();
 ASSERT(initialCaps);
-m_tracks.add(trackInfo.track->id(), MediaSourceTrackGStreamer::create(TrackPrivateBaseGStreamer::TrackType::Video, trackInfo.track->id(), WTFMove(initialCaps)));
+if (!m_tracks.contains(trackInfo.track->id()))
+m_tracks.add(trackInfo.track->id(), MediaSourceTrackGStreamer::create(TrackPrivateBaseGStreamer::TrackType::Video, trackInfo.track->id(), WTFMove(initialCaps)));
 }
 for (auto& trackInfo : initializationSegment.audioTracks) {
 GRefPtr initialCaps = static_cast(trackInfo.track.get())->initialCaps();
 ASSERT(initialCaps);
-m_tracks.add(trackInfo.track->id(), MediaSourceTrackGStreamer::create(TrackPrivateBaseGStreamer::TrackType::Audio, trackInfo.track->id(), WTFMove(initialCaps)));
+if (!m_tracks.contains(trackInfo.track->id()))
+m_tracks.add(trackInfo.track->id(), MediaSourceTrackGStreamer::create(TrackPrivateBaseGStreamer::TrackType::Audio, trackInfo.track->id(), WTFMove(initialCaps)));
 }
 for (auto& trackInfo : initializationSegment.textTracks) {
 GRefPtr initialCaps = static_cast(trackInfo.track.get())->initialCaps();
 ASSERT(initialCaps);
-m_tracks.add(trackInfo.track->id(), MediaSourceTrackGStreamer::create(TrackPrivateBaseGStreamer::TrackType::Text, trackInfo.track->id(), WTFMove(initialCaps)));
+if (!m_tracks.contains(trackInfo.track->id()))
+m_tracks.add(trackInfo.track->id(), MediaSourceTrackGStreamer::create(TrackPrivateBaseGStreamer::TrackType::Text, trackInfo.track->id(), WTFMove(initialCaps)));
 }
 
 m_mediaSource->startPlaybackIfHasAllTracks();






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


[webkit-changes] [281849] trunk/Tools

2021-09-01 Thread aboya
Title: [281849] trunk/Tools








Revision 281849
Author ab...@igalia.com
Date 2021-09-01 08:05:58 -0700 (Wed, 01 Sep 2021)


Log Message
[GTK] Fix missing UTF-8 decoding in test crash logs
https://bugs.webkit.org/show_bug.cgi?id=229760

Reviewed by Philippe Normand.

Fix a couple of decoding issues in linux_get_crash_log.py, where
bytestrings were being printed without decoding.

An addditional decoding issue was fixed by Philippe Normand in
driver.py when printing ASan results.

* Scripts/webkitpy/port/driver.py:
(Driver._read_block):
* Scripts/webkitpy/port/linux_get_crash_log.py:
(GDBCrashLogGenerator._get_trace_from_flatpak):
(GDBCrashLogGenerator.generate_crash_log):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/port/driver.py
trunk/Tools/Scripts/webkitpy/port/linux_get_crash_log.py




Diff

Modified: trunk/Tools/ChangeLog (281848 => 281849)

--- trunk/Tools/ChangeLog	2021-09-01 14:54:39 UTC (rev 281848)
+++ trunk/Tools/ChangeLog	2021-09-01 15:05:58 UTC (rev 281849)
@@ -1,3 +1,22 @@
+2021-09-01  Alicia Boya García  
+
+[GTK] Fix missing UTF-8 decoding in test crash logs
+https://bugs.webkit.org/show_bug.cgi?id=229760
+
+Reviewed by Philippe Normand.
+
+Fix a couple of decoding issues in linux_get_crash_log.py, where
+bytestrings were being printed without decoding.
+
+An addditional decoding issue was fixed by Philippe Normand in
+driver.py when printing ASan results.
+
+* Scripts/webkitpy/port/driver.py:
+(Driver._read_block):
+* Scripts/webkitpy/port/linux_get_crash_log.py:
+(GDBCrashLogGenerator._get_trace_from_flatpak):
+(GDBCrashLogGenerator.generate_crash_log):
+
 2021-08-31  Chris Dumez  
 
 Enable SharedArrayBuffer support when COOP/COEP headers are used


Modified: trunk/Tools/Scripts/webkitpy/port/driver.py (281848 => 281849)

--- trunk/Tools/Scripts/webkitpy/port/driver.py	2021-09-01 14:54:39 UTC (rev 281848)
+++ trunk/Tools/Scripts/webkitpy/port/driver.py	2021-09-01 15:05:58 UTC (rev 281849)
@@ -732,7 +732,7 @@
 break
 elif self._check_for_address_sanitizer_violation(err_line):
 asan_violation_detected = True
-self._crash_report_from_driver = b''
+self._crash_report_from_driver = ''
 # ASan report starts with a nondescript line, we only detect the second line.
 end_of_previous_error_line = self.error_from_test.rfind('\n', 0, -1)
 if end_of_previous_error_line > 0:


Modified: trunk/Tools/Scripts/webkitpy/port/linux_get_crash_log.py (281848 => 281849)

--- trunk/Tools/Scripts/webkitpy/port/linux_get_crash_log.py	2021-09-01 14:54:39 UTC (rev 281848)
+++ trunk/Tools/Scripts/webkitpy/port/linux_get_crash_log.py	2021-09-01 15:05:58 UTC (rev 281849)
@@ -121,7 +121,8 @@
 
 proc = self._executive.popen(cmd, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 crash_log, stderr = proc.communicate()
-errors = string_utils.decode(str(stderr or ''), errors='ignore').splitlines()
+crash_log = string_utils.decode(crash_log, errors='ignore')
+errors = string_utils.decode(stderr or '', errors='ignore').splitlines()
 return crash_log, errors
 
 def generate_crash_log(self, stdout, stderr):
@@ -156,7 +157,7 @@
 elif coredumpctl:
 crash_log, errors = self._get_trace_from_systemd(coredumpctl, pid_representation)
 
-stderr_lines = errors + string_utils.decode(str(stderr or ''), errors='ignore').splitlines()
+stderr_lines = errors + string_utils.decode(stderr or '', errors='ignore').splitlines()
 errors_str = '\n'.join(('STDERR: ' + stderr_line) for stderr_line in stderr_lines)
 cppfilt_proc = self._executive.popen(
 ['c++filt'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)






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


[webkit-changes] [281440] trunk

2021-08-23 Thread aboya
Title: [281440] trunk








Revision 281440
Author ab...@igalia.com
Date 2021-08-23 06:22:29 -0700 (Mon, 23 Aug 2021)


Log Message
[MSE][GStreamer] Implement multi-track support
https://bugs.webkit.org/show_bug.cgi?id=229072

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch adds support for SourceBuffer having more than one track in
the GStreamer port.

This fixes the following LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-activesourcebuffers.html
media/media-source/media-source-has-audio-video.html
media/media-source/only-bcp47-language-tags-accepted-as-valid.html

* platform/graphics/gstreamer/GStreamerCommon.h:
(GstIteratorAdaptor::GstIteratorAdaptor):
(GstIteratorAdaptor::iterator::iterator):
(GstIteratorAdaptor::iterator::operator*):
(GstIteratorAdaptor::iterator::operator++):
(GstIteratorAdaptor::iterator::operator==):
(GstIteratorAdaptor::iterator::operator!=):
(GstIteratorAdaptor::begin):
(GstIteratorAdaptor::end):
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::consumeAppsinksAvailableSamples):
(WebCore::AppendPipeline::resetParserState):
(WebCore::AppendPipeline::handleAppsinkNewSampleFromStreamingThread):
(WebCore::createOptionalParserForFormat):
(WebCore::AppendPipeline::generateTrackId):
(WebCore::AppendPipeline::tryCreateTrackFromPad):
(WebCore::AppendPipeline::tryMatchPadToExistingTrack):
(WebCore::AppendPipeline::linkPadWithTrack):
(WebCore::AppendPipeline::makeWebKitTrack):
(WebCore::AppendPipeline::Track::initializeElements):
(WebCore::AppendPipeline::hookTrackEvents):
(WebCore::AppendPipeline::streamTypeToString):
(WebCore::AppendPipeline::id): Deleted.
(WebCore::AppendPipeline::trackId): Deleted.
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples): Deleted.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromStreamingThread): Deleted.
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink): Deleted.
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread): Deleted.
* platform/graphics/gstreamer/mse/AppendPipeline.h:
(WebCore::AppendPipeline::sourceBufferPrivate):
(WebCore::AppendPipeline::Track::Track):
(WebCore::AppendPipeline::appsrc):
(WebCore::AppendPipeline::appsinkCaps): Deleted.
(WebCore::AppendPipeline::track): Deleted.
(WebCore::AppendPipeline::appsink): Deleted.
(WebCore::AppendPipeline::demuxerSrcPadCaps): Deleted.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::setInitialVideoSize):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected): Deleted.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

LayoutTests:

Update expectations and rebaseline one test is which the buffered
ranges have changed slightly due to the audio track previously
discarded now being parsed.

* platform/glib/TestExpectations:
* platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/TestExpectations
trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h




Diff

Modified: trunk/LayoutTests/ChangeLog (281439 => 281440)

--- trunk/LayoutTests/ChangeLog	2021-08-23 07:11:41 UTC (rev 281439)
+++ trunk/LayoutTests/ChangeLog	2021-08-23 13:22:29 UTC (rev 281440)
@@ -1,3 +1,17 @@
+2021-08-23  Alicia Boya García  
+
+[MSE][GStreamer] Implement multi-track support
+https://bugs.webkit.org/show_bug.cgi?id=229072
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Update expectations and rebaseline one test is which the buffered
+ranges have changed slightly due to the audio track previously
+discarded now being parsed.
+
+* platform/glib/TestExpectations:
+* platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
+
 2021-08-22  Yusuke Suzuki  
 
 [JSC] Remove already-shipped wasm option flags


Modified: trunk/LayoutTests/platform/glib/TestExpectations (281439 => 281440)

--- trunk/LayoutTests/platform/glib/TestExpectations	2021-08-23 07:11:41 UTC (rev 281439)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2021-08-23 

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

2021-08-09 Thread aboya
Title: [280775] trunk/Source/WebCore








Revision 280775
Author ab...@igalia.com
Date 2021-08-09 06:10:52 -0700 (Mon, 09 Aug 2021)


Log Message
[MSE][GStreamer] Update tracks synchronously
https://bugs.webkit.org/show_bug.cgi?id=228825

Reviewed by Xabier Rodriguez-Calvar.

A mistake introduced with the WebKitMediaSrc v2 patch made the call to
updateTracks() in MediaPlayerPrivateGStreamer asynchronous.

This introduced a subtle race condition in which the "resize" event
may be handled before updateTracks() is called, therefore m_hasVideo
has not yet been set to true, and querying the video size from the
"resize" event handler returns 0x0.

This fixes a timeout flake in media/media-source/media-source-resize.html.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleStreamCollectionMessage):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (280774 => 280775)

--- trunk/Source/WebCore/ChangeLog	2021-08-09 12:49:24 UTC (rev 280774)
+++ trunk/Source/WebCore/ChangeLog	2021-08-09 13:10:52 UTC (rev 280775)
@@ -1,3 +1,23 @@
+2021-08-09  Alicia Boya García  
+
+[MSE][GStreamer] Update tracks synchronously
+https://bugs.webkit.org/show_bug.cgi?id=228825
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+A mistake introduced with the WebKitMediaSrc v2 patch made the call to
+updateTracks() in MediaPlayerPrivateGStreamer asynchronous.
+
+This introduced a subtle race condition in which the "resize" event
+may be handled before updateTracks() is called, therefore m_hasVideo
+has not yet been set to true, and querying the video size from the
+"resize" event handler returns 0x0.
+
+This fixes a timeout flake in media/media-source/media-source-resize.html.
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::handleStreamCollectionMessage):
+
 2021-08-09  Yusuke Suzuki  
 
 Unreviewed, remove WTFLogAlways


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (280774 => 280775)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2021-08-09 12:49:24 UTC (rev 280774)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2021-08-09 13:10:52 UTC (rev 280775)
@@ -1530,7 +1530,7 @@
 if (!collection)
 return;
 
-callOnMainThread([player = makeWeakPtr(*this), collection = WTFMove(collection)] {
+callOnMainThreadAndWait([player = makeWeakPtr(*this), collection = WTFMove(collection)] {
 if (player)
 player->updateTracks(collection);
 });






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


[webkit-changes] [280684] trunk/LayoutTests

2021-08-05 Thread aboya
Title: [280684] trunk/LayoutTests








Revision 280684
Author ab...@igalia.com
Date 2021-08-05 07:13:40 -0700 (Thu, 05 Aug 2021)


Log Message
Unreviewed GStreamer MSE microgardening
https://bugs.webkit.org/show_bug.cgi?id=228823


* platform/glib/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (280683 => 280684)

--- trunk/LayoutTests/ChangeLog	2021-08-05 12:57:04 UTC (rev 280683)
+++ trunk/LayoutTests/ChangeLog	2021-08-05 14:13:40 UTC (rev 280684)
@@ -1,3 +1,10 @@
+2021-08-05  Alicia Boya García  
+
+Unreviewed GStreamer MSE microgardening
+https://bugs.webkit.org/show_bug.cgi?id=228823
+
+* platform/glib/TestExpectations:
+
 2021-08-04  Wenson Hsieh  
 
 Adjust editing/deleting/ios/backspace-last-character.html to check that pressing backspace deletes one character


Modified: trunk/LayoutTests/platform/glib/TestExpectations (280683 => 280684)

--- trunk/LayoutTests/platform/glib/TestExpectations	2021-08-05 12:57:04 UTC (rev 280683)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2021-08-05 14:13:40 UTC (rev 280684)
@@ -574,6 +574,10 @@
 # MSE failures
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/URL-createObjectURL-revoke.html [ Failure ]
 
+# Need changes in the demuxers and AppendPipeline to enable aborts not followed by an initialization segment:
+webkit.org/b/228820 media/media-source/media-mp4-h264-partial-abort.html [ Failure ]
+webkit.org/b/228820 media/media-source/media-webm-opus-partial-abort.html [ Failure ]
+
 webkit.org/b/224767 imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-implicit.html [ Crash Pass ]
 
 # See also bug #175578.






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


[webkit-changes] [278936] trunk

2021-06-16 Thread aboya
Title: [278936] trunk








Revision 278936
Author ab...@igalia.com
Date 2021-06-16 08:41:15 -0700 (Wed, 16 Jun 2021)


Log Message
[WTF] DataMutex: Assert on double locking on the same thread
https://bugs.webkit.org/show_bug.cgi?id=227069

Reviewed by Xabier Rodriguez-Calvar.

Source/WTF:

DataMutex used to use OwnerAwareLock to track what thread is holding
the mutex and emit assertion errors if a thread is found attempting to
lock a mutex held by that same thread. This turns deadlocks into
runtime errors.

OwnerAwareLock was removed when DataMutex got clang thread safety
annotations. This patch reintroduces the same logic, while keeping
thread-safety annotations.

This fixes WTF_DataMutex.DoubleLockDeathTest, which tested this
functionality and was previously regressed.

* wtf/DataMutex.h:

Tools:

Update expectations to include the fixed test.

* TestWebKitAPI/glib/TestExpectations.json:

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/DataMutex.h
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/glib/TestExpectations.json




Diff

Modified: trunk/Source/WTF/ChangeLog (278935 => 278936)

--- trunk/Source/WTF/ChangeLog	2021-06-16 15:16:40 UTC (rev 278935)
+++ trunk/Source/WTF/ChangeLog	2021-06-16 15:41:15 UTC (rev 278936)
@@ -1,3 +1,24 @@
+2021-06-16  Alicia Boya García  
+
+[WTF] DataMutex: Assert on double locking on the same thread
+https://bugs.webkit.org/show_bug.cgi?id=227069
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+DataMutex used to use OwnerAwareLock to track what thread is holding
+the mutex and emit assertion errors if a thread is found attempting to
+lock a mutex held by that same thread. This turns deadlocks into
+runtime errors.
+
+OwnerAwareLock was removed when DataMutex got clang thread safety
+annotations. This patch reintroduces the same logic, while keeping
+thread-safety annotations.
+
+This fixes WTF_DataMutex.DoubleLockDeathTest, which tested this
+functionality and was previously regressed.
+
+* wtf/DataMutex.h:
+
 2021-06-06  Darin Adler  
 
 Delete some recently-obsoleted files


Modified: trunk/Source/WTF/wtf/DataMutex.h (278935 => 278936)

--- trunk/Source/WTF/wtf/DataMutex.h	2021-06-16 15:16:40 UTC (rev 278935)
+++ trunk/Source/WTF/wtf/DataMutex.h	2021-06-16 15:41:15 UTC (rev 278936)
@@ -57,6 +57,9 @@
 
 Lock m_mutex;
 T m_data WTF_GUARDED_BY_LOCK(m_mutex);
+#if ENABLE_DATA_MUTEX_CHECKS
+Thread* m_currentMutexHolder { nullptr };
+#endif
 };
 
 template 
@@ -65,15 +68,13 @@
 explicit DataMutexLocker(DataMutex& dataMutex) WTF_ACQUIRES_LOCK(m_dataMutex.m_mutex)
 : m_dataMutex(dataMutex)
 {
-mutex().lock();
-m_isLocked = true;
+lock();
 }
 
 ~DataMutexLocker() WTF_RELEASES_LOCK()
 {
 if (m_isLocked) {
-assertIsHeld(m_dataMutex.m_mutex);
-mutex().unlock();
+unlock();
 }
 }
 
@@ -101,9 +102,8 @@
 // Run-time checks are still performed if enabled.
 void unlockEarly() WTF_RELEASES_LOCK(m_dataMutex.m_mutex)
 {
-DATA_MUTEX_CHECK(mutex().isHeld());
-m_isLocked = false;
-mutex().unlock();
+assertIsHeld(m_dataMutex.m_mutex);
+unlock();
 }
 
 // Used to avoid excessive brace scoping when only small parts of the code need to be run unlocked.
@@ -111,16 +111,35 @@
 // It's helpful to use a minimal lambda capture to be conscious of what data you're having access to in these sections.
 void runUnlocked(const Function& callback) WTF_IGNORES_THREAD_SAFETY_ANALYSIS
 {
-DATA_MUTEX_CHECK(mutex().isHeld());
-assertIsHeld(m_dataMutex.m_mutex);
-mutex().unlock();
+unlock();
 callback();
-mutex().lock();
+lock();
 }
 
 private:
 DataMutex& m_dataMutex;
 bool m_isLocked { false };
+
+void lock() WTF_ACQUIRES_LOCK(m_dataMutex.m_mutex)
+{
+DATA_MUTEX_CHECK(m_dataMutex.m_currentMutexHolder != ::current()); // Thread attempted recursive lock on non-recursive lock.
+mutex().lock();
+m_isLocked = true;
+#if ENABLE_DATA_MUTEX_CHECKS
+m_dataMutex.m_currentMutexHolder = ::current();
+#endif
+}
+
+void unlock() WTF_RELEASES_LOCK(m_dataMutex.m_mutex)
+{
+DATA_MUTEX_CHECK(mutex().isHeld());
+assertIsHeld(m_dataMutex.m_mutex);
+#if ENABLE_DATA_MUTEX_CHECKS
+m_dataMutex.m_currentMutexHolder = nullptr;
+#endif
+m_isLocked = false;
+mutex().unlock();
+}
 };
 
 } // namespace WTF


Modified: trunk/Tools/ChangeLog (278935 => 278936)

--- trunk/Tools/ChangeLog	2021-06-16 15:16:40 UTC (rev 278935)
+++ trunk/Tools/ChangeLog	2021-06-16 15:41:15 UTC (rev 278936)
@@ -1,3 +1,14 @@
+2021-06-16  Alicia Boya García  
+
+[WTF] DataMutex: Assert on double locking on the same thread
+https://bugs.webkit.org/show_bug.cgi?id=227069
+
+

[webkit-changes] [278655] trunk/Source

2021-06-09 Thread aboya
Title: [278655] trunk/Source








Revision 278655
Author ab...@igalia.com
Date 2021-06-09 03:58:36 -0700 (Wed, 09 Jun 2021)


Log Message
[WTF][GStreamer] Add RAII lockers for 3rd party locks
https://bugs.webkit.org/show_bug.cgi?id=225650

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch introduces RAII locker classes that wrap GST_OBJECT_LOCK
and GST_PAD_STREAM_LOCK to match the style, safety and convenience of
locks from WTF.

This patch also changes all usages of GStreamer locks in the WebKit
codebase to use these new lockers.

This patch introduces no behavior changes.

* platform/graphics/gstreamer/GStreamerCommon.h:
(gstObjectLock):
(gstObjectUnlock):
(gstPadStreamLock):
(gstPadStreamUnlock):
(holdGstObjectLock):
(holdGstPadStreamLock):
* platform/graphics/gstreamer/TextCombinerPadGStreamer.cpp:
(webkitTextCombinerPadGetProperty):
(webkitTextCombinerPadSetProperty):
* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcWaitForPadLinkedOrFlush):
(webKitMediaSrcLoop):
(webKitMediaSrcStreamFlush):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):

Source/WTF:

This patch introduces WTF::ExternalLocker, which allows to lock 3rd
party mutexes in a RAII fashion, very similar to WTF::Locker.

This is used also in WebCore to provide RAII lockers for GStreamer.

* wtf/Locker.h:
(WTF::unlockFunction):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/Locker.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerPadGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp




Diff

Modified: trunk/Source/WTF/ChangeLog (278654 => 278655)

--- trunk/Source/WTF/ChangeLog	2021-06-09 08:35:40 UTC (rev 278654)
+++ trunk/Source/WTF/ChangeLog	2021-06-09 10:58:36 UTC (rev 278655)
@@ -1,3 +1,18 @@
+2021-06-09  Alicia Boya García  
+
+[WTF][GStreamer] Add RAII lockers for 3rd party locks
+https://bugs.webkit.org/show_bug.cgi?id=225650
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+This patch introduces WTF::ExternalLocker, which allows to lock 3rd
+party mutexes in a RAII fashion, very similar to WTF::Locker.
+
+This is used also in WebCore to provide RAII lockers for GStreamer.
+
+* wtf/Locker.h:
+(WTF::unlockFunction):
+
 2021-06-08  Alex Christensen  
 
 Move PrivacyStance code from WebKitAdditions


Modified: trunk/Source/WTF/wtf/Locker.h (278654 => 278655)

--- trunk/Source/WTF/wtf/Locker.h	2021-06-09 08:35:40 UTC (rev 278654)
+++ trunk/Source/WTF/wtf/Locker.h	2021-06-09 10:58:36 UTC (rev 278655)
@@ -160,6 +160,66 @@
 Locker& m_lock;
 };
 
+// This is a close replica of Locker, but for generic lock/unlock functions.
+template
+class ExternalLocker: public WTF::AbstractLocker {
+public:
+explicit ExternalLocker(T* lockable)
+: m_lockable(lockable)
+{
+ASSERT(lockable);
+lock();
+}
+
+~ExternalLocker()
+{
+unlock();
+}
+
+T* lockable() { return m_lockable; }
+
+explicit operator bool() const { return !!m_lockable; }
+
+void unlockEarly()
+{
+unlock();
+m_lockable = nullptr;
+}
+
+ExternalLocker(ExternalLocker&& other)
+: m_lockable(other.m_lockable)
+{
+ASSERT( != this);
+other.m_lockable = nullptr;
+}
+
+ExternalLocker& operator=(ExternalLocker&& other)
+{
+ASSERT( != this);
+m_lockable = other.m_lockable;
+other.m_lockable = nullptr;
+return *this;
+}
+
+private:
+template
+friend class DropLockForScope;
+
+void unlock()
+{
+if (m_lockable)
+unlockFunction(m_lockable);
+}
+
+void lock()
+{
+if (m_lockable)
+lockFunction(m_lockable);
+}
+
+T* m_lockable;
+};
+
 }
 
 using WTF::AbstractLocker;
@@ -168,3 +228,4 @@
 using WTF::NoLockingNecessaryTag;
 using WTF::NoLockingNecessary;
 using WTF::DropLockForScope;
+using WTF::ExternalLocker;


Modified: trunk/Source/WebCore/ChangeLog (278654 => 278655)

--- trunk/Source/WebCore/ChangeLog	2021-06-09 08:35:40 UTC (rev 278654)
+++ trunk/Source/WebCore/ChangeLog	2021-06-09 10:58:36 UTC (rev 278655)
@@ -1,3 +1,36 @@
+2021-06-09  Alicia Boya García  
+
+[WTF][GStreamer] Add RAII lockers for 3rd party locks
+https://bugs.webkit.org/show_bug.cgi?id=225650
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+This patch introduces RAII locker classes that wrap GST_OBJECT_LOCK
+and GST_PAD_STREAM_LOCK to match the style, safety and convenience of
+locks from WTF.
+
+This patch also changes all usages of GStreamer locks in the WebKit
+codebase to use these new lockers.
+
+This patch introduces no behavior changes.
+
+* platform/graphics/gstreamer/GStreamerCommon.h:
+(gstObjectLock):
+

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

2021-06-07 Thread aboya
Title: [278558] trunk/Source/WTF








Revision 278558
Author ab...@igalia.com
Date 2021-06-07 04:45:59 -0700 (Mon, 07 Jun 2021)


Log Message
[WTF][GStreamer] Fix clang TSA warnings in WTF::DataMutex
https://bugs.webkit.org/show_bug.cgi?id=226719

Reviewed by Xabier Rodriguez-Calvar.

Fix the remaning clang thread safety warnings in WTF::DataMutex.

The goal of this patch is to reduce the number of warnings in the
GStreamer codebase. Whether DataMutex should be deprecated in favor of
Locker with the clang TSA annotations is outside of the scope of this
patch.

* wtf/DataMutex.h:

Modified Paths

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




Diff

Modified: trunk/Source/WTF/ChangeLog (278557 => 278558)

--- trunk/Source/WTF/ChangeLog	2021-06-07 11:43:41 UTC (rev 278557)
+++ trunk/Source/WTF/ChangeLog	2021-06-07 11:45:59 UTC (rev 278558)
@@ -1,5 +1,21 @@
 2021-06-07  Alicia Boya García  
 
+[WTF][GStreamer] Fix clang TSA warnings in WTF::DataMutex
+https://bugs.webkit.org/show_bug.cgi?id=226719
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Fix the remaning clang thread safety warnings in WTF::DataMutex.
+
+The goal of this patch is to reduce the number of warnings in the
+GStreamer codebase. Whether DataMutex should be deprecated in favor of
+Locker with the clang TSA annotations is outside of the scope of this
+patch.
+
+* wtf/DataMutex.h:
+
+2021-06-07  Alicia Boya García  
+
 [GStreamer] Remove spurious assert in WTF::DataMutex
 https://bugs.webkit.org/show_bug.cgi?id=226714
 


Modified: trunk/Source/WTF/wtf/DataMutex.h (278557 => 278558)

--- trunk/Source/WTF/wtf/DataMutex.h	2021-06-07 11:43:41 UTC (rev 278557)
+++ trunk/Source/WTF/wtf/DataMutex.h	2021-06-07 11:45:59 UTC (rev 278558)
@@ -69,15 +69,17 @@
 m_isLocked = true;
 }
 
-~DataMutexLocker() WTF_RELEASES_LOCK(m_dataMutex.m_mutex)
+~DataMutexLocker() WTF_RELEASES_LOCK()
 {
-if (m_isLocked)
+if (m_isLocked) {
+assertIsHeld(m_dataMutex.m_mutex);
 mutex().unlock();
+}
 }
 
 T* operator->()
 {
-DATA_MUTEX_CHECK(mutex().isHeld());
+DATA_MUTEX_CHECK(m_isLocked && mutex().isHeld());
 assertIsHeld(m_dataMutex.m_mutex);
 return _dataMutex.m_data;
 }
@@ -84,7 +86,7 @@
 
 T& operator*()
 {
-DATA_MUTEX_CHECK(mutex().isHeld());
+DATA_MUTEX_CHECK(m_isLocked && mutex().isHeld());
 assertIsHeld(m_dataMutex.m_mutex);
 return m_dataMutex.m_data;
 }
@@ -94,6 +96,9 @@
 return m_dataMutex.m_mutex;
 }
 
+// Note: DataMutexLocker shouldn't be used after this. Due to limitations of clang thread safety analysis this can't
+// currently be staticly checked (adding WTF_REQUIRES_LOCK() to operator->() doesn't work.)
+// Run-time checks are still performed if enabled.
 void unlockEarly() WTF_RELEASES_LOCK(m_dataMutex.m_mutex)
 {
 DATA_MUTEX_CHECK(mutex().isHeld());
@@ -104,7 +109,7 @@
 // Used to avoid excessive brace scoping when only small parts of the code need to be run unlocked.
 // Please be mindful that accessing the wrapped data from the callback is unsafe and will fail on assertions.
 // It's helpful to use a minimal lambda capture to be conscious of what data you're having access to in these sections.
-void runUnlocked(const Function& callback)
+void runUnlocked(const Function& callback) WTF_IGNORES_THREAD_SAFETY_ANALYSIS
 {
 DATA_MUTEX_CHECK(mutex().isHeld());
 assertIsHeld(m_dataMutex.m_mutex);






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


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

2021-06-07 Thread aboya
Title: [278557] trunk/Source/WebCore








Revision 278557
Author ab...@igalia.com
Date 2021-06-07 04:43:41 -0700 (Mon, 07 Jun 2021)


Log Message
[GStreamer] Add clang TSA annotations: MainThreadNotifier
https://bugs.webkit.org/show_bug.cgi?id=226717

Reviewed by Xabier Rodriguez-Calvar.

Adds clang thread safety annotations to
MainThreadNotifier.h

* platform/graphics/gstreamer/MainThreadNotifier.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (278556 => 278557)

--- trunk/Source/WebCore/ChangeLog	2021-06-07 11:43:01 UTC (rev 278556)
+++ trunk/Source/WebCore/ChangeLog	2021-06-07 11:43:41 UTC (rev 278557)
@@ -1,5 +1,17 @@
 2021-06-07  Alicia Boya García  
 
+[GStreamer] Add clang TSA annotations: MainThreadNotifier
+https://bugs.webkit.org/show_bug.cgi?id=226717
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Adds clang thread safety annotations to
+MainThreadNotifier.h
+
+* platform/graphics/gstreamer/MainThreadNotifier.h:
+
+2021-06-07  Alicia Boya García  
+
 [GStreamer] Add clang TSA annotations: InbandTextTrackPrivateGStreamer
 https://bugs.webkit.org/show_bug.cgi?id=226716
 


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h (278556 => 278557)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h	2021-06-07 11:43:01 UTC (rev 278556)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h	2021-06-07 11:43:41 UTC (rev 278557)
@@ -125,7 +125,7 @@
 }
 
 Lock m_pendingNotificationsLock;
-unsigned m_pendingNotifications { 0 };
+unsigned m_pendingNotifications WTF_GUARDED_BY_LOCK(m_pendingNotificationsLock) { 0 };
 Atomic m_isValid;
 };
 






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


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

2021-06-07 Thread aboya
Title: [278556] trunk/Source/WebCore








Revision 278556
Author ab...@igalia.com
Date 2021-06-07 04:43:01 -0700 (Mon, 07 Jun 2021)


Log Message
[GStreamer] Add clang TSA annotations: InbandTextTrackPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=226716

Reviewed by Xabier Rodriguez-Calvar.

Adds clang thread safety annotations to
InbandTextTrackPrivateGStreamer.h.

* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (278555 => 278556)

--- trunk/Source/WebCore/ChangeLog	2021-06-07 11:40:51 UTC (rev 278555)
+++ trunk/Source/WebCore/ChangeLog	2021-06-07 11:43:01 UTC (rev 278556)
@@ -1,5 +1,17 @@
 2021-06-07  Alicia Boya García  
 
+[GStreamer] Add clang TSA annotations: InbandTextTrackPrivateGStreamer
+https://bugs.webkit.org/show_bug.cgi?id=226716
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Adds clang thread safety annotations to
+InbandTextTrackPrivateGStreamer.h.
+
+* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
+
+2021-06-07  Alicia Boya García  
+
 [GStreamer] Fix clang TSA warning in AbortableTaskQueue
 https://bugs.webkit.org/show_bug.cgi?id=226715
 


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h (278555 => 278556)

--- trunk/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h	2021-06-07 11:40:51 UTC (rev 278555)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h	2021-06-07 11:43:01 UTC (rev 278556)
@@ -71,7 +71,7 @@
 void notifyTrackOfStreamChanged();
 
 gulong m_eventProbe;
-Vector> m_pendingSamples;
+Vector> m_pendingSamples WTF_GUARDED_BY_LOCK(m_sampleMutex);
 String m_streamId;
 Kind m_kind;
 Lock m_sampleMutex;






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


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

2021-06-07 Thread aboya
Title: [278555] trunk/Source/WTF








Revision 278555
Author ab...@igalia.com
Date 2021-06-07 04:40:51 -0700 (Mon, 07 Jun 2021)


Log Message
[GStreamer] Remove spurious assert in WTF::DataMutex
https://bugs.webkit.org/show_bug.cgi?id=226714

Reviewed by Michael Catanzaro.

Remove DATA_MUTEX_CHECK(!mutex().isHeld()); from the DataMutexLocker
constructor, introduced in r278248.

Trying to lock a currently held mutex is not an error condition that
should crash the process, it will just wait for its turn to lock it.

* wtf/DataMutex.h:

Modified Paths

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




Diff

Modified: trunk/Source/WTF/ChangeLog (278554 => 278555)

--- trunk/Source/WTF/ChangeLog	2021-06-07 11:40:05 UTC (rev 278554)
+++ trunk/Source/WTF/ChangeLog	2021-06-07 11:40:51 UTC (rev 278555)
@@ -1,3 +1,18 @@
+2021-06-07  Alicia Boya García  
+
+[GStreamer] Remove spurious assert in WTF::DataMutex
+https://bugs.webkit.org/show_bug.cgi?id=226714
+
+Reviewed by Michael Catanzaro.
+
+Remove DATA_MUTEX_CHECK(!mutex().isHeld()); from the DataMutexLocker
+constructor, introduced in r278248.
+
+Trying to lock a currently held mutex is not an error condition that
+should crash the process, it will just wait for its turn to lock it.
+
+* wtf/DataMutex.h:
+
 2021-06-06  Chris Dumez  
 
 Stop using legacy EventLoopDeferrableTask


Modified: trunk/Source/WTF/wtf/DataMutex.h (278554 => 278555)

--- trunk/Source/WTF/wtf/DataMutex.h	2021-06-07 11:40:05 UTC (rev 278554)
+++ trunk/Source/WTF/wtf/DataMutex.h	2021-06-07 11:40:51 UTC (rev 278555)
@@ -65,7 +65,6 @@
 explicit DataMutexLocker(DataMutex& dataMutex) WTF_ACQUIRES_LOCK(m_dataMutex.m_mutex)
 : m_dataMutex(dataMutex)
 {
-DATA_MUTEX_CHECK(!mutex().isHeld());
 mutex().lock();
 m_isLocked = true;
 }






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


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

2021-06-07 Thread aboya
Title: [278554] trunk/Source/WebCore








Revision 278554
Author ab...@igalia.com
Date 2021-06-07 04:40:05 -0700 (Mon, 07 Jun 2021)


Log Message
[GStreamer] Fix clang TSA warning in AbortableTaskQueue
https://bugs.webkit.org/show_bug.cgi?id=226715

Reviewed by Michael Catanzaro.

Fixes a clang thread safety analysis warning in AbortableTaskQueue.

* platform/AbortableTaskQueue.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/AbortableTaskQueue.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (278553 => 278554)

--- trunk/Source/WebCore/ChangeLog	2021-06-07 11:11:55 UTC (rev 278553)
+++ trunk/Source/WebCore/ChangeLog	2021-06-07 11:40:05 UTC (rev 278554)
@@ -1,3 +1,14 @@
+2021-06-07  Alicia Boya García  
+
+[GStreamer] Fix clang TSA warning in AbortableTaskQueue
+https://bugs.webkit.org/show_bug.cgi?id=226715
+
+Reviewed by Michael Catanzaro.
+
+Fixes a clang thread safety analysis warning in AbortableTaskQueue.
+
+* platform/AbortableTaskQueue.h:
+
 2021-06-06  Antti Koivisto  
 
 Factor selection clamping into a type


Modified: trunk/Source/WebCore/platform/AbortableTaskQueue.h (278553 => 278554)

--- trunk/Source/WebCore/platform/AbortableTaskQueue.h	2021-06-07 11:11:55 UTC (rev 278553)
+++ trunk/Source/WebCore/platform/AbortableTaskQueue.h	2021-06-07 11:40:05 UTC (rev 278554)
@@ -156,6 +156,7 @@
 m_abortedOrResponseSet.notifyAll();
 });
 m_abortedOrResponseSet.wait(m_lock, [this, ]() {
+assertIsHeld(m_lock);
 return m_aborting || response;
 });
 return response;






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


[webkit-changes] [277438] trunk/Source

2021-05-13 Thread aboya
Title: [277438] trunk/Source








Revision 277438
Author ab...@igalia.com
Date 2021-05-13 10:03:39 -0700 (Thu, 13 May 2021)


Log Message
[WTF] Add holdLock() overload for WTF::DataMutex
https://bugs.webkit.org/show_bug.cgi?id=225652

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

All instantiations of DataMutex::LockedWrapper have been replaced by
holdLock(), for equivalent but more concise code.

This patch introduces no behavior changes.

* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcConstructed):
(webKitWebSrcGetProperty):
(webKitWebSrcSetContext):
(webKitWebSrcCreate):
(webKitWebSrcMakeRequest):
(webKitWebSrcStop):
(webKitWebSrcGetSize):
(webKitWebSrcIsSeekable):
(webKitWebSrcDoSeek):
(webKitWebSrcQuery):
(webKitWebSrcUnLock):
(webKitWebSrcUnLockStop):
(webKitWebSrcSetMediaPlayer):
(webKitSrcPassedCORSAccessCheck):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::dataReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(CachedResourceStreamingClient::loadFinished):
(webKitSrcWouldTaintOrigin):
* platform/graphics/gstreamer/mse/MediaSourceTrackGStreamer.cpp:
(WebCore::MediaSourceTrackGStreamer::isReadyForMoreSamples):
(WebCore::MediaSourceTrackGStreamer::notifyWhenReadyForMoreSamples):
(WebCore::MediaSourceTrackGStreamer::enqueueObject):
(WebCore::MediaSourceTrackGStreamer::clearQueue):
* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcActivateMode):
(webKitMediaSrcPadLinked):
(webKitMediaSrcLoop):
(webKitMediaSrcStreamFlush):

Source/WTF:

This patch adds a holdLock() overload for WTF::DataMutex as syntactic
sugar to simplify usage in a similar way to what holdLock() already
does for WTF::Locker.

* wtf/DataMutex.h:
(WTF::holdLock):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/DataMutex.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceTrackGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp




Diff

Modified: trunk/Source/WTF/ChangeLog (277437 => 277438)

--- trunk/Source/WTF/ChangeLog	2021-05-13 16:18:32 UTC (rev 277437)
+++ trunk/Source/WTF/ChangeLog	2021-05-13 17:03:39 UTC (rev 277438)
@@ -1,3 +1,17 @@
+2021-05-13  Alicia Boya García  
+
+[WTF] Add holdLock() overload for WTF::DataMutex
+https://bugs.webkit.org/show_bug.cgi?id=225652
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+This patch adds a holdLock() overload for WTF::DataMutex as syntactic
+sugar to simplify usage in a similar way to what holdLock() already
+does for WTF::Locker.
+
+* wtf/DataMutex.h:
+(WTF::holdLock):
+
 2021-05-13  Darin Adler  
 
 Remove StringBuilder::appendNumber


Modified: trunk/Source/WTF/wtf/DataMutex.h (277437 => 277438)

--- trunk/Source/WTF/wtf/DataMutex.h	2021-05-13 16:18:32 UTC (rev 277437)
+++ trunk/Source/WTF/wtf/DataMutex.h	2021-05-13 17:03:39 UTC (rev 277438)
@@ -149,4 +149,10 @@
 T m_data;
 };
 
+template
+typename DataMutex::LockedWrapper holdLock(DataMutex& dataMutex)
+{
+return typename DataMutex::LockedWrapper(dataMutex);
+}
+
 } // namespace WTF


Modified: trunk/Source/WebCore/ChangeLog (277437 => 277438)

--- trunk/Source/WebCore/ChangeLog	2021-05-13 16:18:32 UTC (rev 277437)
+++ trunk/Source/WebCore/ChangeLog	2021-05-13 17:03:39 UTC (rev 277438)
@@ -1,3 +1,47 @@
+2021-05-13  Alicia Boya García  
+
+[WTF] Add holdLock() overload for WTF::DataMutex
+https://bugs.webkit.org/show_bug.cgi?id=225652
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+All instantiations of DataMutex::LockedWrapper have been replaced by
+holdLock(), for equivalent but more concise code.
+
+This patch introduces no behavior changes.
+
+* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+(webKitWebSrcConstructed):
+(webKitWebSrcGetProperty):
+(webKitWebSrcSetContext):
+(webKitWebSrcCreate):
+(webKitWebSrcMakeRequest):
+(webKitWebSrcStop):
+(webKitWebSrcGetSize):
+(webKitWebSrcIsSeekable):
+(webKitWebSrcDoSeek):
+(webKitWebSrcQuery):
+(webKitWebSrcUnLock):
+(webKitWebSrcUnLockStop):
+(webKitWebSrcSetMediaPlayer):
+(webKitSrcPassedCORSAccessCheck):
+(CachedResourceStreamingClient::responseReceived):
+(CachedResourceStreamingClient::dataReceived):
+(CachedResourceStreamingClient::accessControlCheckFailed):
+(CachedResourceStreamingClient::loadFailed):
+(CachedResourceStreamingClient::loadFinished):
+(webKitSrcWouldTaintOrigin):
+* platform/graphics/gstreamer/mse/MediaSourceTrackGStreamer.cpp:
+(WebCore::MediaSourceTrackGStreamer::isReadyForMoreSamples):
+

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

2021-05-10 Thread aboya
Title: [277263] trunk/Source/WebCore








Revision 277263
Author ab...@igalia.com
Date 2021-05-10 08:41:25 -0700 (Mon, 10 May 2021)


Log Message
[MSE][GStreamer] Remove stale PlaybackPipeline.cpp
https://bugs.webkit.org/show_bug.cgi?id=225595

Reviewed by Adrian Perez de Castro.

The WebKitMediaSrc v2 patch removed PlaybackPipeline but accidentally
the .cpp file survived the rebases.

This patch introduces no behavior changes, the file was not being
compiled anymore.

* platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Removed.

Modified Paths

trunk/Source/WebCore/ChangeLog


Removed Paths

trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (277262 => 277263)

--- trunk/Source/WebCore/ChangeLog	2021-05-10 12:17:46 UTC (rev 277262)
+++ trunk/Source/WebCore/ChangeLog	2021-05-10 15:41:25 UTC (rev 277263)
@@ -1,3 +1,18 @@
+2021-05-10  Alicia Boya García  
+
+[MSE][GStreamer] Remove stale PlaybackPipeline.cpp
+https://bugs.webkit.org/show_bug.cgi?id=225595
+
+Reviewed by Adrian Perez de Castro.
+
+The WebKitMediaSrc v2 patch removed PlaybackPipeline but accidentally
+the .cpp file survived the rebases.
+
+This patch introduces no behavior changes, the file was not being
+compiled anymore.
+
+* platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Removed.
+
 2021-05-10  Philippe Normand  
 
 [GStreamer] fast/mediastream/MediaStream-video-element-video-tracks-disabled.html fails


Deleted: trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp (277262 => 277263)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp	2021-05-10 12:17:46 UTC (rev 277262)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.cpp	2021-05-10 15:41:25 UTC (rev 277263)
@@ -1,405 +0,0 @@
-/*
- * Copyright (C) 2014, 2015 Sebastian Dröge 
- * Copyright (C) 2016 Metrological Group B.V.
- * Copyright (C) 2016 Igalia S.L
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * aint with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-#include "PlaybackPipeline.h"
-
-#if ENABLE(VIDEO) && USE(GSTREAMER) && ENABLE(MEDIA_SOURCE)
-
-#include "AudioTrackPrivateGStreamer.h"
-#include "GStreamerCommon.h"
-#include "MediaSampleGStreamer.h"
-#include "MediaSample.h"
-#include "SourceBufferPrivateGStreamer.h"
-#include "VideoTrackPrivateGStreamer.h"
-
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-
-GST_DEBUG_CATEGORY_EXTERN(webkit_mse_debug);
-#define GST_CAT_DEFAULT webkit_mse_debug
-
-static Stream* getStreamByTrackId(WebKitMediaSrc*, AtomString);
-static Stream* getStreamBySourceBufferPrivate(WebKitMediaSrc*, WebCore::SourceBufferPrivateGStreamer*);
-
-static Stream* getStreamByTrackId(WebKitMediaSrc* source, AtomString trackIdString)
-{
-// WebKitMediaSrc should be locked at this point.
-for (Stream* stream : source->priv->streams) {
-if (stream->type != WebCore::Invalid
-&& ((stream->audioTrack && stream->audioTrack->id() == trackIdString)
-|| (stream->videoTrack && stream->videoTrack->id() == trackIdString) ) ) {
-return stream;
-}
-}
-return nullptr;
-}
-
-static Stream* getStreamBySourceBufferPrivate(WebKitMediaSrc* source, WebCore::SourceBufferPrivateGStreamer* sourceBufferPrivate)
-{
-for (Stream* stream : source->priv->streams) {
-if (stream->sourceBuffer == sourceBufferPrivate)
-return stream;
-}
-return nullptr;
-}
-
-// FIXME: Use gst_app_src_push_sample() instead when we switch to the appropriate GStreamer version.
-static GstFlowReturn pushSample(GstAppSrc* appsrc, GstSample* sample)
-{
-g_return_val_if_fail(GST_IS_SAMPLE(sample), GST_FLOW_ERROR);
-
-GstCaps* caps = gst_sample_get_caps(sample);
-if (caps)
-gst_app_src_set_caps(appsrc, caps);
-else
-GST_WARNING_OBJECT(appsrc, "received sample without caps");
-
-GstBuffer* buffer = gst_sample_get_buffer(sample);
-if (UNLIKELY(!buffer)) {
-GST_WARNING_OBJECT(appsrc, "received sample without buffer");
-return GST_FLOW_OK;
-}
-
-// gst_app_src_push_buffer() steals the reference, we need an 

[webkit-changes] [277119] trunk/LayoutTests

2021-05-06 Thread aboya
Title: [277119] trunk/LayoutTests








Revision 277119
Author ab...@igalia.com
Date 2021-05-06 14:01:02 -0700 (Thu, 06 May 2021)


Log Message
[EME][GStreamer] Unreviewed micro-gardening
https://bugs.webkit.org/show_bug.cgi?id=225422

I'm adjusting the expectations to specify that
imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html
doesn't resolve as a failure.


* platform/glib/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (277118 => 277119)

--- trunk/LayoutTests/ChangeLog	2021-05-06 20:55:29 UTC (rev 277118)
+++ trunk/LayoutTests/ChangeLog	2021-05-06 21:01:02 UTC (rev 277119)
@@ -1,3 +1,14 @@
+2021-05-06  Alicia Boya García  
+
+[EME][GStreamer] Unreviewed micro-gardening
+https://bugs.webkit.org/show_bug.cgi?id=225422
+
+I'm adjusting the expectations to specify that
+imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html
+doesn't resolve as a failure.
+
+* platform/glib/TestExpectations:
+
 2021-05-06  Antoine Quint  
 
 CSS custom properties on pseudo elements background gradients causes infinite layout and high CPU load


Modified: trunk/LayoutTests/platform/glib/TestExpectations (277118 => 277119)

--- trunk/LayoutTests/platform/glib/TestExpectations	2021-05-06 20:55:29 UTC (rev 277118)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2021-05-06 21:01:02 UTC (rev 277119)
@@ -1488,7 +1488,7 @@
 imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses.https.html [ Pass ]
 imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html [ Pass ]
 imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html [ Pass ]
-webkit.org/b/225422 imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html [ Failure ]
+imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html [ Pass ]
 imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html [ Pass ]
 imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https.html [ Pass ]
 imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html [ Pass ]






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


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

2021-05-06 Thread aboya
Title: [277095] trunk/Source/WebCore








Revision 277095
Author ab...@igalia.com
Date 2021-05-06 09:23:58 -0700 (Thu, 06 May 2021)


Log Message
[MSE][GStreamer] Remove webKitMediaSrcFinalize
https://bugs.webkit.org/show_bug.cgi?id=225458

Reviewed by Philippe Normand.

webKitMediaSrcFinalize was no longer necessary after moving to
WEBKIT_DEFINE_TYPE as requested by the reviewers. This patch cleans
that up.

* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webkit_media_src_class_init):
(webKitMediaSrcFinalize): Deleted.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (277094 => 277095)

--- trunk/Source/WebCore/ChangeLog	2021-05-06 16:22:45 UTC (rev 277094)
+++ trunk/Source/WebCore/ChangeLog	2021-05-06 16:23:58 UTC (rev 277095)
@@ -1,3 +1,18 @@
+2021-05-06  Alicia Boya García  
+
+[MSE][GStreamer] Remove webKitMediaSrcFinalize
+https://bugs.webkit.org/show_bug.cgi?id=225458
+
+Reviewed by Philippe Normand.
+
+webKitMediaSrcFinalize was no longer necessary after moving to
+WEBKIT_DEFINE_TYPE as requested by the reviewers. This patch cleans
+that up.
+
+* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
+(webkit_media_src_class_init):
+(webKitMediaSrcFinalize): Deleted.
+
 2021-05-06  Mark Lam  
 
 Forbid further execution in jsc shell if execution is terminated.


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp (277094 => 277095)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp	2021-05-06 16:22:45 UTC (rev 277094)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp	2021-05-06 16:23:58 UTC (rev 277095)
@@ -91,7 +91,6 @@
 
 static void webKitMediaSrcUriHandlerInit(gpointer, gpointer);
 static void webKitMediaSrcConstructed(GObject*);
-static void webKitMediaSrcFinalize(GObject*);
 static GstStateChangeReturn webKitMediaSrcChangeState(GstElement*, GstStateChange);
 static gboolean webKitMediaSrcActivateMode(GstPad*, GstObject*, GstPadMode, gboolean activate);
 static void webKitMediaSrcLoop(void*);
@@ -244,7 +243,6 @@
 GstElementClass* eklass = GST_ELEMENT_CLASS(klass);
 
 oklass->constructed = webKitMediaSrcConstructed;
-oklass->finalize = webKitMediaSrcFinalize;
 oklass->get_property = webKitMediaSrcGetProperty;
 
 gst_element_class_add_static_pad_template_with_gtype(eklass, , webkit_media_src_pad_get_type());
@@ -275,15 +273,6 @@
 GST_OBJECT_FLAG_SET(object, GST_ELEMENT_FLAG_SOURCE);
 }
 
-static void webKitMediaSrcFinalize(GObject* object)
-{
-ASSERT(isMainThread());
-
-WebKitMediaSrc* source = WEBKIT_MEDIA_SRC(object);
-source->priv->~WebKitMediaSrcPrivate();
-GST_CALL_PARENT(G_OBJECT_CLASS, finalize, (object));
-}
-
 void webKitMediaSrcEmitStreams(WebKitMediaSrc* source, const Vector>& tracks)
 {
 ASSERT(isMainThread());






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


[webkit-changes] [277082] trunk/LayoutTests

2021-05-06 Thread aboya
Title: [277082] trunk/LayoutTests








Revision 277082
Author ab...@igalia.com
Date 2021-05-06 05:07:56 -0700 (Thu, 06 May 2021)


Log Message
[EME][GStreamer] Unreviewed micro-gardening
https://bugs.webkit.org/show_bug.cgi?id=225422

This test was fixed by the WebKitMediaSrc rework in r277031,
rebaselined it.


* platform/glib/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (277081 => 277082)

--- trunk/LayoutTests/ChangeLog	2021-05-06 11:25:57 UTC (rev 277081)
+++ trunk/LayoutTests/ChangeLog	2021-05-06 12:07:56 UTC (rev 277082)
@@ -1,3 +1,13 @@
+2021-05-06  Alicia Boya García  
+
+[EME][GStreamer] Unreviewed micro-gardening
+https://bugs.webkit.org/show_bug.cgi?id=225422
+
+This test was fixed by the WebKitMediaSrc rework in r277031,
+rebaselined it.
+
+* platform/glib/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt:
+
 2021-05-06  Tim Nguyen  
 
 Re-import css/css-will-change WPTs


Modified: trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt (277081 => 277082)

--- trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt	2021-05-06 11:25:57 UTC (rev 277081)
+++ trunk/LayoutTests/platform/glib/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt	2021-05-06 12:07:56 UTC (rev 277082)
@@ -1,5 +1,3 @@
 
-Harness Error (TIMEOUT), message = null
+PASS org.w3.clearkey, temporary, mp4, playback, single key, encrypted then clear content
 
-TIMEOUT org.w3.clearkey, temporary, mp4, playback, single key, encrypted then clear content Test timed out
-






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


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

2021-04-06 Thread aboya
Title: [275528] trunk/Source/WebCore








Revision 275528
Author ab...@igalia.com
Date 2021-04-06 10:10:27 -0700 (Tue, 06 Apr 2021)


Log Message
[GStreamer] At EOS, change position to match duration, not the other way around.
https://bugs.webkit.org/show_bug.cgi?id=224237

Reviewed by Philippe Normand.

The criteria used to check if playback has finished is currentTime >=
duration. Currently MediaPlayerPrivateGStreamer::didEnd() ensures this
in an awkward way: by changing the duration so that it matches
currentTime, rather than the other way around.

This meant a duration change at the end of playback most of the time,
with a slightly different duration each time, since currentTime is
cached periodically.

This patch reworks that function to work more naturally and less racy:

First, only if the stream doesn't have a set duration (e.g. live
stream), we set a duration to currentTime, as defined in the spec.

Second, at EOS we update currentTime to match duration, rather than
the other way around.

This patch doesn't introduce changes in test results.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::didEnd):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (275527 => 275528)

--- trunk/Source/WebCore/ChangeLog	2021-04-06 16:51:57 UTC (rev 275527)
+++ trunk/Source/WebCore/ChangeLog	2021-04-06 17:10:27 UTC (rev 275528)
@@ -1,3 +1,32 @@
+2021-04-06  Alicia Boya García  
+
+[GStreamer] At EOS, change position to match duration, not the other way around.
+https://bugs.webkit.org/show_bug.cgi?id=224237
+
+Reviewed by Philippe Normand.
+
+The criteria used to check if playback has finished is currentTime >=
+duration. Currently MediaPlayerPrivateGStreamer::didEnd() ensures this
+in an awkward way: by changing the duration so that it matches
+currentTime, rather than the other way around.
+
+This meant a duration change at the end of playback most of the time,
+with a slightly different duration each time, since currentTime is
+cached periodically.
+
+This patch reworks that function to work more naturally and less racy:
+
+First, only if the stream doesn't have a set duration (e.g. live
+stream), we set a duration to currentTime, as defined in the spec.
+
+Second, at EOS we update currentTime to match duration, rather than
+the other way around.
+
+This patch doesn't introduce changes in test results.
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::didEnd):
+
 2021-04-06  Tyler Wilcock  
 
 Non-unified build fixes, early April 2021


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (275527 => 275528)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2021-04-06 16:51:57 UTC (rev 275527)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2021-04-06 17:10:27 UTC (rev 275528)
@@ -2521,19 +2521,28 @@
 
 void MediaPlayerPrivateGStreamer::didEnd()
 {
-GST_INFO_OBJECT(pipeline(), "Playback ended");
-
-// Synchronize position and duration values to not confuse the
-// HTMLMediaElement. In some cases like reverse playback the
-// position is not always reported as 0 for instance.
 m_cachedPosition = MediaTime::invalidTime();
 MediaTime now = currentMediaTime();
-if (now > MediaTime::zeroTime() && !m_isSeeking) {
+GST_INFO_OBJECT(pipeline(), "Playback ended, currentMediaTime = %s, duration = %s", now.toString().utf8().data(), durationMediaTime().toString().utf8().data());
+m_isEndReached = true;
+
+if (!durationMediaTime().isFinite()) {
+// From the HTMLMediaElement spec.
+// If an "infinite" stream ends for some reason, then the duration would change from positive Infinity to the
+// time of the last frame or sample in the stream, and the durationchange event would be fired.
+GST_DEBUG_OBJECT(pipeline(), "HTMLMediaElement duration previously infinite or unknown (e.g. live stream), setting it to current position.");
 m_cachedDuration = now;
 m_player->durationChanged();
 }
 
-m_isEndReached = true;
+// Synchronize position and duration values to not confuse the
+// HTMLMediaElement. In some cases like reverse playback the
+// position is not always reported as 0 for instance.
+if (!m_isSeeking) {
+m_cachedPosition = m_playbackRate > 0 ? durationMediaTime() : MediaTime::zeroTime();
+GST_DEBUG("Position adjusted: %s", currentMediaTime().toString().utf8().data());
+}
+
 // Now that playback has ended it's NOT a safe time to send a SELECT_STREAMS event. In fact, as of GStreamer 1.16,
 // 

[webkit-changes] [275507] trunk/LayoutTests

2021-04-06 Thread aboya
Title: [275507] trunk/LayoutTests








Revision 275507
Author ab...@igalia.com
Date 2021-04-06 05:58:20 -0700 (Tue, 06 Apr 2021)


Log Message
[GStreamer][MediaStream] Unreviewed micro-gardening
https://bugs.webkit.org/show_bug.cgi?id=224233


* platform/glib/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (275506 => 275507)

--- trunk/LayoutTests/ChangeLog	2021-04-06 12:13:55 UTC (rev 275506)
+++ trunk/LayoutTests/ChangeLog	2021-04-06 12:58:20 UTC (rev 275507)
@@ -1,3 +1,10 @@
+2021-04-06  Alicia Boya García  
+
+[GStreamer][MediaStream] Unreviewed micro-gardening
+https://bugs.webkit.org/show_bug.cgi?id=224233
+
+* platform/glib/TestExpectations:
+
 2021-04-06  Kimmo Kinnunen  
 
 WebGL conformance tests are missing files due to too widely matching .gitignore


Modified: trunk/LayoutTests/platform/glib/TestExpectations (275506 => 275507)

--- trunk/LayoutTests/platform/glib/TestExpectations	2021-04-06 12:13:55 UTC (rev 275506)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2021-04-06 12:58:20 UTC (rev 275507)
@@ -525,9 +525,7 @@
 webkit.org/b/79203 fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html [ Failure Timeout Pass ]
 webkit.org/b/79203 fast/mediastream/RTCRtpSender-replaceTrack.html [ Failure ]
 webkit.org/b/187603 fast/mediastream/media-stream-track-source-failure.html [ Timeout Failure Pass ]
-webkit.org/b/191886 webkit.org/b/210800 fast/mediastream/MediaStream-video-element-remove-track.html [ Failure Crash Timeout ]
-webkit.org/b/191886 webkit.org/b/210800 [ Release ] fast/mediastream/MediaStream-removeTrack-while-playing.html [ Pass Crash ]
-webkit.org/b/191886 webkit.org/b/210800 [ Debug ] fast/mediastream/MediaStream-removeTrack-while-playing.html [ Crash ]
+webkit.org/b/191886 fast/mediastream/MediaStream-video-element-remove-track.html [ Failure ]
 webkit.org/b/216716 fast/mediastream/mediastreamtrack-video-clone.html [ Failure Pass ]
 webkit.org/b/216716 fast/mediastream/getUserMedia-video-rescaling.html [ Failure Pass ]
 webkit.org/b/210337 fast/mediastream/mediastreamtrack-audio-clone.html [ Failure Pass ]






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


[webkit-changes] [274350] trunk/Tools

2021-03-12 Thread aboya
Title: [274350] trunk/Tools








Revision 274350
Author ab...@igalia.com
Date 2021-03-12 04:40:58 -0800 (Fri, 12 Mar 2021)


Log Message
Unreviewed: Update Alicia's status to reviewer
https://bugs.webkit.org/show_bug.cgi?id=223114


* Scripts/webkitpy/common/config/contributors.json:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/common/config/contributors.json




Diff

Modified: trunk/Tools/ChangeLog (274349 => 274350)

--- trunk/Tools/ChangeLog	2021-03-12 12:36:09 UTC (rev 274349)
+++ trunk/Tools/ChangeLog	2021-03-12 12:40:58 UTC (rev 274350)
@@ -1,3 +1,10 @@
+2021-03-12  Alicia Boya García  
+
+Unreviewed: Update Alicia's status to reviewer
+https://bugs.webkit.org/show_bug.cgi?id=223114
+
+* Scripts/webkitpy/common/config/contributors.json:
+
 2021-03-12  Carlos Garcia Campos  
 
 [GTK] Bump API version when building with libsoup3


Modified: trunk/Tools/Scripts/webkitpy/common/config/contributors.json (274349 => 274350)

--- trunk/Tools/Scripts/webkitpy/common/config/contributors.json	2021-03-12 12:36:09 UTC (rev 274349)
+++ trunk/Tools/Scripts/webkitpy/common/config/contributors.json	2021-03-12 12:40:58 UTC (rev 274350)
@@ -400,7 +400,7 @@
  "ntrrgc",
  "aboya"
   ],
-  "status" : "committer"
+  "status" : "reviewer"
},
"Allan Sandfeld Jensen" : {
   "emails" : [






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


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

2021-02-23 Thread aboya
Title: [273329] trunk/Source/WebCore








Revision 273329
Author ab...@igalia.com
Date 2021-02-23 12:09:56 -0800 (Tue, 23 Feb 2021)


Log Message
Make system console logging synchronous
https://bugs.webkit.org/show_bug.cgi?id=79

Reviewed by Alex Christensen.

Previously, the logging of messages to the system console was done in
PageConsoleClient::addMessage(), which was called by
Document::addConsoleMessage(). The latter was called in a TaskQueue
callback.

This had the unfortunate side effect of adding a delay from the time a
macro such as ALWAYS_LOG() is called and the text being printed to the
console. This is particularly a problem when logging 3rd party
libraries that don't use the WebKit logging API to log to stderr, such
as GStreamer, since it causes messages logged by WebKit to not be
synchronized with messages logged by 3rd party libraries or logging
systems. As a consequence the usefulness of WebKit logs is noticeably
reduced.

This patch fixes the issue by moving the code logging to the system
console to the synchronous part of Document::didLogMessage(), while
still handling the rest in the m_logMessageTaskQueue callback.

* dom/Document.cpp:
(WebCore::Document::didLogMessage):
* page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Document.cpp
trunk/Source/WebCore/page/PageConsoleClient.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (273328 => 273329)

--- trunk/Source/WebCore/ChangeLog	2021-02-23 20:04:05 UTC (rev 273328)
+++ trunk/Source/WebCore/ChangeLog	2021-02-23 20:09:56 UTC (rev 273329)
@@ -1,3 +1,33 @@
+2021-02-23  Alicia Boya García  
+
+Make system console logging synchronous
+https://bugs.webkit.org/show_bug.cgi?id=79
+
+Reviewed by Alex Christensen.
+
+Previously, the logging of messages to the system console was done in
+PageConsoleClient::addMessage(), which was called by
+Document::addConsoleMessage(). The latter was called in a TaskQueue
+callback.
+
+This had the unfortunate side effect of adding a delay from the time a
+macro such as ALWAYS_LOG() is called and the text being printed to the
+console. This is particularly a problem when logging 3rd party
+libraries that don't use the WebKit logging API to log to stderr, such
+as GStreamer, since it causes messages logged by WebKit to not be
+synchronized with messages logged by 3rd party libraries or logging
+systems. As a consequence the usefulness of WebKit logs is noticeably
+reduced.
+
+This patch fixes the issue by moving the code logging to the system
+console to the synchronous part of Document::didLogMessage(), while
+still handling the rest in the m_logMessageTaskQueue callback.
+
+* dom/Document.cpp:
+(WebCore::Document::didLogMessage):
+* page/PageConsoleClient.cpp:
+(WebCore::PageConsoleClient::addMessage):
+
 2021-02-23  Chris Fleizach  
 
 AX: VoiceOver incorrectly announces groups in ARIA tree instances as empty


Modified: trunk/Source/WebCore/dom/Document.cpp (273328 => 273329)

--- trunk/Source/WebCore/dom/Document.cpp	2021-02-23 20:04:05 UTC (rev 273328)
+++ trunk/Source/WebCore/dom/Document.cpp	2021-02-23 20:09:56 UTC (rev 273329)
@@ -249,8 +249,10 @@
 #include "XPathExpression.h"
 #include "XPathNSResolver.h"
 #include "XPathResult.h"
+#include <_javascript_Core/ConsoleClient.h>
 #include <_javascript_Core/ConsoleMessage.h>
 #include <_javascript_Core/RegularExpression.h>
+#include <_javascript_Core/ScriptArguments.h>
 #include <_javascript_Core/ScriptCallStack.h>
 #include <_javascript_Core/VM.h>
 #include 
@@ -8443,13 +8445,21 @@
 if (messageSource == MessageSource::Other)
 return;
 
-m_logMessageTaskQueue.enqueueTask([this, level, messageSource, logMessages = WTFMove(logMessages)]() mutable {
+auto messageLevel = messageLevelFromWTFLogLevel(level);
+auto message = makeUnique(messageSource, MessageType::Log, messageLevel, WTFMove(logMessages), mainWorldExecState(frame()));
+
+if (UNLIKELY(page->settings().logsPageMessagesToSystemConsoleEnabled() || PageConsoleClient::shouldPrintExceptions())) {
+if (message->type() == MessageType::Image) {
+ASSERT(message->arguments());
+JSC::ConsoleClient::printConsoleMessageWithArguments(message->source(), message->type(), message->level(), message->arguments()->globalObject(), *message->arguments());
+} else
+JSC::ConsoleClient::printConsoleMessage(message->source(), message->type(), message->level(), message->toString(), message->url(), message->line(), message->column());
+}
+
+m_logMessageTaskQueue.enqueueTask([this, message = WTFMove(message)]() mutable {
 if (!this->page())
 return;
 
-auto messageLevel = messageLevelFromWTFLogLevel(level);
-auto message 

[webkit-changes] [272499] trunk

2021-02-08 Thread aboya
Title: [272499] trunk








Revision 272499
Author ab...@igalia.com
Date 2021-02-08 10:11:31 -0800 (Mon, 08 Feb 2021)


Log Message
Add ConsoleMessage::toString()
https://bugs.webkit.org/show_bug.cgi?id=221539

Reviewed by Eric Carlson.

Source/_javascript_Core:

Currently ConsoleMessage doesn't have a publicly API to retrieve the
stored JSON values into a string for printing.

The closest equivalent is message(), but it doesn't return any JSON
objects attached. This makes it an ill fit when printing
ConsoleMessage's to the system terminal, since these JSON values often
contain information that is important for debugging, e.g.:

SourceBufferPrivateGStreamer::removeCodedFrames(126493C32001) removing sample (notice: no sample)
SourceBufferPrivateGStreamer::removeCodedFrames(126493C32001) the range in removeCodedFrames() includes already enqueued samples, reenqueueing from (notice: no time)

This patch adds a new ConsoleMessage::toString() method that
constructs a String containing these JSON values, and makes use of it
when printing messages to the system terminal, giving more useful
output, e.g:

CONSOLE MEDIASOURCE DEBUG MediaSourcePrivateGStreamer::addSourceBuffer(D4447A9F1F483EEF) {"containerType":"video/webm","codecs":"codecs","profiles":"profiles"}
CONSOLE MEDIA LOG HTMLMediaElement::mediaPlayerDurationChanged(D4447A9F1F483EEF) duration = {"invalid":true,"numerator":-1,"denominator":1,"flags":0}, current time = {"value":0,"numerator":0,"denominator":1000,"flags":1}

* inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::toString const):
* inspector/ConsoleMessage.h:

Source/WebCore:

Use ConsoleMessage::toString() instead of ConsoleMessage::message().

* page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::addMessage):

Tools:

Added unit tests.

* TestWebKitAPI/Tests/_javascript_Core/InspectorConsoleMessage.cpp:
(TestWebKitAPI::TEST):

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/inspector/ConsoleMessage.cpp
trunk/Source/_javascript_Core/inspector/ConsoleMessage.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/PageConsoleClient.cpp
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/_javascript_Core/InspectorConsoleMessage.cpp




Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (272498 => 272499)

--- trunk/Source/_javascript_Core/ChangeLog	2021-02-08 17:37:13 UTC (rev 272498)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-02-08 18:11:31 UTC (rev 272499)
@@ -1,5 +1,35 @@
 2021-02-08  Alicia Boya García  
 
+Add ConsoleMessage::toString()
+https://bugs.webkit.org/show_bug.cgi?id=221539
+
+Reviewed by Eric Carlson.
+
+Currently ConsoleMessage doesn't have a publicly API to retrieve the
+stored JSON values into a string for printing.
+
+The closest equivalent is message(), but it doesn't return any JSON
+objects attached. This makes it an ill fit when printing
+ConsoleMessage's to the system terminal, since these JSON values often
+contain information that is important for debugging, e.g.:
+
+SourceBufferPrivateGStreamer::removeCodedFrames(126493C32001) removing sample (notice: no sample)
+SourceBufferPrivateGStreamer::removeCodedFrames(126493C32001) the range in removeCodedFrames() includes already enqueued samples, reenqueueing from (notice: no time)
+
+This patch adds a new ConsoleMessage::toString() method that
+constructs a String containing these JSON values, and makes use of it
+when printing messages to the system terminal, giving more useful
+output, e.g:
+
+CONSOLE MEDIASOURCE DEBUG MediaSourcePrivateGStreamer::addSourceBuffer(D4447A9F1F483EEF) {"containerType":"video/webm","codecs":"codecs","profiles":"profiles"}
+CONSOLE MEDIA LOG HTMLMediaElement::mediaPlayerDurationChanged(D4447A9F1F483EEF) duration = {"invalid":true,"numerator":-1,"denominator":1,"flags":0}, current time = {"value":0,"numerator":0,"denominator":1000,"flags":1}
+
+* inspector/ConsoleMessage.cpp:
+(Inspector::ConsoleMessage::toString const):
+* inspector/ConsoleMessage.h:
+
+2021-02-08  Alicia Boya García  
+
 ConsoleMessage: Don't encode string JSONLogValue's as JSON
 https://bugs.webkit.org/show_bug.cgi?id=221421
 


Modified: trunk/Source/_javascript_Core/inspector/ConsoleMessage.cpp (272498 => 272499)

--- trunk/Source/_javascript_Core/inspector/ConsoleMessage.cpp	2021-02-08 17:37:13 UTC (rev 272498)
+++ trunk/Source/_javascript_Core/inspector/ConsoleMessage.cpp	2021-02-08 18:11:31 UTC (rev 272499)
@@ -311,6 +311,17 @@
 consoleFrontendDispatcher.messageAdded(WTFMove(messageObject));
 }
 
+String ConsoleMessage::toString() const
+{
+if (m_jsonLogValues.isEmpty())
+return m_message;
+
+StringBuilder builder;
+for (auto& message : m_jsonLogValues)
+builder.append(message.value);
+return builder.toString();
+}
+
 void 

[webkit-changes] [272484] trunk

2021-02-08 Thread aboya
Title: [272484] trunk








Revision 272484
Author ab...@igalia.com
Date 2021-02-08 01:47:26 -0800 (Mon, 08 Feb 2021)


Log Message
ConsoleMessage: Don't encode string JSONLogValue's as JSON
https://bugs.webkit.org/show_bug.cgi?id=221421

Reviewed by Eric Carlson.

.:

Enable _javascript_Core API tests.

* Source/cmake/WebKitCommon.cmake:

Source/_javascript_Core:

JSONLogValue's have two tagged types: String and JSON. Despite this,
the ConsoleMessage constructor was converting the string values to
JSON while coalescing them.

This also added quotes on the return value of message() for
ConsoleMessage's created with this constructor, but not with others.

This patch removes that behavior, keeping strings as strings and using
wrapObject() instead of wrapJSONString() for them.

* inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::ConsoleMessage):
(Inspector::ConsoleMessage::addToFrontend):

Tools:

Added API tests to check for the output of message() when constructing
ConsoleMessage objects with JSONLogValue's.

This includes changes contributed by Philippe Normand enabling
_javascript_Core tests which were previously disabled in WebKitGTK and
making them compile again.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/Tests/WebKit/InspectorConsoleMessage.cpp: Added.
(TestWebKitAPI::TEST):

Modified Paths

trunk/ChangeLog
trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/inspector/ConsoleMessage.cpp
trunk/Source/_javascript_Core/runtime/InitializeThreading.h
trunk/Source/cmake/WebKitCommon.cmake
trunk/Tools/ChangeLog
trunk/Tools/Scripts/run-gtk-tests
trunk/Tools/TestWebKitAPI/CMakeLists.txt


Added Paths

trunk/Tools/TestWebKitAPI/Tests/_javascript_Core/InspectorConsoleMessage.cpp




Diff

Modified: trunk/ChangeLog (272483 => 272484)

--- trunk/ChangeLog	2021-02-08 09:12:48 UTC (rev 272483)
+++ trunk/ChangeLog	2021-02-08 09:47:26 UTC (rev 272484)
@@ -1,3 +1,14 @@
+2021-02-08  Alicia Boya García  
+
+ConsoleMessage: Don't encode string JSONLogValue's as JSON
+https://bugs.webkit.org/show_bug.cgi?id=221421
+
+Reviewed by Eric Carlson.
+
+Enable _javascript_Core API tests.
+
+* Source/cmake/WebKitCommon.cmake:
+
 2021-02-05  Don Olmstead  
 
 [MSVC] Catalog warnings


Modified: trunk/Source/_javascript_Core/ChangeLog (272483 => 272484)

--- trunk/Source/_javascript_Core/ChangeLog	2021-02-08 09:12:48 UTC (rev 272483)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-02-08 09:47:26 UTC (rev 272484)
@@ -1,3 +1,24 @@
+2021-02-08  Alicia Boya García  
+
+ConsoleMessage: Don't encode string JSONLogValue's as JSON
+https://bugs.webkit.org/show_bug.cgi?id=221421
+
+Reviewed by Eric Carlson.
+
+JSONLogValue's have two tagged types: String and JSON. Despite this,
+the ConsoleMessage constructor was converting the string values to
+JSON while coalescing them.
+
+This also added quotes on the return value of message() for
+ConsoleMessage's created with this constructor, but not with others.
+
+This patch removes that behavior, keeping strings as strings and using
+wrapObject() instead of wrapJSONString() for them.
+
+* inspector/ConsoleMessage.cpp:
+(Inspector::ConsoleMessage::ConsoleMessage):
+(Inspector::ConsoleMessage::addToFrontend):
+
 2021-02-07  Yusuke Suzuki  
 
 [JSC] Replace toInteger with toIntegerOrInfinity


Modified: trunk/Source/_javascript_Core/inspector/ConsoleMessage.cpp (272483 => 272484)

--- trunk/Source/_javascript_Core/inspector/ConsoleMessage.cpp	2021-02-08 09:12:48 UTC (rev 272483)
+++ trunk/Source/_javascript_Core/inspector/ConsoleMessage.cpp	2021-02-08 09:47:26 UTC (rev 272484)
@@ -135,7 +135,7 @@
 break;
 case JSONLogValue::Type::JSON:
 if (builder.length()) {
-m_jsonLogValues.append({ JSONLogValue::Type::String, JSON::Value::create(builder.toString())->toJSONString() });
+m_jsonLogValues.append({ JSONLogValue::Type::String, builder.toString() });
 builder.resize(0);
 }
 
@@ -145,7 +145,7 @@
 }
 
 if (builder.length())
-m_jsonLogValues.append({ JSONLogValue::Type::String, JSON::Value::create(builder.toString())->toJSONString() });
+m_jsonLogValues.append({ JSONLogValue::Type::String, builder.toString() });
 
 if (m_jsonLogValues.size())
 m_message = m_jsonLogValues[0].value;
@@ -280,10 +280,19 @@
 }
 
 if (m_jsonLogValues.size()) {
+JSC::JSLockHolder lock(globalObject()->vm()); // Necessary for safe jsString() instantiation.
 for (auto& message : m_jsonLogValues) {
 if (message.value.isEmpty())
 continue;
-auto inspectorValue = injectedScript.wrapJSONString(message.value, "console"_s, generatePreview);
+RefPtr inspectorValue;
+

[webkit-changes] [272407] trunk/Tools

2021-02-05 Thread aboya
Title: [272407] trunk/Tools








Revision 272407
Author ab...@igalia.com
Date 2021-02-05 02:03:29 -0800 (Fri, 05 Feb 2021)


Log Message
[GTK] run-gtk-tests: Support running individual tests for GTest test suites
https://bugs.webkit.org/show_bug.cgi?id=221050

Reviewed by Adrian Perez de Castro.

run-gtk-tests accepts any number of optional `-p` arguments to run
only certain tests. Unfortunately, this feature is only currently
implemented for glib tests suites.

This patch adds support for this feature with gtest suites as well.

* glib/api_test_runner.py:
(TestRunner._run_google_test_suite):
(TestRunner._run_test):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/glib/api_test_runner.py




Diff

Modified: trunk/Tools/ChangeLog (272406 => 272407)

--- trunk/Tools/ChangeLog	2021-02-05 08:45:38 UTC (rev 272406)
+++ trunk/Tools/ChangeLog	2021-02-05 10:03:29 UTC (rev 272407)
@@ -1,3 +1,20 @@
+2021-02-05  Alicia Boya García  
+
+[GTK] run-gtk-tests: Support running individual tests for GTest test suites
+https://bugs.webkit.org/show_bug.cgi?id=221050
+
+Reviewed by Adrian Perez de Castro.
+
+run-gtk-tests accepts any number of optional `-p` arguments to run
+only certain tests. Unfortunately, this feature is only currently
+implemented for glib tests suites.
+
+This patch adds support for this feature with gtest suites as well.
+
+* glib/api_test_runner.py:
+(TestRunner._run_google_test_suite):
+(TestRunner._run_test):
+
 2021-02-04  Aakash Jain  
 
 [build.webkit.org] Update dashboard links for layout test results


Modified: trunk/Tools/glib/api_test_runner.py (272406 => 272407)

--- trunk/Tools/glib/api_test_runner.py	2021-02-05 08:45:38 UTC (rev 272406)
+++ trunk/Tools/glib/api_test_runner.py	2021-02-05 10:03:29 UTC (rev 272407)
@@ -250,10 +250,11 @@
 
 return {subtest: "PASS"}
 
-def _run_google_test_suite(self, test_program, skipped_test_cases):
+def _run_google_test_suite(self, test_program, subtests, skipped_test_cases):
 result = {}
 for subtest in self._get_tests_from_google_test_suite(test_program, skipped_test_cases):
-result.update(self._run_google_test(test_program, subtest))
+if subtest in subtests or not subtests:
+result.update(self._run_google_test(test_program, subtest))
 return result
 
 def is_glib_test(self, test_program):
@@ -270,7 +271,7 @@
 return self._run_test_glib(test_program, subtests, skipped_test_cases)
 
 if self.is_google_test(test_program):
-return self._run_google_test_suite(test_program, skipped_test_cases)
+return self._run_google_test_suite(test_program, subtests, skipped_test_cases)
 
 # FIXME: support skipping Qt subtests
 if self.is_qt_test(test_program):






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


[webkit-changes] [272167] trunk/Tools

2021-02-01 Thread aboya
Title: [272167] trunk/Tools








Revision 272167
Author ab...@igalia.com
Date 2021-02-01 12:37:44 -0800 (Mon, 01 Feb 2021)


Log Message
autoinstall.py: Don't use an XML parser to parse HTML
https://bugs.webkit.org/show_bug.cgi?id=221162

Reviewed by Jonathan Bedard.

Very recently autoinstall.py started failing becagse the page returned
by https://pypi.org/simple/fasteners/ now contains a  tag, which
is not parseable as XML without the trailing slash.

Despite what an initial fix in r272041 stated, this is not caused by
invalid HTML:  tags are not required to have an ending slash to
be standards compliant in any version of HTML.

This patch replaces that code to use an HTML parser instead of an XML
parser, making it more robust.

* Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
(SimplyPypiIndexPageParser):
(SimplyPypiIndexPageParser.__init__):
(SimplyPypiIndexPageParser.handle_starttag):
(SimplyPypiIndexPageParser.handle_data):
(SimplyPypiIndexPageParser.handle_endtag):
(SimplyPypiIndexPageParser.parse):
(Package.archives):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py




Diff

Modified: trunk/Tools/ChangeLog (272166 => 272167)

--- trunk/Tools/ChangeLog	2021-02-01 20:36:31 UTC (rev 272166)
+++ trunk/Tools/ChangeLog	2021-02-01 20:37:44 UTC (rev 272167)
@@ -1,3 +1,30 @@
+2021-02-01  Alicia Boya García  
+
+autoinstall.py: Don't use an XML parser to parse HTML
+https://bugs.webkit.org/show_bug.cgi?id=221162
+
+Reviewed by Jonathan Bedard.
+
+Very recently autoinstall.py started failing becagse the page returned
+by https://pypi.org/simple/fasteners/ now contains a  tag, which
+is not parseable as XML without the trailing slash.
+
+Despite what an initial fix in r272041 stated, this is not caused by
+invalid HTML:  tags are not required to have an ending slash to
+be standards compliant in any version of HTML.
+
+This patch replaces that code to use an HTML parser instead of an XML
+parser, making it more robust.
+
+* Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
+(SimplyPypiIndexPageParser):
+(SimplyPypiIndexPageParser.__init__):
+(SimplyPypiIndexPageParser.handle_starttag):
+(SimplyPypiIndexPageParser.handle_data):
+(SimplyPypiIndexPageParser.handle_endtag):
+(SimplyPypiIndexPageParser.parse):
+(Package.archives):
+
 2021-02-01  Sihui Liu  
 
 Use user media permission prompt for speech recognition


Modified: trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py (272166 => 272167)

--- trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py	2021-02-01 20:36:31 UTC (rev 272166)
+++ trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py	2021-02-01 20:37:44 UTC (rev 272167)
@@ -38,15 +38,45 @@
 from logging import NullHandler
 from webkitcorepy import log
 from webkitcorepy.version import Version
-from xml.dom import minidom
 
 if sys.version_info > (3, 0):
 from urllib.request import urlopen
 from urllib.error import URLError
+from html.parser import HTMLParser
 else:
 from urllib2 import urlopen, URLError
+from HTMLParser import HTMLParser
 
 
+class SimplyPypiIndexPageParser(HTMLParser):
+def __init__(self):
+HTMLParser.__init__(self)
+self.packages = []
+self.current_package = None
+
+def handle_starttag(self, tag, attrs):
+if tag == "a":
+attrs_dict = dict(attrs)
+if "href" not in attrs_dict:
+return
+self.current_package = attrs_dict
+
+def handle_data(self, data):
+if self.current_package is not None:
+self.current_package["name"] = data
+
+def handle_endtag(self, tag):
+if tag == "a" and self.current_package is not None:
+self.packages.append(self.current_package)
+self.current_package = None
+
+@staticmethod
+def parse(html_text):
+parser = SimplyPypiIndexPageParser()
+parser.feed(html_text)
+return parser.packages
+
+
 class Package(object):
 class Archive(object):
 def __init__(self, name, link, version, extension=None):
@@ -126,27 +156,12 @@
 if response.code != 200:
 raise ValueError('The package {} was not found on {}'.format(self.pypi_name, AutoInstall.index))
 
-# In some cases, pypi serves invalid html
-content = response.read()
-content = re.sub(b'\s+\n', b'', content)
-
-page = minidom.parseString(content)
+packages = SimplyPypiIndexPageParser.parse(response.read().decode("UTF-8"))
 cached_tags = None
 
-for element in reversed(page.getElementsByTagName("a")):
-if not len(element.childNodes):
-continue
-if 

[webkit-changes] [272013] trunk/Tools

2021-01-28 Thread aboya
Title: [272013] trunk/Tools








Revision 272013
Author ab...@igalia.com
Date 2021-01-28 06:25:05 -0800 (Thu, 28 Jan 2021)


Log Message
[GTK] run-gtk-tests: Ensure correct count when subtests are specified
https://bugs.webkit.org/show_bug.cgi?id=221049

Reviewed by Adrian Perez de Castro.

Currently the code of run-gtk-tests adds the number of skipped tests
to the count of total tests. That computation failed to take into
account the case where specific subtests are run (by means of passing
the -p argument), instead of the full test suite.

This patch fixes that, only adding to "total tests" those skipped
subtests that were also specified with the -p argument when using that
mode.

* glib/api_test_runner.py:
(TestRunner.run_tests):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/glib/api_test_runner.py




Diff

Modified: trunk/Tools/ChangeLog (272012 => 272013)

--- trunk/Tools/ChangeLog	2021-01-28 14:01:26 UTC (rev 272012)
+++ trunk/Tools/ChangeLog	2021-01-28 14:25:05 UTC (rev 272013)
@@ -1,3 +1,22 @@
+2021-01-28  Alicia Boya García  
+
+[GTK] run-gtk-tests: Ensure correct count when subtests are specified
+https://bugs.webkit.org/show_bug.cgi?id=221049
+
+Reviewed by Adrian Perez de Castro.
+
+Currently the code of run-gtk-tests adds the number of skipped tests
+to the count of total tests. That computation failed to take into
+account the case where specific subtests are run (by means of passing
+the -p argument), instead of the full test suite.
+
+This patch fixes that, only adding to "total tests" those skipped
+subtests that were also specified with the -p argument when using that
+mode.
+
+* glib/api_test_runner.py:
+(TestRunner.run_tests):
+
 2021-01-28  Lauro Moura  
 
 [Flatpak SDK] Avoid "Invalid byte sequence in conversion input" errors and other encoding issues


Modified: trunk/Tools/glib/api_test_runner.py (272012 => 272013)

--- trunk/Tools/glib/api_test_runner.py	2021-01-28 14:01:26 UTC (rev 272012)
+++ trunk/Tools/glib/api_test_runner.py	2021-01-28 14:25:05 UTC (rev 272013)
@@ -301,7 +301,7 @@
 subtests = self._options.subtests
 for test in self._tests:
 skipped_subtests = self._test_cases_to_skip(test)
-number_of_total_tests += len(skipped_subtests)
+number_of_total_tests += len(skipped_subtests if not subtests else set(skipped_subtests).intersection(subtests))
 results = self._run_test(test, subtests, skipped_subtests)
 if len(results) == 0:
 # No subtests were emitted, either the test binary didn't exist, or we don't know how to run it, or it crashed.






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


[webkit-changes] [271955] trunk/Tools

2021-01-27 Thread aboya
Title: [271955] trunk/Tools








Revision 271955
Author ab...@igalia.com
Date 2021-01-27 09:14:14 -0800 (Wed, 27 Jan 2021)


Log Message
[GTK] run-gtk-tests: Crashing and non-existent tests should not count as a pass
https://bugs.webkit.org/show_bug.cgi?id=220863

Reviewed by Michael Catanzaro.

The current implementation doesn't account for test binaries that have
not emitted any subtests. This is the case when a test binary doesn't
exist or it crashes.

Also, in the latter case, the stderr of the crashed processes was not
being outputted to the user, masking a crashing test binary as a
passing test.

This patch fixes both issues: It adds several warning prints when
binaries can't be run or fail to add any subtest, emitting the stderr
generated by the failing or crashing binary.

* glib/api_test_runner.py:
(TestRunner._run_test):
(TestRunner.run_tests):
* glib/glib_test_runner.py:
(GLibTestRunner.run):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/glib/api_test_runner.py
trunk/Tools/glib/glib_test_runner.py




Diff

Modified: trunk/Tools/ChangeLog (271954 => 271955)

--- trunk/Tools/ChangeLog	2021-01-27 16:12:27 UTC (rev 271954)
+++ trunk/Tools/ChangeLog	2021-01-27 17:14:14 UTC (rev 271955)
@@ -1,3 +1,28 @@
+2021-01-27  Alicia Boya García  
+
+[GTK] run-gtk-tests: Crashing and non-existent tests should not count as a pass
+https://bugs.webkit.org/show_bug.cgi?id=220863
+
+Reviewed by Michael Catanzaro.
+
+The current implementation doesn't account for test binaries that have
+not emitted any subtests. This is the case when a test binary doesn't
+exist or it crashes.
+
+Also, in the latter case, the stderr of the crashed processes was not
+being outputted to the user, masking a crashing test binary as a
+passing test.
+
+This patch fixes both issues: It adds several warning prints when
+binaries can't be run or fail to add any subtest, emitting the stderr
+generated by the failing or crashing binary.
+
+* glib/api_test_runner.py:
+(TestRunner._run_test):
+(TestRunner.run_tests):
+* glib/glib_test_runner.py:
+(GLibTestRunner.run):
+
 2021-01-27  Youenn Fablet  
 
 Enable GPU WebRTC codecs in WebKitTestRunner


Modified: trunk/Tools/glib/api_test_runner.py (271954 => 271955)

--- trunk/Tools/glib/api_test_runner.py	2021-01-27 16:12:27 UTC (rev 271954)
+++ trunk/Tools/glib/api_test_runner.py	2021-01-27 17:14:14 UTC (rev 271955)
@@ -276,6 +276,7 @@
 if self.is_qt_test(test_program):
 return self._run_test_qt(test_program)
 
+sys.stderr.write("WARNING: %s doesn't seem to be a supported test program.\n" % test_program)
 return {}
 
 def run_tests(self):
@@ -302,6 +303,11 @@
 skipped_subtests = self._test_cases_to_skip(test)
 number_of_total_tests += len(skipped_subtests)
 results = self._run_test(test, subtests, skipped_subtests)
+if len(results) == 0:
+# No subtests were emitted, either the test binary didn't exist, or we don't know how to run it, or it crashed.
+sys.stderr.write("ERROR: %s failed to run, as it didn't emit any subtests.\n" % test)
+crashed_tests[test] = ["(problem in test executable)"]
+continue
 number_of_executed_subtests_for_test = len(results)
 if number_of_executed_subtests_for_test > 1:
 number_of_executed_tests += number_of_executed_subtests_for_test


Modified: trunk/Tools/glib/glib_test_runner.py (271954 => 271955)

--- trunk/Tools/glib/glib_test_runner.py	2021-01-27 16:12:27 UTC (rev 271954)
+++ trunk/Tools/glib/glib_test_runner.py	2021-01-27 17:14:14 UTC (rev 271955)
@@ -284,6 +284,12 @@
 self._results['afterAll'] = 'CRASH'
 return self._results
 
+if len(self._results) == 0:
+# Normally stderr is checked after a subtest has been parsed. If no subtests have been parsed
+# chances are something went wrong with the test executable itself and we should print stderr
+# to the user.
+sys.stderr.write(self._read_from_stderr(self._stderr_fd))
+
 self._stderr_fd = None
 
 if need_restart:






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


[webkit-changes] [271789] trunk/Tools

2021-01-25 Thread aboya
Title: [271789] trunk/Tools








Revision 271789
Author ab...@igalia.com
Date 2021-01-25 02:23:06 -0800 (Mon, 25 Jan 2021)


Log Message
[GTK] run-gtk-tests: Use sys.exit(1) instead of return 1
https://bugs.webkit.org/show_bug.cgi?id=220860

Reviewed by Philippe Normand.

Several parts of the code in api_test_runner.py returned 1 on failure.
While common for main() functions, this is bad in functions that are
expected to return something else than an exit code, and lets the
program run after the error. sys.exit(1) should be used in those cases
instead.

* glib/api_test_runner.py:
(TestRunner._get_tests_from_google_test_suite):
(TestRunner.run_tests):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/glib/api_test_runner.py




Diff

Modified: trunk/Tools/ChangeLog (271788 => 271789)

--- trunk/Tools/ChangeLog	2021-01-25 09:45:47 UTC (rev 271788)
+++ trunk/Tools/ChangeLog	2021-01-25 10:23:06 UTC (rev 271789)
@@ -1,3 +1,20 @@
+2021-01-25  Alicia Boya García  
+
+[GTK] run-gtk-tests: Use sys.exit(1) instead of return 1
+https://bugs.webkit.org/show_bug.cgi?id=220860
+
+Reviewed by Philippe Normand.
+
+Several parts of the code in api_test_runner.py returned 1 on failure.
+While common for main() functions, this is bad in functions that are
+expected to return something else than an exit code, and lets the
+program run after the error. sys.exit(1) should be used in those cases
+instead.
+
+* glib/api_test_runner.py:
+(TestRunner._get_tests_from_google_test_suite):
+(TestRunner.run_tests):
+
 2021-01-24  Simon Fraser  
 
 [iOS WK2] theverge.com - rubber band scrolling at the top of the page causes an abrupt jump


Modified: trunk/Tools/glib/api_test_runner.py (271788 => 271789)

--- trunk/Tools/glib/api_test_runner.py	2021-01-25 09:45:47 UTC (rev 271788)
+++ trunk/Tools/glib/api_test_runner.py	2021-01-25 10:23:06 UTC (rev 271789)
@@ -203,7 +203,7 @@
 except subprocess.CalledProcessError:
 sys.stderr.write("ERROR: could not list available tests for binary %s.\n" % (test_program))
 sys.stderr.flush()
-return 1
+sys.exit(1)
 
 tests = []
 prefix = None
@@ -282,7 +282,7 @@
 if not self._tests:
 sys.stderr.write("ERROR: tests not found in %s.\n" % (self._test_programs_base_dir()))
 sys.stderr.flush()
-return 1
+sys.exit(1)
 
 self._setup_testing_environment()
 






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


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

2021-01-05 Thread aboya
Title: [271163] trunk/Source/WebCore








Revision 271163
Author ab...@igalia.com
Date 2021-01-05 11:17:50 -0800 (Tue, 05 Jan 2021)


Log Message
[GStreamer] Use Ref<> in AudioTrackPrivateGStreamer::create()
https://bugs.webkit.org/show_bug.cgi?id=220324

Reviewed by Philippe Normand.

create() should return Ref<> when the return value can't be null.

This is a cleanup with no functional changes.

* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (271162 => 271163)

--- trunk/Source/WebCore/ChangeLog	2021-01-05 18:44:30 UTC (rev 271162)
+++ trunk/Source/WebCore/ChangeLog	2021-01-05 19:17:50 UTC (rev 271163)
@@ -1,3 +1,18 @@
+2021-01-05  Alicia Boya García  
+
+[GStreamer] Use Ref<> in AudioTrackPrivateGStreamer::create()
+https://bugs.webkit.org/show_bug.cgi?id=220324
+
+Reviewed by Philippe Normand.
+
+create() should return Ref<> when the return value can't be null.
+
+This is a cleanup with no functional changes.
+
+* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
+
 2021-01-05  Sihui Liu  
 
 Fail speech recognition when page is muted for audio capture


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h (271162 => 271163)

--- trunk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h	2021-01-05 18:44:30 UTC (rev 271162)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h	2021-01-05 19:17:50 UTC (rev 271163)
@@ -38,12 +38,12 @@
 
 class AudioTrackPrivateGStreamer final : public AudioTrackPrivate, public TrackPrivateBaseGStreamer {
 public:
-static RefPtr create(WeakPtr player, gint index, GRefPtr pad)
+static Ref create(WeakPtr player, gint index, GRefPtr pad)
 {
 return adoptRef(*new AudioTrackPrivateGStreamer(player, index, pad));
 }
 
-static RefPtr create(WeakPtr player, gint index, GRefPtr stream)
+static Ref create(WeakPtr player, gint index, GRefPtr stream)
 {
 return adoptRef(*new AudioTrackPrivateGStreamer(player, index, stream));
 }


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (271162 => 271163)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2021-01-05 18:44:30 UTC (rev 271162)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2021-01-05 19:17:50 UTC (rev 271163)
@@ -1172,8 +1172,8 @@
 if (!track->trackIndex())
 track->setActive(true);
 ASSERT(streamId == track->id());
-m_audioTracks.add(streamId, track);
-m_player->addAudioTrack(*track);
+m_audioTracks.add(streamId, track.copyRef());
+m_player->addAudioTrack(track.get());
 }
 
 purgeInvalidAudioTracks(validAudioStreams);






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


[webkit-changes] [271136] trunk/LayoutTests

2021-01-04 Thread aboya
Title: [271136] trunk/LayoutTests








Revision 271136
Author ab...@igalia.com
Date 2021-01-04 11:12:12 -0800 (Mon, 04 Jan 2021)


Log Message
[GStreamer][MSE] Unreviewed micro-gardening (remove spurious -expected.txt references)
https://bugs.webkit.org/show_bug.cgi?id=220244


* platform/glib/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (271135 => 271136)

--- trunk/LayoutTests/ChangeLog	2021-01-04 18:13:53 UTC (rev 271135)
+++ trunk/LayoutTests/ChangeLog	2021-01-04 19:12:12 UTC (rev 271136)
@@ -1,5 +1,12 @@
 2021-01-04  Alicia Boya García  
 
+[GStreamer][MSE] Unreviewed micro-gardening (remove spurious -expected.txt references)
+https://bugs.webkit.org/show_bug.cgi?id=220244
+
+* platform/glib/TestExpectations:
+
+2021-01-04  Alicia Boya García  
+
 [GStreamer][MSE] Unreviewed micro-gardening
 https://bugs.webkit.org/show_bug.cgi?id=220244
 


Modified: trunk/LayoutTests/platform/glib/TestExpectations (271135 => 271136)

--- trunk/LayoutTests/platform/glib/TestExpectations	2021-01-04 18:13:53 UTC (rev 271135)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2021-01-04 19:12:12 UTC (rev 271136)
@@ -1925,12 +1925,8 @@
 webkit.org/b/220083 [ Debug ] media/media-source/media-source-unnecessary-seek-seeked.html [ Pass Crash ]
 
 webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-av-framesize.html [ Pass Failure ]
-webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-v-framesize-expected.txt [ Pass Failure ]
-webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize-expected.txt [ Pass Failure ]
 webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-framesize.html [ Pass Failure ]
 webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-v-framesize.html [ Pass Failure ]
-webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-av-framesize-expected.txt [ Pass Failure ]
-webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-framesize-expected.txt [ Pass Failure ]
 webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html [ Pass Failure ]
 
 # End: Common failures between GTK and WPE.






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


[webkit-changes] [271132] trunk/LayoutTests

2021-01-04 Thread aboya
Title: [271132] trunk/LayoutTests








Revision 271132
Author ab...@igalia.com
Date 2021-01-04 09:42:32 -0800 (Mon, 04 Jan 2021)


Log Message
[GStreamer][MSE] Unreviewed micro-gardening
https://bugs.webkit.org/show_bug.cgi?id=220244


* platform/glib/TestExpectations:
* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/TestExpectations
trunk/LayoutTests/platform/gtk/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (271131 => 271132)

--- trunk/LayoutTests/ChangeLog	2021-01-04 16:32:09 UTC (rev 271131)
+++ trunk/LayoutTests/ChangeLog	2021-01-04 17:42:32 UTC (rev 271132)
@@ -1,3 +1,11 @@
+2021-01-04  Alicia Boya García  
+
+[GStreamer][MSE] Unreviewed micro-gardening
+https://bugs.webkit.org/show_bug.cgi?id=220244
+
+* platform/glib/TestExpectations:
+* platform/gtk/TestExpectations:
+
 2020-12-17  Sergio Villar Senin  
 
 Intrinsic size not correctly stored for SVG images


Modified: trunk/LayoutTests/platform/glib/TestExpectations (271131 => 271132)

--- trunk/LayoutTests/platform/glib/TestExpectations	2021-01-04 16:32:09 UTC (rev 271131)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2021-01-04 17:42:32 UTC (rev 271132)
@@ -1924,6 +1924,15 @@
 webkit.org/b/214349 [ Debug ] imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html [ Failure Crash ]
 webkit.org/b/220083 [ Debug ] media/media-source/media-source-unnecessary-seek-seeked.html [ Pass Crash ]
 
+webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-av-framesize.html [ Pass Failure ]
+webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-v-framesize-expected.txt [ Pass Failure ]
+webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize-expected.txt [ Pass Failure ]
+webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-framesize.html [ Pass Failure ]
+webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-v-framesize.html [ Pass Failure ]
+webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-av-framesize-expected.txt [ Pass Failure ]
+webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-framesize-expected.txt [ Pass Failure ]
+webkit.org/b/220242 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html [ Pass Failure ]
+
 # End: Common failures between GTK and WPE.
 
 #


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (271131 => 271132)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2021-01-04 16:32:09 UTC (rev 271131)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2021-01-04 17:42:32 UTC (rev 271132)
@@ -413,7 +413,6 @@
 
 # Known issues that were fixed by the WebKitMediaSrc rework that is now reverted.
 webkit.org/b/203078 imported/w3c/web-platform-tests/media-source/mediasource-replay.html [ Failure Crash ]
-webkit.org/b/203078 imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-v-framesize.html [ Pass Failure ]
 
 webkit.org/b/176020 imported/w3c/web-platform-tests/media-source/mediasource-removesourcebuffer.html [ Crash Pass ]
 webkit.org/b/180803 imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions.html [ Failure ]






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


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

2021-01-04 Thread aboya
Title: [271128] trunk/Source/WebCore








Revision 271128
Author ab...@igalia.com
Date 2021-01-04 02:34:26 -0800 (Mon, 04 Jan 2021)


Log Message
[GStreamer] More robust video size handling
https://bugs.webkit.org/show_bug.cgi?id=220103

Reviewed by Philippe Normand.

This patch improves the handling of how video size is detected and
reported to WebKit, fixing several issues:

a) The value returned by calling MediaPlayerPrivateGStreamer
::naturalSize() should not change during a given main thread tick,
since this can potentially be read several times from the rendering
code. This caused the elusive racy crash on `ASSERTION FAILED:
!intrinsicSizeChanged || !view().frameView().layoutContext().isInRenderTreeLayout()`
that has been appearing randomly in many layout tests for a very long time.

b) Video rotation used to be handled via bus messages, but this is
also racy, since the handling of bus messages in the main thread is
run on a different priority than other callbacks. This caused a flaky
failure on media/video-orientation.html.

c) In MSE, appending a second initialization segment with a different
video size triggered a video resize on append, before any frames with
the new size has been played.

This patch fixes these three issues: Only the first initialization
segment will trigger a video resize (this is done so we have a video
size on HAVE_METADATA, as the MSE spec expects), but otherwise video
size is emitted on caps changes on the sink. In the case of regular
playback this is delayed until the first frame arrives so that we have
a guarantee that any rotation tag events have traversed the pipeline
(the data flow through a GStreamer pipeline is done in this order:
CAPS event, optional TAG events and then buffers). Video size changes
are done by posting a task to the main thread, which ensures the value
doesn't change during a main thread tick.

The patch also relinquishes usage of MainThreadNotifier so that
successions of quick video size changes (e.g. in a test case) still
trigger the expected events instead of being potentially coalesced.

Since this patch for the most part fixes race conditions that are not
covered in TestExpectations, it doesn't introduce changes in
TestExpectations.

Note: This patch is not enough to fix imported/w3c/web-platform-tests/media-source/mediasource-config-change-*-framesize tests.
That requires further non-trivial fixes regarding how MSE flushes are
handled.

Note: This patch does not fix framesize WebRTC tests. These seem to be
a consequence of notifying the user too early of the frame size and/or
ready state, before any frame is readable, which is a problem
unrelated to these fixes.

* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::getVideoSizeAndFormatFromCaps):
* platform/graphics/gstreamer/GStreamerCommon.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChanged):
(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::getVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoSizeAndOrientationFromCaps):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (271127 => 271128)

--- trunk/Source/WebCore/ChangeLog	2021-01-03 19:25:43 UTC (rev 271127)
+++ trunk/Source/WebCore/ChangeLog	2021-01-04 10:34:26 UTC (rev 271128)
@@ -1,3 +1,72 @@
+2021-01-04  Alicia Boya García  
+
+[GStreamer] More robust video size handling
+https://bugs.webkit.org/show_bug.cgi?id=220103
+
+Reviewed by Philippe Normand.
+
+This patch improves the handling of how video size is detected and
+reported to WebKit, fixing several issues:
+
+a) The value returned by calling MediaPlayerPrivateGStreamer
+::naturalSize() should not change during a given main thread tick,
+since this can potentially be read several times from the rendering
+code. This caused the elusive racy crash on `ASSERTION FAILED:
+!intrinsicSizeChanged || !view().frameView().layoutContext().isInRenderTreeLayout()`
+that has been appearing randomly in many layout tests for a very long time.
+
+b) Video rotation used to be handled via bus messages, but 

[webkit-changes] [271024] trunk

2020-12-21 Thread aboya
Title: [271024] trunk








Revision 271024
Author ab...@igalia.com
Date 2020-12-21 10:14:08 -0800 (Mon, 21 Dec 2020)


Log Message
[MSE] Fix allSamplesInTrackEnqueued() handling
https://bugs.webkit.org/show_bug.cgi?id=220055

Reviewed by Philippe Normand.

Source/WebCore:

Within the changes introduced by r270612 a spurious call to
allSamplesInTrackEnqueued() was added to provideMediaData().

provideMediaData() is called every time there may be new samples that
need to be enqueued into the playback pipeline.

allSamplesInTrackEnqueued() is supposed to be called when
MediaSource.endOfStream() has been called and all pending samples have
been enqueued, therefore signaling the playback pipeline that no more
samples will be added.

Some decoders need to be notified of this condition in order to move
the last samples in their queue downstream. This is true at least of
the avdec (ffmpeg) decoders that are commonly used in desktop versions
of the GStreamer port.

Calling allSamplesInTrackEnqueued() prematurely will mess with the
playback as the code will not accept any more samples, a serious
problem. This patch fixes it by removing the spurious call and
restoring its original purpose when it was introduced in r230909.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::streamEndedWithError):
(WebCore::MediaSource::openIfInEndedState):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::setMediaSourceEnded):
(WebCore::SourceBuffer::trySignalAllSamplesEnqueued): Deleted.
* Modules/mediasource/SourceBuffer.h:
* platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::setMediaSourceEnded):
(WebCore::SourceBufferPrivate::trySignalAllSamplesInTrackEnqueued):
(WebCore::SourceBufferPrivate::provideMediaData):
* platform/graphics/SourceBufferPrivate.h:

Source/WebKit:

trySignalAllSamplesInTrackEnqueued() does not need to be exposed
outside of SourceBufferPrivate.

* GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::trySignalAllSamplesInTrackEnqueued): Deleted.
* GPUProcess/media/RemoteSourceBufferProxy.h:
* GPUProcess/media/RemoteSourceBufferProxy.messages.in:
* WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::trySignalAllSamplesInTrackEnqueued): Deleted.
* WebProcess/GPU/media/SourceBufferPrivateRemote.h:

LayoutTests:

Adjusted test expectations.

* platform/glib/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp
trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp
trunk/Source/WebCore/Modules/mediasource/SourceBuffer.h
trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.cpp
trunk/Source/WebCore/platform/graphics/SourceBufferPrivate.h
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.cpp
trunk/Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.h
trunk/Source/WebKit/GPUProcess/media/RemoteSourceBufferProxy.messages.in
trunk/Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.cpp
trunk/Source/WebKit/WebProcess/GPU/media/SourceBufferPrivateRemote.h




Diff

Modified: trunk/LayoutTests/ChangeLog (271023 => 271024)

--- trunk/LayoutTests/ChangeLog	2020-12-21 18:11:44 UTC (rev 271023)
+++ trunk/LayoutTests/ChangeLog	2020-12-21 18:14:08 UTC (rev 271024)
@@ -1,3 +1,14 @@
+2020-12-21  Alicia Boya García  
+
+[MSE] Fix allSamplesInTrackEnqueued() handling
+https://bugs.webkit.org/show_bug.cgi?id=220055
+
+Reviewed by Philippe Normand.
+
+Adjusted test expectations.
+
+* platform/glib/TestExpectations:
+
 2020-12-21  Ryan Haddad  
 
 Unreviewed test gardening, rebaseline tests for Windows.


Modified: trunk/LayoutTests/platform/glib/TestExpectations (271023 => 271024)

--- trunk/LayoutTests/platform/glib/TestExpectations	2020-12-21 18:11:44 UTC (rev 271023)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2020-12-21 18:14:08 UTC (rev 271024)
@@ -463,7 +463,6 @@
 webkit.org/b/219822 imported/w3c/web-platform-tests/media-source/mediasource-buffered-seek.html [ Failure ]
 webkit.org/b/219822 imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html [ Failure ]
 webkit.org/b/219822 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-video-bitrate.html [ Pass Failure ]
-webkit.org/b/219822 imported/w3c/web-platform-tests/media-source/mediasource-h264-play-starved.html [ Failure ]
 webkit.org/b/219822 imported/w3c/web-platform-tests/media-source/mediasource-liveseekable.html [ Failure ]
 webkit.org/b/219822 imported/w3c/web-platform-tests/media-source/mediasource-play-then-seek-back.html [ Failure ]
 webkit.org/b/219822 imported/w3c/web-platform-tests/media-source/mediasource-redundant-seek.html [ Failure ]
@@ -472,8 +471,6 @@
 webkit.org/b/219822 

[webkit-changes] [271020] trunk/LayoutTests

2020-12-21 Thread aboya
Title: [271020] trunk/LayoutTests








Revision 271020
Author ab...@igalia.com
Date 2020-12-21 04:15:20 -0800 (Mon, 21 Dec 2020)


Log Message
media-source-webm.html: Handle frame size in HAVE_METADATA
https://bugs.webkit.org/show_bug.cgi?id=220046

Reviewed by Eric Carlson.

The current version of media-source-webm.html assumes that a `resize`
event happens after the first media segment is appended.

This is not necessarily true. In fact, an initialization segment
should cause a transition to HAVE_METADATA, and that per spec implies
the size of the video is known.

In practice, some implementations don't report this until a media
segment has arrived.

Because of the way the current code is written, an implementation
emitting `resize` on HAVE_METADATA would timeout the test. This patch
fixes that, accomodating both cases.

* media/media-source/media-source-webm.html:
* media/media-source/media-source-webm-expected.txt:
* platform/glib/TestExpectations:
* platform/wpe/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/media/media-source/media-source-webm-expected.txt
trunk/LayoutTests/media/media-source/media-source-webm.html
trunk/LayoutTests/platform/glib/TestExpectations
trunk/LayoutTests/platform/wpe/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (271019 => 271020)

--- trunk/LayoutTests/ChangeLog	2020-12-21 04:07:31 UTC (rev 271019)
+++ trunk/LayoutTests/ChangeLog	2020-12-21 12:15:20 UTC (rev 271020)
@@ -1,3 +1,29 @@
+2020-12-21  Alicia Boya García  
+
+media-source-webm.html: Handle frame size in HAVE_METADATA
+https://bugs.webkit.org/show_bug.cgi?id=220046
+
+Reviewed by Eric Carlson.
+
+The current version of media-source-webm.html assumes that a `resize`
+event happens after the first media segment is appended.
+
+This is not necessarily true. In fact, an initialization segment
+should cause a transition to HAVE_METADATA, and that per spec implies
+the size of the video is known.
+
+In practice, some implementations don't report this until a media
+segment has arrived.
+
+Because of the way the current code is written, an implementation
+emitting `resize` on HAVE_METADATA would timeout the test. This patch
+fixes that, accomodating both cases.
+
+* media/media-source/media-source-webm.html:
+* media/media-source/media-source-webm-expected.txt:
+* platform/glib/TestExpectations:
+* platform/wpe/TestExpectations:
+
 2020-12-20  Fujii Hironori  
 
 [WinCairo][WebGL] webgl/1.0.3/conformance/misc/uninitialized-test.html is failing only for Debug builds


Modified: trunk/LayoutTests/media/media-source/media-source-webm-expected.txt (271019 => 271020)

--- trunk/LayoutTests/media/media-source/media-source-webm-expected.txt	2020-12-21 04:07:31 UTC (rev 271019)
+++ trunk/LayoutTests/media/media-source/media-source-webm-expected.txt	2020-12-21 12:15:20 UTC (rev 271020)
@@ -5,11 +5,11 @@
 RUN(source.duration = loader.duration())
 RUN(sourceBuffer = source.addSourceBuffer(loader.type()))
 RUN(sourceBuffer.appendBuffer(loader.initSegment()))
+EVENT(resize)
+EXPECTED (video.videoWidth == '320') OK
+EXPECTED (video.videoHeight == '240') OK
 EVENT(update)
 Append a media segment.
 RUN(sourceBuffer.appendBuffer(loader.mediaSegment(0)))
-EVENT(resize)
-EXPECTED (video.videoWidth == '320') OK
-EXPECTED (video.videoHeight == '240') OK
 END OF TEST
 


Modified: trunk/LayoutTests/media/media-source/media-source-webm.html (271019 => 271020)

--- trunk/LayoutTests/media/media-source/media-source-webm.html	2020-12-21 04:07:31 UTC (rev 271019)
+++ trunk/LayoutTests/media/media-source/media-source-webm.html	2020-12-21 12:15:20 UTC (rev 271020)
@@ -43,6 +43,7 @@
 
 run('source.duration = loader.duration()');
 run('sourceBuffer = source.addSourceBuffer(loader.type())');
+const resized = resizePromise(video, 320, 240);
 run('sourceBuffer.appendBuffer(loader.initSegment())');
 
 await waitFor(sourceBuffer, 'update');
@@ -50,7 +51,7 @@
 consoleWrite('Append a media segment.')
 run('sourceBuffer.appendBuffer(loader.mediaSegment(0))');
 
-await resizePromise(video, 320, 240);
+await resized;
 endTest();
 } catch (e) {
 failTest(`Caught exception: "${e}"`);


Modified: trunk/LayoutTests/platform/glib/TestExpectations (271019 => 271020)

--- trunk/LayoutTests/platform/glib/TestExpectations	2020-12-21 04:07:31 UTC (rev 271019)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2020-12-21 12:15:20 UTC (rev 271020)
@@ -434,7 +434,6 @@
 
 webkit.org/b/203078 media/media-source/media-source-remove-unload-crash.html [ Crash Timeout Pass ]
 webkit.org/b/210528 media/media-source/media-source-seek-back.html [ Crash Pass ]
-webkit.org/b/214636 media/media-source/media-source-webm.html [ Timeout Crash ]
 

[webkit-changes] [270432] trunk/LayoutTests

2020-12-04 Thread aboya
Title: [270432] trunk/LayoutTests








Revision 270432
Author ab...@igalia.com
Date 2020-12-04 08:45:00 -0800 (Fri, 04 Dec 2020)


Log Message
[GStreamer] Unreviewed micro gardening
https://bugs.webkit.org/show_bug.cgi?id=214031

imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video-poster-shown-preload-auto.html
is now passing, likely due to r269407.


* platform/glib/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/glib/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (270431 => 270432)

--- trunk/LayoutTests/ChangeLog	2020-12-04 15:54:44 UTC (rev 270431)
+++ trunk/LayoutTests/ChangeLog	2020-12-04 16:45:00 UTC (rev 270432)
@@ -1,3 +1,13 @@
+2020-12-04  Alicia Boya García  
+
+[GStreamer] Unreviewed micro gardening
+https://bugs.webkit.org/show_bug.cgi?id=214031
+
+imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video-poster-shown-preload-auto.html
+is now passing, likely due to r269407.
+
+* platform/glib/TestExpectations:
+
 2020-12-04  Zalan Bujtas  
 
 Web process assert when loading slack


Modified: trunk/LayoutTests/platform/glib/TestExpectations (270431 => 270432)

--- trunk/LayoutTests/platform/glib/TestExpectations	2020-12-04 15:54:44 UTC (rev 270431)
+++ trunk/LayoutTests/platform/glib/TestExpectations	2020-12-04 16:45:00 UTC (rev 270432)
@@ -434,8 +434,6 @@
 
 webkit.org/b/214038 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html [ Missing Failure ]
 
-webkit.org/b/214031 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video-poster-shown-preload-auto.html [ ImageOnlyFailure ]
-
 webkit.org/b/217829 media/video-orientation-canvas.html [ Failure ]
 
 webkit.org/b/217845 imported/w3c/web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering.html [ Failure ]






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


[webkit-changes] [270404] trunk

2020-12-03 Thread aboya
Title: [270404] trunk








Revision 270404
Author ab...@igalia.com
Date 2020-12-03 13:12:34 -0800 (Thu, 03 Dec 2020)


Log Message
[GStreamer] Fix video losing size at the end of the stream
https://bugs.webkit.org/show_bug.cgi?id=219493

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

Added a test reproducing the bug that gets fixed with the patch.

* web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended-expected.txt: Added.
* web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html: Added.
* web-platform-tests/media/test-1s.mp4: Added.
* web-platform-tests/media/test-1s.webm: Added.

Source/WebCore:

Our port for long had an issue where at the end of the video the
tracks would be erased, causing the video to lose its size and by
extension its aspect ratio.

In absence of a size, WebKit uses the default video size defined by
the spec of 300x150 (2:1 aspect ratio). This causes a video element
that doesn't have a size set through CSS to shrink to that size at the
end of playback, and also for black bars to appear on wider content
(e.g. 16:9 video) when watched in full screen mode.

This patch fixes the problem by not removing the tracks after an end
of stream, and instead reusing them with different pads the next time
the video is played.

Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::setPad):
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html
trunk/LayoutTests/imported/w3c/web-platform-tests/media/test-1s.mp4
trunk/LayoutTests/imported/w3c/web-platform-tests/media/test-1s.webm




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (270403 => 270404)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-12-03 20:47:15 UTC (rev 270403)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-12-03 21:12:34 UTC (rev 270404)
@@ -1,3 +1,17 @@
+2020-12-03  Alicia Boya García  
+
+[GStreamer] Fix video losing size at the end of the stream
+https://bugs.webkit.org/show_bug.cgi?id=219493
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Added a test reproducing the bug that gets fixed with the patch.
+
+* web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended-expected.txt: Added.
+* web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html: Added.
+* web-platform-tests/media/test-1s.mp4: Added.
+* web-platform-tests/media/test-1s.webm: Added.
+
 2020-12-01  Chris Dumez  
 
 REGRESSION: imported/w3c/web-platform-tests/streams/transform-streams/terminate.any.html is a flaky failure


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended-expected.txt (0 => 270404)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended-expected.txt	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended-expected.txt	2020-12-03 21:12:34 UTC (rev 270404)
@@ -0,0 +1,4 @@
+
+
+PASS Video dimensions are preserved at the end of the video.
+


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html (0 => 270404)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_size_preserved_after_ended.html	2020-12-03 21:12:34 UTC (rev 270404)
@@ -0,0 +1,30 @@
+
+
+
+HTML5 Media Elements: The size of the video shouldn't be lost after an 'ended' event.
+
+
+
+
+
+
+
+
+promise_test(async (test) => {
+const eventWatcher = new EventWatcher(test, video, 

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

2020-08-11 Thread aboya
Title: [265494] trunk/Source/WebCore








Revision 265494
Author ab...@igalia.com
Date 2020-08-11 04:41:11 -0700 (Tue, 11 Aug 2020)


Log Message
[MSE][GStreamer] Remove m_sourceBufferPrivateClient checks in SourceBufferPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=215263

Reviewed by Xabier Rodriguez-Calvar.

m_sourceBufferPrivateClient is only reset to NULL from SourceBuffer's
destructor. At this point SourceBufferPrivateGStreamer is about to
receive its last unref by SourceBuffer and therefore be destroyed.

Similarly, there is no need to check for m_mediaSource being null.
m_mediaSource is only reset when the SourceBuffer is removed, and at
that point SourceBufferPrivate shouldn't receive any calls.

This is a clean-up and doesn't introduce new behavior. Asserts have
been added checking the precondition above.

* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):
(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (265493 => 265494)

--- trunk/Source/WebCore/ChangeLog	2020-08-11 08:23:16 UTC (rev 265493)
+++ trunk/Source/WebCore/ChangeLog	2020-08-11 11:41:11 UTC (rev 265494)
@@ -1,3 +1,28 @@
+2020-08-11  Alicia Boya García  
+
+[MSE][GStreamer] Remove m_sourceBufferPrivateClient checks in SourceBufferPrivateGStreamer
+https://bugs.webkit.org/show_bug.cgi?id=215263
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+m_sourceBufferPrivateClient is only reset to NULL from SourceBuffer's
+destructor. At this point SourceBufferPrivateGStreamer is about to
+receive its last unref by SourceBuffer and therefore be destroyed.
+
+Similarly, there is no need to check for m_mediaSource being null.
+m_mediaSource is only reset when the SourceBuffer is removed, and at
+that point SourceBufferPrivate shouldn't receive any calls.
+
+This is a clean-up and doesn't introduce new behavior. Asserts have
+been added checking the precondition above.
+
+* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
+(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
+(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
+(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
+(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):
+(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):
+
 2020-08-11  Philippe Normand  
 
 [GStreamer] gst-full standalone library support


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp (265493 => 265494)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp	2020-08-11 08:23:16 UTC (rev 265493)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp	2020-08-11 11:41:11 UTC (rev 265494)
@@ -69,6 +69,9 @@
 
 void SourceBufferPrivateGStreamer::setClient(SourceBufferPrivateClient* client)
 {
+// setClient(nullptr) is only called from SourceBuffer destructor. At that point, SourceBuffer is also the
+// owner of the last reference to us, so we're about to be destroyed.
+ASSERT(client || refCount() == 1);
 m_sourceBufferPrivateClient = client;
 }
 
@@ -108,9 +111,11 @@
 void SourceBufferPrivateGStreamer::removedFromMediaSource()
 {
 ASSERT(isMainThread());
-if (m_mediaSource)
-m_mediaSource->removeSourceBuffer(this);
+m_mediaSource->removeSourceBuffer(this);
 m_playerPrivate.playbackPipeline()->removeSourceBuffer(this);
+// After this only SourceBuffer should hold a reference to us, which will be destroyed eventually (when JS
+// GC releases the last reference). Until then SourceBuffer is in "removed" state and won't use SourceBufferPrivate.
+ASSERT(refCount() == 1);
 }
 
 MediaPlayer::ReadyState SourceBufferPrivateGStreamer::readyState() const
@@ -167,8 +172,7 @@
 
 void SourceBufferPrivateGStreamer::setActive(bool isActive)
 {
-if (m_mediaSource)
-m_mediaSource->sourceBufferPrivateDidChangeActiveState(this, isActive);
+m_mediaSource->sourceBufferPrivateDidChangeActiveState(this, isActive);
 }
 
 void SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples(const AtomString& trackId)
@@ -180,26 +184,22 @@
 
 void SourceBufferPrivateGStreamer::didReceiveInitializationSegment(const SourceBufferPrivateClient::InitializationSegment& initializationSegment)
 {
-if (m_sourceBufferPrivateClient)
-

[webkit-changes] [265340] trunk/LayoutTests

2020-08-06 Thread aboya
Title: [265340] trunk/LayoutTests








Revision 265340
Author ab...@igalia.com
Date 2020-08-06 11:34:39 -0700 (Thu, 06 Aug 2020)


Log Message
Unreviewed GStreamer MSE micro gardening
https://bugs.webkit.org/show_bug.cgi?id=215228


* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (265339 => 265340)

--- trunk/LayoutTests/ChangeLog	2020-08-06 18:30:45 UTC (rev 265339)
+++ trunk/LayoutTests/ChangeLog	2020-08-06 18:34:39 UTC (rev 265340)
@@ -1,3 +1,10 @@
+2020-08-06  Alicia Boya García  
+
+Unreviewed GStreamer MSE micro gardening
+https://bugs.webkit.org/show_bug.cgi?id=215228
+
+* platform/gtk/TestExpectations:
+
 2020-08-06  Hector Lopez  
 
 [ iOS wk2 Debug ] fast/text/basic/001.html is a flaky crash


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (265339 => 265340)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2020-08-06 18:30:45 UTC (rev 265339)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2020-08-06 18:34:39 UTC (rev 265340)
@@ -2128,6 +2128,8 @@
 
 webkit.org/b/214802 http/tests/navigation/ping-attribute/anchor-ping-and-follow-redirect-when-sending-ping.html [ Failure Pass ]
 
+webkit.org/b/215227 imported/w3c/web-platform-tests/media-source/mediasource-redundant-seek.html [ Failure Pass ]
+
 #
 # End of Flaky tests
 #






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


[webkit-changes] [264393] trunk/LayoutTests

2020-07-15 Thread aboya
Title: [264393] trunk/LayoutTests








Revision 264393
Author ab...@igalia.com
Date 2020-07-15 06:05:02 -0700 (Wed, 15 Jul 2020)


Log Message
[MSE][GStreamer] Unreviewed micro gardening: imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html
https://bugs.webkit.org/show_bug.cgi?id=214349

New test
imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html
crashes on an assertion.

This is not surprising since changetype is not implemented in our port and we
already had a similar crash with that feature. Marking it as [ Failure Crash ].


* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (264392 => 264393)

--- trunk/LayoutTests/ChangeLog	2020-07-15 12:56:23 UTC (rev 264392)
+++ trunk/LayoutTests/ChangeLog	2020-07-15 13:05:02 UTC (rev 264393)
@@ -1,3 +1,17 @@
+2020-07-15  Alicia Boya García  
+
+[MSE][GStreamer] Unreviewed micro gardening: imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html
+https://bugs.webkit.org/show_bug.cgi?id=214349
+
+New test
+imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html
+crashes on an assertion.
+
+This is not surprising since changetype is not implemented in our port and we
+already had a similar crash with that feature. Marking it as [ Failure Crash ].
+
+* platform/gtk/TestExpectations:
+
 2020-07-14  Lauro Moura  
 
 [GTK][WPE] Depuplicate some accessibility expectations


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (264392 => 264393)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2020-07-15 12:56:23 UTC (rev 264392)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2020-07-15 13:05:02 UTC (rev 264393)
@@ -233,6 +233,7 @@
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-avtracks.html [ Failure ]
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-buffered.html [ Failure ]
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-changetype.html [ Failure Crash ]
+webkit.org/b/214349 imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-negative.html [ Failure Crash ]
 # Crash is webkit.org/b/176020
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-duration.html [ Failure Crash ]
 # Crash in bug #176019






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


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

2020-07-15 Thread aboya
Title: [264392] trunk/Source/WebCore








Revision 264392
Author ab...@igalia.com
Date 2020-07-15 05:56:23 -0700 (Wed, 15 Jul 2020)


Log Message
[MSE][GStreamer] Break circular reference between SourceBufferPrivateGStreamer and AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=214345

Reviewed by Xabier Rodriguez-Calvar.

SourceBufferPrivate is ref counted.

AppendPipeline is owned exclusively by SourceBufferPrivateGStreamer:
it's born and destroyed with it, managed by a never-moved unique_ptr.

AppendPipeline needs a reference to SourceBufferPrivateGStreamer to
notify it of essential events like samples having been parsed. This
used to be a Ref<>, thus creating a circular reference leak:

AppendPipeline is only destroyed in SourceBufferPrivateGStreamer
destructor. AppendPipeline holds ref counted reference to
SourceBufferPrivateGStreamer, therefore neither are destroyed.

This patch breaks the cycle by replacing the Ref<> in AppendPipeline
with a plain old reference. This is safe because
SourceBufferPrivateGStreamer owns, and therefore is alive at least
just as long as AppendPipeline.

As a consequence of not using Ref<>, the SourceBufferPrivateGStreamer
constructor does no longer need to relax the adoption requirements and
unique_ptr can be replaced by a UniqueRef<>.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleErrorConditionFromStreamingThread):
(WebCore::AppendPipeline::handleStateChangeMessage):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
* platform/graphics/gstreamer/mse/AppendPipeline.h:
(WebCore::AppendPipeline::sourceBufferPrivate):
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (264391 => 264392)

--- trunk/Source/WebCore/ChangeLog	2020-07-15 10:18:40 UTC (rev 264391)
+++ trunk/Source/WebCore/ChangeLog	2020-07-15 12:56:23 UTC (rev 264392)
@@ -1,3 +1,48 @@
+2020-07-15  Alicia Boya García  
+
+[MSE][GStreamer] Break circular reference between SourceBufferPrivateGStreamer and AppendPipeline
+https://bugs.webkit.org/show_bug.cgi?id=214345
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+SourceBufferPrivate is ref counted.
+
+AppendPipeline is owned exclusively by SourceBufferPrivateGStreamer:
+it's born and destroyed with it, managed by a never-moved unique_ptr.
+
+AppendPipeline needs a reference to SourceBufferPrivateGStreamer to
+notify it of essential events like samples having been parsed. This
+used to be a Ref<>, thus creating a circular reference leak:
+
+AppendPipeline is only destroyed in SourceBufferPrivateGStreamer
+destructor. AppendPipeline holds ref counted reference to
+SourceBufferPrivateGStreamer, therefore neither are destroyed.
+
+This patch breaks the cycle by replacing the Ref<> in AppendPipeline
+with a plain old reference. This is safe because
+SourceBufferPrivateGStreamer owns, and therefore is alive at least
+just as long as AppendPipeline.
+
+As a consequence of not using Ref<>, the SourceBufferPrivateGStreamer
+constructor does no longer need to relax the adoption requirements and
+unique_ptr can be replaced by a UniqueRef<>.
+
+* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+(WebCore::AppendPipeline::AppendPipeline):
+(WebCore::AppendPipeline::handleErrorConditionFromStreamingThread):
+(WebCore::AppendPipeline::handleStateChangeMessage):
+(WebCore::AppendPipeline::handleEndOfAppend):
+(WebCore::AppendPipeline::appsinkNewSample):
+(WebCore::AppendPipeline::didReceiveInitializationSegment):
+(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
+* platform/graphics/gstreamer/mse/AppendPipeline.h:
+(WebCore::AppendPipeline::sourceBufferPrivate):
+* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
+* 

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

2020-07-13 Thread aboya
Title: [264299] trunk/Source/WebCore








Revision 264299
Author ab...@igalia.com
Date 2020-07-13 06:03:22 -0700 (Mon, 13 Jul 2020)


Log Message
[MSE][GStreamer] Discard PTS-less samples
https://bugs.webkit.org/show_bug.cgi?id=214252

Reviewed by Philippe Normand.

In some cases GStreamer demuxers emit PTS-less samples with metadata
at the beginning of the container. These are fortunately not necessary
for playback, and in fact incompatible with the way MSE works, where
you should be able to start playing a stream from the middle.

This patch skips these frames in the AppendPipeline so they don't
pollute other parts of the MSE codebase.

Since these frames were not necessary and were later overwritten,
this patch is just a cleanup introducing no notable behavior changes.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkNewSample):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (264298 => 264299)

--- trunk/Source/WebCore/ChangeLog	2020-07-13 12:17:04 UTC (rev 264298)
+++ trunk/Source/WebCore/ChangeLog	2020-07-13 13:03:22 UTC (rev 264299)
@@ -1,3 +1,24 @@
+2020-07-13  Alicia Boya García  
+
+[MSE][GStreamer] Discard PTS-less samples
+https://bugs.webkit.org/show_bug.cgi?id=214252
+
+Reviewed by Philippe Normand.
+
+In some cases GStreamer demuxers emit PTS-less samples with metadata
+at the beginning of the container. These are fortunately not necessary
+for playback, and in fact incompatible with the way MSE works, where
+you should be able to start playing a stream from the middle.
+
+This patch skips these frames in the AppendPipeline so they don't
+pollute other parts of the MSE codebase.
+
+Since these frames were not necessary and were later overwritten,
+this patch is just a cleanup introducing no notable behavior changes.
+
+* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+(WebCore::AppendPipeline::appsinkNewSample):
+
 2020-07-13  Carlos Garcia Campos  
 
 [WPE][GTK4] Form controls are not painted when using threaded rendering


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (264298 => 264299)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2020-07-13 12:17:04 UTC (rev 264298)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2020-07-13 13:03:22 UTC (rev 264299)
@@ -460,6 +460,12 @@
 return;
 }
 
+if (!GST_BUFFER_PTS_IS_VALID(gst_sample_get_buffer(sample.get( {
+// When demuxing Vorbis, matroskademux creates several PTS-less frames with header information. We don't need those.
+GST_DEBUG("Ignoring sample without PTS: %" GST_PTR_FORMAT, gst_sample_get_buffer(sample.get()));
+return;
+}
+
 auto mediaSample = WebCore::MediaSampleGStreamer::create(WTFMove(sample), m_presentationSize, trackId());
 
 GST_TRACE("append: trackId=%s PTS=%s DTS=%s DUR=%s presentationSize=%.0fx%.0f",






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


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

2020-07-10 Thread aboya
Title: [264211] trunk/Source/WebCore








Revision 264211
Author ab...@igalia.com
Date 2020-07-10 01:01:07 -0700 (Fri, 10 Jul 2020)


Log Message
[MSE][GStreamer] Inline MediaSourceClientGStreamerMSE away
https://bugs.webkit.org/show_bug.cgi?id=214140

Reviewed by Xabier Rodriguez-Calvar.

MediaSourceClientGStreamerMSE is a superfluous class that adds
a layer of indirection and complexity to the GStreamer MSE codebase
for no gain. This patch gets rid of it.

This also gets rid of the friend access layer violations that
MediaSourceClientGStreamerMSE relied upon.

This patch is a refactor that doesn't introduce behavior changes and
it's covered by existing tests.

* platform/GStreamer.cmake:
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
* platform/graphics/gstreamer/mse/AppendPipeline.h:
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::setMediaSourceClient): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourceClient): Deleted.
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
(WebCore::MediaPlayerPrivateGStreamerMSE::playbackPipeline const):
* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp: Removed.
* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h: Removed.
* platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:
(WebCore::MediaSourcePrivateGStreamer::MediaSourcePrivateGStreamer):
(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
(WebCore::MediaSourcePrivateGStreamer::durationChanged):
(WebCore::MediaSourcePrivateGStreamer::markEndOfStream):
* platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::finishCreation):
(WebCore::SourceBufferPrivateGStreamer::append):
(WebCore::SourceBufferPrivateGStreamer::abort):
(WebCore::SourceBufferPrivateGStreamer::resetParserState):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::flush):
(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::allSamplesInTrackEnqueued):
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/GStreamer.cmake
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h


Removed Paths

trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (264210 => 264211)

--- trunk/Source/WebCore/ChangeLog	2020-07-10 07:02:30 UTC (rev 264210)
+++ trunk/Source/WebCore/ChangeLog	2020-07-10 08:01:07 UTC (rev 264211)
@@ -1,3 +1,51 @@
+2020-07-10  Alicia Boya García  
+
+[MSE][GStreamer] Inline MediaSourceClientGStreamerMSE away
+https://bugs.webkit.org/show_bug.cgi?id=214140
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+MediaSourceClientGStreamerMSE is a superfluous class that adds
+a layer of indirection and complexity to the GStreamer MSE codebase
+for no gain. This patch gets rid of it.
+
+This also gets rid of the friend access layer violations that
+MediaSourceClientGStreamerMSE relied upon.
+
+This patch is a refactor that doesn't introduce behavior changes and
+it's covered by existing tests.
+
+* platform/GStreamer.cmake:
+* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+(WebCore::AppendPipeline::AppendPipeline):
+* platform/graphics/gstreamer/mse/AppendPipeline.h:
+* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
+(WebCore::MediaPlayerPrivateGStreamerMSE::setMediaSourceClient): Deleted.
+(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourceClient): Deleted.
+* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
+(WebCore::MediaPlayerPrivateGStreamerMSE::playbackPipeline const):
+ 

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

2020-07-09 Thread aboya
Title: [264175] trunk/Source/WebCore








Revision 264175
Author ab...@igalia.com
Date 2020-07-09 09:22:59 -0700 (Thu, 09 Jul 2020)


Log Message
[MSE][GStreamer] Remove m_appendPipelinesMap
https://bugs.webkit.org/show_bug.cgi?id=214132

Reviewed by Xabier Rodriguez-Calvar.

m_appendPipelinesMap was owned by MediaPlayerPrivateGStreamerMSE but
was only used by MediaPlayerPrivateGStreamerMSE to clear it during
destruction, while the other uses were in
MediaSourceClientGStreamerMSE.

After analysis, it was found keeping a HashMap of AppendPipelines is not
necessary. An AppendPipeline only needs to be used by the SourceBuffer
receiving the muxed data: making AppendPipeline a member of
SourceBufferPrivateGStreamer reflects this dependency in a much
clearer way. No need for a HashMap of AppendPipeline's.

Moreso, there are no other users of AppendPipeline, which means
AppendPipeline doesn't need to be ref counted. This patch removes that
feature, using std::unique_ptr for ownership instead.

This patch is a refactor: it doesn't introduce behavior changes and
it's covered by existing tests.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
* platform/graphics/gstreamer/mse/AppendPipeline.h:
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:
(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::abort):
(WebCore::MediaSourceClientGStreamerMSE::resetParserState):
(WebCore::MediaSourceClientGStreamerMSE::append):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
* platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:
(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::finishCreation):
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (264174 => 264175)

--- trunk/Source/WebCore/ChangeLog	2020-07-09 16:07:29 UTC (rev 264174)
+++ trunk/Source/WebCore/ChangeLog	2020-07-09 16:22:59 UTC (rev 264175)
@@ -1,3 +1,50 @@
+2020-07-09  Alicia Boya García  
+
+[MSE][GStreamer] Remove m_appendPipelinesMap
+https://bugs.webkit.org/show_bug.cgi?id=214132
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+m_appendPipelinesMap was owned by MediaPlayerPrivateGStreamerMSE but
+was only used by MediaPlayerPrivateGStreamerMSE to clear it during
+destruction, while the other uses were in
+MediaSourceClientGStreamerMSE.
+
+After analysis, it was found keeping a HashMap of AppendPipelines is not
+necessary. An AppendPipeline only needs to be used by the SourceBuffer
+receiving the muxed data: making AppendPipeline a member of
+SourceBufferPrivateGStreamer reflects this dependency in a much
+clearer way. No need for a HashMap of AppendPipeline's.
+
+Moreso, there are no other users of AppendPipeline, which means
+AppendPipeline doesn't need to be ref counted. This patch removes that
+feature, using std::unique_ptr for ownership instead.
+
+This patch is a refactor: it doesn't introduce behavior changes and
+it's covered by existing tests.
+
+* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+(WebCore::AppendPipeline::appsinkCapsChanged):
+(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
+* platform/graphics/gstreamer/mse/AppendPipeline.h:
+* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
+(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
+* 

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

2020-07-09 Thread aboya
Title: [264166] trunk/Source/WebCore








Revision 264166
Author ab...@igalia.com
Date 2020-07-09 05:30:22 -0700 (Thu, 09 Jul 2020)


Log Message
[MSE][GStreamer] Don't cache duration in MediaSourceClientGStreamerMSE
https://bugs.webkit.org/show_bug.cgi?id=214128

Reviewed by Xabier Rodriguez-Calvar.

MediaSource should be the single source of truth for the duration of
the MediaSource, and querying it to MediaSource is efficient enough
(trivial getter). There is no reason for MediaSourceClientGStreamerMSE
to store a separate m_duration field.

This patch introduces no behavior changes.

* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:
(WebCore::MediaSourceClientGStreamerMSE::MediaSourceClientGStreamerMSE):
(WebCore::MediaSourceClientGStreamerMSE::duration):
(WebCore::MediaSourceClientGStreamerMSE::durationChanged):
* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (264165 => 264166)

--- trunk/Source/WebCore/ChangeLog	2020-07-09 11:43:35 UTC (rev 264165)
+++ trunk/Source/WebCore/ChangeLog	2020-07-09 12:30:22 UTC (rev 264166)
@@ -1,5 +1,25 @@
 2020-07-09  Alicia Boya García  
 
+[MSE][GStreamer] Don't cache duration in MediaSourceClientGStreamerMSE
+https://bugs.webkit.org/show_bug.cgi?id=214128
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+MediaSource should be the single source of truth for the duration of
+the MediaSource, and querying it to MediaSource is efficient enough
+(trivial getter). There is no reason for MediaSourceClientGStreamerMSE
+to store a separate m_duration field.
+
+This patch introduces no behavior changes.
+
+* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:
+(WebCore::MediaSourceClientGStreamerMSE::MediaSourceClientGStreamerMSE):
+(WebCore::MediaSourceClientGStreamerMSE::duration):
+(WebCore::MediaSourceClientGStreamerMSE::durationChanged):
+* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
+
+2020-07-09  Alicia Boya García  
+
 [MSE][GStreamer] Make duration changes one way
 https://bugs.webkit.org/show_bug.cgi?id=214083
 


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp (264165 => 264166)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp	2020-07-09 11:43:35 UTC (rev 264165)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp	2020-07-09 12:30:22 UTC (rev 264166)
@@ -46,7 +46,6 @@
 
 MediaSourceClientGStreamerMSE::MediaSourceClientGStreamerMSE(MediaPlayerPrivateGStreamerMSE& playerPrivate)
 : m_playerPrivate(playerPrivate)
-, m_duration(MediaTime::invalidTime())
 {
 ASSERT(WTF::isMainThread());
 }
@@ -70,11 +69,11 @@
 return m_playerPrivate.m_playbackPipeline->addSourceBuffer(sourceBufferPrivate);
 }
 
-const MediaTime& MediaSourceClientGStreamerMSE::duration()
+MediaTime MediaSourceClientGStreamerMSE::duration()
 {
 ASSERT(WTF::isMainThread());
 
-return m_duration;
+return m_playerPrivate.mediaSourcePrivateClient()->duration();
 }
 
 void MediaSourceClientGStreamerMSE::durationChanged(const MediaTime& duration)
@@ -85,7 +84,6 @@
 if (!duration.isValid() || duration.isPositiveInfinite() || duration.isNegativeInfinite())
 return;
 
-m_duration = duration;
 m_playerPrivate.durationChanged();
 }
 


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h (264165 => 264166)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h	2020-07-09 11:43:35 UTC (rev 264165)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h	2020-07-09 12:30:22 UTC (rev 264166)
@@ -54,7 +54,7 @@
 void enqueueSample(Ref&&);
 void allSamplesInTrackEnqueued(const AtomString&);
 
-const MediaTime& duration();
+MediaTime duration();
 GRefPtr webKitMediaSrc();
 
 private:
@@ -61,7 +61,6 @@
 MediaSourceClientGStreamerMSE(MediaPlayerPrivateGStreamerMSE&);
 
 MediaPlayerPrivateGStreamerMSE& m_playerPrivate;
-MediaTime m_duration;
 };
 
 } // namespace WebCore.






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


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

2020-07-09 Thread aboya
Title: [264164] trunk/Source/WebCore








Revision 264164
Author ab...@igalia.com
Date 2020-07-09 04:20:08 -0700 (Thu, 09 Jul 2020)


Log Message
[MSE][GStreamer] Make duration changes one way
https://bugs.webkit.org/show_bug.cgi?id=214083

Reviewed by Xabier Rodriguez-Calvar.

Until now, AppendPipeline emitted duration changes for the
MediaSource. This was done with
MediaSourcePrivateClient::durationChanged(const MediaTime&), a
method which was added to MediaSource in r207889 just to implement
this in the GStreamer port.

This is not necessary though. AppendPipeline only needs to inform
MediaSource of the duration of the initialization segment, and
MediaSource will in turn set duration from the multi-platform code.

This patch removes MediaSourcePrivateClient::durationChanged(const
MediaTime&) from the multi-platform API, along with its usages in the
GStreamer port, giving the multi-platform code sole responsibility on
duration changes.

This is a code cleanup and it's covered by existing tests.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::durationChanged): Deleted.
* Modules/mediasource/MediaSource.h:
* platform/graphics/MediaSourcePrivateClient.h:
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp
trunk/Source/WebCore/Modules/mediasource/MediaSource.h
trunk/Source/WebCore/platform/graphics/MediaSourcePrivateClient.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (264163 => 264164)

--- trunk/Source/WebCore/ChangeLog	2020-07-09 09:36:52 UTC (rev 264163)
+++ trunk/Source/WebCore/ChangeLog	2020-07-09 11:20:08 UTC (rev 264164)
@@ -1,3 +1,37 @@
+2020-07-09  Alicia Boya García  
+
+[MSE][GStreamer] Make duration changes one way
+https://bugs.webkit.org/show_bug.cgi?id=214083
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Until now, AppendPipeline emitted duration changes for the
+MediaSource. This was done with
+MediaSourcePrivateClient::durationChanged(const MediaTime&), a
+method which was added to MediaSource in r207889 just to implement
+this in the GStreamer port.
+
+This is not necessary though. AppendPipeline only needs to inform
+MediaSource of the duration of the initialization segment, and
+MediaSource will in turn set duration from the multi-platform code.
+
+This patch removes MediaSourcePrivateClient::durationChanged(const
+MediaTime&) from the multi-platform API, along with its usages in the
+GStreamer port, giving the multi-platform code sole responsibility on
+duration changes.
+
+This is a code cleanup and it's covered by existing tests.
+
+* Modules/mediasource/MediaSource.cpp:
+(WebCore::MediaSource::durationChanged): Deleted.
+* Modules/mediasource/MediaSource.h:
+* platform/graphics/MediaSourcePrivateClient.h:
+* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+(WebCore::AppendPipeline::didReceiveInitializationSegment):
+(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
+* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
+
 2020-07-09  Philippe Normand  
 
 [GStreamer][MSE] AV1 support


Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp (264163 => 264164)

--- trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp	2020-07-09 09:36:52 UTC (rev 264163)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.cpp	2020-07-09 11:20:08 UTC (rev 264164)
@@ -165,12 +165,6 @@
 return m_duration;
 }
 
-void MediaSource::durationChanged(const MediaTime& duration)
-{
-ALWAYS_LOG(LOGIDENTIFIER, duration);
-m_duration = duration;
-}
-
 MediaTime MediaSource::currentTime() const
 {
 return m_mediaElement ? m_mediaElement->currentMediaTime() : MediaTime::zeroTime();


Modified: trunk/Source/WebCore/Modules/mediasource/MediaSource.h (264163 => 264164)

--- trunk/Source/WebCore/Modules/mediasource/MediaSource.h	2020-07-09 09:36:52 UTC (rev 264163)
+++ trunk/Source/WebCore/Modules/mediasource/MediaSource.h	2020-07-09 11:20:08 UTC (rev 264164)
@@ -79,7 +79,6 @@
 void streamEndedWithError(Optional);
 
 MediaTime duration() const final;
-void durationChanged(const MediaTime&) final;
 std::unique_ptr buffered() const final;
 
 bool attachToElement(HTMLMediaElement&);


Modified: 

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

2020-07-09 Thread aboya
Title: [264161] trunk/Source/WebCore








Revision 264161
Author ab...@igalia.com
Date 2020-07-09 01:29:35 -0700 (Thu, 09 Jul 2020)


Log Message
[MSE][GStreamer] Remove orphan code in SourceBufferPrivateGStreamer::append()
https://bugs.webkit.org/show_bug.cgi?id=214086

Reviewed by Xabier Rodriguez-Calvar.

A refactor in r240784 missed this line, which was unreachable code
before and should have removed.

Instead, it has been run every time after sending an append to the
AppendPipeline, and it just happens it doesn't have visible
consequences.

This patch cleans that up removing that line. No visible behavior
changes are introduced.

* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::append):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (264160 => 264161)

--- trunk/Source/WebCore/ChangeLog	2020-07-09 08:23:36 UTC (rev 264160)
+++ trunk/Source/WebCore/ChangeLog	2020-07-09 08:29:35 UTC (rev 264161)
@@ -1,3 +1,23 @@
+2020-07-09  Alicia Boya García  
+
+[MSE][GStreamer] Remove orphan code in SourceBufferPrivateGStreamer::append()
+https://bugs.webkit.org/show_bug.cgi?id=214086
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+A refactor in r240784 missed this line, which was unreachable code
+before and should have removed.
+
+Instead, it has been run every time after sending an append to the
+AppendPipeline, and it just happens it doesn't have visible
+consequences.
+
+This patch cleans that up removing that line. No visible behavior
+changes are introduced.
+
+* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
+(WebCore::SourceBufferPrivateGStreamer::append):
+
 2020-07-09  Carlos Garcia Campos  
 
 [SOUP] Initialize m_allowCookies and m_acceptEncoding in ResourceRequest::updateFromSoupMessage


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp (264160 => 264161)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp	2020-07-09 08:23:36 UTC (rev 264160)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp	2020-07-09 08:29:35 UTC (rev 264161)
@@ -78,7 +78,6 @@
 return;
 
 m_client->append(this, WTFMove(data));
-m_sourceBufferPrivateClient->sourceBufferPrivateAppendComplete(SourceBufferPrivateClient::ReadStreamFailed);
 }
 
 void SourceBufferPrivateGStreamer::abort()






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


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

2020-07-06 Thread aboya
Title: [263962] trunk/Source/WebCore








Revision 263962
Author ab...@igalia.com
Date 2020-07-06 00:42:30 -0700 (Mon, 06 Jul 2020)


Log Message
[MSE][GStreamer] Don't skip samples past media duration in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=213888

Reviewed by Xabier Rodriguez-Calvar.

appsinkNewSample() contained code to skip samples whose presentation
time starts after media duration. This is paradoxical, because later
sourceBufferPrivateDidReceiveSample() extends media duration whenever
the presentation end time of the sample is past the original one.

It does not sound reasonable that samples extending the duration are
okay on one case but outright rejected in the other. Also, if it was
about skipping samples, sourceBufferPrivateDidReceiveSample() could do
it itself, and already does in other cases.

For all these reasons I was very doubtful of the need for this if()
and indeed removing this condition didn't cause any new test failure.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkNewSample):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (263961 => 263962)

--- trunk/Source/WebCore/ChangeLog	2020-07-06 00:59:30 UTC (rev 263961)
+++ trunk/Source/WebCore/ChangeLog	2020-07-06 07:42:30 UTC (rev 263962)
@@ -1,3 +1,26 @@
+2020-07-06  Alicia Boya García  
+
+[MSE][GStreamer] Don't skip samples past media duration in AppendPipeline
+https://bugs.webkit.org/show_bug.cgi?id=213888
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+appsinkNewSample() contained code to skip samples whose presentation
+time starts after media duration. This is paradoxical, because later
+sourceBufferPrivateDidReceiveSample() extends media duration whenever
+the presentation end time of the sample is past the original one.
+
+It does not sound reasonable that samples extending the duration are
+okay on one case but outright rejected in the other. Also, if it was
+about skipping samples, sourceBufferPrivateDidReceiveSample() could do
+it itself, and already does in other cases.
+
+For all these reasons I was very doubtful of the need for this if()
+and indeed removing this condition didn't cause any new test failure.
+
+* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+(WebCore::AppendPipeline::appsinkNewSample):
+
 2020-07-05  Commit Queue  
 
 Unreviewed, reverting r263960.


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (263961 => 263962)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2020-07-06 00:59:30 UTC (rev 263961)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2020-07-06 07:42:30 UTC (rev 263962)
@@ -470,13 +470,6 @@
 mediaSample->duration().toString().utf8().data(),
 mediaSample->presentationSize().width(), mediaSample->presentationSize().height());
 
-// If we're beyond the duration, ignore this sample.
-MediaTime duration = m_mediaSourceClient->duration();
-if (duration.isValid() && !duration.indefiniteTime() && mediaSample->presentationTime() > duration) {
-GST_DEBUG_OBJECT(m_pipeline.get(), "Detected sample (%s) beyond the duration (%s), discarding", mediaSample->presentationTime().toString().utf8().data(), duration.toString().utf8().data());
-return;
-}
-
 // Hack, rework when GStreamer >= 1.16 becomes a requirement:
 // We're not applying edit lists. GStreamer < 1.16 doesn't emit the correct segments to do so.
 // GStreamer fix in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/c2a0da8096009f0f99943f78dc18066965be60f9






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


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

2020-06-29 Thread aboya
Title: [263656] trunk/Source/WebCore








Revision 263656
Author ab...@igalia.com
Date 2020-06-29 04:50:21 -0700 (Mon, 29 Jun 2020)


Log Message
[MSE][GStreamer] Rename MediaSourceGStreamer to MediaSourcePrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=213722

Reviewed by Xabier Rodriguez-Calvar.

It's about time to remove this FIXME:

// FIXME: Should this be called MediaSourcePrivateGStreamer?

Yes, it should. Because it's a MediaSourcePrivate, and that is an
important fact. The MSE class diagram is confusing enough already,
let's fix this.

To rebase commits after this change use `git format-patch` first to
get them in a patch format and then run:

sed -i 's|\|MediaSourcePrivateGStreamer|g' *.patch

This patch is a refactor that produces no behavior changes.

* platform/GStreamer.cmake:
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
* platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
* platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp: Renamed from Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp.
(WebCore::MediaSourcePrivateGStreamer::open):
(WebCore::MediaSourcePrivateGStreamer::MediaSourcePrivateGStreamer):
(WebCore::MediaSourcePrivateGStreamer::~MediaSourcePrivateGStreamer):
(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
(WebCore::MediaSourcePrivateGStreamer::removeSourceBuffer):
(WebCore::MediaSourcePrivateGStreamer::durationChanged):
(WebCore::MediaSourcePrivateGStreamer::markEndOfStream):
(WebCore::MediaSourcePrivateGStreamer::unmarkEndOfStream):
(WebCore::MediaSourcePrivateGStreamer::readyState const):
(WebCore::MediaSourcePrivateGStreamer::setReadyState):
(WebCore::MediaSourcePrivateGStreamer::waitForSeekCompleted):
(WebCore::MediaSourcePrivateGStreamer::seekCompleted):
(WebCore::MediaSourcePrivateGStreamer::sourceBufferPrivateDidChangeActiveState):
(WebCore::MediaSourcePrivateGStreamer::buffered):
(WebCore::MediaSourcePrivateGStreamer::logChannel const):
* platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceGStreamer.h.
* platform/graphics/gstreamer/mse/PlaybackPipeline.h:
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/GStreamer.cmake
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/PlaybackPipeline.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp


Added Paths

trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h


Removed Paths

trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceGStreamer.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (263655 => 263656)

--- trunk/Source/WebCore/ChangeLog	2020-06-29 11:50:04 UTC (rev 263655)
+++ trunk/Source/WebCore/ChangeLog	2020-06-29 11:50:21 UTC (rev 263656)
@@ -1,3 +1,54 @@
+2020-06-29  Alicia Boya García  
+
+[MSE][GStreamer] Rename MediaSourceGStreamer to MediaSourcePrivateGStreamer
+https://bugs.webkit.org/show_bug.cgi?id=213722
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+It's about time to remove this FIXME:
+
+// FIXME: Should this be called MediaSourcePrivateGStreamer?
+
+Yes, it should. Because it's a MediaSourcePrivate, and that is an
+important fact. The MSE class diagram is confusing enough already,
+let's fix this.
+
+To rebase commits after this change use `git format-patch` first to
+get them in a patch format and then run:
+
+sed -i 's|\|MediaSourcePrivateGStreamer|g' *.patch
+
+This patch is a refactor that produces no behavior changes.
+
+* platform/GStreamer.cmake:
+* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
+* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
+* 

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

2020-06-26 Thread aboya
Title: [263556] trunk/Source/WebCore








Revision 263556
Author ab...@igalia.com
Date 2020-06-26 06:36:43 -0700 (Fri, 26 Jun 2020)


Log Message
[GStreamer] Initialize m_currentState and m_oldState
https://bugs.webkit.org/show_bug.cgi?id=213604

Reviewed by Eric Carlson.

MediaPlayerPrivateGStreamer was not initializing m_currentState and
m_oldState, causing them to be checked e.g. updateStates() while they
still contain garbage.

Because the biggest uninitialized usage is a != comparison, in
practice things still worked, but that's still a bug. I detected the
bug after seeing this in the logs:

playbin3SendSelectStreamsIfAppropriate: Checking if to send SELECT_STREAMS, m_waitingForStreamsSelectedEvent = false, haveDifferentStreamIds = false, m_currentState = UNKNOWN!(-8421505)...  shouldSendSelectStreams = false

This patch fixes a slight memory error which doesn't alter
TestExpectations.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (263555 => 263556)

--- trunk/Source/WebCore/ChangeLog	2020-06-26 09:38:21 UTC (rev 263555)
+++ trunk/Source/WebCore/ChangeLog	2020-06-26 13:36:43 UTC (rev 263556)
@@ -1,3 +1,25 @@
+2020-06-26  Alicia Boya García  
+
+[GStreamer] Initialize m_currentState and m_oldState
+https://bugs.webkit.org/show_bug.cgi?id=213604
+
+Reviewed by Eric Carlson.
+
+MediaPlayerPrivateGStreamer was not initializing m_currentState and
+m_oldState, causing them to be checked e.g. updateStates() while they
+still contain garbage.
+
+Because the biggest uninitialized usage is a != comparison, in
+practice things still worked, but that's still a bug. I detected the
+bug after seeing this in the logs:
+
+playbin3SendSelectStreamsIfAppropriate: Checking if to send SELECT_STREAMS, m_waitingForStreamsSelectedEvent = false, haveDifferentStreamIds = false, m_currentState = UNKNOWN!(-8421505)...  shouldSendSelectStreams = false
+
+This patch fixes a slight memory error which doesn't alter
+TestExpectations.
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+
 2020-06-25  Commit Queue  
 
 Unreviewed, reverting r263537.


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h (263555 => 263556)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h	2020-06-26 09:38:21 UTC (rev 263555)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h	2020-06-26 13:36:43 UTC (rev 263556)
@@ -341,8 +341,8 @@
 mutable bool m_isLiveStream { false };
 bool m_isPaused { true };
 float m_playbackRate { 1 };
-GstState m_currentState;
-GstState m_oldState;
+GstState m_currentState { GST_STATE_NULL };
+GstState m_oldState { GST_STATE_NULL };
 GstState m_requestedState { GST_STATE_VOID_PENDING };
 bool m_shouldResetPipeline { false };
 bool m_isSeeking { false };






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


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

2020-06-25 Thread aboya
Title: [263504] trunk/Source/WebCore








Revision 263504
Author ab...@igalia.com
Date 2020-06-25 06:02:15 -0700 (Thu, 25 Jun 2020)


Log Message
[GStreamer] Don't invalidate MainThreadNotifier until the streaming threads are joined
https://bugs.webkit.org/show_bug.cgi?id=213197

Reviewed by Xabier Rodriguez-Calvar.

~MediaPlayerPrivateGStreamer() used to call m_notifier->invalidate()
before setting the pipeline to NULL state. This caused a race where
the streaming threads could post a task to the MainThreadNotifier
between these two events and cause a crash in
ASSERT(m_isValid.load()) -- that is, the notifier was used while
invalidated.

Fixing this is actually easy. ~MediaPlayerPrivateGStreamer() is always
run from the main thread, so no MainThreadNotifier tasks will be run
before the destructor is complete. By moving the
m_notifier->invalidate() call to after the pipeline has been set to
NULL (and therefore all streaming threads torn down) we are ensuring
no more taks will be posted, and since the MainThreadNotifier is
invalidated by that point, already posted tasks will not be run.

The race fixed by this patch is rare and wide-arching, so this patch
doesn't introduce TestExpectations changes, but it should avoid
further crashes like the ones reported in the Bugzilla issue attached.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (263503 => 263504)

--- trunk/Source/WebCore/ChangeLog	2020-06-25 10:49:42 UTC (rev 263503)
+++ trunk/Source/WebCore/ChangeLog	2020-06-25 13:02:15 UTC (rev 263504)
@@ -1,3 +1,32 @@
+2020-06-25  Alicia Boya García  
+
+[GStreamer] Don't invalidate MainThreadNotifier until the streaming threads are joined
+https://bugs.webkit.org/show_bug.cgi?id=213197
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+~MediaPlayerPrivateGStreamer() used to call m_notifier->invalidate()
+before setting the pipeline to NULL state. This caused a race where
+the streaming threads could post a task to the MainThreadNotifier
+between these two events and cause a crash in
+ASSERT(m_isValid.load()) -- that is, the notifier was used while
+invalidated.
+
+Fixing this is actually easy. ~MediaPlayerPrivateGStreamer() is always
+run from the main thread, so no MainThreadNotifier tasks will be run
+before the destructor is complete. By moving the
+m_notifier->invalidate() call to after the pipeline has been set to
+NULL (and therefore all streaming threads torn down) we are ensuring
+no more taks will be posted, and since the MainThreadNotifier is
+invalidated by that point, already posted tasks will not be run.
+
+The race fixed by this patch is rare and wide-arching, so this patch
+doesn't introduce TestExpectations changes, but it should avoid
+further crashes like the ones reported in the Bugzilla issue attached.
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
+
 2020-06-23  Sergio Villar Senin  
 
 [WebXR] Check device orientation support when requesting a reference space


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (263503 => 263504)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-06-25 10:49:42 UTC (rev 263503)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-06-25 13:02:15 UTC (rev 263504)
@@ -269,8 +269,6 @@
 downcast(m_nicosiaLayer->impl()).invalidateClient();
 #endif
 
-m_notifier->invalidate();
-
 if (m_videoSink)
 g_signal_handlers_disconnect_matched(m_videoSink.get(), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, this);
 
@@ -294,6 +292,7 @@
 gst_element_set_state(m_pipeline.get(), GST_STATE_NULL);
 
 m_player = nullptr;
+m_notifier->invalidate();
 }
 
 bool MediaPlayerPrivateGStreamer::isAvailable()






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


[webkit-changes] [263401] trunk/Tools

2020-06-23 Thread aboya
Title: [263401] trunk/Tools








Revision 263401
Author ab...@igalia.com
Date 2020-06-23 09:14:45 -0700 (Tue, 23 Jun 2020)


Log Message
[GStreamer] Add GStreamer patch to fix EWS glupload racy crash
https://bugs.webkit.org/show_bug.cgi?id=210498

Reviewed by Philippe Normand.

This WebKit patch backports a patch from GStreamer 1.17 that prevents
the crashes in the attached bug to our flatpak build.

* buildstream/elements/sdk/gst-plugins-base.bst:
* buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch: Added.

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/buildstream/elements/sdk/gst-plugins-base.bst


Added Paths

trunk/Tools/buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch




Diff

Modified: trunk/Tools/ChangeLog (263400 => 263401)

--- trunk/Tools/ChangeLog	2020-06-23 16:12:36 UTC (rev 263400)
+++ trunk/Tools/ChangeLog	2020-06-23 16:14:45 UTC (rev 263401)
@@ -1,5 +1,18 @@
 2020-06-23  Alicia Boya García  
 
+[GStreamer] Add GStreamer patch to fix EWS glupload racy crash
+https://bugs.webkit.org/show_bug.cgi?id=210498
+
+Reviewed by Philippe Normand.
+
+This WebKit patch backports a patch from GStreamer 1.17 that prevents
+the crashes in the attached bug to our flatpak build.
+
+* buildstream/elements/sdk/gst-plugins-base.bst:
+* buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch: Added.
+
+2020-06-23  Alicia Boya García  
+
 [flatpak] Ensure en_US.UTF-8 locale
 https://bugs.webkit.org/show_bug.cgi?id=212459
 


Modified: trunk/Tools/buildstream/elements/sdk/gst-plugins-base.bst (263400 => 263401)

--- trunk/Tools/buildstream/elements/sdk/gst-plugins-base.bst	2020-06-23 16:12:36 UTC (rev 263400)
+++ trunk/Tools/buildstream/elements/sdk/gst-plugins-base.bst	2020-06-23 16:14:45 UTC (rev 263401)
@@ -9,6 +9,8 @@
   path: patches/gst-plugins-base-0001-glupload-Fix-fallback-from-direct-dmabuf-to-dmabuf-u.patch
 - kind: patch
   path: patches/gst-plugins-base-0002-glupload-fix-segfault.patch
+- kind: patch
+  path: patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch
 build-depends:
 - freedesktop-sdk.bst:public-stacks/buildsystem-meson.bst
 depends:


Added: trunk/Tools/buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch (0 => 263401)

--- trunk/Tools/buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch	(rev 0)
+++ trunk/Tools/buildstream/patches/gst-plugins-base-0003-glbasefilter-add-support-for-changing-the-display.patch	2020-06-23 16:14:45 UTC (rev 263401)
@@ -0,0 +1,660 @@
+From 56d9fb13f93abbf5aa5af81e39ae73642016fe95 Mon Sep 17 00:00:00 2001
+From: Matthew Waters 
+Date: Wed, 5 Feb 2020 12:26:54 +1100
+Subject: [PATCH] glbasefilter: add support for changing the display
+
+Each element will remove its usage of the old display and context and
+try to retrieve a new GL context.
+---
+ ext/gl/gstglcolorconvertelement.c |  44 ---
+ gst-libs/gst/gl/gstglbasefilter.c | 195 ++
+ gst-libs/gst/gl/gstglbasefilter.h |   4 +
+ tests/check/elements/glfilter.c   | 131 
+ tests/check/meson.build   |   1 +
+ 5 files changed, 310 insertions(+), 65 deletions(-)
+ create mode 100644 tests/check/elements/glfilter.c
+
+diff --git a/ext/gl/gstglcolorconvertelement.c b/ext/gl/gstglcolorconvertelement.c
+index 25e7daab9..256e5ef5a 100644
+--- a/ext/gl/gstglcolorconvertelement.c
 b/ext/gl/gstglcolorconvertelement.c
+@@ -36,15 +36,14 @@ G_DEFINE_TYPE_WITH_CODE (GstGLColorConvertElement, gst_gl_color_convert_element,
+ "glconvertelement", 0, "convert");
+ );
+ 
+-static gboolean gst_gl_color_convert_element_set_caps (GstBaseTransform * bt,
+-GstCaps * in_caps, GstCaps * out_caps);
++static gboolean gst_gl_color_convert_element_gl_set_caps (GstGLBaseFilter *
++base_filter, GstCaps * in_caps, GstCaps * out_caps);
+ static GstCaps *gst_gl_color_convert_element_transform_caps (GstBaseTransform *
+ bt, GstPadDirection direction, GstCaps * caps, GstCaps * filter);
+ static gboolean gst_gl_color_convert_element_get_unit_size (GstBaseTransform *
+ trans, GstCaps * caps, gsize * size);
+-static gboolean
+-gst_gl_color_convert_element_filter_meta (GstBaseTransform * trans,
+-GstQuery * query, GType api, const GstStructure * params);
++static gboolean gst_gl_color_convert_element_filter_meta (GstBaseTransform *
++trans, GstQuery * query, GType api, const GstStructure * params);
+ static gboolean gst_gl_color_convert_element_decide_allocation (GstBaseTransform
+ * trans, GstQuery * query);
+ static GstFlowReturn
+@@ -52,8 +51,8 @@ gst_gl_color_convert_element_prepare_output_buffer (GstBaseTransform * bt,
+ GstBuffer * inbuf, GstBuffer ** outbuf);
+ static GstFlowReturn 

[webkit-changes] [263397] trunk/Tools

2020-06-23 Thread aboya
Title: [263397] trunk/Tools








Revision 263397
Author ab...@igalia.com
Date 2020-06-23 08:48:20 -0700 (Tue, 23 Jun 2020)


Log Message
[flatpak] Ensure en_US.UTF-8 locale
https://bugs.webkit.org/show_bug.cgi?id=212459

Reviewed by Philippe Normand.

When developing WebKit we want as few system differences as possible
to make tests reproducible.

en_US.UTF-8 is indeed the only locale installed in our development
flatpak, but our scripts were not correctly clearing most locale
environment variables, which resulted in warnings when running some
tools (notably perl) when the user OS has a different locale.

This patch ensures all locale environment variables are cleared and
LANG is set to en_US.UTF-8. It also removes now redundant code from
flatpakutils.py.

* flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox):
* flatpak/webkit-bwrap:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/flatpak/flatpakutils.py
trunk/Tools/flatpak/webkit-bwrap




Diff

Modified: trunk/Tools/ChangeLog (263396 => 263397)

--- trunk/Tools/ChangeLog	2020-06-23 15:14:11 UTC (rev 263396)
+++ trunk/Tools/ChangeLog	2020-06-23 15:48:20 UTC (rev 263397)
@@ -1,3 +1,26 @@
+2020-06-23  Alicia Boya García  
+
+[flatpak] Ensure en_US.UTF-8 locale
+https://bugs.webkit.org/show_bug.cgi?id=212459
+
+Reviewed by Philippe Normand.
+
+When developing WebKit we want as few system differences as possible
+to make tests reproducible.
+
+en_US.UTF-8 is indeed the only locale installed in our development
+flatpak, but our scripts were not correctly clearing most locale
+environment variables, which resulted in warnings when running some
+tools (notably perl) when the user OS has a different locale.
+
+This patch ensures all locale environment variables are cleared and
+LANG is set to en_US.UTF-8. It also removes now redundant code from
+flatpakutils.py.
+
+* flatpak/flatpakutils.py:
+(WebkitFlatpak.run_in_sandbox):
+* flatpak/webkit-bwrap:
+
 2020-06-23  Simon Fraser  
 
 [ Catalina Debug WK2 ] fast/events/platform-wheelevent-in-scrolling-div.html is a flaky failure


Modified: trunk/Tools/flatpak/flatpakutils.py (263396 => 263397)

--- trunk/Tools/flatpak/flatpakutils.py	2020-06-23 15:14:11 UTC (rev 263396)
+++ trunk/Tools/flatpak/flatpakutils.py	2020-06-23 15:48:20 UTC (rev 263397)
@@ -711,7 +711,6 @@
 
 sandbox_environment.update({
 "TZ": "PST8PDT",
-"LANG": "en_US.UTF-8",
 })
 
 env_var_prefixes_to_keep = [
@@ -743,7 +742,6 @@
 "CXXFLAGS",
 "DISPLAY",
 "_javascript_CoreUseJIT",
-"LANG",
 "LDFLAGS",
 "MAX_CPU_LOAD",
 "Malloc",


Modified: trunk/Tools/flatpak/webkit-bwrap (263396 => 263397)

--- trunk/Tools/flatpak/webkit-bwrap	2020-06-23 15:14:11 UTC (rev 263396)
+++ trunk/Tools/flatpak/webkit-bwrap	2020-06-23 15:48:20 UTC (rev 263397)
@@ -58,6 +58,11 @@
 for dst, src in try_bind_mounts.items():
 bwrap_args.extend(["--bind-try", src, dst])
 
+for env in os.environ.keys():
+if env.startswith("LC_") or env == "LANGUAGE":
+bwrap_args.extend(["--unsetenv", env])
+bwrap_args.extend(["--setenv", "LANG", "en_US.UTF-8"])
+
 command_line = ' '.join(shlex.quote(a) for a in bwrap_args + args)
 # os.system return code behaves like os.wait. A 16 bit number with the
 # signal in the lower byte and, if the signal is zero, the exit code in






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


[webkit-changes] [261803] trunk

2020-05-18 Thread aboya
Title: [261803] trunk








Revision 261803
Author ab...@igalia.com
Date 2020-05-18 02:09:29 -0700 (Mon, 18 May 2020)


Log Message
Source/WebCore:
[GStreamer][MediaSource] Remove orphaned tracks in updateTracks()
https://bugs.webkit.org/show_bug.cgi?id=211980

Reviewed by Xabier Rodriguez-Calvar.

This patch ensures tracks missing from a subsequent updateTracks()
calls are removed from the player.

This fixes regressions on the following tests caused on r261683.

imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html
imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::hashSetFromHashMapKeys):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):

LayoutTests:
[GStreamer] Remove orphaned tracks in updateTracks()
https://bugs.webkit.org/show_bug.cgi?id=211980

Reviewed by Xabier Rodriguez-Calvar.

Updated test expectations.

* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (261802 => 261803)

--- trunk/LayoutTests/ChangeLog	2020-05-18 08:37:39 UTC (rev 261802)
+++ trunk/LayoutTests/ChangeLog	2020-05-18 09:09:29 UTC (rev 261803)
@@ -1,3 +1,14 @@
+2020-05-18  Alicia Boya García  
+
+[GStreamer] Remove orphaned tracks in updateTracks()
+https://bugs.webkit.org/show_bug.cgi?id=211980
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Updated test expectations.
+
+* platform/gtk/TestExpectations:
+
 2020-05-18  Zan Dobersek  
 
 Unreviewed WPE gardening. Providing custom baselines for tests


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (261802 => 261803)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2020-05-18 08:37:39 UTC (rev 261802)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2020-05-18 09:09:29 UTC (rev 261803)
@@ -1243,7 +1243,7 @@
 
 webkit.org/b/206655 inspector/page/overrideSetting-MockCaptureDevicesEnabled.html [ Failure ]
 
-webkit.org/b/206656 imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html [ Failure Crash Timeout ]
+webkit.org/b/206656 imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html [ Failure Crash ]
 webkit.org/b/206656 imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https.html [ Failure ]
 webkit.org/b/206656 imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none-manual.https.html [ Crash Failure Pass ]
 
@@ -2898,8 +2898,6 @@
 
 webkit.org/b/211836 imported/w3c/web-platform-tests/fetch/api/abort/general.any.worker.html [ Failure Pass ]
 
-webkit.org/b/211946 imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https.html [ Pass Crash ]
-
 webkit.org/b/211948 webanimations/accelerated-animation-playback-rate.html [ ImageOnlyFailure Timeout Pass ]
 
 webkit.org/b/211166 webrtc/disable-encryption.html [ Crash Pass ]


Modified: trunk/Source/WebCore/ChangeLog (261802 => 261803)

--- trunk/Source/WebCore/ChangeLog	2020-05-18 08:37:39 UTC (rev 261802)
+++ trunk/Source/WebCore/ChangeLog	2020-05-18 09:09:29 UTC (rev 261803)
@@ -1,3 +1,22 @@
+2020-05-18  Alicia Boya García  
+
+[GStreamer][MediaSource] Remove orphaned tracks in updateTracks()
+https://bugs.webkit.org/show_bug.cgi?id=211980
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+This patch ensures tracks missing from a subsequent updateTracks()
+calls are removed from the player.
+
+This fixes regressions on the following tests caused on r261683.
+
+imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html
+imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https.html
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::hashSetFromHashMapKeys):
+(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
+
 2020-05-18  Carlos Garcia Campos  
 
 [GTK] "ASSERTION FAILED: !m_adoptionIsRequired" when double clicking on a word


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (261802 => 261803)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-05-18 08:37:39 UTC (rev 261802)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-05-18 09:09:29 UTC (rev 261803)
@@ -115,11 +115,6 @@
 m_player->add##Type##Track(*track); \
 }   \
 } G_STMT_END
-
-#define CLEAR_TRACKS(tracks, method) \
-for (auto& 

[webkit-changes] [261744] trunk

2020-05-15 Thread aboya
Title: [261744] trunk








Revision 261744
Author ab...@igalia.com
Date 2020-05-15 07:40:51 -0700 (Fri, 15 May 2020)


Log Message
[GStreamer][MediaStream] Fix missing video size
https://bugs.webkit.org/show_bug.cgi?id=211938

Reviewed by Philippe Normand.

Source/WebCore:

r261683 redefined m_currentVideoStreamId. Under the new design, tracks
have several states:

- "wanted": a track has been selected from _javascript_, or chosen by
  default.

- "requested": a track that is expected to be chosen by the next
  STREAMS_SELECTED message.

- "current": a track that has been selected after the STREAMS_SELECTED
  message has been handled.

naturalSize() used to check m_currentVideoStreamId to look for the
video size, but this is called relatively early before the track
becomes "current" under the new design.

Since the size tags can't be queried at any time, it makes sense to
use m_wantedVideoStreamId instead.

This fixes the following tests which were previously regressed:

fast/mediastream/get-user-media-constraints.html
fast/mediastream/getUserMedia-video-rescaling.html
fast/mediastream/mediastreamtrack-video-clone.html
imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html
fast/mediastream/media-stream-renders-first-frame.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):

LayoutTests:

Updated test expectations.

* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (261743 => 261744)

--- trunk/LayoutTests/ChangeLog	2020-05-15 14:27:44 UTC (rev 261743)
+++ trunk/LayoutTests/ChangeLog	2020-05-15 14:40:51 UTC (rev 261744)
@@ -1,3 +1,14 @@
+2020-05-15  Alicia Boya García  
+
+[GStreamer][MediaStream] Fix missing video size
+https://bugs.webkit.org/show_bug.cgi?id=211938
+
+Reviewed by Philippe Normand.
+
+Updated test expectations.
+
+* platform/gtk/TestExpectations:
+
 2020-05-15  Antti Koivisto  
 
 [Wheel event region] Invalidation when changing listeners on elements


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (261743 => 261744)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2020-05-15 14:27:44 UTC (rev 261743)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2020-05-15 14:40:51 UTC (rev 261744)
@@ -1399,10 +1399,6 @@
 webkit.org/b/211887 webgl/1.0.3/conformance/textures/tex-sub-image-2d-bad-args.html [ Failure ]
 webkit.org/b/211887 webgl/1.0.3/conformance/textures/texture-size-limit.html [ Failure ]
 
-webkit.org/b/211938 fast/mediastream/get-user-media-constraints.html [ Failure ]
-webkit.org/b/211938 fast/mediastream/getUserMedia-video-rescaling.html [ Failure ]
-webkit.org/b/211938 imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-firstframe.https.html [ Failure ]
-
 webkit.org/b/211940 fast/text/multiple-codeunit-vertical-upright.html [ ImageOnlyFailure ]
 webkit.org/b/211940 fast/text/multiple-codeunit-vertical-upright-2.html [ ImageOnlyFailure ]
 
@@ -1499,7 +1495,7 @@
 webkit.org/b/199010 css2.1/t1204-order-01-d.html [ Pass Crash ]
 
 # Bug 211938 is Failure.
-webkit.org/b/199440 webkit.org/b/211938 fast/mediastream/mediastreamtrack-video-clone.html [ Pass Failure Crash ]
+webkit.org/b/199440 fast/mediastream/mediastreamtrack-video-clone.html [ Pass Crash ]
 
 # Known issues that were fixed by the WebKitMediaSrc rework that is now reverted.
 webkit.org/b/203078 imported/w3c/web-platform-tests/media-source/mediasource-seek-beyond-duration.html [ Failure Crash ]
@@ -3341,8 +3337,6 @@
 
 webkit.org/b/211569 media/video-presentation-mode.html [ Skip ]
 
-webkit.org/b/211938 fast/mediastream/media-stream-renders-first-frame.html [ Timeout ]
-
 #
 # End of Tests timing out
 #


Modified: trunk/Source/WebCore/ChangeLog (261743 => 261744)

--- trunk/Source/WebCore/ChangeLog	2020-05-15 14:27:44 UTC (rev 261743)
+++ trunk/Source/WebCore/ChangeLog	2020-05-15 14:40:51 UTC (rev 261744)
@@ -1,3 +1,40 @@
+2020-05-15  Alicia Boya García  
+
+[GStreamer][MediaStream] Fix missing video size
+https://bugs.webkit.org/show_bug.cgi?id=211938
+
+Reviewed by Philippe Normand.
+
+r261683 redefined m_currentVideoStreamId. Under the new design, tracks
+have several states:
+
+- "wanted": a track has been selected from _javascript_, or chosen by
+  default.
+
+- "requested": a track that is expected to be chosen by the next
+  STREAMS_SELECTED message.
+
+- "current": a track that has been selected after the 

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

2020-05-14 Thread aboya
Title: [261683] trunk/Source/WebCore








Revision 261683
Author ab...@igalia.com
Date 2020-05-14 02:58:16 -0700 (Thu, 14 May 2020)


Log Message
[GStreamer] Playbin3 track switch rework
https://bugs.webkit.org/show_bug.cgi?id=211623

Reviewed by Philippe Normand.

This patch reworks how track selection and reporting of selected
tracks is done in the player.

The following found limitations and assumptions in current GStreamer
have informed this patch:

a) Although the API for playbin3 is designed to be able to accept any
number of tracks of any kind, this is not supported in practice.

b) The first track of each type is always selected. Even in playbin3
mode, looking for GST_STREAM_FLAG_SELECT is not a reliable method, as
in most cases the demuxer does not set it at all. [qtdemux never sets
it at all, and matroskademux only sets it in certain cases.]

c) Sending GST_EVENT_SELECT_STREAMS is only safe at certain moments.
It's not safe before pre-roll, after EOS or during the handling of
another SELECT_STREAMS.

d) Selecting text tracks with playbin APIs is not relevant. All text
tracks are already being picked by WebKitTextCombiner, unaffected by
playbin track selection.

e) Tracks requested in a GST_EVENT_SELECT_STREAMS are eventually
selected. On the other hand,  looking at
GST_MESSAGE_STREAMS_SELECTED's content is not reliable, as this has
been seen to miss tracks depending on thread luck.

This patch takes the points above into account to rework how track
selection is handled in MediaPlayerPrivateGStreamer and fix the
following issues:

1) In playbin3 mode, no track was marked as selected initially,
because of reliance on GST_STREAM_FLAG_SELECT.

2) In playbin2 mode, sometimes tracks would not be initially marked as
selected. This occurred because of reliance on the "selected" property
in inputselector sinkpads, whose initialization is racy -- it can
occur after the track has been added and picked up by WebKit.

3) In playbin3 mode, the limitations explained before has been honored
to make track selection stable, delaying SELECT_STREAMS events until
they are safe to send.

This patch doesn't introduce significative behavior changes, rather
aiming for improving the stabilitity of the player. Existing tests
should provide enough coverage.

* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):
(WebCore::AudioTrackPrivateGStreamer::setEnabled):
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
(WebCore::MediaPlayerPrivateGStreamer::updateEnabledVideoTrack):
(WebCore::MediaPlayerPrivateGStreamer::updateEnabledAudioTrack):
(WebCore::MediaPlayerPrivateGStreamer::playbin3SendSelectStreamsIfAppropriate):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer):
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):
(WebCore::VideoTrackPrivateGStreamer::setSelected):
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (261682 => 261683)

--- trunk/Source/WebCore/ChangeLog	2020-05-14 09:47:41 UTC (rev 261682)
+++ trunk/Source/WebCore/ChangeLog	2020-05-14 09:58:16 UTC (rev 261683)
@@ -1,3 +1,80 @@
+2020-05-14  Alicia Boya García  
+
+[GStreamer] Playbin3 track switch rework
+https://bugs.webkit.org/show_bug.cgi?id=211623
+
+Reviewed by Philippe Normand.
+
+This patch reworks how track selection and reporting of selected
+tracks is done in the player.
+
+The following found limitations and assumptions in current GStreamer
+have informed this patch:
+
+a) Although the API for playbin3 is 

[webkit-changes] [261165] trunk

2020-05-05 Thread aboya
Title: [261165] trunk








Revision 261165
Author ab...@igalia.com
Date 2020-05-05 07:36:50 -0700 (Tue, 05 May 2020)


Log Message
[GStreamer] Video loops when ran in rr record --chaos
https://bugs.webkit.org/show_bug.cgi?id=211182

Reviewed by Philippe Normand.

Source/WebCore:

While trying to investigate a different bug, I ran the browser with
`rr record --chaos`, which makes it run very slowly and shuffles
thread scheduling to try to make existing race conditions more likely
to show up, also inevitably making the software run very slow.

Doing so I found something strange: the video kept looping even though
it didn't have the `loop` attribute set.

After some debugging I found that MediaPlayer decides if the video has
ended in part by checking `currentMediaTime()` is greater or equal to
the video duration, which was not guaranteed to be the case in
MediaPlayerPrivateGStreamer.

As a consequence of this patch, one new LayoutTest has passed.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):

LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
is now passing.

* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (261164 => 261165)

--- trunk/LayoutTests/ChangeLog	2020-05-05 13:48:55 UTC (rev 261164)
+++ trunk/LayoutTests/ChangeLog	2020-05-05 14:36:50 UTC (rev 261165)
@@ -1,3 +1,15 @@
+2020-05-05  Alicia Boya García  
+
+[GStreamer] Video loops when ran in rr record --chaos
+https://bugs.webkit.org/show_bug.cgi?id=211182
+
+Reviewed by Philippe Normand.
+
+imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
+is now passing.
+
+* platform/gtk/TestExpectations:
+
 2020-05-05  Antoine Quint  
 
 Unreviewed, reverting r260989.


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (261164 => 261165)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2020-05-05 13:48:55 UTC (rev 261164)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2020-05-05 14:36:50 UTC (rev 261165)
@@ -1607,7 +1607,6 @@
 webkit.org/b/203078 media/media-source/media-source-remove-unload-crash.html [ Pass Crash ]
 webkit.org/b/203078 media/media-source/media-source-seek-complete.html [ Pass Crash ]
 webkit.org/b/203078 media/media-source/media-source-seek-detach-crash.html [ Pass Crash ]
-webkit.org/b/203078 imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html [ Failure Crash ]
 webkit.org/b/203078 imported/w3c/web-platform-tests/media-source/mediasource-replay.html [ Failure Crash ]
 webkit.org/b/203078 imported/w3c/web-platform-tests/media-source/mediasource-seek-during-pending-seek.html [ Pass Crash ]
 webkit.org/b/203078 imported/w3c/web-platform-tests/media-source/mediasource-redundant-seek.html [ Pass Crash ]


Modified: trunk/Source/WebCore/ChangeLog (261164 => 261165)

--- trunk/Source/WebCore/ChangeLog	2020-05-05 13:48:55 UTC (rev 261164)
+++ trunk/Source/WebCore/ChangeLog	2020-05-05 14:36:50 UTC (rev 261165)
@@ -1,3 +1,28 @@
+2020-05-05  Alicia Boya García  
+
+[GStreamer] Video loops when ran in rr record --chaos
+https://bugs.webkit.org/show_bug.cgi?id=211182
+
+Reviewed by Philippe Normand.
+
+While trying to investigate a different bug, I ran the browser with
+`rr record --chaos`, which makes it run very slowly and shuffles
+thread scheduling to try to make existing race conditions more likely
+to show up, also inevitably making the software run very slow.
+
+Doing so I found something strange: the video kept looping even though
+it didn't have the `loop` attribute set.
+
+After some debugging I found that MediaPlayer decides if the video has
+ended in part by checking `currentMediaTime()` is greater or equal to
+the video duration, which was not guaranteed to be the case in
+MediaPlayerPrivateGStreamer.
+
+As a consequence of this patch, one new LayoutTest has passed.
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
+
 2020-05-05  Zalan Bujtas  
 
 [LFC] Rename computedContentHeight/Width to computedHeight/Width


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (261164 => 261165)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-05-05 13:48:55 UTC (rev 261164)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-05-05 14:36:50 UTC (rev 261165)
@@ -1387,8 +1387,10 @@
 MediaTime 

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

2020-04-29 Thread aboya
Title: [260892] trunk/Source/WebCore








Revision 260892
Author ab...@igalia.com
Date 2020-04-29 04:33:46 -0700 (Wed, 29 Apr 2020)


Log Message
PlatformMediaResourceLoader should be destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=211155

Reviewed by Xabier Rodriguez-Calvar.

PlatformMediaResourceLoader is only safe to use from the main thread.
A tricky detail is this includes its destruction. The same is true for
PlatformMediaResource.

Both classes are ThreadSafeRefCounted<> classes and therefore
WTF::DestructionThread::Main can be used to ensure destruction is run
in the correct thread with no need for additional client code.

* platform/graphics/PlatformMediaResourceLoader.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(WebKitWebSrcPrivate::StreamingMembers::~StreamingMembers):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h
trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (260891 => 260892)

--- trunk/Source/WebCore/ChangeLog	2020-04-29 10:36:22 UTC (rev 260891)
+++ trunk/Source/WebCore/ChangeLog	2020-04-29 11:33:46 UTC (rev 260892)
@@ -1,3 +1,22 @@
+2020-04-29  Alicia Boya García  
+
+PlatformMediaResourceLoader should be destroyed on the main thread
+https://bugs.webkit.org/show_bug.cgi?id=211155
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+PlatformMediaResourceLoader is only safe to use from the main thread.
+A tricky detail is this includes its destruction. The same is true for
+PlatformMediaResource.
+
+Both classes are ThreadSafeRefCounted<> classes and therefore
+WTF::DestructionThread::Main can be used to ensure destruction is run
+in the correct thread with no need for additional client code.
+
+* platform/graphics/PlatformMediaResourceLoader.h:
+* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+(WebKitWebSrcPrivate::StreamingMembers::~StreamingMembers):
+
 2020-04-29  Rob Buis  
 
 Make PolicyChecker an inner class of FrameLoader


Modified: trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h (260891 => 260892)

--- trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h	2020-04-29 10:36:22 UTC (rev 260891)
+++ trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h	2020-04-29 11:33:46 UTC (rev 260892)
@@ -54,7 +54,7 @@
 virtual void loadFinished(PlatformMediaResource&) { }
 };
 
-class PlatformMediaResourceLoader : public ThreadSafeRefCounted {
+class PlatformMediaResourceLoader : public ThreadSafeRefCounted {
 WTF_MAKE_NONCOPYABLE(PlatformMediaResourceLoader); WTF_MAKE_FAST_ALLOCATED;
 public:
 enum LoadOption {
@@ -71,7 +71,7 @@
 PlatformMediaResourceLoader() = default;
 };
 
-class PlatformMediaResource : public ThreadSafeRefCounted {
+class PlatformMediaResource : public ThreadSafeRefCounted {
 WTF_MAKE_NONCOPYABLE(PlatformMediaResource); WTF_MAKE_FAST_ALLOCATED;
 public:
 PlatformMediaResource() = default;


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (260891 => 260892)

--- trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2020-04-29 10:36:22 UTC (rev 260891)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2020-04-29 11:33:46 UTC (rev 260892)
@@ -102,16 +102,14 @@
 GUniquePtr httpMethod;
 
 struct StreamingMembers {
+#ifndef NDEBUG
 ~StreamingMembers()
 {
 // By the time we're destroying WebKitWebSrcPrivate unLock() should have been called and therefore resource
 // should have already been cleared.
 ASSERT(!resource);
-// ResourceLoader is not thread-safe. It's not even ThreadSafeRefCounted. Therefore, to be safe, we want the
-// unref to happen in the main thread.
-if (loader)
-RunLoop::main().dispatch([loader = WTFMove(loader)] { });
 }
+#endif
 
 // Properties initially empty, but set once the first HTTP response arrives:
 bool wasResponseReceived;






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


[webkit-changes] [260755] trunk

2020-04-27 Thread aboya
Title: [260755] trunk








Revision 260755
Author ab...@igalia.com
Date 2020-04-27 08:30:02 -0700 (Mon, 27 Apr 2020)


Log Message
[GStreamer] Rework WebKitWebSrc threading
Source/WebCore:

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

Reviewed by Xabier Rodriguez-Calvar.

WebKitWebSrc as it is in master has a number of race conditions
leading to occasional starvation (due to cancelling the wrong request)
or data corruption (due to pushing data from a cancelled request).

The threading situation wasn't easy to follow, as it wasn't clear
access to what members should be protected by what mutex, in what
circumstances. Also, some parts of the design were also introducing
addicional complexity, such as the first request being sent from the
main thread whereas the rest were being sent from the streaming thread
or basesrc async start.

In response, this patch reworks all the locking in WebKitWebSrc to use
WTF::DataMutex. This ensures all accesses to its (now explicit)
protected members are locked. The two mutexes and condition variables
have been simplified into one, as there was no obvious need or benefit
for two of each in this case.

Requests have been numbered, which allows to safely and atomically
ignore results from cancelled requests, avoiding data corruption
races, and makes following them in debug logs much easier.

The conditions for making and cancelling requests have been simplified
to a simpler and safer model: There is at most only one active request
at anytime, flushes cancel the request, and the first create() call
always makes the new request (both at startup and after a flush).
Debug asserts and notes about the flow of operations during basesrc
seeks have been provided.

As this effort needed a review of the entire WebKitWebSrc, cleanups,
corrections and documentation comments have been provided where
appropriate.

This patch introduces no visible behavior changes, just stability
improvements.

* platform/graphics/gstreamer/GRefPtrGStreamer.h:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(WebKitWebSrcPrivate::~WebKitWebSrcPrivate):
(webkit_web_src_class_init):
(webkitWebSrcReset):
(webKitWebSrcConstructed):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcSetContext):
(webKitWebSrcSendEvent):
(restartLoaderIfNeeded):
(stopLoaderIfNeeded):
(webKitWebSrcCreate):
(webKitWebSrcStart):
(webKitWebSrcMakeRequest):
(webKitWebSrcStop):
(webKitWebSrcGetSize):
(webKitWebSrcIsSeekable):
(webKitWebSrcDoSeek):
(webKitWebSrcQuery):
(webKitWebSrcUnLock):
(webKitWebSrcUnLockStop):
(webKitWebSrcSetUri):
(webKitWebSrcSetMediaPlayer):
(webKitSrcPassedCORSAccessCheck):
(CachedResourceStreamingClient::CachedResourceStreamingClient):
(CachedResourceStreamingClient::checkUpdateBlocksize):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::dataReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(CachedResourceStreamingClient::loadFinished):
(webKitSrcWouldTaintOrigin):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:

LayoutTests:

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

Reviewed by Xabier Rodriguez-Calvar.

A test improved its status in TestExpectations from the changes made
in this patch.

* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.h




Diff

Modified: trunk/LayoutTests/ChangeLog (260754 => 260755)

--- trunk/LayoutTests/ChangeLog	2020-04-27 15:27:30 UTC (rev 260754)
+++ trunk/LayoutTests/ChangeLog	2020-04-27 15:30:02 UTC (rev 260755)
@@ -1,3 +1,15 @@
+2020-04-27  Alicia Boya García  
+
+[GStreamer] Rework WebKitWebSrc threading
+https://bugs.webkit.org/show_bug.cgi?id=209811
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+A test improved its status in TestExpectations from the changes made
+in this patch.
+
+* platform/gtk/TestExpectations:
+
 2020-04-26  Lauro Moura  
 
 [GTK] Gardening, skipping more inspector tests.


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (260754 => 260755)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2020-04-27 15:27:30 UTC (rev 260754)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2020-04-27 15:30:02 UTC (rev 260755)
@@ -1291,8 +1291,6 @@
 webkit.org/b/206656 imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-getSettings.https.html [ Failure ]
 webkit.org/b/206656 imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none-manual.https.html [ Crash Failure Pass ]
 
-webkit.org/b/206657 

[webkit-changes] [259879] trunk

2020-04-10 Thread aboya
Title: [259879] trunk








Revision 259879
Author ab...@igalia.com
Date 2020-04-10 09:46:49 -0700 (Fri, 10 Apr 2020)


Log Message
[WTF] DataMutex: Add runUnlocked()
https://bugs.webkit.org/show_bug.cgi?id=209811

Reviewed by Xabier Rodriguez-Calvar.

Source/WTF:

This patch introduces a runUnlocked() method in WTF::DataMutex::LockedWrapper
to run a lambda function without the lock. This is intended to be used for
small sections of the code that need to be unlocked, in cases where using
scoping would prove non-ergonomic or where running the unlocked section is only
necessary or desired when a certain condition is met -- something that cannot
be done with C++ scoping.

Safety mechanisms are provided. First, because this is used with a lambda, all
variables to be used in the unlocked section have to be specified in the
capture (global capture is possible but not recommended to simplify analysis).
Second, additional checks have been added to DataMutex to detect unlocked
accesses among other conditions. This will detect among other things naive
access to protected members by means of capturing the LockedWrapper by
reference.

* wtf/DataMutex.h:
(WTF::OwnerAwareLockAdapter::lock):
(WTF::OwnerAwareLockAdapter::unlock):
(WTF::OwnerAwareLockAdapter::tryLock):
(WTF::OwnerAwareLockAdapter::isLocked const):
(WTF::DataMutex::LockedWrapper::operator->):
(WTF::DataMutex::LockedWrapper::operator*):
(WTF::DataMutex::LockedWrapper::mutex):
(WTF::DataMutex::LockedWrapper::lockHolder):
(WTF::DataMutex::LockedWrapper::runUnlocked):

Tools:

Tests for runUnlocked() and DataMutex checks are introduced.

* TestWebKitAPI/Tests/WTF/DataMutex.cpp:
(TestWebKitAPI::TEST):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/DataMutex.h
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WTF/DataMutex.cpp




Diff

Modified: trunk/Source/WTF/ChangeLog (259878 => 259879)

--- trunk/Source/WTF/ChangeLog	2020-04-10 16:22:34 UTC (rev 259878)
+++ trunk/Source/WTF/ChangeLog	2020-04-10 16:46:49 UTC (rev 259879)
@@ -1,3 +1,36 @@
+2020-04-10  Alicia Boya García  
+
+[WTF] DataMutex: Add runUnlocked()
+https://bugs.webkit.org/show_bug.cgi?id=209811
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+This patch introduces a runUnlocked() method in WTF::DataMutex::LockedWrapper
+to run a lambda function without the lock. This is intended to be used for
+small sections of the code that need to be unlocked, in cases where using
+scoping would prove non-ergonomic or where running the unlocked section is only
+necessary or desired when a certain condition is met -- something that cannot
+be done with C++ scoping.
+
+Safety mechanisms are provided. First, because this is used with a lambda, all
+variables to be used in the unlocked section have to be specified in the
+capture (global capture is possible but not recommended to simplify analysis).
+Second, additional checks have been added to DataMutex to detect unlocked
+accesses among other conditions. This will detect among other things naive
+access to protected members by means of capturing the LockedWrapper by
+reference.
+
+* wtf/DataMutex.h:
+(WTF::OwnerAwareLockAdapter::lock):
+(WTF::OwnerAwareLockAdapter::unlock):
+(WTF::OwnerAwareLockAdapter::tryLock):
+(WTF::OwnerAwareLockAdapter::isLocked const):
+(WTF::DataMutex::LockedWrapper::operator->):
+(WTF::DataMutex::LockedWrapper::operator*):
+(WTF::DataMutex::LockedWrapper::mutex):
+(WTF::DataMutex::LockedWrapper::lockHolder):
+(WTF::DataMutex::LockedWrapper::runUnlocked):
+
 2020-04-10  David Kilzer  
 
 Add WARN_UNUSED_RETURN to decode methods in Source/WTF


Modified: trunk/Source/WTF/wtf/DataMutex.h (259878 => 259879)

--- trunk/Source/WTF/wtf/DataMutex.h	2020-04-10 16:22:34 UTC (rev 259878)
+++ trunk/Source/WTF/wtf/DataMutex.h	2020-04-10 16:46:49 UTC (rev 259879)
@@ -21,10 +21,74 @@
 #pragma once
 
 #include 
+#include 
 
 namespace WTF {
 
-template
+// By default invalid access checks are only done in Debug builds.
+#if !defined(ENABLE_DATA_MUTEX_CHECKS)
+#if defined(NDEBUG)
+#define ENABLE_DATA_MUTEX_CHECKS 0
+#else
+#define ENABLE_DATA_MUTEX_CHECKS 1
+#endif
+#endif
+
+#if ENABLE_DATA_MUTEX_CHECKS
+#define DATA_MUTEX_CHECK(expr) RELEASE_ASSERT(expr)
+#else
+#define DATA_MUTEX_CHECK(expr)
+#endif
+
+template
+class OwnerAwareLockAdapter {
+public:
+void lock()
+{
+DATA_MUTEX_CHECK(m_owner != ::current()); // Thread attempted recursive lock (unsupported).
+m_lock.lock();
+#if ENABLE_DATA_MUTEX_CHECKS
+ASSERT(!m_owner);
+m_owner = ::current();
+#endif
+}
+
+void unlock()
+{
+#if ENABLE_DATA_MUTEX_CHECKS
+m_owner = nullptr;
+#endif
+m_lock.unlock();
+}
+
+bool tryLock()
+{
+DATA_MUTEX_CHECK(m_owner != ::current()); // Thread attempted 

[webkit-changes] [259870] trunk/Tools

2020-04-10 Thread aboya
Title: [259870] trunk/Tools








Revision 259870
Author ab...@igalia.com
Date 2020-04-10 08:18:58 -0700 (Fri, 10 Apr 2020)


Log Message
[Tools] Fix gdb WebCoreQualifiedNamePrinter
https://bugs.webkit.org/show_bug.cgi?id=210109

Reviewed by Daniel Bates.

My gdb was throwing exceptions like this when printing
QualifiedName's:

File "/webkit/Tools/gdb/webkit.py", line 205, in __init__
  self.val['m_impl']['m_prefix']['m_string'])
gdb.error: There is no member or method named m_prefix.

This patch adds a missing m_ptr indirection to traverse
RefPtr, fixing the issue.

* gdb/webkit.py:
(WebCoreQualifiedNamePrinter.__init__):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/gdb/webkit.py




Diff

Modified: trunk/Tools/ChangeLog (259869 => 259870)

--- trunk/Tools/ChangeLog	2020-04-10 14:23:58 UTC (rev 259869)
+++ trunk/Tools/ChangeLog	2020-04-10 15:18:58 UTC (rev 259870)
@@ -1,5 +1,25 @@
 2020-04-10  Alicia Boya García  
 
+[Tools] Fix gdb WebCoreQualifiedNamePrinter
+https://bugs.webkit.org/show_bug.cgi?id=210109
+
+Reviewed by Daniel Bates.
+
+My gdb was throwing exceptions like this when printing
+QualifiedName's:
+
+File "/webkit/Tools/gdb/webkit.py", line 205, in __init__
+  self.val['m_impl']['m_prefix']['m_string'])
+gdb.error: There is no member or method named m_prefix.
+
+This patch adds a missing m_ptr indirection to traverse
+RefPtr, fixing the issue.
+
+* gdb/webkit.py:
+(WebCoreQualifiedNamePrinter.__init__):
+
+2020-04-10  Alicia Boya García  
+
 [Tools] jhbuild should respect PKG_CONFIG_PATH
 https://bugs.webkit.org/show_bug.cgi?id=210280
 


Modified: trunk/Tools/gdb/webkit.py (259869 => 259870)

--- trunk/Tools/gdb/webkit.py	2020-04-10 14:23:58 UTC (rev 259869)
+++ trunk/Tools/gdb/webkit.py	2020-04-10 15:18:58 UTC (rev 259870)
@@ -200,11 +200,11 @@
 super(WebCoreQualifiedNamePrinter, self).__init__(val)
 self.prefix_length = 0
 self.length = 0
-if self.val['m_impl']:
+if self.val['m_impl']['m_ptr']:
 self.prefix_printer = WTFStringPrinter(
-self.val['m_impl']['m_prefix']['m_string'])
+self.val['m_impl']['m_ptr']['m_prefix']['m_string'])
 self.local_name_printer = WTFStringPrinter(
-self.val['m_impl']['m_localName']['m_string'])
+self.val['m_impl']['m_ptr']['m_localName']['m_string'])
 self.prefix_length = self.prefix_printer.get_length()
 if self.prefix_length > 0:
 self.length = (self.prefix_length + 1 +






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


[webkit-changes] [259867] trunk/Tools

2020-04-10 Thread aboya
Title: [259867] trunk/Tools








Revision 259867
Author ab...@igalia.com
Date 2020-04-10 06:17:56 -0700 (Fri, 10 Apr 2020)


Log Message
[Tools] jhbuild should respect PKG_CONFIG_PATH
https://bugs.webkit.org/show_bug.cgi?id=210280

Reviewed by Carlos Alberto Lopez Perez.

Our jhbuildrc adds the system paths to PKG_CONFIG_PATH. This is not
necessary, as they are included implicitly by pkg-config, e.g.

$ mkdir /tmp/empty
$ PKG_CONFIG_PATH=/tmp/empty pkg-config --cflags glib-2.0
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include

Apart from not being necessary, it is problematic because it makes
impossible to override system libraries in jhbuild-wrapper.

$ PKG_CONFIG_PATH=/home/ntrrgc/Apps/gst-1.10-prefix/lib/pkgconfig/ jhbuild-wrapper --gtk run bash
/webkit/WebKitBuild/DependenciesGTK/Root/lib64/pkgconfig:/webkit/WebKitBuild/DependenciesGTK/Root/lib/pkgconfig:/webkit/WebKitBuild/DependenciesGTK/Root/share/pkgconfig:/usr/share/pkgconfig:/usr/lib64/pkgconfig:/home/ntrrgc/Apps/gst-1.10-prefix/lib/pkgconfig

Note /usr/share/pkgconfig and /usr/lib64/pkgconfig are taking priority
over the user environment.

This patch removes that code, so that the user PKG_CONFIG_PATH takes
priority over the system default paths, while these keep having effect
too as explained before.

$ PKG_CONFIG_PATH=/home/ntrrgc/Apps/gst-1.10-prefix/lib/pkgconfig jhbuild-wrapper --gtk run bash
/webkit/WebKitBuild/DependenciesGTK/Root/lib64/pkgconfig:/webkit/WebKitBuild/DependenciesGTK/Root/lib/pkgconfig:/webkit/WebKitBuild/DependenciesGTK/Root/share/pkgconfig:/home/ntrrgc/Apps/gst-1.10-prefix/lib/pkgconfig

* jhbuild/jhbuildrc_common.py:
(init):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/jhbuild/jhbuildrc_common.py




Diff

Modified: trunk/Tools/ChangeLog (259866 => 259867)

--- trunk/Tools/ChangeLog	2020-04-10 12:19:40 UTC (rev 259866)
+++ trunk/Tools/ChangeLog	2020-04-10 13:17:56 UTC (rev 259867)
@@ -1,3 +1,36 @@
+2020-04-10  Alicia Boya García  
+
+[Tools] jhbuild should respect PKG_CONFIG_PATH
+https://bugs.webkit.org/show_bug.cgi?id=210280
+
+Reviewed by Carlos Alberto Lopez Perez.
+
+Our jhbuildrc adds the system paths to PKG_CONFIG_PATH. This is not
+necessary, as they are included implicitly by pkg-config, e.g.
+
+$ mkdir /tmp/empty
+$ PKG_CONFIG_PATH=/tmp/empty pkg-config --cflags glib-2.0
+-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
+
+Apart from not being necessary, it is problematic because it makes
+impossible to override system libraries in jhbuild-wrapper.
+
+$ PKG_CONFIG_PATH=/home/ntrrgc/Apps/gst-1.10-prefix/lib/pkgconfig/ jhbuild-wrapper --gtk run bash
+/webkit/WebKitBuild/DependenciesGTK/Root/lib64/pkgconfig:/webkit/WebKitBuild/DependenciesGTK/Root/lib/pkgconfig:/webkit/WebKitBuild/DependenciesGTK/Root/share/pkgconfig:/usr/share/pkgconfig:/usr/lib64/pkgconfig:/home/ntrrgc/Apps/gst-1.10-prefix/lib/pkgconfig
+
+Note /usr/share/pkgconfig and /usr/lib64/pkgconfig are taking priority
+over the user environment.
+
+This patch removes that code, so that the user PKG_CONFIG_PATH takes
+priority over the system default paths, while these keep having effect
+too as explained before.
+
+$ PKG_CONFIG_PATH=/home/ntrrgc/Apps/gst-1.10-prefix/lib/pkgconfig jhbuild-wrapper --gtk run bash
+/webkit/WebKitBuild/DependenciesGTK/Root/lib64/pkgconfig:/webkit/WebKitBuild/DependenciesGTK/Root/lib/pkgconfig:/webkit/WebKitBuild/DependenciesGTK/Root/share/pkgconfig:/home/ntrrgc/Apps/gst-1.10-prefix/lib/pkgconfig
+
+* jhbuild/jhbuildrc_common.py:
+(init):
+
 2020-04-10  Philippe Normand  
 
 [Flatpak SDK] Flatpak build broken when using 'git config core.webkitbranchbuild=true'


Modified: trunk/Tools/jhbuild/jhbuildrc_common.py (259866 => 259867)

--- trunk/Tools/jhbuild/jhbuildrc_common.py	2020-04-10 12:19:40 UTC (rev 259866)
+++ trunk/Tools/jhbuild/jhbuildrc_common.py	2020-04-10 13:17:56 UTC (rev 259867)
@@ -71,12 +71,7 @@
 # to use only the plugins we build in JHBuild.
 os.environ['GST_PLUGIN_SYSTEM_PATH'] = ''
 
-# Use system libraries while building.
 addpath = jhbuildrc_globals['addpath']
-system_libdirs = jhbuildrc_globals['system_libdirs']
-for libdir in system_libdirs:
-addpath('PKG_CONFIG_PATH', os.path.join(libdir, 'pkgconfig'))
-addpath('PKG_CONFIG_PATH', os.path.join(os.sep, 'usr', 'share', 'pkgconfig'))
 
 prefix = jhbuildrc_globals['prefix']
 addpath('CMAKE_PREFIX_PATH', prefix)






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


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

2020-04-07 Thread aboya
Title: [259643] trunk/Source/WebCore








Revision 259643
Author ab...@igalia.com
Date 2020-04-07 09:38:32 -0700 (Tue, 07 Apr 2020)


Log Message
[GStreamer] Log a warning if playbin is not found
https://bugs.webkit.org/show_bug.cgi?id=210112

Reviewed by Philippe Normand.

I spent quite a bit of time looking in the debugger for what ended up
being a trivial configuration issue because there was no logging
showing any obvious problem. Let's add it.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::isAvailable):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (259642 => 259643)

--- trunk/Source/WebCore/ChangeLog	2020-04-07 16:29:16 UTC (rev 259642)
+++ trunk/Source/WebCore/ChangeLog	2020-04-07 16:38:32 UTC (rev 259643)
@@ -1,3 +1,17 @@
+2020-04-07  Alicia Boya García  
+
+[GStreamer] Log a warning if playbin is not found
+https://bugs.webkit.org/show_bug.cgi?id=210112
+
+Reviewed by Philippe Normand.
+
+I spent quite a bit of time looking in the debugger for what ended up
+being a trivial configuration issue because there was no logging
+showing any obvious problem. Let's add it.
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::isAvailable):
+
 2020-04-07  Adrian Perez de Castro  
 
 [GTK] CMake find module for GTK4


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (259642 => 259643)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-04-07 16:29:16 UTC (rev 259642)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2020-04-07 16:38:32 UTC (rev 259643)
@@ -548,6 +548,8 @@
 
 // FIXME: This has not been updated for the playbin3 switch.
 GRefPtr factory = adoptGRef(gst_element_factory_find("playbin"));
+if (!factory)
+GST_WARNING("Couldn't find a factory for the playbin element. Media playback will be disabled.");
 return factory;
 }
 






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


[webkit-changes] [259053] trunk/LayoutTests

2020-03-26 Thread aboya
Title: [259053] trunk/LayoutTests








Revision 259053
Author ab...@igalia.com
Date 2020-03-26 10:47:21 -0700 (Thu, 26 Mar 2020)


Log Message
Unreviewed GTK debug multimedia gardening
https://bugs.webkit.org/show_bug.cgi?id=209603

I need a clean baseline to check for regressions.


* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (259052 => 259053)

--- trunk/LayoutTests/ChangeLog	2020-03-26 17:47:08 UTC (rev 259052)
+++ trunk/LayoutTests/ChangeLog	2020-03-26 17:47:21 UTC (rev 259053)
@@ -1,3 +1,12 @@
+2020-03-26  Alicia Boya García  
+
+Unreviewed GTK debug multimedia gardening
+https://bugs.webkit.org/show_bug.cgi?id=209603
+
+I need a clean baseline to check for regressions.
+
+* platform/gtk/TestExpectations:
+
 2020-03-26  Per Arne Vollan  
 
 [iOS] Deny mach lookup access to frontboard services in the WebContent process


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (259052 => 259053)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2020-03-26 17:47:08 UTC (rev 259052)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2020-03-26 17:47:21 UTC (rev 259053)
@@ -1244,7 +1244,7 @@
 
 webkit.org/b/206583 webrtc/video-gpuProcess.html [ Failure ]
 
-webkit.org/b/206584 webkit.org/b/198830 [ Release ] media/video-set-presentation-mode-to-inline.html [ Failure Crash ]
+webkit.org/b/206584 webkit.org/b/198830 media/video-set-presentation-mode-to-inline.html [ Failure Crash ]
 
 webkit.org/b/206585 imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-position-vertical-lr.html [ Failure ]
 webkit.org/b/206585 imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-position-vertical-rl.html [ Failure ]
@@ -1916,7 +1916,7 @@
 
 webkit.org/b/168780 fast/forms/input-first-letter-edit.html [ ImageOnlyFailure Pass ]
 
-webkit.org/b/116277 webkit.org/b/198830 [ Release ] media/video-buffered.html [ Pass Failure Crash ]
+webkit.org/b/116277 webkit.org/b/198830 media/video-buffered.html [ Pass Failure Crash ]
 
 webkit.org/b/170337 fast/repaint/obscured-background-no-repaint.html [ Pass Failure ]
 
@@ -2207,7 +2207,7 @@
 webkit.org/b/194044 imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-mode.html [ Crash Pass ]
 
 webkit.org/b/195466 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/error-codes/error.html [ Pass Failure ]
-webkit.org/b/195466 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html [ Failure Pass ]
+webkit.org/b/195466 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html [ Failure Pass Crash ]
 
 webkit.org/b/197245 animations/remove-syncing-animation.html [ Failure Pass ]
 
@@ -2363,7 +2363,7 @@
 webkit.org/b/198830 media/video-system-sleep.html [ Pass Crash ]
 webkit.org/b/198830 media/video-timeupdate-during-playback.html [ Pass Crash ]
 webkit.org/b/198830 media/video-timeupdate-reverse-play.html [ Crash Pass ]
-webkit.org/b/198830 media/video-trackmenu-selection.html [ Crash Timeout ]
+webkit.org/b/198830 media/video-trackmenu-selection.html [ Crash Timeout Failure ]
 webkit.org/b/198830 media/video-volume.html [ Pass Crash ]
 webkit.org/b/198830 media/media-controller-time.html [ Pass Crash ]
 webkit.org/b/198830 media/track/track-kind.html [ Pass Crash ]
@@ -2441,7 +2441,7 @@
 webkit.org/b/198830 [ Release ] media/track/track-css-cue-lifetime.html [ Pass Crash ]
 webkit.org/b/198830 [ Release ] media/track/track-css-matching-default.html [ Pass Crash ]
 webkit.org/b/198830 [ Release ] media/track/track-cue-line-position.html [ Pass Crash ]
-webkit.org/b/198830 [ Release ] media/track/track-in-band-metadata-display-order.html [ Pass Crash ]
+webkit.org/b/198830 media/track/track-in-band-metadata-display-order.html [ Pass Crash Failure ]
 webkit.org/b/198830 [ Release ] media/track/track-user-stylesheet.html [ Pass Crash ]
 webkit.org/b/198830 [ Release ] media/video-controls-transformed.html [ Pass Crash ]
 webkit.org/b/198830 [ Release ] media/video-controls-visible-exiting-fullscreen.html [ Pass Crash ]
@@ -3026,8 +3026,8 @@
 webkit.org/b/156109 http/tests/security/contentSecurityPolicy/audio-redirect-blocked.html [ Timeout ]
 webkit.org/b/156109 http/tests/security/contentSecurityPolicy/video-redirect-blocked.html [ Timeout ]
 
-webkit.org/b/158923 webkit.org/b/198830 [ Release ] media/airplay-autoplay.html [ Timeout Crash ]
-webkit.org/b/158923 webkit.org/b/198830 [ Release ] media/airplay-allows-buffering.html [ Timeout Crash ]
+webkit.org/b/158923 webkit.org/b/198830 media/airplay-autoplay.html [ Timeout Crash ]
+webkit.org/b/158923 webkit.org/b/198830 media/airplay-allows-buffering.html [ Timeout Crash ]
 
 webkit.org/b/162017 http/tests/navigation/ping-attribute/anchor-cookie.html [ 

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

2020-03-23 Thread aboya
Title: [258844] trunk/Source/WebCore








Revision 258844
Author ab...@igalia.com
Date 2020-03-23 08:27:38 -0700 (Mon, 23 Mar 2020)


Log Message
[MSE][GStreamer] Clean and explain first sample PTS hack
https://bugs.webkit.org/show_bug.cgi?id=209335

Reviewed by Philippe Normand.

MediaSample::applyPtsOffset() had a rather confusing name, so it has
been changed to something more descriptive of its actual function:
extendToTheBeginning().

Also, its only argument has been removed, as it's always zero.

An explanation of the hack has also been added.

This patch introduces no behavior changes.

* platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::extendToTheBeginning):
(WebCore::MediaSampleGStreamer::applyPtsOffset): Deleted.
* platform/graphics/gstreamer/MediaSampleGStreamer.h:
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkNewSample):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (258843 => 258844)

--- trunk/Source/WebCore/ChangeLog	2020-03-23 15:25:39 UTC (rev 258843)
+++ trunk/Source/WebCore/ChangeLog	2020-03-23 15:27:38 UTC (rev 258844)
@@ -1,3 +1,27 @@
+2020-03-23  Alicia Boya García  
+
+[MSE][GStreamer] Clean and explain first sample PTS hack
+https://bugs.webkit.org/show_bug.cgi?id=209335
+
+Reviewed by Philippe Normand.
+
+MediaSample::applyPtsOffset() had a rather confusing name, so it has
+been changed to something more descriptive of its actual function:
+extendToTheBeginning().
+
+Also, its only argument has been removed, as it's always zero.
+
+An explanation of the hack has also been added.
+
+This patch introduces no behavior changes.
+
+* platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
+(WebCore::MediaSampleGStreamer::extendToTheBeginning):
+(WebCore::MediaSampleGStreamer::applyPtsOffset): Deleted.
+* platform/graphics/gstreamer/MediaSampleGStreamer.h:
+* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+(WebCore::AppendPipeline::appsinkNewSample):
+
 2020-03-23  Zalan Bujtas  
 
 [LFC] Remove unused LayoutAncestorIterator class


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp (258843 => 258844)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp	2020-03-23 15:25:39 UTC (rev 258843)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp	2020-03-23 15:27:38 UTC (rev 258844)
@@ -95,12 +95,13 @@
 return adoptRef(*gstreamerMediaSample);
 }
 
-void MediaSampleGStreamer::applyPtsOffset(MediaTime timestampOffset)
+void MediaSampleGStreamer::extendToTheBeginning()
 {
-if (m_pts > timestampOffset) {
-m_duration = m_duration + (m_pts - timestampOffset);
-m_pts = timestampOffset;
-}
+// Only to be used with the first sample, as a hack for lack of support for edit lists.
+// See AppendPipeline::appsinkNewSample()
+ASSERT(m_dts == MediaTime::zeroTime());
+m_duration += m_pts;
+m_pts = MediaTime::zeroTime();
 }
 
 void MediaSampleGStreamer::offsetTimestampsBy(const MediaTime& timestampOffset)


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h (258843 => 258844)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h	2020-03-23 15:25:39 UTC (rev 258843)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.h	2020-03-23 15:27:38 UTC (rev 258844)
@@ -38,7 +38,7 @@
 
 static Ref createFakeSample(GstCaps*, MediaTime pts, MediaTime dts, MediaTime duration, const FloatSize& presentationSize, const AtomString& trackId);
 
-void applyPtsOffset(MediaTime);
+void extendToTheBeginning();
 MediaTime presentationTime() const override { return m_pts; }
 MediaTime decodeTime() const override { return m_dts; }
 MediaTime duration() const override { return m_duration; }


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (258843 => 258844)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2020-03-23 15:25:39 UTC (rev 258843)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2020-03-23 15:27:38 UTC (rev 258844)
@@ -474,10 +474,23 @@
 return;
 }
 
-// Add a gap sample if a gap is detected before the first sample.
+// Hack, rework when GStreamer >= 1.16 becomes a requirement:
+// We're not applying edit lists. GStreamer < 1.16 doesn't emit the correct segments to do so.
+// GStreamer fix in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/c2a0da8096009f0f99943f78dc18066965be60f9
+// 

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

2020-02-26 Thread aboya
Title: [257468] trunk/Source/WebCore








Revision 257468
Author ab...@igalia.com
Date 2020-02-26 06:45:29 -0800 (Wed, 26 Feb 2020)


Log Message
[GStreamer] Correctly remove webvttenc on WebKitTextCombiner pad release
https://bugs.webkit.org/show_bug.cgi?id=208234

Reviewed by Xabier Rodriguez-Calvar.

The implementation of webkitTextCombinerReleasePad() was wrong in that
it was checking the peer pad of webkittextcombinerpad to check if it
belonged a webvttenc element and remove it... But since this is a
ghostpad, the peer is upstream, not downstream. When the release pad
function is called, upstream is already disconnected, so the branch
was never hit.

To actually remove the webvttenc element we must check the target pad
instead of the peer pad, which corresponds to the element downstream.
Also, we need to set the element state to NULL before removing it,
which the previous code didn't.

* platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkitTextCombinerReleasePad):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (257467 => 257468)

--- trunk/Source/WebCore/ChangeLog	2020-02-26 14:12:35 UTC (rev 257467)
+++ trunk/Source/WebCore/ChangeLog	2020-02-26 14:45:29 UTC (rev 257468)
@@ -1,3 +1,25 @@
+2020-02-26  Alicia Boya García  
+
+[GStreamer] Correctly remove webvttenc on WebKitTextCombiner pad release
+https://bugs.webkit.org/show_bug.cgi?id=208234
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+The implementation of webkitTextCombinerReleasePad() was wrong in that
+it was checking the peer pad of webkittextcombinerpad to check if it
+belonged a webvttenc element and remove it... But since this is a
+ghostpad, the peer is upstream, not downstream. When the release pad
+function is called, upstream is already disconnected, so the branch
+was never hit.
+
+To actually remove the webvttenc element we must check the target pad
+instead of the peer pad, which corresponds to the element downstream.
+Also, we need to set the element state to NULL before removing it,
+which the previous code didn't.
+
+* platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
+(webkitTextCombinerReleasePad):
+
 2020-02-26  Antti Koivisto  
 
 Remove throttling code from RenderLayerCompositor


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp (257467 => 257468)

--- trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp	2020-02-26 14:12:35 UTC (rev 257467)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp	2020-02-26 14:45:29 UTC (rev 257468)
@@ -243,11 +243,13 @@
 WebKitTextCombiner* combiner = WEBKIT_TEXT_COMBINER(element);
 WebKitTextCombinerPad* combinerPad = WEBKIT_TEXT_COMBINER_PAD(pad);
 
-if (GRefPtr peer = adoptGRef(gst_pad_get_peer(pad))) {
-GRefPtr parent = adoptGRef(gst_pad_get_parent_element(peer.get()));
+if (GRefPtr target = adoptGRef(gst_ghost_pad_get_target(GST_GHOST_PAD(pad {
+GRefPtr parent = adoptGRef(gst_pad_get_parent_element(target.get()));
 ASSERT(parent);
-if (G_TYPE_FROM_INSTANCE(parent.get()) == webVTTEncType)
+if (G_TYPE_FROM_INSTANCE(parent.get()) == webVTTEncType) {
+gst_element_set_state(parent.get(), GST_STATE_NULL);
 gst_bin_remove(GST_BIN(combiner), parent.get());
+}
 }
 
 gst_element_release_request_pad(combiner->funnel, combinerPad->funnelPad);






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


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

2020-02-20 Thread aboya
Title: [257090] trunk/Source/WebCore








Revision 257090
Author ab...@igalia.com
Date 2020-02-20 14:31:18 -0800 (Thu, 20 Feb 2020)


Log Message
[GStreamer] Fix race in TextCombinerGStreamer
https://bugs.webkit.org/show_bug.cgi?id=208001

Reviewed by Xabier Rodriguez-Calvar.

TextCombinerGStreamer uses the CAPS event to determine whether adding
a webvttenc between the text track pad and the funnel element used to
be able to display several subtitles at the same time.

The way this was done previously had a race though: all text track
pads were preemptively linked directly to the funnel, only adding the
webvttenc element later in the middle when receiving the CAPS event.

When two or more text tracks were present, it wasn't infrequent that
one track had its CAPS event processed (causing the webvttenc element
to be added) and propagated (fixating the funnel caps) before another
track attempted caps negotiation. Because the pads were connected to
the funnel preemptively, and because without the webvttenc element the
caps of the text pad don't match the funnel's, this causes a caps
mismatch error, stopping playback completely. The CAPS event is
therefore never sent.

To avoid this race, we must avoid linking elements until we get the
CAPS events, when we actually know where we should link them to,
therefore avoiding early caps negotiation errors.

* platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkitTextCombinerPadDispose):
(webkitTextCombinerPadEvent):
(webkitTextCombinerRequestNewPad):
(webkitTextCombinerReleasePad):
(webkit_text_combiner_class_init):
(webkitTextCombinerPadFinalize): Deleted.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (257089 => 257090)

--- trunk/Source/WebCore/ChangeLog	2020-02-20 22:23:34 UTC (rev 257089)
+++ trunk/Source/WebCore/ChangeLog	2020-02-20 22:31:18 UTC (rev 257090)
@@ -1,3 +1,39 @@
+2020-02-20  Alicia Boya García  
+
+[GStreamer] Fix race in TextCombinerGStreamer
+https://bugs.webkit.org/show_bug.cgi?id=208001
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+TextCombinerGStreamer uses the CAPS event to determine whether adding
+a webvttenc between the text track pad and the funnel element used to
+be able to display several subtitles at the same time.
+
+The way this was done previously had a race though: all text track
+pads were preemptively linked directly to the funnel, only adding the
+webvttenc element later in the middle when receiving the CAPS event.
+
+When two or more text tracks were present, it wasn't infrequent that
+one track had its CAPS event processed (causing the webvttenc element
+to be added) and propagated (fixating the funnel caps) before another
+track attempted caps negotiation. Because the pads were connected to
+the funnel preemptively, and because without the webvttenc element the
+caps of the text pad don't match the funnel's, this causes a caps
+mismatch error, stopping playback completely. The CAPS event is
+therefore never sent.
+
+To avoid this race, we must avoid linking elements until we get the
+CAPS events, when we actually know where we should link them to,
+therefore avoiding early caps negotiation errors.
+
+* platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
+(webkitTextCombinerPadDispose):
+(webkitTextCombinerPadEvent):
+(webkitTextCombinerRequestNewPad):
+(webkitTextCombinerReleasePad):
+(webkit_text_combiner_class_init):
+(webkitTextCombinerPadFinalize): Deleted.
+
 2020-02-20  Zalan Bujtas  
 
 [First paint] Let's check visually-non-empty state in FrameView::styleAndRenderTreeDidChange


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp (257089 => 257090)

--- trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp	2020-02-20 22:23:34 UTC (rev 257089)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp	2020-02-20 22:31:18 UTC (rev 257090)
@@ -66,6 +66,7 @@
 GstGhostPad parent;
 
 GstTagList* tags;
+GstPad* funnelPad;
 };
 
 struct _WebKitTextCombinerPadClass {
@@ -74,6 +75,8 @@
 
 G_DEFINE_TYPE(WebKitTextCombinerPad, webkit_text_combiner_pad, GST_TYPE_GHOST_PAD);
 
+static GType webVTTEncType;
+
 static gboolean webkitTextCombinerPadEvent(GstPad*, GstObject* parent, GstEvent*);
 
 static void webkit_text_combiner_init(WebKitTextCombiner* combiner)
@@ -97,12 +100,12 @@
 gst_pad_set_event_function(GST_PAD(pad), webkitTextCombinerPadEvent);
 }
 
-static void webkitTextCombinerPadFinalize(GObject* object)
+static void webkitTextCombinerPadDispose(GObject* object)
 {
-WebKitTextCombinerPad* pad = WEBKIT_TEXT_COMBINER_PAD(object);
-if (pad->tags)
-

[webkit-changes] [254670] trunk

2020-01-16 Thread aboya
Title: [254670] trunk








Revision 254670
Author ab...@igalia.com
Date 2020-01-16 02:43:19 -0800 (Thu, 16 Jan 2020)


Log Message
[MSE] Don't enqueue samples that start at a big discontinuity
https://bugs.webkit.org/show_bug.cgi?id=201323

Source/WebCore:

With the old logic SourceBuffer was enqueueing the first frame to be
appended in any circumstances. This was a bug because the user could
append first [5, 10) and then [0, 5). With the old behavior [5, 10)
would be enqueued first despite being clearly ahead of the initial
playback time (zero). By the time [0, 5) is enqueued it can't be
enqueued anymore because the decodeQueue is already ahead.

This patch fixes that logic to work when the first segments are
appended unordered. The test media-source-first-append-not-starting-at-zero.html
validates it.

The test media-source-append-presentation-durations.html checks the
new logic does not break in presence of presentation duration !=
decode duration.

As part of the same logic block, the lastEnqueuedPresentationTime was
used to decide when it's necessary to perform reenqueue after an
.erase() (it is necessary if any enqueued frames are replaced). Using
lastEnqueuedPresentationTime was not entirely accurate in presence of
B-frames, as you could erase a frame that has a presentation time
higher than the last enqueued one. That logic is replaced with a
monotonicly increasing highestEnqueuedPresentationTime and is tested
by media-source-remove-b-frame.html.

Reviewed by Xabier Rodriguez-Calvar.

Tests: media/media-source/media-source-append-presentation-durations.html
   media/media-source/media-source-first-append-not-starting-at-zero.html
   media/media-source/media-source-remove-b-frame.html

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::TrackBuffer::TrackBuffer):
(WebCore::SourceBuffer::removeCodedFrames):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::provideMediaData):
(WebCore::SourceBuffer::reenqueueMediaForTime):
(WebCore::SourceBuffer::TrackBuffer::lastEnqueuedDecodeDuration): Deleted.

LayoutTests:

Reviewed by Xabier Rodriguez-Calvar.

* media/media-source/media-source-append-presentation-durations.html: Added.
* media/media-source/media-source-first-append-not-starting-at-zero.html: Added.
* media/media-source/media-source-remove-b-frame.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp


Added Paths

trunk/LayoutTests/media/media-source/media-source-append-presentation-durations-expected.txt
trunk/LayoutTests/media/media-source/media-source-append-presentation-durations.html
trunk/LayoutTests/media/media-source/media-source-first-append-not-starting-at-zero-expected.txt
trunk/LayoutTests/media/media-source/media-source-first-append-not-starting-at-zero.html
trunk/LayoutTests/media/media-source/media-source-remove-b-frame-expected.txt
trunk/LayoutTests/media/media-source/media-source-remove-b-frame.html




Diff

Modified: trunk/LayoutTests/ChangeLog (254669 => 254670)

--- trunk/LayoutTests/ChangeLog	2020-01-16 10:32:35 UTC (rev 254669)
+++ trunk/LayoutTests/ChangeLog	2020-01-16 10:43:19 UTC (rev 254670)
@@ -1,3 +1,14 @@
+2020-01-16  Alicia Boya García  
+
+[MSE] Don't enqueue samples that start at a big discontinuity
+https://bugs.webkit.org/show_bug.cgi?id=201323
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+* media/media-source/media-source-append-presentation-durations.html: Added.
+* media/media-source/media-source-first-append-not-starting-at-zero.html: Added.
+* media/media-source/media-source-remove-b-frame.html: Added.
+
 2020-01-15  Lauro Moura  
 
 [GTK] Gardening tests using language override


Added: trunk/LayoutTests/media/media-source/media-source-append-presentation-durations-expected.txt (0 => 254670)

--- trunk/LayoutTests/media/media-source/media-source-append-presentation-durations-expected.txt	(rev 0)
+++ trunk/LayoutTests/media/media-source/media-source-append-presentation-durations-expected.txt	2020-01-16 10:43:19 UTC (rev 254670)
@@ -0,0 +1,24 @@
+
+EXPECTED (source.readyState == 'closed') OK
+EVENT(sourceopen)
+RUN(sourceBuffer = source.addSourceBuffer("video/mock; codecs=mock"))
+RUN(sourceBuffer.appendBuffer(initSegment))
+EVENT(updateend)
+RUN(sourceBuffer.appendBuffer(doubleIbpSampleRun()))
+EVENT(updateend)
+Buffered:
+{PTS({0/10 = 0.00}), DTS({0/10 = 0.00}), duration({5/10 = 0.50}), flags(1), generation(0)}
+{PTS({20/10 = 2.00}), DTS({5/10 = 0.50}), duration({5/10 = 0.50}), flags(0), generation(0)}
+{PTS({10/10 = 1.00}), DTS({10/10 = 1.00}), duration({20/10 = 2.00}), flags(0), generation(0)}
+{PTS({30/10 = 3.00}), DTS({30/10 = 3.00}), duration({5/10 = 0.50}), flags(1), generation(0)}
+{PTS({50/10 = 5.00}), DTS({35/10 = 3.50}), duration({5/10 = 0.50}), flags(0), 

[webkit-changes] [254563] trunk/Tools

2020-01-15 Thread aboya
Title: [254563] trunk/Tools








Revision 254563
Author ab...@igalia.com
Date 2020-01-15 03:45:50 -0800 (Wed, 15 Jan 2020)


Log Message
[WTF] Remove MediaTime.cpp test warning in GCC
https://bugs.webkit.org/show_bug.cgi?id=206238

Reviewed by Xabier Rodriguez-Calvar.

GCC emits warnings when it finds clang pragmas, so I'm wrapping them
in #if COMPILER(CLANG) to reduce the noise.

* TestWebKitAPI/Tests/WTF/MediaTime.cpp:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp




Diff

Modified: trunk/Tools/ChangeLog (254562 => 254563)

--- trunk/Tools/ChangeLog	2020-01-15 11:30:52 UTC (rev 254562)
+++ trunk/Tools/ChangeLog	2020-01-15 11:45:50 UTC (rev 254563)
@@ -1,3 +1,15 @@
+2020-01-15  Alicia Boya García  
+
+[WTF] Remove MediaTime.cpp test warning in GCC
+https://bugs.webkit.org/show_bug.cgi?id=206238
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+GCC emits warnings when it finds clang pragmas, so I'm wrapping them
+in #if COMPILER(CLANG) to reduce the noise.
+
+* TestWebKitAPI/Tests/WTF/MediaTime.cpp:
+
 2020-01-14  Commit Queue  
 
 Unreviewed, rolling out r254480, r254496, and r254517.


Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp (254562 => 254563)

--- trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp	2020-01-15 11:30:52 UTC (rev 254562)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp	2020-01-15 11:45:50 UTC (rev 254563)
@@ -58,10 +58,14 @@
 
 // MediaTime values should be able to be declared static anywhere, just like you can do so with integers.
 // This should not require global constructors or destructors.
+#if COMPILER(CLANG)
 #pragma clang diagnostic push
 #pragma clang diagnostic error "-Wglobal-constructors"
+#endif
 static const MediaTime oneSecond(1, 1);
+#if COMPILER(CLANG)
 #pragma clang diagnostic pop
+#endif
 
 TEST(WTF, MediaTime)
 {






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


[webkit-changes] [254509] trunk

2020-01-14 Thread aboya
Title: [254509] trunk








Revision 254509
Author ab...@igalia.com
Date 2020-01-14 07:22:20 -0800 (Tue, 14 Jan 2020)


Log Message
[WTF] Make MediaTime constructor constexpr
https://bugs.webkit.org/show_bug.cgi?id=206036

Reviewed by Adrian Perez de Castro.

Source/WTF:

https://bugs.webkit.org/show_bug.cgi?id=205723 allowed to declare
MediaTime variables as static inside functions without needing a
global destructor.

It did not eliminate the call to the MediaTime constructor on runtime
though. This wasn't a problem for static variables inside functions,
as the compiler adds a guard variable to call the constructor the
first time the function is called.

On the other hand, for variables defined outside of the scope of the
function, for them to be initialized the MediaTime constructor would
have to be called at runtime from a global constructor, something
we're trying to avoid and which generates an error in clang.

But again, MediaTime is a simple class with only integral values, we
shouldn't need a runtime function call to initialize it!

This patch makes the MediaTime constructor constexpr so that we don't
need runtime initialization for static MediaTime variables. This
allows us to declare them outside functions and enables the compiler
to generate code without guard variables when static MediaTime
variables are declared inside functions.

A test has been added accessing a global const static MediaTime. The
build should not produce any error stating the need for a global
constructor.

* wtf/MediaTime.cpp:
* wtf/MediaTime.h:
(WTF::MediaTime::MediaTime):

Tools:

Added test for global static MediaTime constants.

* TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(TestWebKitAPI::TEST):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/MediaTime.cpp
trunk/Source/WTF/wtf/MediaTime.h
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp




Diff

Modified: trunk/Source/WTF/ChangeLog (254508 => 254509)

--- trunk/Source/WTF/ChangeLog	2020-01-14 14:51:56 UTC (rev 254508)
+++ trunk/Source/WTF/ChangeLog	2020-01-14 15:22:20 UTC (rev 254509)
@@ -1,3 +1,41 @@
+2020-01-14  Alicia Boya García  
+
+[WTF] Make MediaTime constructor constexpr
+https://bugs.webkit.org/show_bug.cgi?id=206036
+
+Reviewed by Adrian Perez de Castro.
+
+https://bugs.webkit.org/show_bug.cgi?id=205723 allowed to declare
+MediaTime variables as static inside functions without needing a
+global destructor.
+
+It did not eliminate the call to the MediaTime constructor on runtime
+though. This wasn't a problem for static variables inside functions,
+as the compiler adds a guard variable to call the constructor the
+first time the function is called.
+
+On the other hand, for variables defined outside of the scope of the
+function, for them to be initialized the MediaTime constructor would
+have to be called at runtime from a global constructor, something
+we're trying to avoid and which generates an error in clang.
+
+But again, MediaTime is a simple class with only integral values, we
+shouldn't need a runtime function call to initialize it!
+
+This patch makes the MediaTime constructor constexpr so that we don't
+need runtime initialization for static MediaTime variables. This
+allows us to declare them outside functions and enables the compiler
+to generate code without guard variables when static MediaTime
+variables are declared inside functions.
+
+A test has been added accessing a global const static MediaTime. The
+build should not produce any error stating the need for a global
+constructor.
+
+* wtf/MediaTime.cpp:
+* wtf/MediaTime.h:
+(WTF::MediaTime::MediaTime):
+
 2020-01-14  David Kilzer  
 
 Enable -Wconditional-uninitialized in bmalloc, WTF, _javascript_Core


Modified: trunk/Source/WTF/wtf/MediaTime.cpp (254508 => 254509)

--- trunk/Source/WTF/wtf/MediaTime.cpp	2020-01-14 14:51:56 UTC (rev 254508)
+++ trunk/Source/WTF/wtf/MediaTime.cpp	2020-01-14 15:22:20 UTC (rev 254509)
@@ -72,24 +72,6 @@
 
 const uint32_t MediaTime::MaximumTimeScale = 10;
 
-MediaTime::MediaTime()
-: m_timeValue(0)
-, m_timeScale(DefaultTimeScale)
-, m_timeFlags(Valid)
-{
-}
-
-MediaTime::MediaTime(int64_t value, uint32_t scale, uint8_t flags)
-: m_timeValue(value)
-, m_timeScale(scale)
-, m_timeFlags(flags)
-{
-if (scale || isInvalid())
-return;
-
-*this = value < 0 ? negativeInfiniteTime() : positiveInfiniteTime();
-}
-
 MediaTime::MediaTime(const MediaTime& rhs)
 {
 *this = rhs;


Modified: trunk/Source/WTF/wtf/MediaTime.h (254508 => 254509)

--- trunk/Source/WTF/wtf/MediaTime.h	2020-01-14 14:51:56 UTC (rev 254508)
+++ trunk/Source/WTF/wtf/MediaTime.h	2020-01-14 15:22:20 UTC (rev 254509)
@@ -53,8 +53,8 @@
 DoubleValue = 1 << 5,
 };
 
-

[webkit-changes] [254200] trunk/Source

2020-01-08 Thread aboya
Title: [254200] trunk/Source








Revision 254200
Author ab...@igalia.com
Date 2020-01-08 07:57:03 -0800 (Wed, 08 Jan 2020)


Log Message
[WTF] Allow MediaTime static constants
https://bugs.webkit.org/show_bug.cgi?id=205723

Reviewed by Darin Adler.

Source/WebCore:

Since MediaTime no longer has a non-trivial destructor, declaring
MediaTime variables no longer has potential side effects as far as the
compiler is concerned and it can therefore print "unused variable"
errors where that is the case.

This patch marks one of such variable as intentionally unused, since
it's only used in Debug and would otherwise break the Release build.
Actually unused variables are also removed.

* platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::imageForTime):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::removeCodedFrames):

Source/WTF:

Despite all its convenience methods, at its core MediaTime is a rather
trivial class with only integral members. Despite this, since it had a
destructor declared, this made the class non-trivially destructible
even if the implementation was empty, and therefore clang did not
allow to use it for static variables unless done in form of a pointer.

By removing the destructor this restriction is lifted and we don't
need heap allocations for static MediaTime objects.

Previous usages of heap allocation for static MediaTime objects have
been rewritten to take advantage of this. Test coverage is provided by
successful compilation without [-Werror,-Wexit-time-destructors]
errors and existing tests.

* wtf/MediaTime.cpp:
(WTF::MediaTime::zeroTime):
(WTF::MediaTime::invalidTime):
(WTF::MediaTime::positiveInfiniteTime):
(WTF::MediaTime::negativeInfiniteTime):
(WTF::MediaTime::indefiniteTime):
(WTF::MediaTime::~MediaTime): Deleted.
* wtf/MediaTime.h:

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/MediaTime.cpp
trunk/Source/WTF/wtf/MediaTime.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp
trunk/Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.mm




Diff

Modified: trunk/Source/WTF/ChangeLog (254199 => 254200)

--- trunk/Source/WTF/ChangeLog	2020-01-08 15:13:53 UTC (rev 254199)
+++ trunk/Source/WTF/ChangeLog	2020-01-08 15:57:03 UTC (rev 254200)
@@ -1,3 +1,33 @@
+2020-01-08  Alicia Boya García  
+
+[WTF] Allow MediaTime static constants
+https://bugs.webkit.org/show_bug.cgi?id=205723
+
+Reviewed by Darin Adler.
+
+Despite all its convenience methods, at its core MediaTime is a rather
+trivial class with only integral members. Despite this, since it had a
+destructor declared, this made the class non-trivially destructible
+even if the implementation was empty, and therefore clang did not
+allow to use it for static variables unless done in form of a pointer.
+
+By removing the destructor this restriction is lifted and we don't
+need heap allocations for static MediaTime objects.
+
+Previous usages of heap allocation for static MediaTime objects have
+been rewritten to take advantage of this. Test coverage is provided by
+successful compilation without [-Werror,-Wexit-time-destructors]
+errors and existing tests.
+
+* wtf/MediaTime.cpp:
+(WTF::MediaTime::zeroTime):
+(WTF::MediaTime::invalidTime):
+(WTF::MediaTime::positiveInfiniteTime):
+(WTF::MediaTime::negativeInfiniteTime):
+(WTF::MediaTime::indefiniteTime):
+(WTF::MediaTime::~MediaTime): Deleted.
+* wtf/MediaTime.h:
+
 2020-01-07  Said Abou-Hallawa  
 
 Implement css3-images image-orientation


Modified: trunk/Source/WTF/wtf/MediaTime.cpp (254199 => 254200)

--- trunk/Source/WTF/wtf/MediaTime.cpp	2020-01-08 15:13:53 UTC (rev 254199)
+++ trunk/Source/WTF/wtf/MediaTime.cpp	2020-01-08 15:57:03 UTC (rev 254200)
@@ -41,6 +41,8 @@
 
 namespace WTF {
 
+static_assert(std::is_trivially_destructible_v, "MediaTime should be trivially destructible.");
+
 static uint32_t greatestCommonDivisor(uint32_t a, uint32_t b)
 {
 ASSERT(a);
@@ -88,10 +90,6 @@
 *this = value < 0 ? negativeInfiniteTime() : positiveInfiniteTime();
 }
 
-MediaTime::~MediaTime()
-{
-}
-
 MediaTime::MediaTime(const MediaTime& rhs)
 {
 *this = rhs;
@@ -457,32 +455,32 @@
 
 const MediaTime& MediaTime::zeroTime()
 {
-static const MediaTime* time = new MediaTime(0, 1, Valid);
-return *time;
+static const MediaTime time(0, 1, Valid);
+return time;
 }
 
 const MediaTime& MediaTime::invalidTime()
 {
-static const MediaTime* time = new MediaTime(-1, 1, 0);
-return *time;
+static const MediaTime time(-1, 1, 0);
+return time;
 }
 
 const MediaTime& MediaTime::positiveInfiniteTime()
 {
-static const MediaTime* time = new 

[webkit-changes] [254013] trunk/LayoutTests/imported/w3c

2020-01-03 Thread aboya
Title: [254013] trunk/LayoutTests/imported/w3c








Revision 254013
Author ab...@igalia.com
Date 2020-01-03 14:16:05 -0800 (Fri, 03 Jan 2020)


Log Message
Unreviewed, add missing expectation file.
https://bugs.webkit.org/show_bug.cgi?id=205728


* web-platform-tests/media-source/mediasource-h264-play-starved-expected.txt: Added.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-h264-play-starved-expected.txt




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (254012 => 254013)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-01-03 21:54:05 UTC (rev 254012)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-01-03 22:16:05 UTC (rev 254013)
@@ -1,3 +1,10 @@
+2020-01-03  Alicia Boya García  
+
+Unreviewed, add missing expectation file.
+https://bugs.webkit.org/show_bug.cgi?id=205728
+
+* web-platform-tests/media-source/mediasource-h264-play-starved-expected.txt: Added.
+
 2020-01-03  Chris Dumez  
 
 Align XPathEvaluator.createNSResolver() / XPathResult.snapshotItem() with the specification


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-h264-play-starved-expected.txt (0 => 254013)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-h264-play-starved-expected.txt	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-h264-play-starved-expected.txt	2020-01-03 22:16:05 UTC (rev 254013)
@@ -0,0 +1,3 @@
+
+PASS Enough frames are played when the decoder is starved. 
+






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


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

2019-10-24 Thread aboya
Title: [251544] trunk/Source/WebCore








Revision 251544
Author ab...@igalia.com
Date 2019-10-24 09:39:56 -0700 (Thu, 24 Oct 2019)


Log Message
[MSE][GStreamer] Reintroduce ensureGLVideoSinkContext() fix
https://bugs.webkit.org/show_bug.cgi?id=201401

Reviewed by Philippe Normand.

That patch was almost mechanically reverted temporarily along the rest
of the WebKitMediaSrc rework. In theory that should have been OK since
it was supposed to fix a regression of that patch... But actually
the bug was already causing problems before, the WebKitMediaSrc rework
just exposed a more common case.

It has been reported that the same bug arises when adding some CSS
styles to the  element, and the patch fixes the issue.

And the patch actually makes sense in any case... since without it
some perfectly valid state transitions are not covered!

So I'm reintroducing it.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (251543 => 251544)

--- trunk/Source/WebCore/ChangeLog	2019-10-24 16:35:08 UTC (rev 251543)
+++ trunk/Source/WebCore/ChangeLog	2019-10-24 16:39:56 UTC (rev 251544)
@@ -1,3 +1,27 @@
+2019-10-24  Alicia Boya García  
+
+[MSE][GStreamer] Reintroduce ensureGLVideoSinkContext() fix
+https://bugs.webkit.org/show_bug.cgi?id=201401
+
+Reviewed by Philippe Normand.
+
+That patch was almost mechanically reverted temporarily along the rest
+of the WebKitMediaSrc rework. In theory that should have been OK since
+it was supposed to fix a regression of that patch... But actually
+the bug was already causing problems before, the WebKitMediaSrc rework
+just exposed a more common case.
+
+It has been reported that the same bug arises when adding some CSS
+styles to the  element, and the patch fixes the issue.
+
+And the patch actually makes sense in any case... since without it
+some perfectly valid state transitions are not covered!
+
+So I'm reintroducing it.
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
+
 2019-10-24  Antoine Quint  
 
 [Web Animations] Only process CSS properties affected by a given CSS transition


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (251543 => 251544)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2019-10-24 16:35:08 UTC (rev 251543)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2019-10-24 16:39:56 UTC (rev 251544)
@@ -413,7 +413,7 @@
 gst_element_state_get_name(currentState), gst_element_state_get_name(pending));
 
 #if USE(GSTREAMER_GL)
-if (currentState == GST_STATE_READY && newState == GST_STATE_PAUSED)
+if (currentState <= GST_STATE_READY && newState >= GST_STATE_PAUSED)
 ensureGLVideoSinkContext();
 #endif
 






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


[webkit-changes] [251125] trunk/Tools

2019-10-15 Thread aboya
Title: [251125] trunk/Tools








Revision 251125
Author ab...@igalia.com
Date 2019-10-15 01:43:19 -0700 (Tue, 15 Oct 2019)


Log Message
gdb webkit.py: Fix iterator error in Python3
https://bugs.webkit.org/show_bug.cgi?id=202926

Reviewed by Jonathan Bedard.

Some distros use Python3 for gdb, so the script needs to be compatible with both versions for it to work.

* gdb/webkit.py:
(WTFVectorPrinter.Iterator.__next__):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/gdb/webkit.py




Diff

Modified: trunk/Tools/ChangeLog (251124 => 251125)

--- trunk/Tools/ChangeLog	2019-10-15 06:59:46 UTC (rev 251124)
+++ trunk/Tools/ChangeLog	2019-10-15 08:43:19 UTC (rev 251125)
@@ -1,3 +1,15 @@
+2019-10-15  Alicia Boya García  
+
+gdb webkit.py: Fix iterator error in Python3
+https://bugs.webkit.org/show_bug.cgi?id=202926
+
+Reviewed by Jonathan Bedard.
+
+Some distros use Python3 for gdb, so the script needs to be compatible with both versions for it to work.
+
+* gdb/webkit.py:
+(WTFVectorPrinter.Iterator.__next__):
+
 2019-10-14  Zhifei FANG  
 
 results.webkit.org: TypeError when evaluating empty commits


Modified: trunk/Tools/gdb/webkit.py (251124 => 251125)

--- trunk/Tools/gdb/webkit.py	2019-10-15 06:59:46 UTC (rev 251124)
+++ trunk/Tools/gdb/webkit.py	2019-10-15 08:43:19 UTC (rev 251125)
@@ -277,6 +277,9 @@
 self.item += 1
 return ('[%d]' % count, element)
 
+def __next__(self):
+return self.next()
+
 def __init__(self, val):
 self.val = val
 






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


[webkit-changes] [250922] trunk

2019-10-09 Thread aboya
Title: [250922] trunk








Revision 250922
Author ab...@igalia.com
Date 2019-10-09 12:40:05 -0700 (Wed, 09 Oct 2019)


Log Message
[MSE][GStreamer] Fix video sometimes not appearing
https://bugs.webkit.org/show_bug.cgi?id=201401

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

Added a test that reproduces the sequence of operations that was
causing the video to not appear in WebKitGTK and checks that this time
there is visible output.

* web-platform-tests/lint.whitelist:
* web-platform-tests/media-source/mediasource-video-is-visible-expected.html: Added.
* web-platform-tests/media-source/mediasource-video-is-visible.html: Added.
* web-platform-tests/media-source/mp4/test-a-1s.mp4: Added.
* web-platform-tests/media-source/mp4/test-a-1s.mp4-manifest.json: Added.
* web-platform-tests/media-source/mp4/test-v-1s-blue.mp4: Added.
* web-platform-tests/media-source/mp4/test-v-1s-blue.mp4-manifest.json: Added.
* web-platform-tests/media-source/webm/test-a-1s.webm: Added.
* web-platform-tests/media-source/webm/test-a-1s.webm-manifest.json: Added.
* web-platform-tests/media-source/webm/test-v-1s-blue.webm: Added.
* web-platform-tests/media-source/webm/test-v-1s-blue.webm-manifest.json: Added.

Source/WebCore:

The code in MediaPlayerPrivateGStreamer::changePipelineState() was
supposed to call `ensureGLVideoSinkContext()` on upwards transitions
to PAUSED but the code did not take into account non-step-by-step
state transitions, which happens frequently with playbin3 in the MSE
case.

Before the patch, when playbin3 transitioned from READY to PLAYING
without stopping for preroll this call would not be made and the
texture IDs received at the sink would not correspond to the
compositor GL context, leading to artifacts (often the player controls
or a blank screen).

Test: imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):

LayoutTests:

Added an exact expectation picture to avoid errors in the test runner
(only a fuzzy match is expected, and different platforms render video
with slightly different colors).

* platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible-expected.html: Added.
* platform/mac/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/imported/w3c/ChangeLog
trunk/LayoutTests/imported/w3c/web-platform-tests/lint.whitelist
trunk/LayoutTests/platform/mac/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible-expected.html
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible.html
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mp4/test-a-1s.mp4
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mp4/test-a-1s.mp4-manifest.json
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mp4/test-v-1s-blue.mp4
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mp4/test-v-1s-blue.mp4-manifest.json
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/webm/test-a-1s.webm
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/webm/test-a-1s.webm-manifest.json
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/webm/test-v-1s-blue.webm
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/webm/test-v-1s-blue.webm-manifest.json
trunk/LayoutTests/platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible-expected.html




Diff

Modified: trunk/LayoutTests/ChangeLog (250921 => 250922)

--- trunk/LayoutTests/ChangeLog	2019-10-09 19:27:47 UTC (rev 250921)
+++ trunk/LayoutTests/ChangeLog	2019-10-09 19:40:05 UTC (rev 250922)
@@ -1,3 +1,17 @@
+2019-10-09  Alicia Boya García  
+
+[MSE][GStreamer] Fix video sometimes not appearing
+https://bugs.webkit.org/show_bug.cgi?id=201401
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Added an exact expectation picture to avoid errors in the test runner
+(only a fuzzy match is expected, and different platforms render video
+with slightly different colors).
+
+* platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible-expected.html: Added.
+* platform/mac/TestExpectations:
+
 2019-10-09  Dean Jackson  
 
 REGRESSION (r250755): fast/events/ios/ipad/fast-click-not-always.html is Failing


Modified: trunk/LayoutTests/imported/w3c/ChangeLog (250921 => 250922)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2019-10-09 19:27:47 UTC (rev 250921)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2019-10-09 19:40:05 UTC (rev 250922)
@@ -1,3 +1,26 @@
+2019-10-09  Alicia Boya García  
+
+[MSE][GStreamer] Fix video sometimes not appearing
+

[webkit-changes] [250920] trunk/LayoutTests

2019-10-09 Thread aboya
Title: [250920] trunk/LayoutTests








Revision 250920
Author ab...@igalia.com
Date 2019-10-09 12:23:29 -0700 (Wed, 09 Oct 2019)


Log Message
Unreviewed minor WinCairo test gardening
https://bugs.webkit.org/show_bug.cgi?id=187762


* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/win/TestExpectations
trunk/LayoutTests/platform/wincairo/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (250919 => 250920)

--- trunk/LayoutTests/ChangeLog	2019-10-09 18:40:30 UTC (rev 250919)
+++ trunk/LayoutTests/ChangeLog	2019-10-09 19:23:29 UTC (rev 250920)
@@ -1,3 +1,11 @@
+2019-10-09  Alicia Boya García  
+
+Unreviewed minor WinCairo test gardening
+https://bugs.webkit.org/show_bug.cgi?id=187762
+
+* platform/win/TestExpectations:
+* platform/wincairo/TestExpectations:
+
 2019-10-09  Eric Carlson  
 
 [ Mac WK2 ] Layout Test fast/mediastream/MediaStreamTrack-getSettings.html is a flaky failure


Modified: trunk/LayoutTests/platform/win/TestExpectations (250919 => 250920)

--- trunk/LayoutTests/platform/win/TestExpectations	2019-10-09 18:40:30 UTC (rev 250919)
+++ trunk/LayoutTests/platform/win/TestExpectations	2019-10-09 19:23:29 UTC (rev 250920)
@@ -4038,7 +4038,6 @@
 webkit.org/b/184133 transitions/opacity-transition-zindex.html [ Skip ]
 webkit.org/b/184133 legacy-animation-engine/transitions/opacity-transition-zindex.html [ Skip ]
 
-webkit.org/b/187762 http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party.html [ Pass ]
 webkit.org/b/187762 http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html [ Pass Failure ]
 
 webkit.org/b/184482 legacy-animation-engine/compositing/animation/animation-backing.html [ Failure ]


Modified: trunk/LayoutTests/platform/wincairo/TestExpectations (250919 => 250920)

--- trunk/LayoutTests/platform/wincairo/TestExpectations	2019-10-09 18:40:30 UTC (rev 250919)
+++ trunk/LayoutTests/platform/wincairo/TestExpectations	2019-10-09 19:23:29 UTC (rev 250920)
@@ -977,7 +977,6 @@
 http/tests/websocket/tests/hybi/secure-cookie-insecure-connection.pl [ Pass Failure ]
 http/tests/websocket/tests/hybi/secure-cookie-secure-connection.pl [ Pass Failure ]
 http/tests/websocket/tests/hybi/upgrade-simple-ws.html [ Pass Failure ]
-http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party.html [ Pass Failure ]
 http/tests/websocket/tests/hybi/websocket-blocked-from-setting-cookie-as-third-party.html [ Pass Failure ]
 http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html [ Pass Failure ]
 http/tests/websocket/tests/hybi/workers/worker-reload.html [ Timeout Pass ]






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


[webkit-changes] [250911] trunk/LayoutTests

2019-10-09 Thread aboya
Title: [250911] trunk/LayoutTests








Revision 250911
Author ab...@igalia.com
Date 2019-10-09 07:23:08 -0700 (Wed, 09 Oct 2019)


Log Message
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=202751


* TestExpectations:
* platform/gtk/TestExpectations:
* platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt: Added.
* platform/gtk/accessibility/roles-exposed-expected.txt:
* platform/gtk/fast/tokenizer/script_extra_close-expected.txt:
* platform/wpe/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt
trunk/LayoutTests/platform/gtk/fast/tokenizer/script_extra_close-expected.txt
trunk/LayoutTests/platform/wpe/TestExpectations


Added Paths

trunk/LayoutTests/platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (250910 => 250911)

--- trunk/LayoutTests/ChangeLog	2019-10-09 14:07:21 UTC (rev 250910)
+++ trunk/LayoutTests/ChangeLog	2019-10-09 14:23:08 UTC (rev 250911)
@@ -1,3 +1,15 @@
+2019-10-09  Alicia Boya García  
+
+[GTK] Unreviewed test gardening
+https://bugs.webkit.org/show_bug.cgi?id=202751
+
+* TestExpectations:
+* platform/gtk/TestExpectations:
+* platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt: Added.
+* platform/gtk/accessibility/roles-exposed-expected.txt:
+* platform/gtk/fast/tokenizer/script_extra_close-expected.txt:
+* platform/wpe/TestExpectations:
+
 2019-10-09  Miguel Gomez  
 
 Unreviewed WPE gardening after r250889.


Modified: trunk/LayoutTests/TestExpectations (250910 => 250911)

--- trunk/LayoutTests/TestExpectations	2019-10-09 14:07:21 UTC (rev 250910)
+++ trunk/LayoutTests/TestExpectations	2019-10-09 14:23:08 UTC (rev 250911)
@@ -1191,9 +1191,6 @@
 
 imported/w3c/web-platform-tests/fetch/http-cache/partial.html [ Failure Pass ]
 
-# Flaky tests due to always changing assertion error message
-imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/url-encoded.html [ Failure ]
-
 # New W3C ref tests that are failing.
 webkit.org/b/148856 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_initially_paused.html [ ImageOnlyFailure ]
 imported/w3c/web-platform-tests/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative.html [ ImageOnlyFailure ]
@@ -2046,7 +2043,6 @@
 
 webkit.org/b/148884 imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection.html [ Pass Failure ]
 
-webkit.org/b/190626 imported/w3c/web-platform-tests/html/semantics/forms/the-datalist-element/datalistoptions.html [ Failure ]
 webkit.org/b/190613 imported/blink/fast/forms/datalist/slider-appearance-with-ticks-crash.html [ Skip ]
 
 # Tests require WTR and disabling of user installed fonts. Reenabling them in supported platforms
@@ -3619,9 +3615,6 @@
 
 [ Debug ] fast/multicol/crash-in-vertical-writing-mode.html [ Skip ]
 
-webkit.org/b/187762 http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party.html [ Failure ]
-webkit.org/b/187762 http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html [ Failure ]
-
 webkit.org/b/187269 [ Debug ] imported/w3c/web-platform-tests/FileAPI/reading-data-section/filereader_abort.html [ Skip ]
 
 webkit.org/b/185308 legacy-animation-engine/animations/combo-transform-translate+scale.html [ Pass Failure ]
@@ -3631,10 +3624,8 @@
 
 # These tests started to time out or fail because of our experiment to have target=_blank on anchors imply rel=noopener (https://bugs.webkit.org/show_bug.cgi?id=190481).
 imported/w3c/web-platform-tests/html/browsers/windows/auxiliary-browsing-contexts/opener-closed.html [ Skip ]
-imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/002.html [ Failure ]
 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html [ Skip ]
 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html [ Skip ]
-imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/choose-_blank-003.html [ Failure ]
 
 http/wpt/css/css-images-4/conic-gradient-parsing.html [ Skip ]
 fast/gradients/conic-repeating.html [ Skip ]


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (250910 => 250911)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-10-09 14:07:21 UTC (rev 250910)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-10-09 14:23:08 UTC (rev 250911)
@@ -263,8 +263,6 @@
 webkit.org/b/169916 css3/blending/blend-mode-isolation-turn-off-self-painting-layer1.html [ Failure ]
 webkit.org/b/169916 css3/blending/blend-mode-isolation-turn-off-self-painting-layer2.html [ Failure ]
 webkit.org/b/169916 

[webkit-changes] [250362] trunk/LayoutTests

2019-09-25 Thread aboya
Title: [250362] trunk/LayoutTests








Revision 250362
Author ab...@igalia.com
Date 2019-09-25 15:46:03 -0700 (Wed, 25 Sep 2019)


Log Message
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=202246


* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations


Added Paths

trunk/LayoutTests/platform/gtk/http/tests/appcache/
trunk/LayoutTests/platform/gtk/http/tests/appcache/history-test-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (250361 => 250362)

--- trunk/LayoutTests/ChangeLog	2019-09-25 22:30:55 UTC (rev 250361)
+++ trunk/LayoutTests/ChangeLog	2019-09-25 22:46:03 UTC (rev 250362)
@@ -1,3 +1,10 @@
+2019-09-25  Alicia Boya García  
+
+[GTK] Unreviewed test gardening
+https://bugs.webkit.org/show_bug.cgi?id=202246
+
+* platform/gtk/TestExpectations:
+
 2019-09-25  Wenson Hsieh  
 
 Page temporarily jumps to an excessively small viewport scale while loading usatoday.com


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (250361 => 250362)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-09-25 22:30:55 UTC (rev 250361)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-09-25 22:46:03 UTC (rev 250362)
@@ -1181,6 +1181,9 @@
 # No Mac system fonts in WebKitGTK
 editing/pasteboard/paste-cocoa-writer-markup-with-system-fonts.html [ Failure ]
 
+# We don't use Cocoa
+editing/pasteboard/paste-cocoa-writer-markup-with-webkit-standard-font-family.html [ Failure ]
+
 #
 # End of Expected failures.
 #
@@ -2018,7 +2021,6 @@
 
 webkit.org/b/193318 webrtc/audio-replace-track.html [ Timeout Pass ]
 
-webkit.org/b/193490 [ Debug ] animations/animation-direction-normal.html [ Pass Failure ]
 webkit.org/b/193490 [ Debug ] animations/play-state-suspend.html [ Pass Failure ]
 
 webkit.org/b/128255 compositing/columns/composited-lr-paginated-repaint.html [ Pass Failure ]
@@ -2187,6 +2189,11 @@
 
 webkit.org/b/201255 fullscreen/full-screen-request-removed-with-raf.html [ Pass Failure ]
 
+webkit.org/b/202230 editing/style/font-family-with-space.html [ Pass Failure ]
+webkit.org/b/202232 fast/forms/validation-message-appearance.html [ Pass Failure ]
+
+webkit.org/b/202239 http/tests/cookies/cookie-with-multiple-level-path.html [ Pass Failure ]
+
 #
 # End of Flaky tests
 #
@@ -2557,6 +2564,10 @@
 
 webkit.org/b/201274 media/presentationmodechanged-fired-once.html [ Timeout ]
 
+webkit.org/b/202245 http/tests/workers/service/Client-properties-subframe.html [ Timeout ]
+webkit.org/b/202245 http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html [ Timeout ]
+webkit.org/b/202245 http/tests/workers/service/registration-clear-redundant-worker.html [ Timeout ]
+
 #
 # End of Tests timing out
 #
@@ -3868,6 +3879,52 @@
 webkit.org/b/201982 fast/images/exif-orientation-svg-feimage.html [ ImageOnlyFailure ]
 webkit.org/b/201982 fast/images/exif-orientation-svg-image.html [ ImageOnlyFailure ]
 
+webkit.org/b/202225 accessibility/misspelling-range.html [ Failure ]
+webkit.org/b/202226 animations/animation-direction-normal.html [ Failure ]
+webkit.org/b/202227 compositing/backing/layer-outside-tiled-parent.html [ Failure ]
+webkit.org/b/202228 compositing/layer-creation/fixed-position-descendants-out-of-view.html [ Failure ]
+
+webkit.org/b/202229 css-dark-mode/color-scheme-css.html [ Failure ]
+webkit.org/b/202229 css-dark-mode/color-scheme-meta.html [ Failure ]
+webkit.org/b/202229 css-dark-mode/older-syntax/supported-color-schemes-css.html [ Failure ]
+webkit.org/b/202229 css-dark-mode/older-syntax/supported-color-schemes-meta.html [ Failure ]
+
+webkit.org/b/202231 fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html [ Failure ]
+
+webkit.org/b/202234 http/tests/IndexedDB/storage-limit-1.https.html [ Failure ]
+webkit.org/b/202234 http/tests/IndexedDB/storage-limit-2.https.html [ Failure ]
+webkit.org/b/202234 http/tests/IndexedDB/storage-limit.https.html [ Failure ]
+
+webkit.org/b/202235 http/tests/adClickAttribution/clear-through-website-data-removal.html [ Failure ]
+webkit.org/b/202236 http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html [ Failure ]
+webkit.org/b/202237 http/tests/appcache/document-cookie-http-only.php [ Failure ]
+
+webkit.org/b/202238 http/tests/cache-storage/cache-clearing-all.https.html [ Failure ]
+webkit.org/b/202238 http/tests/cache-storage/cache-clearing-origin.https.html [ Failure ]
+webkit.org/b/202238 http/tests/cache-storage/cache-origins.https.html [ 

[webkit-changes] [249332] trunk

2019-08-30 Thread aboya
Title: [249332] trunk








Revision 249332
Author ab...@igalia.com
Date 2019-08-30 10:17:20 -0700 (Fri, 30 Aug 2019)


Log Message
[MSE][GStreamer] Replaying the video should update currentTime
https://bugs.webkit.org/show_bug.cgi?id=201307

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

* web-platform-tests/media-source/mediasource-replay-expected.txt: Added.
* web-platform-tests/media-source/mediasource-replay.html: Added.

Source/WebCore:

While writing a test to confirm that https://bugs.webkit.org/show_bug.cgi?id=190050
has indeed been fixed I noticed a non-conformity: when the video has
ended, right after calling .play() for a second playback currentTime
did not return zero, but the video duration.

This turned to be due to the m_isEndReached flag not being reseted on
seeks (replaying a video incurs in a seek done from multi-platform
code).

Test: imported/w3c/web-platform-tests/media-source/mediasource-replay.html

* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-replay-expected.txt
trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-replay.html




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (249331 => 249332)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2019-08-30 17:02:31 UTC (rev 249331)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2019-08-30 17:17:20 UTC (rev 249332)
@@ -1,3 +1,13 @@
+2019-08-30  Alicia Boya García  
+
+[MSE][GStreamer] Replaying the video should update currentTime
+https://bugs.webkit.org/show_bug.cgi?id=201307
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+* web-platform-tests/media-source/mediasource-replay-expected.txt: Added.
+* web-platform-tests/media-source/mediasource-replay.html: Added.
+
 2019-08-30  Joonghun Park  
 
 Import css/css-text/tab-size/tab-size.html wpt test


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-replay-expected.txt (0 => 249332)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-replay-expected.txt	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-replay-expected.txt	2019-08-30 17:17:20 UTC (rev 249332)
@@ -0,0 +1,3 @@
+
+PASS Test replaying video after 'ended' 
+


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-replay.html (0 => 249332)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-replay.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-replay.html	2019-08-30 17:17:20 UTC (rev 249332)
@@ -0,0 +1,41 @@
+
+
+
+
+MediaSource replay test case.
+
+
+
+
+
+
+mediasource_testafterdataloaded(function (test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData) {
+mediaElement.addEventListener('error', test.unreached_func("Unexpected event 'error'"));
+
+test.expectEvent(sourceBuffer, 'updateend', 'sourceBuffer');
+
+sourceBuffer.appendBuffer(mediaData);
+
+test.waitForExpectedEvents(function () {
+mediaSource.endOfStream();
+
+// Start playing near the end.
+mediaElement.currentTime = 6.2;
+mediaElement.play();
+test.expectEvent(mediaElement, 'ended', 'mediaElement');
+});
+
+test.waitForExpectedEvents(function () {
+mediaElement.play();
+assert_equals(mediaElement.currentTime, 0, "currentTime");
+// If currentTime is able to advance, the player did not get stuck and it's a pass.
+test.waitForCurrentTimeChange(mediaElement, test.step_func_done());
+});
+}, "Test replaying video after 'ended'");
+
+
+


Modified: trunk/Source/WebCore/ChangeLog (249331 => 249332)

--- trunk/Source/WebCore/ChangeLog	2019-08-30 17:02:31 UTC (rev 249331)
+++ trunk/Source/WebCore/ChangeLog	2019-08-30 17:17:20 UTC (rev 249332)
@@ -1,3 +1,24 @@
+2019-08-30  Alicia Boya García  
+
+[MSE][GStreamer] Replaying the video should update currentTime
+https://bugs.webkit.org/show_bug.cgi?id=201307
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+While writing a test to confirm that https://bugs.webkit.org/show_bug.cgi?id=190050
+has indeed been fixed I noticed a non-conformity: when the video has
+ended, right after calling .play() for a second playback currentTime
+did not return zero, but the video duration.
+
+This turned to be due to the m_isEndReached flag not being reseted on
+seeks (replaying a video incurs in a seek done from 

[webkit-changes] [249325] trunk

2019-08-30 Thread aboya
Title: [249325] trunk








Revision 249325
Author ab...@igalia.com
Date 2019-08-30 08:14:54 -0700 (Fri, 30 Aug 2019)


Log Message
[MSE][GStreamer] Gracefully fail on invalid non-first initialization segment
https://bugs.webkit.org/show_bug.cgi?id=201322

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

In normal operation of AppendPipeline, except during tear down,
qtdemux never removes a pad. Even if a new initialization segment is
appended, the pad is reused.

There is an exception though: when the new initialization segment has
an incompatible set of tracks. This is invalid under the MSE spec and
should produce an error, but in this case this was making an assertion
fail -- in particular by sending an EOS to the to-be-removed pad, which
AppendPipeline doesn't expect.

This patch changes the assertion with graceful error handling for that
error.

Fixes media/media-source/media-source-seek-detach-crash.html

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleErrorConditionFromStreamingThread):
(WebCore::AppendPipeline::handleErrorSyncMessage):
* platform/graphics/gstreamer/mse/AppendPipeline.h:

LayoutTests:

* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/wpe/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h




Diff

Modified: trunk/LayoutTests/ChangeLog (249324 => 249325)

--- trunk/LayoutTests/ChangeLog	2019-08-30 13:18:53 UTC (rev 249324)
+++ trunk/LayoutTests/ChangeLog	2019-08-30 15:14:54 UTC (rev 249325)
@@ -1,3 +1,13 @@
+2019-08-30  Alicia Boya García  
+
+[MSE][GStreamer] Gracefully fail on invalid non-first initialization segment
+https://bugs.webkit.org/show_bug.cgi?id=201322
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+* platform/gtk/TestExpectations:
+* platform/wpe/TestExpectations:
+
 2019-08-30  Joonghun Park  
 
 Import css/css-text/tab-size/tab-size.html wpt test


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (249324 => 249325)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-08-30 13:18:53 UTC (rev 249324)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-08-30 15:14:54 UTC (rev 249325)
@@ -242,9 +242,6 @@
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-trackdefault.html [ Failure ]
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-trackdefaultlist.html [ Failure ]
 
-# We don't support multiple streams per sourcebuffer nor dynamic type changes (audio/video/text)
-webkit.org/b/165394 media/media-source/media-source-seek-detach-crash.html [ Skip ]
-
 # There is an oggdemux bug that deadlocks WebKit: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/639
 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html [ Timeout ]
 


Modified: trunk/LayoutTests/platform/wpe/TestExpectations (249324 => 249325)

--- trunk/LayoutTests/platform/wpe/TestExpectations	2019-08-30 13:18:53 UTC (rev 249324)
+++ trunk/LayoutTests/platform/wpe/TestExpectations	2019-08-30 15:14:54 UTC (rev 249325)
@@ -1311,7 +1311,6 @@
 media/media-source/ [ Pass ]
 webkit.org/b/171726 media/media-source/media-source-init-segment-duration.html [ Failure ]
 webkit.org/b/168373 media/media-source/media-source-resize.html [ Failure ]
-webkit.org/b/165394 media/media-source/media-source-seek-detach-crash.html [ Timeout ]
 webkit.org/b/168373 media/media-source/only-bcp47-language-tags-accepted-as-valid.html [ Timeout ]
 
 media/encrypted-media [ Pass ]


Modified: trunk/Source/WebCore/ChangeLog (249324 => 249325)

--- trunk/Source/WebCore/ChangeLog	2019-08-30 13:18:53 UTC (rev 249324)
+++ trunk/Source/WebCore/ChangeLog	2019-08-30 15:14:54 UTC (rev 249325)
@@ -1,3 +1,31 @@
+2019-08-30  Alicia Boya García  
+
+[MSE][GStreamer] Gracefully fail on invalid non-first initialization segment
+https://bugs.webkit.org/show_bug.cgi?id=201322
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+In normal operation of AppendPipeline, except during tear down,
+qtdemux never removes a pad. Even if a new initialization segment is
+appended, the pad is reused.
+
+There is an exception though: when the new initialization segment has
+an incompatible set of tracks. This is invalid under the MSE spec and
+should produce an error, but in this case this was making an assertion
+fail -- in particular by sending an EOS to the to-be-removed pad, which
+AppendPipeline doesn't expect.
+
+This patch changes the assertion with graceful error handling for that
+error.
+
+Fixes 

[webkit-changes] [248521] trunk

2019-08-11 Thread aboya
Title: [248521] trunk








Revision 248521
Author ab...@igalia.com
Date 2019-08-11 09:21:25 -0700 (Sun, 11 Aug 2019)


Log Message
[MSE][GStreamer] Don't use vorbisparse
https://bugs.webkit.org/show_bug.cgi?id=200622

Reviewed by Philippe Normand.

Source/WebCore:

This patch has been splitted from the original WebKitMediaSrc rework
patch (https://bugs.webkit.org/show_bug.cgi?id=199719).

Unlike other parsers, vorbisparse has latency (in the sense that when
it gets a chain call with a series of complete frames, it may not emit
the parsed frames until another chain in the future), which makes it
inappropriate for AppendPipeline, as there is no good way I know to
flush it.

But actually vorbisparse is not known to be necessary and it was only
introduced for consistency with other formats. Parsers are used in
AppendPipeline to reconstruct information that is lost due to poor
muxes. There have been no reported cases of this being a problem with
Vorbis in WebM, so I'm just removing the parser.

Fixes imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::createOptionalParserForFormat):

LayoutTests:

* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (248520 => 248521)

--- trunk/LayoutTests/ChangeLog	2019-08-11 14:34:55 UTC (rev 248520)
+++ trunk/LayoutTests/ChangeLog	2019-08-11 16:21:25 UTC (rev 248521)
@@ -1,3 +1,12 @@
+2019-08-11  Alicia Boya García  
+
+[MSE][GStreamer] Don't use vorbisparse
+https://bugs.webkit.org/show_bug.cgi?id=200622
+
+Reviewed by Philippe Normand.
+
+* platform/gtk/TestExpectations:
+
 2019-08-10  Simon Fraser  
 
 REGRESSION (r245974): Missing content on habitburger.com, amazon.com


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (248520 => 248521)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-08-11 14:34:55 UTC (rev 248520)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-08-11 16:21:25 UTC (rev 248521)
@@ -228,7 +228,6 @@
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-buffered.html [ Failure ]
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-changetype.html [ Failure Crash ]
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html [ Failure ]
-webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html [ Failure ]
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html [ Failure Pass ]
 # Crash is webkit.org/b/176020
 webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-duration.html [ Failure Crash ]


Modified: trunk/Source/WebCore/ChangeLog (248520 => 248521)

--- trunk/Source/WebCore/ChangeLog	2019-08-11 14:34:55 UTC (rev 248520)
+++ trunk/Source/WebCore/ChangeLog	2019-08-11 16:21:25 UTC (rev 248521)
@@ -1,3 +1,30 @@
+2019-08-11  Alicia Boya García  
+
+[MSE][GStreamer] Don't use vorbisparse
+https://bugs.webkit.org/show_bug.cgi?id=200622
+
+Reviewed by Philippe Normand.
+
+This patch has been splitted from the original WebKitMediaSrc rework
+patch (https://bugs.webkit.org/show_bug.cgi?id=199719).
+
+Unlike other parsers, vorbisparse has latency (in the sense that when
+it gets a chain call with a series of complete frames, it may not emit
+the parsed frames until another chain in the future), which makes it
+inappropriate for AppendPipeline, as there is no good way I know to
+flush it.
+
+But actually vorbisparse is not known to be necessary and it was only
+introduced for consistency with other formats. Parsers are used in
+AppendPipeline to reconstruct information that is lost due to poor
+muxes. There have been no reported cases of this being a problem with
+Vorbis in WebM, so I'm just removing the parser.
+
+Fixes imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html
+
+* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+(WebCore::createOptionalParserForFormat):
+
 2019-08-11  Antti Koivisto  
 
 Factor complex line layout path out from RenderBlockFlow


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (248520 => 248521)

--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2019-08-11 14:34:55 UTC (rev 248520)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp	2019-08-11 16:21:25 UTC (rev 248521)
@@ -645,12 +645,6 @@
 g_return_val_if_fail(opusparse, nullptr);
 

[webkit-changes] [247788] trunk/LayoutTests/imported/w3c

2019-07-24 Thread aboya
Title: [247788] trunk/LayoutTests/imported/w3c








Revision 247788
Author ab...@igalia.com
Date 2019-07-24 13:31:07 -0700 (Wed, 24 Jul 2019)


Log Message
Unreviewed: Added missing expectation file for video_crash_empty_src.html
https://bugs.webkit.org/show_bug.cgi?id=200081


* web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src-expected.txt: Added.

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src-expected.txt




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (247787 => 247788)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2019-07-24 20:28:31 UTC (rev 247787)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2019-07-24 20:31:07 UTC (rev 247788)
@@ -1,5 +1,12 @@
 2019-07-24  Alicia Boya García  
 
+Unreviewed: Added missing expectation file for video_crash_empty_src.html
+https://bugs.webkit.org/show_bug.cgi?id=200081
+
+* web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src-expected.txt: Added.
+
+2019-07-24  Alicia Boya García  
+
 [GStreamer] Don't crash with empty video src
 https://bugs.webkit.org/show_bug.cgi?id=200081
 


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src-expected.txt (0 => 247788)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src-expected.txt	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src-expected.txt	2019-07-24 20:31:07 UTC (rev 247788)
@@ -0,0 +1,4 @@
+
+PASS src="" does not crash. 
+PASS src="" does not crash. 
+






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


[webkit-changes] [247783] trunk

2019-07-24 Thread aboya
Title: [247783] trunk








Revision 247783
Author ab...@igalia.com
Date 2019-07-24 11:13:05 -0700 (Wed, 24 Jul 2019)


Log Message
[MSE] Reenqueue after removeCodedFrames()
https://bugs.webkit.org/show_bug.cgi?id=199749

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Before this patch, SourceBuffer::removeCodedFrames() did not trigger
an immediate reenqueue, but rather just set the `needsReenqueuing`
flag, deferring it for the next append... but there may not be another
append! In that case, the removed frames would still wrongly play.

This is the case for instance in tests where a single long media
append is done and then "cropped" with SourceBuffer.erase().

Test: media/media-source/media-source-erase-after-last-append.html

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::removeCodedFrames):

LayoutTests:

Added a test that checks that when an .erase() is performed after the
last append the erased frames are indeed not played.

* media/media-source/media-source-erase-after-last-append-expected.txt: Added.
* media/media-source/media-source-erase-after-last-append.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp


Added Paths

trunk/LayoutTests/media/media-source/media-source-erase-after-last-append-expected.txt
trunk/LayoutTests/media/media-source/media-source-erase-after-last-append.html




Diff

Modified: trunk/LayoutTests/ChangeLog (247782 => 247783)

--- trunk/LayoutTests/ChangeLog	2019-07-24 18:08:31 UTC (rev 247782)
+++ trunk/LayoutTests/ChangeLog	2019-07-24 18:13:05 UTC (rev 247783)
@@ -1,3 +1,16 @@
+2019-07-24  Alicia Boya García  
+
+[MSE] Reenqueue after removeCodedFrames()
+https://bugs.webkit.org/show_bug.cgi?id=199749
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+Added a test that checks that when an .erase() is performed after the
+last append the erased frames are indeed not played.
+
+* media/media-source/media-source-erase-after-last-append-expected.txt: Added.
+* media/media-source/media-source-erase-after-last-append.html: Added.
+
 2019-07-24  Russell Epstein  
 
 Remove test expectation for fast/events/ios/keydown-keyup-keypress-keys-in-non-editable-using-chinese-keyboard.html


Added: trunk/LayoutTests/media/media-source/media-source-erase-after-last-append-expected.txt (0 => 247783)

--- trunk/LayoutTests/media/media-source/media-source-erase-after-last-append-expected.txt	(rev 0)
+++ trunk/LayoutTests/media/media-source/media-source-erase-after-last-append-expected.txt	2019-07-24 18:13:05 UTC (rev 247783)
@@ -0,0 +1,18 @@
+
+EXPECTED (source.readyState == 'closed') OK
+EVENT(sourceopen)
+RUN(sourceBuffer = source.addSourceBuffer("video/mock; codecs=mock"))
+RUN(sourceBuffer.appendBuffer(initSegment))
+EVENT(updateend)
+RUN(sourceBuffer.appendBuffer(syncSampleRun(0, 10)))
+EVENT(updateend)
+RUN(sourceBuffer.remove(5, Infinity))
+EVENT(updateend)
+RUN(source.endOfStream())
+{PTS({0/1 = 0.00}), DTS({0/1 = 0.00}), duration({1/1 = 1.00}), flags(1), generation(0)}
+{PTS({1/1 = 1.00}), DTS({1/1 = 1.00}), duration({1/1 = 1.00}), flags(0), generation(0)}
+{PTS({2/1 = 2.00}), DTS({2/1 = 2.00}), duration({1/1 = 1.00}), flags(0), generation(0)}
+{PTS({3/1 = 3.00}), DTS({3/1 = 3.00}), duration({1/1 = 1.00}), flags(0), generation(0)}
+{PTS({4/1 = 4.00}), DTS({4/1 = 4.00}), duration({1/1 = 1.00}), flags(0), generation(0)}
+END OF TEST
+


Added: trunk/LayoutTests/media/media-source/media-source-erase-after-last-append.html (0 => 247783)

--- trunk/LayoutTests/media/media-source/media-source-erase-after-last-append.html	(rev 0)
+++ trunk/LayoutTests/media/media-source/media-source-erase-after-last-append.html	2019-07-24 18:13:05 UTC (rev 247783)
@@ -0,0 +1,58 @@
+
+
+
+media-source-erase-after-last-append
+
+var source;
+var sourceBuffer;
+var initSegment;
+
+if (window.internals)
+internals.initializeMockMediaSource();
+
+function syncSampleRun(start, end) {
+const samples = [];
+for (let time = start; time < end; time++)
+samples.push(makeASample(time, time, 1, 1, 1, time === start ? SAMPLE_FLAG.SYNC : SAMPLE_FLAG.NONE));
+return concatenateSamples(samples);
+}
+
+window.addEventListener('load', async () => {
+findMediaElement();
+source = new MediaSource();
+testExpected('source.readyState', 'closed');
+const sourceOpened = waitFor(source, 'sourceopen');
+
+const videoSource = document.createElement('source');
+videoSource.type = 'video/mock; codecs=mock';
+videoSource.src = ""
+video.appendChild(videoSource);
+
+await sourceOpened;
+run('sourceBuffer = 

[webkit-changes] [247778] trunk

2019-07-24 Thread aboya
Title: [247778] trunk








Revision 247778
Author ab...@igalia.com
Date 2019-07-24 10:34:22 -0700 (Wed, 24 Jul 2019)


Log Message
[GStreamer] Don't crash with empty video src
https://bugs.webkit.org/show_bug.cgi?id=200081

LayoutTests/imported/w3c:

Reviewed by Philippe Normand.

* web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src.html: Added.

Source/WebCore:

When a  element is set to load empty or about:blank, a player is still
created, but no pipeline is loaded. This patch fixes some assertion errors that
manifested in that case.

Reviewed by Philippe Normand.

Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src.html

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::loadFull):
(WebCore::MediaPlayerPrivateGStreamer::platformDuration const):
(WebCore::MediaPlayerPrivateGStreamer::paused const):

Modified Paths

trunk/LayoutTests/imported/w3c/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp


Added Paths

trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src.html




Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (24 => 247778)

--- trunk/LayoutTests/imported/w3c/ChangeLog	2019-07-24 17:16:53 UTC (rev 24)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2019-07-24 17:34:22 UTC (rev 247778)
@@ -1,3 +1,12 @@
+2019-07-24  Alicia Boya García  
+
+[GStreamer] Don't crash with empty video src
+https://bugs.webkit.org/show_bug.cgi?id=200081
+
+Reviewed by Philippe Normand.
+
+* web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src.html: Added.
+
 2019-07-17  Alex Christensen  
 
 Add a runtime-disabled dialog element skeleton


Added: trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src.html (0 => 247778)

--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src.html	(rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src.html	2019-07-24 17:34:22 UTC (rev 247778)
@@ -0,0 +1,29 @@
+
+
+
+HTML5 Media Elements: An empty src should not crash the player.
+
+
+
+
+function makeCrashTest(src) {
+async_test(function (test) {
+const video = document.createElement("video");
+video.src = ""
+video.controls = true;
+document.body.appendChild(video);
+test.step_timeout(test.step_func(() => {
+document.body.removeChild(video);
+test.done();
+}), 0);
+}, `src="" does not crash.`);
+}
+
+makeCrashTest("about:blank");
+makeCrashTest("");
+
+
+


Modified: trunk/Source/WebCore/ChangeLog (24 => 247778)

--- trunk/Source/WebCore/ChangeLog	2019-07-24 17:16:53 UTC (rev 24)
+++ trunk/Source/WebCore/ChangeLog	2019-07-24 17:34:22 UTC (rev 247778)
@@ -1,3 +1,21 @@
+2019-07-24  Alicia Boya García  
+
+[GStreamer] Don't crash with empty video src
+https://bugs.webkit.org/show_bug.cgi?id=200081
+
+When a  element is set to load empty or about:blank, a player is still
+created, but no pipeline is loaded. This patch fixes some assertion errors that
+manifested in that case.
+
+Reviewed by Philippe Normand.
+
+Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_crash_empty_src.html
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::loadFull):
+(WebCore::MediaPlayerPrivateGStreamer::platformDuration const):
+(WebCore::MediaPlayerPrivateGStreamer::paused const):
+
 2019-07-23  Justin Fan  
 
 [WebGPU] Implement errors for GPURenderPipeline creation


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (24 => 247778)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2019-07-24 17:16:53 UTC (rev 24)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2019-07-24 17:34:22 UTC (rev 247778)
@@ -280,8 +280,10 @@
 }
 
 URL url(URL(), urlString);
-if (url.protocolIsAbout())
+if (url.protocolIsAbout()) {
+loadingFailed(MediaPlayer::FormatError, MediaPlayer::HaveNothing, true);
 return;
+}
 
 if (!m_pipeline)
 createGSTPlayBin(url, pipelineName);
@@ -480,6 +482,9 @@
 
 MediaTime MediaPlayerPrivateGStreamer::platformDuration() const
 {
+if (!m_pipeline)
+return MediaTime::invalidTime();
+
 GST_TRACE_OBJECT(pipeline(), 

[webkit-changes] [247723] trunk

2019-07-23 Thread aboya
Title: [247723] trunk








Revision 247723
Author ab...@igalia.com
Date 2019-07-23 07:51:29 -0700 (Tue, 23 Jul 2019)


Log Message
[WTF] Add DataMutex and MainThreadData wrappers
https://bugs.webkit.org/show_bug.cgi?id=199831

Reviewed by Alex Christensen.

Source/WTF:

This patch adds two new wrapper classes:

DataMutex stores an instance of T in a private member along with a
mutex. In order to use its fields, users need to instantiate a
DataMutex::LockedWrapper instance in the stack. This class uses
RAII to lock and unlock the mutex in construction and destruction
respectively, and by using the arrow operator lets the user access T's
members.

This way, DataMutex prevents most instances of accidental access to
data fields that should only be read and modified in an atomic matter.

Still, both the Lock and the LockHolder are exposed once the user has
taken the lock so that special cases such as waiting for a condition
variable or performing an early unlock are doable.

MainThreadData is another wrapper class, in this case for data
fields that should only be accessed from the main thread. In this
case, it works similar to a smart pointer, except that (1) there is no
actual memory indirection, T is stored directly inside
MainThreadData and (2) attempts to use the -> or * operator have an
isMainThread() assertion.

Together, these two wrapper classes make it easier to write
multi-threaded code in a safer, more self-documented way by letting
the author group data into structures that have certain access safety
requirements.

These structures were originally part of the new GStreamer
WebKitMediaSrc rework patch: https://bugs.webkit.org/show_bug.cgi?id=199719

* wtf/CMakeLists.txt:
* wtf/DataMutex.h: Added.
(WTF::DataMutex::DataMutex):
(WTF::DataMutex::LockedWrapper::LockedWrapper):
(WTF::DataMutex::LockedWrapper::operator->):
(WTF::DataMutex::LockedWrapper::operator*):
(WTF::DataMutex::LockedWrapper::mutex):
(WTF::DataMutex::LockedWrapper::lockHolder):
* wtf/MainThreadData.h: Added.
(WTF::MainThreadData::MainThreadData):
(WTF::MainThreadData::operator->):
(WTF::MainThreadData::operator*):

Tools:

Added a very simple test that checks that DataMutex indeed takes
the lock and indeed holds data.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/Tests/WTF/DataMutex.cpp: Added.
(TestWebKitAPI::TEST):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/CMakeLists.txt
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/CMakeLists.txt


Added Paths

trunk/Source/WTF/wtf/DataMutex.h
trunk/Source/WTF/wtf/MainThreadData.h
trunk/Tools/TestWebKitAPI/Tests/WTF/DataMutex.cpp




Diff

Modified: trunk/Source/WTF/ChangeLog (247722 => 247723)

--- trunk/Source/WTF/ChangeLog	2019-07-23 14:47:37 UTC (rev 247722)
+++ trunk/Source/WTF/ChangeLog	2019-07-23 14:51:29 UTC (rev 247723)
@@ -1,3 +1,54 @@
+2019-07-23  Alicia Boya García  
+
+[WTF] Add DataMutex and MainThreadData wrappers
+https://bugs.webkit.org/show_bug.cgi?id=199831
+
+Reviewed by Alex Christensen.
+
+This patch adds two new wrapper classes:
+
+DataMutex stores an instance of T in a private member along with a
+mutex. In order to use its fields, users need to instantiate a
+DataMutex::LockedWrapper instance in the stack. This class uses
+RAII to lock and unlock the mutex in construction and destruction
+respectively, and by using the arrow operator lets the user access T's
+members.
+
+This way, DataMutex prevents most instances of accidental access to
+data fields that should only be read and modified in an atomic matter.
+
+Still, both the Lock and the LockHolder are exposed once the user has
+taken the lock so that special cases such as waiting for a condition
+variable or performing an early unlock are doable.
+
+MainThreadData is another wrapper class, in this case for data
+fields that should only be accessed from the main thread. In this
+case, it works similar to a smart pointer, except that (1) there is no
+actual memory indirection, T is stored directly inside
+MainThreadData and (2) attempts to use the -> or * operator have an
+isMainThread() assertion.
+
+Together, these two wrapper classes make it easier to write
+multi-threaded code in a safer, more self-documented way by letting
+the author group data into structures that have certain access safety
+requirements.
+
+These structures were originally part of the new GStreamer
+WebKitMediaSrc rework patch: https://bugs.webkit.org/show_bug.cgi?id=199719
+
+* wtf/CMakeLists.txt:
+* wtf/DataMutex.h: Added.
+(WTF::DataMutex::DataMutex):
+(WTF::DataMutex::LockedWrapper::LockedWrapper):
+(WTF::DataMutex::LockedWrapper::operator->):
+(WTF::DataMutex::LockedWrapper::operator*):
+(WTF::DataMutex::LockedWrapper::mutex):
+

[webkit-changes] [247535] trunk/LayoutTests

2019-07-17 Thread aboya
Title: [247535] trunk/LayoutTests








Revision 247535
Author ab...@igalia.com
Date 2019-07-17 13:46:18 -0700 (Wed, 17 Jul 2019)


Log Message
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=199878


* platform/gtk/TestExpectations:
* platform/gtk/compositing/overflow/textarea-scroll-touch-expected.txt:
* platform/gtk/fast/events/shadow-event-path-2-expected.txt:
* platform/gtk/fast/events/shadow-event-path-expected.txt:
* platform/wpe/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/gtk/compositing/overflow/textarea-scroll-touch-expected.txt
trunk/LayoutTests/platform/gtk/fast/events/shadow-event-path-2-expected.txt
trunk/LayoutTests/platform/gtk/fast/events/shadow-event-path-expected.txt
trunk/LayoutTests/platform/wpe/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (247534 => 247535)

--- trunk/LayoutTests/ChangeLog	2019-07-17 20:43:21 UTC (rev 247534)
+++ trunk/LayoutTests/ChangeLog	2019-07-17 20:46:18 UTC (rev 247535)
@@ -1,3 +1,14 @@
+2019-07-17  Alicia Boya García  
+
+[GTK] Unreviewed test gardening
+https://bugs.webkit.org/show_bug.cgi?id=199878
+
+* platform/gtk/TestExpectations:
+* platform/gtk/compositing/overflow/textarea-scroll-touch-expected.txt:
+* platform/gtk/fast/events/shadow-event-path-2-expected.txt:
+* platform/gtk/fast/events/shadow-event-path-expected.txt:
+* platform/wpe/TestExpectations:
+
 2019-07-17  Olivier Blin  
 
 Web Inspector: application/xml content not shown


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (247534 => 247535)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-07-17 20:43:21 UTC (rev 247534)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-07-17 20:46:18 UTC (rev 247535)
@@ -1267,6 +1267,8 @@
 webkit.org/b/199014 fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551.html [ Pass Crash ]
 webkit.org/b/199018 fast/mediastream/RTCPeerConnection-add-removeTrack.html [ Crash ]
 
+webkit.org/b/199440 fast/mediastream/mediastreamtrack-video-clone.html [ Failure Timeout Crash ]
+
 #
 # End of Crashing tests
 #
@@ -1433,7 +1435,7 @@
 
 # media/audio-garbage-collect.html is flaky
 # https://bugs.webkit.org/show_bug.cgi?id=72698
-webkit.org/b/72698 media/audio-garbage-collect.html [ Timeout Pass ]
+webkit.org/b/72698 media/audio-garbage-collect.html [ Timeout Failure Pass ]
 
 # Tests showing flakiness in the bot
 Bug(GTK) editing/pasteboard/smart-paste-004.html [ Failure Pass ]
@@ -2001,7 +2003,7 @@
 
 webkit.org/b/89153 http/tests/websocket/tests/hybi/workers/close.html [ Pass Failure ]
 
-webkit.org/b/177322 [ Debug ] imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html [ Pass Failure ]
+webkit.org/b/177322 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html [ Pass Failure ]
 
 webkit.org/b/193624 compositing/fixed-with-main-thread-scrolling.html [ Pass ImageOnlyFailure ]
 
@@ -2512,6 +2514,8 @@
 
 webkit.org/b/198118 media/playlist-inherits-user-gesture.html [ Timeout ]
 
+webkit.org/b/199442 http/tests/contentextensions/make-https.html [ Timeout ]
+
 #
 # End of Tests timing out
 #
@@ -2866,7 +2870,8 @@
 
 webkit.org/b/108973 fast/css/negative-text-indent-in-inline-block.html [ ImageOnlyFailure ]
 
-webkit.org/b/109469 fast/events/mouse-cursor-image-set.html [ Failure ]
+webkit.org/b/109469 [ Release ] fast/events/mouse-cursor-image-set.html [ Failure ]
+webkit.org/b/109469 [ Debug ] fast/events/mouse-cursor-image-set.html [ Crash ]
 
 webkit.org/b/110446 svg/as-background-image/svg-transformed-background.html [ ImageOnlyFailure ]
 
@@ -3791,6 +3796,30 @@
 
 webkit.org/b/199009 fast/text/variations/optical-sizing-units.html [ ImageOnlyFailure ]
 
+webkit.org/b/199859 imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-001.html [ ImageOnlyFailure ]
+
+webkit.org/b/199860 accessibility/button-with-aria-haspopup-role.html [ Failure ]
+webkit.org/b/199868 accessibility/gtk/aria-haspopup.html [ Failure ]
+
+webkit.org/b/199440 fast/mediastream/apply-constraints-video.html [ Failure ]
+webkit.org/b/199440 fast/mediastream/getUserMedia-video-rescaling.html [ Failure ]
+
+webkit.org/b/199437 compositing/geometry/limit-layer-bounds-clipping-ancestor.html [ Failure ]
+
+webkit.org/b/199441 http/tests/websocket/tests/hybi/deflate-frame-parameter.html [ Failure ]
+
+webkit.org/b/199872 

[webkit-changes] [246604] trunk/LayoutTests

2019-06-19 Thread aboya
Title: [246604] trunk/LayoutTests








Revision 246604
Author ab...@igalia.com
Date 2019-06-19 12:21:42 -0700 (Wed, 19 Jun 2019)


Log Message
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=199021


* platform/gtk/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (246603 => 246604)

--- trunk/LayoutTests/ChangeLog	2019-06-19 19:00:49 UTC (rev 246603)
+++ trunk/LayoutTests/ChangeLog	2019-06-19 19:21:42 UTC (rev 246604)
@@ -1,3 +1,10 @@
+2019-06-19  Alicia Boya García  
+
+[GTK] Unreviewed test gardening
+https://bugs.webkit.org/show_bug.cgi?id=199021
+
+* platform/gtk/TestExpectations:
+
 2019-06-19  Russell Epstein  
 
 webgpu/blend-color-triangle-strip.html is a flakey failure since introduction.


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (246603 => 246604)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-06-19 19:00:49 UTC (rev 246603)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-06-19 19:21:42 UTC (rev 246604)
@@ -1312,6 +1312,11 @@
 
 webkit.org/b/198126 http/tests/xmlhttprequest/access-control-response-with-body-sync.html [ Pass Crash ]
 
+webkit.org/b/120839 animations/cross-fade-background-image.html [ ImageOnlyFailure Crash ]
+webkit.org/b/199010 css2.1/t1204-order-01-d.html [ Pass Crash ]
+webkit.org/b/199014 fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551.html [ Pass Crash ]
+webkit.org/b/199018 fast/mediastream/RTCPeerConnection-add-removeTrack.html [ Crash ]
+
 #
 # End of Crashing tests
 #
@@ -2995,7 +3000,6 @@
 webkit.org/b/120596 css3/masking/mask-repeat-space-border.html [ ImageOnlyFailure ]
 webkit.org/b/120596 css3/masking/mask-repeat-space-content.html [ ImageOnlyFailure ]
 
-webkit.org/b/120839 animations/cross-fade-background-image.html [ ImageOnlyFailure ]
 webkit.org/b/120839 legacy-animation-engine/animations/cross-fade-background-image.html [ ImageOnlyFailure ]
 
 webkit.org/b/121905 fast/images/exif-orientation.html [ Failure ]
@@ -3895,6 +3899,26 @@
 webkit.org/b/198119 compositing/shared-backing/shared-layer-has-reflection.html [ ImageOnlyFailure ]
 webkit.org/b/198121 fast/text/large-synthetic-bold-with-scale-transform.html [ ImageOnlyFailure ]
 
+webkit.org/b/199001 accessibility/set-selected-text-range-after-newline.html [ Failure ]
+webkit.org/b/199002 compositing/repaint/scroller-with-foreground-layer-repaints.html [ Failure ]
+webkit.org/b/199003 fast/events/event-attribute.html [ Failure ]
+webkit.org/b/199004 fast/events/fire-mousedown-while-pressing-mouse-button.html [ Failure ]
+webkit.org/b/199005 fast/events/touch/emulate-touch-events.html [ Failure ]
+webkit.org/b/199005 fast/events/touch/touch-handler-count.html [ Failure ]
+webkit.org/b/199006 fast/mediastream/MediaStreamTrack-getCapabilities.html [ Failure ]
+
+webkit.org/b/199008 compositing/backgrounds/fixed-background-on-descendant.html [ ImageOnlyFailure ]
+webkit.org/b/199008 compositing/backgrounds/fixed-backgrounds.html [ ImageOnlyFailure ]
+webkit.org/b/199008 compositing/geometry/rtl-overflow-scroll.html [ ImageOnlyFailure ]
+webkit.org/b/199008 fast/repaint/absolute-position-changed.html [ ImageOnlyFailure ]
+webkit.org/b/199008 fast/repaint/fixed-scale.html [ ImageOnlyFailure ]
+webkit.org/b/199008 fast/repaint/fixed-table-cell.html [ ImageOnlyFailure ]
+webkit.org/b/199008 fast/repaint/fixed-table-overflow-zindex.html [ ImageOnlyFailure ]
+webkit.org/b/199008 fast/repaint/fixed-table-overflow.html [ ImageOnlyFailure ]
+webkit.org/b/199008 fast/repaint/fixed.html [ ImageOnlyFailure ]
+
+webkit.org/b/199009 fast/text/variations/optical-sizing-units.html [ ImageOnlyFailure ]
+
 #
 # End of non-crashing, non-flaky tests failing
 #






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


[webkit-changes] [245623] trunk/LayoutTests

2019-05-22 Thread aboya
Title: [245623] trunk/LayoutTests








Revision 245623
Author ab...@igalia.com
Date 2019-05-22 10:25:25 -0700 (Wed, 22 May 2019)


Log Message
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=198128


* TestExpectations:
* platform/gtk/TestExpectations:
* platform/gtk/fast/forms/input-align-expected.png:
* platform/gtk/fast/forms/input-align-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
* platform/gtk/media/controls-after-reload-expected.txt:
* platform/gtk/printing/page-with-10mm-left-margin-expected.txt:
* platform/gtk/printing/page-with-zero-margin-expected.txt:
* platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/TestExpectations
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/gtk/fast/forms/input-align-expected.png
trunk/LayoutTests/platform/gtk/fast/forms/input-align-expected.txt
trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt
trunk/LayoutTests/platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt
trunk/LayoutTests/platform/gtk/media/controls-after-reload-expected.txt
trunk/LayoutTests/platform/gtk/printing/page-with-10mm-left-margin-expected.txt
trunk/LayoutTests/platform/gtk/printing/page-with-zero-margin-expected.txt
trunk/LayoutTests/platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (245622 => 245623)

--- trunk/LayoutTests/ChangeLog	2019-05-22 17:21:19 UTC (rev 245622)
+++ trunk/LayoutTests/ChangeLog	2019-05-22 17:25:25 UTC (rev 245623)
@@ -1,3 +1,19 @@
+2019-05-22  Alicia Boya García  
+
+[GTK] Unreviewed test gardening
+https://bugs.webkit.org/show_bug.cgi?id=198128
+
+* TestExpectations:
+* platform/gtk/TestExpectations:
+* platform/gtk/fast/forms/input-align-expected.png:
+* platform/gtk/fast/forms/input-align-expected.txt:
+* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
+* platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
+* platform/gtk/media/controls-after-reload-expected.txt:
+* platform/gtk/printing/page-with-10mm-left-margin-expected.txt:
+* platform/gtk/printing/page-with-zero-margin-expected.txt:
+* platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:
+
 2019-05-22  Youenn Fablet  
 
 Layout Test http/wpt/cache-storage/cache-put-stream.https.any.html is a flaky failure


Modified: trunk/LayoutTests/TestExpectations (245622 => 245623)

--- trunk/LayoutTests/TestExpectations	2019-05-22 17:21:19 UTC (rev 245622)
+++ trunk/LayoutTests/TestExpectations	2019-05-22 17:25:25 UTC (rev 245623)
@@ -3099,3 +3099,5 @@
 
 # If requestAnimationFrame is invoked before ResizeObserver timer fired, it would pass, otherwise it would fail same as eventloop-expected.txt
 webkit.org/b/157743 imported/w3c/web-platform-tests/resize-observer/eventloop.html [ Pass Failure ]
+
+webkit.org/b/198103 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/offsets-into-the-media-resource/currentTime.html [ Pass Failure ]


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (245622 => 245623)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-05-22 17:21:19 UTC (rev 245622)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-05-22 17:25:25 UTC (rev 245623)
@@ -1234,6 +1234,9 @@
 # No support for screen capture
 fast/mediastream/screencapture-user-gesture.html [ Skip ]
 
+# No different rendering for text-rendering: optimizeLegibility
+fast/text/variations/optical-sizing-trak-2.html [ Skip ]
+
 #
 # End of Expected failures.
 #
@@ -1301,7 +1304,7 @@
 
 webkit.org/b/183401 fast/animation/request-animation-frame-during-modal.html [ Crash Pass ]
 
-webkit.org/b/185546 media/video-playbackrate.html [ Crash Pass ]
+webkit.org/b/185546 media/video-playbackrate.html [ Crash Pass Timeout ]
 
 # Crashes only when GNOME icon theme is not installed
 webkit.org/b/186767 fast/hidpi/broken-image-icon-very-hidpi.html [ Crash Pass ]
@@ -1326,6 +1329,8 @@
 
 webkit.org/b/197256 http/tests/security/sandboxed-iframe-ALLOWED-modals.html [ Crash ]
 
+webkit.org/b/198126 http/tests/xmlhttprequest/access-control-response-with-body-sync.html [ Pass Crash ]
+
 #
 # End of Crashing tests
 #
@@ -1756,7 +1761,7 @@
 webkit.org/b/132126 media/track/track-cues-cuechange.html [ Timeout Pass ]
 

[webkit-changes] [245074] trunk/LayoutTests

2019-05-08 Thread aboya
Title: [245074] trunk/LayoutTests








Revision 245074
Author ab...@igalia.com
Date 2019-05-08 15:52:26 -0700 (Wed, 08 May 2019)


Log Message
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=197717


* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Removed.
* platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt
trunk/LayoutTests/platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt


Added Paths

trunk/LayoutTests/platform/gtk/printing/page-with-10mm-left-margin-expected.txt
trunk/LayoutTests/platform/gtk/printing/page-with-zero-margin-expected.txt


Removed Paths

trunk/LayoutTests/platform/gtk/inspector/css/shadow-scoped-style-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (245073 => 245074)

--- trunk/LayoutTests/ChangeLog	2019-05-08 22:48:31 UTC (rev 245073)
+++ trunk/LayoutTests/ChangeLog	2019-05-08 22:52:26 UTC (rev 245074)
@@ -1,3 +1,13 @@
+2019-05-08  Alicia Boya García  
+
+[GTK] Unreviewed test gardening
+https://bugs.webkit.org/show_bug.cgi?id=197717
+
+* platform/gtk/TestExpectations:
+* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
+* platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Removed.
+* platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
+
 2019-05-08  Tim Horton  
 
 iOS: Selection is dismissed even if click is preventDefault()'d


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (245073 => 245074)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-05-08 22:48:31 UTC (rev 245073)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-05-08 22:52:26 UTC (rev 245074)
@@ -1231,6 +1231,9 @@
 # No support for resource load statistics yet
 http/tests/resourceLoadStatistics/ [ Skip ]
 
+# No support for screen capture
+fast/mediastream/screencapture-user-gesture.html [ Skip ]
+
 #
 # End of Expected failures.
 #
@@ -2197,6 +2200,12 @@
 
 webkit.org/b/175662 inspector/canvas/recording-2d.html [ Failure Timeout ]
 
+webkit.org/b/197711 imported/w3c/web-platform-tests/media-source/mediasource-correct-frames.html [ Pass Failure ]
+
+webkit.org/b/197713 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-image-cache.https.html [ Pass Failure ]
+webkit.org/b/197714 imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context.html [ Pass Failure ]
+webkit.org/b/197716 webgl/1.0.2/conformance/canvas/buffer-preserve-test.html [ Pass Failure ]
+
 #
 # End of Flaky tests
 #
@@ -3849,6 +3858,15 @@
 
 webkit.org/b/197252 http/tests/adClickAttribution/send-attribution-conversion-request.html [ Failure ]
 
+webkit.org/b/197706 css-dark-mode/default-colors.html [ Failure ]
+
+webkit.org/b/197708 http/wpt/beacon/beacon-async-error-logging.html [ Failure ]
+webkit.org/b/197708 http/wpt/beacon/cors/cors-preflight-cookie.html [ Failure ]
+
+webkit.org/b/197709 imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html [ Failure ]
+
+webkit.org/b/197473 imported/w3c/web-platform-tests/resource-timing/resource-timing-level1.sub.html [ Failure ]
+
 #
 # End of non-crashing, non-flaky tests failing
 #


Modified: trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt (245073 => 245074)

--- trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt	2019-05-08 22:48:31 UTC (rev 245073)
+++ trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt	2019-05-08 22:52:26 UTC (rev 245074)
@@ -1,52 +1,10 @@
-CONSOLE MESSAGE: line 137: Canvas area exceeds the maximum limit (width * height > 268435456).
-
-PASS createImageBitmap with a an HTMLCanvasElement source and sw set to 0 
-PASS createImageBitmap with a an HTMLCanvasElement source and sh set to 0 
-FAIL createImageBitmap with a an HTMLCanvasElement source and oversized (unallocatable) crop region 

[webkit-changes] [244629] trunk/LayoutTests

2019-04-24 Thread aboya
Title: [244629] trunk/LayoutTests








Revision 244629
Author ab...@igalia.com
Date 2019-04-24 17:14:51 -0700 (Wed, 24 Apr 2019)


Log Message
Unreviewed GTK test gardening
https://bugs.webkit.org/show_bug.cgi?id=197261


* platform/gtk/TestExpectations:
* platform/gtk/http/tests/inspector/network/har/har-page-expected.txt:
* platform/gtk/imported/blink/media/track/media-element-move-to-new-document-assert-expected.txt: Removed.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/gtk/http/tests/inspector/network/har/har-page-expected.txt


Removed Paths

trunk/LayoutTests/platform/gtk/imported/blink/media/




Diff

Modified: trunk/LayoutTests/ChangeLog (244628 => 244629)

--- trunk/LayoutTests/ChangeLog	2019-04-25 00:03:10 UTC (rev 244628)
+++ trunk/LayoutTests/ChangeLog	2019-04-25 00:14:51 UTC (rev 244629)
@@ -1,3 +1,12 @@
+2019-04-24  Alicia Boya García  
+
+Unreviewed GTK test gardening
+https://bugs.webkit.org/show_bug.cgi?id=197261
+
+* platform/gtk/TestExpectations:
+* platform/gtk/http/tests/inspector/network/har/har-page-expected.txt:
+* platform/gtk/imported/blink/media/track/media-element-move-to-new-document-assert-expected.txt: Removed.
+
 2019-04-24  Commit Queue  
 
 Unreviewed, rolling out r244228.


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (244628 => 244629)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-04-25 00:03:10 UTC (rev 244628)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-04-25 00:14:51 UTC (rev 244629)
@@ -1329,6 +1329,8 @@
 
 webkit.org/b/196799 imported/blink/fast/css/first-letter-crash-document-disposal.html [ Pass Crash ]
 
+webkit.org/b/197256 http/tests/security/sandboxed-iframe-ALLOWED-modals.html [ Crash ]
+
 #
 # End of Crashing tests
 #
@@ -2151,6 +2153,15 @@
 
 webkit.org/b/196798 media/track/track-cue-css.html [ Failure Pass ]
 
+webkit.org/b/197245 animations/remove-syncing-animation.html [ Failure Pass ]
+
+webkit.org/b/197246 editing/pasteboard/smart-paste-003-trailing-whitespace.html [ Failure Pass ]
+
+webkit.org/b/197254 imported/w3c/web-platform-tests/css/css-animations/animationevent-types.html [ Failure Pass ]
+
+webkit.org/b/197258 imported/w3c/web-platform-tests/css/selectors/focus-display-none-001.html [ Failure Pass ]
+webkit.org/b/197258 imported/w3c/web-platform-tests/css/selectors/focus-within-display-none-001.html [ Failure Pass ]
+
 #
 # End of Flaky tests
 #
@@ -3805,6 +3816,21 @@
 
 webkit.org/b/196541 editing/pasteboard/paste-content-with-overflow-auto-parent-across-origin.html [ Failure ]
 
+webkit.org/b/197248 fast/events/autoscroll-when-input-is-offscreen.html [ Failure ]
+webkit.org/b/197248 fast/events/autoscroll-with-software-keyboard.html [ Failure ]
+
+webkit.org/b/197251 fast/images/icon-decoding.html [ Failure ]
+webkit.org/b/197251 fast/images/reset-image-animation.html [ Failure ]
+webkit.org/b/197251 fast/images/slower-animation-than-decoding-image.html [ Failure ]
+webkit.org/b/197251 fast/images/slower-decoding-than-animation-image.html [ Failure ]
+webkit.org/b/197251 css3/shapes/shape-outside/shape-image/shape-image-025.html [ ImageOnlyFailure ]
+webkit.org/b/197251 fast/images/animated-image-loop-count.html [ ImageOnlyFailure ]
+webkit.org/b/197251 imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/shape-image-025.html [ ImageOnlyFailure ]
+
+webkit.org/b/197252 http/tests/adClickAttribution/send-attribution-conversion-request.html [ Failure ]
+
+webkit.org/b/197260 imported/w3c/web-platform-tests/hr-time/test_cross_frame_start.html [ Failure ]
+
 #
 # End of non-crashing, non-flaky tests failing
 #


Modified: trunk/LayoutTests/platform/gtk/http/tests/inspector/network/har/har-page-expected.txt (244628 => 244629)

--- trunk/LayoutTests/platform/gtk/http/tests/inspector/network/har/har-page-expected.txt	2019-04-25 00:03:10 UTC (rev 244628)
+++ trunk/LayoutTests/platform/gtk/http/tests/inspector/network/har/har-page-expected.txt	2019-04-25 00:14:51 UTC (rev 244629)
@@ -563,13 +563,12 @@
   "httpVersion": "",
   "cookies": [
 {
-  "name": "same-site-implicit-strict",
-  "value": "same-site-implicit-strict",
+  "name": "same-site-ignored-because-no-value",
+  "value": "same-site-ignored-because-no-value",
   "path": "/",
   "expires": "",
 

[webkit-changes] [244179] trunk/LayoutTests

2019-04-10 Thread aboya
Title: [244179] trunk/LayoutTests








Revision 244179
Author ab...@igalia.com
Date 2019-04-10 18:43:24 -0700 (Wed, 10 Apr 2019)


Log Message
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=196800


* platform/gtk/TestExpectations:
* platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (244178 => 244179)

--- trunk/LayoutTests/ChangeLog	2019-04-11 01:31:51 UTC (rev 244178)
+++ trunk/LayoutTests/ChangeLog	2019-04-11 01:43:24 UTC (rev 244179)
@@ -1,3 +1,11 @@
+2019-04-10  Alicia Boya García  
+
+[GTK] Unreviewed test gardening
+https://bugs.webkit.org/show_bug.cgi?id=196800
+
+* platform/gtk/TestExpectations:
+* platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
+
 2019-04-10  Youenn Fablet  
 
 [ Mojave WK2 iOS Sim ] Layout Test http/wpt/cache-storage/quota-third-party.https.html is a flaky failure


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (244178 => 244179)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-04-11 01:31:51 UTC (rev 244178)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-04-11 01:43:24 UTC (rev 244179)
@@ -1333,6 +1333,8 @@
 webkit.org/b/196542 printing/crash-while-formatting-subframe-for-printing.html [ Timeout Crash ]
 webkit.org/b/196542 printing/printing-events.html [ Timeout Crash ]
 
+webkit.org/b/196799 imported/blink/fast/css/first-letter-crash-document-disposal.html [ Pass Crash ]
+
 #
 # End of Crashing tests
 #
@@ -1893,7 +1895,7 @@
 
 webkit.org/b/181030 wasm/iframe-postmessage.html [ Pass Failure ]
 webkit.org/b/179948 [ Release ] fast/hidpi/filters-reference.html [ Pass ImageOnlyFailure ]
-webkit.org/b/181031 fast/frames/crash-when-iframe-is-remove-in-eventhandler.html [ Pass Crash ]
+webkit.org/b/196791 webkit.org/b/181031 fast/frames/crash-when-iframe-is-remove-in-eventhandler.html [ Pass Crash Failure ]
 
 webkit.org/b/181528 http/tests/cache/memory-cache-pruning.html [ Pass Crash ]
 
@@ -2153,6 +2155,8 @@
 
 webkit.org/b/195466 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html [ Failure Pass ]
 
+webkit.org/b/196798 media/track/track-cue-css.html [ Failure Pass ]
+
 #
 # End of Flaky tests
 #
@@ -3815,6 +3819,49 @@
 
 webkit.org/b/196541 editing/pasteboard/paste-content-with-overflow-auto-parent-across-origin.html [ Failure ]
 
+webkit.org/b/196791 tables/mozilla/dom/deleteCol1.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/deleteCol2.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/deleteCol3.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/deleteColGroup1.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/deleteColGroup2.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/insertColGroups1.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/insertColGroups2.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/insertCols1.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/insertCols2.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/insertCols3.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/insertCols4.html [ Failure ]
+webkit.org/b/196791 tables/mozilla/dom/insertCols5.html [ Failure ]
+webkit.org/b/196791 svg/hixie/text/003.html [ Failure ]
+webkit.org/b/196791 svg/custom/linking-uri-01-b.svg [ Failure ]
+webkit.org/b/196791 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-width-1000px.html [ Failure ]
+webkit.org/b/196791 fast/text/international/bidi-listbox-atsui.html [ Failure ]
+webkit.org/b/196791 fast/text/international/bidi-innertext.html [ Failure ]
+webkit.org/b/196791 fast/text/international/bidi-L2-run-reordering.html [ Failure ]
+webkit.org/b/196791 fast/scrolling/scroll-animator-select-list-events.html [ Failure ]
+webkit.org/b/196791 fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html [ Failure ]
+webkit.org/b/196791 fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html [ Failure ]
+webkit.org/b/196791 fast/scrolling/scroll-animator-basic-events.html [ Failure ]
+webkit.org/b/196791 fast/frames/inline-object-inside-frameset.html [ Failure ]
+webkit.org/b/196791 fast/forms/visual-hebrew-text-field.html [ Failure ]
+webkit.org/b/196791 fast/forms/select-visual-hebrew.html [ Failure ]
+webkit.org/b/196791 

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

2019-03-28 Thread aboya
Title: [243610] trunk/Source/WebCore








Revision 243610
Author ab...@igalia.com
Date 2019-03-28 11:05:13 -0700 (Thu, 28 Mar 2019)


Log Message
[MSE][GStreamer] Remove dead code in MediaPlayerPrivateGStreamer::doSeek()
https://bugs.webkit.org/show_bug.cgi?id=196352

Reviewed by Xabier Rodriguez-Calvar.

MediaPlayerPrivateGStreamerMSE overrides doSeek() and seek(), so this
branch is never reached.

This patch does not introduce behavior changes.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::doSeek):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (243609 => 243610)

--- trunk/Source/WebCore/ChangeLog	2019-03-28 17:50:19 UTC (rev 243609)
+++ trunk/Source/WebCore/ChangeLog	2019-03-28 18:05:13 UTC (rev 243610)
@@ -1,3 +1,18 @@
+2019-03-28  Alicia Boya García  
+
+[MSE][GStreamer] Remove dead code in MediaPlayerPrivateGStreamer::doSeek()
+https://bugs.webkit.org/show_bug.cgi?id=196352
+
+Reviewed by Xabier Rodriguez-Calvar.
+
+MediaPlayerPrivateGStreamerMSE overrides doSeek() and seek(), so this
+branch is never reached.
+
+This patch does not introduce behavior changes.
+
+* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+(WebCore::MediaPlayerPrivateGStreamer::doSeek):
+
 2019-03-28  Simon Fraser  
 
 [macOS WK2] Overlays on instagram.com are shifted if you click on a photo after scrolling


Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (243609 => 243610)

--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2019-03-28 17:50:19 UTC (rev 243609)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2019-03-28 18:05:13 UTC (rev 243610)
@@ -591,11 +591,6 @@
 // Default values for rate >= 0.
 MediaTime startTime = position, endTime = MediaTime::invalidTime();
 
-// TODO: Should do more than that, need to notify the media source
-// and probably flush the pipeline at least.
-if (isMediaSource())
-return true;
-
 if (rate < 0) {
 startTime = MediaTime::zeroTime();
 // If we are at beginning of media, start from the end to






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


[webkit-changes] [243138] trunk

2019-03-19 Thread aboya
Title: [243138] trunk








Revision 243138
Author ab...@igalia.com
Date 2019-03-19 07:38:45 -0700 (Tue, 19 Mar 2019)


Log Message
[MSE] Use tolerance in eraseBeginTime
https://bugs.webkit.org/show_bug.cgi?id=195911

Reviewed by Jer Noble.

Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=190085 introduced tolerance
when erasing frames during the Coded Frame Processing algorithm in
such a way that, in files with less than perfect timestamps, a frame
existing before after the current append is not erased accidentally
due to small overlaps.

This patch takes care of the opposite problem: we don't want an old
frame being accidentally NOT erased by a new one with the same
timestamps just because these overlaps make
highestPresentationTimestamp very slightly higher than the frame PTS.

This bug in practice causes some frames of the old quality to not be
erased when the new quality is appended, resulting in some seemingly
still frames from a different quality appearing at some points during
WebM video in presence of quality changes.

This bug can be reduced to this minimal test case that illustrates the
timestamp imprecission of a typical WebM file:

function sampleRun(generation) {
return concatenateSamples([
makeASample( 0,  0, 17, 100, 1, SAMPLE_FLAG.SYNC, generation),
makeASample(167000, 167000, 17, 100, 1, SAMPLE_FLAG.NONE, generation),
makeASample(333000, 333000, 17, 100, 1, SAMPLE_FLAG.SYNC, generation), // overlaps previous frame
makeASample(50, 50, 17, 100, 1, SAMPLE_FLAG.NONE, generation),
]);
}

After appending this twice it would be expected that the second
generation takes fully over the first, since the timestamps are
completely the same. Due to the bug, sync frames with an overlap, like
the third one in that list, actually persist from the first
generation, due to lack of tolerance when comparing the start of a new
frame with highestPresentationTimestamp.

This patch introduces the tolerance in that case too to fix this
problem.

Test: media/media-source/media-source-append-twice-overlapping-sync-frame.html

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

LayoutTests:

* media/media-source/media-source-append-twice-overlapping-sync-frame-expected.txt: Added.
* media/media-source/media-source-append-twice-overlapping-sync-frame.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediasource/SourceBuffer.cpp


Added Paths

trunk/LayoutTests/media/media-source/media-source-append-twice-overlapping-sync-frame-expected.txt
trunk/LayoutTests/media/media-source/media-source-append-twice-overlapping-sync-frame.html




Diff

Modified: trunk/LayoutTests/ChangeLog (243137 => 243138)

--- trunk/LayoutTests/ChangeLog	2019-03-19 13:46:25 UTC (rev 243137)
+++ trunk/LayoutTests/ChangeLog	2019-03-19 14:38:45 UTC (rev 243138)
@@ -1,3 +1,13 @@
+2019-03-19  Alicia Boya García  
+
+[MSE] Use tolerance in eraseBeginTime
+https://bugs.webkit.org/show_bug.cgi?id=195911
+
+Reviewed by Jer Noble.
+
+* media/media-source/media-source-append-twice-overlapping-sync-frame-expected.txt: Added.
+* media/media-source/media-source-append-twice-overlapping-sync-frame.html: Added.
+
 2019-03-19  Antti Koivisto  
 
 Layer with no backing store should still hit-test over a scroller


Added: trunk/LayoutTests/media/media-source/media-source-append-twice-overlapping-sync-frame-expected.txt (0 => 243138)

--- trunk/LayoutTests/media/media-source/media-source-append-twice-overlapping-sync-frame-expected.txt	(rev 0)
+++ trunk/LayoutTests/media/media-source/media-source-append-twice-overlapping-sync-frame-expected.txt	2019-03-19 14:38:45 UTC (rev 243138)
@@ -0,0 +1,16 @@
+
+EXPECTED (source.readyState == 'closed') OK
+EVENT(sourceopen)
+RUN(sourceBuffer = source.addSourceBuffer("video/mock; codecs=mock"))
+RUN(sourceBuffer.appendBuffer(initSegment))
+EVENT(updateend)
+RUN(sourceBuffer.appendBuffer(sampleRun(1)))
+EVENT(updateend)
+RUN(sourceBuffer.appendBuffer(sampleRun(2)))
+EVENT(updateend)
+{PTS({0/100 = 0.00}), DTS({0/100 = 0.00}), duration({17/100 = 0.17}), flags(1), generation(2)}
+{PTS({167000/100 = 0.167000}), DTS({167000/100 = 0.167000}), duration({17/100 = 0.17}), flags(0), generation(2)}
+{PTS({333000/100 = 0.333000}), DTS({333000/100 = 0.333000}), duration({17/100 = 0.17}), flags(1), generation(2)}
+{PTS({50/100 = 0.50}), DTS({50/100 = 0.50}), duration({17/100 = 0.17}), flags(0), generation(2)}
+END OF TEST
+


Added: trunk/LayoutTests/media/media-source/media-source-append-twice-overlapping-sync-frame.html (0 => 243138)

--- trunk/LayoutTests/media/media-source/media-source-append-twice-overlapping-sync-frame.html	

[webkit-changes] [242924] trunk/LayoutTests

2019-03-13 Thread aboya
Title: [242924] trunk/LayoutTests








Revision 242924
Author ab...@igalia.com
Date 2019-03-13 17:37:46 -0700 (Wed, 13 Mar 2019)


Log Message
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=195717


* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/wpe/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (242923 => 242924)

--- trunk/LayoutTests/ChangeLog	2019-03-14 00:17:23 UTC (rev 242923)
+++ trunk/LayoutTests/ChangeLog	2019-03-14 00:37:46 UTC (rev 242924)
@@ -1,3 +1,11 @@
+2019-03-13  Alicia Boya García  
+
+[GTK] Unreviewed test gardening
+https://bugs.webkit.org/show_bug.cgi?id=195717
+
+* platform/gtk/TestExpectations:
+* platform/wpe/TestExpectations:
+
 2019-03-13  Dean Jackson  
 
 Block all plugins smaller than 5x5px


Modified: trunk/LayoutTests/platform/gtk/TestExpectations (242923 => 242924)

--- trunk/LayoutTests/platform/gtk/TestExpectations	2019-03-14 00:17:23 UTC (rev 242923)
+++ trunk/LayoutTests/platform/gtk/TestExpectations	2019-03-14 00:37:46 UTC (rev 242924)
@@ -2159,6 +2159,8 @@
 
 webkit.org/b/194386 media/video-background-playback.html [ Crash Pass ]
 
+webkit.org/b/195714 fast/canvas/webgl/texImage2D-video-flipY-true.html [ Pass Timeout ]
+
 #
 # End of Flaky tests
 #
@@ -3764,6 +3766,20 @@
 
 webkit.org/b/195259 compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html [ ImageOnlyFailure ]
 
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-events-networkState.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-control.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-br.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-source.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-text.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source-after.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-source.html [ Failure ]
+webkit.org/b/195670 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-remove-text.html [ Failure ]
+
+webkit.org/b/195671 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative.html [ Failure ]
+webkit.org/b/195671 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads_without_user_activation.sub.tentative.html [ Failure ]
+
+webkit.org/b/195712 inspector/canvas/recording-html-2d.html [ Failure ]
+
 #
 # End of non-crashing, non-flaky tests failing
 #


Modified: trunk/LayoutTests/platform/wpe/TestExpectations (242923 => 242924)

--- trunk/LayoutTests/platform/wpe/TestExpectations	2019-03-14 00:17:23 UTC (rev 242923)
+++ trunk/LayoutTests/platform/wpe/TestExpectations	2019-03-14 00:37:46 UTC (rev 242924)
@@ -759,6 +759,8 @@
 webkit.org/b/195267 imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html [ Pass Crash ]
 webkit.org/b/195267 imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html [ Pass Crash ]
 
+webkit.org/b/195714 fast/canvas/webgl/texImage2D-video-flipY-true.html [ Pass Timeout ]
+
 #
 # 7. SLOW TESTS
 #
@@ -1611,6 +1613,18 @@
 
 webkit.org/b/193641 webrtc/video-setDirection.html [ Failure ]
 
+webkit.org/b/195670 

  1   2   >