ServoStyleSheet::~ServoStyleSheet() { DropSheet(); if (mRuleList) { mRuleList->DropReference(); } }
void ServoStyleSheet::ParseSheet(const nsAString& aInput, nsIURI* aSheetURI, nsIURI* aBaseURI, nsIPrincipal* aSheetPrincipal, uint32_t aLineNumber, css::SheetParsingMode aParsingMode) { DropSheet(); RefPtr<ThreadSafeURIHolder> base = new ThreadSafeURIHolder(aBaseURI); RefPtr<ThreadSafeURIHolder> referrer = new ThreadSafeURIHolder(aSheetURI); RefPtr<ThreadSafePrincipalHolder> principal = new ThreadSafePrincipalHolder(aSheetPrincipal); NS_ConvertUTF16toUTF8 input(aInput); mSheet = already_AddRefed<RawServoStyleSheet>(Servo_StylesheetFromUTF8Bytes( reinterpret_cast<const uint8_t*>(input.get()), input.Length(), aParsingMode, base, referrer, principal)); }
nsresult ServoStyleSheet::ParseSheet(const nsAString& aInput, nsIURI* aSheetURI, nsIURI* aBaseURI, nsIPrincipal* aSheetPrincipal, uint32_t aLineNumber) { DropSheet(); RefPtr<ThreadSafeURIHolder> base = new ThreadSafeURIHolder(aBaseURI); RefPtr<ThreadSafeURIHolder> referrer = new ThreadSafeURIHolder(aSheetURI); RefPtr<ThreadSafePrincipalHolder> principal = new ThreadSafePrincipalHolder(aSheetPrincipal); nsCString baseString; nsresult rv = aBaseURI->GetSpec(baseString); NS_ENSURE_SUCCESS(rv, rv); NS_ConvertUTF16toUTF8 input(aInput); mSheet = Servo_StyleSheet_FromUTF8Bytes(&input, mParsingMode, &baseString, base, referrer, principal).Consume(); return NS_OK; }
ServoStyleSheet::~ServoStyleSheet() { DropSheet(); }