Skip to content

Commits on Apr 20, 2019

  1. 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.
    Zirro authored and domenic committed Apr 20, 2019

Commits on Mar 16, 2019

  1. 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.
    Zirro authored and domenic committed Mar 16, 2019

Commits on Jan 24, 2019

  1. Add helpers for creating and firing events

    Fixes #2179.
    Zirro authored and domenic committed Jan 24, 2019

Commits on Jan 14, 2019

  1. Update note for screenLeft and screenTop properties on window

    These were indeed added to the spec in w3c/csswg-drafts#2669.
    Zirro authored and domenic committed Jan 14, 2019
  2. Make getComputedStyle() throw for incorrect argument type

    Fixes #2481.
    
    Also makes the parsing of the default stylesheet lazy, to decrease overall jsdom initialization time.
    Zirro authored and domenic committed Jan 14, 2019

Commits on Aug 18, 2018

Commits on Aug 13, 2018

  1. Add window.status

    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.
    Zirro authored and domenic committed Aug 13, 2018
  2. 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.
    domenic committed Aug 13, 2018
  3. Remove "document features" infrastructure

    This very old way of controlling resource fetching and evaluation is no longer needed.
    domenic committed Aug 13, 2018
  4. 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.
    sarvaje authored and domenic committed Aug 13, 2018
  5. Set window.name to default to the empty string

    Previously it defaulted to "nodejs".
    Zirro authored and domenic committed Aug 13, 2018

Commits on Jul 26, 2018

  1. Add the storageQuota option

    Also fixes the default quota problem noticed in 3afbc0f#r29395675.
    Zirro authored and domenic committed Jul 26, 2018

Commits on Apr 1, 2018

  1. 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.
    SimenB authored and domenic committed Apr 1, 2018

Commits on Feb 5, 2018

  1. Fix event handlers to be own properties of each Window

    Closes #2140.
    Fetz authored and domenic committed Feb 5, 2018

Commits on Jan 22, 2018

  1. Implement window.performance

    Closes #1510.
    Zirro authored and domenic committed Jan 22, 2018
  2. 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.
    domenic committed Jan 22, 2018

Commits on Jan 16, 2018

  1. Implement WebSocket

    TimothyGu authored and domenic committed Jan 16, 2018
  2. Remove non-standard window.createPopup() stub

    This was only implemented in Internet Explorer < 11.
    Zirro authored and domenic committed Jan 16, 2018

Commits on Nov 26, 2017

Commits on Oct 29, 2017

Commits on Sep 30, 2017

  1. 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.
    domenic committed Sep 30, 2017
  2. Make Window's impl's wrapper point to global proxy

    This makes idlUtils.wrapperForImpl/implForWrapper() round trip in a JSDOM.
    TimothyGu authored and domenic committed Sep 30, 2017
  3. Upgrade to webidl2js v8.0.0

    - 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.
    domenic committed Sep 30, 2017

Commits on Sep 8, 2017

  1. Use domexception module

    Fixes #1939.
    Sebmaster authored and domenic committed Sep 8, 2017

Commits on Aug 14, 2017

  1. Only track properties if it's undefined in proxy

    Fixes #1932.
    TimothyGu authored and domenic committed Aug 14, 2017

Commits on Aug 6, 2017

  1. 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.
    ForbesLindesay authored and domenic committed Aug 6, 2017
Older