Add skeleton interfaces for Navigation API behind `dom.navigation.webidl.enabled` pref
Categories
(Core :: DOM: Navigation, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox130 | --- | fixed |
People
(Reporter: farre, Assigned: avandolder)
References
(Blocks 8 open bugs)
Details
(Keywords: dev-doc-complete)
Attachments
(1 file)
Reporter | ||
Updated•6 months ago
|
Comment 1•6 months ago
|
||
This should be added to https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Experimental_features, at least once there is actual functionality behind the pref.
Sebastian
Reporter | ||
Updated•5 months ago
|
Assignee | ||
Comment 2•5 months ago
|
||
Updated•5 months ago
|
Comment 4•3 months ago
|
||
Backed out for causing multiple failures.
- Push with failures build bustages
- Failure Log
- Failure line: /builds/worker/workspace/obj-build/dist/include/mozilla/dom/NavigateEvent.h:31:54: error: declaration of 'mozilla::dom::NavigationType mozilla::dom::NavigateEvent::NavigationType() const' [-fpermissive]
- Push with failures - mochitests failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | dom/tests/mochitest/general/test_interfaces.html | If this is failing: DANGER, are you sure you want to expose the new interface NavigationActivation to all webpages as a property on 'window'? Do not make a change to this file without a review from a DOM peer for that specific change!!! (or a JS peer for changes to ecmaGlobals)
- Push with failures - wpt failures
- Failure Log
- Failure line: TEST-UNEXPECTED-CRASH | /html/dom/idlharness.https.html?include=(Document|Window) | expected OK
Comment 6•3 months ago
|
||
Backed out for causing bustages on NavigationTransition.
[task 2024-07-18T20:44:57.203Z] 20:44:57 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/events'
[task 2024-07-18T20:44:58.206Z] 20:44:58 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/bindings'
[task 2024-07-18T20:44:58.210Z] 20:44:58 INFO - /builds/worker/fetches/sccache/sccache /builds/worker/fetches/gcc/bin/g++ --sysroot /builds/worker/fetches/sysroot-x86_64-linux-gnu -std=gnu++17 -isystem /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include/c++/8 -isystem /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include/x86_64-linux-gnu/c++/8 -isystem /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include/x86_64-linux-gnu -isystem /builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include -o UnifiedBindings14.o -c -I/builds/worker/workspace/obj-build/dist/stl_wrappers -I/builds/worker/workspace/obj-build/dist/system_wrappers -include /builds/worker/checkouts/gecko/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DDEBUG=1 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DMOZ_SUPPORT_LEAKCHECKING -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/dom/bindings -I/builds/worker/workspace/obj-build/dom/bindings -I/builds/worker/workspace/obj-build/dist/include/mozilla/dom -I/builds/worker/checkouts/gecko/dom/base -I/builds/worker/checkouts/gecko/dom/battery -I/builds/worker/checkouts/gecko/dom/canvas -I/builds/worker/checkouts/gecko/dom/geolocation -I/builds/worker/checkouts/gecko/dom/html -I/builds/worker/checkouts/gecko/dom/indexedDB -I/builds/worker/checkouts/gecko/dom/media/webaudio -I/builds/worker/checkouts/gecko/dom/media/webrtc -I/builds/worker/checkouts/gecko/dom/media/webrtc/common/time_profiling -I/builds/worker/checkouts/gecko/dom/media/webrtc/jsapi -I/builds/worker/checkouts/gecko/dom/media/webrtc/libwebrtcglue -I/builds/worker/checkouts/gecko/dom/media/webrtc/transport -I/builds/worker/checkouts/gecko/dom/media/webspeech/recognition -I/builds/worker/checkouts/gecko/dom/svg -I/builds/worker/checkouts/gecko/dom/xml -I/builds/worker/checkouts/gecko/dom/xslt/base -I/builds/worker/checkouts/gecko/dom/xslt/xpath -I/builds/worker/checkouts/gecko/dom/xul -I/builds/worker/checkouts/gecko/js/xpconnect/src -I/builds/worker/checkouts/gecko/js/xpconnect/wrappers -I/builds/worker/checkouts/gecko/layout/generic -I/builds/worker/checkouts/gecko/layout/style -I/builds/worker/checkouts/gecko/layout/xul/tree -I/builds/worker/checkouts/gecko/media/webrtc -I/builds/worker/checkouts/gecko/netwerk/base -I/builds/worker/checkouts/gecko/third_party/libwebrtc -I/builds/worker/checkouts/gecko/third_party/libwebrtc/third_party/abseil-cpp -I/builds/worker/checkouts/gecko/third_party/msgpack/include -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -D_GLIBCXX_USE_CXX11_ABI=0 -fno-rtti -pthread -fno-sized-deallocation -fno-aligned-new -ffunction-sections -fdata-sections -fno-math-errno -fno-exceptions -pipe -fPIC -gdwarf-4 -O2 -fno-omit-frame-pointer -funwind-tables -Werror -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wno-invalid-offsetof -Wduplicated-cond -Wimplicit-fallthrough -Wlogical-op -Wno-error=maybe-uninitialized -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=free-nonheap-object -Wno-multistatement-macros -Wno-error=class-memaccess -Wformat -Wformat-overflow=2 -Wno-psabi -Wno-error=builtin-macro-redefined -Wno-maybe-uninitialized -fno-strict-aliasing -ffp-contract=off -MD -MP -MF .deps/UnifiedBindings14.o.pp UnifiedBindings14.cpp
[task 2024-07-18T20:44:58.214Z] 20:44:58 INFO - In file included from NavigationBinding.cpp:30,
[task 2024-07-18T20:44:58.215Z] 20:44:58 INFO - from UnifiedBindings14.cpp:197:
[task 2024-07-18T20:44:58.216Z] 20:44:58 ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/NavigationTransition.h:24:54: error: declaration of 'mozilla::dom::NavigationType mozilla::dom::NavigationTransition::NavigationType() const' [-fpermissive]
[task 2024-07-18T20:44:58.219Z] 20:44:58 INFO - NavigationType NavigationType() const { return {}; }
[task 2024-07-18T20:44:58.220Z] 20:44:58 INFO - ^
[task 2024-07-18T20:44:58.221Z] 20:44:58 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/NavigateEventBinding.h:7,
[task 2024-07-18T20:44:58.222Z] 20:44:58 INFO - from NavigateEventBinding.cpp:7,
[task 2024-07-18T20:44:58.222Z] 20:44:58 INFO - from UnifiedBindings14.cpp:171:
[task 2024-07-18T20:44:58.223Z] 20:44:58 ERROR - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/NavigationBinding.h:53:12: error: changes meaning of 'NavigationType' from 'enum class mozilla::dom::NavigationType' [-fpermissive]
[task 2024-07-18T20:44:58.224Z] 20:44:58 INFO - enum class NavigationType : uint8_t {
[task 2024-07-18T20:44:58.225Z] 20:44:58 INFO - ^~~~~~~~~~~~~~
[task 2024-07-18T20:44:58.226Z] 20:44:58 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/BindingDeclarations.h:25,
[task 2024-07-18T20:44:58.226Z] 20:44:58 INFO - from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/MimeTypeArrayBinding.h:9,
[task 2024-07-18T20:44:58.227Z] 20:44:58 INFO - from MimeTypeArrayBinding.cpp:5,
[task 2024-07-18T20:44:58.228Z] 20:44:58 INFO - from UnifiedBindings14.cpp:2:
[task 2024-07-18T20:44:58.229Z] 20:44:58 INFO - /builds/worker/workspace/obj-build/dist/include/nsTArray.h: In instantiation of 'static void AssignRangeAlgorithm<true, true>::implementation(ElemType*, IndexType, SizeType, const Item*) [with Item = mozilla::dom::workerinternals::JSSettings::JSGCSetting; ElemType = mozilla::dom::workerinternals::JSSettings::JSGCSetting; IndexType = long unsigned int; SizeType = long unsigned int]':
[task 2024-07-18T20:44:58.230Z] 20:44:58 INFO - /builds/worker/workspace/obj-build/dist/include/nsTArray.h:2439:58: required from 'void nsTArray_Impl<E, Alloc>::AssignRange(nsTArray_Impl<E, Alloc>::index_type, nsTArray_Impl<E, Alloc>::size_type, const Item*) [with Item = mozilla::dom::workerinternals::JSSettings::JSGCSetting; E = mozilla::dom::workerinternals::JSSettings::JSGCSetting; Alloc = nsTArrayInfallibleAllocator; nsTArray_Impl<E, Alloc>::index_type = long unsigned int; nsTArray_Impl<E, Alloc>::size_type = long unsigned int]'
[task 2024-07-18T20:44:58.230Z] 20:44:58 INFO - /builds/worker/workspace/obj-build/dist/include/nsTArray.h:2468:5: required from 'typename ActualAlloc::ResultType nsTArray_Impl<E, Alloc>::AssignInternal(const Item*, nsTArray_Impl<E, Alloc>::size_type) [with ActualAlloc = nsTArrayInfallibleAllocator; Item = mozilla::dom::workerinternals::JSSettings::JSGCSetting; E = mozilla::dom::workerinternals::JSSettings::JSGCSetting; Alloc = nsTArrayInfallibleAllocator; typename ActualAlloc::ResultType = void; nsTArray_Impl<E, Alloc>::size_type = long unsigned int]'
[task 2024-07-18T20:44:58.231Z] 20:44:58 INFO - /builds/worker/workspace/obj-build/dist/include/nsTArray.h:1454:39: required from 'typename ActualAlloc::ResultType nsTArray_Impl<E, Alloc>::Assign(const nsTArray_Impl<E, Allocator>&) [with Allocator = nsTArrayInfallibleAllocator; ActualAlloc = nsTArrayInfallibleAllocator; E = mozilla::dom::workerinternals::JSSettings::JSGCSetting; Alloc = nsTArrayInfallibleAllocator; typename ActualAlloc::ResultType = void]'
[task 2024-07-18T20:44:58.232Z] 20:44:58 INFO - /builds/worker/workspace/obj-build/dist/include/nsTArray.h:2965:7: required from 'CopyableTArray<E>& CopyableTArray<E>::operator=(const CopyableTArray<E>&) [with E = mozilla::dom::workerinternals::JSSettings::JSGCSetting]'
[task 2024-07-18T20:44:58.233Z] 20:44:58 INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/workerinternals/JSSettings.h:24:8: required from here
[task 2024-07-18T20:44:58.234Z] 20:44:58 WARNING - /builds/worker/workspace/obj-build/dist/include/nsTArray.h:671:13: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of non-trivially copyable type 'struct mozilla::dom::workerinternals::JSSettings::JSGCSetting'; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - memcpy(aElements + aStart, aValues, aCount * sizeof(ElemType));
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - In file included from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/workerinternals/RuntimeService.h:18,
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/Fetch.h:24,
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - from /builds/worker/workspace/obj-build/dist/include/mozilla/dom/Navigator.h:13,
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - from NavigatorBinding.cpp:12,
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - from UnifiedBindings14.cpp:288:
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - /builds/worker/workspace/obj-build/dist/include/mozilla/dom/workerinternals/JSSettings.h:25:10: note: 'struct mozilla::dom::workerinternals::JSSettings::JSGCSetting' declared here
[task 2024-07-18T20:44:58.235Z] 20:44:58 INFO - struct JSGCSetting {
[task 2024-07-18T20:44:58.236Z] 20:44:58 INFO - ^~~~~~~~~~~
[task 2024-07-18T20:44:58.236Z] 20:44:58 ERROR - gmake[4]: *** [/builds/worker/checkouts/gecko/config/rules.mk:676: UnifiedBindings14.o] Error 1
[task 2024-07-18T20:44:58.236Z] 20:44:58 INFO - gmake[4]: Leaving directory '/builds/worker/workspace/obj-build/dom/bindings'
[task 2024-07-18T20:44:58.236Z] 20:44:58 INFO - gmake[4]: Entering directory '/builds/worker/workspace/obj-build/dom/bindings'
[task 2024-07-18T20:44:58.236Z] 20:44:58 INFO - dom/bindings/UnifiedBindings15.o
Assignee | ||
Comment 7•3 months ago
•
|
||
Huh. I wonder if this is a compiler bug in gcc. Clang doesn't have a problem with this construct, or even warn about it. Weird.
Nope, gcc seems to be in the right here, the standard just says that compilers can choose to ignore it, which clang and MSVC do. Wild.
Comment 9•3 months ago
|
||
Backed out for causing android wpt crashes @ /html/dom/idlharness.https.html
Backout link: https://hg.mozilla.org/integration/autoland/rev/20323ca97c699dbc2fc6d217dff531fe2957875d
Comment 10•3 months ago
|
||
Comment 11•3 months ago
|
||
Backed out for causing build bustages in Navigation.cpp.
- Backout link
- Push with failures
- Failure Log
- Failure line: /builds/worker/checkouts/gecko/dom/navigation/Navigation.cpp:29:23: error: no member named 'dom_navigation_webidl_enabled_DoNotUseDirectly' in namespace 'mozilla::StaticPrefs'
Comment 12•3 months ago
|
||
Comment 13•3 months ago
|
||
bugherder |
Assignee | ||
Updated•3 months ago
|
Comment 14•3 months ago
|
||
FF130 MDN docs tracking for this is in https://github.com/mdn/content/issues/35282
However I am not sure what is worth documenting.
- The pref
dom.navigation.webidl.enabled
has the keydo_not_use_directly: true
. How would you enable this then? - If nothing is supported or testable then adding something to experimental features is not very helpful. The compatibility data for this API already links to https://bugzilla.mozilla.org/show_bug.cgi?id=1777171 which shows the features.
So my take on this is that we should do nothing for now, but when you start doing the issues in https://bugzilla.mozilla.org/show_bug.cgi?id=1777171 we should add to experimental features page and update the compatibility data with the dom.navigation.webidl.enabled
on the implemented features (only).
Does this make sense?
Comment 15•2 months ago
|
||
According to the in-code documentation, do_not_use_directly
is just an indication that a custom getter function is provided instead of the default one. I am not into the details of what that flag does, though the interface is already exposed via window.navigation
, it just doesn't do anything yet, as far as I understand.
So yeah, as I wrote earlier, adding an entry to the experimental features page only makes sense once there is actual functionality behind the pref. So it's fine to keep the dev-doc-needed
flag at bug 1777171 and remove it here and document it when there's something people can try out.
Sebastian
Comment 16•2 months ago
|
||
Thanks Sebastian! I saw your note, but though it worth checking again. I'd be happy with dev-doc-needed on the implementation bugs for the parts too - e.g. such as 1890747, 1890755, 1890756, 1895257, 1896584, 1896585, 1896666 - depending on whether they can be meaningfully tested. We'll be lead by you guys.
Updated•2 months ago
|
Description
•