diff --git a/source b/source index 81f7c1342ea..014921c2262 100644 --- a/source +++ b/source @@ -2696,7 +2696,7 @@ a.setAttribute('href', 'http://example.com/'); // change the content attribute d The URL parser and basic URL parser as well as these parser states: - -

To set the frozen base URL, resolve the value of - the element's href content attribute relative to the - Document's fallback base URL; if this is successful, set the - frozen base URL to the resulting absolute URL, otherwise, set the - frozen base URL to the fallback base URL.

+

To set the frozen base URL, parse the value of the + element's href content attribute relative to the element's + node document; if this is successful, set the frozen base URL to the + resulting URL record, otherwise, set the frozen base URL to the + fallback base URL.

The href IDL attribute, on getting, must return the result of running the following algorithm: @@ -11485,14 +11458,18 @@ gave me some of the songs they wrote. I love sharing my music.</p>

  • Let url be the value of the href attribute of the base element.

  • -
  • Resolve url relative to fallback base - url (thus, the base's href attribute - isn't affected by other base elements).

  • +
  • Let urlRecord be the result of parsing + url with fallback base url, and the Document's character encoding. (Thus, the base's + href attribute isn't affected by other base + elements).

  • + -
  • If the previous step was successful, return the resulting absolute URL and - abort these steps.

  • +
  • If urlRecord is failure, return the empty string.

  • -
  • Otherwise, return the empty string.

  • +
  • Return the serialisation of + urlRecord.

  • @@ -11642,12 +11619,10 @@ gave me some of the songs they wrote. I love sharing my music.</p>
  • If the href attribute's value is the empty string, then abort these steps.

  • -
  • Resolve the URL given by the href attribute, relative to the element.

  • - -
  • If the previous step fails, then abort these steps.

  • - -
  • Otherwise, let url be the resulting parsed URL.

  • +
  • Parse the URL given by the href attribute, relative to the element's node + document. If that fails, then abort these steps. Otherwise, let url be the + resulting URL record.

  • Let corsAttributeState be the current state of the element's crossorigin content attribute.

  • @@ -12635,10 +12610,9 @@ people expect to have work and what is necessary.
  • Strip any U+0009 CHARACTER TABULATION (tab), U+000A LINE FEED (LF), and U+000D CARRIAGE RETURN (CR) characters from url.

  • -
  • Resolve the url value, relative to the - meta element. If this fails, abort these steps.

  • - -
  • Otherwise, let parsed url be the resulting parsed URL.

  • +
  • Parse url relative to the meta + element's node document. If that fails, abort these steps. Otherwise, let + urlRecord be the resulting URL record

  • @@ -12651,9 +12625,9 @@ people expect to have work and what is necessary.

    After the refresh has come due (as defined below), if the user has not canceled the redirect and if the meta element's node document's active sandboxing flag set does not have the sandboxed automatic features browsing - context flag set, navigate the - Document's browsing context to - parsed url, with replacement enabled, and with the + context flag set, navigate + the Document's browsing context to + urlRecord, with replacement enabled, and with the Document's browsing context as the source browsing context.

    @@ -12678,8 +12652,8 @@ people expect to have work and what is necessary.
  • Provide the user with an interface that, when selected, navigates a browsing context to - parsed url, with the Document's navigates a browsing context + to urlRecord, with the Document's browsing context as the source browsing context.

  • @@ -13232,9 +13206,9 @@ own thing rather than part of the extended sentence --> + parsed, relative to the element's node document (or as defined + by the styling language), when the processor is invoked.

    --> @@ -16125,10 +16099,11 @@ a friend lost to the

    If the cite attribute is present, it must be a valid URL potentially surrounded by spaces. To obtain the - corresponding citation link, the value of the attribute must be resolved relative to the element. User agents may allow users to follow such - citation links, but they are primarily intended for private use (e.g. by server-side scripts - collecting statistics about a site's use of quotations), not for readers.

    + corresponding citation link, the value of the attribute must be parsed relative to the element's node document. User agents may + allow users to follow such citation links, but they are primarily intended for private use (e.g., + by server-side scripts collecting statistics about a site's use of quotations), not for + readers.

    The content of a blockquote may be abbreviated or may have context added in the conventional manner for the text's language.

    @@ -17846,12 +17821,12 @@ gossip column, maybe!</q>.</p> it has one, may be cited in the cite attribute. The source may be fictional, as when quoting characters in a novel or screenplay.

    -

    If the cite attribute is present, it must be a valid URL - potentially surrounded by spaces. To obtain the corresponding citation - link, the value of the attribute must be resolved relative to - the element. User agents may allow users to follow such citation links, but they are - primarily intended for private use (e.g. by server-side scripts collecting statistics about a - site's use of quotations), not for readers.

    +

    If the cite attribute is present, it must be a valid + URL potentially surrounded by spaces. To obtain the corresponding citation + link, the value of the attribute must be parsed relative to the + element's node document. User agents may allow users to follow such citation + links, but they are primarily intended for private use (e.g., by server-side scripts collecting + statistics about a site's use of quotations), not for readers.

    The q element must not be used in place of quotation marks that do not represent quotes; for example, it is inappropriate to use the q element for marking up @@ -20404,11 +20379,11 @@ interface HTMLHyperlinkElementUtils {

    An element implementing the HTMLHyperlinkElementUtils mixin has an associated set the url algorithm, which sets this - element's url to the resulting parsed URL - of resolving this element's href content attribute value relative to this element. If - resolving was aborted with an error, set this element's url to null.

    + element's url to the resulting URL record + of parsing this element's href content attribute value relative to this element's + node document. If parsing was aborted with an + error, set this element's url to null.

    When elements implementing the HTMLHyperlinkElementUtils mixin are created, and whenever those elements have their href content @@ -20873,16 +20848,15 @@ interface HTMLHyperlinkElementUtils { and replace is true, then disown target's opener.

    -
  • Resolve the URL given by - subject's href attribute, relative to - subject.

  • +
  • Parse the URL given by subject's + href attribute, relative to subject's + node document.

  • -

    If that is successful, let URL be the resulting absolute - URL.

    +

    If that is successful, let URL be the resulting URL string.

    -

    Otherwise, if resolving the URL failed, the +

    Otherwise, if parsing the URL failed, the user agent may report the error to the user in a user-agent-specific manner, may queue a task to navigate the target browsing context to an error page to report the error, or may ignore the error and @@ -20937,16 +20911,16 @@ interface HTMLHyperlinkElementUtils {

      -
    1. Resolve the URL given by +

    2. Parse the URL given by subject's href attribute, relative to - subject.

    3. + subject's node document.

      -
    4. If resolving the URL fails, the user agent +

    5. If parsing the URL fails, the user agent may report the error to the user in a user-agent-specific manner, may navigate to an error page to report the error, or may ignore the error and do nothing. In either case, the user agent must abort these steps.

      -
    6. Otherwise, let URL be the resulting absolute URL.

    7. +
    8. Otherwise, let URL be the resulting URL string.

    9. If there is a hyperlink suffix, append it to URL.

    10. @@ -21139,12 +21113,12 @@ interface HTMLHyperlinkElementUtils {

      If a hyperlink created by an a or area element has a ping attribute, and the user follows the hyperlink, and the value of the element's href attribute can be resolved, relative to the element, without failure, then the user - agent must take the ping attribute's value, split that string on spaces, resolve each resulting token relative to the element, and then run these substeps for - each resulting absolute URL ping URL, - ignoring tokens that fail to resolve:

      + data-x="parse a url">parsed, relative to the element's node document, without + failure, then the user agent must take the ping + attribute's value, split that string on spaces, + parse each resulting token relative to the element's node + document, and then run these substeps for each resulting URL string ping + URL, ignoring tokens that fail to parse:

      1. Let request be a new request whose @@ -21158,8 +21132,8 @@ interface HTMLHyperlinkElementUtils { data-x="">include", and whose use-URL-credentials flag is set.

      2. -

        Let target URL is the resulting absolute URL obtained from resolving the value of the element's Let target URL is the resulting URL string obtained from parsing the value of the element's href attribute and then run these substeps:

        @@ -22065,7 +22039,7 @@ interface HTMLHyperlinkElementUtils {
        location
        -

        The resulting absolute URL determined during the The resulting URL string determined during the obtain algorithm.

        This is before any redirects get applied.

        @@ -22559,10 +22533,10 @@ interface HTMLHyperlinkElementUtils {

        If the cite attribute is present, it must be a valid URL potentially surrounded by spaces that explains the change. To obtain - the corresponding citation link, the value of the attribute must be resolved relative to the element. User agents may allow users to follow such - citation links, but they are primarily intended for private use (e.g. by server-side scripts - collecting statistics about a site's edits), not for readers.

        + the corresponding citation link, the value of the attribute must be parsed relative to the element's node document. User agents may + allow users to follow such citation links, but they are primarily intended for private use (e.g., + by server-side scripts collecting statistics about a site's edits), not for readers.

        The datetime attribute may be used to specify @@ -23890,16 +23864,15 @@ interface HTMLImageElement : HTMLElement {

          -
        1. Resolve selected source, relative to the - element. - If that is not successful, then abort this inner set of steps. - Otherwise, let absolute URL be the resulting absolute URL.

        2. +
        3. Parse selected source, relative to the + element's node document. If that is not successful, then abort this inner set of + steps. Otherwise, let urlString be the resulting URL string.

        4. -
        5. Let key be a tuple consisting of absolute URL, the - img element's crossorigin attribute's - mode, and, if that mode is not No CORS, the - node document's origin.

        6. +
        7. Let key be a tuple consisting of urlString, the img + element's crossorigin attribute's mode, and, if that + mode is not No CORS, the node + document's origin.

        8. @@ -23926,7 +23899,7 @@ interface HTMLImageElement : HTMLElement {
        9. Queue a task to restart the animation if restart animation is set, change current request's current URL to absolute URL, and then fire a + data-x="img-req-url">current URL to urlString, and then fire a simple event named load at the img element.

        10. @@ -24006,9 +23979,9 @@ interface HTMLImageElement : HTMLElement {
        11. -

          Resolve selected source, relative - to the element, and let absolute URL be the resulting absolute URL. If - that is not successful, run these substeps:

          +

          Parse selected source, relative to the + element's node document, and let urlString be the resulting URL + string. If that is not successful, run these substeps:

            @@ -24033,10 +24006,10 @@ interface HTMLImageElement : HTMLElement {
          1. ⌛ If the pending request is not null, - and absolute URL is the same as the pending request's current URL, + and urlString is the same as the pending request's current URL, then abort these steps.

            -

            ⌛ If absolute URL is the same as the current request's current URL, +

            ⌛ If urlString is the same as the current request's current URL, and current request is in the partially available state, then abort the image request for the pending request, queue a task to restart the animation if restart animation is set, @@ -24046,7 +24019,7 @@ interface HTMLImageElement : HTMLElement { abort the image request for the pending request.

            ⌛ Let image request be a new image request - whose current URL is absolute URL.

            + whose current URL is urlString.

            ⌛ If current request is in the unavailable state or the broken state, @@ -24055,7 +24028,7 @@ interface HTMLImageElement : HTMLElement {

            ⌛ Let request be the result of creating a potential-CORS request given - absolute URL and the current state of the element's urlString and the current state of the element's crossorigin content attribute.

            ⌛ Set request's client to the @@ -24917,9 +24890,9 @@ interface HTMLImageElement : HTMLElement { base URL resolution, so changing the base URL doesn't trigger an update if nothing else changed --> -

          2. Resolve selected source, - relative to the element, and let absolute URL be the resulting absolute URL. - If that is not successful, abort these steps.

          3. +
          4. Parse selected source, relative to + the element's node document, and let urlString be the resulting URL + string. If that is not successful, abort these steps.

          5. ⌛ Let corsAttributeState be the state of the element's crossorigin content attribute.

          6. @@ -24929,12 +24902,12 @@ interface HTMLImageElement : HTMLElement {
          7. ⌛ Let client be the img element's node document's Window object's environment settings object.

          8. -
          9. ⌛ Let key be a tuple consisting of absolute URL, +

          10. ⌛ Let key be a tuple consisting of urlString, corsAttributeState, and, if corsAttributeState is not No CORS, origin.

          11. ⌛ Let image request be a new image request - whose current URL is absolute URL

          12. + whose current URL is urlString

          13. ⌛ Let the element's pending request be image request.

          14. @@ -24952,7 +24925,7 @@ interface HTMLImageElement : HTMLElement {
            1. Let request be the result of creating a potential-CORS request given - absolute URL and corsAttributeState.

            2. + urlString and corsAttributeState.

            3. Set request's client to client, type to "audio</a> test instead.)</p> value is the empty string, let url be the string "about:blank".

              -

              Otherwise, resolve the value of the src attribute, relative to the iframe element.

              +

              Otherwise, parse the value of the src attribute, relative to the iframe element's + node document.

              If that is not successful, then let url be the URL - "about:blank". Otherwise, let url be the resulting parsed - URL.

              + "about:blank". Otherwise, let url be the resulting URL + record.

            4. @@ -26712,7 +26686,7 @@ href="?audio">audio</a> test instead.)</p>

              If, when the element is created, the srcdoc attribute is not set, and the src attribute is either also not set or set but its value cannot be - resolved, the browsing context will remain at the initial + parsed, the browsing context will remain at the initial about:blank page.

              If the user navigates away from this page, the @@ -27130,14 +27104,14 @@ href="?audio">audio</a> test instead.)</p>

              -

              The user agent must resolve the value of the element's - src attribute, relative to the element. If that is - successful, the user agent should run these steps: +

              The user agent must parse the value of the element's + src attribute, relative to the element's node + document. If that is successful, the user agent should run these steps:

              1. Let request be a new request whose - url is the resulting parsed URL, + url is the resulting URL record, client is the element's node document's Window object's environment settings object, destination is "plugin supports, then the value only used after fetching the resource in the steps above -->

                Otherwise, if applying the URL parser algorithm to the URL of - the specified resource (after any redirects) results in a parsed URL whose + the specified resource (after any redirects) results in a URL record whose path component matches a pattern that a plugin supports, then the content's type is the type that that plugin can handle.

                @@ -27604,8 +27578,9 @@ attribute, set the browsing context name of the element's nes plugin for, then the user agent may jump to the step below labeled fallback without fetching the content to examine its real type.

              2. -
              3. Resolve the URL specified by the data attribute, relative to the element.

              4. +
              5. Parse the URL specified by the data attribute, relative to the element's node + document.

              6. If that failed, fire a simple event named error at the element, then jump to the step below labeled @@ -27613,7 +27588,7 @@ attribute, set the browsing context name of the element's nes

              7. Let request be a new request whose - url is the resulting parsed URL, + url is the resulting URL record, client is the element's node document's Window object's environment settings object, destination is "browsing context name of the element's nes algorithm is only used after fetching the resource in the steps above -->

                If applying the URL parser algorithm to the URL of the - specified resource (after any redirects) results in a parsed URL whose URL record whose path component matches a pattern that a plugin supports, then let resource type be the type that that plugin can handle.

                @@ -28369,12 +28344,13 @@ attribute, set the browsing context name of the element's nes or if the attribute is absent, then there is no poster frame; abort these steps.

              8. -
              9. Resolve the poster attribute's value relative to the element. If this fails, - then there is no poster frame; abort these steps.

              10. +
              11. Parse the poster attribute's value relative to the element's node + document. If this fails, then there is no poster frame; abort these + steps.

              12. Let request be a new request whose - url is the resulting parsed URL, + url is the resulting URL record, client is the element's node document's Window object's environment settings object, type is "image", HTMLAudioElement : HTMLMediaElement {};

                If the element has a src attribute whose value is not the empty string and whose value, when the attribute was set, could be successfully resolved relative to the element, then the element's track - URL is the resulting absolute URL. Otherwise, the element's track - URL is the empty string.

                + data-x="parse a url">parsed relative to the element's node document, then the + element's track URL is the resulting URL string. Otherwise, the element's + track URL is the empty string.

                @@ -29949,27 +29925,27 @@ interface HTMLMediaElement : HTMLElement { attribute's value is the empty string, then end the synchronous section, and jump down to the failed with attribute step below.

              13. -
              14. ⌛ Let absolute URL be the resulting absolute URL that - would have resulted from resolving the URL +

              15. ⌛ Let urlString be the resulting URL string that + would have resulted from parsing the URL specified by the src attribute's value relative to the - media element when the src attribute was last - changed.

                + media element's node document when the src attribute was last changed.

                + -
              16. ⌛ If absolute URL was obtained successfully, set the currentSrc attribute to absolute - URL.

              17. +
              18. ⌛ If urlString was obtained successfully, set the currentSrc attribute to urlString.

              19. End the synchronous section, continuing the remaining steps in parallel.

              20. -
              21. If absolute URL was obtained successfully, run the resource fetch algorithm with absolute - URL. If that algorithm returns without aborting this one, then the load - failed.

              22. +
              23. If urlString was obtained successfully, run the resource fetch algorithm with + urlString. If that algorithm returns without aborting this one, then the + load failed.

              24. Failed with attribute: Reaching this step indicates that the media resource - failed to load or that the given URL could not be resolved. Queue a task to run the dedicated media source + failed to load or that the given URL could not be parsed. Queue a task to run the dedicated media source failure steps.

              25. Wait for the task queued by the previous step to have @@ -30029,14 +30005,14 @@ interface HTMLMediaElement : HTMLElement { synchronous section, and jump down to the failed with elements step below.

              26. -
              27. ⌛ Let absolute URL be the resulting absolute URL that - would have resulted from resolving the URL +

              28. ⌛ Let urlString be the resulting URL string that + would have resulted from parsing the URL specified by candidate's src - attribute's value relative to the candidate when the src attribute was last changed.

                + attribute's value relative to the candidate's node document when the + src attribute was last changed.

                -
              29. ⌛ If absolute URL was not obtained successfully, then end the +

              30. ⌛ If urlString was not obtained successfully, then end the synchronous section, and jump down to the failed with elements step below.

              31. @@ -30046,13 +30022,14 @@ interface HTMLMediaElement : HTMLElement { types that define that parameter), represents a type that the user agent knows it cannot render, then end the synchronous section, and jump down to the failed with elements step below.

                -
              32. ⌛ Set the currentSrc attribute to absolute URL.

              33. +
              34. ⌛ Set the currentSrc attribute to + urlString.

              35. End the synchronous section, continuing the remaining steps in parallel.

              36. -
              37. Run the resource fetch algorithm with - absolute URL. If that algorithm returns without aborting this one, +

              38. Run the resource fetch algorithm + with urlString. If that algorithm returns without aborting this one, then the load failed.

              39. Failed with elements: Queue a task to fire a simple @@ -33966,8 +33943,8 @@ interface MediaController : EventTarget {

                Indicates that the text track was enabled, but when the user agent attempted to obtain it, - this failed in some way (e.g. URL could not be resolved, network error, unknown text track format). Some or all of the cues are + this failed in some way (e.g. URL could not be parsed, network error, unknown text track format). Some or all of the cues are likely missing and will not be obtained.

                @@ -46213,12 +46190,13 @@ ldh-str = < as defined in src
                attribute's value is the empty string, the user agent must resolve the value of the src - attribute value, relative to the element, and if that is successful, run these substeps:

                + data-x="parse a url">parse the value of the src + attribute value, relative to the element's node document, and if that is successful, + run these substeps:

                1. Let request be a new request whose - url is the resulting parsed URL, + url is the resulting URL record, client is the element's node document's Window object's environment settings object, type is "image", -

                2. Resolve the URL action, relative to the submitter element. If this fails, - abort these steps.

                3. +
                4. Parse the URL action, relative + to the submitter element's node document. If this fails, abort these + steps.

                5. -
                6. Let action be the resulting absolute URL.

                7. +
                8. Let action be the resulting URL string.

                9. -
                10. Let parsed action be the resulting parsed URL.

                11. +
                12. Let parsed action be the resulting URL record.

                13. Let scheme be the scheme of parsed action.

                14. @@ -56185,11 +56164,11 @@ fur represents the command. If the attribute is specified, the attribute's value must contain a valid non-empty URL potentially surrounded by spaces. To obtain the absolute URL of the icon when the attribute's value is not the empty string, the - attribute's value must be resolved relative to the element. - When the attribute is absent, or its value is the empty string, or resolving its value fails, there is no icon.

                  + attribute's value must be parsed relative to the element's + node document. When the attribute is absent, or its value is the empty string, or + parsing its value fails, there is no icon.

                  The disabled attribute is a boolean attribute that, if present, indicates that the command is not available in @@ -58059,12 +58038,12 @@ o............A....e

                15. Set the element's from an external file flag.

                16. -
                17. Resolve src relative to the - element.

                18. +
                19. Parse src relative to the element's + node document.

                20. If the previous step failed, queue a task to fire a simple event named error at the element, and abort these - steps. Otherwise, let url be the resulting parsed URL.

                21. + steps. Otherwise, let url be the resulting URL record.

                22. Switch on the script's type:

                  @@ -67669,9 +67648,9 @@ Demos:

                  The global identifier of an item is the value of its element's itemid attribute, if it has one, resolved relative to the element on which the attribute is specified. - If the itemid attribute is missing or if resolving it fails, it - is said to have no global identifier.

                  + data-x="parse a url">parsed relative to the node document of the element on + which the attribute is specified. If the itemid attribute is + missing or if resolving it fails, it is said to have no global identifier.

                  The itemid attribute must not be specified on elements that do not have both an itemscope attribute and an -

                  The value is the resulting absolute URL that results from resolving the value of the element's src attribute relative to - the element at the time the attribute is set, or the empty string if there is no such attribute - or if resolving it results in an error.

                  +

                  The value is the resulting URL string that results from parsing the value of the element's src attribute relative to + the node document of the element at the time the attribute is set, or the empty + string if there is no such attribute or if parsing it results + in an error.

              @@ -67943,10 +67923,11 @@ Demos:
              -

              The value is the resulting absolute URL that results from resolving the value of the element's href attribute relative - to the element at the time the attribute is set, or the empty string if there is no such - attribute or if resolving it results in an error.

              +

              The value is the resulting URL string that results from parsing the value of the element's href attribute relative to + the node document of the element at the time the attribute is set, or the empty + string if there is no such attribute or if parsing it results + in an error.

              @@ -67955,10 +67936,11 @@ Demos:
              -

              The value is the resulting absolute URL that results from resolving the value of the element's data attribute relative - to the element at the time the attribute is set, or the empty string if there is no such - attribute or if resolving it results in an error.

              +

              The value is the resulting URL string that results from parsing the value of the element's data attribute relative to + the node document of the element at the time the attribute is set, or the empty + string if there is no such attribute or if parsing it results + in an error.

              @@ -74742,16 +74724,16 @@ dictionary DragEventInit : MouseEventInit {
              If the node is an a element with an href attribute
              -
              Add to urls the result of resolving the element's href content - attribute relative to the element.
              +
              Add to urls the result of parsing the + element's href content attribute relative to the + element's node document.
              If the node is an img element with a src attribute
              -
              Add to urls the result of resolving the element's src content attribute - relative to the element.
              +
              Add to urls the result of parsing the + element's src content attribute relative to the + element's node document.
              @@ -77090,10 +77072,10 @@ callback FrameRequestCallback = void (DOMHighResTimeStamp -

              Otherwise, resolve url relative to the - API base URL specified by entry settings, and let resource be - the resulting absolute URL, if any. If the resolve a URL algorithm - failed, then run one of the following two steps instead:

              +

              Otherwise, parse url relative to entry + settings, and let resource be the resulting URL record, if any. If + the parse a URL algorithm failed, then run one of the following two steps + instead:

                @@ -78927,12 +78909,12 @@ interface History {
                  -
                1. Resolve the value of the third argument, relative to - the API base URL specified by the entry settings object.
                2. +
                3. Parse the value of the third argument, relative to the + entry settings object.
                4. If that fails, throw a SecurityError exception and abort these steps.
                5. -
                6. Compare the resulting parsed URL to the result of applying the URL +
                7. Compare the resulting URL record to the result of applying the URL parser algorithm to the document's address. If any component of these two URLs differ other than the path, query, and History {
                8. If the origin of the resulting absolute URL is not the same as the origin of the responsible document specified by the entry settings object, and either the path or query components of the two parsed + data-x="concept-url-query">query components of the two parsed URLs compared in the previous step differ, throw a SecurityError exception and abort these steps. (This prevents sandboxed content from spoofing other pages on the same origin.)
                9. @@ -79361,13 +79343,11 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O

                  The href attribute's setter must run these steps:

                    -
                  1. Let newURL be the resulting parsed URL of resolving the given value relative to the entry settings object's - API base URL.

                  2. - -
                  3. If that aborted with an error, throw a TypeError exception.

                  4. +
                  5. Parse the given value relative to the entry + settings object. If that failed, throw a TypeError exception.

                  6. -
                  7. Location-object-setter navigate to newURL.

                  8. +
                  9. Location-object-setter navigate to the resulting URL + record.

                  The origin attribute's getter must return @@ -79626,18 +79606,11 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O

                    -
                  1. - -

                    Resolve url, relative to the - API base URL specified by the entry settings object and let - parsedURL be the resulting parsed URL.

                    - -

                    If this is not successful, throw a SyntaxError exception and abort these - steps.

                    - -
                  2. +
                  3. Parse url relative to the entry + settings object. If that failed, throw a SyntaxError exception.

                  4. -
                  5. Location-object navigate to parsedURL.

                  6. +
                  7. Location-object navigate to the resulting URL + record.

                  @@ -79646,19 +79619,11 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O
                    -
                  1. +
                  2. Parse url relative to the entry + settings object. If that failed, throw a SyntaxError exception.

                  3. -

                    Resolve url, relative to the - API base URL specified by the entry settings object and let - parsedURL be the resulting parsed URL.

                    - -

                    If this is not successful, throw a SyntaxError exception and abort these - steps.

                    - - - -
                  4. Location-object navigate to parsedURL with the - replacement flag set.

                  5. +
                  6. Location-object navigate to the resulting URL + record with the replacement flag set.

                  @@ -79935,10 +79900,10 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O reload-triggered navigation: apply the URL parser algorithm to the absolute URL of the new resource and the address of the active document of the browsing context - being navigated; if all the components of the resulting parsed + being navigated; if all the components of the resulting parsed URLs, ignoring any fragment components, are identical, and the new resource is to be fetched using `GET`, and the - parsed URL of the new resource has a URL record of the new resource has a fragment component that is not null (even if it is empty), then navigate to that fragment identifier and abort these steps.

                  @@ -80037,25 +80002,23 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O the script was the void value, and jump to the step labeled process results below.

                  -
                10. Apply the URL parser to the URL being navigated.

                11. - -
                12. Let parsed URL be the result of the URL - parser.

                13. +
                14. Let urlRecord be the result of running the URL parser on the + URL being navigated.

                15. Let script source be the empty string.

                16. -
                17. Append parsed URL's scheme - data component to script source.

                18. +
                19. Append the first string of urlRecord's path component to script source.

                20. -
                21. If parsed URL's query - component is not null, then first append a U+003F QUESTION MARK character (?) to script source, and then append parsed URL's query component to script - source.

                22. +
                23. If urlRecord's query component is + not null, then first append a U+003F QUESTION MARK character (?) to script source, + and then append urlRecord's query + component to script source.

                24. -
                25. If parsed URL's fragment component is not null, then first append a - U+0023 NUMBER SIGN character (#) to script source, and then append parsed URL's fragment component to - script source.

                26. +
                27. If urlRecord's fragment + component is not null, then first append a U+0023 NUMBER SIGN character (#) to script + source, and then append urlRecord's fragment component to script source.

                28. Replace script source with the result of applying the percent decode algorithm to script source.

                29. @@ -80703,14 +80666,15 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O an html element with an attribute manifest whose value is not the empty string, then, as soon as the element is inserted into the document, the user agent must resolve the value of that attribute relative to that element, and if - that is successful, must apply the URL serialiser - algorithm to the resulting parsed URL with the exclude fragment flag set to - obtain manifest URL, and then run the application - cache selection algorithm with manifest URL as the manifest URL, passing in the - newly-created Document. Otherwise, if the attribute is absent, its value is the empty - string, or resolving its value fails, then as soon as the root element is inserted into the document, the user agent must run the parse the value of that attribute relative to that element's + node document, and if that is successful, must apply the URL serialiser algorithm to the resulting URL + record with the exclude fragment flag set to obtain manifest URL, and + then run the application cache selection algorithm + with manifest URL as the manifest URL, passing in the newly-created + Document. Otherwise, if the attribute is absent, its value is the empty string, or + parsing its value fails, then as soon as the root element is inserted into the document, the user agent must run the application cache selection algorithm with no manifest, and passing in the Document.

                  @@ -81007,7 +80971,7 @@ State: <OUTPUT NAME=I>1</OUTPUT> <INPUT VALUE="Increment" TYPE=BUTTON O
                  1. Apply the URL parser algorithm to the URL, and let fragid be the fragment component of the - resulting parsed URL.

                  2. If fragid is the empty string, then the indicated part of the @@ -82191,7 +82155,7 @@ NETWORK: data-x="">http://example.com/app1/manifest contains a namespace with a match for that URL.

                    - @@ -82492,7 +82456,7 @@ NETWORK: after this step will both be slashes, the URL path separator character.)

                  3. Apply the URL parser steps to the base URL, so that the - components from its parsed URL can be used by the subsequent steps of this + components from its URL record can be used by the subsequent steps of this algorithm.

                  4. Let explicit URLs be an initially empty list of Resolve the first item in tokens, - relative to base URL, with the URL character encoding set to UTF-8; - ignore the rest.

                    +

                    Let urlRecord be the result of parsing the + first item in tokens with base URL; ignore the rest.

                    -

                    If this fails, then jump back to the step labeled start of line.

                    +

                    If urlRecord is failure, then jump back to the step labeled start of + line.

                    -

                    If the resulting parsed URL has a different scheme component than base URL (the - manifest's URL), then jump back to the step labeled start of line.

                    +

                    If urlRecord has a different scheme + component than base URL (the manifest's URL), then jump back to the step labeled + start of line.

                    Let new URL be the result of applying the URL serialiser algorithm to the resulting parsed - URL, with the exclude fragment flag set.

                    + data-x="concept-url-serialiser">URL serialiser algorithm to urlRecord, with + the exclude fragment flag set.

                    Add new URL to the explicit URLs.

                    @@ -82636,18 +82600,22 @@ NETWORK:

                    Let part one be the first token in tokens, and let part two be the second token in tokens.

                    -

                    Resolve part one and part two, relative to base URL, with the URL character - encoding set to UTF-8.

                    +

                    Let urlRecordOne be the result of parsing + part one with base URL.

                    -

                    If either fails, then jump back to the step labeled start of line.

                    +

                    Let urlRecordTwo be the result of parsing + part two with base URL.

                    - -

                    If the resulting parsed URL corresponding to either part one or - part two does not have the same origin as the manifest's URL, - then jump back to the step labeled start of line.

                    +

                    If either urlRecordOne or urlRecordTwo is failure, then jump back to the + step labeled start of line.

                    + +

                    If the origin of either urlRecordOne or + urlRecordTwo is not same origin with the manifest's URL origin, then jump back to the step labeled start of + line.

                    Let part one path be the path component - of the resulting parsed URL for part one.

                    + of urlRecordOne.

                    If manifest path is not a prefix match for part one path, then jump back to the step labeled start of line.

                    Let part one be the result of applying the URL serialiser algorithm to the first resulting - parsed URL, with the exclude fragment flag set.

                    + data-x="concept-url-serialiser">URL serialiser algorithm to urlRecordOne, + with the exclude fragment flag set.

                    Let part two be the result of applying the URL serialiser algorithm to the second resulting - parsed URL, with the exclude fragment flag set.

                    + data-x="concept-url-serialiser">URL serialiser algorithm to urlRecordTwo, + with the exclude fragment flag set.

                    If part one is already in the fallback URLs mapping as a fallback namespace, then jump back to @@ -82681,18 +82649,19 @@ NETWORK: set online safelist wildcard flag to open and jump back to the step labeled start of line.

                    -

                    Otherwise, resolve the first item in tokens, relative to base URL, with the URL character - encoding set to UTF-8; ignore the rest.

                    +

                    Otherwise, let urlRecord be the result of parsing the first item in tokens with base URL.

                    -

                    If this fails, then jump back to the step labeled start of line.

                    +

                    If urlRecord is failure, then jump back to the step labeled start of + line.

                    -

                    If the resulting parsed URL has a different scheme component than base URL (the - manifest's URL), then jump back to the step labeled start of line.

                    +

                    If urlRecord has a different scheme + component than base URL (the manifest's URL), then jump back to the step labeled + start of line.

                    Let new URL be the result of applying the URL serialiser algorithm to the resulting parsed - URL, with the exclude fragment flag set.

                    + data-x="concept-url-serialiser">URL serialiser algorithm to urlRecord, with + the exclude fragment flag set.

                    Add new URL to the online safelist namespaces.

                    @@ -83026,11 +82995,11 @@ NETWORK:

                    Otherwise, associate the Document for this entry with cache; store the resource for this entry in cache, if it isn't already there, and categorise its entry as a master entry. If applying the URL parser - algorithm to the resource's URL results in a parsed URL that has a + algorithm to the resource's URL results in a URL record that has a non-null fragment component, the URL used for the entry in cache must instead be the absolute URL obtained from applying the URL serialiser - algorithm to the parsed URL with the exclude fragment flag set + algorithm to the URL record with the exclude fragment flag set (application caches never include fragment identifiers).

                  5. @@ -83629,9 +83598,9 @@ NETWORK:
                  6. If the resource is not to be fetched using the GET method, or if applying the URL parser algorithm to both its URL and the application cache's - manifest's URL results in two parsed URLs with different scheme components, - then fetch the resource normally and abort these steps.

                  7. + manifest's URL results in two URL records with different scheme + components, then fetch the resource normally and abort these steps.

                  8. If the resource's URL is a master entry, the manifest, NavigatorOnLine {

                    -

                    An absolute URL used by APIs called by scripts that use this environment - settings object to resolve relative URLs.

                    +

                    A URL used by APIs called by scripts that use this environment settings + object to parse URLs.

                    @@ -84847,9 +84816,8 @@ interface NavigatorOnLine {

                    The entry settings object is used to obtain, amongst other things, the API - base URL to resolve relative - URLs used in scripts running in that unit of related - similar-origin browsing contexts.

                    + base URL to parse a URL, used in scripts running in that + unit of related similar-origin browsing contexts.

                    The incumbent settings object is used in some security checks.

                    @@ -84885,9 +84853,9 @@ interface NavigatorOnLine { data-x="">b/b.html
                    ).

                    The assign() method uses the entry settings - object to resolve the URL, so we end up loading a/c.html, but it - uses the incumbent settings object to establish the source browsing - context, from which the referrer is established, so the ` to parse the URL, so we end up loading a/c.html, but it uses the incumbent settings object to establish + the source browsing context, from which the referrer is established, so the `Referer` header sent with the request for a/c.html specifies the inner file's URL (the one ending with b/b.html).

                    @@ -88405,29 +88373,29 @@ interface NavigatorContentUtils { argument passed to one of these methods does not contain the exact literal string "%s".

                    -

                    User agents must throw a SyntaxError exception if resolving the url argument relative to the API base - URL specified by the entry settings object is not successful.

                    +

                    User agents must throw a SyntaxError exception if parsing the url argument relative to the entry settings + object is not successful.

                    -

                    The resulting absolute URL would by definition not be a valid +

                    The resulting URL string would by definition not be a valid URL as it would include the string "%s" which is not a valid component in a URL.

                    -

                    User agents must throw a SecurityError exception if the resulting parsed - URL has an origin that differs from the origin specified by the - entry settings object.

                    +

                    User agents must throw a SecurityError exception if the resulting URL + record has an origin that differs from the + origin specified by the entry settings object.

                    This is forcibly the case if the %s placeholder is in the scheme, host, or port parts of the URL.

                    -

                    The resulting absolute URL is the proto-URL. It identifies the +

                    The resulting URL string is the proto-URL. It identifies the handler for the purposes of the methods described below.

                    When the user agent uses this handler, it must replace the first occurrence of the exact literal string "%s" in the url argument with an escaped version of the absolute URL of the content in question (as defined below), - then resolve the resulting URL, relative to the API - base URL specified by the entry settings object at the time the parse the resulting URL, relative to the entry + settings object at the time the registerContentHandler() or registerProtocolHandler() methods were invoked, and then navigate an appropriate browsing @@ -88665,17 +88633,14 @@ interface NavigatorContentUtils {

                  9. If the string does not contain the substring "%s", abort these steps. There's no matching handler.

                  10. -
                  11. Resolve the string relative to the API base - URL specified by the entry settings object.

                  12. - -
                  13. If this fails, then throw a SyntaxError exception, aborting the - method.

                  14. +
                  15. Parse the string relative to the entry settings + object. If this fails, then throw a SyntaxError exception.

                  16. -
                  17. If the resulting parsed URL's origin is not the same - origin as the origin specified by the entry settings object, - throw a SecurityError exception, aborting the method.

                  18. +
                  19. If the resulting URL record's origin + is not the same origin as the origin specified by the entry + settings object, throw a SecurityError exception.

                  20. -
                  21. Return the resulting absolute URL as the result of preprocessing the +

                  22. Return the resulting URL string as the result of preprocessing the argument.

                  @@ -89298,8 +89263,8 @@ interface MimeType {
                  interface External {
                  -  void AddSearchProvider(DOMString engineURL);
                  -  unsigned long IsSearchProviderInstalled(DOMString engineURL);
                  +  void AddSearchProvider(DOMString url);
                  +  unsigned long IsSearchProviderInstalled(DOMString url);
                   };

                  For historical reasons, members on this interface are capitalized.

                  @@ -89341,7 +89306,8 @@ interface MimeType {
                  -

                  The AddSearchProvider() method, +

                  The AddSearchProvider(url) method, when invoked, must run the following steps:

                    @@ -89350,18 +89316,16 @@ interface MimeType { never does anything, or may arbitrarily ignore invocations with particular arguments for security, privacy, or usability reasons.

                    -
                  1. Resolve the value of the method's first argument - relative to the API base URL specified by the entry settings - object.

                  2. +
                  3. Parse url relative to the entry + settings object. If this fails, abort these steps.

                  4. -
                  5. If this fails, abort these steps.

                  6. - -
                  7. Process the resulting absolute URL as the URL to an OpenSearch +

                  8. Process the resulting URL string as the URL to an OpenSearch description document.

                  -

                  The IsSearchProviderInstalled() +

                  The IsSearchProviderInstalled(url) method, when invoked, must run the following steps:

                  @@ -89378,14 +89342,11 @@ interface MimeType {
                30. Let host1 be the host component of the origin specified by the entry settings object.

                31. -
                32. Resolve the scriptURL argument - relative to the API base URL specified by the entry settings - object.

                33. - -
                34. If this fails, return 0 and abort these steps.

                35. +
                36. Parse url relative to the entry + settings object. If this fails, return 0 and abort these steps.

                37. Let host2 be the host component - of the resulting parsed URL.

                38. + of the resulting URL record.

                39. @@ -90178,9 +90139,8 @@ dictionary EventSourceInit {
                    -
                  1. Resolve the URL specified in the first - argument, relative to the API base URL specified by the entry settings - object.

                  2. +
                  3. Parse the URL specified in the first + argument, relative to the entry settings object.

                  4. If the previous step failed, then throw a SyntaxError exception and abort these steps.

                  5. @@ -90199,7 +90159,7 @@ dictionary EventSourceInit {
                  6. Let request be the result of creating a potential-CORS request given the - resulting parsed URL, corsAttributeState, and with the same-origin + resulting URL record, corsAttributeState, and with the same-origin fallback flag set.

                  7. Set request's client to @@ -90228,7 +90188,7 @@ dictionary EventSourceInit {


                    The url attribute must return the - absolute URL that resulted from resolving the + absolute URL that resulted from parsing the value that was passed to the constructor.

                    @@ -91156,10 +91116,10 @@ interface WebSocket : EventTarget {

                    The url attribute must return the - resulting absolute URL of resolving the + resulting URL string of parsing the URL that was passed to the constructor, with the URL character encoding set to UTF-8. - (It doesn't matter what it is resolved relative to, since we already know it is an - absolute URL.)

                    + (It doesn't matter what it is parsed relative to, since we already know it is an absolute + URL.)

                    The readyState attribute represents the state of the connection. It can have the following values:

                    @@ -91724,47 +91684,47 @@ socket.onopen = function () {
                  8. -

                    Resolve the url string, with the URL character +

                    Parse the url string, with the URL character encoding set to UTF-8.

                    Since we already know the url string is an absolute URL, - resolving it will never return an error, and it doesn't + parsing it will never return an error, and it doesn't matter what it is resolved relative to.

                  9. -
                  10. If the resulting parsed URL does not have a

                    If the resulting URL record does not have a scheme component whose value is either "ws" or "wss", then fail this algorithm.

                  11. -
                  12. If the resulting parsed URL has a non-null

                    If the resulting URL record has a non-null fragment component, then fail this algorithm.

                  13. If the scheme component of the resulting - parsed URL is "ws", set secure to false; + URL record is "ws", set secure to false; otherwise, the scheme component is "wss", set secure to true.

                  14. -
                  15. Let host be the value of the resulting parsed URL's

                    Let host be the value of the resulting URL record's host component.

                  16. -
                  17. If the resulting parsed URL has a port +

                  18. If the resulting URL record has a port component that is not the empty string, then let port be that component's value; otherwise, there is no explicit port.

                  19. If there is no explicit port, then: if secure is false, let port be 80, otherwise let port be 443.

                  20. -
                  21. Let resource name be the value of the resulting parsed URL's

                    Let resource name be the value of the resulting URL record's path component (which might be empty).

                  22. If resource name is the empty string, set it to a single character U+002F SOLIDUS (/).

                  23. -
                  24. If the resulting parsed URL has a non-null

                    If the resulting URL record has a non-null query component, then append a single U+003F QUESTION MARK character (?) to resource name, followed by the value of the query component.

                  25. browsing contexts to the URLs indicated by the + context">browsing contexts to the URLs indicated by the cite attributes on q, blockquote, ins, and del elements.

                    @@ -109733,12 +109694,13 @@ if (s = prompt('What is your name?')) {

                    If the value of the src attribute is the empty string, let url be the string "about:blank".

                    -

                    Otherwise, resolve the value of the src attribute, relative to the frame element.

                    +

                    Otherwise, parse the value of the src attribute, relative to the frame + element's node document.

                    If that is not successful, then let url be the URL - "about:blank". Otherwise, let url be the resulting parsed - URL.

                    + "about:blank". Otherwise, let url be the resulting URL + record.