[webkit-reviews] review requested: [Bug 70897] Use a simple page client/controller for user consent in getUserMedia() : [Attachment 114476] Patch 3
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Nov 10 05:18:21 PST 2011
Adam Bergkvist <adam.bergkvist at ericsson.com> has asked for review:
Bug 70897: Use a simple page client/controller for user consent in
getUserMedia()
https://bugs.webkit.org/show_bug.cgi?id=70897
Attachment 114476: Patch 3
https://bugs.webkit.org/attachment.cgi?id=114476&action=review
------- Additional Comments from Adam Bergkvist <adam.bergkvist at ericsson.com>
(In reply to comment #11)
> (From update of attachment 114178 [details])
> View in context:
https://bugs.webkit.org/attachment.cgi?id=114178&action=review
>
> Below are a few nits.
>
> > Source/WebCore/mediastream/UserMediaController.cpp:90
> > + DOMWindow* domWindow = request->frame()->existingDOMWindow();
> > + if (!domWindow)
> > + return;
> > +
> > + ScriptExecutionContext* context = domWindow->scriptExecutionContext();
> > + if (!context || context != request->scriptExecutionContext())
> > + return;
>
> You should just get the ScriptExecutionContext from the frame without
involving the DOMWindow:
>
> ScriptExecutionContext* context = request->frame()->document();
Fixed.
> > Source/WebCore/mediastream/UserMediaRequest.cpp:57
> > + ,
m_scriptExecutionContext(frame->existingDOMWindow()->scriptExecutionContext())
>
> Please don't go through the DOMWindow. frame->document() should work just
find here.
Fixed.
> > Source/WebCore/mediastream/UserMediaRequest.cpp:78
> > + for (size_t i = 0; i < optionsList.size(); i++) {
>
> ++i
Fixed (Perhaps this should be added to the style guidelines?)
> > Source/WebCore/mediastream/UserMediaRequest.cpp:80
> > + optionsList[i].split(" ", subOptionsList);
>
> Are you sure this is right? Usually these parsers use isHTMLSpace. Can you
put a link the spec in the code?
You're right, the split was a bit naive. I use SpaceSplitString now.
> > Source/WebCore/mediastream/UserMediaRequest.cpp:82
> > + if (subOptionsList[0] == "audio")
>
> This is really supposed to be case sensitive?
Yes.
"2. If the first token in list of suboptions is a case-sensitive match for the
string "audio", let audio be true."
> > Source/WebCore/mediastream/UserMediaRequest.cpp:99
> > + m_frame = 0;
>
> Do we need to zero out m_controller too?
The controller is zeroed out in the call to cancelUserMediaRequset() on line
before.
> > Source/WebCore/mediastream/UserMediaRequest.h:82
> > + ScriptExecutionContext* m_scriptExecutionContext;
>
> Does this need to be a RefPtr?
We only use this member to compare the pointer value with the context at the
time a request succeeds or fails.
(In reply to comment #13)
> (From update of attachment 114178 [details])
> View in context:
https://bugs.webkit.org/attachment.cgi?id=114178&action=review
>
> > Source/WebCore/mediastream/UserMediaController.cpp:53
> > + m_client->userMediaControllerDestroyed();
>
> At this point have all outstanding requests been cancelled? Would be best, I
think, to do so.
They should be canceled at this point.
> >> Source/WebCore/mediastream/UserMediaRequest.cpp:78
> >> + for (size_t i = 0; i < optionsList.size(); i++) {
> >
> > ++i
>
> FYI: This means that you should change your i++ to ++i. A prefix operator is
generally much better than a postfix one.
I got that, but I was just wondering what the motivation was (it's a pure style
issue in this particular case). I haven't got this comment before and there's
nothing about it in the style guidelines (perhaps it should be added?). It's
anyhow fixed now.
(In reply to comment #19)
> 1) a JS function calls GetUserMedia which forwards the call to
UserMediaController
> 2) The UserMediaController enumerates the available audio/video devices
through the Platform interface. The devices are at this stage unopened.
> 3) The UserMediaController then sends the list for selection and approval
from the user through the Client interface.
> 4) The user selects say a camera and a audio input device and thus approves
the use.
>
> Have I gotten it right this time? I have been confused by the wording Query
which for me sounds like "asking the user" and not "enumerating all devices".
Yes, that's about it.
More information about the webkit-reviews
mailing list