mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
refactor: add CanGc as argument to Promise::reject_error (#35646)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
This commit is contained in:
parent
c844ed232a
commit
38b71087bd
43 changed files with 323 additions and 249 deletions
|
@ -80,7 +80,7 @@ impl ServiceWorkerContainerMethods<crate::DomTypeHolder> for ServiceWorkerContai
|
|||
Ok(url) => url,
|
||||
Err(_) => {
|
||||
// B: Step 1
|
||||
promise.reject_error(Error::Type("Invalid script URL".to_owned()));
|
||||
promise.reject_error(Error::Type("Invalid script URL".to_owned()), can_gc);
|
||||
return promise;
|
||||
},
|
||||
};
|
||||
|
@ -92,7 +92,7 @@ impl ServiceWorkerContainerMethods<crate::DomTypeHolder> for ServiceWorkerContai
|
|||
match api_base_url.join(inner_scope) {
|
||||
Ok(url) => url,
|
||||
Err(_) => {
|
||||
promise.reject_error(Error::Type("Invalid scope URL".to_owned()));
|
||||
promise.reject_error(Error::Type("Invalid scope URL".to_owned()), can_gc);
|
||||
return promise;
|
||||
},
|
||||
}
|
||||
|
@ -106,7 +106,10 @@ impl ServiceWorkerContainerMethods<crate::DomTypeHolder> for ServiceWorkerContai
|
|||
match script_url.scheme() {
|
||||
"https" | "http" => {},
|
||||
_ => {
|
||||
promise.reject_error(Error::Type("Only secure origins are allowed".to_owned()));
|
||||
promise.reject_error(
|
||||
Error::Type("Only secure origins are allowed".to_owned()),
|
||||
can_gc,
|
||||
);
|
||||
return promise;
|
||||
},
|
||||
}
|
||||
|
@ -114,9 +117,10 @@ impl ServiceWorkerContainerMethods<crate::DomTypeHolder> for ServiceWorkerContai
|
|||
if script_url.path().to_ascii_lowercase().contains("%2f") ||
|
||||
script_url.path().to_ascii_lowercase().contains("%5c")
|
||||
{
|
||||
promise.reject_error(Error::Type(
|
||||
"Script URL contains forbidden characters".to_owned(),
|
||||
));
|
||||
promise.reject_error(
|
||||
Error::Type("Script URL contains forbidden characters".to_owned()),
|
||||
can_gc,
|
||||
);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -124,7 +128,10 @@ impl ServiceWorkerContainerMethods<crate::DomTypeHolder> for ServiceWorkerContai
|
|||
match scope.scheme() {
|
||||
"https" | "http" => {},
|
||||
_ => {
|
||||
promise.reject_error(Error::Type("Only secure origins are allowed".to_owned()));
|
||||
promise.reject_error(
|
||||
Error::Type("Only secure origins are allowed".to_owned()),
|
||||
can_gc,
|
||||
);
|
||||
return promise;
|
||||
},
|
||||
}
|
||||
|
@ -132,9 +139,10 @@ impl ServiceWorkerContainerMethods<crate::DomTypeHolder> for ServiceWorkerContai
|
|||
if scope.path().to_ascii_lowercase().contains("%2f") ||
|
||||
scope.path().to_ascii_lowercase().contains("%5c")
|
||||
{
|
||||
promise.reject_error(Error::Type(
|
||||
"Scope URL contains forbidden characters".to_owned(),
|
||||
));
|
||||
promise.reject_error(
|
||||
Error::Type("Scope URL contains forbidden characters".to_owned()),
|
||||
can_gc,
|
||||
);
|
||||
return promise;
|
||||
}
|
||||
|
||||
|
@ -198,21 +206,23 @@ impl RegisterJobResultHandler {
|
|||
.expect("No promise to resolve for SW Register job.");
|
||||
|
||||
// Step 1
|
||||
self.task_source.queue(
|
||||
task!(reject_promise_with_security_error: move || {
|
||||
self.task_source
|
||||
.queue(task!(reject_promise_with_security_error: move || {
|
||||
let promise = promise.root();
|
||||
let _ac = enter_realm(&*promise.global());
|
||||
match error {
|
||||
JobError::TypeError => {
|
||||
promise.reject_error(Error::Type("Failed to register a ServiceWorker".to_string()));
|
||||
promise.reject_error(
|
||||
Error::Type("Failed to register a ServiceWorker".to_string()),
|
||||
CanGc::note(),
|
||||
);
|
||||
},
|
||||
JobError::SecurityError => {
|
||||
promise.reject_error(Error::Security);
|
||||
promise.reject_error(Error::Security, CanGc::note());
|
||||
},
|
||||
}
|
||||
|
||||
})
|
||||
);
|
||||
}));
|
||||
|
||||
// TODO: step 2, handle equivalent jobs.
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue