Skip to content

Commit 3ab79b8

Browse files
mrdoobclaude
andcommitted
Editor: Deprecate ServiceWorker.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 84ea547 commit 3ab79b8

2 files changed

Lines changed: 7 additions & 314 deletions

File tree

editor/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@
240240

241241
}
242242

243-
// ServiceWorker
243+
// @deprecated, r183
244244

245245
if ( 'serviceWorker' in navigator ) {
246246

editor/sw.js

Lines changed: 6 additions & 313 deletions
Original file line numberDiff line numberDiff line change
@@ -1,324 +1,17 @@
1-
const cacheName = 'threejs-editor';
2-
3-
const assets = [
4-
'./',
5-
6-
'./manifest.json',
7-
'./images/icon.png',
8-
9-
'../files/favicon.ico',
10-
11-
'../build/three.module.js',
12-
13-
'../examples/jsm/controls/TransformControls.js',
14-
15-
'../examples/jsm/libs/chevrotain.module.min.js',
16-
'../examples/jsm/libs/fflate.module.js',
17-
18-
'../examples/jsm/libs/draco/draco_decoder.js',
19-
'../examples/jsm/libs/draco/draco_decoder.wasm',
20-
'../examples/jsm/libs/draco/draco_encoder.js',
21-
'../examples/jsm/libs/draco/draco_wasm_wrapper.js',
22-
23-
'../examples/jsm/libs/draco/gltf/draco_decoder.js',
24-
'../examples/jsm/libs/draco/gltf/draco_decoder.wasm',
25-
'../examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js',
26-
27-
'../examples/jsm/libs/meshopt_decoder.module.js',
28-
29-
'../examples/jsm/libs/mikktspace.module.js',
30-
31-
'../examples/jsm/libs/motion-controllers.module.js',
32-
33-
'../examples/jsm/libs/rhino3dm/rhino3dm.wasm',
34-
'../examples/jsm/libs/rhino3dm/rhino3dm.js',
35-
36-
'../examples/jsm/loaders/3DMLoader.js',
37-
'../examples/jsm/loaders/3MFLoader.js',
38-
'../examples/jsm/loaders/AMFLoader.js',
39-
'../examples/jsm/loaders/ColladaLoader.js',
40-
'../examples/jsm/loaders/DRACOLoader.js',
41-
'../examples/jsm/loaders/FBXLoader.js',
42-
'../examples/jsm/loaders/GLTFLoader.js',
43-
'../examples/jsm/loaders/KMZLoader.js',
44-
'../examples/jsm/loaders/MD2Loader.js',
45-
'../examples/jsm/loaders/OBJLoader.js',
46-
'../examples/jsm/loaders/MTLLoader.js',
47-
'../examples/jsm/loaders/PCDLoader.js',
48-
'../examples/jsm/loaders/PLYLoader.js',
49-
'../examples/jsm/loaders/STLLoader.js',
50-
'../examples/jsm/loaders/SVGLoader.js',
51-
'../examples/jsm/loaders/TDSLoader.js',
52-
'../examples/jsm/loaders/USDLoader.js',
53-
'../examples/jsm/loaders/usd/USDAParser.js',
54-
'../examples/jsm/loaders/usd/USDCParser.js',
55-
'../examples/jsm/loaders/VOXLoader.js',
56-
'../examples/jsm/loaders/VRMLLoader.js',
57-
'../examples/jsm/loaders/VTKLoader.js',
58-
'../examples/jsm/loaders/XYZLoader.js',
59-
60-
'../examples/jsm/loaders/EXRLoader.js',
61-
'../examples/jsm/loaders/KTX2Loader.js',
62-
'../examples/jsm/loaders/HDRLoader.js',
63-
'../examples/jsm/loaders/TGALoader.js',
64-
65-
'../examples/jsm/curves/NURBSCurve.js',
66-
'../examples/jsm/curves/NURBSUtils.js',
67-
68-
'../examples/jsm/interactive/HTMLMesh.js',
69-
'../examples/jsm/interactive/InteractiveGroup.js',
70-
71-
'../examples/jsm/environments/ColorEnvironment.js',
72-
'../examples/jsm/environments/RoomEnvironment.js',
73-
74-
'../examples/jsm/exporters/DRACOExporter.js',
75-
'../examples/jsm/exporters/GLTFExporter.js',
76-
'../examples/jsm/exporters/OBJExporter.js',
77-
'../examples/jsm/exporters/PLYExporter.js',
78-
'../examples/jsm/exporters/STLExporter.js',
79-
'../examples/jsm/exporters/USDZExporter.js',
80-
81-
'../examples/jsm/helpers/VertexNormalsHelper.js',
82-
'../examples/jsm/helpers/ViewHelper.js',
83-
84-
'../examples/jsm/utils/BufferGeometryUtils.js',
85-
86-
'../examples/jsm/webxr/XRControllerModelFactory.js',
87-
88-
'./images/rotate.svg',
89-
'./images/scale.svg',
90-
'./images/translate.svg',
91-
92-
'./js/libs/codemirror/codemirror.css',
93-
'./js/libs/codemirror/theme/monokai.css',
94-
95-
'./js/libs/codemirror/codemirror.js',
96-
'./js/libs/codemirror/mode/javascript.js',
97-
'./js/libs/codemirror/mode/glsl.js',
98-
99-
'./js/libs/esprima.js',
100-
'./js/libs/jsonlint.js',
101-
102-
'./js/libs/codemirror/addon/dialog.css',
103-
'./js/libs/codemirror/addon/show-hint.css',
104-
'./js/libs/codemirror/addon/tern.css',
105-
106-
'./js/libs/codemirror/addon/dialog.js',
107-
'./js/libs/codemirror/addon/show-hint.js',
108-
'./js/libs/codemirror/addon/tern.js',
109-
'./js/libs/acorn/acorn.js',
110-
'./js/libs/acorn/acorn_loose.js',
111-
'./js/libs/acorn/walk.js',
112-
'./js/libs/ternjs/polyfill.js',
113-
'./js/libs/ternjs/signal.js',
114-
'./js/libs/ternjs/tern.js',
115-
'./js/libs/ternjs/def.js',
116-
'./js/libs/ternjs/comment.js',
117-
'./js/libs/ternjs/infer.js',
118-
'./js/libs/ternjs/doc_comment.js',
119-
'./js/libs/tern-threejs/threejs.js',
120-
121-
'./js/libs/signals.min.js',
122-
'./js/libs/ui.js',
123-
'./js/libs/ui.three.js',
124-
125-
'./js/libs/app.js',
126-
'./js/Player.js',
127-
'./js/Script.js',
128-
129-
//
130-
131-
'./css/main.css',
132-
133-
'./js/EditorControls.js',
134-
'./js/Storage.js',
135-
136-
'./js/Editor.js',
137-
'./js/Config.js',
138-
'./js/History.js',
139-
'./js/Loader.js',
140-
'./js/LoaderUtils.js',
141-
'./js/GLTFImportDialog.js',
142-
'./js/Menubar.js',
143-
'./js/Menubar.File.js',
144-
'./js/Menubar.Edit.js',
145-
'./js/Menubar.Add.js',
146-
'./js/Menubar.Help.js',
147-
'./js/Menubar.View.js',
148-
'./js/Menubar.Status.js',
149-
'./js/Resizer.js',
150-
'./js/Selector.js',
151-
'./js/Sidebar.js',
152-
'./js/Sidebar.Scene.js',
153-
'./js/Sidebar.Project.js',
154-
'./js/Sidebar.Project.Renderer.js',
155-
'./js/Sidebar.Project.Materials.js',
156-
'./js/Sidebar.Project.Resources.js',
157-
'./js/Sidebar.Project.App.js',
158-
'./js/Sidebar.Settings.js',
159-
'./js/Sidebar.Settings.History.js',
160-
'./js/Sidebar.Settings.Shortcuts.js',
161-
'./js/Sidebar.Properties.js',
162-
'./js/Sidebar.Object.js',
163-
'./js/Sidebar.Object.Animation.js',
164-
'./js/Sidebar.Geometry.js',
165-
'./js/Sidebar.Geometry.BufferGeometry.js',
166-
'./js/Sidebar.Geometry.Modifiers.js',
167-
'./js/Sidebar.Geometry.BoxGeometry.js',
168-
'./js/Sidebar.Geometry.CapsuleGeometry.js',
169-
'./js/Sidebar.Geometry.CircleGeometry.js',
170-
'./js/Sidebar.Geometry.CylinderGeometry.js',
171-
'./js/Sidebar.Geometry.DodecahedronGeometry.js',
172-
'./js/Sidebar.Geometry.ExtrudeGeometry.js',
173-
'./js/Sidebar.Geometry.IcosahedronGeometry.js',
174-
'./js/Sidebar.Geometry.LatheGeometry.js',
175-
'./js/Sidebar.Geometry.OctahedronGeometry.js',
176-
'./js/Sidebar.Geometry.PlaneGeometry.js',
177-
'./js/Sidebar.Geometry.RingGeometry.js',
178-
'./js/Sidebar.Geometry.SphereGeometry.js',
179-
'./js/Sidebar.Geometry.ShapeGeometry.js',
180-
'./js/Sidebar.Geometry.TetrahedronGeometry.js',
181-
'./js/Sidebar.Geometry.TorusGeometry.js',
182-
'./js/Sidebar.Geometry.TorusKnotGeometry.js',
183-
'./js/Sidebar.Geometry.TubeGeometry.js',
184-
'./js/Sidebar.Material.js',
185-
'./js/Sidebar.Material.BooleanProperty.js',
186-
'./js/Sidebar.Material.ColorProperty.js',
187-
'./js/Sidebar.Material.ConstantProperty.js',
188-
'./js/Sidebar.Material.MapProperty.js',
189-
'./js/Sidebar.Material.NumberProperty.js',
190-
'./js/Sidebar.Material.Program.js',
191-
'./js/Sidebar.Script.js',
192-
'./js/Strings.js',
193-
'./js/Toolbar.js',
194-
'./js/Viewport.js',
195-
'./js/Viewport.Controls.js',
196-
'./js/Viewport.Info.js',
197-
'./js/Viewport.Pathtracer.js',
198-
'./js/Viewport.ViewHelper.js',
199-
'./js/Viewport.XR.js',
200-
201-
'./js/Command.js',
202-
'./js/commands/AddObjectCommand.js',
203-
'./js/commands/RemoveObjectCommand.js',
204-
'./js/commands/MoveObjectCommand.js',
205-
'./js/commands/SetPositionCommand.js',
206-
'./js/commands/SetRotationCommand.js',
207-
'./js/commands/SetScaleCommand.js',
208-
'./js/commands/SetValueCommand.js',
209-
'./js/commands/SetUuidCommand.js',
210-
'./js/commands/SetColorCommand.js',
211-
'./js/commands/SetGeometryCommand.js',
212-
'./js/commands/SetGeometryValueCommand.js',
213-
'./js/commands/MultiCmdsCommand.js',
214-
'./js/commands/AddScriptCommand.js',
215-
'./js/commands/RemoveScriptCommand.js',
216-
'./js/commands/SetScriptValueCommand.js',
217-
'./js/commands/SetMaterialCommand.js',
218-
'./js/commands/SetMaterialColorCommand.js',
219-
'./js/commands/SetMaterialMapCommand.js',
220-
'./js/commands/SetMaterialValueCommand.js',
221-
'./js/commands/SetMaterialVectorCommand.js',
222-
'./js/commands/SetSceneCommand.js',
223-
'./js/commands/Commands.js',
224-
225-
//
226-
227-
'./examples/arkanoid.app.json',
228-
'./examples/camera.app.json',
229-
'./examples/particles.app.json',
230-
'./examples/pong.app.json',
231-
'./examples/shaders.app.json'
232-
233-
];
234-
235-
self.addEventListener( 'install', async function () {
236-
237-
const cache = await caches.open( cacheName );
238-
239-
await Promise.all( assets.map( async function ( asset ) {
240-
241-
try {
242-
243-
await cache.add( asset );
244-
245-
} catch ( error ) {
246-
247-
console.warn( '[SW] Couldn\'t cache:', asset );
248-
249-
}
250-
251-
} ) );
1+
self.addEventListener( 'install', function () {
2522

2533
self.skipWaiting();
2544

2555
} );
2566

257-
self.addEventListener( 'activate', async function ( event ) {
258-
259-
event.waitUntil(
260-
caches.keys().then( function ( names ) {
7+
self.addEventListener( 'activate', function () {
2618

262-
return Promise.all(
263-
names.filter( name => name !== cacheName ).map( name => caches.delete( name ) )
264-
);
9+
self.registration.unregister();
26510

266-
} ).then( function () {
11+
caches.keys().then( function ( names ) {
26712

268-
self.clients.claim();
13+
for ( const name of names ) caches.delete( name );
26914

270-
} )
271-
);
15+
} );
27216

27317
} );
274-
275-
self.addEventListener( 'fetch', async function ( event ) {
276-
277-
const request = event.request;
278-
279-
if ( request.url.startsWith( 'chrome-extension' ) ) return;
280-
281-
event.respondWith( networkFirst( request ) );
282-
283-
} );
284-
285-
async function networkFirst( request ) {
286-
287-
try {
288-
289-
let response = await fetch( request );
290-
291-
if ( request.url.endsWith( 'editor/' ) || request.url.endsWith( 'editor/index.html' ) ) { // copied from coi-serviceworker
292-
293-
const newHeaders = new Headers( response.headers );
294-
newHeaders.set( 'Cross-Origin-Embedder-Policy', 'require-corp' );
295-
newHeaders.set( 'Cross-Origin-Opener-Policy', 'same-origin' );
296-
297-
response = new Response( response.body, { status: response.status, statusText: response.statusText, headers: newHeaders } );
298-
299-
}
300-
301-
if ( request.method === 'GET' ) {
302-
303-
const cache = await caches.open( cacheName );
304-
cache.put( request, response.clone() );
305-
306-
}
307-
308-
return response;
309-
310-
} catch ( error ) {
311-
312-
const cachedResponse = await caches.match( request );
313-
314-
if ( cachedResponse === undefined ) {
315-
316-
console.warn( '[SW] Not cached:', request.url );
317-
318-
}
319-
320-
return cachedResponse;
321-
322-
}
323-
324-
}

0 commit comments

Comments
 (0)