Changeset 100555 in webkit


Ignore:
Timestamp:
Nov 16, 2011 7:50:56 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Use a simple page client for user consent in getUserMedia()
https://bugs.webkit.org/show_bug.cgi?id=70897

Patch by Adam Bergkvist <adam.bergkvist@ericsson.com> on 2011-11-16
Reviewed by Adam Barth.

This is one in a series of patches that update the MediaStream feature
to use WebCore platform interfaces.

Covered by existing tests.

  • GNUmakefile.list.am:
  • WebCore.gypi:
  • mediastream/MediaStreamClient.h: Removed.
  • mediastream/MediaStreamController.cpp: Removed.
  • mediastream/MediaStreamController.h: Removed.
  • mediastream/MediaStreamFrameController.cpp: Removed.
  • mediastream/MediaStreamFrameController.h: Removed.
  • mediastream/UserMediaClient.h: Added.

(WebCore::UserMediaClient::~UserMediaClient):

  • mediastream/UserMediaRequest.cpp: Added.

(WebCore::UserMediaRequest::create):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::~UserMediaRequest):
(WebCore::UserMediaRequest::start):
(WebCore::UserMediaRequest::mediaStreamSourcesQueryCompleted):
(WebCore::UserMediaRequest::succeed):
(WebCore::UserMediaRequest::fail):
(WebCore::UserMediaRequest::contextDestroyed):
(WebCore::UserMediaRequest::parseOptions):

  • mediastream/UserMediaRequest.h: Added.

(WebCore::UserMediaRequest::audio):
(WebCore::UserMediaRequest::video):
(WebCore::UserMediaRequest::cameraPreferenceUser):
(WebCore::UserMediaRequest::cameraPreferenceEnvironment):
(WebCore::UserMediaRequest::successCallback):
(WebCore::UserMediaRequest::errorCallback):

  • page/CallbackTask.h: Removed.
  • page/Frame.cpp:

(WebCore::Frame::Frame):
(WebCore::Frame::~Frame):
(WebCore::Frame::pageDestroyed):
(WebCore::Frame::transferChildFrameToNewDocument):

  • page/Frame.h:
  • page/Navigator.cpp:

(WebCore::Navigator::webkitGetUserMedia):

  • page/NavigatorUserMediaErrorCallback.h:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::PageClients::PageClients):

  • page/Page.h:

(WebCore::Page::userMediaClient):

