Make use of RefCell::try_borrow_unguarded

This commit is contained in:
Anthony Ramine 2019-04-12 13:49:41 +02:00
parent a74f5222db
commit 44163148c2
7 changed files with 11 additions and 8 deletions

View file

@ -2030,6 +2030,10 @@ where
None
};
// https://github.com/rust-lang/rust/issues/59159
let browsing_context_size = browsing_context.size;
let browsing_context_is_visible = browsing_context.is_visible;
// Create the new pipeline, attached to the parent and push to pending changes
self.new_pipeline(
new_pipeline_id,
@ -2037,11 +2041,11 @@ where
top_level_browsing_context_id,
Some(parent_pipeline_id),
None,
browsing_context.size,
browsing_context_size,
load_data,
load_info.sandbox,
is_private,
browsing_context.is_visible,
browsing_context_is_visible,
);
self.add_pending_change(SessionHistoryChange {
top_level_browsing_context_id: top_level_browsing_context_id,

View file

@ -26,7 +26,9 @@ impl<T> DomRefCell<T> {
#[allow(unsafe_code)]
pub unsafe fn borrow_for_layout(&self) -> &T {
debug_assert!(thread_state::get().is_layout());
&*self.value.as_ptr()
self.value
.try_borrow_unguarded()
.expect("cell is mutably borrowed")
}
/// Borrow the contents for the purpose of script deallocation.

View file

@ -1442,8 +1442,6 @@ impl XMLHttpRequest {
fn filter_response_headers(&self) -> HeaderMap {
// https://fetch.spec.whatwg.org/#concept-response-header-list
use http::header::{self, HeaderName};
let mut headers = self.response_headers.borrow().clone();
headers.remove(header::SET_COOKIE);
headers.remove(HeaderName::from_static("set-cookie2"));

View file

@ -4,6 +4,7 @@
#![cfg_attr(feature = "unstable", feature(core_intrinsics))]
#![cfg_attr(feature = "unstable", feature(on_unimplemented))]
#![feature(borrow_state)]
#![feature(const_fn)]
#![feature(drain_filter)]
#![feature(inner_deref)]

View file

@ -245,7 +245,6 @@ impl ParseErrorReporter for RustLogReporter {
location: SourceLocation,
error: ContextualParseError,
) {
use log;
if log_enabled!(log::Level::Info) {
info!(
"Url:\t{}\n{}:{} {}",

View file

@ -354,7 +354,6 @@ impl NonTSPseudoClass {
/// selector matching, and it's set from the DOM.
pub fn state_flag(&self) -> ElementState {
use self::NonTSPseudoClass::*;
use crate::element_state::ElementState;
match *self {
Active => ElementState::IN_ACTIVE_STATE,
Focus => ElementState::IN_FOCUS_STATE,

View file

@ -1 +1 @@
nightly-2019-03-26
nightly-2019-04-12