Bug 1292275 - Stylo: Fix crash after failed stylesheet load. r=heycam

Fixes a crash ServoStyleSet::AddDocStyleSheet caused by
ServoStyleSheet::RawSheet returning null.

MozReview-Commit-ID: BdDosompqTv
This commit is contained in:
Matt Brubeck 2016-11-08 11:46:26 -08:00
parent 1153ca9841
commit 32b05936a9

View file

@ -164,6 +164,22 @@ pub extern "C" fn Servo_Node_ClearNodeData(node: RawGeckoNodeBorrowed) -> () {
} }
} }
#[no_mangle]
pub extern "C" fn Servo_StyleSheet_Empty(mode: SheetParsingMode) -> RawServoStyleSheetStrong {
let url = Url::parse("about:blank").unwrap();
let extra_data = ParserContextExtraData::default();
let origin = match mode {
SheetParsingMode::eAuthorSheetFeatures => Origin::Author,
SheetParsingMode::eUserSheetFeatures => Origin::User,
SheetParsingMode::eAgentSheetFeatures => Origin::UserAgent,
};
let sheet = Arc::new(Stylesheet::from_str("", url, origin, Box::new(StdoutErrorReporter),
extra_data));
unsafe {
transmute(sheet)
}
}
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_StyleSheet_FromUTF8Bytes(data: *const nsACString, pub extern "C" fn Servo_StyleSheet_FromUTF8Bytes(data: *const nsACString,
mode: SheetParsingMode, mode: SheetParsingMode,