Diff
Modified: trunk/LayoutTests/ChangeLog (156107 => 156108)
--- trunk/LayoutTests/ChangeLog 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/LayoutTests/ChangeLog 2013-09-19 19:06:54 UTC (rev 156108)
@@ -1,17 +1,12 @@
-2013-09-19 Zoltan Horvath <[email protected]>
+2013-09-19 Eric Carlson <[email protected]>
- [CSS Shapes] Fix starting html tag and doctype for shape-inside floats tests
- https://bugs.webkit.org/show_bug.cgi?id=121621
+ MediaStream API: update NavigatorUserMediaError object to match spec
+ https://bugs.webkit.org/show_bug.cgi?id=121584
- Reviewed by Andreas Kling.
+ Reviewed by Dean Jackson.
- * fast/shapes/shape-inside/shape-inside-left-float-in-lower-left-triangle-inline-content-expected.html:
- * fast/shapes/shape-inside/shape-inside-left-float-in-lower-right-triangle-inline-content-expected.html:
- * fast/shapes/shape-inside/shape-inside-left-float-in-lower-right-triangle-inline-content.html:
- * fast/shapes/shape-inside/shape-inside-left-float-in-upper-left-triangle-inline-content-expected.html:
- * fast/shapes/shape-inside/shape-inside-left-float-in-upper-left-triangle-inline-content.html:
- * fast/shapes/shape-inside/shape-inside-left-float-in-upper-right-triangle-inline-content-expected.html:
- * fast/shapes/shape-inside/shape-inside-left-float-in-upper-right-triangle-inline-content.html:
+ * fast/mediastream/getusermedia-expected.txt:
+ * fast/mediastream/getusermedia.html:
2013-09-19 Bem Jones-Bey <[email protected]>
Modified: trunk/LayoutTests/fast/mediastream/getusermedia-expected.txt (156107 => 156108)
--- trunk/LayoutTests/fast/mediastream/getusermedia-expected.txt 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/LayoutTests/fast/mediastream/getusermedia-expected.txt 2013-09-19 19:06:54 UTC (rev 156108)
@@ -22,6 +22,8 @@
PASS stream.getVideoTracks().length is 1
PASS navigator.webkitGetUserMedia({audio:{mandatory:{'valid_but_unsupported_1':0}, optional:[]}, video:true}, gotStreamInError, error1); did not throw exception.
PASS Error callback called.
+PASS errorArg.name is "ConstraintNotSatisfiedError"
+PASS errorArg.constraintName is "valid_but_unsupported_1"
PASS navigator.webkitGetUserMedia({audio:{mandatory:{'valid_and_supported_1':1}, optional:[{'valid_but_unsupported_1':0}]}, video:true}, gotStream5, error); did not throw exception.
PASS Stream generated.
PASS stream.getAudioTracks().length is 1
Modified: trunk/LayoutTests/fast/mediastream/getusermedia.html (156107 => 156108)
--- trunk/LayoutTests/fast/mediastream/getusermedia.html 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/LayoutTests/fast/mediastream/getusermedia.html 2013-09-19 19:06:54 UTC (rev 156108)
@@ -10,6 +10,7 @@
description("Tests webkitGetUserMedia.");
var stream;
+var errorArg;
function error() {
testFailed('Error callback called.');
@@ -29,8 +30,11 @@
finishJSTest();
}
-function error1() {
+function error1(e) {
+ errorArg = e;
testPassed('Error callback called.');
+ shouldBeEqualToString('errorArg.name', 'ConstraintNotSatisfiedError');
+ shouldBeEqualToString('errorArg.constraintName', 'valid_but_unsupported_1');
shouldNotThrow("navigator.webkitGetUserMedia({audio:{mandatory:{'valid_and_supported_1':1}, optional:[{'valid_but_unsupported_1':0}]}, video:true}, gotStream5, error);");
}
Modified: trunk/Source/WebCore/CMakeLists.txt (156107 => 156108)
--- trunk/Source/WebCore/CMakeLists.txt 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/CMakeLists.txt 2013-09-19 19:06:54 UTC (rev 156108)
@@ -846,6 +846,7 @@
Modules/mediastream/MediaStreamTrackEvent.cpp
Modules/mediastream/MediaStreamTrackSourcesRequest.cpp
Modules/mediastream/NavigatorMediaStream.cpp
+ Modules/mediastream/NavigatorUserMediaError.cpp
Modules/mediastream/RTCDTMFSender.cpp
Modules/mediastream/RTCDTMFToneChangeEvent.cpp
Modules/mediastream/RTCDataChannel.cpp
Modified: trunk/Source/WebCore/ChangeLog (156107 => 156108)
--- trunk/Source/WebCore/ChangeLog 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/ChangeLog 2013-09-19 19:06:54 UTC (rev 156108)
@@ -1,3 +1,38 @@
+2013-09-19 Eric Carlson <[email protected]>
+
+ MediaStream API: update NavigatorUserMediaError object to match spec
+ https://bugs.webkit.org/show_bug.cgi?id=121584
+
+ Reviewed by Dean Jackson.
+
+ No new tests, updated getusermedia.html.
+
+ * CMakeLists.txt: Add NavigatorUserMediaError.cpp.
+ * GNUmakefile.list.am: Ditto.
+
+ * Modules/mediastream/NavigatorUserMediaError.cpp: Added.
+ * Modules/mediastream/NavigatorUserMediaError.h: Derive from DOMError, get rid of "message" attribute.
+ * Modules/mediastream/NavigatorUserMediaError.idl: Ditto.
+
+ * Modules/mediastream/UserMediaRequest.cpp:
+ (WebCore::UserMediaRequest::create): ASCIILiteral -> AtomicString. Rename constraint parameters.
+ (WebCore::UserMediaRequest::UserMediaRequest): Rename constraint parameters.
+ (WebCore::UserMediaRequest::audioConstraints): Return PassRefPtr<> instead of raw ptr.
+ (WebCore::UserMediaRequest::videoConstraints): Ditto.
+ (WebCore::UserMediaRequest::ownerDocument): Clean up style.
+ (WebCore::UserMediaRequest::succeed):
+ (WebCore::UserMediaRequest::permissionFailure): Renamed from fail.
+ (WebCore::UserMediaRequest::constraintFailure): Renamed from failConstraint.
+ (WebCore::UserMediaRequest::callSuccessHandler): New.
+ (WebCore::UserMediaRequest::callErrorHandler): New.
+ * Modules/mediastream/UserMediaRequest.h:
+
+ * WebCore.xcodeproj/project.pbxproj: Add NavigatorUserMediaError.cpp
+
+ * dom/DOMError.h: Make constructor protected.
+
+ * platform/mediastream/MediaStreamSourcesQueryClient.h: Make constraints available.
+
2013-09-19 Bem Jones-Bey <[email protected]>
Fix handling of top margin on float with shape-outside
Modified: trunk/Source/WebCore/GNUmakefile.list.am (156107 => 156108)
--- trunk/Source/WebCore/GNUmakefile.list.am 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/GNUmakefile.list.am 2013-09-19 19:06:54 UTC (rev 156108)
@@ -1985,6 +1985,7 @@
Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h \
Source/WebCore/Modules/mediastream/NavigatorMediaStream.cpp \
Source/WebCore/Modules/mediastream/NavigatorMediaStream.h \
+ Source/WebCore/Modules/mediastream/NavigatorUserMediaError.cpp \
Source/WebCore/Modules/mediastream/NavigatorUserMediaError.h \
Source/WebCore/Modules/mediastream/NavigatorUserMediaErrorCallback.h \
Source/WebCore/Modules/mediastream/NavigatorUserMediaSuccessCallback.h \
Added: trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.cpp (0 => 156108)
--- trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.cpp (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.cpp 2013-09-19 19:06:54 UTC (rev 156108)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(MEDIA_STREAM)
+
+#include "NavigatorUserMediaError.h"
+
+#include <wtf/NeverDestroyed.h>
+
+namespace WebCore {
+
+const AtomicString& NavigatorUserMediaError::permissionDeniedErrorName()
+{
+ static NeverDestroyed<AtomicString> permissionDenied("PermissionDeniedError", AtomicString::ConstructFromLiteral);
+ return permissionDenied;
+}
+
+const AtomicString& NavigatorUserMediaError::constraintNotSatisfiedErrorName()
+{
+ static NeverDestroyed<AtomicString> constraintNotSatisfied("ConstraintNotSatisfiedError", AtomicString::ConstructFromLiteral);
+ return constraintNotSatisfied;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
+
Modified: trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.h (156107 => 156108)
--- trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.h 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.h 2013-09-19 19:06:54 UTC (rev 156108)
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2011 Google Inc. All rights reserved.
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -25,6 +26,7 @@
#ifndef NavigatorUserMediaError_h
#define NavigatorUserMediaError_h
+#include "DOMError.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
@@ -32,29 +34,27 @@
namespace WebCore {
-class NavigatorUserMediaError : public RefCounted<NavigatorUserMediaError> {
+class NavigatorUserMediaError : public DOMError {
public:
- static PassRefPtr<NavigatorUserMediaError> create(const String& name, const String& message, const String& constraintName)
+ static PassRefPtr<NavigatorUserMediaError> create(const String& name, const String& constraintName)
{
- return adoptRef(new NavigatorUserMediaError(name, message, constraintName));
+ return adoptRef(new NavigatorUserMediaError(name, constraintName));
}
virtual ~NavigatorUserMediaError() { }
- const String& name() const { return m_name; }
- const String& message() const { return m_message; }
const String& constraintName() const { return m_constraintName; }
+ static const AtomicString& permissionDeniedErrorName();
+ static const AtomicString& constraintNotSatisfiedErrorName();
+
private:
- NavigatorUserMediaError(const String& name, const String& message, const String& constraintName)
- : m_name(name)
- , m_message(message)
+ NavigatorUserMediaError(const String& name, const String& constraintName)
+ : DOMError(name)
, m_constraintName(constraintName)
{
}
- String m_name;
- String m_message;
String m_constraintName;
};
Modified: trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl (156107 => 156108)
--- trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl 2013-09-19 19:06:54 UTC (rev 156108)
@@ -25,9 +25,7 @@
[
NoInterfaceObject,
Conditional=MEDIA_STREAM
-] interface NavigatorUserMediaError {
- readonly attribute DOMString name;
- readonly attribute DOMString message;
+] interface NavigatorUserMediaError : DOMError {
readonly attribute DOMString constraintName;
};
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (156107 => 156108)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp 2013-09-19 19:06:54 UTC (rev 156108)
@@ -44,6 +44,8 @@
#include "MediaStreamDescriptor.h"
#include "SpaceSplitString.h"
#include "UserMediaController.h"
+#include <wtf/Functional.h>
+#include <wtf/MainThread.h>
namespace WebCore {
@@ -67,24 +69,26 @@
PassRefPtr<UserMediaRequest> UserMediaRequest::create(ScriptExecutionContext* context, UserMediaController* controller, const Dictionary& options, PassRefPtr<NavigatorUserMediaSuccessCallback> successCallback, PassRefPtr<NavigatorUserMediaErrorCallback> errorCallback, ExceptionCode& ec)
{
- RefPtr<MediaConstraintsImpl> audio = parseOptions(options, ASCIILiteral("audio"), ec);
+ ASSERT(successCallback);
+
+ RefPtr<MediaConstraintsImpl> audioConstraints = parseOptions(options, AtomicString("audio", AtomicString::ConstructFromLiteral), ec);
if (ec)
return 0;
- RefPtr<MediaConstraintsImpl> video = parseOptions(options, ASCIILiteral("video"), ec);
+ RefPtr<MediaConstraintsImpl> videoConstraints = parseOptions(options, AtomicString("video", AtomicString::ConstructFromLiteral), ec);
if (ec)
return 0;
- if (!audio && !video)
+ if (!audioConstraints && !videoConstraints)
return 0;
- return adoptRef(new UserMediaRequest(context, controller, audio.release(), video.release(), successCallback, errorCallback));
+ return adoptRef(new UserMediaRequest(context, controller, audioConstraints.release(), videoConstraints.release(), successCallback, errorCallback));
}
-UserMediaRequest::UserMediaRequest(ScriptExecutionContext* context, UserMediaController* controller, PassRefPtr<MediaConstraintsImpl> audio, PassRefPtr<MediaConstraintsImpl> video, PassRefPtr<NavigatorUserMediaSuccessCallback> successCallback, PassRefPtr<NavigatorUserMediaErrorCallback> errorCallback)
+UserMediaRequest::UserMediaRequest(ScriptExecutionContext* context, UserMediaController* controller, PassRefPtr<MediaConstraintsImpl> audioConstraints, PassRefPtr<MediaConstraintsImpl> videoConstraints, PassRefPtr<NavigatorUserMediaSuccessCallback> successCallback, PassRefPtr<NavigatorUserMediaErrorCallback> errorCallback)
: ContextDestructionObserver(context)
- , m_audio(audio)
- , m_video(video)
+ , m_audioConstraints(audioConstraints)
+ , m_videoConstraints(videoConstraints)
, m_controller(controller)
, m_successCallback(successCallback)
, m_errorCallback(errorCallback)
@@ -95,31 +99,20 @@
{
}
-bool UserMediaRequest::audio() const
+PassRefPtr<MediaConstraints> UserMediaRequest::audioConstraints() const
{
- return m_audio;
+ return m_audioConstraints;
}
-bool UserMediaRequest::video() const
+PassRefPtr<MediaConstraints> UserMediaRequest::videoConstraints() const
{
- return m_video;
+ return m_videoConstraints;
}
-MediaConstraints* UserMediaRequest::audioConstraints() const
-{
- return m_audio.get();
-}
-
-MediaConstraints* UserMediaRequest::videoConstraints() const
-{
- return m_video.get();
-}
-
Document* UserMediaRequest::ownerDocument()
{
- if (m_scriptExecutionContext) {
+ if (m_scriptExecutionContext)
return toDocument(m_scriptExecutionContext);
- }
return 0;
}
@@ -144,34 +137,54 @@
MediaStreamTrackVector tracks = stream->getAudioTracks();
for (MediaStreamTrackVector::iterator iter = tracks.begin(); iter != tracks.end(); ++iter)
- (*iter)->component()->source()->setConstraints(m_audio);
+ (*iter)->component()->source()->setConstraints(m_audioConstraints);
tracks = stream->getVideoTracks();
for (MediaStreamTrackVector::iterator iter = tracks.begin(); iter != tracks.end(); ++iter)
- (*iter)->component()->source()->setConstraints(m_video);
+ (*iter)->component()->source()->setConstraints(m_videoConstraints);
m_successCallback->handleEvent(stream.get());
}
-void UserMediaRequest::fail(const String& description)
+void UserMediaRequest::permissionFailure()
{
if (!m_scriptExecutionContext)
return;
- if (m_errorCallback)
- m_errorCallback->handleEvent(NavigatorUserMediaError::create(ASCIILiteral("PERMISSION_DENIED"), description, String()).get());
+ if (!m_errorCallback)
+ return;
+
+ RefPtr<NavigatorUserMediaError> error = NavigatorUserMediaError::create(NavigatorUserMediaError::permissionDeniedErrorName(), emptyString());
+ callOnMainThread(bind(&UserMediaRequest::callErrorHandler, this, error.release()));
}
-void UserMediaRequest::failConstraint(const String& constraintName, const String& description)
+void UserMediaRequest::constraintFailure(const String& constraintName)
{
ASSERT(!constraintName.isEmpty());
if (!m_scriptExecutionContext)
return;
- if (m_errorCallback)
- m_errorCallback->handleEvent(NavigatorUserMediaError::create(ASCIILiteral("CONSTRAINT_NOT_SATISFIED"), description, constraintName).get());
+ if (!m_errorCallback)
+ return;
+
+ RefPtr<NavigatorUserMediaError> error = NavigatorUserMediaError::create(NavigatorUserMediaError::constraintNotSatisfiedErrorName(), constraintName);
+ callOnMainThread(bind(&UserMediaRequest::callErrorHandler, this, error.release()));
}
+void UserMediaRequest::callSuccessHandler(PassRefPtr<MediaStream> stream)
+{
+ ASSERT(m_successCallback);
+
+ m_successCallback->handleEvent(stream.get());
+}
+
+void UserMediaRequest::callErrorHandler(PassRefPtr<NavigatorUserMediaError> error)
+{
+ ASSERT(error);
+
+ m_errorCallback->handleEvent(error.get());
+}
+
void UserMediaRequest::contextDestroyed()
{
Ref<UserMediaRequest> protect(*this);
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h (156107 => 156108)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2013-09-19 19:06:54 UTC (rev 156108)
@@ -40,7 +40,6 @@
#include "NavigatorUserMediaErrorCallback.h"
#include "NavigatorUserMediaSuccessCallback.h"
#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
@@ -57,33 +56,30 @@
static PassRefPtr<UserMediaRequest> create(ScriptExecutionContext*, UserMediaController*, const Dictionary& options, PassRefPtr<NavigatorUserMediaSuccessCallback>, PassRefPtr<NavigatorUserMediaErrorCallback>, ExceptionCode&);
~UserMediaRequest();
- NavigatorUserMediaSuccessCallback* successCallback() const { return m_successCallback.get(); }
- NavigatorUserMediaErrorCallback* errorCallback() const { return m_errorCallback.get(); }
Document* ownerDocument();
void start();
-
void succeed(PassRefPtr<MediaStreamDescriptor>);
- void fail(const String& description);
- void failConstraint(const String& constraintName, const String& description);
+ void permissionFailure();
+ void constraintFailure(const String& constraintName);
- MediaConstraints* audioConstraints() const;
- MediaConstraints* videoConstraints() const;
-
// MediaStreamSourcesQueryClient
- virtual bool audio() const;
- virtual bool video() const;
- virtual void didCompleteQuery(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources);
+ virtual PassRefPtr<MediaConstraints> audioConstraints() const OVERRIDE;
+ virtual PassRefPtr<MediaConstraints> videoConstraints() const OVERRIDE;
+ virtual void didCompleteQuery(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources) OVERRIDE;
// ContextDestructionObserver
virtual void contextDestroyed();
private:
- UserMediaRequest(ScriptExecutionContext*, UserMediaController*, PassRefPtr<MediaConstraintsImpl> audio, PassRefPtr<MediaConstraintsImpl> video, PassRefPtr<NavigatorUserMediaSuccessCallback>, PassRefPtr<NavigatorUserMediaErrorCallback>);
+ UserMediaRequest(ScriptExecutionContext*, UserMediaController*, PassRefPtr<MediaConstraintsImpl> audioConstraints, PassRefPtr<MediaConstraintsImpl> videoConstraints, PassRefPtr<NavigatorUserMediaSuccessCallback>, PassRefPtr<NavigatorUserMediaErrorCallback>);
- RefPtr<MediaConstraintsImpl> m_audio;
- RefPtr<MediaConstraintsImpl> m_video;
+ void callSuccessHandler(PassRefPtr<MediaStream>);
+ void callErrorHandler(PassRefPtr<NavigatorUserMediaError>);
+ RefPtr<MediaConstraintsImpl> m_audioConstraints;
+ RefPtr<MediaConstraintsImpl> m_videoConstraints;
+
UserMediaController* m_controller;
RefPtr<NavigatorUserMediaSuccessCallback> m_successCallback;
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (156107 => 156108)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-09-19 19:06:54 UTC (rev 156108)
@@ -79,6 +79,7 @@
066C77310AB603FD00238CC4 /* RenderFileUploadControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 066C772F0AB603FD00238CC4 /* RenderFileUploadControl.h */; };
06E81ED70AB5D5E900C87837 /* LocalCurrentGraphicsContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 06E81ED60AB5D5E900C87837 /* LocalCurrentGraphicsContext.h */; };
06E81EEC0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = 06E81EEB0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm */; };
+ 070327F817EA4AAF00CE1318 /* NavigatorUserMediaError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070327F717EA4AAF00CE1318 /* NavigatorUserMediaError.cpp */; };
070334D31459FFAD008D8D45 /* TrackEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070334D01459FFAC008D8D45 /* TrackEvent.cpp */; };
070334D71459FFD5008D8D45 /* TrackBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 070334D61459FFD5008D8D45 /* TrackBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
070334D9145A006F008D8D45 /* TrackBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070334D8145A006F008D8D45 /* TrackBase.cpp */; };
@@ -6442,6 +6443,7 @@
066C772F0AB603FD00238CC4 /* RenderFileUploadControl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RenderFileUploadControl.h; sourceTree = "<group>"; };
06E81ED60AB5D5E900C87837 /* LocalCurrentGraphicsContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalCurrentGraphicsContext.h; sourceTree = "<group>"; };
06E81EEB0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = LocalCurrentGraphicsContext.mm; sourceTree = "<group>"; };
+ 070327F717EA4AAF00CE1318 /* NavigatorUserMediaError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NavigatorUserMediaError.cpp; sourceTree = "<group>"; };
070334D01459FFAC008D8D45 /* TrackEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TrackEvent.cpp; sourceTree = "<group>"; };
070334D11459FFAC008D8D45 /* TrackEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrackEvent.h; sourceTree = "<group>"; };
070334D21459FFAC008D8D45 /* TrackEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TrackEvent.idl; sourceTree = "<group>"; };
@@ -13327,6 +13329,7 @@
07221B5B17CEC32700848E51 /* NavigatorMediaStream.h */,
07221B5C17CEC32700848E51 /* NavigatorMediaStream.idl */,
07221B5D17CEC32700848E51 /* NavigatorUserMediaError.h */,
+ 070327F717EA4AAF00CE1318 /* NavigatorUserMediaError.cpp */,
07221B5E17CEC32700848E51 /* NavigatorUserMediaError.idl */,
07221B5F17CEC32700848E51 /* NavigatorUserMediaErrorCallback.h */,
07221B6017CEC32700848E51 /* NavigatorUserMediaErrorCallback.idl */,
@@ -26666,6 +26669,7 @@
450CEBF015073BBE002BB149 /* LabelableElement.cpp in Sources */,
A456FA2611AD4A830020B420 /* LabelsNodeList.cpp in Sources */,
E18772F1126E2629003DD586 /* Language.cpp in Sources */,
+ 070327F817EA4AAF00CE1318 /* NavigatorUserMediaError.cpp in Sources */,
9352084509BD43B900F2038D /* Language.mm in Sources */,
2917B5611473496C0052C9D0 /* LayerFlushScheduler.cpp in Sources */,
2917B566147349950052C9D0 /* LayerFlushSchedulerMac.cpp in Sources */,
Modified: trunk/Source/WebCore/dom/DOMError.h (156107 => 156108)
--- trunk/Source/WebCore/dom/DOMError.h 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/dom/DOMError.h 2013-09-19 19:06:54 UTC (rev 156108)
@@ -41,9 +41,10 @@
const String& name() const { return m_name; }
-private:
+protected:
explicit DOMError(const String& name);
+private:
const String m_name;
};
Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamSourcesQueryClient.h (156107 => 156108)
--- trunk/Source/WebCore/platform/mediastream/MediaStreamSourcesQueryClient.h 2013-09-19 18:49:05 UTC (rev 156107)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamSourcesQueryClient.h 2013-09-19 19:06:54 UTC (rev 156108)
@@ -35,15 +35,19 @@
#if ENABLE(MEDIA_STREAM)
#include "MediaStreamSource.h"
+#include <wtf/PassRefPtr.h>
+#include <wtf/RefCounted.h>
namespace WebCore {
+class MediaConstraints;
+
class MediaStreamSourcesQueryClient : public RefCounted<MediaStreamSourcesQueryClient> {
public:
virtual ~MediaStreamSourcesQueryClient() { }
- virtual bool audio() const = 0;
- virtual bool video() const = 0;
+ virtual PassRefPtr<MediaConstraints> audioConstraints() const = 0;
+ virtual PassRefPtr<MediaConstraints> videoConstraints() const = 0;
virtual void didCompleteQuery(const MediaStreamSourceVector& audioSources, const MediaStreamSourceVector& videoSources) = 0;
};