Changeset 156108 in webkit
- Timestamp:
- Sep 19, 2013, 12:06:54 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r156107 r156108 1 2013-09-19 Zoltan Horvath <zoltan@webkit.org> 2 3 [CSS Shapes] Fix starting html tag and doctype for shape-inside floats tests 4 https://bugs.webkit.org/show_bug.cgi?id=121621 5 6 Reviewed by Andreas Kling. 7 8 * fast/shapes/shape-inside/shape-inside-left-float-in-lower-left-triangle-inline-content-expected.html: 9 * fast/shapes/shape-inside/shape-inside-left-float-in-lower-right-triangle-inline-content-expected.html: 10 * fast/shapes/shape-inside/shape-inside-left-float-in-lower-right-triangle-inline-content.html: 11 * fast/shapes/shape-inside/shape-inside-left-float-in-upper-left-triangle-inline-content-expected.html: 12 * fast/shapes/shape-inside/shape-inside-left-float-in-upper-left-triangle-inline-content.html: 13 * fast/shapes/shape-inside/shape-inside-left-float-in-upper-right-triangle-inline-content-expected.html: 14 * fast/shapes/shape-inside/shape-inside-left-float-in-upper-right-triangle-inline-content.html: 1 2013-09-19 Eric Carlson <eric.carlson@apple.com> 2 3 MediaStream API: update NavigatorUserMediaError object to match spec 4 https://bugs.webkit.org/show_bug.cgi?id=121584 5 6 Reviewed by Dean Jackson. 7 8 * fast/mediastream/getusermedia-expected.txt: 9 * fast/mediastream/getusermedia.html: 15 10 16 11 2013-09-19 Bem Jones-Bey <bjonesbe@adobe.com> -
trunk/LayoutTests/fast/mediastream/getusermedia-expected.txt
r139611 r156108 23 23 PASS navigator.webkitGetUserMedia({audio:{mandatory:{'valid_but_unsupported_1':0}, optional:[]}, video:true}, gotStreamInError, error1); did not throw exception. 24 24 PASS Error callback called. 25 PASS errorArg.name is "ConstraintNotSatisfiedError" 26 PASS errorArg.constraintName is "valid_but_unsupported_1" 25 27 PASS navigator.webkitGetUserMedia({audio:{mandatory:{'valid_and_supported_1':1}, optional:[{'valid_but_unsupported_1':0}]}, video:true}, gotStream5, error); did not throw exception. 26 28 PASS Stream generated. -
trunk/LayoutTests/fast/mediastream/getusermedia.html
r155410 r156108 11 11 12 12 var stream; 13 var errorArg; 13 14 14 15 function error() { … … 30 31 } 31 32 32 function error1() { 33 function error1(e) { 34 errorArg = e; 33 35 testPassed('Error callback called.'); 36 shouldBeEqualToString('errorArg.name', 'ConstraintNotSatisfiedError'); 37 shouldBeEqualToString('errorArg.constraintName', 'valid_but_unsupported_1'); 34 38 35 39 shouldNotThrow("navigator.webkitGetUserMedia({audio:{mandatory:{'valid_and_supported_1':1}, optional:[{'valid_but_unsupported_1':0}]}, video:true}, gotStream5, error);"); -
trunk/Source/WebCore/CMakeLists.txt
r156102 r156108 847 847 Modules/mediastream/MediaStreamTrackSourcesRequest.cpp 848 848 Modules/mediastream/NavigatorMediaStream.cpp 849 Modules/mediastream/NavigatorUserMediaError.cpp 849 850 Modules/mediastream/RTCDTMFSender.cpp 850 851 Modules/mediastream/RTCDTMFToneChangeEvent.cpp -
trunk/Source/WebCore/ChangeLog
r156106 r156108 1 2013-09-19 Eric Carlson <eric.carlson@apple.com> 2 3 MediaStream API: update NavigatorUserMediaError object to match spec 4 https://bugs.webkit.org/show_bug.cgi?id=121584 5 6 Reviewed by Dean Jackson. 7 8 No new tests, updated getusermedia.html. 9 10 * CMakeLists.txt: Add NavigatorUserMediaError.cpp. 11 * GNUmakefile.list.am: Ditto. 12 13 * Modules/mediastream/NavigatorUserMediaError.cpp: Added. 14 * Modules/mediastream/NavigatorUserMediaError.h: Derive from DOMError, get rid of "message" attribute. 15 * Modules/mediastream/NavigatorUserMediaError.idl: Ditto. 16 17 * Modules/mediastream/UserMediaRequest.cpp: 18 (WebCore::UserMediaRequest::create): ASCIILiteral -> AtomicString. Rename constraint parameters. 19 (WebCore::UserMediaRequest::UserMediaRequest): Rename constraint parameters. 20 (WebCore::UserMediaRequest::audioConstraints): Return PassRefPtr<> instead of raw ptr. 21 (WebCore::UserMediaRequest::videoConstraints): Ditto. 22 (WebCore::UserMediaRequest::ownerDocument): Clean up style. 23 (WebCore::UserMediaRequest::succeed): 24 (WebCore::UserMediaRequest::permissionFailure): Renamed from fail. 25 (WebCore::UserMediaRequest::constraintFailure): Renamed from failConstraint. 26 (WebCore::UserMediaRequest::callSuccessHandler): New. 27 (WebCore::UserMediaRequest::callErrorHandler): New. 28 * Modules/mediastream/UserMediaRequest.h: 29 30 * WebCore.xcodeproj/project.pbxproj: Add NavigatorUserMediaError.cpp 31 32 * dom/DOMError.h: Make constructor protected. 33 34 * platform/mediastream/MediaStreamSourcesQueryClient.h: Make constraints available. 35 1 36 2013-09-19 Bem Jones-Bey <bjonesbe@adobe.com> 2 37 -
trunk/Source/WebCore/GNUmakefile.list.am
r156102 r156108 1986 1986 Source/WebCore/Modules/mediastream/NavigatorMediaStream.cpp \ 1987 1987 Source/WebCore/Modules/mediastream/NavigatorMediaStream.h \ 1988 Source/WebCore/Modules/mediastream/NavigatorUserMediaError.cpp \ 1988 1989 Source/WebCore/Modules/mediastream/NavigatorUserMediaError.h \ 1989 1990 Source/WebCore/Modules/mediastream/NavigatorUserMediaErrorCallback.h \ -
trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.h
r155579 r156108 1 1 /* 2 2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2013 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 26 27 #define NavigatorUserMediaError_h 27 28 29 #include "DOMError.h" 28 30 #include <wtf/PassRefPtr.h> 29 31 #include <wtf/RefCounted.h> … … 33 35 namespace WebCore { 34 36 35 class NavigatorUserMediaError : public RefCounted<NavigatorUserMediaError>{37 class NavigatorUserMediaError : public DOMError { 36 38 public: 37 static PassRefPtr<NavigatorUserMediaError> create(const String& name, const String& message, const String&constraintName)39 static PassRefPtr<NavigatorUserMediaError> create(const String& name, const String& constraintName) 38 40 { 39 return adoptRef(new NavigatorUserMediaError(name, message,constraintName));41 return adoptRef(new NavigatorUserMediaError(name, constraintName)); 40 42 } 41 43 42 44 virtual ~NavigatorUserMediaError() { } 43 45 44 const String& name() const { return m_name; }45 const String& message() const { return m_message; }46 46 const String& constraintName() const { return m_constraintName; } 47 47 48 static const AtomicString& permissionDeniedErrorName(); 49 static const AtomicString& constraintNotSatisfiedErrorName(); 50 48 51 private: 49 NavigatorUserMediaError(const String& name, const String& message, const String& constraintName) 50 : m_name(name) 51 , m_message(message) 52 NavigatorUserMediaError(const String& name, const String& constraintName) 53 : DOMError(name) 52 54 , m_constraintName(constraintName) 53 55 { 54 56 } 55 57 56 String m_name;57 String m_message;58 58 String m_constraintName; 59 59 }; -
trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl
r155579 r156108 26 26 NoInterfaceObject, 27 27 Conditional=MEDIA_STREAM 28 ] interface NavigatorUserMediaError { 29 readonly attribute DOMString name; 30 readonly attribute DOMString message; 28 ] interface NavigatorUserMediaError : DOMError { 31 29 readonly attribute DOMString constraintName; 32 30 }; -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
r155881 r156108 45 45 #include "SpaceSplitString.h" 46 46 #include "UserMediaController.h" 47 #include <wtf/Functional.h> 48 #include <wtf/MainThread.h> 47 49 48 50 namespace WebCore { … … 68 70 PassRefPtr<UserMediaRequest> UserMediaRequest::create(ScriptExecutionContext* context, UserMediaController* controller, const Dictionary& options, PassRefPtr<NavigatorUserMediaSuccessCallback> successCallback, PassRefPtr<NavigatorUserMediaErrorCallback> errorCallback, ExceptionCode& ec) 69 71 { 70 RefPtr<MediaConstraintsImpl> audio = parseOptions(options, ASCIILiteral("audio"), ec); 72 ASSERT(successCallback); 73 74 RefPtr<MediaConstraintsImpl> audioConstraints = parseOptions(options, AtomicString("audio", AtomicString::ConstructFromLiteral), ec); 71 75 if (ec) 72 76 return 0; 73 77 74 RefPtr<MediaConstraintsImpl> video = parseOptions(options, ASCIILiteral("video"), ec);78 RefPtr<MediaConstraintsImpl> videoConstraints = parseOptions(options, AtomicString("video", AtomicString::ConstructFromLiteral), ec); 75 79 if (ec) 76 80 return 0; 77 81 78 if (!audio && !video)82 if (!audioConstraints && !videoConstraints) 79 83 return 0; 80 84 81 return adoptRef(new UserMediaRequest(context, controller, audio .release(), video.release(), successCallback, errorCallback));82 } 83 84 UserMediaRequest::UserMediaRequest(ScriptExecutionContext* context, UserMediaController* controller, PassRefPtr<MediaConstraintsImpl> audio , PassRefPtr<MediaConstraintsImpl> video, PassRefPtr<NavigatorUserMediaSuccessCallback> successCallback, PassRefPtr<NavigatorUserMediaErrorCallback> errorCallback)85 return adoptRef(new UserMediaRequest(context, controller, audioConstraints.release(), videoConstraints.release(), successCallback, errorCallback)); 86 } 87 88 UserMediaRequest::UserMediaRequest(ScriptExecutionContext* context, UserMediaController* controller, PassRefPtr<MediaConstraintsImpl> audioConstraints, PassRefPtr<MediaConstraintsImpl> videoConstraints, PassRefPtr<NavigatorUserMediaSuccessCallback> successCallback, PassRefPtr<NavigatorUserMediaErrorCallback> errorCallback) 85 89 : ContextDestructionObserver(context) 86 , m_audio (audio)87 , m_video (video)90 , m_audioConstraints(audioConstraints) 91 , m_videoConstraints(videoConstraints) 88 92 , m_controller(controller) 89 93 , m_successCallback(successCallback) … … 96 100 } 97 101 98 bool UserMediaRequest::audio() const 99 { 100 return m_audio; 101 } 102 103 bool UserMediaRequest::video() const 104 { 105 return m_video; 106 } 107 108 MediaConstraints* UserMediaRequest::audioConstraints() const 109 { 110 return m_audio.get(); 111 } 112 113 MediaConstraints* UserMediaRequest::videoConstraints() const 114 { 115 return m_video.get(); 102 PassRefPtr<MediaConstraints> UserMediaRequest::audioConstraints() const 103 { 104 return m_audioConstraints; 105 } 106 107 PassRefPtr<MediaConstraints> UserMediaRequest::videoConstraints() const 108 { 109 return m_videoConstraints; 116 110 } 117 111 118 112 Document* UserMediaRequest::ownerDocument() 119 113 { 120 if (m_scriptExecutionContext) {114 if (m_scriptExecutionContext) 121 115 return toDocument(m_scriptExecutionContext); 122 }123 116 124 117 return 0; … … 145 138 MediaStreamTrackVector tracks = stream->getAudioTracks(); 146 139 for (MediaStreamTrackVector::iterator iter = tracks.begin(); iter != tracks.end(); ++iter) 147 (*iter)->component()->source()->setConstraints(m_audio );140 (*iter)->component()->source()->setConstraints(m_audioConstraints); 148 141 149 142 tracks = stream->getVideoTracks(); 150 143 for (MediaStreamTrackVector::iterator iter = tracks.begin(); iter != tracks.end(); ++iter) 151 (*iter)->component()->source()->setConstraints(m_video );144 (*iter)->component()->source()->setConstraints(m_videoConstraints); 152 145 153 146 m_successCallback->handleEvent(stream.get()); 154 147 } 155 148 156 void UserMediaRequest:: fail(const String& description)149 void UserMediaRequest::permissionFailure() 157 150 { 158 151 if (!m_scriptExecutionContext) 159 152 return; 160 153 161 if (m_errorCallback) 162 m_errorCallback->handleEvent(NavigatorUserMediaError::create(ASCIILiteral("PERMISSION_DENIED"), description, String()).get()); 163 } 164 165 void UserMediaRequest::failConstraint(const String& constraintName, const String& description) 154 if (!m_errorCallback) 155 return; 156 157 RefPtr<NavigatorUserMediaError> error = NavigatorUserMediaError::create(NavigatorUserMediaError::permissionDeniedErrorName(), emptyString()); 158 callOnMainThread(bind(&UserMediaRequest::callErrorHandler, this, error.release())); 159 } 160 161 void UserMediaRequest::constraintFailure(const String& constraintName) 166 162 { 167 163 ASSERT(!constraintName.isEmpty()); … … 169 165 return; 170 166 171 if (m_errorCallback) 172 m_errorCallback->handleEvent(NavigatorUserMediaError::create(ASCIILiteral("CONSTRAINT_NOT_SATISFIED"), description, constraintName).get()); 167 if (!m_errorCallback) 168 return; 169 170 RefPtr<NavigatorUserMediaError> error = NavigatorUserMediaError::create(NavigatorUserMediaError::constraintNotSatisfiedErrorName(), constraintName); 171 callOnMainThread(bind(&UserMediaRequest::callErrorHandler, this, error.release())); 172 } 173 174 void UserMediaRequest::callSuccessHandler(PassRefPtr<MediaStream> stream) 175 { 176 ASSERT(m_successCallback); 177 178 m_successCallback->handleEvent(stream.get()); 179 } 180 181 void UserMediaRequest::callErrorHandler(PassRefPtr<NavigatorUserMediaError> error) 182 { 183 ASSERT(error); 184 185 m_errorCallback->handleEvent(error.get()); 173 186 } 174 187 -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h
r155579 r156108 41 41 #include "NavigatorUserMediaSuccessCallback.h" 42 42 #include <wtf/PassRefPtr.h> 43 #include <wtf/RefCounted.h>44 43 #include <wtf/text/WTFString.h> 45 44 … … 58 57 ~UserMediaRequest(); 59 58 60 NavigatorUserMediaSuccessCallback* successCallback() const { return m_successCallback.get(); }61 NavigatorUserMediaErrorCallback* errorCallback() const { return m_errorCallback.get(); }62 59 Document* ownerDocument(); 63 60 64 61 void start(); 65 66 62 void succeed(PassRefPtr<MediaStreamDescriptor>); 67 void fail(const String& description); 68 void failConstraint(const String& constraintName, const String& description); 69 70 MediaConstraints* audioConstraints() const; 71 MediaConstraints* videoConstraints() const; 63 void permissionFailure(); 64 void constraintFailure(const String& constraintName); 72 65 73 66 // MediaStreamSourcesQueryClient 74 virtual bool audio() const;75 virtual bool video() const;76 virtual void didCompleteQuery(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources) ;67 virtual PassRefPtr<MediaConstraints> audioConstraints() const OVERRIDE; 68 virtual PassRefPtr<MediaConstraints> videoConstraints() const OVERRIDE; 69 virtual void didCompleteQuery(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources) OVERRIDE; 77 70 78 71 // ContextDestructionObserver … … 80 73 81 74 private: 82 UserMediaRequest(ScriptExecutionContext*, UserMediaController*, PassRefPtr<MediaConstraintsImpl> audio , PassRefPtr<MediaConstraintsImpl> video, PassRefPtr<NavigatorUserMediaSuccessCallback>, PassRefPtr<NavigatorUserMediaErrorCallback>);75 UserMediaRequest(ScriptExecutionContext*, UserMediaController*, PassRefPtr<MediaConstraintsImpl> audioConstraints, PassRefPtr<MediaConstraintsImpl> videoConstraints, PassRefPtr<NavigatorUserMediaSuccessCallback>, PassRefPtr<NavigatorUserMediaErrorCallback>); 83 76 84 RefPtr<MediaConstraintsImpl> m_audio; 85 RefPtr<MediaConstraintsImpl> m_video; 77 void callSuccessHandler(PassRefPtr<MediaStream>); 78 void callErrorHandler(PassRefPtr<NavigatorUserMediaError>); 79 80 RefPtr<MediaConstraintsImpl> m_audioConstraints; 81 RefPtr<MediaConstraintsImpl> m_videoConstraints; 86 82 87 83 UserMediaController* m_controller; -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r156102 r156108 80 80 06E81ED70AB5D5E900C87837 /* LocalCurrentGraphicsContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 06E81ED60AB5D5E900C87837 /* LocalCurrentGraphicsContext.h */; }; 81 81 06E81EEC0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = 06E81EEB0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm */; }; 82 070327F817EA4AAF00CE1318 /* NavigatorUserMediaError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070327F717EA4AAF00CE1318 /* NavigatorUserMediaError.cpp */; }; 82 83 070334D31459FFAD008D8D45 /* TrackEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070334D01459FFAC008D8D45 /* TrackEvent.cpp */; }; 83 84 070334D71459FFD5008D8D45 /* TrackBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 070334D61459FFD5008D8D45 /* TrackBase.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 6443 6444 06E81ED60AB5D5E900C87837 /* LocalCurrentGraphicsContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalCurrentGraphicsContext.h; sourceTree = "<group>"; }; 6444 6445 06E81EEB0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = LocalCurrentGraphicsContext.mm; sourceTree = "<group>"; }; 6446 070327F717EA4AAF00CE1318 /* NavigatorUserMediaError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NavigatorUserMediaError.cpp; sourceTree = "<group>"; }; 6445 6447 070334D01459FFAC008D8D45 /* TrackEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TrackEvent.cpp; sourceTree = "<group>"; }; 6446 6448 070334D11459FFAC008D8D45 /* TrackEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrackEvent.h; sourceTree = "<group>"; }; … … 13328 13330 07221B5C17CEC32700848E51 /* NavigatorMediaStream.idl */, 13329 13331 07221B5D17CEC32700848E51 /* NavigatorUserMediaError.h */, 13332 070327F717EA4AAF00CE1318 /* NavigatorUserMediaError.cpp */, 13330 13333 07221B5E17CEC32700848E51 /* NavigatorUserMediaError.idl */, 13331 13334 07221B5F17CEC32700848E51 /* NavigatorUserMediaErrorCallback.h */, … … 26667 26670 A456FA2611AD4A830020B420 /* LabelsNodeList.cpp in Sources */, 26668 26671 E18772F1126E2629003DD586 /* Language.cpp in Sources */, 26672 070327F817EA4AAF00CE1318 /* NavigatorUserMediaError.cpp in Sources */, 26669 26673 9352084509BD43B900F2038D /* Language.mm in Sources */, 26670 26674 2917B5611473496C0052C9D0 /* LayerFlushScheduler.cpp in Sources */, -
trunk/Source/WebCore/dom/DOMError.h
r118226 r156108 42 42 const String& name() const { return m_name; } 43 43 44 pr ivate:44 protected: 45 45 explicit DOMError(const String& name); 46 46 47 private: 47 48 const String m_name; 48 49 }; -
trunk/Source/WebCore/platform/mediastream/MediaStreamSourcesQueryClient.h
r115810 r156108 36 36 37 37 #include "MediaStreamSource.h" 38 #include <wtf/PassRefPtr.h> 39 #include <wtf/RefCounted.h> 38 40 39 41 namespace WebCore { 42 43 class MediaConstraints; 40 44 41 45 class MediaStreamSourcesQueryClient : public RefCounted<MediaStreamSourcesQueryClient> { … … 43 47 virtual ~MediaStreamSourcesQueryClient() { } 44 48 45 virtual bool audio() const = 0;46 virtual bool video() const = 0;49 virtual PassRefPtr<MediaConstraints> audioConstraints() const = 0; 50 virtual PassRefPtr<MediaConstraints> videoConstraints() const = 0; 47 51 48 52 virtual void didCompleteQuery(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources) = 0;
Note:
See TracChangeset
for help on using the changeset viewer.