Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syncing from original #1

Merged
merged 164 commits into from
Feb 4, 2020
Merged

Syncing from original #1

merged 164 commits into from
Feb 4, 2020

Conversation

xyaoinum
Copy link
Owner

@xyaoinum xyaoinum commented Feb 4, 2020

No description provided.

annevk and others added 30 commits April 15, 2019 14:31
And allow for simplification of "create an element" by moving a step into IDL.

Tests: web-platform-tests/wpt#16328.

Corresponding DOM changes: whatwg/dom#751.

Fixes #4520.
This introduces tasks as a proper struct, with well-defined fields, and
makes "queue a task" and "queue a microtask" into more well-defined
algorithms for setting up and queuing those tasks. It centralizes and
calls out the still-somewhat-vague parts in the "implied event loop" and
"implied document" definitions.

Other minor cleanups and clarifications:

* Fixes "performing a microtask checkpoint" to be a boolean; previously
  it was referred to as a flag but set to true or false.
* Fixes #4242 by making it clearer how tasks are chosen by the event
  loop.
* Adds more guidance text around how task sources and task queues
  interact.
* Introduces a new subsection "Queuing tasks" to contain the
  task-queuing definitions, which were previously spread out through
  "Definitions" (for non-microtask tasks) and "Processing model" (for
  microtasks).
* Centralizes all properties of the event loop into "Definitions". They
  were previously spread out throughout "Definitions" and "Processing
  model".
The idea here is to centralize important information for reviewers and onlookers in OP and relay expectations to those making the change.

Given the high volume of new external contributors HTML gets this is particularly important here, but if successful we could generalize this across the WHATWG.
Otherwise CSSOM will assume it's more than a new window and treat it like a popup or some such.

Helps with #1902.

Tests: web-platform-tests/wpt#16330 & web-platform-tests/wpt#16658.
This makes all issue references use links of the form "issue #NNN", or
"org/repo issue #NNN". This was the prevailing convention, but there
were a few exceptions.

Behind the scenes, this also removes the one usage of the "big-issue"
CSS class, replacing it with "XXX" (for which it was a stylistic
synonym, until
whatwg/whatwg.org@36b8b45
removed the "big-issue" styles). It also changes the source from using
class="XXX" to using class="XXX"; the former was
a workaround for an overzealous lint script, which was fixed in
whatwg/html-build@3c51d80.

Finally, this removes a big commented-out chunk of canvas spec text for
fillVerticalText() and strokeVerticalText() methods, which were never
implemented.
This makes the algorithm more explicit, with properly-nested in parallel
and task queuing steps. In particular, it makes it clear (with examples)
how it is a "spec macro".

Co-Authored-By: Anne van Kesteren <annevk@annevk.nl>
Co-Authored-By: Domenic Denicola <d@domenic.me>
- Add oncopy, oncut, onformdata, and onpaste
- Move onwheel to the end of the list

Fixes #4549.
Fixes #4564.
In particular, DetachArrayBuffer() can throw for the ArrayBuffer used as the
backing memory in the WebAssembly JS API.

This matches the current behavior in Firefox and Safari.

Fixes #4601.
Separate the bulk of the algorithm out into internal play steps that can be
callable from other specs. This allows specs that doesn't need promises to call
the internal steps directly, and also gives a hook that avoids calling the
public play() method.
This specifies the layout model of buttons (the button element,
the input element in the Button, Reset, Submit states, and the
button part of input in the File Upload state).

Fixes #1024. Fixes #2948. Fixes #4081. Part of #4082.

Tests: web-platform-tests/wpt#14824

Bugs:
https://bugs.chromium.org/p/chromium/issues/detail?id=962936
https://bugs.webkit.org/show_bug.cgi?id=197879
https://bugzilla.mozilla.org/show_bug.cgi?id=1539469
Update the Events Index to include `form` as the elements that is an interesting target.

Fixes #4570.
Fixes #4620. This flag prevents reentrancy into the submission algorithm
during submit or invalid events. Blink and Gecko implement this for
submit only; WebKit implements it for both. The specification chooses
WebKit's behavior.

Tests: web-platform-tests/wpt#16811
This provides the ElementInternals interface, which can be obtained for
custom elements via the element.attachInternals() method. For now
ElementInternals is empty, but it will gain members in #4383.

This also adds the ability for custom elements to set the
disabledFeatures static property, to disable element internals and
shadow DOM. Some DOM-side infrastructure work there is necessary in
whatwg/dom#760.

Tests:
- web-platform-tests/wpt#15123
- web-platform-tests/wpt#15516
- web-platform-tests/wpt#16853

Fixes WICG/webcomponents#758.
Since module scripts never execute synchronously, currentScript must already
be null here.
This commit adds JSON modules as a single default export, with parse
errors checked before instantiating the module graph.

As infrastructure, this divides the "module script" concept into
"JavaScript module scripts" and "JSON module scripts". Most of the
spec's existing uses of "module script" become "JavaScript module
script".

JSON module scripts are fetched in the same way as JavaScript module
scripts, e.g. with the "cors" mode and using strict MIME type checking.
They use the Synthetic Module Record defined in
whatwg/webidl#722.

Closes #4315.
Closes WICG/webcomponents#770.
annevk and others added 29 commits December 11, 2019 11:48
These days all implementations only have security checks on a couple of objects. Firefox used to have cross-origin object wrapper, but those are no longer web observable.

Tests: html/browsers/origin/cross-origin-objects/cross-origin-objects.html and web-platform-tests/wpt#20432.
The refactoring in bcd5d61 missed a few
instances of the "new focus target" variable.
Additionally, make content document (also used by contentDocument) perform the same origin-domain comparison on the two documents involved rather than involve the current settings object.

Tests: web-platform-tests/wpt#20432.

Fixes #5094.
This feature brings extra complexity for Cross-Origin-Opener-Policy and
Cross-Origin-Embedder-Policy, and is rarely used.

Relevant discussion:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/Z1XdYf6SjDU
For people who follow a link to single page (with a fragment) but
prefer to load the multipage version, using the link at the top
would remove the fragment. This keeps the fragment when clicking
the link, and `link-fixup.js` will do the necessary redirect when
the multipage page is loaded.
One normative fix: by saving the script element's node document before
evaluation, this properly changes that document's currentScript back
after evaluation. As previously written, a script that moved during
evaluation would cause its new node document's currentScript to update.

Tests: web-platform-tests/wpt#20775

Editorial cleanups:

* Use a named argument, scriptElement
* Use the saved document variable throughout
* Cleanup source formatting
* Remove <!-- SCRIPT EXEC --> comments
Previously this was referenced in an implicit way, as "the parser that
created the element". This makes it an explicit associated value, from
which "parser-inserted" is derived.
This makes it easier to add to and rearrange them.
Previously this was referred to imprecisely as "the node document of the
script element at the time the prepare a script algorithm started".
This adds a pointer to #2137, which remains somewhat contested, to the
relevant parts of the prepare and execute algorithms for scripts.
Part of this was fixed by b5ac75d. This was introduced in 163c216 due to not resorting after renaming.
d3c9442 intended to remove a, area, and
frameset from Window's named objects, and came with matching web
platform tests to assert that frameset was removed, which all engines
currently pass. However, that commit actually forgot to remove frameset;
this fixes that.

Closes #5230.
This moves the DOMParser class from https://w3c.github.io/DOM-Parsing/
into HTML, per various offline discussions. Along the way, it improves
the spec in several minor ways and a couple notable ways:

* It precisely defines the URL of the resulting document, in a way that
  matches the majority of browsers. As such, this closes
  w3c/DOM-Parsing#46.
* It more clearly states how the parser error documents are created,
  namely that they also get their content type and URL set.

This also closes w3c/DOM-Parsing#51 and
w3c/DOM-Parsing#34 by adding explanatory
notes for points that confused people enough to file an issue.

Tests: web-platform-tests/wpt#21041
@xyaoinum xyaoinum merged commit 4505268 into xyaoinum:master Feb 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.