mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Auto merge of #12406 - izgzhen:refactor-file, r=Manishearth
Refactor FileAPI implementation Most are simple refactoring, cleanups and improvements, but still involving two slightly notable changes: + In `filemanager`, now we read the file content based on requested `RelativePos` by `seek` and `read_exact` (rather than `read_to_end` then do slicing). This strategy might be again adjusted in future performance tuning but certainly better than nothing. + Also, I cached more file meta-info in both sides and left a block of comment on `filemanager`'s file reading mentioning the snapshot-state problem (not solved now though). r? @Manishearth <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12406) <!-- Reviewable:end -->
This commit is contained in:
commit
665559556f
8 changed files with 224 additions and 178 deletions
|
@ -4,6 +4,7 @@
|
|||
|
||||
use ipc_channel::ipc::{self, IpcSender};
|
||||
use net::filemanager_thread::{FileManagerThreadFactory, UIProvider};
|
||||
use net_traits::blob_url_store::BlobURLStoreError;
|
||||
use net_traits::filemanager_thread::{FilterPattern, FileManagerThreadMsg, FileManagerThreadError};
|
||||
use std::fs::File;
|
||||
use std::io::Read;
|
||||
|
@ -56,7 +57,7 @@ fn test_filemanager() {
|
|||
let msg = rx2.recv().expect("Broken channel");
|
||||
|
||||
let vec = msg.expect("File manager reading failure is unexpected");
|
||||
assert!(test_file_content == vec, "Read content differs");
|
||||
assert_eq!(test_file_content, vec, "Read content differs");
|
||||
}
|
||||
|
||||
// Delete the id
|
||||
|
@ -76,7 +77,7 @@ fn test_filemanager() {
|
|||
let msg = rx2.recv().expect("Broken channel");
|
||||
|
||||
match msg {
|
||||
Err(FileManagerThreadError::ReadFileError) => {},
|
||||
Err(FileManagerThreadError::BlobURLStoreError(BlobURLStoreError::InvalidFileID)) => {},
|
||||
other => {
|
||||
assert!(false, "Get unexpected response after deleting the id: {:?}", other);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue