From 4c68880cf90dbb1cef76bc860841f180ce9dcefb Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 12 Feb 2015 18:39:26 -0500 Subject: [PATCH] Bug 1132655. Don't allow conversions from DOMString to const XPCOM string references, since it's meant to be an outparam only. r=smaug --- dom/bindings/DOMString.h | 5 +++++ dom/html/HTMLTrackElement.h | 2 +- dom/workers/ServiceWorkerClients.cpp | 2 +- dom/workers/WorkerScope.h | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/dom/bindings/DOMString.h b/dom/bindings/DOMString.h index 5585e3dad4d..7169862425c 100644 --- a/dom/bindings/DOMString.h +++ b/dom/bindings/DOMString.h @@ -55,6 +55,11 @@ public: return AsAString(); } + // It doesn't make any sense to convert a DOMString to a const nsString or + // nsAString reference; this class is meant for outparams only. + operator const nsString&() = delete; + operator const nsAString&() = delete; + nsString& AsAString() { MOZ_ASSERT(!mStringBuffer, "We already have a stringbuffer?"); diff --git a/dom/html/HTMLTrackElement.h b/dom/html/HTMLTrackElement.h index 4defd3b3f79..b0cdde8d7ef 100644 --- a/dom/html/HTMLTrackElement.h +++ b/dom/html/HTMLTrackElement.h @@ -97,7 +97,7 @@ public: { DOMString value; GetSrc(value); - aText = value; + value.ToString(aText); } virtual void SetItemValueText(const nsAString& aText) MOZ_OVERRIDE { diff --git a/dom/workers/ServiceWorkerClients.cpp b/dom/workers/ServiceWorkerClients.cpp index 0515075a7be..dfe7036ba19 100644 --- a/dom/workers/ServiceWorkerClients.cpp +++ b/dom/workers/ServiceWorkerClients.cpp @@ -250,7 +250,7 @@ ServiceWorkerClients::GetServiced(ErrorResult& aRv) MOZ_ASSERT(workerPrivate); workerPrivate->AssertIsOnWorkerThread(); - DOMString scope; + nsString scope; mWorkerScope->GetScope(scope); nsRefPtr promise = Promise::Create(mWorkerScope, aRv); diff --git a/dom/workers/WorkerScope.h b/dom/workers/WorkerScope.h index 84f6066f6d4..c903502a9cc 100644 --- a/dom/workers/WorkerScope.h +++ b/dom/workers/WorkerScope.h @@ -203,9 +203,9 @@ public: JS::MutableHandle aReflector) MOZ_OVERRIDE; void - GetScope(DOMString& aScope) const + GetScope(nsString& aScope) const { - aScope.AsAString() = mScope; + aScope = mScope; } void