Changeset 252854 in webkit
- Timestamp:
- Nov 25, 2019 5:03:24 AM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r252852 r252854 1 2019-11-25 Youenn Fablet <youenn@apple.com> 2 3 Enable legacy getUserMedia as a quirk 4 https://bugs.webkit.org/show_bug.cgi?id=204403 5 <rdar://problem/56421276> 6 7 Reviewed by Eric Carlson. 8 9 Add a shim for legacy getUserMedia to cover uses of this legacy API for existing web pages. 10 Add a corresponding settings and quirk. 11 Covered by manual test. 12 13 * Modules/mediastream/NavigatorMediaDevices.idl: 14 * bindings/js/JSDOMBindingInternals.js: 15 * bindings/js/JSNavigatorCustom.cpp: 16 (WebCore::JSNavigator::getUserMedia): 17 * dom/Document.cpp: 18 (WebCore::m_undoManager): 19 * page/Quirks.cpp: 20 (WebCore::Quirks::shouldEnableLegacyGetUserMedia const): 21 * page/Quirks.h: 22 * page/Settings.yaml: 23 1 24 2019-11-25 Charlie Turner <cturner@igalia.com> 2 25 -
trunk/Source/WebCore/Modules/mediastream/NavigatorMediaDevices.idl
r241602 r252854 34 34 ] partial interface Navigator { 35 35 [SameObject, SecureContext, ContextAllowsMediaDevices] readonly attribute MediaDevices mediaDevices; 36 [Custom, EnabledBySetting=LegacyGetUserMedia] void getUserMedia(object constraints, object? successCallback, object? errorCallback); 36 37 }; -
trunk/Source/WebCore/bindings/js/JSDOMBindingInternals.js
r230637 r252854 33 33 }); 34 34 } 35 36 function getUserMediaShim(constraints, successCallback, errorCallback) 37 { 38 this.mediaDevices.getUserMedia(constraints).then(successCallback, errorCallback); 39 } -
trunk/Source/WebCore/bindings/js/JSNavigatorCustom.cpp
r248276 r252854 27 27 #include "JSNavigator.h" 28 28 29 #include "WebCoreJSClientData.h" 30 #include <JavaScriptCore/CatchScope.h> 31 29 32 namespace WebCore { 30 33 … … 34 37 } 35 38 39 #if ENABLE(MEDIA_STREAM) 40 JSValue JSNavigator::getUserMedia(JSGlobalObject& lexicalGlobalObject, CallFrame& callFrame) 41 { 42 auto* function = globalObject()->builtinInternalFunctions().jsDOMBindingInternals().m_getUserMediaShimFunction.get(); 43 ASSERT(function); 44 45 JSC::CallData callData; 46 JSC::CallType callType = JSC::getCallData(lexicalGlobalObject.vm(), function, callData); 47 ASSERT(callType != JSC::CallType::None); 48 JSC::MarkedArgumentBuffer arguments; 49 for (size_t cptr = 0; cptr < callFrame.argumentCount(); ++cptr) 50 arguments.append(callFrame.uncheckedArgument(cptr)); 51 ASSERT(!arguments.hasOverflowed()); 52 JSC::call(&lexicalGlobalObject, function, callType, callData, this, arguments); 53 return jsUndefined(); 36 54 } 55 #endif 56 57 } -
trunk/Source/WebCore/dom/Document.cpp
r252828 r252854 608 608 609 609 InspectorInstrumentation::addEventListenersToNode(*this); 610 #if ENABLE(MEDIA_STREAM) 611 m_settings->setLegacyGetUserMediaEnabled(quirks().shouldEnableLegacyGetUserMedia()); 612 #endif 610 613 } 611 614 -
trunk/Source/WebCore/page/Quirks.cpp
r252301 r252854 630 630 } 631 631 632 } 632 #if ENABLE(MEDIA_STREAM) 633 bool Quirks::shouldEnableLegacyGetUserMedia() const 634 { 635 if (!needsQuirks()) 636 return false; 637 638 return m_document->url().protocolIs("https") && equalLettersIgnoringASCIICase(m_document-> url().host(), "www.baidu.com"); 639 } 640 #endif 641 642 } -
trunk/Source/WebCore/page/Quirks.h
r252301 r252854 85 85 bool shouldBypassBackForwardCache() const; 86 86 87 #if ENABLE(MEDIA_STREAM) 88 bool shouldEnableLegacyGetUserMedia() const; 89 #endif 90 87 91 private: 88 92 bool needsQuirks() const; -
trunk/Source/WebCore/page/Settings.yaml
r252840 r252854 890 890 initial: false 891 891 892 legacyGetUserMediaEnabled: 893 initial: false 894 conditional: MEDIA_STREAM 895 892 896 # Deprecated 893 897
Note: See TracChangeset
for help on using the changeset viewer.