| Index: Source/modules/mediastream/UserMediaRequest.cpp
|
| diff --git a/Source/modules/mediastream/UserMediaRequest.cpp b/Source/modules/mediastream/UserMediaRequest.cpp
|
| index 750298b508f5e93ddc3867dcbf38f34b21b63c88..cbec9e3805b817054b9079a88ad9eaba8171f5b4 100644
|
| --- a/Source/modules/mediastream/UserMediaRequest.cpp
|
| +++ b/Source/modules/mediastream/UserMediaRequest.cpp
|
| @@ -34,8 +34,10 @@
|
| #include "modules/mediastream/UserMediaRequest.h"
|
|
|
| #include "bindings/v8/Dictionary.h"
|
| +#include "bindings/v8/ExceptionMessages.h"
|
| #include "bindings/v8/ExceptionState.h"
|
| #include "core/dom/Document.h"
|
| +#include "core/dom/ExceptionCode.h"
|
| #include "core/dom/SpaceSplitString.h"
|
| #include "modules/mediastream/MediaConstraintsImpl.h"
|
| #include "modules/mediastream/MediaStream.h"
|
| @@ -73,8 +75,10 @@ PassRefPtr<UserMediaRequest> UserMediaRequest::create(ExecutionContext* context,
|
| if (exceptionState.hadException())
|
| return nullptr;
|
|
|
| - if (audio.isNull() && video.isNull())
|
| + if (audio.isNull() && video.isNull()) {
|
| + exceptionState.throwDOMException(SyntaxError, "At least one of audio and video must be requested");
|
| return nullptr;
|
| + }
|
|
|
| return adoptRef(new UserMediaRequest(context, controller, audio, video, successCallback, errorCallback));
|
| }
|
| @@ -153,10 +157,8 @@ void UserMediaRequest::fail(const String& description)
|
| if (!executionContext())
|
| return;
|
|
|
| - if (m_errorCallback) {
|
| - RefPtr<NavigatorUserMediaError> error = NavigatorUserMediaError::create(NavigatorUserMediaError::NamePermissionDenied, description, String());
|
| - m_errorCallback->handleEvent(error.get());
|
| - }
|
| + RefPtr<NavigatorUserMediaError> error = NavigatorUserMediaError::create(NavigatorUserMediaError::NamePermissionDenied, description, String());
|
| + m_errorCallback->handleEvent(error.get());
|
| }
|
|
|
| void UserMediaRequest::failConstraint(const String& constraintName, const String& description)
|
| @@ -165,10 +167,8 @@ void UserMediaRequest::failConstraint(const String& constraintName, const String
|
| if (!executionContext())
|
| return;
|
|
|
| - if (m_errorCallback) {
|
| - RefPtr<NavigatorUserMediaError> error = NavigatorUserMediaError::create(NavigatorUserMediaError::NameConstraintNotSatisfied, description, constraintName);
|
| - m_errorCallback->handleEvent(error.get());
|
| - }
|
| + RefPtr<NavigatorUserMediaError> error = NavigatorUserMediaError::create(NavigatorUserMediaError::NameConstraintNotSatisfied, description, constraintName);
|
| + m_errorCallback->handleEvent(error.get());
|
| }
|
|
|
| void UserMediaRequest::contextDestroyed()
|
|
|