Permalink
Commits on Sep 14, 2018
  1. Meta: export WindowProxy's [[Window]] definition

    TimothyGu authored and annevk committed Sep 14, 2018
    This will be used in Web IDL.
Commits on Sep 7, 2018
  1. Check there is a browsing context in document.open()'s abort step

    TimothyGu authored and domenic committed Sep 7, 2018
    This was missed in #3999.
Commits on Sep 6, 2018
  1. document.open(): only abort when there is a navigation

    TimothyGu authored and domenic committed Sep 6, 2018
    This implements the "ideal 2" plan in #3975, which was found to be
    compatible with the existing Chrome test suite while being reasonably
    straightforward.
    
    Closes #3651.
    Fixes #3975.
    
    Tests: web-platform-tests/wpt#10789
Commits on Sep 4, 2018
  1. Allow document.open()/write() to be called on non-active documents

    TimothyGu authored and domenic committed Sep 4, 2018
    There is no longer anything fundamental that prevents document.open()
    from being useful on non-active documents. This also aligns with Chrome,
    Edge, and Safari. In fact, some developers already utilize this property
    as a streaming HTML parser to desirable effect (see #2827).
    
    Additionally, use a more appropriate guard for erasing event listeners
    and handlers on the Window object, as revealed by the tests.
    
    Fixes #2827.
    
    Tests: web-platform-tests/wpt#12636
    Tests: web-platform-tests/wpt#12770
Commits on Aug 29, 2018
  1. document.open(): remove fragment before propagating entry document's URL

    TimothyGu authored and annevk committed Aug 29, 2018
    This is another part of the effort to overhaul document.open() as outlined in #3818.
    
    Tests: web-platform-tests/wpt#10817.
    
    Fixes #2555.
Commits on Aug 28, 2018
  1. Make document.open() set the document to no-quirks

    TimothyGu authored and annevk committed Aug 28, 2018
    Per investigation in #3818, this change aligns the behavior of
    document.open() with Chrome and Safari.
    
    Tests: web-platform-tests/wpt#10679.
    
    Closes #3831.
Commits on Aug 23, 2018
  1. Editorial: Remove parameters from document.open() references

    TimothyGu authored and domenic committed Aug 21, 2018
    This effectively reverts parts of
    8f2816a.
  2. document.open() simplifications, part 2

    TimothyGu authored and domenic committed Aug 20, 2018
    The current behavior of adding a new entry to the session history is
    removed, with the "replace" parameter behavior made the only option. To
    fix #3885, we now reuse history.replaceState()'s history model, which
    keeps the document's URL and the history entry URL in sync.
    
    At the same time, we restrict the history state update (including
    setting the document's URL) to be only run with fully active documents.
    Firefox already bails out for non-fully active documents (including
    those that are active documents), and it's not expected that there would
    be much usage of the URL of non-fully active documents anyway.
    
    This allows us to additionally remove the seldom implemented "replace"
    parameter in document.open(), whose behavior is now the default
    (aligning with with Chrome and Safari). The IDL is modified accordingly.
    
    Tests: web-platform-tests/wpt#12555
    Tests: web-platform-tests/wpt#12634
    Tests: web-platform-tests/wpt#12636
    Tests: web-platform-tests/wpt#12650
    
    Fixes #3564.
    Fixes #3885.
  3. Editorial: Factor out history.push/replaceState() steps

    TimothyGu authored and domenic committed Aug 17, 2018
    The resultant URL and history state update steps will be used in
    document.open().
  4. Remove overridden reload concept

    TimothyGu authored and domenic committed Aug 17, 2018
    Or: document.open() simplifications, part 1.9.
    
    This behavior is only implemented in Firefox and Edge and has
    contributed to developer confusion. See
    https://bugzilla.mozilla.org/show_bug.cgi?id=556002.
    
    This is a part of the effort to renovate document.open(). See
    #3818 for context.
    
    Tests: web-platform-tests/wpt#12555
Commits on Aug 16, 2018
  1. document.open() simplifications, part 1

    TimothyGu authored and domenic committed Aug 16, 2018
    In particular, removes the realm creation, document unloading, and tasks
    removal steps.
    
    Based on the work by Anne van Kesteren in #3651, but without the parts
    concerning the session history. Changes to that area will come later
    (see #3818).
    
    These changes allow us to remove several auxiliary concepts that only
    existed to support document.open():
    
    - The recycle parameter to the "unload a Document" algorithm
    - The window parameter to the "set the active document" algorithm
    
    Tests: web-platform-tests/wpt#10773
    Tests: web-platform-tests/wpt#10778
    Tests: web-platform-tests/wpt#10815
    Tests: web-platform-tests/wpt#10818
    
    Fixes #1698.
    Fixes #3286.
    Fixes #3306.
    Closes #3665.
Commits on Aug 13, 2018
  1. Meta: update PAGEVIS reference

    TimothyGu authored and annevk committed Aug 13, 2018
Commits on Aug 9, 2018
  1. Revise event listener removal in document.open()

    TimothyGu authored and domenic committed Aug 9, 2018
    This change aligns the event listener removal behavior with
    implementations, specifically in two aspects:
    
    - The event handler's value should be set to null (i.e., deactivated).
    - Event listeners and handlers should be removed from the Window object
      as well.
    
    See prior investigation around deactivation of event handlers in #3836
    and #3850. See investigation around document.open()'s behavior in
    #3818.
    
    Tests: web-platform-tests/wpt#12122
Commits on Aug 7, 2018
  1. Rewrite event handlers section for more rigor and correctness

    TimothyGu authored and domenic committed Aug 7, 2018
    * Move the "When an event handler H of an EventTarget object T is first
      set to a non-null value" steps into a dedicated "activate an event
      handler" algorithm. Create a corresponding "deactivate an event
      handler" algorithm, called in the circumstances outlined in #3836,
      thereby fixing #3836.
    
    * Define "When an event handler content attribute is set" and "When an
      event handler content attribute is removed" steps rigorously using
      the attribute change steps hook in DOM. Care is taken to clarify
      certain edge cases, such as calling removeAttribute() on a nonexistent
      event handler content attribute but with a corresponding event handler
      IDL attribute defined, and calling setAttribute() an attribute with
      the same value as it currently possesses but with the event handler
      deactivated (exhibit B in #3836).
    
    * Formalize multiple definitions:
      * event handler as a struct containing a value and an event listener
      * location of event handlers and the concept of event handler target
      * rigorous set of steps on how to obtain the target of an event
        handler through the "determine the target of an event handler"
        algorithm. The latter algorithm supersedes the handwavy and
        inconsistently-applied "If an event handler IDL attribute exposes an
        event handler of an object that doesn't exist" steps.
      * storage of event handlers in the event handler map
    
    * More descriptive variable names: H → eventHandler, T → eventTarget,
      and E → event, in various algorithms.
    
    Tests: web-platform-tests/wpt#12201
    
    Follow-up issue to improve clarity by breaking this up into smaller
    sections: #3861.
Commits on Jul 28, 2018
  1. Fix calls to InitializeHostDefinedRealm

    TimothyGu authored and domenic committed Jul 28, 2018
    Fixes #3784.
Commits on Jun 28, 2018
  1. Editorial: separate out document.open() methods definitions

    TimothyGu authored and domenic committed Jun 28, 2018
    Also changes references to the method to include the argument names, to
    properly distinguish between the two overloads.
    
    Fixes #3565.
Commits on Jan 16, 2018
  1. Initialize script's base URL earlier

    TimothyGu authored and domenic committed Jan 16, 2018
    The "resolve a module specifier" algorithm uses the module script's base
    URL, so while creating scripts it needs to be set before that algorithm
    is called.
Commits on Jan 14, 2018
  1. Editorial: Define "realm execution context" in a separate step

    TimothyGu authored and domenic committed Jan 14, 2018
    InitializeHostDefinedRealm() automatically enters the context after
    creating it. We can just get the context after that call rather than
    having to customize it.
Commits on Jan 4, 2018
Commits on Dec 19, 2017
Commits on Oct 2, 2017
  1. Define document.all as having [[IsHTMLDDA]]

    TimothyGu authored and annevk committed Oct 2, 2017
    Fixes #3015.