зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1335368 part 16. Remove the use of IsCallerChrome in GetUserMedia. r=jib
This commit is contained in:
Родитель
387da61c81
Коммит
6e7bd78dc6
|
@ -1424,6 +1424,7 @@ void
|
|||
Navigator::MozGetUserMedia(const MediaStreamConstraints& aConstraints,
|
||||
NavigatorUserMediaSuccessCallback& aOnSuccess,
|
||||
NavigatorUserMediaErrorCallback& aOnError,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
CallbackObjectHolder<NavigatorUserMediaSuccessCallback,
|
||||
|
@ -1442,7 +1443,8 @@ Navigator::MozGetUserMedia(const MediaStreamConstraints& aConstraints,
|
|||
}
|
||||
|
||||
MediaManager* manager = MediaManager::Get();
|
||||
aRv = manager->GetUserMedia(mWindow, aConstraints, onsuccess, onerror);
|
||||
aRv = manager->GetUserMedia(mWindow, aConstraints, onsuccess, onerror,
|
||||
aCallerType);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -232,6 +232,7 @@ public:
|
|||
void MozGetUserMedia(const MediaStreamConstraints& aConstraints,
|
||||
NavigatorUserMediaSuccessCallback& aOnSuccess,
|
||||
NavigatorUserMediaErrorCallback& aOnError,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
void MozGetUserMediaDevices(const MediaStreamConstraints& aConstraints,
|
||||
MozGetUserMediaDevicesSuccessCallback& aOnSuccess,
|
||||
|
|
|
@ -174,6 +174,7 @@ NS_IMPL_ISUPPORTS(MediaDevices::GumRejecter, nsIDOMGetUserMediaErrorCallback)
|
|||
|
||||
already_AddRefed<Promise>
|
||||
MediaDevices::GetUserMedia(const MediaStreamConstraints& aConstraints,
|
||||
CallerType aCallerType,
|
||||
ErrorResult &aRv)
|
||||
{
|
||||
nsPIDOMWindowInner* window = GetOwner();
|
||||
|
@ -185,7 +186,8 @@ MediaDevices::GetUserMedia(const MediaStreamConstraints& aConstraints,
|
|||
RefPtr<GumRejecter> rejecter = new GumRejecter(p);
|
||||
|
||||
aRv = MediaManager::Get()->GetUserMedia(window, aConstraints,
|
||||
resolver, rejecter);
|
||||
resolver, rejecter,
|
||||
aCallerType);
|
||||
return p.forget();
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,8 @@ public:
|
|||
void GetSupportedConstraints(MediaTrackSupportedConstraints& aResult) {};
|
||||
|
||||
already_AddRefed<Promise>
|
||||
GetUserMedia(const MediaStreamConstraints& aConstraints, ErrorResult &aRv);
|
||||
GetUserMedia(const MediaStreamConstraints& aConstraints,
|
||||
CallerType aCallerType, ErrorResult &aRv);
|
||||
|
||||
already_AddRefed<Promise>
|
||||
EnumerateDevices(ErrorResult &aRv);
|
||||
|
|
|
@ -2002,7 +2002,8 @@ nsresult
|
|||
MediaManager::GetUserMedia(nsPIDOMWindowInner* aWindow,
|
||||
const MediaStreamConstraints& aConstraintsPassedIn,
|
||||
nsIDOMGetUserMediaSuccessCallback* aOnSuccess,
|
||||
nsIDOMGetUserMediaErrorCallback* aOnFailure)
|
||||
nsIDOMGetUserMediaErrorCallback* aOnFailure,
|
||||
dom::CallerType aCallerType)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(aWindow);
|
||||
|
@ -2040,7 +2041,7 @@ MediaManager::GetUserMedia(nsPIDOMWindowInner* aWindow,
|
|||
if (!docURI) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
bool isChrome = nsContentUtils::IsCallerChrome();
|
||||
bool isChrome = (aCallerType == dom::CallerType::System);
|
||||
bool privileged = isChrome ||
|
||||
Preferences::GetBool("media.navigator.permission.disabled", false);
|
||||
bool isHTTPS = false;
|
||||
|
|
|
@ -48,6 +48,7 @@ namespace dom {
|
|||
struct MediaStreamConstraints;
|
||||
struct MediaTrackConstraints;
|
||||
struct MediaTrackConstraintSet;
|
||||
enum class CallerType : uint32_t;
|
||||
} // namespace dom
|
||||
|
||||
namespace ipc {
|
||||
|
@ -241,7 +242,8 @@ public:
|
|||
nsPIDOMWindowInner* aWindow,
|
||||
const dom::MediaStreamConstraints& aConstraints,
|
||||
nsIDOMGetUserMediaSuccessCallback* onSuccess,
|
||||
nsIDOMGetUserMediaErrorCallback* onError);
|
||||
nsIDOMGetUserMediaErrorCallback* onError,
|
||||
dom::CallerType aCallerType);
|
||||
|
||||
nsresult GetUserMediaDevices(nsPIDOMWindowInner* aWindow,
|
||||
const dom::MediaStreamConstraints& aConstraints,
|
||||
|
|
|
@ -724,7 +724,9 @@ SpeechRecognition::SetServiceURI(const nsAString& aArg, ErrorResult& aRv)
|
|||
}
|
||||
|
||||
void
|
||||
SpeechRecognition::Start(const Optional<NonNull<DOMMediaStream>>& aStream, ErrorResult& aRv)
|
||||
SpeechRecognition::Start(const Optional<NonNull<DOMMediaStream>>& aStream,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
if (mCurrentState != STATE_IDLE) {
|
||||
aRv.Throw(NS_ERROR_DOM_INVALID_STATE_ERR);
|
||||
|
@ -756,7 +758,8 @@ SpeechRecognition::Start(const Optional<NonNull<DOMMediaStream>>& aStream, Error
|
|||
manager->GetUserMedia(GetOwner(),
|
||||
constraints,
|
||||
new GetUserMediaSuccessCallback(this),
|
||||
new GetUserMediaErrorCallback(this));
|
||||
new GetUserMediaErrorCallback(this),
|
||||
aCallerType);
|
||||
}
|
||||
|
||||
RefPtr<SpeechEvent> event = new SpeechEvent(this, EVENT_START);
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "nsISpeechRecognitionService.h"
|
||||
#include "endpointer.h"
|
||||
|
||||
#include "mozilla/dom/BindingDeclarations.h"
|
||||
#include "mozilla/dom/SpeechRecognitionError.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
@ -90,7 +91,8 @@ public:
|
|||
|
||||
void SetServiceURI(const nsAString& aArg, ErrorResult& aRv);
|
||||
|
||||
void Start(const Optional<NonNull<DOMMediaStream>>& aStream, ErrorResult& aRv);
|
||||
void Start(const Optional<NonNull<DOMMediaStream>>& aStream,
|
||||
CallerType aCallerType, ErrorResult& aRv);
|
||||
|
||||
void Stop();
|
||||
|
||||
|
|
|
@ -19,6 +19,6 @@ interface MediaDevices : EventTarget {
|
|||
[Throws]
|
||||
Promise<sequence<MediaDeviceInfo>> enumerateDevices();
|
||||
|
||||
[Throws]
|
||||
[Throws, NeedsCallerType]
|
||||
Promise<MediaStream> getUserMedia(optional MediaStreamConstraints constraints);
|
||||
};
|
||||
|
|
|
@ -315,7 +315,8 @@ partial interface Navigator {
|
|||
|
||||
// Deprecated. Use mediaDevices.getUserMedia instead.
|
||||
[Deprecated="NavigatorGetUserMedia", Throws,
|
||||
Func="Navigator::HasUserMediaSupport", UnsafeInPrerendering]
|
||||
Func="Navigator::HasUserMediaSupport", UnsafeInPrerendering,
|
||||
NeedsCallerType]
|
||||
void mozGetUserMedia(MediaStreamConstraints constraints,
|
||||
NavigatorUserMediaSuccessCallback successCallback,
|
||||
NavigatorUserMediaErrorCallback errorCallback);
|
||||
|
|
|
@ -25,7 +25,7 @@ interface SpeechRecognition : EventTarget {
|
|||
attribute DOMString serviceURI;
|
||||
|
||||
// methods to drive the speech interaction
|
||||
[Throws, UnsafeInPrerendering]
|
||||
[Throws, UnsafeInPrerendering, NeedsCallerType]
|
||||
void start(optional MediaStream stream);
|
||||
void stop();
|
||||
void abort();
|
||||
|
|
Загрузка…
Ссылка в новой задаче