Closed Bug 1948254 Opened 9 months ago Closed 8 months ago

Implement #navigate-event-firing

Categories

(Core :: DOM: Navigation, task)

task

Tracking

()

RESOLVED FIXED
138 Branch
Tracking Status
firefox138 --- fixed

People

(Reporter: farre, Assigned: farre)

References

(Blocks 2 open bugs)

Details

Attachments

(4 files)

Assignee: nobody → afarre
Status: NEW → ASSIGNED
Type: defect → task
Blocks: 1948249
Blocks: 1948596
Blocks: 1949204
Blocks: 1897439

Add an alternative for Promise::All that doesn't create a final promise,
and that restricts the amount of microtasks further. This algorithm is
defined in the WebIDL spec, and is used by #navigate-event-firing from
the Navigation API.

Also add ImplCycleCollectionTrace to make it possible to configure the
NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK step and trace
containers of traceable objects, much like ImplCycleCollectionTraverse.

This includes:

  • #fire-a-traverse-navigate-event
  • #fire-a-push/replace/reload-navigate-event
  • #fire-a-download-request-navigate-event

which are all implemented in terms of #inner-navigate-event-firing-algorithm.

Actually calling any of the above is only added for History.pushState and
History.replaceState using #fire-a-push/replace/reload-navigate-event.

Attachment #9467145 - Attachment description: Bug 1948254 - Part 1: Implement #wait-for-all. r=smaug!,peterv!,saschanaz! → Bug 1948254 - Part 1: Implement WebIDL #wait-for-all. r=smaug!,peterv!,saschanaz!
Duplicate of this bug: 1896584
Blocks: 1941729
Duplicate of this bug: 1941729
Blocks: 1948593
Blocks: 1949499

This makes UniquePtr<T> and nsTHashtable<T> use
ImplCycleCollectionContainer which removes the need of writing dedicated
specializations for the combination of these types.

This also fixes an issue with ImplCycleCollectionContainer for const
fields.

Attachment #9467146 - Attachment description: Bug 1948254 - Part 2: Implement #navigate-event-firing. r=#dom-core! → Bug 1948254 - Part 3: Implement #navigate-event-firing. r=#dom-core!
No longer blocks: 1941729

Also fix getters protocol usage and add asserts when null returning
getters actually have been checked implicitly.

Also add spec links and shorten multipage to single page links.

Attachment #9467146 - Attachment description: Bug 1948254 - Part 3: Implement #navigate-event-firing. r=#dom-core! → Bug 1948254 - Part 4: Implement #navigate-event-firing. r=#dom-core!
Blocks: 1952184
Pushed by afarre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3c4be02a9115 Part 1: Implement WebIDL #wait-for-all. r=smaug,saschanaz https://hg.mozilla.org/integration/autoland/rev/d13b8e53fb78 Part 2: Use ImplCycleCollectionContainer for more containers. r=peterv https://hg.mozilla.org/integration/autoland/rev/e327d067c6a0 Part 3: Fix DOMEventTargetHelper creation. r=smaug https://hg.mozilla.org/integration/autoland/rev/14269121caf3 Part 4: Implement #navigate-event-firing. r=webidl,smaug

Backed out for causing build bustages @ NavigateEvent.h

Flags: needinfo?(afarre)
Pushed by afarre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1f3acb6cf9cd Part 1: Implement WebIDL #wait-for-all. r=smaug,saschanaz https://hg.mozilla.org/integration/autoland/rev/05bbdc23154a Part 2: Use ImplCycleCollectionContainer for more containers. r=peterv https://hg.mozilla.org/integration/autoland/rev/403e2c469af4 Part 3: Fix DOMEventTargetHelper creation. r=smaug https://hg.mozilla.org/integration/autoland/rev/545c51e30bd9 Part 4: Implement #navigate-event-firing. r=webidl,smaug
Flags: needinfo?(afarre)

Backed out for causing failure on idlharness.https.html

Backout link

Push with failures

Failure log

Flags: needinfo?(afarre)
Pushed by afarre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4a26e79ce32e Part 1: Implement WebIDL #wait-for-all. r=smaug,saschanaz https://hg.mozilla.org/integration/autoland/rev/a79c8bef5dc3 Part 2: Use ImplCycleCollectionContainer for more containers. r=peterv https://hg.mozilla.org/integration/autoland/rev/640382d73264 Part 3: Fix DOMEventTargetHelper creation. r=smaug https://hg.mozilla.org/integration/autoland/rev/f5ad49e89bc3 Part 4: Implement #navigate-event-firing. r=webidl,smaug
Flags: needinfo?(afarre)
Pushed by afarre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/de134481ec47 Part 1: Implement WebIDL #wait-for-all. r=smaug,saschanaz https://hg.mozilla.org/integration/autoland/rev/763b0331c48b Part 2: Use ImplCycleCollectionContainer for more containers. r=peterv https://hg.mozilla.org/integration/autoland/rev/7061817d6823 Part 3: Fix DOMEventTargetHelper creation. r=smaug https://hg.mozilla.org/integration/autoland/rev/98ba043125fe Part 4: Implement #navigate-event-firing. r=webidl,smaug,jjaschke

Backed out for causing hazard bustage @ Navigation.cpp

Flags: needinfo?(afarre)
Pushed by afarre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6be8bbf1c192 Part 1: Implement WebIDL #wait-for-all. r=smaug,saschanaz https://hg.mozilla.org/integration/autoland/rev/aa744a2148b8 Part 2: Use ImplCycleCollectionContainer for more containers. r=peterv https://hg.mozilla.org/integration/autoland/rev/5ef6c80fec67 Part 3: Fix DOMEventTargetHelper creation. r=smaug https://hg.mozilla.org/integration/autoland/rev/9e352a9fb997 Part 4: Implement #navigate-event-firing. r=webidl,smaug,jjaschke
Flags: needinfo?(afarre)
Regressions: 1955148
Blocks: 1956293
No longer blocks: 1956293
Regressions: 1966934
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: