Changeset 129145 in webkit


Ignore:
Timestamp:
Sep 20, 2012 11:23:13 AM (12 years ago)
Author:
tommyw@google.com
Message:

MediaStream API: Extend UserMediaRequest with a ownerDocument method
https://bugs.webkit.org/show_bug.cgi?id=97095

Reviewed by Adam Barth.

Source/WebCore:

Chromium need to know exactly which frame called getUserMedia so that it can
clean away the stream when the frame goes away.
Since that information is available in webkit add an accessor method.

Chromium mock class extended to test the added method.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::ownerDocument):
(WebCore):

  • Modules/mediastream/UserMediaRequest.h:

(WebCore):
(UserMediaRequest):

Source/WebKit/chromium:

Chromium need to know exactly which frame called getUserMedia so that it can clean
away the stream when the frame goes away.
Since that information is available in webkit add an accessor method.

Also taking the opportunity to remove an unused deprecated method,
and adding asserts in case the object is empty.

  • public/WebUserMediaRequest.h:

(WebKit):
(WebUserMediaRequest):

  • src/WebUserMediaRequest.cpp:

(WebKit::WebUserMediaRequest::ownerDocument):

Tools:

Extending WebUserMediaClientMock to check that the owning document is valid,
and that the document has a frame.

  • DumpRenderTree/chromium/WebUserMediaClientMock.cpp:

(WebKit::WebUserMediaClientMock::requestUserMedia):

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r129144 r129145  
     12012-09-20  Tommy Widenflycht  <tommyw@google.com>
     2
     3        MediaStream API: Extend UserMediaRequest with a ownerDocument method
     4        https://bugs.webkit.org/show_bug.cgi?id=97095
     5
     6        Reviewed by Adam Barth.
     7
     8        Chromium need to know exactly which frame called getUserMedia so that it can
     9        clean away the stream when the frame goes away.
     10        Since that information is available in webkit add an accessor method.
     11
     12        Chromium mock class extended to test the added method.
     13
     14        * Modules/mediastream/UserMediaRequest.cpp:
     15        (WebCore::UserMediaRequest::ownerDocument):
     16        (WebCore):
     17        * Modules/mediastream/UserMediaRequest.h:
     18        (WebCore):
     19        (UserMediaRequest):
     20
    1212012-09-20  Levi Weintraub  <leviw@chromium.org>
    222
  • trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp

    r116783 r129145  
    3737
    3838#include "Dictionary.h"
     39#include "Document.h"
    3940#include "LocalMediaStream.h"
    4041#include "MediaStreamCenter.h"
     
    6869UserMediaRequest::~UserMediaRequest()
    6970{
     71}
     72
     73Document* UserMediaRequest::ownerDocument()
     74{
     75    if (m_scriptExecutionContext) {
     76        ASSERT(m_scriptExecutionContext->isDocument());
     77        return static_cast<Document*>(m_scriptExecutionContext);
     78    }
     79
     80    return 0;
    7081}
    7182
  • trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h

    r116317 r129145  
    4646
    4747class Dictionary;
     48class Document;
    4849class MediaStreamDescriptor;
    4950class UserMediaController;
     
    5657    NavigatorUserMediaSuccessCallback* successCallback() const { return m_successCallback.get(); }
    5758    NavigatorUserMediaErrorCallback* errorCallback() const { return m_errorCallback.get(); }
     59    Document* ownerDocument();
    5860
    5961    void start();
  • trunk/Source/WebKit/chromium/ChangeLog

    r129124 r129145  
     12012-09-20  Tommy Widenflycht  <tommyw@google.com>
     2
     3        MediaStream API: Extend UserMediaRequest with a ownerDocument method
     4        https://bugs.webkit.org/show_bug.cgi?id=97095
     5
     6        Reviewed by Adam Barth.
     7
     8        Chromium need to know exactly which frame called getUserMedia so that it can clean
     9        away the stream when the frame goes away.
     10        Since that information is available in webkit add an accessor method.
     11
     12        Also taking the opportunity to remove an unused deprecated method,
     13        and adding asserts in case the object is empty.
     14
     15        * public/WebUserMediaRequest.h:
     16        (WebKit):
     17        (WebUserMediaRequest):
     18        * src/WebUserMediaRequest.cpp:
     19        (WebKit::WebUserMediaRequest::ownerDocument):
     20
    1212012-09-20  Mike West  <mkwst@google.com>
    222
  • trunk/Source/WebKit/chromium/public/WebUserMediaRequest.h

    r116317 r129145  
    4141
    4242namespace WebKit {
    43 
     43class WebDocument;
    4444class WebMediaStreamDescriptor;
    4545class WebMediaStreamSource;
     
    6868
    6969    WEBKIT_EXPORT WebSecurityOrigin securityOrigin() const;
    70 
    71     // DEPRECATED
    72     WEBKIT_EXPORT void requestSucceeded(const WebVector<WebMediaStreamSource>& audioSources, const WebVector<WebMediaStreamSource>& videoSources);
     70    WEBKIT_EXPORT WebDocument ownerDocument() const;
    7371
    7472    WEBKIT_EXPORT void requestSucceeded(const WebMediaStreamDescriptor&);
  • trunk/Source/WebKit/chromium/src/WebUserMediaRequest.cpp

    r116528 r129145  
    3636
    3737#include "Document.h"
    38 #include "Frame.h"
    3938#include "MediaStreamDescriptor.h"
    4039#include "MediaStreamSource.h"
    41 #include "Page.h"
    4240#include "SecurityOrigin.h"
    4341#include "UserMediaRequest.h"
     42#include "WebDocument.h"
    4443#include "WebSecurityOrigin.h"
    4544#include "platform/WebMediaStreamDescriptor.h"
     
    6564bool WebUserMediaRequest::audio() const
    6665{
     66    ASSERT(!isNull());
    6767    return m_private->audio();
    6868}
     
    7070bool WebUserMediaRequest::video() const
    7171{
     72    ASSERT(!isNull());
    7273    return m_private->video();
    7374}
     
    7576WebSecurityOrigin WebUserMediaRequest::securityOrigin() const
    7677{
    77     ASSERT(m_private->scriptExecutionContext());
     78    ASSERT(!isNull() && m_private->scriptExecutionContext());
    7879    return WebSecurityOrigin(m_private->scriptExecutionContext()->securityOrigin());
    7980}
    8081
    81 void WebUserMediaRequest::requestSucceeded(const WebVector<WebMediaStreamSource>& audioSources, const WebVector<WebMediaStreamSource>& videoSources)
     82WebDocument WebUserMediaRequest::ownerDocument() const
    8283{
    83     if (m_private.isNull())
    84         return;
    85 
    86     MediaStreamSourceVector audio;
    87     for (size_t i = 0; i < audioSources.size(); ++i) {
    88         MediaStreamSource* curr = audioSources[i];
    89         audio.append(curr);
    90     }
    91     MediaStreamSourceVector video;
    92     for (size_t i = 0; i < videoSources.size(); ++i) {
    93         MediaStreamSource* curr = videoSources[i];
    94         video.append(curr);
    95     }
    96 
    97     m_private->succeed(audio, video);
     84    ASSERT(!isNull());
     85    return WebDocument(m_private->ownerDocument());
    9886}
    9987
    10088void WebUserMediaRequest::requestSucceeded(const WebMediaStreamDescriptor& streamDescriptor)
    10189{
    102     ASSERT(!streamDescriptor.isNull());
    103     if (m_private.isNull())
    104         return;
    105 
     90    ASSERT(!isNull() && !streamDescriptor.isNull());
    10691    m_private->succeed(streamDescriptor);
    10792}
     
    10994void WebUserMediaRequest::requestFailed()
    11095{
     96    ASSERT(!isNull());
    11197    m_private->fail();
    11298}
  • trunk/Tools/ChangeLog

    r129139 r129145  
     12012-09-20  Tommy Widenflycht  <tommyw@google.com>
     2
     3        MediaStream API: Extend UserMediaRequest with a ownerDocument method
     4        https://bugs.webkit.org/show_bug.cgi?id=97095
     5
     6        Reviewed by Adam Barth.
     7
     8        Extending WebUserMediaClientMock to check that the owning document is valid,
     9        and that the document has a frame.
     10
     11        * DumpRenderTree/chromium/WebUserMediaClientMock.cpp:
     12        (WebKit::WebUserMediaClientMock::requestUserMedia):
     13
    1142012-09-20  Stephen Chenney  <schenney@chromium.org>
    215
  • trunk/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.cpp

    r116674 r129145  
    3434#include "WebUserMediaClientMock.h"
    3535
     36#include "WebDocument.h"
    3637#include "WebMediaStreamRegistry.h"
    3738#include "WebUserMediaRequest.h"
     
    5758    ASSERT(!streamRequest.isNull());
    5859    WebUserMediaRequest request = streamRequest;
     60
     61    if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
     62        request.requestFailed();
     63        return;
     64    }
    5965
    6066    const size_t zero = 0;
Note: See TracChangeset for help on using the changeset viewer.