mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Add accountable-refcell as optional build time feature
This commit is contained in:
parent
bd636b0e6c
commit
02c1612cb0
29 changed files with 69 additions and 44 deletions
11
Cargo.lock
generated
11
Cargo.lock
generated
|
@ -1,5 +1,14 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
[[package]]
|
||||
name = "accountable-refcell"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2e9a97321189341ee9b728321237b564caf993ab578297fdf7af1172c9623ca4"
|
||||
dependencies = [
|
||||
"backtrace",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "adler32"
|
||||
version = "1.0.3"
|
||||
|
@ -3134,6 +3143,7 @@ dependencies = [
|
|||
name = "malloc_size_of"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"accountable-refcell",
|
||||
"app_units",
|
||||
"content-security-policy",
|
||||
"crossbeam-channel",
|
||||
|
@ -4452,6 +4462,7 @@ checksum = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
|
|||
name = "script"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"accountable-refcell",
|
||||
"app_units",
|
||||
"backtrace",
|
||||
"base64",
|
||||
|
|
|
@ -22,10 +22,12 @@ servo = [
|
|||
"webrender_api",
|
||||
"xml5ever",
|
||||
"content-security-policy",
|
||||
"uuid"
|
||||
"uuid",
|
||||
"accountable-refcell",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
accountable-refcell = { version = "0.2.0", optional = true }
|
||||
app_units = "0.7"
|
||||
content-security-policy = {version = "0.3.0", features = ["serde"], optional = true}
|
||||
crossbeam-channel = { version = "0.3", optional = true }
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
//! Note: WebRender has a reduced fork of this crate, so that we can avoid
|
||||
//! publishing this crate on crates.io.
|
||||
|
||||
extern crate accountable_refcell;
|
||||
extern crate app_units;
|
||||
#[cfg(feature = "servo")]
|
||||
extern crate content_security_policy;
|
||||
|
@ -970,3 +971,10 @@ impl<T: MallocSizeOf> DerefMut for Measurable<T> {
|
|||
&mut self.0
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "servo")]
|
||||
impl<T: MallocSizeOf> MallocSizeOf for accountable_refcell::RefCell<T> {
|
||||
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize {
|
||||
self.borrow().size_of(ops)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ unrooted_must_root_lint = ["script_plugins/unrooted_must_root_lint"]
|
|||
default = ["unrooted_must_root_lint"]
|
||||
webgl_backtrace = ["backtrace", "canvas_traits/webgl_backtrace"]
|
||||
js_backtrace = ["backtrace"]
|
||||
refcell_backtrace = ["accountable-refcell"]
|
||||
uwp = ["js/uwp"]
|
||||
vslatestinstalled = ["js/vslatestinstalled"]
|
||||
|
||||
|
@ -31,6 +32,7 @@ serde_json = "1.0"
|
|||
tinyfiledialogs = "3.0"
|
||||
|
||||
[dependencies]
|
||||
accountable-refcell = {version = "0.2.0", optional = true}
|
||||
app_units = "0.7"
|
||||
backtrace = {version = "0.3", optional = true}
|
||||
base64 = "0.10.1"
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::compartments::{AlreadyInCompartment, InCompartment};
|
||||
use crate::dom::bindings::cell::Ref;
|
||||
use crate::dom::bindings::codegen::Bindings::FormDataBinding::FormDataMethods;
|
||||
use crate::dom::bindings::error::{Error, Fallible};
|
||||
use crate::dom::bindings::reflector::DomObject;
|
||||
|
@ -25,7 +26,6 @@ use js::rust::wrappers::JS_ParseJSON;
|
|||
use js::typedarray::{ArrayBuffer, CreateWith};
|
||||
use mime::{self, Mime};
|
||||
use script_traits::serializable::BlobImpl;
|
||||
use std::cell::Ref;
|
||||
use std::ptr;
|
||||
use std::rc::Rc;
|
||||
use std::str;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::AttrBinding::{self, AttrMethods};
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
use crate::dom::bindings::root::{DomRoot, LayoutDom, MutNullableDom};
|
||||
|
@ -19,7 +19,6 @@ use dom_struct::dom_struct;
|
|||
use html5ever::{LocalName, Namespace, Prefix};
|
||||
use servo_atoms::Atom;
|
||||
use std::borrow::ToOwned;
|
||||
use std::cell::Ref;
|
||||
use std::mem;
|
||||
use style::attr::{AttrIdentifier, AttrValue};
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
use crate::compartments::enter_realm;
|
||||
use crate::dom::audionode::MAX_CHANNEL_COUNT;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::AudioBufferBinding::{
|
||||
self, AudioBufferMethods, AudioBufferOptions,
|
||||
};
|
||||
|
@ -21,7 +21,6 @@ use js::rust::wrappers::DetachArrayBuffer;
|
|||
use js::rust::CustomAutoRooterGuard;
|
||||
use js::typedarray::{CreateWith, Float32Array};
|
||||
use servo_media::audio::buffer_source_node::AudioBuffer as ServoMediaAudioBuffer;
|
||||
use std::cell::Ref;
|
||||
use std::cmp::min;
|
||||
use std::ptr::{self, NonNull};
|
||||
|
||||
|
|
|
@ -4,7 +4,13 @@
|
|||
|
||||
//! A shareable mutable container for the DOM.
|
||||
|
||||
use std::cell::{BorrowError, BorrowMutError, Ref, RefCell, RefMut};
|
||||
#[cfg(feature = "refcell_backtrace")]
|
||||
pub use accountable_refcell::{ref_filter_map, Ref, RefCell, RefMut};
|
||||
#[cfg(not(feature = "refcell_backtrace"))]
|
||||
pub use ref_filter_map::ref_filter_map;
|
||||
use std::cell::{BorrowError, BorrowMutError};
|
||||
#[cfg(not(feature = "refcell_backtrace"))]
|
||||
pub use std::cell::{Ref, RefCell, RefMut};
|
||||
use style::thread_state::{self, ThreadState};
|
||||
|
||||
/// A mutable field in the DOM.
|
||||
|
|
|
@ -8,7 +8,7 @@ use bluetooth_traits::blocklist::{Blocklist, uuid_is_blocklisted};
|
|||
use bluetooth_traits::scanfilter::{BluetoothScanfilter, BluetoothScanfilterSequence};
|
||||
use bluetooth_traits::scanfilter::{RequestDeviceoptions, ServiceUUIDSequence};
|
||||
use crate::compartments::{AlreadyInCompartment, InCompartment};
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::BluetoothBinding::{self, BluetoothDataFilterInit};
|
||||
use crate::dom::bindings::codegen::Bindings::BluetoothBinding::{BluetoothMethods, RequestDeviceOptions};
|
||||
use crate::dom::bindings::codegen::Bindings::BluetoothBinding::BluetoothLEScanFilterInit;
|
||||
|
@ -39,7 +39,6 @@ use js::conversions::ConversionResult;
|
|||
use js::jsapi::JSObject;
|
||||
use js::jsval::{ObjectValue, UndefinedValue};
|
||||
use profile_traits::ipc as ProfiledIpc;
|
||||
use std::cell::Ref;
|
||||
use std::collections::HashMap;
|
||||
use std::rc::Rc;
|
||||
use std::str::FromStr;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
//! DOM bindings for `CharacterData`.
|
||||
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::NodeBinding::NodeBinding::NodeMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::ProcessingInstructionBinding::ProcessingInstructionMethods;
|
||||
|
@ -24,7 +24,6 @@ use crate::dom::processinginstruction::ProcessingInstruction;
|
|||
use crate::dom::text::Text;
|
||||
use crate::dom::virtualmethods::vtable_for;
|
||||
use dom_struct::dom_struct;
|
||||
use std::cell::Ref;
|
||||
|
||||
// https://dom.spec.whatwg.org/#characterdata
|
||||
#[dom_struct]
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::dom::activation::{synthetic_click_activation, ActivationSource};
|
|||
use crate::dom::attr::Attr;
|
||||
use crate::dom::beforeunloadevent::BeforeUnloadEvent;
|
||||
use crate::dom::bindings::callback::ExceptionHandling;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{ref_filter_map, DomRefCell, Ref, RefMut};
|
||||
use crate::dom::bindings::codegen::Bindings::BeforeUnloadEventBinding::BeforeUnloadEventBinding::BeforeUnloadEventMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::DocumentBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::DocumentBinding::{
|
||||
|
@ -133,7 +133,6 @@ use num_traits::ToPrimitive;
|
|||
use percent_encoding::percent_decode;
|
||||
use profile_traits::ipc as profile_ipc;
|
||||
use profile_traits::time::{TimerMetadata, TimerMetadataFrameType, TimerMetadataReflowType};
|
||||
use ref_filter_map::ref_filter_map;
|
||||
use ref_slice::ref_slice;
|
||||
use script_layout_interface::message::{Msg, ReflowGoal};
|
||||
use script_traits::{AnimationState, DocumentActivity, MouseButton, MouseEventType};
|
||||
|
@ -146,7 +145,7 @@ use servo_config::pref;
|
|||
use servo_media::{ClientContextId, ServoMedia};
|
||||
use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl};
|
||||
use std::borrow::Cow;
|
||||
use std::cell::{Cell, Ref, RefMut};
|
||||
use std::cell::Cell;
|
||||
use std::collections::hash_map::Entry::{Occupied, Vacant};
|
||||
use std::collections::{HashMap, HashSet, VecDeque};
|
||||
use std::default::Default;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::DOMMatrixBinding::{DOMMatrixInit, DOMMatrixMethods};
|
||||
use crate::dom::bindings::codegen::Bindings::DOMMatrixReadOnlyBinding::{
|
||||
DOMMatrixReadOnlyMethods, Wrap,
|
||||
|
@ -26,7 +26,7 @@ use js::jsapi::JSObject;
|
|||
use js::rust::CustomAutoRooterGuard;
|
||||
use js::typedarray::CreateWith;
|
||||
use js::typedarray::{Float32Array, Float64Array};
|
||||
use std::cell::{Cell, Ref};
|
||||
use std::cell::Cell;
|
||||
use std::f64;
|
||||
use std::ptr;
|
||||
use std::ptr::NonNull;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
use crate::dom::activation::Activatable;
|
||||
use crate::dom::attr::{Attr, AttrHelpersForLayout};
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{ref_filter_map, DomRefCell, Ref, RefMut};
|
||||
use crate::dom::bindings::codegen::Bindings::AttrBinding::AttrMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::ElementBinding;
|
||||
|
@ -98,7 +98,6 @@ use js::jsval::JSVal;
|
|||
use msg::constellation_msg::InputMethodType;
|
||||
use net_traits::request::CorsSettings;
|
||||
use net_traits::ReferrerPolicy;
|
||||
use ref_filter_map::ref_filter_map;
|
||||
use script_layout_interface::message::ReflowGoal;
|
||||
use selectors::attr::{AttrSelectorOperation, CaseSensitivity, NamespaceConstraint};
|
||||
use selectors::matching::{ElementSelectorFlags, MatchingContext};
|
||||
|
@ -107,7 +106,7 @@ use selectors::Element as SelectorsElement;
|
|||
use servo_arc::Arc;
|
||||
use servo_atoms::Atom;
|
||||
use std::borrow::Cow;
|
||||
use std::cell::{Cell, Ref, RefMut};
|
||||
use std::cell::Cell;
|
||||
use std::default::Default;
|
||||
use std::fmt;
|
||||
use std::mem;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::dom::attr::Attr;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{ref_filter_map, DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::HTMLCanvasElementBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::HTMLCanvasElementBinding::{
|
||||
HTMLCanvasElementMethods, RenderingContext,
|
||||
|
@ -44,7 +44,6 @@ use js::rust::HandleValue;
|
|||
use profile_traits::ipc;
|
||||
use script_layout_interface::{HTMLCanvasData, HTMLCanvasDataSource};
|
||||
use servo_config::pref;
|
||||
use std::cell::Ref;
|
||||
use style::attr::{AttrValue, LengthOrPercentageOrAuto};
|
||||
|
||||
const DEFAULT_WIDTH: u32 = 300;
|
||||
|
@ -192,7 +191,7 @@ impl LayoutHTMLCanvasElementHelpers for LayoutDom<HTMLCanvasElement> {
|
|||
|
||||
impl HTMLCanvasElement {
|
||||
pub fn context(&self) -> Option<Ref<CanvasContext>> {
|
||||
ref_filter_map::ref_filter_map(self.context.borrow(), |ctx| ctx.as_ref())
|
||||
ref_filter_map(self.context.borrow(), |ctx| ctx.as_ref())
|
||||
}
|
||||
|
||||
fn get_or_init_2d_context(&self) -> Option<DomRoot<CanvasRenderingContext2D>> {
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
use crate::document_loader::{LoadBlocker, LoadType};
|
||||
use crate::dom::activation::Activatable;
|
||||
use crate::dom::attr::Attr;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, RefMut};
|
||||
use crate::dom::bindings::codegen::Bindings::DOMRectBinding::DOMRectBinding::DOMRectMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::ElementBinding::ElementBinding::ElementMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::HTMLImageElementBinding;
|
||||
|
@ -67,7 +67,7 @@ use num_traits::ToPrimitive;
|
|||
use servo_url::origin::ImmutableOrigin;
|
||||
use servo_url::origin::MutableOrigin;
|
||||
use servo_url::ServoUrl;
|
||||
use std::cell::{Cell, RefMut};
|
||||
use std::cell::Cell;
|
||||
use std::char;
|
||||
use std::collections::HashSet;
|
||||
use std::default::Default;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::MediaStreamBinding::{self, MediaStreamMethods};
|
||||
use crate::dom::bindings::error::Fallible;
|
||||
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject};
|
||||
|
@ -14,7 +14,6 @@ use crate::dom::mediastreamtrack::MediaStreamTrack;
|
|||
use crate::dom::window::Window;
|
||||
use dom_struct::dom_struct;
|
||||
use servo_media::streams::MediaStreamType;
|
||||
use std::cell::Ref;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct MediaStream {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
use crate::document_loader::DocumentLoader;
|
||||
use crate::dom::attr::Attr;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref, RefMut};
|
||||
use crate::dom::bindings::codegen::Bindings::AttrBinding::AttrMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods;
|
||||
use crate::dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods;
|
||||
|
@ -86,7 +86,7 @@ use servo_arc::Arc;
|
|||
use servo_url::ServoUrl;
|
||||
use smallvec::SmallVec;
|
||||
use std::borrow::ToOwned;
|
||||
use std::cell::{Cell, Ref, RefMut, UnsafeCell};
|
||||
use std::cell::{Cell, UnsafeCell};
|
||||
use std::cmp;
|
||||
use std::default::Default;
|
||||
use std::iter;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{ref_filter_map, DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::OffscreenCanvasBinding::{
|
||||
OffscreenCanvasMethods, OffscreenRenderingContext, Wrap as OffscreenCanvasWrap,
|
||||
};
|
||||
|
@ -22,9 +22,7 @@ use euclid::default::Size2D;
|
|||
use ipc_channel::ipc::IpcSharedMemory;
|
||||
use js::rust::HandleValue;
|
||||
use profile_traits::ipc;
|
||||
use ref_filter_map;
|
||||
use std::cell::Cell;
|
||||
use std::cell::Ref;
|
||||
|
||||
#[unrooted_must_root_lint::must_root]
|
||||
#[derive(Clone, JSTraceable, MallocSizeOf)]
|
||||
|
@ -94,7 +92,7 @@ impl OffscreenCanvas {
|
|||
}
|
||||
|
||||
pub fn context(&self) -> Option<Ref<OffscreenCanvasContext>> {
|
||||
ref_filter_map::ref_filter_map(self.context.borrow(), |ctx| ctx.as_ref())
|
||||
ref_filter_map(self.context.borrow(), |ctx| ctx.as_ref())
|
||||
}
|
||||
|
||||
pub fn fetch_all_data(&self) -> Option<(Option<IpcSharedMemory>, Size2D<u32>)> {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::body::{consume_body, BodyOperations, BodyType};
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::HeadersBinding::{HeadersInit, HeadersMethods};
|
||||
use crate::dom::bindings::codegen::Bindings::RequestBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::RequestBinding::ReferrerPolicy;
|
||||
|
@ -38,7 +38,7 @@ use net_traits::request::RequestMode as NetTraitsRequestMode;
|
|||
use net_traits::request::{Origin, Window};
|
||||
use net_traits::ReferrerPolicy as MsgReferrerPolicy;
|
||||
use servo_url::ServoUrl;
|
||||
use std::cell::{Cell, Ref};
|
||||
use std::cell::Cell;
|
||||
use std::rc::Rc;
|
||||
use std::str::FromStr;
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::body::{consume_body, consume_body_with_promise, BodyOperations, BodyType};
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::HeadersBinding::{HeadersInit, HeadersMethods};
|
||||
use crate::dom::bindings::codegen::Bindings::ResponseBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::ResponseBinding::{
|
||||
|
@ -26,7 +26,7 @@ use hyper::StatusCode;
|
|||
use hyper_serde::Serde;
|
||||
use net_traits::response::ResponseBody as NetTraitsResponseBody;
|
||||
use servo_url::ServoUrl;
|
||||
use std::cell::{Cell, Ref};
|
||||
use std::cell::Cell;
|
||||
use std::mem;
|
||||
use std::rc::Rc;
|
||||
use std::str::FromStr;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::WebGLProgramBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
|
@ -19,7 +19,7 @@ use canvas_traits::webgl::{webgl_channel, WebGLProgramId, WebGLResult};
|
|||
use canvas_traits::webgl::{ActiveAttribInfo, ActiveUniformInfo, WebGLCommand, WebGLError};
|
||||
use dom_struct::dom_struct;
|
||||
use fnv::FnvHashSet;
|
||||
use std::cell::{Cell, Ref};
|
||||
use std::cell::Cell;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct WebGLProgram {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{ref_filter_map, DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::WebGLRenderingContextBinding::WebGLRenderingContextConstants as constants;
|
||||
use crate::dom::bindings::codegen::Bindings::WebGLVertexArrayObjectOESBinding;
|
||||
use crate::dom::bindings::inheritance::Castable;
|
||||
|
@ -15,8 +15,7 @@ use canvas_traits::webgl::{
|
|||
ActiveAttribInfo, WebGLCommand, WebGLError, WebGLResult, WebGLVertexArrayId,
|
||||
};
|
||||
use dom_struct::dom_struct;
|
||||
use ref_filter_map::ref_filter_map;
|
||||
use std::cell::{Cell, Ref};
|
||||
use std::cell::Cell;
|
||||
|
||||
#[dom_struct]
|
||||
pub struct WebGLVertexArrayObjectOES {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::compartments::InCompartment;
|
||||
use crate::dom::bindings::cell::DomRefCell;
|
||||
use crate::dom::bindings::cell::{DomRefCell, Ref};
|
||||
use crate::dom::bindings::codegen::Bindings::RequestBinding::RequestInit;
|
||||
use crate::dom::bindings::codegen::Bindings::WorkerBinding::WorkerType;
|
||||
use crate::dom::bindings::codegen::Bindings::WorkerGlobalScopeBinding::WorkerGlobalScopeMethods;
|
||||
|
@ -52,7 +52,6 @@ use net_traits::request::{
|
|||
use net_traits::IpcSend;
|
||||
use script_traits::WorkerGlobalScopeInit;
|
||||
use servo_url::{MutableOrigin, ServoUrl};
|
||||
use std::cell::Ref;
|
||||
use std::default::Default;
|
||||
use std::rc::Rc;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
|
|
|
@ -125,6 +125,8 @@ fn is_unrooted_ty(sym: &Symbols, cx: &LateContext, ty: &ty::TyS, in_new_function
|
|||
match_def_path(cx, did.did, &[sym::core, sym.cell, sym.RefMut]) ||
|
||||
match_def_path(cx, did.did, &[sym::core, sym.slice, sym.Iter]) ||
|
||||
match_def_path(cx, did.did, &[sym::core, sym.slice, sym.IterMut]) ||
|
||||
match_def_path(cx, did.did, &[sym.accountable_refcell, sym.Ref]) ||
|
||||
match_def_path(cx, did.did, &[sym.accountable_refcell, sym.RefMut]) ||
|
||||
match_def_path(
|
||||
cx,
|
||||
did.did,
|
||||
|
@ -175,6 +177,7 @@ fn is_unrooted_ty(sym: &Symbols, cx: &LateContext, ty: &ty::TyS, in_new_function
|
|||
ty::Ref(..) => false, // don't recurse down &ptrs
|
||||
ty::RawPtr(..) => false, // don't recurse down *ptrs
|
||||
ty::FnDef(..) | ty::FnPtr(_) => false,
|
||||
|
||||
_ => true,
|
||||
}
|
||||
});
|
||||
|
@ -412,6 +415,7 @@ symbols! {
|
|||
rc
|
||||
Rc
|
||||
cell
|
||||
accountable_refcell
|
||||
Ref
|
||||
RefMut
|
||||
slice
|
||||
|
|
|
@ -29,6 +29,7 @@ uwp = ["servo_config/uwp", "script/uwp"]
|
|||
webrender_debugger = ["webrender/debugger"]
|
||||
no_static_freetype = ["webrender/no_static_freetype"]
|
||||
oculusvr = ["webvr/oculusvr"]
|
||||
refcell_backtrace = ["script/refcell_backtrace"]
|
||||
webdriver = ["webdriver_server"]
|
||||
webgl_backtrace = [
|
||||
"script/webgl_backtrace",
|
||||
|
|
|
@ -206,7 +206,7 @@ def linux_tidy_unit():
|
|||
python3 ./mach build --dev
|
||||
python3 ./mach test-unit
|
||||
python3 ./mach package --dev
|
||||
python3 ./mach build --dev --features canvas2d-raqote
|
||||
python3 ./mach build --dev --features refcell_backtrace
|
||||
python3 ./mach build --dev --features layout-2020
|
||||
python3 ./mach build --dev --libsimpleservo
|
||||
python3 ./mach build --dev -p servo-gst-plugin
|
||||
|
|
|
@ -42,6 +42,7 @@ max_log_level = ["log/release_max_level_info"]
|
|||
native-bluetooth = ["libservo/native-bluetooth"]
|
||||
no-wgl = ["libservo/no-wgl"]
|
||||
profilemozjs = ["libservo/profilemozjs"]
|
||||
refcell_backtrace = ["libservo/refcell_backtrace"]
|
||||
webdriver = ["libservo/webdriver"]
|
||||
webgl_backtrace = ["libservo/webgl_backtrace"]
|
||||
webrender_debugger = ["libservo/webrender_debugger"]
|
||||
|
|
|
@ -48,6 +48,7 @@ native-bluetooth = ["libservo/native-bluetooth"]
|
|||
no_static_freetype = ["libservo/no_static_freetype"]
|
||||
no-wgl = ["libservo/no-wgl"]
|
||||
oculusvr = ["libservo/oculusvr"]
|
||||
refcell_backtrace = ["libservo/refcell_backtrace"]
|
||||
webdriver = ["libservo/webdriver"]
|
||||
uwp = ["libservo/uwp", "webxr/openxr-api"]
|
||||
webgl_backtrace = ["libservo/webgl_backtrace"]
|
||||
|
|
|
@ -43,6 +43,7 @@ max_log_level = ["simpleservo/max_log_level"]
|
|||
native-bluetooth = ["simpleservo/native-bluetooth"]
|
||||
no-wgl = ["simpleservo/no-wgl"]
|
||||
oculusvr = ["simpleservo/oculusvr"]
|
||||
refcell_backtrace = ["simpleservo/refcell_backtrace"]
|
||||
uwp = ["simpleservo/uwp"]
|
||||
webdriver = ["simpleservo/webdriver"]
|
||||
webgl_backtrace = ["simpleservo/webgl_backtrace"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue