Changeset 85745 in webkit


Ignore:
Timestamp:
May 4, 2011 6:57:31 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-05-04 Leandro Gracia Gil <leandrogracia@chromium.org>

Reviewed by Tony Gentilcore.

Media Stream API: add the skeleton of the frame and page controllers and the embedder client.
https://bugs.webkit.org/show_bug.cgi?id=56922

Add the basic outlines of the page controller, the per-frame controller and the embedder
client interface for the Media Stream API. Provide methods to handle the situations
where a frame is detached from the page or transferred between pages.

Tests for the Media Stream API will be provided by the bug 56587.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.gypi:
  • WebCore.pro:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • page/Frame.cpp: (WebCore::Frame::Frame): (WebCore::Frame::~Frame): (WebCore::Frame::pageDestroyed): (WebCore::Frame::transferChildFrameToNewDocument):
  • page/Frame.h: (WebCore::Frame::mediaStreamFrameController):
  • page/MediaStreamClient.h: Added. (WebCore::MediaStreamClient::~MediaStreamClient):
  • page/MediaStreamController.cpp: Added. (WebCore::MediaStreamController::Request::Request): (WebCore::MediaStreamController::Request::localId): (WebCore::MediaStreamController::Request::frameController): (WebCore::MediaStreamController::MediaStreamController): (WebCore::MediaStreamController::~MediaStreamController): (WebCore::MediaStreamController::unregisterFrameController): (WebCore::MediaStreamController::registerRequest):
  • page/MediaStreamController.h: Added.
  • page/MediaStreamFrameController.cpp: Added. (WebCore::MediaStreamFrameController::Request::Request): (WebCore::MediaStreamFrameController::Request::~Request): (WebCore::MediaStreamFrameController::Request::scriptExecutionContext): (WebCore::MediaStreamFrameController::Request::isGenerateStreamRequest): (WebCore::MediaStreamFrameController::Request::isRecordedDataRequest): (WebCore::MediaStreamFrameController::RequestMap::abort): (WebCore::MediaStreamFrameController::RequestMap::abortAll): (WebCore::MediaStreamFrameController::MediaStreamFrameController): (WebCore::MediaStreamFrameController::~MediaStreamFrameController): (WebCore::MediaStreamFrameController::securityOrigin): (WebCore::MediaStreamFrameController::scriptExecutionContext): (WebCore::MediaStreamFrameController::pageController): (WebCore::MediaStreamFrameController::enterDetachedState): (WebCore::MediaStreamFrameController::disconnectPage): (WebCore::MediaStreamFrameController::disconnectFrame): (WebCore::MediaStreamFrameController::transferToNewPage):
  • page/MediaStreamFrameController.h: Added.
  • page/Page.cpp: (WebCore::Page::Page): (WebCore::Page::PageClients::PageClients):
  • page/Page.h: (WebCore::Page::mediaStreamController):
Location:
trunk/Source/WebCore
Files:
5 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r85382 r85745  
    19331933    LIST(APPEND WebCore_SOURCES
    19341934        bindings/js/JSNavigatorCustom.cpp
     1935        page/MediaStreamController.cpp
     1936        page/MediaStreamFrameController.cpp
    19351937    )
    19361938
  • trunk/Source/WebCore/ChangeLog

    r85744 r85745  
     12011-05-04  Leandro Gracia Gil  <leandrogracia@chromium.org>
     2
     3        Reviewed by Tony Gentilcore.
     4
     5        Media Stream API: add the skeleton of the frame and page controllers and the embedder client.
     6        https://bugs.webkit.org/show_bug.cgi?id=56922
     7
     8        Add the basic outlines of the page controller, the per-frame controller and the embedder
     9        client interface for the Media Stream API. Provide methods to handle the situations
     10        where a frame is detached from the page or transferred between pages.
     11
     12        Tests for the Media Stream API will be provided by the bug 56587.
     13
     14        * CMakeLists.txt:
     15        * GNUmakefile.list.am:
     16        * WebCore.gypi:
     17        * WebCore.pro:
     18        * WebCore.vcproj/WebCore.vcproj:
     19        * WebCore.xcodeproj/project.pbxproj:
     20        * page/Frame.cpp:
     21        (WebCore::Frame::Frame):
     22        (WebCore::Frame::~Frame):
     23        (WebCore::Frame::pageDestroyed):
     24        (WebCore::Frame::transferChildFrameToNewDocument):
     25        * page/Frame.h:
     26        (WebCore::Frame::mediaStreamFrameController):
     27        * page/MediaStreamClient.h: Added.
     28        (WebCore::MediaStreamClient::~MediaStreamClient):
     29        * page/MediaStreamController.cpp: Added.
     30        (WebCore::MediaStreamController::Request::Request):
     31        (WebCore::MediaStreamController::Request::localId):
     32        (WebCore::MediaStreamController::Request::frameController):
     33        (WebCore::MediaStreamController::MediaStreamController):
     34        (WebCore::MediaStreamController::~MediaStreamController):
     35        (WebCore::MediaStreamController::unregisterFrameController):
     36        (WebCore::MediaStreamController::registerRequest):
     37        * page/MediaStreamController.h: Added.
     38        * page/MediaStreamFrameController.cpp: Added.
     39        (WebCore::MediaStreamFrameController::Request::Request):
     40        (WebCore::MediaStreamFrameController::Request::~Request):
     41        (WebCore::MediaStreamFrameController::Request::scriptExecutionContext):
     42        (WebCore::MediaStreamFrameController::Request::isGenerateStreamRequest):
     43        (WebCore::MediaStreamFrameController::Request::isRecordedDataRequest):
     44        (WebCore::MediaStreamFrameController::RequestMap::abort):
     45        (WebCore::MediaStreamFrameController::RequestMap::abortAll):
     46        (WebCore::MediaStreamFrameController::MediaStreamFrameController):
     47        (WebCore::MediaStreamFrameController::~MediaStreamFrameController):
     48        (WebCore::MediaStreamFrameController::securityOrigin):
     49        (WebCore::MediaStreamFrameController::scriptExecutionContext):
     50        (WebCore::MediaStreamFrameController::pageController):
     51        (WebCore::MediaStreamFrameController::enterDetachedState):
     52        (WebCore::MediaStreamFrameController::disconnectPage):
     53        (WebCore::MediaStreamFrameController::disconnectFrame):
     54        (WebCore::MediaStreamFrameController::transferToNewPage):
     55        * page/MediaStreamFrameController.h: Added.
     56        * page/Page.cpp:
     57        (WebCore::Page::Page):
     58        (WebCore::Page::PageClients::PageClients):
     59        * page/Page.h:
     60        (WebCore::Page::mediaStreamController):
     61
    1622011-05-04  Alexander Pavlov  <apavlov@chromium.org>
    263
  • trunk/Source/WebCore/GNUmakefile.list.am

    r85385 r85745  
    21932193        Source/WebCore/page/Location.h \
    21942194        Source/WebCore/page/MediaCanStartListener.h \
     2195        Source/WebCore/page/MediaStreamClient.h \
     2196        Source/WebCore/page/MediaStreamController.cpp \
     2197        Source/WebCore/page/MediaStreamController.h \
     2198        Source/WebCore/page/MediaStreamFrameController.cpp \
     2199        Source/WebCore/page/MediaStreamFrameController.h \
    21952200        Source/WebCore/page/MemoryInfo.cpp \
    21962201        Source/WebCore/page/MemoryInfo.h \
  • trunk/Source/WebCore/WebCore.gypi

    r85588 r85745  
    34573457            'page/SpeechInputResultList.cpp',
    34583458            'page/SpeechInputResultList.h',
     3459            'page/MediaStreamClient.h',
     3460            'page/MediaStreamController.cpp',
     3461            'page/MediaStreamController.h',
     3462            'page/MediaStreamFrameController.cpp',
     3463            'page/MediaStreamFrameController.h',
    34593464            'page/SuspendableTimer.cpp',
    34603465            'page/SuspendableTimer.h',
  • trunk/Source/WebCore/WebCore.pro

    r85648 r85745  
    30723072contains(DEFINES, ENABLE_MEDIA_STREAM=1) {
    30733073    HEADERS += \
     3074        page/MediaStreamClient.h \
     3075        page/MediaStreamController.h \
     3076        page/MediaStreamFrameController.h \
    30743077        page/NavigatorUserMediaError.h \
    30753078        page/NavigatorUserMediaErrorCallback.h \
    30763079        page/NavigatorUserMediaSuccessCallback.h
    30773080
     3081    SOURCES += \
     3082        page/MediaStreamController.cpp \
     3083        page/MediaStreamFrameController.cpp
     3084
    30783085    v8 {
    30793086        SOURCES += \
    30803087            bindings/v8/custom/V8NavigatorCustom.cpp
    3081 
    30823088    }
    30833089}
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r85719 r85745  
    2465924659                        </File>
    2466024660                        <File
     24661                                RelativePath="..\page\MediaStreamClient.h"
     24662                                >
     24663                        </File>
     24664                        <File
     24665                                RelativePath="..\page\MediaStreamController.cpp"
     24666                                >
     24667                        </File>
     24668                        <File
     24669                                RelativePath="..\page\MediaStreamController.h"
     24670                                >
     24671                        </File>
     24672                        <File
     24673                                RelativePath="..\page\MediaStreamFrameController.cpp"
     24674                                >
     24675                        </File>
     24676                        <File
     24677                                RelativePath="..\page\MediaStreamFrameController.h"
     24678                                >
     24679                        </File>
     24680                        <File
    2466124681                                RelativePath="..\page\MouseEventWithHitTestResults.cpp"
    2466224682                                >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r85382 r85745  
    40784078                B1827493134CA4C100B98C2D /* CallbackFunction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B1827492134CA4C100B98C2D /* CallbackFunction.cpp */; };
    40794079                B1D5ECB5134B58DA0087C78F /* CallbackFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = B1D5ECB4134B58DA0087C78F /* CallbackFunction.h */; };
     4080                B1E54594134629C10092A545 /* MediaStreamClient.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E54588134629C10092A545 /* MediaStreamClient.h */; };
     4081                B1E54597134629C10092A545 /* MediaStreamController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B1E5458B134629C10092A545 /* MediaStreamController.cpp */; };
     4082                B1E54598134629C10092A545 /* MediaStreamController.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E5458C134629C10092A545 /* MediaStreamController.h */; };
     4083                B1E54595134629C10092A545 /* MediaStreamFrameController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B1E54589134629C10092A545 /* MediaStreamFrameController.cpp */; };
     4084                B1E54596134629C10092A545 /* MediaStreamFrameController.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E5458A134629C10092A545 /* MediaStreamFrameController.h */; };
    40804085                B1E54599134629C10092A545 /* NavigatorUserMediaError.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E5458D134629C10092A545 /* NavigatorUserMediaError.h */; };
    40814086                B1E5459B134629C10092A545 /* NavigatorUserMediaErrorCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = B1E5458F134629C10092A545 /* NavigatorUserMediaErrorCallback.h */; };
     
    1031510320                B1827492134CA4C100B98C2D /* CallbackFunction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CallbackFunction.cpp; sourceTree = "<group>"; };
    1031610321                B1D5ECB4134B58DA0087C78F /* CallbackFunction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CallbackFunction.h; sourceTree = "<group>"; };
     10322                B1E54588134629C10092A545 /* MediaStreamClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamClient.h; sourceTree = "<group>"; };
     10323                B1E5458B134629C10092A545 /* MediaStreamController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamController.cpp; sourceTree = "<group>"; };
     10324                B1E5458C134629C10092A545 /* MediaStreamController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamController.h; sourceTree = "<group>"; };
     10325                B1E54589134629C10092A545 /* MediaStreamFrameController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamFrameController.cpp; sourceTree = "<group>"; };
     10326                B1E5458A134629C10092A545 /* MediaStreamFrameController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamFrameController.h; sourceTree = "<group>"; };
    1031710327                B1E5458D134629C10092A545 /* NavigatorUserMediaError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigatorUserMediaError.h; sourceTree = "<group>"; };
    1031810328                B1E5458E134629C10092A545 /* NavigatorUserMediaError.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = NavigatorUserMediaError.idl; sourceTree = "<group>"; };
     
    1412214132                                BCE1C4220D9829F2003B02F2 /* Location.idl */,
    1412314133                                931BCC601124DFCB00BE70DD /* MediaCanStartListener.h */,
     14134                                B1E54588134629C10092A545 /* MediaStreamClient.h */,
     14135                                B1E5458B134629C10092A545 /* MediaStreamController.cpp */,
     14136                                B1E5458C134629C10092A545 /* MediaStreamController.h */,
     14137                                B1E54589134629C10092A545 /* MediaStreamFrameController.cpp */,
     14138                                B1E5458A134629C10092A545 /* MediaStreamFrameController.h */,
    1412414139                                9FFE3E7811B59C5D0037874E /* MemoryInfo.cpp */,
    1412514140                                9FFE3E7911B59C5D0037874E /* MemoryInfo.h */,
     
    2270322718                                E1BE512E0CF6C512002EA959 /* XSLTUnicodeSort.h in Headers */,
    2270422719                                977E2E0F12F0FC9C00C13379 /* XSSFilter.h in Headers */,
     22720                                B1E54594134629C10092A545 /* MediaStreamClient.h in Headers */,
     22721                                B1E54598134629C10092A545 /* MediaStreamController.h in Headers */,
     22722                                B1E54596134629C10092A545 /* MediaStreamFrameController.h in Headers */,
    2270522723                        );
    2270622724                        runOnlyForDeploymentPostprocessing = 0;
     
    2536325381                                E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
    2536425382                                977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */,
     25383                                B1E54597134629C10092A545 /* MediaStreamController.cpp in Sources */,
     25384                                B1E54595134629C10092A545 /* MediaStreamFrameController.cpp in Sources */,
    2536525385                        );
    2536625386                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/page/Frame.cpp

    r85256 r85745  
    6060#include "Logging.h"
    6161#include "MediaFeatureNames.h"
     62#include "MediaStreamFrameController.h"
    6263#include "Navigator.h"
    6364#include "NodeList.h"
     
    7172#include "RenderTheme.h"
    7273#include "RenderView.h"
     74#include "RuntimeEnabledFeatures.h"
    7375#include "ScriptController.h"
    7476#include "ScriptSourceCode.h"
     
    164166    , m_isDisconnected(false)
    165167    , m_excludeFromTextSearch(false)
     168#if ENABLE(MEDIA_STREAM)
     169    , m_mediaStreamFrameController(RuntimeEnabledFeatures::mediaStreamEnabled() ? adoptPtr(new MediaStreamFrameController(this)) : PassOwnPtr<MediaStreamFrameController>())
     170#endif
    166171{
    167172    ASSERT(page);
     
    220225    if (m_domWindow)
    221226        m_domWindow->disconnectFrame();
     227
     228#if ENABLE(MEDIA_STREAM)
     229    if (m_mediaStreamFrameController)
     230        m_mediaStreamFrameController->disconnectFrame();
     231#endif
     232
    222233    script()->clearWindowShell();
    223234
     
    731742    }
    732743
     744#if ENABLE(MEDIA_STREAM)
     745    if (m_mediaStreamFrameController)
     746        m_mediaStreamFrameController->disconnectPage();
     747#endif
     748
    733749    // FIXME: It's unclear as to why this is called more than once, but it is,
    734750    // so page() could be NULL.
     
    781797            m_domWindow->resetGeolocation();
    782798
     799#if ENABLE(MEDIA_STREAM)
     800        if (m_mediaStreamFrameController)
     801            m_mediaStreamFrameController->transferToNewPage(newPage);
     802#endif
    783803        m_page = newPage;
    784804
  • trunk/Source/WebCore/page/Frame.h

    r85030 r85745  
    6565    class FrameView;
    6666    class HTMLTableCellElement;
     67    class MediaStreamFrameController;
    6768    class RegularExpression;
    6869    class RenderPart;
     
    199200#endif
    200201
     202#if ENABLE(MEDIA_STREAM)
     203        MediaStreamFrameController* mediaStreamFrameController() const { return m_mediaStreamFrameController.get(); }
     204#endif
     205
    201206    // ========
    202207
     
    265270        OwnPtr<TiledBackingStore> m_tiledBackingStore;
    266271#endif
     272
     273#if ENABLE(MEDIA_STREAM)
     274        OwnPtr<MediaStreamFrameController> m_mediaStreamFrameController;
     275#endif
    267276    };
    268277
  • trunk/Source/WebCore/page/Page.cpp

    r85720 r85745  
    5151#include "Logging.h"
    5252#include "MediaCanStartListener.h"
     53#include "MediaStreamClient.h"
     54#include "MediaStreamController.h"
    5355#include "Navigator.h"
    5456#include "NetworkStateNotifier.h"
     
    131133    , m_deviceMotionController(RuntimeEnabledFeatures::deviceMotionEnabled() ? adoptPtr(new DeviceMotionController(pageClients.deviceMotionClient)) : nullptr)
    132134    , m_deviceOrientationController(RuntimeEnabledFeatures::deviceOrientationEnabled() ? adoptPtr(new DeviceOrientationController(this, pageClients.deviceOrientationClient)) : nullptr)
     135#endif
     136#if ENABLE(MEDIA_STREAM)
     137    , m_mediaStreamController(RuntimeEnabledFeatures::mediaStreamEnabled() ? adoptPtr(new MediaStreamController(pageClients.mediaStreamClient)) : PassOwnPtr<MediaStreamController>())
    133138#endif
    134139#if ENABLE(INPUT_SPEECH)
     
    941946    , deviceOrientationClient(0)
    942947    , speechInputClient(0)
     948    , mediaStreamClient(0)
    943949{
    944950}
  • trunk/Source/WebCore/page/Page.h

    r85256 r85745  
    6767    class InspectorController;
    6868    class MediaCanStartListener;
     69    class MediaStreamClient;
     70    class MediaStreamController;
    6971    class Node;
    7072    class PageGroup;
     
    116118            RefPtr<BackForwardList> backForwardClient;
    117119            SpeechInputClient* speechInputClient;
     120            MediaStreamClient* mediaStreamClient;
    118121        };
    119122
     
    180183        DeviceMotionController* deviceMotionController() const { return m_deviceMotionController.get(); }
    181184        DeviceOrientationController* deviceOrientationController() const { return m_deviceOrientationController.get(); }
     185#endif
     186#if ENABLE(MEDIA_STREAM)
     187        MediaStreamController* mediaStreamController() const { return m_mediaStreamController.get(); }
    182188#endif
    183189#if ENABLE(INPUT_SPEECH)
     
    333339        OwnPtr<DeviceOrientationController> m_deviceOrientationController;
    334340#endif
     341#if ENABLE(MEDIA_STREAM)
     342        OwnPtr<MediaStreamController> m_mediaStreamController;
     343#endif
    335344#if ENABLE(INPUT_SPEECH)
    336345        SpeechInputClient* m_speechInputClient;
Note: See TracChangeset for help on using the changeset viewer.