mirror of
https://github.com/servo/servo.git
synced 2025-09-27 15:20:09 +01:00
Send WillNavigate earlier during navigation startup (#37778)
The will-navigate message tells the devtools client to expect a navigation for a browsing context. This makes the network monitor clear any previous entries and show the requests for the new page that is loaded. In order to support this correctly, we need to send the navigation notification from the constellation instead of the script thread, otherwise we silently ignore navigations triggered by the browser URL bar. Testing: Ran servo in devtools mode , now the requests appear for new loaded page Fixes: https://github.com/servo/servo/issues/37334 --------- Signed-off-by: Uthman Yahaya Baba <uthmanyahayababa@gmail.com>
This commit is contained in:
parent
864c877be5
commit
2ad5b24225
13 changed files with 197 additions and 112 deletions
|
@ -9,7 +9,7 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
|||
|
||||
use async_recursion::async_recursion;
|
||||
use base::cross_process_instant::CrossProcessInstant;
|
||||
use base::id::{HistoryStateId, PipelineId};
|
||||
use base::id::{BrowsingContextId, HistoryStateId, PipelineId};
|
||||
use crossbeam_channel::Sender;
|
||||
use devtools_traits::{
|
||||
ChromeToDevtoolsControlMsg, DevtoolsControlMsg, HttpRequest as DevtoolsHttpRequest,
|
||||
|
@ -398,6 +398,7 @@ fn prepare_devtools_request(
|
|||
connect_time: Duration,
|
||||
send_time: Duration,
|
||||
is_xhr: bool,
|
||||
browsing_context_id: BrowsingContextId,
|
||||
) -> ChromeToDevtoolsControlMsg {
|
||||
let started_date_time = SystemTime::now();
|
||||
let request = DevtoolsHttpRequest {
|
||||
|
@ -414,6 +415,7 @@ fn prepare_devtools_request(
|
|||
connect_time,
|
||||
send_time,
|
||||
is_xhr,
|
||||
browsing_context_id,
|
||||
};
|
||||
let net_event = NetworkEvent::HttpRequest(request);
|
||||
|
||||
|
@ -435,12 +437,14 @@ fn send_response_to_devtools(
|
|||
headers: Option<HeaderMap>,
|
||||
status: HttpStatus,
|
||||
pipeline_id: PipelineId,
|
||||
browsing_context_id: BrowsingContextId,
|
||||
) {
|
||||
let response = DevtoolsHttpResponse {
|
||||
headers,
|
||||
status,
|
||||
body: None,
|
||||
pipeline_id,
|
||||
browsing_context_id,
|
||||
};
|
||||
let net_event_response = NetworkEvent::HttpResponse(response);
|
||||
|
||||
|
@ -536,6 +540,7 @@ async fn obtain_response(
|
|||
is_xhr: bool,
|
||||
context: &FetchContext,
|
||||
fetch_terminated: UnboundedSender<bool>,
|
||||
browsing_context_id: Option<BrowsingContextId>,
|
||||
) -> Result<(HyperResponse<Decoder>, Option<ChromeToDevtoolsControlMsg>), NetworkError> {
|
||||
{
|
||||
let mut headers = request_headers.clone();
|
||||
|
@ -716,21 +721,27 @@ async fn obtain_response(
|
|||
|
||||
let msg = if let Some(request_id) = request_id {
|
||||
if let Some(pipeline_id) = pipeline_id {
|
||||
Some(prepare_devtools_request(
|
||||
request_id,
|
||||
closure_url,
|
||||
method.clone(),
|
||||
headers,
|
||||
Some(devtools_bytes.lock().unwrap().clone()),
|
||||
pipeline_id,
|
||||
(connect_end - connect_start).unsigned_abs(),
|
||||
(send_end - send_start).unsigned_abs(),
|
||||
is_xhr,
|
||||
))
|
||||
// TODO: ^This is not right, connect_start is taken before contructing the
|
||||
// request and connect_end at the end of it. send_start is takend before the
|
||||
// connection too. I'm not sure it's currently possible to get the time at the
|
||||
// point between the connection and the start of a request.
|
||||
if let Some(browsing_context_id) = browsing_context_id {
|
||||
Some(prepare_devtools_request(
|
||||
request_id,
|
||||
closure_url,
|
||||
method.clone(),
|
||||
headers,
|
||||
Some(devtools_bytes.lock().unwrap().clone()),
|
||||
pipeline_id,
|
||||
(connect_end - connect_start).unsigned_abs(),
|
||||
(send_end - send_start).unsigned_abs(),
|
||||
is_xhr,
|
||||
browsing_context_id,
|
||||
))
|
||||
} else {
|
||||
debug!("Not notifying devtools (no browsing_context_id)");
|
||||
None
|
||||
}
|
||||
// TODO: ^This is not right, connect_start is taken before contructing the
|
||||
// request and connect_end at the end of it. send_start is takend before the
|
||||
// connection too. I'm not sure it's currently possible to get the time at the
|
||||
// point between the connection and the start of a request.
|
||||
} else {
|
||||
debug!("Not notifying devtools (no pipeline_id)");
|
||||
None
|
||||
|
@ -1887,6 +1898,8 @@ async fn http_network_fetch(
|
|||
let _ = fetch_terminated_sender.send(false);
|
||||
}
|
||||
|
||||
let browsing_context_id = request.target_webview_id.map(|id| id.0);
|
||||
|
||||
let response_future = obtain_response(
|
||||
&context.state.client,
|
||||
&url,
|
||||
|
@ -1903,6 +1916,7 @@ async fn http_network_fetch(
|
|||
is_xhr,
|
||||
context,
|
||||
fetch_terminated_sender,
|
||||
browsing_context_id,
|
||||
);
|
||||
|
||||
let pipeline_id = request.pipeline_id;
|
||||
|
@ -2008,13 +2022,14 @@ async fn http_network_fetch(
|
|||
|
||||
// --- Tell devtools that we got a response
|
||||
// Send an HttpResponse message to devtools with the corresponding request_id
|
||||
if let Some(pipeline_id) = pipeline_id {
|
||||
if let (Some(pipeline_id), Some(browsing_context_id)) = (pipeline_id, browsing_context_id) {
|
||||
send_response_to_devtools(
|
||||
&sender,
|
||||
request_id.unwrap(),
|
||||
meta_headers.map(Serde::into_inner),
|
||||
meta_status,
|
||||
pipeline_id,
|
||||
browsing_context_id,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
use std::ops::Deref;
|
||||
|
||||
use base::id::TEST_WEBVIEW_ID;
|
||||
use headers::{ContentType, HeaderMapExt};
|
||||
use hyper_serde::Serde;
|
||||
use mime::{self, Mime};
|
||||
|
@ -24,7 +25,7 @@ fn assert_parse(
|
|||
use net_traits::request::RequestBuilder;
|
||||
|
||||
let url = ServoUrl::parse(url).unwrap();
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.pipeline_id(None)
|
||||
.build();
|
||||
|
|
|
@ -11,7 +11,7 @@ use std::sync::atomic::{AtomicUsize, Ordering};
|
|||
use std::sync::{Arc, Mutex, Weak};
|
||||
use std::time::{Duration, SystemTime};
|
||||
|
||||
use base::id::TEST_PIPELINE_ID;
|
||||
use base::id::{TEST_PIPELINE_ID, TEST_WEBVIEW_ID};
|
||||
use content_security_policy as csp;
|
||||
use crossbeam_channel::{Sender, unbounded};
|
||||
use devtools_traits::{HttpRequest as DevtoolsHttpRequest, HttpResponse as DevtoolsHttpResponse};
|
||||
|
@ -66,7 +66,7 @@ fn test_fetch_response_is_not_network_error() {
|
|||
};
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
@ -80,7 +80,7 @@ fn test_fetch_response_is_not_network_error() {
|
|||
#[test]
|
||||
fn test_fetch_on_bad_port_is_network_error() {
|
||||
let url = ServoUrl::parse("http://www.example.org:6667").unwrap();
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
@ -102,7 +102,7 @@ fn test_fetch_response_body_matches_const_message() {
|
|||
};
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
@ -122,7 +122,7 @@ fn test_fetch_response_body_matches_const_message() {
|
|||
#[test]
|
||||
fn test_fetch_aboutblank() {
|
||||
let url = ServoUrl::parse("about:blank").unwrap();
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
|
||||
|
@ -188,7 +188,7 @@ fn test_fetch_blob() {
|
|||
);
|
||||
let url = ServoUrl::parse(&format!("blob:{}{}", origin.as_str(), id.simple())).unwrap();
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(origin.origin())
|
||||
.build();
|
||||
|
||||
|
@ -230,7 +230,7 @@ fn test_file() {
|
|||
.unwrap();
|
||||
let url = ServoUrl::from_file_path(path.clone()).unwrap();
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
|
||||
|
@ -273,7 +273,7 @@ fn test_file() {
|
|||
#[test]
|
||||
fn test_fetch_ftp() {
|
||||
let url = ServoUrl::parse("ftp://not-supported").unwrap();
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
@ -283,7 +283,7 @@ fn test_fetch_ftp() {
|
|||
#[test]
|
||||
fn test_fetch_bogus_scheme() {
|
||||
let url = ServoUrl::parse("bogus://whatever").unwrap();
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
@ -338,7 +338,12 @@ fn test_cors_preflight_fetch() {
|
|||
let (server, url) = make_server(handler);
|
||||
|
||||
let target_url = url.clone().join("a.html").unwrap();
|
||||
let mut request = RequestBuilder::new(None, url, Referrer::ReferrerUrl(target_url)).build();
|
||||
let mut request = RequestBuilder::new(
|
||||
Some(TEST_WEBVIEW_ID),
|
||||
url,
|
||||
Referrer::ReferrerUrl(target_url),
|
||||
)
|
||||
.build();
|
||||
request.referrer_policy = ReferrerPolicy::Origin;
|
||||
request.use_cors_preflight = true;
|
||||
request.mode = RequestMode::CorsMode;
|
||||
|
@ -395,7 +400,7 @@ fn test_cors_preflight_cache_fetch() {
|
|||
};
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let mut request = RequestBuilder::new(None, url, Referrer::NoReferrer).build();
|
||||
let mut request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url, Referrer::NoReferrer).build();
|
||||
request.use_cors_preflight = true;
|
||||
request.mode = RequestMode::CorsMode;
|
||||
let wrapped_request0 = request.clone();
|
||||
|
@ -464,7 +469,7 @@ fn test_cors_preflight_fetch_network_error() {
|
|||
};
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let mut request = RequestBuilder::new(None, url, Referrer::NoReferrer).build();
|
||||
let mut request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url, Referrer::NoReferrer).build();
|
||||
request.method = Method::from_bytes(b"CHICKEN").unwrap();
|
||||
request.use_cors_preflight = true;
|
||||
request.mode = RequestMode::CorsMode;
|
||||
|
@ -493,7 +498,7 @@ fn test_fetch_response_is_basic_filtered() {
|
|||
};
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
@ -560,7 +565,7 @@ fn test_fetch_response_is_cors_filtered() {
|
|||
let (server, url) = make_server(handler);
|
||||
|
||||
// an origin mis-match will stop it from defaulting to a basic filtered response
|
||||
let mut request = RequestBuilder::new(None, url, Referrer::NoReferrer).build();
|
||||
let mut request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url, Referrer::NoReferrer).build();
|
||||
request.mode = RequestMode::CorsMode;
|
||||
let fetch_response = fetch(request, None);
|
||||
let _ = server.close();
|
||||
|
@ -596,7 +601,7 @@ fn test_fetch_response_is_opaque_filtered() {
|
|||
let (server, url) = make_server(handler);
|
||||
|
||||
// an origin mis-match will fall through to an Opaque filtered response
|
||||
let request = RequestBuilder::new(None, url, Referrer::NoReferrer).build();
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url, Referrer::NoReferrer).build();
|
||||
let fetch_response = fetch(request, None);
|
||||
let _ = server.close();
|
||||
|
||||
|
@ -644,7 +649,7 @@ fn test_fetch_response_is_opaque_redirect_filtered() {
|
|||
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let mut request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let mut request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
request.redirect_mode = RedirectMode::Manual;
|
||||
|
@ -680,9 +685,10 @@ fn test_fetch_with_local_urls_only() {
|
|||
let (server, server_url) = make_server(handler);
|
||||
|
||||
let do_fetch = |url: ServoUrl| {
|
||||
let mut request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let mut request =
|
||||
RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
|
||||
// Set the flag.
|
||||
request.local_urls_only = true;
|
||||
|
@ -748,7 +754,7 @@ fn test_fetch_with_hsts() {
|
|||
HstsEntry::new("localhost".to_owned(), IncludeSubdomains::NotIncluded, None).unwrap(),
|
||||
);
|
||||
}
|
||||
let mut request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let mut request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
// Set the flag.
|
||||
|
@ -802,7 +808,7 @@ fn test_load_adds_host_to_hsts_list_when_url_is_https() {
|
|||
context.state.override_manager.add_override(certificate);
|
||||
}
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.method(Method::GET)
|
||||
.body(None)
|
||||
.destination(Destination::Document)
|
||||
|
@ -862,7 +868,7 @@ fn test_fetch_self_signed() {
|
|||
protocols: Arc::new(ProtocolRegistry::default()),
|
||||
};
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.method(Method::GET)
|
||||
.body(None)
|
||||
.destination(Destination::Document)
|
||||
|
@ -883,7 +889,7 @@ fn test_fetch_self_signed() {
|
|||
context.state.override_manager.add_override(certificate);
|
||||
}
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.method(Method::GET)
|
||||
.body(None)
|
||||
.destination(Destination::Document)
|
||||
|
@ -908,7 +914,7 @@ fn test_fetch_with_sri_network_error() {
|
|||
};
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let mut request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let mut request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
// To calulate hash use :
|
||||
|
@ -934,7 +940,7 @@ fn test_fetch_with_sri_sucess() {
|
|||
};
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let mut request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let mut request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
// To calulate hash use :
|
||||
|
@ -976,7 +982,7 @@ fn test_fetch_blocked_nosniff() {
|
|||
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.destination(destination)
|
||||
.build();
|
||||
|
@ -1023,7 +1029,7 @@ fn setup_server_and_fetch(message: &'static [u8], redirect_cap: u32) -> Response
|
|||
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
@ -1113,7 +1119,7 @@ fn test_fetch_redirect_updates_method_runner(
|
|||
|
||||
let (server, url) = crate::make_server(handler);
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.method(method)
|
||||
.build();
|
||||
|
@ -1198,7 +1204,7 @@ fn test_fetch_async_returns_complete_response() {
|
|||
};
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
@ -1218,7 +1224,7 @@ fn test_opaque_filtered_fetch_async_returns_complete_response() {
|
|||
let (server, url) = make_server(handler);
|
||||
|
||||
// an origin mis-match will fall through to an Opaque filtered response
|
||||
let request = RequestBuilder::new(None, url, Referrer::NoReferrer).build();
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url, Referrer::NoReferrer).build();
|
||||
let fetch_response = fetch(request, None);
|
||||
|
||||
let _ = server.close();
|
||||
|
@ -1252,7 +1258,7 @@ fn test_opaque_redirect_filtered_fetch_async_returns_complete_response() {
|
|||
};
|
||||
|
||||
let (server, url) = make_server(handler);
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.redirect_mode(RedirectMode::Manual)
|
||||
.build();
|
||||
|
@ -1277,7 +1283,7 @@ fn test_fetch_with_devtools() {
|
|||
|
||||
let (server, url) = make_server(handler);
|
||||
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.redirect_mode(RedirectMode::Manual)
|
||||
.pipeline_id(Some(TEST_PIPELINE_ID))
|
||||
|
@ -1334,6 +1340,7 @@ fn test_fetch_with_devtools() {
|
|||
connect_time: devhttprequest.connect_time,
|
||||
send_time: devhttprequest.send_time,
|
||||
is_xhr: true,
|
||||
browsing_context_id: TEST_WEBVIEW_ID.0,
|
||||
};
|
||||
|
||||
let content = "Yay!";
|
||||
|
@ -1350,6 +1357,7 @@ fn test_fetch_with_devtools() {
|
|||
status: HttpStatus::default(),
|
||||
body: None,
|
||||
pipeline_id: TEST_PIPELINE_ID,
|
||||
browsing_context_id: TEST_WEBVIEW_ID.0,
|
||||
};
|
||||
|
||||
assert_eq!(devhttprequest, httprequest);
|
||||
|
@ -1417,7 +1425,7 @@ fn test_fetch_request_intercepted() {
|
|||
};
|
||||
|
||||
let url = ServoUrl::parse("http://www.example.org").unwrap();
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.origin(url.origin())
|
||||
.build();
|
||||
let response = fetch_with_context(request, &mut context);
|
||||
|
|
|
@ -252,7 +252,7 @@ fn test_request_and_response_data_with_network_messages() {
|
|||
|
||||
let mut request_headers = HeaderMap::new();
|
||||
request_headers.typed_insert(Host::from("bar.foo".parse::<Authority>().unwrap()));
|
||||
let request = RequestBuilder::new(None, url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), url.clone(), Referrer::NoReferrer)
|
||||
.method(Method::GET)
|
||||
.headers(request_headers)
|
||||
.body(None)
|
||||
|
@ -327,6 +327,7 @@ fn test_request_and_response_data_with_network_messages() {
|
|||
connect_time: devhttprequest.connect_time,
|
||||
send_time: devhttprequest.send_time,
|
||||
is_xhr: false,
|
||||
browsing_context_id: TEST_WEBVIEW_ID.0,
|
||||
};
|
||||
|
||||
let content = "Yay!";
|
||||
|
@ -348,6 +349,7 @@ fn test_request_and_response_data_with_network_messages() {
|
|||
status: HttpStatus::default(),
|
||||
body: None,
|
||||
pipeline_id: TEST_PIPELINE_ID,
|
||||
browsing_context_id: TEST_WEBVIEW_ID.0,
|
||||
};
|
||||
|
||||
assert_eq!(devhttprequest, httprequest);
|
||||
|
@ -407,7 +409,7 @@ fn test_redirected_request_to_devtools() {
|
|||
};
|
||||
let (pre_server, pre_url) = make_server(pre_handler);
|
||||
|
||||
let request = RequestBuilder::new(None, pre_url.clone(), Referrer::NoReferrer)
|
||||
let request = RequestBuilder::new(Some(TEST_WEBVIEW_ID), pre_url.clone(), Referrer::NoReferrer)
|
||||
.method(Method::POST)
|
||||
.destination(Destination::Document)
|
||||
.pipeline_id(Some(TEST_PIPELINE_ID))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue