Commits on Apr 20, 2019
-
Verify that attributes don't have namespaces
Follows the discussion in #2546. This includes linting rules to prevent getAttribute(), setAttribute(), hasAttribute(), removeAttribute(), and toggleAttribute() from being used, in favor of their NS-alternatives. This also bumps the webidl2js minimum version, since that release fixed the same bug in [Reflect]-implemented properties.
Commits on Mar 16, 2019
-
Implement PageTransitionEvent interface and pageshow event
Also sets the correct target for the load event - the document rather than window - through the legacy target override flag per https://html.spec.whatwg.org/multipage/parsing.html#the-end.
Commits on Jan 24, 2019
Commits on Jan 14, 2019
-
Update note for screenLeft and screenTop properties on window
These were indeed added to the spec in w3c/csswg-drafts#2669.
-
Make getComputedStyle() throw for incorrect argument type
Fixes #2481. Also makes the parsing of the default stylesheet lazy, to decrease overall jsdom initialization time.
Commits on Aug 18, 2018
Commits on Aug 13, 2018
-
This was previously missing because it exposed a bug in the vm module on Node.js v6 which appeared in a few XHR tests. The bug has been fixed in later versions.
-
Re-do how API options are handled
* Resource-loading options are set by passing them to the ResourceLoader constructor, not to the JSDOM constructor. In particular userAgent, which used to be in the JSDOM constructor in v11, moves to ResourceLoader. (The others were only added to the JSDOM constructor in recent commits.) * Cut down on the resource loading customizability for now. Only strictSSL, proxy, and userAgent are supported; no agent customization, since it turns out that is pretty weird and broken. * Make JSDOM.fromURL use the resource loader, if one is supplied. * Make it more explicit which options ResourceLoader.prototype.fetch and PerDocumentResourceLoader.prototype.fetch take (not many). * Remove some old options-passing that was only to support old API functionality. Note that for now XMLHttpRequest does not use the resource loader; it never has, but it should in the future. In the meantime we continue the janky pattern of copying over a few options into those request() calls specifically. Also note that the keep-alive connection stuff appears to have been broken for a while (the test which was supposed to be testing that only a single connection was made, in fact tested that at least one connection was made). So, we delete those tests, as part of the reduction in flexibility mentioned above. If we reintroduce that flexiblity then we'll write better tests.
-
Remove "document features" infrastructure
This very old way of controlling resource fetching and evaluation is no longer needed.
-
Introduce a new resource loading API
This is a first draft at the new resource loading API discussed in #2050. For now the old resource loading API, and the old API in general, are preserved; they will be removed in subsequent commits. This also raises the minimum required version to Node.js v8, as the new resource loader will be part of a major release anyway, and the maintenance burden of supporting that old vm module is getting too high.
-
Set window.name to default to the empty string
Previously it defaulted to "nodejs".
Commits on Jul 26, 2018
-
Also fixes the default quota problem noticed in 3afbc0f#r29395675.
Commits on Jun 18, 2018
Commits on Apr 1, 2018
-
Implement requestAnimationFrame using performance.now
Shouldn't make a practical difference as w3c-hr-time uses browser-process-hrtime (thus no change in lockfile), but it simplifies things a tiny bit.
Commits on Feb 5, 2018
Commits on Jan 22, 2018
-
Overhaul HTML parsing infrastructure
This changes the HTML parsing infrastructure, in particular how we interface with parse5. The original motivation for this change was increased performance; the new benchmark, which appends 65535 <tr>s, gets a speedup of ~3x from these changes. Other user-visible changes to script evaluation might be present. In particular, the tests revealed that one document.write-related test that used to somehow pass now fails, while another one succeeds (at least on Node 8). In most cases, however, behavior should be the same. While here, we also changed style sheets to reevaluate their rules and update styleEl.sheet or linkEl.sheet appropriately when their child text content changed. Behind the scenes details: - We now use a parse5 tree adapter directly for parsing, instead of using the htmlparser2 adapter layer (which had an O(n) insertion cost for new siblings) - SAX XML parsing code has been simplified by no longer being shared with parse5/htmlparser2 parsing code. - Nodes no longer have a reference to the "core" god-object. This was only used in a couple places, and was error prone because this reference was not available in cases such as document nodes created via the Document constructor. This removes a lot of code that threaded the object throughout everything. - We continued to use hacky workarounds for script evaluation, during parsing and elsewhere. Perhaps one day, inspired by #1316 and #1920, we can fix these.
Commits on Jan 16, 2018
-
-
Remove non-standard window.createPopup() stub
This was only implemented in Internet Explorer < 11.
-
-
Commits on Dec 24, 2017
Commits on Nov 26, 2017
Commits on Oct 29, 2017
Commits on Sep 30, 2017
-
Update ESLint rules and pass all of them
This is done via a new script, npm run lint-is-complete, which finds any unset rules. The majority of changes are driven by preferring destructuring and spacing changes.
-
Make Window's impl's wrapper point to global proxy
This makes idlUtils.wrapperForImpl/implForWrapper() round trip in a JSDOM.
-
- Renames *.idl to *.webidl - Fixes a bug in HTMLOptionsCollection's IDL where it both inherited from and implemented HTMLCollection. - Updates uses of idlUtils.mixin to use a new copy of that function in jsdom's utils.js. While doing this update, fixed various require() statements to use destructuring more. - Enables a few formerly-disabled web platform tests.
Commits on Sep 8, 2017
Commits on Aug 14, 2017
Commits on Aug 6, 2017
-
Improve navigation and session history management
This factors out a SessionHistory class to help with further work on navigation. In the process, it improves some behavior around fragment navigation.