mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Removed some sources of panic from script thread and devtools, using Option values instead to indicate when a pipeline context is missing where appropriate. Additionally, removed erroneous method get_browsing_context.
This commit is contained in:
parent
4b78b9adab
commit
2475dc1d21
7 changed files with 89 additions and 54 deletions
|
@ -34,7 +34,6 @@ use msg::constellation_msg::PipelineId;
|
|||
use net_traits::CookieSource::{HTTP, NonHTTP};
|
||||
use net_traits::CoreResourceMsg::{GetCookiesDataForUrl, SetCookiesForUrlWithData};
|
||||
use net_traits::IpcSend;
|
||||
use script_thread::get_browsing_context;
|
||||
use script_traits::webdriver_msg::WebDriverCookieError;
|
||||
use script_traits::webdriver_msg::{WebDriverFrameId, WebDriverJSError, WebDriverJSResult, WebDriverJSValue};
|
||||
use url::Url;
|
||||
|
@ -43,7 +42,11 @@ fn find_node_by_unique_id(context: &BrowsingContext,
|
|||
pipeline: PipelineId,
|
||||
node_id: String)
|
||||
-> Option<Root<Node>> {
|
||||
let context = get_browsing_context(&context, pipeline);
|
||||
let context = match context.find(pipeline) {
|
||||
Some(context) => context,
|
||||
None => return None
|
||||
};
|
||||
|
||||
let document = context.active_document();
|
||||
document.upcast::<Node>().traverse_preorder().find(|candidate| candidate.unique_id() == node_id)
|
||||
}
|
||||
|
@ -72,7 +75,11 @@ pub fn handle_execute_script(context: &BrowsingContext,
|
|||
pipeline: PipelineId,
|
||||
eval: String,
|
||||
reply: IpcSender<WebDriverJSResult>) {
|
||||
let context = get_browsing_context(&context, pipeline);
|
||||
let context = match context.find(pipeline) {
|
||||
Some(context) => context,
|
||||
None => return reply.send(Err(WebDriverJSError::BrowsingContextNotFound)).unwrap()
|
||||
};
|
||||
|
||||
let window = context.active_window();
|
||||
let result = unsafe {
|
||||
let cx = window.get_cx();
|
||||
|
@ -87,7 +94,11 @@ pub fn handle_execute_async_script(context: &BrowsingContext,
|
|||
pipeline: PipelineId,
|
||||
eval: String,
|
||||
reply: IpcSender<WebDriverJSResult>) {
|
||||
let context = get_browsing_context(&context, pipeline);
|
||||
let context = match context.find(pipeline) {
|
||||
Some(context) => context,
|
||||
None => return reply.send(Err(WebDriverJSError::BrowsingContextNotFound)).unwrap()
|
||||
};
|
||||
|
||||
let window = context.active_window();
|
||||
let cx = window.get_cx();
|
||||
window.set_webdriver_script_chan(Some(reply));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue