Commits on Feb 22, 2017
Commits on Feb 20, 2017
  1. Use Nontransitional_Processing for IDNA ToASCII

    This is implemented by Firefox, Safari, and Node.js. The hope is that other browsers and user agents will follow suit.
    Tests: w3c/web-platform-tests#4794.
    Fixes #239.
    annevk committed on GitHub Feb 20, 2017
Commits on Feb 17, 2017
Commits on Feb 16, 2017
  1. A file URL cannot have credentials

    Remove “dead code” found through
    w3c/web-platform-tests#3018. (Note that the
    API username/password setters are also no-ops for file URLs.)
    annevk committed Feb 16, 2017
Commits on Feb 15, 2017
  1. Meta: make .pr-preview.json JSON

    tobie committed with annevk Feb 15, 2017
Commits on Feb 14, 2017
  1. Editorial: use specific names for encode sets

    “Simple encode set” is effectively “C0 control percent-encode set” so name it that (cannot use a more specific name as it's used in rather distinct places). And “default encode set” is only used for paths, so name it “path percent-encode set”. Rename the last to “userinfo percent-encode set” for consistency.
    Fixes #201.
    annevk committed on GitHub Feb 14, 2017
Commits on Feb 13, 2017
  1. Remove host parser's Unicode flag as it's unnecessary

    It was once introduced for a domainToUnicode() method, but that could
    also simply run the domain to Unicode after parsing the host into a
    domain if it were introduced again.
    annevk committed Feb 13, 2017
Commits on Feb 10, 2017
  1. Make IPv6 addresses in special URLs valid

    I forgot about this in #218.
    annevk committed Feb 9, 2017
  2. Paths need to be copied from base URLs

    Otherwise things get a little weird.
    Fixes #231.
    annevk committed on GitHub Feb 10, 2017
  3. Define which URLs are valid in the parser examples

    Also add a couple more examples for file URLs and various URLs discussed in #118.
    Also make sure the base URLs are actually represented in serialized form by adding trailing slashes.
    Fixes #209.
    annevk committed on GitHub Feb 10, 2017
  4. Attempt to explain valid input better

    In particular, do away with the word "syntax" as that causes lots of confusion and focus on validity instead. Also explain the relationship between the parser, serializer, representation, and (valid) input.
    "Syntax violation" is now known as "validation error".
    Fixes #118 and fixes part of #209.
    annevk committed on GitHub Feb 10, 2017
Commits on Feb 9, 2017
  1. Editorial: use the Infra Standard for URL's path

    Also stop saying "terminate these steps" and simply return.
    Fixes #235.
    annevk committed on GitHub Feb 9, 2017
Commits on Feb 8, 2017
  1. Cleanup API for file and non-special URLs

    * Stops the username/password/port APIs from functioning when host is the empty string.
    * Makes the host/hostname APIs work better with file URLs and adjusts the file host state accordingly.
    * Make setting host/hostname to the empty string impossible when they have a username/password/port.
    * Fixes #97.
    annevk committed on GitHub Feb 8, 2017
  2. Meta: state idempotence clearly as a goal

    Especially since browsers often violate this, which is rather bad for security.
    annevk committed on GitHub Feb 8, 2017
  3. Define URL's toJSON()

    This makes it a little easier to use with JSON.stringify().
    Tests: w3c/web-platform-tests#4702.
    Fixes #137.
    annevk committed on GitHub Feb 8, 2017
Commits on Feb 7, 2017
  1. Editorial: move Windows drive letter to a more logical location

    Also point out that the variant with a trailing “|” is not conforming.
    Fixes part of #209.
    annevk committed Feb 2, 2017
Commits on Jan 31, 2017
  1. Change path parsing for non-special URLs

    This allows paths to be empty for non-special URLs and also takes that into account when serializing.
    Tests: w3c/web-platform-tests#4586.
    Fixes #212.
    annevk committed on GitHub Jan 31, 2017
Commits on Jan 29, 2017
Commits on Jan 24, 2017
  1. IPv4 parser: handle the empty string

    This is a theoretical issue once #185 lands, but as discussed it seems
    good to address this anyway. Fixes #79.
    annevk committed Dec 29, 2016
  2. Add opaque hosts

    For URLs without a special scheme we cannot use the host parser directly due to compatibility issues. Instead we percent-encode the input.
    Also make sure that if "userinfo" or port is present, host is non-empty. 
    Tests: w3c/web-platform-tests#4406.
    Fixes #148 and fixes #214.
    annevk committed on GitHub Jan 24, 2017
Commits on Jan 18, 2017
  1. Add URLSearchParams.prototype.sort()

    This method is added to increase cache hits when making requests. It’s
    opt-in as the order of code points in a URL’s query is significant by
    default. It’s up to applications to decide if name order is not
    significant for them.
    Tests: w3c/web-platform-tests#4531.
    Fixes #26.
    annevk committed on GitHub Jan 18, 2017
Commits on Jan 17, 2017
  1. Parse application/x-www-form-urlencoded using UTF-8 only

    This changes the following things that were not implemented or caused contradictions in the URL Standard:
    * No more support for non-UTF-8 encodings.
    * No more support for _charset_.
    * No more restricting input to ASCII bytes.
    * Make it clear that decoding doesn't strip any BOM.
    Tests: w3c/web-platform-tests#4517.
    Fixes #84.
    annevk committed on GitHub Jan 17, 2017
Commits on Jan 16, 2017
  1. Editorial: use simple/y less

    Fixes part of #201.
    annevk committed Jan 15, 2017
Commits on Jan 12, 2017
  1. Simplify constructing URLSearchParams

    annevk committed on GitHub Jan 12, 2017
  2. Meta: enable HTML checker

    annevk committed Jan 12, 2017
Commits on Jan 11, 2017
  1. Disallow invalid IPv4 in IPv6 parser

    Fixes #195.
    rmisev committed with annevk Jan 6, 2017
Commits on Jan 5, 2017
  1. Return failure in state override scheme parsing

    This is necessary to define the behavior of the Location object’s
    protocol attribute, which throws on syntax errors rather than silently
    ignoring them as other protocol setters do.
    Tests: w3c/web-platform-tests#4412.
    This is the cleanup work mentioned in
    that is happening way late.
    annevk committed Jan 3, 2017