|
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 () { |
252 | 2 |
|
253 | 3 | self.skipWaiting(); |
254 | 4 |
|
255 | 5 | } ); |
256 | 6 |
|
257 | | -self.addEventListener( 'activate', async function ( event ) { |
258 | | - |
259 | | - event.waitUntil( |
260 | | - caches.keys().then( function ( names ) { |
| 7 | +self.addEventListener( 'activate', function () { |
261 | 8 |
|
262 | | - return Promise.all( |
263 | | - names.filter( name => name !== cacheName ).map( name => caches.delete( name ) ) |
264 | | - ); |
| 9 | + self.registration.unregister(); |
265 | 10 |
|
266 | | - } ).then( function () { |
| 11 | + caches.keys().then( function ( names ) { |
267 | 12 |
|
268 | | - self.clients.claim(); |
| 13 | + for ( const name of names ) caches.delete( name ); |
269 | 14 |
|
270 | | - } ) |
271 | | - ); |
| 15 | + } ); |
272 | 16 |
|
273 | 17 | } ); |
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