[webkit-changes] [294966] trunk/Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py
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', +authenticated
[webkit-changes] [294491] trunk/Tools/Scripts/libraries
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): gl
[webkit-changes] [294483] trunk/metadata/contributors.json
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
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 concatenateSa
[webkit-changes] [284711] trunk
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) --- trunk/Source/WebCore/
[webkit-changes] [284087] trunk
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 MediaT
[webkit-changes] [283609] trunk
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 +https://bugs
[webkit-changes] [283176] trunk/Source/WebCore
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
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
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 13:2
[webkit-changes] [280775] trunk/Source/WebCore
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
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
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 != &Thread::current()); // Thread attempted recursive lock on non-recursive lock. +mutex().lock(); +m_isLocked = true; +#if ENABLE_DATA_MUTEX_CHECKS +m_dataMutex.m_currentMutexHolder = &Thread::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=2270
[webkit-changes] [278655] trunk/Source
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(&other != this); +other.m_lockable = nullptr; +} + +ExternalLocker& operator=(ExternalLocker&& other) +{ +ASSERT(&other != 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
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 &m_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
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
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
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
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, &response]() { +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
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): +(WebCore::
[webkit-changes] [277263] trunk/Source/WebCore
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 ad
[webkit-changes] [277119] trunk/LayoutTests
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
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, &srcTemplate, 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
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
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, // pla
[webkit-changes] [275507] trunk/LayoutTests
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
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
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
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 Co
[webkit-changes] [272484] trunk
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; +sw
[webkit-changes] [272407] trunk/Tools
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
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 element.child
[webkit-changes] [272013] trunk/Tools
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
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
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
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
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
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
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 th
[webkit-changes] [271024] trunk
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 imported/w3c/web-platform-tests/media-source/mediasource-seq
[webkit-changes] [271020] trunk/LayoutTests
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.
[webkit-changes] [270432] trunk/LayoutTests
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
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, ["loadedmeta
[webkit-changes] [265494] trunk/Source/WebCore
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) -m_sourceBufferPrivateClient->
[webkit-changes] [265340] trunk/LayoutTests
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
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
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): +* platform/graphics/g
[webkit-changes] [264299] trunk/Source/WebCore
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
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
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): +* platform/graphics/gstreamer/mse/MediaPlayer
[webkit-changes] [264166] trunk/Source/WebCore
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
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: trunk/Source/WebCore/platform/graphics/MediaSourcePrivateC
[webkit-changes] [264161] trunk/Source/WebCore
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
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
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: +* platform/graphics/gstreamer/mse/M
[webkit-changes] [263556] trunk/Source/WebCore
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
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
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 gst_g
[webkit-changes] [263397] trunk/Tools
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
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& track
[webkit-changes] [261744] trunk
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 STREAMS_SELECT
[webkit-changes] [261683] trunk/Source/WebCore
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 desig
[webkit-changes] [261165] trunk
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 MediaPlayerPrivateGStreamer::pl
[webkit-changes] [260892] trunk/Source/WebCore
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
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 imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playba
[webkit-changes] [259879] trunk
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 != &Thread::current()); // Thread attempted recursive lock (unsupported). +m_lock.lock(); +#if ENABLE_DATA_MUTEX_CHECKS +ASSERT(!m_owner); +m_owner = &Thread::current(); +#endif +} + +void unlock() +{ +#if ENABLE_DATA_MUTEX_CHECKS +m_owner = nullptr; +#endif +m_lock.unlock(); +} + +bool tryLock() +{ +DATA_MUTEX_CHECK(m_owner != &Thread::current());
[webkit-changes] [259870] trunk/Tools
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
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
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
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 [ Timeo
[webkit-changes] [258844] trunk/Source/WebCore
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 +// Als
[webkit-changes] [257468] trunk/Source/WebCore
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
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) -gst_tag_list_unref(p
[webkit-changes] [254670] trunk
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), generat
[webkit-changes] [254563] trunk/Tools
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
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, }; -MediaTime();
[webkit-changes] [254200] trunk/Source
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 Media
[webkit-changes] [254013] trunk/LayoutTests/imported/w3c
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
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
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
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 +h
[webkit-changes] [250920] trunk/LayoutTests
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
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 css3/blending/blend-mode-isolation-
[webkit-changes] [250362] trunk/LayoutTests
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 [ Fail
[webkit-changes] [249332] trunk
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 mul
[webkit-changes] [249325] trunk
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 media/media-source/media
[webkit-changes] [248521] trunk
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); ret
[webkit-changes] [247788] trunk/LayoutTests/imported/w3c
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
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 = source.
[webkit-changes] [247778] trunk
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(), "err
[webkit-changes] [247723] trunk
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): +(WTF::DataM
[webkit-changes] [247535] trunk/LayoutTests
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 http/tests/insp
[webkit-changes] [246604] trunk/LayoutTests
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
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 ] w
[webkit-changes] [245074] trunk/LayoutTests
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 assert_u
[webkit-changes] [244629] trunk/LayoutTests
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
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 fast/forms/form-submission
[webkit-changes] [243610] trunk/Source/WebCore
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
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
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 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-el