mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-16 22:04:36 +00:00
Bug 1663924 - Use IDB_TRY_VAR in GetDatabaseFileURL. r=dom-workers-and-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D89896
This commit is contained in:
parent
0fb99a23c1
commit
61dd418a6e
@ -581,25 +581,19 @@ Result<nsCOMPtr<nsIFileURL>, nsresult> GetDatabaseFileURL(
|
||||
nsIFile& aDatabaseFile, const int64_t aDirectoryLockId) {
|
||||
MOZ_ASSERT(aDirectoryLockId >= -1);
|
||||
|
||||
nsresult rv;
|
||||
IDB_TRY_VAR(const auto protocolHandler,
|
||||
ToResultGet<nsCOMPtr<nsIProtocolHandler>>(
|
||||
MOZ_SELECT_OVERLOAD(do_GetService),
|
||||
NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "file"));
|
||||
|
||||
nsCOMPtr<nsIProtocolHandler> protocolHandler(
|
||||
do_GetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "file", &rv));
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return Err(rv);
|
||||
}
|
||||
IDB_TRY_VAR(const auto fileHandler,
|
||||
ToResultGet<nsCOMPtr<nsIFileProtocolHandler>>(
|
||||
MOZ_SELECT_OVERLOAD(do_QueryInterface), protocolHandler));
|
||||
|
||||
nsCOMPtr<nsIFileProtocolHandler> fileHandler(
|
||||
do_QueryInterface(protocolHandler, &rv));
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return Err(rv);
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIURIMutator> mutator;
|
||||
rv = fileHandler->NewFileURIMutator(&aDatabaseFile, getter_AddRefs(mutator));
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return Err(rv);
|
||||
}
|
||||
IDB_TRY_VAR(const auto mutator,
|
||||
ToResultInvoke<nsCOMPtr<nsIURIMutator>>(
|
||||
std::mem_fn(&nsIFileProtocolHandler::NewFileURIMutator),
|
||||
fileHandler, &aDatabaseFile));
|
||||
|
||||
// aDirectoryLockId should only be -1 when we are called from
|
||||
// FileManager::InitDirectory when the temporary storage hasn't been
|
||||
@ -611,13 +605,15 @@ Result<nsCOMPtr<nsIFileURL>, nsresult> GetDatabaseFileURL(
|
||||
? "&directoryLockId="_ns + IntCString(aDirectoryLockId)
|
||||
: EmptyCString();
|
||||
|
||||
nsCOMPtr<nsIFileURL> result;
|
||||
rv = NS_MutateURI(mutator)
|
||||
.SetQuery("cache=private"_ns + directoryLockIdClause)
|
||||
.Finalize(result);
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return Err(rv);
|
||||
}
|
||||
IDB_TRY_VAR(
|
||||
auto result, ([&mutator, &directoryLockIdClause] {
|
||||
nsCOMPtr<nsIFileURL> result;
|
||||
nsresult rv = NS_MutateURI(mutator)
|
||||
.SetQuery("cache=private"_ns + directoryLockIdClause)
|
||||
.Finalize(result);
|
||||
return NS_SUCCEEDED(rv) ? Result<nsCOMPtr<nsIFileURL>, nsresult>{result}
|
||||
: Err(rv);
|
||||
}()));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user