Changeset 83287 in webkit


Ignore:
Timestamp:
Apr 8, 2011 5:09:05 AM (13 years ago)
Author:
steveblock@google.com
Message:

2011-04-08 Leandro Gracia Gil <leandrogracia@chromium.org>

Reviewed by Steve Block.

Media Stream API: add the getUserMedia method and the Javascript bindings.
https://bugs.webkit.org/show_bug.cgi?id=56586

Test the Javascript behaviour of the getUserMedia method with different types of arguments.
Current specification: http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#video-conferencing-and-peer-to-peer-communication

  • fast/dom/MediaStream/argument-types-expected.txt: Added.
  • fast/dom/MediaStream/argument-types.html: Added.
  • fast/dom/MediaStream/enabled-expected.txt: Added.
  • fast/dom/MediaStream/enabled.html: Added.
  • fast/dom/MediaStream/no-interface-object-expected.txt: Added.
  • fast/dom/MediaStream/no-interface-object.html: Added.
  • fast/dom/MediaStream/script-tests/argument-types.js: Added. (shouldNotThrow): (test): (emptyFunction): (): (ObjectThrowingException.prototype.valueOf): (ObjectThrowingException.prototype.toString):
  • fast/dom/MediaStream/script-tests/enabled.js: Added. (hasGetUserMediaProperty):
  • fast/dom/MediaStream/script-tests/no-interface-object.js: Added. (test):

2011-04-08 Leandro Gracia Gil <leandrogracia@chromium.org>

Reviewed by Steve Block.

Media Stream API: add the getUserMedia method and the Javascript bindings.
https://bugs.webkit.org/show_bug.cgi?id=56586

Add the getUserMedia method to the navigator and its new Javascript types.
Current specification: http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#video-conferencing-and-peer-to-peer-communication

Tests: fast/dom/MediaStream/argument-types.html

fast/dom/MediaStream/enabled.html
fast/dom/MediaStream/no-interface-object.html

  • Android.derived.jscbindings.mk:
  • Android.derived.v8bindings.mk:
  • Android.v8bindings.mk:
  • CMakeLists.txt:
  • CodeGenerators.pri:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • GNUmakefile.list.am:
  • WebCore.gypi:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSNavigatorCustom.cpp: (WebCore::JSNavigator::webkitGetUserMedia):
  • bindings/v8/custom/V8NavigatorCustom.cpp: Added. (WebCore::V8Navigator::webkitGetUserMediaCallback):
  • page/Navigator.cpp: (WebCore::Navigator::webkitGetUserMedia):
  • page/Navigator.h:
  • page/Navigator.idl:
  • page/NavigatorUserMediaError.h: Added. (WebCore::NavigatorUserMediaError::NavigatorUserMediaError): (WebCore::NavigatorUserMediaError::~NavigatorUserMediaError): (WebCore::NavigatorUserMediaError::code):
  • page/NavigatorUserMediaError.idl: Added.
  • page/NavigatorUserMediaErrorCallback.h: Added. (WebCore::NavigatorUserMediaErrorCallback::~NavigatorUserMediaErrorCallback):
  • page/NavigatorUserMediaErrorCallback.idl: Added.
  • page/NavigatorUserMediaSuccessCallback.h: Added. (WebCore::NavigatorUserMediaSuccessCallback::~NavigatorUserMediaSuccessCallback):
  • page/NavigatorUserMediaSuccessCallback.idl: Added.
Location:
trunk
Files:
18 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r83286 r83287  
     12011-04-08  Leandro Gracia Gil  <leandrogracia@chromium.org>
     2
     3        Reviewed by Steve Block.
     4
     5        Media Stream API: add the getUserMedia method and the Javascript bindings.
     6        https://bugs.webkit.org/show_bug.cgi?id=56586
     7
     8        Test the Javascript behaviour of the getUserMedia method with different types of arguments.
     9        Current specification: http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#video-conferencing-and-peer-to-peer-communication
     10
     11        * fast/dom/MediaStream/argument-types-expected.txt: Added.
     12        * fast/dom/MediaStream/argument-types.html: Added.
     13        * fast/dom/MediaStream/enabled-expected.txt: Added.
     14        * fast/dom/MediaStream/enabled.html: Added.
     15        * fast/dom/MediaStream/no-interface-object-expected.txt: Added.
     16        * fast/dom/MediaStream/no-interface-object.html: Added.
     17        * fast/dom/MediaStream/script-tests/argument-types.js: Added.
     18        (shouldNotThrow):
     19        (test):
     20        (emptyFunction):
     21        ():
     22        (ObjectThrowingException.prototype.valueOf):
     23        (ObjectThrowingException.prototype.toString):
     24        * fast/dom/MediaStream/script-tests/enabled.js: Added.
     25        (hasGetUserMediaProperty):
     26        * fast/dom/MediaStream/script-tests/no-interface-object.js: Added.
     27        (test):
     28
    1292011-04-08  Mikhail Naganov  <mnaganov@chromium.org>
    230
  • trunk/Source/WebCore/Android.derived.jscbindings.mk

    r80846 r83287  
    297297    $(intermediates)/page/JSLocation.h \
    298298    $(intermediates)/page/JSNavigator.h \
     299    $(intermediates)/page/JSNavigatorUserMediaError.h \
     300    $(intermediates)/page/JSNavigatorUserMediaErrorCallback.h \
     301    $(intermediates)/page/JSNavigatorUserMediaSuccessCallback.h \
    299302    $(intermediates)/page/JSPositionError.h \
    300303    $(intermediates)/page/JSScreen.h \
  • trunk/Source/WebCore/Android.derived.v8bindings.mk

    r80846 r83287  
    278278    $(intermediates)/bindings/V8Location.h \
    279279    $(intermediates)/bindings/V8Navigator.h \
     280    $(intermediates)/bindings/V8NavigatorUserMediaError.h \
     281    $(intermediates)/bindings/V8NavigatorUserMediaErrorCallback.h \
     282    $(intermediates)/bindings/V8NavigatorUserMediaSuccessCallback.h \
    280283    $(intermediates)/bindings/V8PositionError.h \
    281284    $(intermediates)/bindings/V8Screen.h \
  • trunk/Source/WebCore/Android.v8bindings.mk

    r82950 r83287  
    142142        bindings/v8/custom/V8MessagePortCustom.cpp \
    143143        bindings/v8/custom/V8MessageEventCustom.cpp \
     144        bindings/v8/custom/V8NavigatorCustom.cpp \
    144145        bindings/v8/custom/V8NamedNodeMapCustom.cpp \
    145146        bindings/v8/custom/V8NamedNodesCollection.cpp \
  • trunk/Source/WebCore/CMakeLists.txt

    r83256 r83287  
    331331    page/MemoryInfo.idl
    332332    page/Navigator.idl
     333    page/NavigatorUserMediaErrorCallback.idl
     334    page/NavigatorUserMediaSuccessCallback.idl
    333335    page/Performance.idl
    334336    page/PerformanceNavigation.idl
     
    19471949ENDIF ()
    19481950
     1951IF (ENABLE_MEDIA_STREAM)
     1952    LIST(APPEND WebCore_SOURCES
     1953        bindings/js/JSNavigatorCustom.cpp
     1954    )
     1955
     1956    LIST(APPEND WebCore_IDL_FILES
     1957        page/NavigatorUserMediaError.idl
     1958    )
     1959ENDIF ()
     1960
    19491961
    19501962
  • trunk/Source/WebCore/ChangeLog

    r83286 r83287  
     12011-04-08  Leandro Gracia Gil  <leandrogracia@chromium.org>
     2
     3        Reviewed by Steve Block.
     4
     5        Media Stream API: add the getUserMedia method and the Javascript bindings.
     6        https://bugs.webkit.org/show_bug.cgi?id=56586
     7
     8        Add the getUserMedia method to the navigator and its new Javascript types.
     9        Current specification: http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#video-conferencing-and-peer-to-peer-communication
     10
     11        Tests: fast/dom/MediaStream/argument-types.html
     12               fast/dom/MediaStream/enabled.html
     13               fast/dom/MediaStream/no-interface-object.html
     14
     15        * Android.derived.jscbindings.mk:
     16        * Android.derived.v8bindings.mk:
     17        * Android.v8bindings.mk:
     18        * CMakeLists.txt:
     19        * CodeGenerators.pri:
     20        * DerivedSources.cpp:
     21        * DerivedSources.make:
     22        * GNUmakefile.list.am:
     23        * WebCore.gypi:
     24        * WebCore.pro:
     25        * WebCore.vcproj/WebCore.vcproj:
     26        * WebCore.xcodeproj/project.pbxproj:
     27        * bindings/js/JSNavigatorCustom.cpp:
     28        (WebCore::JSNavigator::webkitGetUserMedia):
     29        * bindings/v8/custom/V8NavigatorCustom.cpp: Added.
     30        (WebCore::V8Navigator::webkitGetUserMediaCallback):
     31        * page/Navigator.cpp:
     32        (WebCore::Navigator::webkitGetUserMedia):
     33        * page/Navigator.h:
     34        * page/Navigator.idl:
     35        * page/NavigatorUserMediaError.h: Added.
     36        (WebCore::NavigatorUserMediaError::NavigatorUserMediaError):
     37        (WebCore::NavigatorUserMediaError::~NavigatorUserMediaError):
     38        (WebCore::NavigatorUserMediaError::code):
     39        * page/NavigatorUserMediaError.idl: Added.
     40        * page/NavigatorUserMediaErrorCallback.h: Added.
     41        (WebCore::NavigatorUserMediaErrorCallback::~NavigatorUserMediaErrorCallback):
     42        * page/NavigatorUserMediaErrorCallback.idl: Added.
     43        * page/NavigatorUserMediaSuccessCallback.h: Added.
     44        (WebCore::NavigatorUserMediaSuccessCallback::~NavigatorUserMediaSuccessCallback):
     45        * page/NavigatorUserMediaSuccessCallback.idl: Added.
     46
    1472011-04-08  Mikhail Naganov  <mnaganov@chromium.org>
    248
  • trunk/Source/WebCore/CodeGenerators.pri

    r83051 r83287  
    326326    page/MemoryInfo.idl \
    327327    page/Navigator.idl \
     328    page/NavigatorUserMediaError.idl \
     329    page/NavigatorUserMediaErrorCallback.idl \
     330    page/NavigatorUserMediaSuccessCallback.idl \
    328331    page/Performance.idl \
    329332    page/PerformanceNavigation.idl \
  • trunk/Source/WebCore/DerivedSources.cpp

    r80846 r83287  
    246246#include "JSNamedNodeMap.cpp"
    247247#include "JSNavigator.cpp"
     248#include "JSNavigatorUserMediaError.cpp"
     249#include "JSNavigatorUserMediaErrorCallback.cpp"
     250#include "JSNavigatorUserMediaSuccessCallback.cpp"
    248251#include "JSNode.cpp"
    249252#include "JSNodeFilter.cpp"
  • trunk/Source/WebCore/DerivedSources.make

    r83223 r83287  
    309309    NamedNodeMap \
    310310    Navigator \
     311    NavigatorUserMediaError \
     312    NavigatorUserMediaErrorCallback \
     313    NavigatorUserMediaSuccessCallback \
    311314    Node \
    312315    NodeFilter \
  • trunk/Source/WebCore/GNUmakefile.list.am

    r83263 r83287  
    380380        DerivedSources/WebCore/JSNavigator.cpp \
    381381        DerivedSources/WebCore/JSNavigator.h \
     382        DerivedSources/WebCore/JSNavigatorUserMediaError.cpp \
     383        DerivedSources/WebCore/JSNavigatorUserMediaError.h \
     384        DerivedSources/WebCore/JSNavigatorUserMediaErrorCallback.cpp \
     385        DerivedSources/WebCore/JSNavigatorUserMediaErrorCallback.h \
     386        DerivedSources/WebCore/JSNavigatorUserMediaSuccessCallback.cpp \
     387        DerivedSources/WebCore/JSNavigatorUserMediaSuccessCallback.h \
    382388        DerivedSources/WebCore/JSNode.cpp \
    383389        DerivedSources/WebCore/JSNodeFilter.cpp \
     
    22062212        Source/WebCore/page/NavigatorBase.cpp \
    22072213        Source/WebCore/page/NavigatorBase.h \
     2214        Source/WebCore/page/NavigatorUserMediaError.h \
     2215        Source/WebCore/page/NavigatorUserMediaErrorCallback.h \
     2216        Source/WebCore/page/NavigatorUserMediaSuccessCallback.h \
    22082217        Source/WebCore/page/OriginAccessEntry.cpp \
    22092218        Source/WebCore/page/OriginAccessEntry.h \
  • trunk/Source/WebCore/WebCore.gypi

    r83256 r83287  
    13251325            'page/MemoryInfo.idl',
    13261326            'page/Navigator.idl',
     1327            'page/NavigatorUserMediaError.idl',
     1328            'page/NavigatorUserMediaErrorCallback.idl',
     1329            'page/NavigatorUserMediaSuccessCallback.idl',
    13271330            'page/Performance.idl',
    13281331            'page/PerformanceNavigation.idl',
     
    21262129            'bindings/v8/custom/V8NamedNodesCollection.cpp',
    21272130            'bindings/v8/custom/V8NamedNodesCollection.h',
     2131            'bindings/v8/custom/V8NavigatorCustom.cpp',
    21282132            'bindings/v8/custom/V8NodeCustom.cpp',
    21292133            'bindings/v8/custom/V8NodeListCustom.cpp',
     
    34103414            'page/NavigatorBase.cpp',
    34113415            'page/NavigatorBase.h',
     3416            'page/NavigatorUserMediaError.h',
     3417            'page/NavigatorUserMediaErrorCallback.h',
     3418            'page/NavigatorUserMediaSuccessCallback.h',
    34123419            'page/OriginAccessEntry.cpp',
    34133420            'page/OriginAccessEntry.h',
  • trunk/Source/WebCore/WebCore.pro

    r83256 r83287  
    31233123}
    31243124
     3125contains(DEFINES, ENABLE_MEDIA_STREAM=1) {
     3126    HEADERS += \
     3127        page/NavigatorUserMediaError.h \
     3128        page/NavigatorUserMediaErrorCallback.h \
     3129        page/NavigatorUserMediaSuccessCallback.h
     3130
     3131    v8 {
     3132        SOURCES += \
     3133            bindings/v8/custom/V8NavigatorCustom.cpp
     3134
     3135    }
     3136}
     3137
    31253138contains(DEFINES, ENABLE_SVG=1) {
    31263139    !v8 {
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r83256 r83287  
    1187911879                        </File>
    1188011880                        <File
     11881                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSNavigatorUserMediaError.cpp"
     11882                                >
     11883                                <FileConfiguration
     11884                                        Name="Debug|Win32"
     11885                                        ExcludedFromBuild="true"
     11886                                        >
     11887                                        <Tool
     11888                                                Name="VCCLCompilerTool"
     11889                                        />
     11890                                </FileConfiguration>
     11891                                <FileConfiguration
     11892                                        Name="Release|Win32"
     11893                                        ExcludedFromBuild="true"
     11894                                        >
     11895                                        <Tool
     11896                                                Name="VCCLCompilerTool"
     11897                                        />
     11898                                </FileConfiguration>
     11899                                <FileConfiguration
     11900                                        Name="Debug_Cairo_CFLite|Win32"
     11901                                        ExcludedFromBuild="true"
     11902                                        >
     11903                                        <Tool
     11904                                                Name="VCCLCompilerTool"
     11905                                        />
     11906                                </FileConfiguration>
     11907                                <FileConfiguration
     11908                                        Name="Release_Cairo_CFLite|Win32"
     11909                                        ExcludedFromBuild="true"
     11910                                        >
     11911                                        <Tool
     11912                                                Name="VCCLCompilerTool"
     11913                                        />
     11914                                </FileConfiguration>
     11915                                <FileConfiguration
     11916                                        Name="Debug_All|Win32"
     11917                                        ExcludedFromBuild="true"
     11918                                        >
     11919                                        <Tool
     11920                                                Name="VCCLCompilerTool"
     11921                                        />
     11922                                </FileConfiguration>
     11923                                <FileConfiguration
     11924                                        Name="Production|Win32"
     11925                                        ExcludedFromBuild="true"
     11926                                        >
     11927                                        <Tool
     11928                                                Name="VCCLCompilerTool"
     11929                                        />
     11930                                </FileConfiguration>
     11931                        </File>
     11932                        <File
     11933                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSNavigatorUserMediaError.h"
     11934                                >
     11935                        </File>
     11936                        <File
     11937                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSNavigatorUserMediaErrorCallback.cpp"
     11938                                >
     11939                                <FileConfiguration
     11940                                        Name="Debug|Win32"
     11941                                        ExcludedFromBuild="true"
     11942                                        >
     11943                                        <Tool
     11944                                                Name="VCCLCompilerTool"
     11945                                        />
     11946                                </FileConfiguration>
     11947                                <FileConfiguration
     11948                                        Name="Release|Win32"
     11949                                        ExcludedFromBuild="true"
     11950                                        >
     11951                                        <Tool
     11952                                                Name="VCCLCompilerTool"
     11953                                        />
     11954                                </FileConfiguration>
     11955                                <FileConfiguration
     11956                                        Name="Debug_Cairo_CFLite|Win32"
     11957                                        ExcludedFromBuild="true"
     11958                                        >
     11959                                        <Tool
     11960                                                Name="VCCLCompilerTool"
     11961                                        />
     11962                                </FileConfiguration>
     11963                                <FileConfiguration
     11964                                        Name="Release_Cairo_CFLite|Win32"
     11965                                        ExcludedFromBuild="true"
     11966                                        >
     11967                                        <Tool
     11968                                                Name="VCCLCompilerTool"
     11969                                        />
     11970                                </FileConfiguration>
     11971                                <FileConfiguration
     11972                                        Name="Debug_All|Win32"
     11973                                        ExcludedFromBuild="true"
     11974                                        >
     11975                                        <Tool
     11976                                                Name="VCCLCompilerTool"
     11977                                        />
     11978                                </FileConfiguration>
     11979                                <FileConfiguration
     11980                                        Name="Production|Win32"
     11981                                        ExcludedFromBuild="true"
     11982                                        >
     11983                                        <Tool
     11984                                                Name="VCCLCompilerTool"
     11985                                        />
     11986                                </FileConfiguration>
     11987                        </File>
     11988                        <File
     11989                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSNavigatorUserMediaErrorCallback.h"
     11990                                >
     11991                        </File>
     11992                        <File
     11993                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSNavigatorUserMediaSuccessCallback.cpp"
     11994                                >
     11995                                <FileConfiguration
     11996                                        Name="Debug|Win32"
     11997                                        ExcludedFromBuild="true"
     11998                                        >
     11999                                        <Tool
     12000                                                Name="VCCLCompilerTool"
     12001                                        />
     12002                                </FileConfiguration>
     12003                                <FileConfiguration
     12004                                        Name="Release|Win32"
     12005                                        ExcludedFromBuild="true"
     12006                                        >
     12007                                        <Tool
     12008                                                Name="VCCLCompilerTool"
     12009                                        />
     12010                                </FileConfiguration>
     12011                                <FileConfiguration
     12012                                        Name="Debug_Cairo_CFLite|Win32"
     12013                                        ExcludedFromBuild="true"
     12014                                        >
     12015                                        <Tool
     12016                                                Name="VCCLCompilerTool"
     12017                                        />
     12018                                </FileConfiguration>
     12019                                <FileConfiguration
     12020                                        Name="Release_Cairo_CFLite|Win32"
     12021                                        ExcludedFromBuild="true"
     12022                                        >
     12023                                        <Tool
     12024                                                Name="VCCLCompilerTool"
     12025                                        />
     12026                                </FileConfiguration>
     12027                                <FileConfiguration
     12028                                        Name="Debug_All|Win32"
     12029                                        ExcludedFromBuild="true"
     12030                                        >
     12031                                        <Tool
     12032                                                Name="VCCLCompilerTool"
     12033                                        />
     12034                                </FileConfiguration>
     12035                                <FileConfiguration
     12036                                        Name="Production|Win32"
     12037                                        ExcludedFromBuild="true"
     12038                                        >
     12039                                        <Tool
     12040                                                Name="VCCLCompilerTool"
     12041                                        />
     12042                                </FileConfiguration>
     12043                        </File>
     12044                        <File
     12045                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSNavigatorUserMediaSuccessCallback.h"
     12046                                >
     12047                        </File>
     12048                        <File
    1188112049                                RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSNode.cpp"
    1188212050                                >
     
    2488025048                        <File
    2488125049                                RelativePath="..\page\NavigatorBase.h"
     25050                                >
     25051                        </File>
     25052                        <File
     25053                                RelativePath="..\page\NavigatorUserMediaError.h"
     25054                                >
     25055                        </File>
     25056                        <File
     25057                                RelativePath="..\page\NavigatorUserMediaErrorCallback.h"
     25058                                >
     25059                        </File>
     25060                        <File
     25061                                RelativePath="..\page\NavigatorUserMediaSuccessCallback.h"
    2488225062                                >
    2488325063                        </File>
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r83284 r83287  
    41024102                B1827493134CA4C100B98C2D /* CallbackFunction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B1827492134CA4C100B98C2D /* CallbackFunction.cpp */; };
    41034103                B1D5ECB5134B58DA0087C78F /* CallbackFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = B1D5ECB4134B58DA0087C78F /* CallbackFunction.h */; };
     4104                B1E54599134629C10092A545 /* NavigatorUserMediaError.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E5458D134629C10092A545 /* NavigatorUserMediaError.h */; };
     4105                B1E5459B134629C10092A545 /* NavigatorUserMediaErrorCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E5458F134629C10092A545 /* NavigatorUserMediaErrorCallback.h */; };
     4106                B1E5459D134629C10092A545 /* NavigatorUserMediaSuccessCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E54591134629C10092A545 /* NavigatorUserMediaSuccessCallback.h */; };
     4107                B1E545DF13462B0B0092A545 /* JSNavigatorUserMediaError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B1E545D113462B0B0092A545 /* JSNavigatorUserMediaError.cpp */; };
     4108                B1E545E013462B0B0092A545 /* JSNavigatorUserMediaError.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E545D213462B0B0092A545 /* JSNavigatorUserMediaError.h */; };
     4109                B1E545E113462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B1E545D313462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.cpp */; };
     4110                B1E545E213462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E545D413462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.h */; };
     4111                B1E545E313462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B1E545D513462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.cpp */; };
     4112                B1E545E413462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E545D613462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.h */; };
    41044113                B20111070AB7740500DB0E68 /* JSSVGAElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B20111050AB7740500DB0E68 /* JSSVGAElement.cpp */; };
    41054114                B20111080AB7740500DB0E68 /* JSSVGAElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B20111060AB7740500DB0E68 /* JSSVGAElement.h */; };
     
    1038410393                B1827492134CA4C100B98C2D /* CallbackFunction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CallbackFunction.cpp; sourceTree = "<group>"; };
    1038510394                B1D5ECB4134B58DA0087C78F /* CallbackFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallbackFunction.h; sourceTree = "<group>"; };
     10395                B1E5458D134629C10092A545 /* NavigatorUserMediaError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigatorUserMediaError.h; sourceTree = "<group>"; };
     10396                B1E5458E134629C10092A545 /* NavigatorUserMediaError.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NavigatorUserMediaError.idl; sourceTree = "<group>"; };
     10397                B1E5458F134629C10092A545 /* NavigatorUserMediaErrorCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigatorUserMediaErrorCallback.h; sourceTree = "<group>"; };
     10398                B1E54590134629C10092A545 /* NavigatorUserMediaErrorCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NavigatorUserMediaErrorCallback.idl; sourceTree = "<group>"; };
     10399                B1E54591134629C10092A545 /* NavigatorUserMediaSuccessCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigatorUserMediaSuccessCallback.h; sourceTree = "<group>"; };
     10400                B1E54592134629C10092A545 /* NavigatorUserMediaSuccessCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NavigatorUserMediaSuccessCallback.idl; sourceTree = "<group>"; };
     10401                B1E545D113462B0B0092A545 /* JSNavigatorUserMediaError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNavigatorUserMediaError.cpp; sourceTree = "<group>"; };
     10402                B1E545D213462B0B0092A545 /* JSNavigatorUserMediaError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNavigatorUserMediaError.h; sourceTree = "<group>"; };
     10403                B1E545D313462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNavigatorUserMediaErrorCallback.cpp; sourceTree = "<group>"; };
     10404                B1E545D413462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNavigatorUserMediaErrorCallback.h; sourceTree = "<group>"; };
     10405                B1E545D513462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNavigatorUserMediaSuccessCallback.cpp; sourceTree = "<group>"; };
     10406                B1E545D613462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNavigatorUserMediaSuccessCallback.h; sourceTree = "<group>"; };
    1038610407                B20111050AB7740500DB0E68 /* JSSVGAElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGAElement.cpp; sourceTree = "<group>"; };
    1038710408                B20111060AB7740500DB0E68 /* JSSVGAElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSSVGAElement.h; sourceTree = "<group>"; };
     
    1428114302                                E12719C90EEEC21300F61213 /* NavigatorBase.cpp */,
    1428214303                                E12719C60EEEC16800F61213 /* NavigatorBase.h */,
     14304                                B1E5458D134629C10092A545 /* NavigatorUserMediaError.h */,
     14305                                B1E5458E134629C10092A545 /* NavigatorUserMediaError.idl */,
     14306                                B1E5458F134629C10092A545 /* NavigatorUserMediaErrorCallback.h */,
     14307                                B1E54590134629C10092A545 /* NavigatorUserMediaErrorCallback.idl */,
     14308                                B1E54591134629C10092A545 /* NavigatorUserMediaSuccessCallback.h */,
     14309                                B1E54592134629C10092A545 /* NavigatorUserMediaSuccessCallback.idl */,
    1428314310                                00146288103CD1DE000B20DB /* OriginAccessEntry.cpp */,
    1428414311                                00146289103CD1DE000B20DB /* OriginAccessEntry.h */,
     
    1835418381                                A9D247F50D757E3300FDF959 /* JSNavigator.cpp */,
    1835518382                                A9D247F60D757E3300FDF959 /* JSNavigator.h */,
     18383                                B1E545D113462B0B0092A545 /* JSNavigatorUserMediaError.cpp */,
     18384                                B1E545D213462B0B0092A545 /* JSNavigatorUserMediaError.h */,
     18385                                B1E545D313462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.cpp */,
     18386                                B1E545D413462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.h */,
     18387                                B1E545D513462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.cpp */,
     18388                                B1E545D613462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.h */,
    1835618389                                8A9A587211E84C81008ACFD1 /* JSPerformance.cpp */,
    1835718390                                8A9A587311E84C81008ACFD1 /* JSPerformance.h */,
     
    2285322886                                E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
    2285422887                                977E2E0F12F0FC9C00C13379 /* XSSFilter.h in Headers */,
     22888                                B1E54599134629C10092A545 /* NavigatorUserMediaError.h in Headers */,
     22889                                B1E5459B134629C10092A545 /* NavigatorUserMediaErrorCallback.h in Headers */,
     22890                                B1E5459D134629C10092A545 /* NavigatorUserMediaSuccessCallback.h in Headers */,
     22891                                B1E545E013462B0B0092A545 /* JSNavigatorUserMediaError.h in Headers */,
     22892                                B1E545E213462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.h in Headers */,
     22893                                B1E545E413462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.h in Headers */,
    2285522894                        );
    2285622895                        runOnlyForDeploymentPostprocessing = 0;
     
    2554725586                                E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
    2554825587                                977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */,
     25588                                B1E545DF13462B0B0092A545 /* JSNavigatorUserMediaError.cpp in Sources */,
     25589                                B1E545E113462B0B0092A545 /* JSNavigatorUserMediaErrorCallback.cpp in Sources */,
     25590                                B1E545E313462B0B0092A545 /* JSNavigatorUserMediaSuccessCallback.cpp in Sources */,
    2554925591                        );
    2555025592                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/bindings/js/JSNavigatorCustom.cpp

    r47022 r83287  
    2424#include "JSNavigator.h"
    2525
     26#include "CallbackFunction.h"
     27#include "JSNavigatorUserMediaErrorCallback.h"
     28#include "JSNavigatorUserMediaSuccessCallback.h"
    2629#include "Navigator.h"
    2730
     
    3942}
    4043
     44#if ENABLE(MEDIA_STREAM)
     45JSValue JSNavigator::webkitGetUserMedia(ExecState* exec)
     46{
     47    // Arguments: Options, successCallback, (optional)errorCallback
     48
     49    String options = ustringToString(exec->argument(0).toString(exec));
     50    if (exec->hadException())
     51        return jsUndefined();
     52
     53    RefPtr<NavigatorUserMediaSuccessCallback> successCallback = createFunctionOnlyCallback<JSNavigatorUserMediaSuccessCallback>(exec, static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject()), exec->argument(1));
     54    if (exec->hadException())
     55        return jsUndefined();
     56
     57    RefPtr<NavigatorUserMediaErrorCallback> errorCallback = createFunctionOnlyCallback<JSNavigatorUserMediaErrorCallback>(exec, static_cast<JSDOMGlobalObject*>(exec->lexicalGlobalObject()), exec->argument(2), CallbackAllowUndefined);
     58    if (exec->hadException())
     59        return jsUndefined();
     60
     61    m_impl->webkitGetUserMedia(options, successCallback.release(), errorCallback.release());
     62    return jsUndefined();
    4163}
     64#endif // ENABLE(MEDIA_STREAM)
     65
     66}
  • trunk/Source/WebCore/page/Navigator.cpp

    r81018 r83287  
    3535#include "KURL.h"
    3636#include "Language.h"
     37#include "NavigatorUserMediaErrorCallback.h"
     38#include "NavigatorUserMediaSuccessCallback.h"
    3739#include "Page.h"
    3840#include "PageGroup.h"
     
    243245#endif
    244246
     247#if ENABLE(MEDIA_STREAM)
     248void Navigator::webkitGetUserMedia(const String& options,
     249                                   PassRefPtr<NavigatorUserMediaSuccessCallback> successCallback,
     250                                   PassRefPtr<NavigatorUserMediaErrorCallback> errorCallback)
     251{
     252    // FIXME: implement a call to the media stream context when available.
     253}
     254#endif
     255
    245256} // namespace WebCore
  • trunk/Source/WebCore/page/Navigator.h

    r81018 r83287  
    3333class Frame;
    3434class Geolocation;
     35class NavigatorUserMediaErrorCallback;
     36class NavigatorUserMediaSuccessCallback;
    3537class PluginData;
    3638
     
    6870#endif
    6971
     72#if ENABLE(MEDIA_STREAM)
     73    virtual void webkitGetUserMedia(const String& options, PassRefPtr<NavigatorUserMediaSuccessCallback>,
     74                                    PassRefPtr<NavigatorUserMediaErrorCallback> = 0);
     75#endif
     76
    7077private:
    7178    Navigator(Frame*);
  • trunk/Source/WebCore/page/Navigator.idl

    r77607 r83287  
    3838        readonly attribute boolean cookieEnabled;
    3939        boolean javaEnabled();
    40        
     40
    4141        readonly attribute boolean onLine;
    4242
     
    5353            raises(DomException);
    5454#endif
     55
     56#if defined(ENABLE_MEDIA_STREAM) && ENABLE_MEDIA_STREAM
     57        [Custom, EnabledAtRuntime] void webkitGetUserMedia(in DOMString options,
     58                                                           in [Callback=FunctionOnly] NavigatorUserMediaSuccessCallback successCallback,
     59                                                           in [Callback=FunctionOnly, Optional] NavigatorUserMediaErrorCallback errorCallback);
     60#endif
    5561    };
    5662
Note: See TracChangeset for help on using the changeset viewer.