@@ -14282,24 +14282,23 @@ people expect to have work and what is necessary.
14282
14282
14283
14283
<p>This pragma acts as timed redirect.</p>
14284
14284
14285
+ <p>A <code>Document</code> object has an associated <dfn data-dfn-for="Document">will
14286
+ declaratively refresh</dfn> (a boolean). It is initially false.</p>
14287
+
14285
14288
<div w-nodev>
14286
14289
14287
14290
<ol>
14288
14291
<!-- TESTS: https://www.hixie.ch/tests/adhoc/html/meta/refresh/ -->
14289
14292
<!-- https://software.hixie.ch/utilities/js/live-dom-viewer/?saved=734 -->
14293
+ <li><p>Let <var>document</var> be the <code>meta</code> element's <span>node
14294
+ document</span>.</p></li>
14290
14295
14291
- <li><p>If another <code>meta</code> element with an <code
14292
- data-x="attr-meta-http-equiv">http-equiv</code> attribute in the <span
14293
- data-x="attr-meta-http-equiv-refresh">Refresh state</span> has already been successfully
14294
- processed (i.e. when it was inserted the user agent processed it and reached the step labeled
14295
- <i>end</i>), then return.</p></li>
14296
+ <li><p>If <var>document</var>'s <span>will declaratively refresh</span> is true, then
14297
+ return.</p></li>
14296
14298
14297
14299
<li><p>If the <code>meta</code> element has no <code data-x="attr-meta-content">content</code>
14298
14300
attribute, or if that attribute's value is the empty string, then return.</p></li>
14299
14301
14300
- <li><p>Let <var>document</var> be the <code>meta</code> element's <span>node
14301
- document</span>.</p></li>
14302
-
14303
14302
<li><p>Let <var>input</var> be the value of the element's <code
14304
14303
data-x="attr-meta-content">content</code> attribute.</p></li>
14305
14304
@@ -14331,79 +14330,83 @@ people expect to have work and what is necessary.
14331
14330
U+002E FULL STOP characters (.) from <var>input</var> given <var>position</var>. Ignore any
14332
14331
collected characters.</p></li>
14333
14332
14334
- <li><p>Let <var>url</var> be <var>document</var>'s <span
14335
- data-x="concept-document-URL">URL</span>, <span
14336
- data-x="concept-url-serializer">serialized</span>.</p></li>
14333
+ <li><p>Let <var>urlRecord</var> be <var>document</var>'s <span
14334
+ data-x="concept-document-URL">URL</span>.</p></li>
14337
14335
14338
- <li><p>If <var>position</var> is past the end of <var>input</var>, jump to the step labeled
14339
- <i>end</i>.</p></li >
14336
+ <li>
14337
+ <p>If <var>position</var> is not past the end of <var>input</var>, then:</p >
14340
14338
14341
- <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var> is
14342
- not U+003B (;), U+002C (,), or <span>ASCII whitespace</span>, then return.</p></li>
14339
+ <ol>
14340
+ <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var>
14341
+ is not U+003B (;), U+002C (,), or <span>ASCII whitespace</span>, then return.</p></li>
14343
14342
14344
- <li><p><span>Skip ASCII whitespace</span> within <var>input</var> given
14345
- <var>position</var>.</p></li>
14343
+ <li><p><span>Skip ASCII whitespace</span> within <var>input</var> given
14344
+ <var>position</var>.</p></li>
14346
14345
14347
- <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var> is
14348
- U+003B (;) or U+002C (,), then advance <var>position</var> to the next <span>code
14349
- point</span>.</p></li>
14346
+ <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var>
14347
+ is U+003B (;) or U+002C (,), then advance <var>position</var> to the next <span>code
14348
+ point</span>.</p></li>
14350
14349
14351
- <li><p><span>Skip ASCII whitespace</span> within <var>input</var> given
14352
- <var>position</var>.</p></li>
14350
+ <li><p><span>Skip ASCII whitespace</span> within <var>input</var> given
14351
+ <var>position</var>.</p></li>
14352
+ </ol>
14353
+ </li>
14353
14354
14354
- <li><p>If <var>position</var> is past the end of <var>input</var>, jump to the step labeled
14355
- <i>end</i>.</p></li>
14355
+ <li>
14356
+ <p>If <var>position</var> is not past the end of <var>input</var>, then:</p>
14357
+
14358
+ <ol>
14359
+ <li><p>Let <var>urlString</var> be the substring of <var>input</var> from the
14360
+ <span>code point</span> at <var>position</var> to the end of the string.</p></li>
14356
14361
14357
- <li><p>Set <var>url</var> to the substring of <var>input</var> from the <span>code point</span>
14358
- at <var>position</var> to the end of the string.</p></li>
14362
+ <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var>
14363
+ is U+0055 (U) or U+0075 (u), then advance <var>position</var> to the next <span>code
14364
+ point</span>. Otherwise, jump to the step labeled <i>skip quotes</i>.</p></li>
14359
14365
14360
- <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var> is
14361
- U+0055 (U ) or U+0075 (u ), then advance <var>position</var> to the next <span>code point</span>.
14362
- Otherwise, jump to the step labeled <i>skip quotes </i>.</p></li>
14366
+ <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var>
14367
+ is U+0052 (R ) or U+0072 (r ), then advance <var>position</var> to the next <span>code
14368
+ point</span>. Otherwise, jump to the step labeled <i>parse </i>.</p></li>
14363
14369
14364
- <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var> is
14365
- U+0052 (R ) or U+0072 (r ), then advance <var>position</var> to the next <span>code point</span>.
14366
- Otherwise, jump to the step labeled <i>parse</i>.</p></li>
14370
+ <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var>
14371
+ is U+004C (L ) or U+006C (l ), then advance <var>position</var> to the next <span>code
14372
+ point</span>. Otherwise, jump to the step labeled <i>parse</i>.</p></li>
14367
14373
14368
- <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var> is
14369
- U+004C (L) or U+006C (l), then advance <var>position</var> to the next <span>code point</span>.
14370
- Otherwise, jump to the step labeled <i>parse</i>.</p></li>
14374
+ <li><p><span>Skip ASCII whitespace</span> within <var>input</var> given
14375
+ <var>position</var>.</p></li>
14371
14376
14372
- <li><p><span>Skip ASCII whitespace</span> within <var>input</var> given
14373
- <var>position</var>.</p></li>
14377
+ <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var>
14378
+ is U+003D (=), then advance <var>position</var> to the next <span>code point</span>.
14379
+ Otherwise, jump to the step labeled <i>parse</i>.</p></li>
14374
14380
14375
- <li><p>If the <span>code point</span> in <var>input</var> pointed to by <var>position</var> is
14376
- U+003D (=), then advance <var>position</var> to the next <span>code point</span>. Otherwise,
14377
- jump to the step labeled <i>parse</i>.</p></li>
14381
+ <li><p><span>Skip ASCII whitespace</span> within <var>input</var> given
14382
+ <var>position</var>.</p></li>
14378
14383
14379
- <li><p><span>Skip ASCII whitespace</span> within <var>input</var> given
14380
- <var>position</var>.</p></li>
14384
+ <li><p><i>Skip quotes</i>: If the <span>code point</span> in <var>input</var> pointed to by
14385
+ <var>position</var> is U+0027 (') or U+0022 ("), then let <var>quote</var> be that <span>code
14386
+ point</span>, and advance <var>position</var> to the next <span>code point</span>. Otherwise,
14387
+ let <var>quote</var> be the empty string.</p></li>
14381
14388
14382
- <li><p><i>Skip quotes</i>: If the <span>code point</span> in <var>input</var> pointed to by
14383
- <var>position</var> is U+0027 (') or U+0022 ("), then let <var>quote</var> be that <span>code
14384
- point</span>, and advance <var>position</var> to the next <span>code point</span>. Otherwise,
14385
- let <var>quote</var> be the empty string.</p></li>
14389
+ <li><p>Set <var>urlString</var> to the substring of <var>input</var> from the <span>code
14390
+ point</span> at <var>position</var> to the end of the string.</p></li>
14386
14391
14387
- <li><p>Set <var>url</var> to the substring of <var>input</var> from the <span>code point</span>
14388
- at <var>position</var> to the end of the string.</p></li>
14392
+ <li><p>If <var>quote</var> is not the empty string, and there is a <span>code point</span> in
14393
+ <var>urlString</var> equal to <var>quote</var>, then truncate <var>urlString</var> at that
14394
+ <span>code point</span>, so that it and all subsequent <span data-x="code point">code
14395
+ points</span> are removed.</p>
14389
14396
14390
- <li><p>If <var>quote</var> is not the empty string, and there is a <span>code point</span> in
14391
- <var>url</var> equal to <var>quote</var>, then truncate <var>url</var> at that <span>code
14392
- point</span>, so that it and all subsequent <span data-x="code point">code points</span> are
14393
- removed.</p>
14397
+ <li><p><i>Parse</i>: <span data-x="parse a url">Parse</span> <var>urlString</var> relative to
14398
+ <var>document</var>. If that fails, return. Otherwise, set <var>urlRecord</var> to the
14399
+ <span>resulting URL record</span>.</p></li>
14400
+ </ol>
14401
+ </li>
14394
14402
14395
- <li><p><i>Parse</i>: <span data-x="parse a url">Parse</span> <var>url</var> relative to
14396
- <var>document</var>. If that fails, return. Otherwise, let <var>urlRecord</var> be the
14397
- <span>resulting URL record</span>.</p></li>
14403
+ <li><p>Set <var>document</var>'s <span>will declaratively refresh</span> to true.</p></li>
14398
14404
14399
14405
<li>
14400
-
14401
- <p><i>End</i>: Perform one or more of the following steps:</p>
14406
+ <p>Perform one or more of the following steps:</p>
14402
14407
14403
14408
<ul>
14404
-
14405
14409
<li>
14406
-
14407
14410
<p>After the refresh has come due (as defined below), if the user has not canceled the
14408
14411
redirect and <var>document</var>'s <span>active sandboxing flag set</span> does not have the
14409
14412
<span>sandboxed automatic features browsing context flag</span> set, <span
@@ -14417,7 +14420,6 @@ people expect to have work and what is necessary.
14417
14420
the <em>later</em> of the following two conditions occurs:</p>
14418
14421
14419
14422
<ul>
14420
-
14421
14423
<li>At least <var>time</var> seconds have elapsed since <var>document</var> has
14422
14424
<span>completely loaded</span>, adjusted to take into account user or user agent
14423
14425
preferences.</li>
@@ -14427,13 +14429,11 @@ people expect to have work and what is necessary.
14427
14429
<span data-x="node is inserted into a document">inserted into the document</span>
14428
14430
<var>document</var>, adjusted to take into account user or user agent preferences.</li>
14429
14431
<!-- https://software.hixie.ch/utilities/js/live-dom-viewer/?saved=772 -->
14430
-
14431
14432
</ul>
14432
14433
14433
14434
<p class="note">It is important to use <var>document</var> here, and not the
14434
14435
<code>meta</code> element's <span>node document</span>, as that might have changed between
14435
14436
the initial set of steps and the refresh coming due.</p>
14436
-
14437
14437
</li>
14438
14438
14439
14439
<li><p>Provide the user with an interface that, when selected, <span
@@ -14443,15 +14443,12 @@ people expect to have work and what is necessary.
14443
14443
context</span>.</p></li>
14444
14444
14445
14445
<li><p>Do nothing.</p></li>
14446
-
14447
14446
</ul>
14448
14447
14449
14448
<p>In addition, the user agent may, as with anything, inform the user of any and all aspects
14450
14449
of its operation, including the state of any timers, the destinations of any timed redirects,
14451
14450
and so forth.</p>
14452
-
14453
14451
</li>
14454
-
14455
14452
</ol>
14456
14453
14457
14454
</div>
0 commit comments