| Index: Source/testing/runner/WebUserMediaClientMock.cpp
|
| diff --git a/Source/testing/runner/WebUserMediaClientMock.cpp b/Source/testing/runner/WebUserMediaClientMock.cpp
|
| index 719118ef4400d054fea5fb1887aaeef0276be8b5..2ff413e5a71c1381b68dfd1d5873e47ad790b114 100644
|
| --- a/Source/testing/runner/WebUserMediaClientMock.cpp
|
| +++ b/Source/testing/runner/WebUserMediaClientMock.cpp
|
| @@ -52,14 +52,12 @@ public:
|
| , m_request(request)
|
| , m_result(result)
|
| {
|
| + WEBKIT_ASSERT(!m_result.isNull());
|
| }
|
|
|
| virtual void runIfValid() OVERRIDE
|
| {
|
| - if (m_result.isNull())
|
| - m_request.requestFailed();
|
| - else
|
| - m_request.requestSucceeded(m_result);
|
| + m_request.requestSucceeded(m_result);
|
| }
|
|
|
| private:
|
| @@ -67,6 +65,42 @@ private:
|
| WebMediaStream m_result;
|
| };
|
|
|
| +class UserMediaRequestConstraintFailedTask : public WebMethodTask<WebUserMediaClientMock> {
|
| +public:
|
| + UserMediaRequestConstraintFailedTask(WebUserMediaClientMock* object, const WebUserMediaRequest& request, const WebString& constraint)
|
| + : WebMethodTask<WebUserMediaClientMock>(object)
|
| + , m_request(request)
|
| + , m_constraint(constraint)
|
| + {
|
| + }
|
| +
|
| + virtual void runIfValid() OVERRIDE
|
| + {
|
| + m_request.requestFailedConstraint(m_constraint);
|
| + }
|
| +
|
| +private:
|
| + WebUserMediaRequest m_request;
|
| + WebString m_constraint;
|
| +};
|
| +
|
| +class UserMediaRequestPermissionDeniedTask : public WebMethodTask<WebUserMediaClientMock> {
|
| +public:
|
| + UserMediaRequestPermissionDeniedTask(WebUserMediaClientMock* object, const WebUserMediaRequest& request)
|
| + : WebMethodTask<WebUserMediaClientMock>(object)
|
| + , m_request(request)
|
| + {
|
| + }
|
| +
|
| + virtual void runIfValid() OVERRIDE
|
| + {
|
| + m_request.requestFailed();
|
| + }
|
| +
|
| +private:
|
| + WebUserMediaRequest m_request;
|
| +};
|
| +
|
| ////////////////////////////////
|
|
|
| class MockExtraData : public WebMediaStream::ExtraData {
|
| @@ -85,18 +119,19 @@ void WebUserMediaClientMock::requestUserMedia(const WebUserMediaRequest& streamR
|
| WebUserMediaRequest request = streamRequest;
|
|
|
| if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
|
| - m_delegate->postTask(new UserMediaRequestTask(this, request, WebMediaStream()));
|
| + m_delegate->postTask(new UserMediaRequestPermissionDeniedTask(this, request));
|
| return;
|
| }
|
|
|
| WebMediaConstraints constraints = request.audioConstraints();
|
| - if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints)) {
|
| - m_delegate->postTask(new UserMediaRequestTask(this, request, WebMediaStream()));
|
| + WebString failedConstraint;
|
| + if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints, &failedConstraint)) {
|
| + m_delegate->postTask(new UserMediaRequestConstraintFailedTask(this, request, failedConstraint));
|
| return;
|
| }
|
| constraints = request.videoConstraints();
|
| - if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints)) {
|
| - m_delegate->postTask(new UserMediaRequestTask(this, request, WebMediaStream()));
|
| + if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints, &failedConstraint)) {
|
| + m_delegate->postTask(new UserMediaRequestConstraintFailedTask(this, request, failedConstraint));
|
| return;
|
| }
|
|
|
|
|