diff --git a/fetch.bs b/fetch.bs index 8d19ae84d..6d084dd91 100755 --- a/fetch.bs +++ b/fetch.bs @@ -5363,14 +5363,43 @@ returning a response directly, or allowing the request to proceed by returning n
  • Let isTopLevelNavigation be true if request's destination is "document"; otherwise, false. -

  • If isTopLevelNavigation is false and requestEnvironment is null, - then return a network error. +

  • Let isTopLevelSelfFetch be false. + +

  • +

    If request's client is non-null: + +

      +
    1. Let global be request's client's + global object. + +

    2. +

      If all of the following conditions are true: + +

        +
      • global is a {{Window}} object; -

      • Let navigationOrEnvironment be the string "navigation" if - isTopLevelNavigation is true; otherwise, requestEnvironment. +

      • global's navigable is not null; + +

      • global's navigable's parent + is null; and + +

      • requestEnvironment's creation URL + equals request's current URL, +

      + +

      then set isTopLevelSelfFetch to true. + +

    3. Let stringOrEnvironment be requestEnvironment. + +

    4. If isTopLevelNavigation is true, then set stringOrEnvironment + to "navigation". + +

    5. Otherwise, if isTopLevelSelfFetch is true, then set + stringOrEnvironment to "top-level-self-fetch". +

  • Let blob be the result of obtaining a blob object given - blobURLEntry and navigationOrEnvironment. + blobURLEntry and stringOrEnvironment.

  • If blob is not a {{Blob}} object, then return a network error.