Bug 1296477 - Part 1: stylo: Use ServoBundledURI everywhere else, fix from_ffi to handle the error case; r?heycam
MozReview-Commit-ID: DHNKLm3y5Gv
--- a/layout/style/ServoBindings.cpp
+++ b/layout/style/ServoBindings.cpp
@@ -858,49 +858,40 @@ void
Gecko_SetGradientImageValue(nsStyleImage* aImage, nsStyleGradient* aGradient)
{
MOZ_ASSERT(aImage);
aImage->SetGradientData(aGradient);
}
static already_AddRefed<nsStyleImageRequest>
CreateStyleImageRequest(nsStyleImageRequest::Mode aModeFlags,
- const uint8_t* aURLString, uint32_t aURLStringLength,
- ThreadSafeURIHolder* aBaseURI,
- ThreadSafeURIHolder* aReferrer,
- ThreadSafePrincipalHolder* aPrincipal)
+ ServoBundledURI aURI)
{
- MOZ_ASSERT(aURLString);
- MOZ_ASSERT(aBaseURI);
- MOZ_ASSERT(aReferrer);
- MOZ_ASSERT(aPrincipal);
+ MOZ_ASSERT(aURI.mURLString);
+ MOZ_ASSERT(aURI.mBaseURI);
+ MOZ_ASSERT(aURI.mReferrer);
+ MOZ_ASSERT(aURI.mPrincipal);
nsString url;
- nsDependentCSubstring urlString(reinterpret_cast<const char*>(aURLString),
- aURLStringLength);
+ nsDependentCSubstring urlString(reinterpret_cast<const char*>(aURI.mURLString),
+ aURI.mURLStringLength);
AppendUTF8toUTF16(urlString, url);
RefPtr<nsStringBuffer> urlBuffer = nsCSSValue::BufferFromString(url);
RefPtr<nsStyleImageRequest> req =
- new nsStyleImageRequest(aModeFlags, urlBuffer, do_AddRef(aBaseURI),
- do_AddRef(aReferrer), do_AddRef(aPrincipal));
+ new nsStyleImageRequest(aModeFlags, urlBuffer, do_AddRef(aURI.mBaseURI),
+ do_AddRef(aURI.mReferrer), do_AddRef(aURI.mPrincipal));
return req.forget();
}
void
-Gecko_SetUrlImageValue(nsStyleImage* aImage,
- const uint8_t* aURLString, uint32_t aURLStringLength,
- ThreadSafeURIHolder* aBaseURI,
- ThreadSafeURIHolder* aReferrer,
- ThreadSafePrincipalHolder* aPrincipal)
+Gecko_SetUrlImageValue(nsStyleImage* aImage, ServoBundledURI aURI)
{
RefPtr<nsStyleImageRequest> req =
- CreateStyleImageRequest(nsStyleImageRequest::Mode::Track,
- aURLString, aURLStringLength,
- aBaseURI, aReferrer, aPrincipal);
+ CreateStyleImageRequest(nsStyleImageRequest::Mode::Track, aURI);
aImage->SetImageRequest(req.forget());
}
void
Gecko_CopyImageValueFrom(nsStyleImage* aImage, const nsStyleImage* aOther)
{
MOZ_ASSERT(aImage);
MOZ_ASSERT(aOther);
@@ -911,26 +902,20 @@ Gecko_CopyImageValueFrom(nsStyleImage* a
void
Gecko_SetCursorArrayLength(nsStyleUserInterface* aStyleUI, size_t aLen)
{
aStyleUI->mCursorImages.Clear();
aStyleUI->mCursorImages.SetLength(aLen);
}
void
-Gecko_SetCursorImage(nsCursorImage* aCursor,
- const uint8_t* aURLString, uint32_t aURLStringLength,
- ThreadSafeURIHolder* aBaseURI,
- ThreadSafeURIHolder* aReferrer,
- ThreadSafePrincipalHolder* aPrincipal)
+Gecko_SetCursorImage(nsCursorImage* aCursor, ServoBundledURI aURI)
{
aCursor->mImage =
- CreateStyleImageRequest(nsStyleImageRequest::Mode::Discard,
- aURLString, aURLStringLength,
- aBaseURI, aReferrer, aPrincipal);
+ CreateStyleImageRequest(nsStyleImageRequest::Mode::Discard, aURI);
}
void
Gecko_CopyCursorArrayFrom(nsStyleUserInterface* aDest,
const nsStyleUserInterface* aSrc)
{
aDest->mCursorImages = aSrc->mCursorImages;
}
@@ -973,19 +958,17 @@ Gecko_SetListStyleImageNone(nsStyleList*
aList->mListStyleImage = nullptr;
}
void
Gecko_SetListStyleImage(nsStyleList* aList,
ServoBundledURI aURI)
{
aList->mListStyleImage =
- CreateStyleImageRequest(nsStyleImageRequest::Mode(0),
- aURI.mURLString, aURI.mURLStringLength,
- aURI.mBaseURI, aURI.mReferrer, aURI.mPrincipal);
+ CreateStyleImageRequest(nsStyleImageRequest::Mode(0), aURI);
}
void
Gecko_CopyListStyleImageFrom(nsStyleList* aList, const nsStyleList* aSource)
{
aList->mListStyleImage = aSource->mListStyleImage;
}
--- a/layout/style/ServoBindings.h
+++ b/layout/style/ServoBindings.h
@@ -218,21 +218,17 @@ void Gecko_CopyFontFamilyFrom(nsFont* ds
void Gecko_SetListStyleType(nsStyleList* style_struct, uint32_t type);
void Gecko_CopyListStyleTypeFrom(nsStyleList* dst, const nsStyleList* src);
// background-image style.
// TODO: support element() and -moz-image()
void Gecko_SetNullImageValue(nsStyleImage* image);
void Gecko_SetGradientImageValue(nsStyleImage* image, nsStyleGradient* gradient);
void Gecko_SetUrlImageValue(nsStyleImage* image,
- const uint8_t* url_bytes,
- uint32_t url_length,
- ThreadSafeURIHolder* base_uri,
- ThreadSafeURIHolder* referrer,
- ThreadSafePrincipalHolder* principal);
+ ServoBundledURI uri);
void Gecko_CopyImageValueFrom(nsStyleImage* image, const nsStyleImage* other);
nsStyleGradient* Gecko_CreateGradient(uint8_t shape,
uint8_t size,
bool repeating,
bool legacy_syntax,
uint32_t stops);
@@ -240,20 +236,17 @@ nsStyleGradient* Gecko_CreateGradient(ui
void Gecko_SetListStyleImageNone(nsStyleList* style_struct);
void Gecko_SetListStyleImage(nsStyleList* style_struct,
ServoBundledURI uri);
void Gecko_CopyListStyleImageFrom(nsStyleList* dest, const nsStyleList* src);
// cursor style.
void Gecko_SetCursorArrayLength(nsStyleUserInterface* ui, size_t len);
void Gecko_SetCursorImage(nsCursorImage* cursor,
- const uint8_t* string_bytes, uint32_t string_length,
- ThreadSafeURIHolder* base_uri,
- ThreadSafeURIHolder* referrer,
- ThreadSafePrincipalHolder* principal);
+ ServoBundledURI uri);
void Gecko_CopyCursorArrayFrom(nsStyleUserInterface* dest,
const nsStyleUserInterface* src);
// Dirtiness tracking.
uint32_t Gecko_GetNodeFlags(RawGeckoNodeBorrowed node);
void Gecko_SetNodeFlags(RawGeckoNodeBorrowed node, uint32_t flags);
void Gecko_UnsetNodeFlags(RawGeckoNodeBorrowed node, uint32_t flags);
void Gecko_SetOwnerDocumentNeedsStyleFlush(RawGeckoElementBorrowed element);