Changeset 190362 in webkit


Ignore:
Timestamp:
Sep 30, 2015 12:16:51 PM (9 years ago)
Author:
eric.carlson@apple.com
Message:

REGRESSION(r190262): User media unit test failures after r190262
https://bugs.webkit.org/show_bug.cgi?id=149580

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::getStats): Drive-by fix to deal with optional param.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::constraintsValidated): Swap the track parameter order.

  • Modules/mediastream/UserMediaRequest.h:
  • platform/mediastream/MediaStreamCreationClient.h:

(WebCore::MediaStreamCreationClient::validateRequestConstraints): Swap the track parameter order.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints): If there is no

constraint for a media type, don't return a device of that type.

  • platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:

(WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable): Ditto.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints): Ditto.

  • platform/mock/TimerEventBasedMock.h:

(WebCore::TimerEvent::~TimerEvent): Clear the m_mock pointer.

  • platform/mock/UserMediaClientMock.h:

(WebCore::UserMediaClientMock::fire): Deal with empty device vectors.

  • testing/Internals.cpp:

(WebCore::Internals::Internals): Don't register UserMediaController, it isn't needed for

WKTR.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::decidePolicyForUserMediaPermissionRequestIfPossible): Fix parameter

order to WKUserMediaPermissionRequestAllow.

LayoutTests:

  • platform/gtk/TestExpectations: Unskip tests.
