mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
Move the event processing in the DedicatedWorkerGlobalScope event loop into its own function.
This commit is contained in:
parent
4f8827321c
commit
5e1be29743
1 changed files with 23 additions and 19 deletions
|
@ -224,25 +224,7 @@ impl DedicatedWorkerGlobalScope {
|
||||||
Ok(event) => event,
|
Ok(event) => event,
|
||||||
Err(_) => break,
|
Err(_) => break,
|
||||||
};
|
};
|
||||||
|
global.handle_event(event);
|
||||||
match event {
|
|
||||||
MixedMessage::FromDevtools(msg) => {
|
|
||||||
let global_ref = GlobalRef::Worker(scope);
|
|
||||||
match msg {
|
|
||||||
DevtoolScriptControlMsg::EvaluateJS(_pipe_id, string, sender) =>
|
|
||||||
devtools::handle_evaluate_js(&global_ref, string, sender),
|
|
||||||
DevtoolScriptControlMsg::GetCachedMessages(pipe_id, message_types, sender) =>
|
|
||||||
devtools::handle_get_cached_messages(pipe_id, message_types, sender),
|
|
||||||
DevtoolScriptControlMsg::WantsLiveNotifications(_pipe_id, bool_val) =>
|
|
||||||
devtools::handle_wants_live_notifications(&global_ref, bool_val),
|
|
||||||
_ => debug!("got an unusable devtools control message inside the worker!"),
|
|
||||||
}
|
|
||||||
},
|
|
||||||
MixedMessage::FromWorker((linked_worker, msg)) => {
|
|
||||||
let _ar = AutoWorkerReset::new(global.r(), linked_worker);
|
|
||||||
global.r().handle_script_event(msg);
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unregister this task as a memory reporter.
|
// Unregister this task as a memory reporter.
|
||||||
|
@ -289,6 +271,7 @@ trait PrivateDedicatedWorkerGlobalScopeHelpers {
|
||||||
fn handle_script_event(self, msg: ScriptMsg);
|
fn handle_script_event(self, msg: ScriptMsg);
|
||||||
fn dispatch_error_to_worker(self, &ErrorEvent);
|
fn dispatch_error_to_worker(self, &ErrorEvent);
|
||||||
fn receive_event(self) -> Result<MixedMessage, RecvError>;
|
fn receive_event(self) -> Result<MixedMessage, RecvError>;
|
||||||
|
fn handle_event(self, event: MixedMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> PrivateDedicatedWorkerGlobalScopeHelpers for &'a DedicatedWorkerGlobalScope {
|
impl<'a> PrivateDedicatedWorkerGlobalScopeHelpers for &'a DedicatedWorkerGlobalScope {
|
||||||
|
@ -349,6 +332,27 @@ impl<'a> PrivateDedicatedWorkerGlobalScopeHelpers for &'a DedicatedWorkerGlobalS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_event(self, event: MixedMessage) {
|
||||||
|
match event {
|
||||||
|
MixedMessage::FromDevtools(msg) => {
|
||||||
|
let global_ref = GlobalRef::Worker(WorkerGlobalScopeCast::from_ref(self));
|
||||||
|
match msg {
|
||||||
|
DevtoolScriptControlMsg::EvaluateJS(_pipe_id, string, sender) =>
|
||||||
|
devtools::handle_evaluate_js(&global_ref, string, sender),
|
||||||
|
DevtoolScriptControlMsg::GetCachedMessages(pipe_id, message_types, sender) =>
|
||||||
|
devtools::handle_get_cached_messages(pipe_id, message_types, sender),
|
||||||
|
DevtoolScriptControlMsg::WantsLiveNotifications(_pipe_id, bool_val) =>
|
||||||
|
devtools::handle_wants_live_notifications(&global_ref, bool_val),
|
||||||
|
_ => debug!("got an unusable devtools control message inside the worker!"),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
MixedMessage::FromWorker((linked_worker, msg)) => {
|
||||||
|
let _ar = AutoWorkerReset::new(self, linked_worker);
|
||||||
|
self.handle_script_event(msg);
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn dispatch_error_to_worker(self, errorevent: &ErrorEvent) {
|
fn dispatch_error_to_worker(self, errorevent: &ErrorEvent) {
|
||||||
let msg = errorevent.Message();
|
let msg = errorevent.Message();
|
||||||
let file_name = errorevent.Filename();
|
let file_name = errorevent.Filename();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue