mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 07:32:44 +00:00 
			
		
		
		
	LibWeb: Add an initial implementation for Web::FileAPI::FileReader
Some steps are still to be implemented, namely: * Properly aborting the read algorithm * Handling BinaryString type properly * Setting error on any error But as it stands, this is enough functionality for the basic case of reading the contents of a blob using the FileReader API.
This commit is contained in:
		
							parent
							
								
									47616210b6
								
							
						
					
					
						commit
						77d32fcb5f
					
				
					 7 changed files with 545 additions and 0 deletions
				
			
		
							
								
								
									
										28
									
								
								Tests/LibWeb/Text/input/FileAPI/filereader-basic.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Tests/LibWeb/Text/input/FileAPI/filereader-basic.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | |||
| <script src="../include.js"></script> | ||||
| <script> | ||||
|     asyncTest((done) => { | ||||
|         const array = ['This is some data to be read! 🦬']; | ||||
|         let blob = new Blob(array, { type: "application/octet-stream"}); | ||||
|         let fileReader = new FileReader(); | ||||
| 
 | ||||
|         let count = 0; | ||||
| 
 | ||||
|         // Trigger events in order of readAs Text->DataURL->ArrayBuffer | ||||
|         fileReader.addEventListener("loadend", () => { | ||||
|             ++count; | ||||
| 
 | ||||
|             if (count === 1) { | ||||
|                 println(`${count}: readAsText(): '${fileReader.result}' error: '${fileReader.error}'`); | ||||
|                 fileReader.readAsDataURL(blob); | ||||
|             } else if (count === 2) { | ||||
|                 println(`${count}: readAsDataURL(): '${fileReader.result}' error: '${fileReader.error}'`); | ||||
|                 fileReader.readAsArrayBuffer(blob); | ||||
|             } else if (count === 3) { | ||||
|                 println(`${count}: readAsArrayBuffer(): '${new TextDecoder().decode(fileReader.result)}' error: '${fileReader.error}'`); | ||||
|                 done(); | ||||
|             } | ||||
|         }); | ||||
| 
 | ||||
|         fileReader.readAsText(blob); | ||||
|     }); | ||||
| </script> | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Shannon Booth
						Shannon Booth