[webkit-reviews] review granted: [Bug 221082] Use user media permission prompt for speech recognition : [Attachment 418799] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Feb 1 00:23:44 PST 2021


youenn fablet <youennf at gmail.com> has granted Sihui Liu <sihui_liu at apple.com>'s
request for review:
Bug 221082: Use user media permission prompt for speech recognition
https://bugs.webkit.org/show_bug.cgi?id=221082

Attachment 418799: Patch

https://bugs.webkit.org/attachment.cgi?id=418799&action=review




--- Comment #14 from youenn fablet <youennf at gmail.com> ---
Comment on attachment 418799
  --> https://bugs.webkit.org/attachment.cgi?id=418799
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=418799&action=review

> Source/WebCore/Modules/speech/SpeechRecognition.cpp:79
> +    auto frameIdentifier = optionalFrameIdentifier ?
*optionalFrameIdentifier : FrameIdentifier { };

We probably do not need to check frame.
We could do:
auto frameID = document.frameID();
if (!frameID)
    return Exception { InvalidStateError, "Recognition is not in a valid
frame"_s };
...

> Source/WebKit/UIProcess/SpeechRecognitionPermissionManager.cpp:78
> +void SpeechRecognitionPermissionManager::request(const String& lang, const
WebCore::ClientOrigin& origin, const WebCore::FrameIdentifier frameIdentifier,
SpeechRecognitionPermissionRequestCallback&& completiontHandler)

s/const WebCore::FrameIdentifier/WebCore::FrameIdentifier/
Ditto below.
Or is it to make sure it stays const?

> Source/WebKit/UIProcess/SpeechRecognitionPermissionRequest.h:65
> +    const WebCore::FrameIdentifier m_frameIdentifier;

Ditto here.

> Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:244
> +	   callback(true);

We will miss device ID exposure which is done in finishGrantingRequest.
I guess we should fix this in a refactoring.

> Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:616
> +void
UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecogn
ition(const WebCore::FrameIdentifier frameIdentifier, const
WebCore::SecurityOrigin& requestingOrigin, const WebCore::SecurityOrigin&
topOrigin, const WebCore::CaptureDevice& device,
CompletionHandler<void(bool)>&& completionHandler)

ditto for const WebCore::FrameIdentifier

> Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:632
> +    }

Can we replace wasRequestDenied and searchForGrantedRequest with
getRequestAction().
We will miss the ability of being able to reprompt user if speech recognition
is made as part of a user gesture.

> Source/WebKit/UIProcess/UserMediaPermissionRequestProxy.cpp:44
> +    , m_decisionCompletionHandler(WTFMove(decisionCompletionHandler))

We probably need to call this completion handler in
UserMediaPermissionRequestManagerProxy::invalidatePendingRequests() or
UserMediaPermissionRequestProxy::invalidate().

> Source/WebKit/UIProcess/WebPageProxy.cpp:10418
> +void WebPageProxy::requestUserMediaPermissionForSpeechRecognition(const
WebCore::FrameIdentifier frameIdentifier, const WebCore::SecurityOrigin&
requestingOrigin, const WebCore::SecurityOrigin& topOrigin,
CompletionHandler<void(bool)>&& completionHandler)

const WebCore::FrameIdentifier?


More information about the webkit-reviews mailing list