Location:
trunk
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r190343 r190362  
     12015-09-30  Eric Carlson  <eric.carlson@apple.com>
     2
     3        REGRESSION(r190262): User media unit test failures after r190262
     4        https://bugs.webkit.org/show_bug.cgi?id=149580
     5
     6        Reviewed by Darin Adler.
     7
     8        * platform/gtk/TestExpectations: Unskip tests.
     9
    1102015-09-29  Ryan Haddad  <ryanhaddad@apple.com>
    211
  • trunk/LayoutTests/platform/gtk/TestExpectations

    r190306 r190362  
    698698
    699699webkit.org/b/144771 editing/selection/selection-invalid-offset.html [ Crash ]
    700 
    701 webkit.org/b/149580 fast/mediastream/MediaDevices-getUserMedia.html [ Crash ]
    702 webkit.org/b/149580 fast/mediastream/MediaStream-add-ended-tracks.html [ Crash ]
    703 webkit.org/b/149580 fast/mediastream/MediaStream-add-remove-tracks.html [ Crash ]
    704 webkit.org/b/149580 fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html [ Crash ]
    705 webkit.org/b/149580 fast/mediastream/MediaStream-clone.html [ Crash ]
    706 webkit.org/b/149580 fast/mediastream/MediaStream-construct-with-ended-tracks.html [ Crash ]
    707 webkit.org/b/149580 fast/mediastream/MediaStream-getTracks.html [ Crash ]
    708 webkit.org/b/149580 fast/mediastream/MediaStreamConstructor.html [ Crash ]
    709 webkit.org/b/149580 fast/mediastream/MediaStreamTrack-clone.html [ Crash ]
    710 webkit.org/b/149580 fast/mediastream/MediaStreamTrack-kind.html [ Crash ]
    711 webkit.org/b/149580 fast/mediastream/MediaStreamTrack-stop.html [ Crash ]
    712 webkit.org/b/149580 fast/mediastream/MediaStreamTrackEvent-constructor.html [ Crash ]
    713 webkit.org/b/149580 fast/mediastream/delayed-permission-allowed.html [ Crash ]
    714 webkit.org/b/149580 fast/mediastream/delayed-permission-denied.html [ Crash ]
    715 webkit.org/b/149580 fast/mediastream/error.html [ Crash ]
    716 webkit.org/b/149580 fast/mediastream/getusermedia.html [ Crash ]
    717 webkit.org/b/149580 fast/mediastream/success.html [ Crash ]
    718 webkit.org/b/149580 http/tests/media/media-stream/disconnected-frame-permission-denied.html [ Crash ]
    719 webkit.org/b/149580 http/tests/media/media-stream/disconnected-frame.html [ Crash ]
    720700
    721701#////////////////////////////////////////////////////////////////////////////////////////
     
    13981378webkit.org/b/146731 fast/events/touch/touch-scaled-scrolled.html [ Timeout ]
    13991379webkit.org/b/146731 fast/events/touch/touch-stale-node-crash.html [ Timeout ]
    1400 
    1401 webkit.org/b/148567 fast/mediastream/MediaDevices-getUserMedia.html [ Timeout ]
    1402 webkit.org/b/148567 fast/mediastream/MediaStream-add-ended-tracks.html [ Timeout ]
    1403 webkit.org/b/148567 fast/mediastream/MediaStream-add-remove-tracks.html [ Timeout ]
    1404 webkit.org/b/148567 fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html [ Timeout ]
    1405 webkit.org/b/148567 fast/mediastream/MediaStream-clone.html [ Timeout ]
    1406 webkit.org/b/148567 fast/mediastream/MediaStream-construct-with-ended-tracks.html [ Timeout ]
    1407 webkit.org/b/148567 fast/mediastream/MediaStream-getTracks.html [ Timeout ]
    1408 webkit.org/b/148567 fast/mediastream/MediaStreamConstructor.html [ Timeout ]
    1409 webkit.org/b/148567 fast/mediastream/MediaStreamTrack-clone.html [ Timeout ]
    1410 webkit.org/b/148567 fast/mediastream/MediaStreamTrack-kind.html [ Timeout ]
    1411 webkit.org/b/148567 fast/mediastream/MediaStreamTrack-stop.html [ Timeout ]
    1412 webkit.org/b/148567 fast/mediastream/delayed-permission-allowed.html [ Timeout ]
    1413 webkit.org/b/148567 fast/mediastream/getusermedia.html [ Timeout ]
    1414 webkit.org/b/148567 fast/mediastream/success.html [ Timeout ]
    14151380
    14161381#////////////////////////////////////////////////////////////////////////////////////////
  • trunk/Source/WebCore/ChangeLog

    r190347 r190362  
     12015-09-30  Eric Carlson  <eric.carlson@apple.com>
     2
     3        REGRESSION(r190262): User media unit test failures after r190262
     4        https://bugs.webkit.org/show_bug.cgi?id=149580
     5
     6        Reviewed by Darin Adler.
     7
     8        * Modules/mediastream/RTCPeerConnection.cpp:
     9        (WebCore::RTCPeerConnection::getStats): Drive-by fix to deal with optional param.
     10
     11        * Modules/mediastream/UserMediaRequest.cpp:
     12        (WebCore::UserMediaRequest::constraintsValidated): Swap the track parameter order.
     13        * Modules/mediastream/UserMediaRequest.h:
     14
     15        * platform/mediastream/MediaStreamCreationClient.h:
     16        (WebCore::MediaStreamCreationClient::validateRequestConstraints): Swap the track parameter order.
     17
     18        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
     19        (WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints): If there is no
     20          constraint for a media type, don't return a device of that type.
     21
     22        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
     23        (WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable): Ditto.
     24
     25        * platform/mock/MockRealtimeMediaSourceCenter.cpp:
     26        (WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints): Ditto.
     27
     28        * platform/mock/TimerEventBasedMock.h:
     29        (WebCore::TimerEvent::~TimerEvent): Clear the m_mock pointer.
     30
     31        * platform/mock/UserMediaClientMock.h:
     32        (WebCore::UserMediaClientMock::fire): Deal with empty device vectors.
     33
     34        * testing/Internals.cpp:
     35        (WebCore::Internals::Internals): Don't register UserMediaController, it isn't needed for
     36          WKTR.
     37
    1382015-09-29  Antti Koivisto  <antti@apple.com>
    239
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp

    r186081 r190362  
    530530void RTCPeerConnection::getStats(PassRefPtr<RTCStatsCallback> successCallback, PassRefPtr<RTCPeerConnectionErrorCallback> errorCallback, PassRefPtr<MediaStreamTrack> selector)
    531531{
    532     RefPtr<RTCStatsRequestImpl> statsRequest = RTCStatsRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback, &selector->privateTrack());
     532    RefPtr<MediaStreamTrack> track = selector;
     533    RefPtr<RTCStatsRequestImpl> statsRequest = RTCStatsRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback, track ? &track->privateTrack() : nullptr);
     534
    533535    // FIXME: Add passing selector as part of the statsRequest.
    534536    m_peerHandler->getStats(statsRequest.release());
  • trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp

    r190262 r190362  
    123123}
    124124
    125 void UserMediaRequest::constraintsValidated(const Vector<RefPtr<RealtimeMediaSource>>& videoTracks, const Vector<RefPtr<RealtimeMediaSource>>& audioTracks)
     125void UserMediaRequest::constraintsValidated(const Vector<RefPtr<RealtimeMediaSource>>& audioTracks, const Vector<RefPtr<RealtimeMediaSource>>& videoTracks)
    126126{
    127127    for (auto& audioTrack : audioTracks)
  • trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h

    r190262 r190362  
    8282
    8383    // MediaStreamCreationClient
    84     virtual void constraintsValidated(const Vector<RefPtr<RealtimeMediaSource>>&, const Vector<RefPtr<RealtimeMediaSource>>&) override final;
     84    virtual void constraintsValidated(const Vector<RefPtr<RealtimeMediaSource>>& audioTracks, const Vector<RefPtr<RealtimeMediaSource>>& videoTracks) override final;
    8585    virtual void constraintsInvalid(const String& constraintName) override final;
    8686    virtual void didCreateStream(PassRefPtr<MediaStreamPrivate>) override final;
  • trunk/Source/WebCore/platform/mediastream/MediaStreamCreationClient.h

    r189982 r190362  
    4040    virtual ~MediaStreamCreationClient() { }
    4141
    42     virtual void constraintsValidated(const Vector<RefPtr<RealtimeMediaSource>>& videoTracks, const Vector<RefPtr<RealtimeMediaSource>>& audioTracks) = 0;
     42    virtual void constraintsValidated(const Vector<RefPtr<RealtimeMediaSource>>& audioTracks, const Vector<RefPtr<RealtimeMediaSource>>& videoTracks) = 0;
    4343    virtual void constraintsInvalid(const String& constraintName) = 0;
    4444
  • trunk/Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp

    r190072 r190362  
    6161    ASSERT(client);
    6262
     63    Vector<RefPtr<RealtimeMediaSource>> audioSources;
     64    Vector<RefPtr<RealtimeMediaSource>> videoSources;
     65
    6366    if (audioConstraints) {
    6467        String invalidConstraint;
     
    6871            return;
    6972        }
     73
     74        audioSources = AVCaptureDeviceManager::singleton().bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type::Audio, audioConstraints);
    7075    }
    7176
     
    7782            return;
    7883        }
     84
     85        videoSources = AVCaptureDeviceManager::singleton().bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type::Video, videoConstraints);
    7986    }
    80     Vector<RefPtr<RealtimeMediaSource>> bestVideoSources = AVCaptureDeviceManager::singleton().bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type::Video, videoConstraints);
    81     Vector<RefPtr<RealtimeMediaSource>> bestAudioSources = AVCaptureDeviceManager::singleton().bestSourcesForTypeAndConstraints(RealtimeMediaSource::Type::Audio, audioConstraints);
    82     client->constraintsValidated(bestVideoSources, bestAudioSources);
     87    client->constraintsValidated(audioSources, videoSources);
    8388}
    8489
  • trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp

    r190072 r190362  
    163163void RealtimeMediaSourceCenterOwr::mediaSourcesAvailable(GList* sources)
    164164{
     165    Vector<RefPtr<RealtimeMediaSource>> audioSources;
     166    Vector<RefPtr<RealtimeMediaSource>> videoSources;
     167
    165168    for (auto item = sources; item; item = item->next) {
    166169        OwrMediaSource* source = OWR_MEDIA_SOURCE(item->data);
     
    188191            m_sourceMap.add(id, mediaSource);
    189192
     193        if (mediaType & OWR_MEDIA_TYPE_AUDIO)
     194            audioSources.append(mediaSource);
     195        else if (mediaType & OWR_MEDIA_TYPE_VIDEO)
     196            videoSources.append(mediaSource);
    190197    }
    191198
    192199    // TODO: Make sure contraints are actually validated by checking source types.
    193     m_client->constraintsValidated(Vector<RefPtr<RealtimeMediaSource>>(), Vector<RefPtr<RealtimeMediaSource>>());
     200    m_client->constraintsValidated(audioSources, videoSources);
    194201}
    195202
  • trunk/Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp

    r190072 r190362  
    132132    ASSERT(client);
    133133
     134    Vector<RefPtr<RealtimeMediaSource>> audioSources;
     135    Vector<RefPtr<RealtimeMediaSource>> videoSources;
     136    MockSourceMap& map = mockSourceMap();
     137
    134138    if (audioConstraints) {
    135139        String invalidQuery = MediaConstraintsMock::verifyConstraints(audioConstraints);
     
    138142            return;
    139143        }
    140     }
    141    
     144
     145        MockSourceMap::iterator it = map.find(mockAudioSourceID());
     146        ASSERT(it != map.end());
     147
     148        RefPtr<RealtimeMediaSource> audioSource = it->value;
     149        audioSource->reset();
     150        audioSources.append(audioSource.release());
     151    }
     152
    142153    if (videoConstraints) {
    143154        String invalidQuery = MediaConstraintsMock::verifyConstraints(videoConstraints);
     
    146157            return;
    147158        }
    148     }
    149 
    150     client->constraintsValidated(Vector<RefPtr<RealtimeMediaSource>>(), Vector<RefPtr<RealtimeMediaSource>>());
     159
     160        MockSourceMap::iterator it = map.find(mockVideoSourceID());
     161        ASSERT(it != map.end());
     162
     163        RefPtr<RealtimeMediaSource> videoSource = it->value;
     164        videoSource->reset();
     165        videoSources.append(videoSource.release());
     166    }
     167
     168    client->constraintsValidated(audioSources, videoSources);
    151169}
    152170
  • trunk/Source/WebCore/platform/mock/TimerEventBasedMock.h

    r176495 r190362  
    6767    }
    6868
    69     virtual ~TimerEvent() { }
     69    virtual ~TimerEvent()
     70    {
     71        m_mock = nullptr;
     72    }
    7073
    7174    void timerFired()
  • trunk/Source/WebCore/platform/mock/UserMediaClientMock.h

    r190001 r190362  
    4545    void fire() override
    4646    {
    47         if (m_requestSuccess)
    48             m_request->userMediaAccessGranted(m_request->videoDeviceUIDs().at(0), m_request->audioDeviceUIDs().at(0));
    49         else
     47        if (!m_requestSuccess) {
    5048            m_request->userMediaAccessDenied();
     49            return;
     50        }
     51
     52        auto audioDeviceUIDs = m_request->audioDeviceUIDs();
     53        auto videoDeviceUIDs  = m_request->videoDeviceUIDs();
     54        String allowedAudioUID = audioDeviceUIDs.size() ? audioDeviceUIDs.at(0) : emptyString();
     55        String videoAudioUID = videoDeviceUIDs.size() ? videoDeviceUIDs.at(0) : emptyString();
     56
     57        m_request->userMediaAccessGranted(allowedAudioUID, videoAudioUID);
    5158    }
    5259
  • trunk/Source/WebCore/testing/Internals.cpp

    r190306 r190362  
    388388    MockRealtimeMediaSourceCenter::registerMockRealtimeMediaSourceCenter();
    389389    enableMockRTCPeerConnectionHandler();
    390     document->page()->removeSupplement(UserMediaController::supplementName());
    391     WebCore::provideUserMediaTo(document->page(), new UserMediaClientMock());
    392390#endif
    393391}
  • trunk/Tools/ChangeLog

    r190359 r190362  
     12015-09-30  Eric Carlson  <eric.carlson@apple.com>
     2
     3        REGRESSION(r190262): User media unit test failures after r190262
     4        https://bugs.webkit.org/show_bug.cgi?id=149580
     5
     6        Reviewed by Darin Adler.
     7
     8        * WebKitTestRunner/TestController.cpp:
     9        (WTR::TestController::decidePolicyForUserMediaPermissionRequestIfPossible): Fix parameter
     10          order to WKUserMediaPermissionRequestAllow.
     11
    1122015-09-30  Daniel Bates  <dabates@apple.com>
    213
  • trunk/Tools/WebKitTestRunner/TestController.cpp

    r190335 r190362  
    16701670                audioDeviceUID = WKStringCreateWithUTF8CString("");
    16711671
    1672             WKUserMediaPermissionRequestAllow(request.get(), videoDeviceUID.get(), audioDeviceUID.get());
     1672            WKUserMediaPermissionRequestAllow(request.get(), audioDeviceUID.get(), videoDeviceUID.get());
    16731673
    16741674        } else
Note: See TracChangeset for help on using the changeset viewer.