Add layer and map credits through the renderer's credits port

The street-level provider credits, the map source credit, the shared
inline OpenStreetMap and OpenMapTiles credits and the ALPR provider credit
go through the renderer's credits port instead of Cesium's credit display.
Their markup has one link each and is read as the port's plain data; the
ALPR credit is built as plain data, which the port escapes. src/maps/credits.js
and src/layers/streetLevel/credits.js no longer reach Cesium and leave the
allow-list.

findCredits finds the port as findCamera finds the camera: a Cesium viewer
of a consumer's own, with no renderer bound, gets a credits port over its
own credit display, so the public entries keep their attribution. A port
built that way is released, not disposed, when a renderer binds later, and
a credit let go after its viewer is destroyed leaves the display alone.

The per-layer data credits and the transit and event credits stay on
Cesium's display: their markup carries several links each, which the
contract's credit cannot hold.
This commit is contained in:
Sameh Khamis committed 2026-11-06 16:32:23 -08:00
1 parent 9c9ba376e4
commit cf915e8c16
26 files changed
+418 -142

No files matched your search

+46
View File
@@ -9,6 +9,8 @@
"src/data/infrastructure.js",
"src/data/localGeojsonCore.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/data/localGeojsonLod.js",
"src/data/inputOwnership.js",
@@ -867,6 +869,8 @@
"src/ui/cockpitRollingValue.js",
"src/ui/cockpitCamera.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
"src/render/camera/events.js",
@@ -995,6 +999,8 @@
"src/ui/applicationShell.js",
"src/data/followed.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
"src/render/camera/events.js",
@@ -1260,6 +1266,8 @@
"src/scenes/director.js",
"src/data/followed.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/data/entityRecords.js",
"src/render/cesium/follow.js",
"src/geo/index.js",
@@ -1803,6 +1811,8 @@
"src/layers/launches/controls.js",
"src/layers/launches/index.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/data/entityRecords.js",
"src/render/cesium/follow.js",
"src/layers/launches/ingestion.js",
@@ -1866,6 +1876,8 @@
"src/data/installationNames.js",
"src/layers/installations/controls.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/geo/index.js",
"src/render/rendererOf.js",
@@ -1946,6 +1958,8 @@
"src/layers/awareness/dependencies.js",
"src/layers/awareness/focus.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
"src/render/camera/events.js",
@@ -2130,6 +2144,8 @@
"src/layers/cctv/modelSpecs.js",
"src/layers/cctv/navigation.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
"src/render/camera/events.js",
@@ -2194,8 +2210,10 @@
],
"modules": [
"src/layers/streetLevel/index.js",
"src/render/cesium/credits.js",
"src/geo/index.js",
"src/layers/streetLevel/credits.js",
"src/render/creditMarkup.js",
"src/layers/streetLevel/providers/mapillary/index.js",
"src/layers/streetLevel/viewerHost.js",
"src/layers/streetLevel/cameraFraming.js",
@@ -2288,6 +2306,8 @@
"src/layers/alpr/policy.js",
"src/layers/alpr/presentation.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
"src/render/camera/events.js",
@@ -2360,6 +2380,8 @@
"src/layers/radio/navigation.js",
"src/data/followed.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/data/entityRecords.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
@@ -2417,6 +2439,8 @@
"src/geo/index.js",
"src/layers/submarineCables/interaction.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
"src/render/camera/events.js",
@@ -2495,10 +2519,24 @@
"modules": [
"src/i18n/marker.js",
"src/maps/availability.js",
"src/geo/index.js",
"src/maps/catalog.js",
"src/maps/controller.js",
"src/render/cesium/credits.js",
"src/render/cesium/camera.js",
"src/render/camera/events.js",
"src/geo/celestial.js",
"src/geo/quaternion.js",
"src/geo/frames.js",
"src/geo/ellipsoid.js",
"src/geo/vector.js",
"src/maps/imageryComparison.js",
"src/maps/credits.js",
"src/render/rendererOf.js",
"src/render/cesium/follow.js",
"src/render/cesium/internals.js",
"src/render/cesium/common.js",
"src/render/creditMarkup.js",
"src/maps/defaultSources.js",
"src/maps/google3d.js",
"src/maps/imagery.js",
@@ -4165,12 +4203,14 @@
"src/layers/recentImagery/thumbnails.js",
"src/maps/imageryHost.js",
"src/layers/streetLevel/index.js",
"src/render/cesium/credits.js",
"src/layers/streetLevel/uiState.js",
"src/layers/streetLevel/pickRouter.js",
"src/layers/streetLevel/params.js",
"src/layers/streetLevel/registry.js",
"scripts/qa-street-level.mjs",
"src/layers/streetLevel/credits.js",
"src/render/creditMarkup.js",
"src/layers/streetLevel/providers/mapillary/index.js",
"src/layers/streetLevel/viewerHost.js",
"src/layers/streetLevel/cameraFraming.js",
@@ -4319,6 +4359,8 @@
"src/layers/firms/anchors.js",
"src/locations.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/data/entityRecords.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
@@ -4422,6 +4464,8 @@
"src/geo/index.js",
"src/ui/navigationController.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/data/followed.js",
"src/app/stateChannel.js",
"src/data/cameraArrival.js",
@@ -4945,6 +4989,8 @@
"src/cyberSonar.js",
"src/celestialRing.js",
"src/render/cesium/camera.js",
"src/render/cesium/credits.js",
"src/render/creditMarkup.js",
"src/render/cesium/follow.js",
"src/render/rendererOf.js",
"src/render/camera/events.js",