Commit Graph

128 Commits

Author SHA1 Message Date
alwu
07564922e9 Bug 1675326 - part1 : move webvtt related files into dom/media/webvtt. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D96103
2020-11-09 15:47:07 +00:00
Sylvestre Ledru
68b806d604 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 17:04:01 +00:00
Butkovits Atila
a6e7dcc53f Backed out changeset c0adbf7522dc (bug 1674637) for bustage on GMPParent.cpp. CLOSED TREE 2020-11-04 10:54:36 +02:00
Sylvestre Ledru
8f709b39e8 Bug 1674637 - Use nested namespaces in dom/ r=sg,andi
Also add some missing namespace qualifications

Done with:
./mach static-analysis check --checks="-*,modernize-concat-nested-namespaces" --fix dom/
./mach clang-format -p $(hg status dom/|grep ^M|awk '{print $2}')

Differential Revision: https://phabricator.services.mozilla.com/D95456
2020-11-04 08:29:00 +00:00
Frederik Braun
617d3006d9 Bug 1366973: Rename security flags to not contain DATA anymore r=geckoview-reviewers,ckerschb,snorp
Differential Revision: https://phabricator.services.mozilla.com/D83490
2020-07-15 11:20:45 +00:00
Simon Giesecke
a69d79b6db Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Mihai Alexandru Michis
0f0d369025 Backed out changeset f2508a6e4c53 (bug 1636572) for causing wpt failures in track-element/cors/*
CLOSED TREE
2020-05-11 10:47:22 +03:00
alwu
0774242043 Bug 1636572 - prevent start a non-necessary new load if we're running another load for the same URL. r=jya
This patch will do :
- prevent starting another new load if that load is the same as the currently running load

The advantage of doing so is to avoid running same process again, which is unnecessary

More details :
When applying patches from bug1633935, it exposed an issue of the previous load interfering the track element when a new load was started.
It happens on `test_texttrack_mode_change_during_loading.html`. In that test, the first load happens when we set the src to the track element [1] and the second load happens when we change the mode of the track element [2].

In this situation, the first load an the second load is actually the same, they are going to fetch data from the same resource. According to the step 1 in the spec [3], we should prevent running another load if there is another same running occurrence of this algorithm.

[1] https://searchfox.org/mozilla-central/rev/dc4560dcaafd79375b9411fdbbaaebb0a59a93ac/dom/media/test/test_texttrack_mode_change_during_loading.html#53
[2] https://searchfox.org/mozilla-central/rev/dc4560dcaafd79375b9411fdbbaaebb0a59a93ac/dom/media/test/test_texttrack_mode_change_during_loading.html#62
[3] https://html.spec.whatwg.org/multipage/media.html#start-the-track-processing-model

Differential Revision: https://phabricator.services.mozilla.com/D74514
2020-05-09 10:42:53 +00:00
Sean Feng
e2b8b11349 Bug 1377999 - Make HTML Element to adapt the DOMArena changes r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D57699
2020-03-17 14:53:08 +00:00
Simon Giesecke
968040c445 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/html. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D63171
2020-02-20 16:19:15 +00:00
alwu
31ed38da5d Bug 1613329 - part1 : append text track to media element when binding track element to DOM tree. r=bzbarsky
This change ensures that we always remember to add a text track to media element's track list.

Differential Revision: https://phabricator.services.mozilla.com/D61666
2020-02-11 00:41:14 +00:00
Gabriele Svelto
eb403b8785 Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442
2019-12-06 09:24:56 +00:00
Dorel Luca
67889e1013 Backed out changeset f6e53d1c6518 (bug 1600545) for Android build bustage. CLOSED TREE 2019-12-04 17:32:27 +02:00
Gabriele Svelto
dc6fa2e86c Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55442
2019-12-04 15:01:19 +00:00
Emilio Cobos Álvarez
0f0c42a05d Bug 1600353 - Make TextTrackSource and TextTrackReadyState enum classes. r=bzbarsky
To avoid defining `Loading`, `Loaded`, etc. in the mozilla::dom namespace. Also
it is a bit cleaner and saves some memory in the TextTrack objects by specifying
the size to be smaller.

Differential Revision: https://phabricator.services.mozilla.com/D55312
2019-12-02 19:13:11 +00:00
Nicholas Nethercote
c4aacd8403 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

Differential Revision: https://phabricator.services.mozilla.com/D39138
2019-07-26 01:10:23 +00:00
Alastor Wu
3d38abc578 Bug 1562021 - part5 : add test 'test_texttrack_mode_change_during_loading.html'. r=jya
In order to simulate the specific running order, we have to add a test event 'mozStartedLoadingTextTrack', which would be controlled under a pref.

This test is used to ensure that we won't get `error` event when we change track's  mode during loading.

Differential Revision: https://phabricator.services.mozilla.com/D36410
2019-07-03 23:28:31 +00:00
Alastor Wu
6c55e0ec1f Bug 1562021 - part4 : wrap channel and listener clean-up to a function. r=jya
There are several places doing channel or listenr clean up, all these places should do channel and listener clean-up together because they are being used as a pair.

Differential Revision: https://phabricator.services.mozilla.com/D36409
2019-07-03 23:27:12 +00:00
Alastor Wu
8804006114 Bug 1562021 - part3 : cancel old VTT listener when we start a new load. r=jya,baku
When we start a new load, all previous data fetching from the previous listener and all state changing applied to track element should be ignored.

Therefore, we add a new method `Cancel()` which owner of the listener should call when we would like to discard current listener.

Differential Revision: https://phabricator.services.mozilla.com/D36407
2019-07-03 23:23:29 +00:00
Alastor Wu
b8b7924a51 Bug 1562021 - part2 : using same log module as other VTT related files. r=jya
This log module should be merged into a part of `WebVTT` log module because it's useless to check this log module independently.

Differential Revision: https://phabricator.services.mozilla.com/D36406
2019-07-03 06:50:04 +00:00
Logan Smyth
77108e65d7 Bug 1529345 - Part 2: Add Gecko infrastructure for receiving notifications about debugger-related events. r=jimb,smaug
Differential Revision: https://phabricator.services.mozilla.com/D30565
2019-06-17 04:36:29 +00:00
Alastor Wu
cdb12d5dae Bug 1464012 - part1 : directly check media element's crossorigin attribute. r=jya
As `GetCORSMode()` would only be valid after media element starts loading, so we would fail to get the CORS mode if media's preload is `none`.

Therefore, according to the spec [1], we should directly check parent media element's `crossorigin` attribute in order to decide the `corsAttributeState`.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:attr-media-crossorigin

Differential Revision: https://phabricator.services.mozilla.com/D34755
2019-06-14 17:56:33 +00:00
Emilio Cobos Álvarez
a3b32df884 Bug 1555216 - Change the signature of BindToTree to be (BindContext&, nsINode& aParentNode). r=bzbarsky
BindContext was going to have way more information at first, but then I realized
that most of the things I wanted to know were basically a flag away using the
parent node.

Still I think it's worth it, now experimenting with BindToTree will only mean
adding a field to a struct that's included from a couple cpp files, instead of a
massive pain.

I also think this is clearer, and doing this highlights quite a few
inconsistencies in our code which I've left untouched, but commented with
FIXMEs.

Steps are:

$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsresult BindToTree(Document\* aDocument, nsIContent\* aParent,#nsresult BindToTree(BindContext\&, nsINode\& aParent)#g' $file; done
$ for file in $(rg 'nsresult BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#                      nsIContent\* aBindingParent) override#override#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(Document\* aDocument, nsIContent\* aParent,#::BindToTree(BindContext\& aContext, nsINode\& aParent)#g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#nsIContent\* aBindingParent)##g' $file; done
$ for file in $(rg '::BindToTree\(' | cut -d : -f 1 | sort | uniq); do sed -i 's#::BindToTree(aDocument, aParent, aBindingParent)#::BindToTree(aContext, aParent)#g' $file; done
$ ./mach clang-format

Then manual fixups.

Depends on D32948

Differential Revision: https://phabricator.services.mozilla.com/D32949
2019-05-31 23:31:52 +02:00
Emilio Cobos Álvarez
9160cd2967 Bug 1555143 - Remove unused aDeep argument from UnbindFromTree. r=bzbarsky
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(bool aDeep = true,#UnbindFromTree(#g' $file; done
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(bool aDeep,#UnbindFromTree(#g' $file; done
$ for file in $(rg UnbindFromTree | cut -d : -f 1 | sort | uniq); do sed -i 's#UnbindFromTree(aDeep,#UnbindFromTree(#g' $file; done
$ ./mach clang-format

And fix the two callers and little use of the aDeep argument (see the "Manual
changes" patch attached to bug).

Differential Revision: https://phabricator.services.mozilla.com/D32898
2019-05-28 22:47:08 +00:00
alwu
6a7028ad36 Bug 1550633 - part15 : return error when we failed to create channel. r=jya
The channel might not be created correctly if we pass invaild url (eg. "invalid://url"), we should handle this error.

Differential Revision: https://phabricator.services.mozilla.com/D32038
2019-05-24 00:40:58 +00:00
alwu
1a7072a01d Bug 1550633 - part10 : automatically capture and print the address of track element in debug log and add new log. r=jya
To reduce non-neccesary input, we can always capture `this` and print the address in the log, and use same log level for all of them.

Differential Revision: https://phabricator.services.mozilla.com/D31559
2019-05-24 00:41:21 +00:00
alwu
24615bb9fd Bug 1550633 - part9 : capture 'this' in lambda. r=jya
There are too many `self` used in the lambda, we can just capture `this` to remove redudant `self`.

Differential Revision: https://phabricator.services.mozilla.com/D31558
2019-05-24 00:41:25 +00:00
alwu
534a5d46f8 Bug 1550633 - part8 : no need to reload if the new url is the same. r=jya
Accoding to spec [1], after loading finished, the start the track processing model would stop at step12 and wait until the track URL changes to the URL which is not equal to the URL we have loaded before. That means, if we change track URL to the same URL we loaded before, we won't have to reload the resource.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:track-url-5

Differential Revision: https://phabricator.services.mozilla.com/D31557
2019-05-24 00:41:23 +00:00
alwu
8c1210fa16 Bug 1550633 - part7 : change ready state to 'FAILED_TO_LOAD' and dispatch 'error' event when we have no 'src' or have an empty url. r=jya
`Failed to load` [1] indicates that the text track was enabled, but when the user agent attempted to obtain it, this failed in some way.

According to the spec [2], if fetching fails for any reason (network error, the server returns an error code, CORS fails, etc), or if URL is the empty string, then queue a task to first change the text track readiness state to `failed to load` and then fire an event named `error` at the track element. And spec [3] also mention that, if the track URL changes so that it is no longer equal to URL while fetching is ongoing, we also need to change the text track readiness state to`failed to load` and dispatch `error`.

[1] https://html.spec.whatwg.org/multipage/media.html#text-track-readiness-state
[2] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:text-track-failed-to-load
[3] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:text-track-failed-to-load-3

Differential Revision: https://phabricator.services.mozilla.com/D31556
2019-05-24 00:41:27 +00:00
alwu
b4f03fd78a Bug 1550633 - part6 : clear track's cues list whenever track element's src attribute set, changed or removed. r=jya,baku
According to the spec [1], we should empty track's cue list whenever a track element has its src attribute set, changed, or removed.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:attr-track-src

Differential Revision: https://phabricator.services.mozilla.com/D31552
2019-05-24 00:41:29 +00:00
alwu
df4894f312 Bug 1550633 - part2 : maybe start loading resource when the track's mode changes. r=jya
According to the spec [1], the user agent must start the track processing model when text track has its text track mode changed.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:start-the-track-processing-model

Differential Revision: https://phabricator.services.mozilla.com/D31372
2019-05-24 00:41:38 +00:00
alwu
407f8db0ab Bug 1550633 - part1 : HTMLTrackElement should not load resource when its text track is disable. r=jya
According to the spec step2 [1], we should not load resource for the track element which text track is disabled.

[1] https://html.spec.whatwg.org/multipage/media.html#start-the-track-processing-model

Differential Revision: https://phabricator.services.mozilla.com/D31371
2019-05-24 00:41:40 +00:00
Andreea Pavel
3af137515b Backed out 23 changesets (bug 1550633) for causing bug 1548454 to permafail on a CLOSED TREE
Backed out changeset ce4a146da49d (bug 1550633)
Backed out changeset e1a33576d6ad (bug 1550633)
Backed out changeset bbd8f62b9bff (bug 1550633)
Backed out changeset 583d4e0945ad (bug 1550633)
Backed out changeset 29487a59512d (bug 1550633)
Backed out changeset 0f6ddd898e89 (bug 1550633)
Backed out changeset fd1afdd721e3 (bug 1550633)
Backed out changeset d4a6c1337f89 (bug 1550633)
Backed out changeset 2d4773f2dc6c (bug 1550633)
Backed out changeset e9dea69efffe (bug 1550633)
Backed out changeset 4265dd65cec3 (bug 1550633)
Backed out changeset 2aaaa42c409b (bug 1550633)
Backed out changeset d85485f76233 (bug 1550633)
Backed out changeset b6e8370b6efb (bug 1550633)
Backed out changeset afaef937598b (bug 1550633)
Backed out changeset 470d8fae0461 (bug 1550633)
Backed out changeset 8024fcefe8b1 (bug 1550633)
Backed out changeset 224eadc5ef27 (bug 1550633)
Backed out changeset 26c3c521ce27 (bug 1550633)
Backed out changeset def294ad0efb (bug 1550633)
Backed out changeset b15cc6e689e7 (bug 1550633)
Backed out changeset be178934cbbb (bug 1550633)
Backed out changeset 9893ccf1f8ad (bug 1550633)
2019-05-24 03:38:26 +03:00
alwu
6e1baae55a Bug 1550633 - part15 : return error when we failed to create channel. r=jya
The channel might not be created correctly if we pass invaild url (eg. "invalid://url"), we should handle this error.

Differential Revision: https://phabricator.services.mozilla.com/D32038
2019-05-23 09:03:08 +00:00
alwu
97d5651156 Bug 1550633 - part10 : automatically capture and print the address of track element in debug log and add new log. r=jya
To reduce non-neccesary input, we can always capture `this` and print the address in the log, and use same log level for all of them.

Differential Revision: https://phabricator.services.mozilla.com/D31559
2019-05-23 09:03:31 +00:00
alwu
22e496af56 Bug 1550633 - part9 : capture 'this' in lambda. r=jya
There are too many `self` used in the lambda, we can just capture `this` to remove redudant `self`.

Differential Revision: https://phabricator.services.mozilla.com/D31558
2019-05-23 09:03:33 +00:00
alwu
efd1a23368 Bug 1550633 - part8 : no need to reload if the new url is the same. r=jya
Accoding to spec [1], after loading finished, the start the track processing model would stop at step12 and wait until the track URL changes to the URL which is not equal to the URL we have loaded before. That means, if we change track URL to the same URL we loaded before, we won't have to reload the resource.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:track-url-5

Differential Revision: https://phabricator.services.mozilla.com/D31557
2019-05-23 09:03:35 +00:00
alwu
348cec3cfb Bug 1550633 - part7 : change ready state to 'FAILED_TO_LOAD' and dispatch 'error' event when we have no 'src' or have an empty url. r=jya
`Failed to load` [1] indicates that the text track was enabled, but when the user agent attempted to obtain it, this failed in some way.

According to the spec [2], if fetching fails for any reason (network error, the server returns an error code, CORS fails, etc), or if URL is the empty string, then queue a task to first change the text track readiness state to `failed to load` and then fire an event named `error` at the track element. And spec [3] also mention that, if the track URL changes so that it is no longer equal to URL while fetching is ongoing, we also need to change the text track readiness state to`failed to load` and dispatch `error`.

[1] https://html.spec.whatwg.org/multipage/media.html#text-track-readiness-state
[2] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:text-track-failed-to-load
[3] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:text-track-failed-to-load-3

Differential Revision: https://phabricator.services.mozilla.com/D31556
2019-05-23 09:03:37 +00:00
alwu
f52bd78451 Bug 1550633 - part6 : clear track's cues list whenever track element's src attribute set, changed or removed. r=jya,baku
According to the spec [1], we should empty track's cue list whenever a track element has its src attribute set, changed, or removed.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:attr-track-src

Differential Revision: https://phabricator.services.mozilla.com/D31552
2019-05-23 09:03:40 +00:00
alwu
dfde8ca81f Bug 1550633 - part2 : maybe start loading resource when the track's mode changes. r=jya
According to the spec [1], the user agent must start the track processing model when text track has its text track mode changed.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:start-the-track-processing-model

Differential Revision: https://phabricator.services.mozilla.com/D31372
2019-05-23 09:05:02 +00:00
alwu
7327149474 Bug 1550633 - part1 : HTMLTrackElement should not load resource when its text track is disable. r=jya
According to the spec step2 [1], we should not load resource for the track element which text track is disabled.

[1] https://html.spec.whatwg.org/multipage/media.html#start-the-track-processing-model

Differential Revision: https://phabricator.services.mozilla.com/D31371
2019-05-23 09:05:04 +00:00
Mihai Alexandru Michis
38a06a0389 Backed out 22 changesets (bug 1550633) for browser-chrome failure at browser_cache.js. CLOSED TREE
Backed out changeset 87067f045e1e (bug 1550633)
Backed out changeset a42883570179 (bug 1550633)
Backed out changeset bf1426571565 (bug 1550633)
Backed out changeset 97f61668f78c (bug 1550633)
Backed out changeset e22ef6f848aa (bug 1550633)
Backed out changeset 22213d6f047c (bug 1550633)
Backed out changeset 27e03b195718 (bug 1550633)
Backed out changeset 9a5e3e6b8c21 (bug 1550633)
Backed out changeset d338d667dcbd (bug 1550633)
Backed out changeset abc099f50543 (bug 1550633)
Backed out changeset ed0f76cca0d9 (bug 1550633)
Backed out changeset 4b193e156faa (bug 1550633)
Backed out changeset fefc8d667b9c (bug 1550633)
Backed out changeset e4128df1406b (bug 1550633)
Backed out changeset 9ad7d7b5ef6d (bug 1550633)
Backed out changeset d8fdfd9505bf (bug 1550633)
Backed out changeset 679ce0bdbf18 (bug 1550633)
Backed out changeset f75c225dc273 (bug 1550633)
Backed out changeset 4346465d73b1 (bug 1550633)
Backed out changeset 4c8fd0720cc2 (bug 1550633)
Backed out changeset 81545b2c0b58 (bug 1550633)
Backed out changeset 12fc5abcd066 (bug 1550633)
2019-05-23 11:54:26 +03:00
alwu
d4a0c4d365 Bug 1550633 - part15 : return error when we failed to create channel. r=jya
The channel might not be created correctly if we pass invaild url (eg. "invalid://url"), we should handle this error.

Differential Revision: https://phabricator.services.mozilla.com/D32038
2019-05-22 22:22:54 +00:00
alwu
8f3d6bb24a Bug 1550633 - part10 : automatically capture and print the address of track element in debug log and add new log. r=jya
To reduce non-neccesary input, we can always capture `this` and print the address in the log, and use same log level for all of them.

Differential Revision: https://phabricator.services.mozilla.com/D31559
2019-05-20 09:38:08 +00:00
alwu
f73a1ec682 Bug 1550633 - part9 : capture 'this' in lambda. r=jya
There are too many `self` used in the lambda, we can just capture `this` to remove redudant `self`.

Differential Revision: https://phabricator.services.mozilla.com/D31558
2019-05-20 09:37:44 +00:00
alwu
680f31b952 Bug 1550633 - part8 : no need to reload if the new url is the same. r=jya
Accoding to spec [1], after loading finished, the start the track processing model would stop at step12 and wait until the track URL changes to the URL which is not equal to the URL we have loaded before. That means, if we change track URL to the same URL we loaded before, we won't have to reload the resource.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:track-url-5

Differential Revision: https://phabricator.services.mozilla.com/D31557
2019-05-22 01:49:35 +00:00
alwu
1e7f43ae52 Bug 1550633 - part7 : change ready state to 'FAILED_TO_LOAD' and dispatch 'error' event when we have no 'src' or have an empty url. r=jya
`Failed to load` [1] indicates that the text track was enabled, but when the user agent attempted to obtain it, this failed in some way.

According to the spec [2], if fetching fails for any reason (network error, the server returns an error code, CORS fails, etc), or if URL is the empty string, then queue a task to first change the text track readiness state to `failed to load` and then fire an event named `error` at the track element. And spec [3] also mention that, if the track URL changes so that it is no longer equal to URL while fetching is ongoing, we also need to change the text track readiness state to`failed to load` and dispatch `error`.

[1] https://html.spec.whatwg.org/multipage/media.html#text-track-readiness-state
[2] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:text-track-failed-to-load
[3] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:text-track-failed-to-load-3

Differential Revision: https://phabricator.services.mozilla.com/D31556
2019-05-21 13:37:15 +00:00
alwu
4465ab90bf Bug 1550633 - part6 : clear track's cues list whenever track element's src attribute set, changed or removed. r=jya,baku
According to the spec [1], we should empty track's cue list whenever a track element has its src attribute set, changed, or removed.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:attr-track-src

Differential Revision: https://phabricator.services.mozilla.com/D31552
2019-05-21 09:21:16 +00:00
alwu
cd0627ec0a Bug 1550633 - part2 : maybe start loading resource when the track's mode changes. r=jya
According to the spec [1], the user agent must start the track processing model when text track has its text track mode changed.

[1] https://html.spec.whatwg.org/multipage/media.html#sourcing-out-of-band-text-tracks:start-the-track-processing-model

Differential Revision: https://phabricator.services.mozilla.com/D31372
2019-05-20 09:30:01 +00:00
alwu
b8bc254b4c Bug 1550633 - part1 : HTMLTrackElement should not load resource when its text track is disable. r=jya
According to the spec step2 [1], we should not load resource for the track element which text track is disabled.

[1] https://html.spec.whatwg.org/multipage/media.html#start-the-track-processing-model

Differential Revision: https://phabricator.services.mozilla.com/D31371
2019-05-20 09:29:38 +00:00