Changeset 215413 in webkit


Ignore:
Timestamp:
Apr 17, 2017 8:34:17 AM (7 years ago)
Author:
eric.carlson@apple.com
Message:

[MediaStream] Enable getUserMedia API test
https://bugs.webkit.org/show_bug.cgi?id=170901
<rdar://problem/31656594>

Reviewed by Youenn Fablet.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add test.
  • TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:

(TestWebKitAPI::decidePolicyForUserMediaPermissionRequestCallBack):
(TestWebKitAPI::TEST): Enable capture with mock devices.

  • TestWebKitAPI/Tests/WebKit2/getUserMedia.html: Update to mediaDevices.getUserMedia
Location:
trunk/Tools
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r215409 r215413  
     12017-04-17  Eric Carlson  <eric.carlson@apple.com>
     2
     3        [MediaStream] Enable getUserMedia API test
     4        https://bugs.webkit.org/show_bug.cgi?id=170901
     5        <rdar://problem/31656594>
     6
     7        Reviewed by Youenn Fablet.
     8
     9        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add test.
     10
     11        * TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:
     12        (TestWebKitAPI::decidePolicyForUserMediaPermissionRequestCallBack):
     13        (TestWebKitAPI::TEST): Enable capture with mock devices.
     14        * TestWebKitAPI/Tests/WebKit2/getUserMedia.html: Update to mediaDevices.getUserMedia
     15
    1162017-04-17  Xan Lopez  <xan@igalia.com>
    217
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r215384 r215413  
    2525                07492B3B1DF8B14C00633DE1 /* EnumerateMediaDevices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07492B3A1DF8AE2D00633DE1 /* EnumerateMediaDevices.cpp */; };
    2626                07492B3C1DF8B86600633DE1 /* enumerateMediaDevices.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 07492B391DF8ADA400633DE1 /* enumerateMediaDevices.html */; };
     27                074994421EA5034B000DA44E /* getUserMedia.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 4A410F4D19AF7BEF002EBAB5 /* getUserMedia.html */; };
    2728                07C046CA1E4262A8007201E7 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C046C91E42573E007201E7 /* CARingBuffer.cpp */; };
    2829                0F139E771A423A5B00F590F5 /* WeakObjCPtr.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0F139E751A423A5300F590F5 /* WeakObjCPtr.mm */; };
     
    670671                        dstSubfolderSpec = 7;
    671672                        files = (
     673                                074994421EA5034B000DA44E /* getUserMedia.html in Copy Resources */,
    672674                                C9BF06EF1E9C132500595E3E /* autoplay-muted-with-controls.html in Copy Resources */,
    673675                                F4DEF6ED1E9B4DB60048EF61 /* image-in-link-and-input.html in Copy Resources */,
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2/UserMedia.cpp

    r213287 r215413  
    2626#include "PlatformWebView.h"
    2727#include "Test.h"
     28#include <WebKit/WKPagePrivate.h>
     29#include <WebKit/WKPreferencesRef.h>
     30#include <WebKit/WKPreferencesRefPrivate.h>
    2831#include <WebKit/WKRetainPtr.h>
    2932#include <string.h>
     
    3235namespace TestWebKitAPI {
    3336
    34 static bool done;
     37static bool wasPrompted;
    3538
    3639void decidePolicyForUserMediaPermissionRequestCallBack(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKSecurityOriginRef, WKUserMediaPermissionRequestRef permissionRequest, const void* /* clientInfo */)
     
    5558    }
    5659
    57     done = true;
     60    wasPrompted = true;
    5861}
    5962
    60 TEST(WebKit2, DISABLED_UserMediaBasic)
     63TEST(WebKit2, UserMediaBasic)
    6164{
    6265    auto context = adoptWK(WKContextCreate());
    63     PlatformWebView webView(context.get());
    64     WKPageUIClientV5 uiClient;
     66
     67    WKRetainPtr<WKPageGroupRef> pageGroup(AdoptWK, WKPageGroupCreateWithIdentifier(Util::toWK("GetUserMedia").get()));
     68    WKPreferencesRef preferences = WKPageGroupGetPreferences(pageGroup.get());
     69    WKPreferencesSetMediaStreamEnabled(preferences, true);
     70    WKPreferencesSetFileAccessFromFileURLsAllowed(preferences, true);
     71    WKPreferencesSetMediaCaptureRequiresSecureConnection(preferences, false);
     72    WKPreferencesSetMockCaptureDevicesEnabled(preferences, true);
     73
     74    WKPageUIClientV6 uiClient;
    6575    memset(&uiClient, 0, sizeof(uiClient));
    66 
    67 
    68     uiClient.base.version = 5;
     76    uiClient.base.version = 6;
    6977    uiClient.decidePolicyForUserMediaPermissionRequest = decidePolicyForUserMediaPermissionRequestCallBack;
    7078
     79    PlatformWebView webView(context.get(), pageGroup.get());
    7180    WKPageSetPageUIClient(webView.page(), &uiClient.base);
    7281
    73     done = false;
     82    wasPrompted = false;
    7483    auto url = adoptWK(Util::createURLForResource("getUserMedia", "html"));
     84    ASSERT(url.get());
     85
    7586    WKPageLoadURL(webView.page(), url.get());
    7687
    77     Util::run(&done);
     88    Util::run(&wasPrompted);
    7889}
    7990
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2/getUserMedia.html

    r213287 r215413  
    11<script>
    2 function gotUserMedia(mediaStream)
    3 {
    4     console.log("Got user media");
    5 }
     2    function gotUserMedia(mediaStream)
     3    {
     4        console.log("Got user media");
     5    }
    66
    7 function userMediaError(error)
    8 {
    9     console.log(error);
    10 }
     7    function userMediaError(error)
     8    {
     9        console.log(error);
     10    }
    1111
    12 var options = { audio: false, video: true};
    13 navigator.webkitGetUserMedia(options, gotUserMedia, userMediaError);
     12    var constraints = { audio: false, video: true};
     13    navigator.mediaDevices.getUserMedia(constraints)
     14        .then(gotUserMedia).
     15        catch(userMediaError);
    1416</script>
Note: See TracChangeset for help on using the changeset viewer.