-
Notifications
You must be signed in to change notification settings - Fork 125
[Storage] Improve how GetFile handles paths #1782
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
3f9fc90
5c0be22
5b1d94f
c429475
4d3a96c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -142,7 +142,21 @@ | |
// Cache a copy of the impl and storage, in case this is destroyed before the thread runs. | ||
FIRStorageReference* my_impl = impl(); | ||
StorageInternal* storage = storage_; | ||
NSURL* local_file_url = [NSURL URLWithString:@(path)]; | ||
NSString* path_string = @(path); | ||
NSURL* local_file_url = nil; | ||
if ([path_string hasPrefix:@"file://"]) { | ||
// If it starts with the prefix, load it assuming a URL string. | ||
local_file_url = [NSURL URLWithString:path_string]; | ||
} else { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can this be breaking since before it always used There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think previously it would fail later if you tried to use a different url type, since it is calling into Storage ObjC's writeToFile, which is documented to take in a fileUrl (though looking over the code, I don't immediately spot anything that enforces that). The other possibility I was thinking of doing was trying There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yep, that would seem like a safer change to do URLWithString first and fall back. However, I'm also ok as is, if you've tested the different combinations. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll change it to that then, just in case there is some odd case I'm not aware of. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So, I tried that, and it has it's own weird problems of URLWithString succeeding and generating not nil, but incorrect file urls from the full paths. So I think I will go with checking for "file://", since it does seem to be necessary for the writeToFile logic anyway. |
||
// Otherwise, assume it is a file path. | ||
local_file_url = [NSURL fileURLWithPath:path_string]; | ||
} | ||
// If we still failed to convert the path, error out. | ||
if (local_file_url == nil) { | ||
future_impl->Complete(handle, kErrorUnknown, | ||
"Unable to convert provided path to valid URL"); | ||
return GetFileLastResult(); | ||
} | ||
a-maurice marked this conversation as resolved.
Show resolved
Hide resolved
|
||
util::DispatchAsyncSafeMainQueue(^() { | ||
FIRStorageDownloadTask *download_task; | ||
{ | ||
|
Uh oh!
There was an error while loading. Please reload this page.