Location:
trunk/Source/WebCore
Files:
3 added
6 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r100552 r100555  
     12011-11-16  Adam Bergkvist  <adam.bergkvist@ericsson.com>
     2
     3        Use a simple page client for user consent in getUserMedia()
     4        https://bugs.webkit.org/show_bug.cgi?id=70897
     5
     6        Reviewed by Adam Barth.
     7
     8        This is one in a series of patches that update the MediaStream feature
     9        to use WebCore platform interfaces.
     10
     11        Covered by existing tests.
     12
     13        * GNUmakefile.list.am:
     14        * WebCore.gypi:
     15        * mediastream/MediaStreamClient.h: Removed.
     16        * mediastream/MediaStreamController.cpp: Removed.
     17        * mediastream/MediaStreamController.h: Removed.
     18        * mediastream/MediaStreamFrameController.cpp: Removed.
     19        * mediastream/MediaStreamFrameController.h: Removed.
     20        * mediastream/UserMediaClient.h: Added.
     21        (WebCore::UserMediaClient::~UserMediaClient):
     22        * mediastream/UserMediaRequest.cpp: Added.
     23        (WebCore::UserMediaRequest::create):
     24        (WebCore::UserMediaRequest::UserMediaRequest):
     25        (WebCore::UserMediaRequest::~UserMediaRequest):
     26        (WebCore::UserMediaRequest::start):
     27        (WebCore::UserMediaRequest::mediaStreamSourcesQueryCompleted):
     28        (WebCore::UserMediaRequest::succeed):
     29        (WebCore::UserMediaRequest::fail):
     30        (WebCore::UserMediaRequest::contextDestroyed):
     31        (WebCore::UserMediaRequest::parseOptions):
     32        * mediastream/UserMediaRequest.h: Added.
     33        (WebCore::UserMediaRequest::audio):
     34        (WebCore::UserMediaRequest::video):
     35        (WebCore::UserMediaRequest::cameraPreferenceUser):
     36        (WebCore::UserMediaRequest::cameraPreferenceEnvironment):
     37        (WebCore::UserMediaRequest::successCallback):
     38        (WebCore::UserMediaRequest::errorCallback):
     39        * page/CallbackTask.h: Removed.
     40        * page/Frame.cpp:
     41        (WebCore::Frame::Frame):
     42        (WebCore::Frame::~Frame):
     43        (WebCore::Frame::pageDestroyed):
     44        (WebCore::Frame::transferChildFrameToNewDocument):
     45        * page/Frame.h:
     46        * page/Navigator.cpp:
     47        (WebCore::Navigator::webkitGetUserMedia):
     48        * page/NavigatorUserMediaErrorCallback.h:
     49        * page/Page.cpp:
     50        (WebCore::Page::Page):
     51        (WebCore::Page::~Page):
     52        (WebCore::Page::PageClients::PageClients):
     53        * page/Page.h:
     54        (WebCore::Page::userMediaClient):
     55
    1562011-11-16  David Grogan  <dgrogan@chromium.org>
    257
  • trunk/Source/WebCore/GNUmakefile.list.am

    r100535 r100555  
    22812281        Source/WebCore/mediastream/MediaStream.cpp \
    22822282        Source/WebCore/mediastream/MediaStream.h \
    2283         Source/WebCore/mediastream/MediaStreamClient.h \
    2284         Source/WebCore/mediastream/MediaStreamController.cpp \
    2285         Source/WebCore/mediastream/MediaStreamController.h \
    22862283        Source/WebCore/mediastream/MediaStreamEvent.cpp \
    22872284        Source/WebCore/mediastream/MediaStreamEvent.h \
    2288         Source/WebCore/mediastream/MediaStreamFrameController.cpp \
    2289         Source/WebCore/mediastream/MediaStreamFrameController.h \
    22902285        Source/WebCore/mediastream/MediaStreamList.cpp \
    22912286        Source/WebCore/mediastream/MediaStreamList.h \
     
    22992294        Source/WebCore/mediastream/PeerConnection.h \
    23002295        Source/WebCore/mediastream/SignalingCallback.h \
     2296        Source/WebCore/mediastream/UserMediaClient.h \
     2297        Source/WebCore/mediastream/UserMediaRequest.cpp \
     2298        Source/WebCore/mediastream/UserMediaRequest.h \
    23012299        Source/WebCore/notifications/NotificationCenter.cpp \
    23022300        Source/WebCore/notifications/NotificationCenter.h \
     
    23192317        Source/WebCore/page/BarInfo.cpp \
    23202318        Source/WebCore/page/BarInfo.h \
    2321         Source/WebCore/page/CallbackTask.h \
    23222319        Source/WebCore/page/Chrome.cpp \
    23232320        Source/WebCore/page/Chrome.h \
  • trunk/Source/WebCore/WebCore.gypi

    r100535 r100555  
    29062906            'mediastream/MediaStreamEvent.cpp',
    29072907            'mediastream/MediaStreamEvent.h',
    2908             'mediastream/MediaStreamClient.h',
    2909             'mediastream/MediaStreamController.cpp',
    2910             'mediastream/MediaStreamController.h',
    2911             'mediastream/MediaStreamFrameController.cpp',
    2912             'mediastream/MediaStreamFrameController.h',
    29132908            'mediastream/MediaStreamList.cpp',
    29142909            'mediastream/MediaStreamList.h',
     
    29222917            'mediastream/PeerConnection.h',
    29232918            'mediastream/SignalingCallback.h',
     2919            'mediastream/UserMediaClient.h',
     2920            'mediastream/UserMediaRequest.cpp',
     2921            'mediastream/UserMediaRequest.h',
    29242922            'notifications/Notification.cpp',
    29252923            'notifications/Notification.h',
     
    29292927            'page/BarInfo.cpp',
    29302928            'page/BarInfo.h',
    2931             'page/CallbackTask.h',
    29322929            'page/Chrome.cpp',
    29332930            'page/Console.cpp',
  • trunk/Source/WebCore/page/Frame.cpp

    r100290 r100555  
    112112#endif
    113113
    114 #if ENABLE(MEDIA_STREAM)
    115 #include "MediaStreamFrameController.h"
    116 #endif
    117 
    118114#if USE(TILED_BACKING_STORE)
    119115#include "TiledBackingStore.h"
     
    170166    , m_isDisconnected(false)
    171167    , m_excludeFromTextSearch(false)
    172 #if ENABLE(MEDIA_STREAM)
    173     , m_mediaStreamFrameController(RuntimeEnabledFeatures::mediaStreamEnabled() ? adoptPtr(new MediaStreamFrameController(this)) : PassOwnPtr<MediaStreamFrameController>())
    174 #endif
    175168{
    176169    ASSERT(page);
     
    228221    if (m_domWindow)
    229222        m_domWindow->disconnectFrame();
    230 
    231 #if ENABLE(MEDIA_STREAM)
    232     if (m_mediaStreamFrameController)
    233         m_mediaStreamFrameController->disconnectFrame();
    234 #endif
    235223
    236224    HashSet<DOMWindow*>::iterator end = m_liveFormerWindows.end();
     
    699687    }
    700688
    701 #if ENABLE(MEDIA_STREAM)
    702     if (m_mediaStreamFrameController)
    703         m_mediaStreamFrameController->disconnectPage();
    704 #endif
    705 
    706689    // FIXME: It's unclear as to why this is called more than once, but it is,
    707690    // so page() could be NULL.
     
    757740        }
    758741
    759 #if ENABLE(MEDIA_STREAM)
    760         if (m_mediaStreamFrameController)
    761             m_mediaStreamFrameController->transferToNewPage(newPage);
    762 #endif
    763742        m_page = newPage;
    764743
  • trunk/Source/WebCore/page/Frame.h

    r100059 r100555  
    6666    class FrameView;
    6767    class HTMLTableCellElement;
    68     class MediaStreamFrameController;
    6968    class RegularExpression;
    7069    class RenderPart;
     
    202201#endif
    203202
    204 #if ENABLE(MEDIA_STREAM)
    205         MediaStreamFrameController* mediaStreamFrameController() const { return m_mediaStreamFrameController.get(); }
    206 #endif
    207        
    208203        // Should only be called on the main frame of a page.
    209204        void notifyChromeClientWheelEventHandlerCountChanged() const;
     
    267262#endif
    268263
    269 #if ENABLE(MEDIA_STREAM)
    270         OwnPtr<MediaStreamFrameController> m_mediaStreamFrameController;
    271 #endif
    272264    };
    273265
  • trunk/Source/WebCore/page/Navigator.cpp

    r100328 r100555  
    4747
    4848#if ENABLE(MEDIA_STREAM)
    49 #include "MediaStreamFrameController.h"
    5049#include "NavigatorUserMediaErrorCallback.h"
    5150#include "NavigatorUserMediaSuccessCallback.h"
     51#include "UserMediaRequest.h"
    5252#endif
    5353
     
    285285void Navigator::webkitGetUserMedia(const String& options, PassRefPtr<NavigatorUserMediaSuccessCallback> successCallback, PassRefPtr<NavigatorUserMediaErrorCallback> errorCallback, ExceptionCode& ec)
    286286{
    287     if (m_frame && m_frame->mediaStreamFrameController())
    288         m_frame->mediaStreamFrameController()->generateStream(options, successCallback, errorCallback, ec);
     287    if (!successCallback)
     288        return;
     289
     290    if (!m_frame)
     291        return;
     292
     293    Page* page = m_frame->page();
     294    if (!page)
     295        return;
     296
     297    RefPtr<UserMediaRequest> request = UserMediaRequest::create(m_frame->document(), page->userMediaClient(), options, successCallback, errorCallback);
     298    if (!request) {
     299        ec = NOT_SUPPORTED_ERR;
     300        return;
     301    }
     302
     303    request->start();
    289304}
    290305#endif
  • trunk/Source/WebCore/page/NavigatorUserMediaErrorCallback.h

    r95901 r100555  
    2828#if ENABLE(MEDIA_STREAM)
    2929
    30 #include "CallbackTask.h"
    3130#include "NavigatorUserMediaError.h"
    3231#include <wtf/RefCounted.h>
     
    3433namespace WebCore {
    3534
    36 class NavigatorUserMediaErrorCallback : public RefCounted<NavigatorUserMediaErrorCallback>,
    37                                         public CallbackTask1<NavigatorUserMediaErrorCallback, NavigatorUserMediaError>::Scheduler {
     35class NavigatorUserMediaErrorCallback : public RefCounted<NavigatorUserMediaErrorCallback> {
    3836public:
    3937    virtual ~NavigatorUserMediaErrorCallback() { }
  • trunk/Source/WebCore/page/Page.cpp

    r100534 r100555  
    8282
    8383#if ENABLE(MEDIA_STREAM)
    84 #include "MediaStreamClient.h"
    85 #include "MediaStreamController.h"
     84#include "UserMediaClient.h"
    8685#endif
    8786
     
    139138    , m_deviceOrientationController(RuntimeEnabledFeatures::deviceOrientationEnabled() ? adoptPtr(new DeviceOrientationController(this, pageClients.deviceOrientationClient)) : nullptr)
    140139#endif
    141 #if ENABLE(MEDIA_STREAM)
    142     , m_mediaStreamController(RuntimeEnabledFeatures::mediaStreamEnabled() ? adoptPtr(new MediaStreamController(pageClients.mediaStreamClient)) : PassOwnPtr<MediaStreamController>())
    143 #endif
    144140#if ENABLE(INPUT_SPEECH)
    145141    , m_speechInputClient(pageClients.speechInputClient)
     142#endif
     143#if ENABLE(MEDIA_STREAM)
     144    , m_userMediaClient(pageClients.userMediaClient)
    146145#endif
    147146    , m_settings(adoptPtr(new Settings(this)))
     
    212211#endif
    213212
     213#if ENABLE(MEDIA_STREAM)
     214    if (m_userMediaClient)
     215        m_userMediaClient->pageDestroyed();
     216#endif
     217
    214218    backForward()->close();
    215219
     
    10601064    , deviceOrientationClient(0)
    10611065    , speechInputClient(0)
    1062     , mediaStreamClient(0)
     1066    , userMediaClient(0)
    10631067{
    10641068}
  • trunk/Source/WebCore/page/Page.h

    r100534 r100555  
    7272    class InspectorController;
    7373    class MediaCanStartListener;
    74     class MediaStreamClient;
    75     class MediaStreamController;
    7674    class Node;
    7775    class PageGroup;
     
    8583    class SpeechInput;
    8684    class SpeechInputClient;
     85    class UserMediaClient;
    8786    class StorageNamespace;
    8887#if ENABLE(NOTIFICATIONS)
     
    119118            RefPtr<BackForwardList> backForwardClient;
    120119            SpeechInputClient* speechInputClient;
    121             MediaStreamClient* mediaStreamClient;
     120            UserMediaClient* userMediaClient;
    122121        };
    123122
     
    185184        DeviceOrientationController* deviceOrientationController() const { return m_deviceOrientationController.get(); }
    186185#endif
    187 #if ENABLE(MEDIA_STREAM)
    188         MediaStreamController* mediaStreamController() const { return m_mediaStreamController.get(); }
    189 #endif
    190186#if ENABLE(INPUT_SPEECH)
    191187        SpeechInput* speechInput();
     188#endif
     189#if ENABLE(MEDIA_STREAM)
     190        UserMediaClient* userMediaClient() const { return m_userMediaClient; }
    192191#endif
    193192        Settings* settings() const { return m_settings.get(); }
     
    367366        OwnPtr<DeviceOrientationController> m_deviceOrientationController;
    368367#endif
    369 #if ENABLE(MEDIA_STREAM)
    370         OwnPtr<MediaStreamController> m_mediaStreamController;
    371 #endif
    372368#if ENABLE(INPUT_SPEECH)
    373369        SpeechInputClient* m_speechInputClient;
    374370        OwnPtr<SpeechInput> m_speechInput;
     371#endif
     372#if ENABLE(MEDIA_STREAM)
     373        UserMediaClient* m_userMediaClient;
    375374#endif
    376375        OwnPtr<Settings> m_settings;
Note: See TracChangeset for help on using the changeset viewer.