Changeset 163600 in webkit


Ignore:
Timestamp:
Feb 6, 2014 6:19:55 PM (10 years ago)
Author:
commit-queue@webkit.org
Message:

Add support for AVKit fullscreen to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=128143

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-02-06
Reviewed by Simon Fraser.

Source/WebCore:

Rename overloaded functions to prevent ambiguous template parameter
compile error in generated code.

Rename overloaded exitFullscreen to exitFullscreenWithCompletionHandler.
Rename overloaded enterFullscreen to enterFullscreenWithCompletionHandler.

  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(-[WebVideoFullscreenController exitFullscreen]):

  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::enterFullscreenWithCompletionHandler):
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
(WebVideoFullscreenInterfaceAVKit::exitFullscreenWithCompletionHandler):
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):

  • platform/ios/WebVideoFullscreenModelMediaElement.h:

Source/WebKit2:

Add WebVideoFullscreenManager and WebVideoFullscreenManagerProxy that implement
WebVideoFullscreenModel and WebVideoFullscreenInterface.

  • DerivedSources.make:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

initialize member m_videoFullscreenManager

(WebKit::WebPageProxy::videoFullscreenManager):

add accessor for videoFullscreenManager

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebVideoFullscreenManagerProxy.cpp: Added.

(WebKit::WebVideoFullscreenManagerProxy::create):
(WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
(WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy):

add basic creation for object.

(WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
(WebKit::WebVideoFullscreenManagerProxy::requestExitFullScreen):
(WebKit::WebVideoFullscreenManagerProxy::play):
(WebKit::WebVideoFullscreenManagerProxy::pause):
(WebKit::WebVideoFullscreenManagerProxy::togglePlayState):
(WebKit::WebVideoFullscreenManagerProxy::seekToTime):
(WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):

implement WebVideoFullscreenModel to send IPC message.

  • UIProcess/WebVideoFullscreenManagerProxy.h: Added.
  • UIProcess/WebVideoFullscreenManagerProxy.messages.in: Added.

this interface closely matches WebVideoFullscreenInterface

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::supportsFullscreenForNode):
(WebKit::WebChromeClient::enterFullscreenForNode):
(WebKit::WebChromeClient::exitFullscreenForNode):

Forward these requests onto the videoFullscreenManager

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::videoFullscreenManager):

accessor for m_videoFullscreenManager

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebVideoFullscreenManager.cpp: Added.

(WebKit::WebVideoFullscreenManager::create):
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
(WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager):

add basic creation for object.

(WebKit::WebVideoFullscreenManager::supportsFullscreen):
(WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
(WebKit::WebVideoFullscreenManager::exitFullscreenForNode):

implement interface called by WebChromeClient

(WebKit::WebVideoFullscreenManager::setDuration):
(WebKit::WebVideoFullscreenManager::setCurrentTime):
(WebKit::WebVideoFullscreenManager::setRate):
(WebKit::WebVideoFullscreenManager::setVideoDimensions):
(WebKit::WebVideoFullscreenManager::setVideoLayer):
(WebKit::WebVideoFullscreenManager::setVideoLayerID):
(WebKit::WebVideoFullscreenManager::enterFullscreen):
(WebKit::WebVideoFullscreenManager::exitFullscreen):

implement WebVideoFullscreenInterface to send IPC message.

  • WebProcess/WebVideoFullscreenManager.h: Added.
  • WebProcess/WebVideoFullscreenManager.messages.in: Added.

this interface closely matches WebVideoFullscreenModel

Location:
trunk/Source
Files:
6 added
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r163599 r163600  
     12014-02-06  Jeremy Jones  <jeremyj@apple.com>
     2
     3        Add support for AVKit fullscreen to WebKit2
     4        https://bugs.webkit.org/show_bug.cgi?id=128143
     5
     6        Reviewed by Simon Fraser.
     7
     8        Rename overloaded functions to prevent ambiguous template parameter
     9        compile error in generated code.
     10
     11        Rename overloaded exitFullscreen to exitFullscreenWithCompletionHandler.
     12        Rename overloaded enterFullscreen to enterFullscreenWithCompletionHandler.
     13
     14        * WebCore.exp.in:
     15        * WebCore.xcodeproj/project.pbxproj:
     16        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
     17        (-[WebVideoFullscreenController exitFullscreen]):
     18        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
     19        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
     20        (WebVideoFullscreenInterfaceAVKit::enterFullscreenWithCompletionHandler):
     21        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
     22        (WebVideoFullscreenInterfaceAVKit::exitFullscreenWithCompletionHandler):
     23        (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
     24        * platform/ios/WebVideoFullscreenModelMediaElement.h:
     25
    1262014-02-06  Jeffrey Pfau  <jpfau@apple.com>
    227
  • trunk/Source/WebCore/WebCore.exp.in

    r163568 r163600  
    30543054
    30553055#if ENABLE(VIDEO)
     3056.objc_class_name_WebVideoFullscreenController
     3057__ZN7WebCore10TimeRanges3addEdd
     3058__ZN7WebCore12toTimeRangesEN3JSC7JSValueE
    30563059__ZN7WebCore16HTMLMediaElement12endScrubbingEv
    30573060__ZN7WebCore16HTMLMediaElement14beginScrubbingEv
    30583061__ZN7WebCore16HTMLMediaElement14exitFullscreenEv
    30593062__ZN7WebCore16HTMLMediaElement15clearMediaCacheEv
     3063__ZN7WebCore16HTMLMediaElement15togglePlayStateEv
     3064__ZN7WebCore16HTMLMediaElement16returnToRealtimeEv
    30603065__ZN7WebCore16HTMLMediaElement20getSitesInMediaCacheERN3WTF6VectorINS1_6StringELm0ENS1_15CrashOnOverflowEEE
    30613066__ZN7WebCore16HTMLMediaElement22clearMediaCacheForSiteERKN3WTF6StringE
     
    30633068__ZN7WebCore16HTMLMediaElement5pauseEv
    30643069__ZN7WebCore16HTMLMediaElement8setMutedEb
     3070__ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_10TimeRangesE
     3071__ZNK7WebCore10TimeRanges7nearestEd
    30653072__ZNK7WebCore16HTMLMediaElement11currentTimeEv
     3073__ZNK7WebCore16HTMLMediaElement12isFullscreenEv
     3074__ZNK7WebCore16HTMLMediaElement12playbackRateEv
    30663075__ZNK7WebCore16HTMLMediaElement13platformMediaEv
     3076__ZNK7WebCore16HTMLMediaElement5endedEv
    30673077__ZNK7WebCore16HTMLMediaElement5mutedEv
     3078__ZNK7WebCore16HTMLMediaElement6pausedEv
    30683079__ZNK7WebCore16HTMLMediaElement6volumeEv
    30693080__ZNK7WebCore16HTMLMediaElement7canPlayEv
    3070 __ZNK7WebCore16HTMLMediaElement12playbackRateEv
    30713081__ZNK7WebCore16HTMLMediaElement8durationEv
    3072 __ZN7WebCore16HTMLMediaElement16returnToRealtimeEv
    3073 __ZNK7WebCore16HTMLMediaElement12isFullscreenEv
    3074 __ZN7WebCore10TimeRanges3addEdd
    3075 __ZN7WebCore12toTimeRangesEN3JSC7JSValueE
    3076 __ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_10TimeRangesE
    3077 __ZNK7WebCore10TimeRanges7nearestEd
    3078 #endif
    3079 
    3080 #if ENABLE(VIDEO)
    3081 __ZNK7WebCore16HTMLMediaElement5endedEv
    3082 __ZNK7WebCore16HTMLMediaElement6pausedEv
    3083 .objc_class_name_WebVideoFullscreenController
    3084 #endif
     3082#endif
     3083
     3084#if ENABLE(VIDEO) && PLATFORM(IOS)
     3085__ZN7WebCore32WebVideoFullscreenInterfaceAVKit11setDurationEd
     3086__ZN7WebCore32WebVideoFullscreenInterfaceAVKit13setVideoLayerEP7CALayer
     3087__ZN7WebCore32WebVideoFullscreenInterfaceAVKit14exitFullscreenEv
     3088__ZN7WebCore32WebVideoFullscreenInterfaceAVKit14setCurrentTimeEdd
     3089__ZN7WebCore32WebVideoFullscreenInterfaceAVKit15enterFullscreenEv
     3090__ZN7WebCore32WebVideoFullscreenInterfaceAVKit18setVideoDimensionsEbff
     3091__ZN7WebCore32WebVideoFullscreenInterfaceAVKit26setWebVideoFullscreenModelEPNS_23WebVideoFullscreenModelE
     3092__ZN7WebCore32WebVideoFullscreenInterfaceAVKit7setRateEbf
     3093__ZN7WebCore32WebVideoFullscreenInterfaceAVKitC2Ev
     3094__ZN7WebCore35WebVideoFullscreenModelMediaElement10seekToTimeEd
     3095__ZN7WebCore35WebVideoFullscreenModelMediaElement11handleEventEPNS_22ScriptExecutionContextEPNS_5EventE
     3096__ZN7WebCore35WebVideoFullscreenModelMediaElement15setMediaElementEPNS_16HTMLMediaElementE
     3097__ZN7WebCore35WebVideoFullscreenModelMediaElement15togglePlayStateEv
     3098__ZN7WebCore35WebVideoFullscreenModelMediaElement17didExitFullscreenEv
     3099__ZN7WebCore35WebVideoFullscreenModelMediaElement21requestExitFullScreenEv
     3100__ZN7WebCore35WebVideoFullscreenModelMediaElement4playEv
     3101__ZN7WebCore35WebVideoFullscreenModelMediaElement5pauseEv
     3102__ZN7WebCore35WebVideoFullscreenModelMediaElementC2Ev
     3103__ZN7WebCore35WebVideoFullscreenModelMediaElementD2Ev
     3104__ZNK7WebCore16HTMLVideoElement10videoWidthEv
     3105__ZNK7WebCore16HTMLVideoElement11videoHeightEv
     3106__ZTVN7WebCore32WebVideoFullscreenInterfaceAVKitE
     3107__ZTVN7WebCore35WebVideoFullscreenModelMediaElementE
     3108__ZThn8_N7WebCore35WebVideoFullscreenModelMediaElement11handleEventEPNS_22ScriptExecutionContextEPNS_5EventE
     3109#endif
     3110
    30853111
    30863112#if ENABLE(VIEW_MODE_CSS_MEDIA)
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r163568 r163600  
    59045904                E44613A80CD6331000FADA75 /* HTMLSourceElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E44613960CD6331000FADA75 /* HTMLSourceElement.h */; };
    59055905                E44613AA0CD6331000FADA75 /* HTMLVideoElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E44613980CD6331000FADA75 /* HTMLVideoElement.cpp */; };
    5906                 E44613AB0CD6331000FADA75 /* HTMLVideoElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E44613990CD6331000FADA75 /* HTMLVideoElement.h */; };
     5906                E44613AB0CD6331000FADA75 /* HTMLVideoElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E44613990CD6331000FADA75 /* HTMLVideoElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
    59075907                E44613AD0CD6331000FADA75 /* MediaError.h in Headers */ = {isa = PBXBuildFile; fileRef = E446139B0CD6331000FADA75 /* MediaError.h */; };
    59085908                E44613AF0CD6331000FADA75 /* TimeRanges.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E446139D0CD6331000FADA75 /* TimeRanges.cpp */; };
  • trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm

    r163118 r163600  
    8383    RetainPtr<WebVideoFullscreenController> strongSelf(self);
    8484   
    85     _interface->exitFullscreen([strongSelf]{
     85    _interface->exitFullscreenWithCompletionHandler([strongSelf]{
    8686        WebThreadRun([strongSelf]{
    8787            strongSelf->_model->setMediaElement(nullptr);
  • trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h

    r163097 r163600  
    6565    void setVideoDimensions(bool hasVideo, float width, float height) override;
    6666    void setVideoLayer(PlatformLayer*) override;
    67     void setVideoLayerID(uint32_t videoContextID) override {UNUSED_PARAM(videoContextID);};
     67    void setVideoLayerID(uint32_t) override { };
    6868    void enterFullscreen() override;
    69     void enterFullscreen(std::function<void()> completion);
     69    void enterFullscreenWithCompletionHandler(std::function<void()>);
    7070    void exitFullscreen() override;
    71     void exitFullscreen(std::function<void()> completion);
     71    void exitFullscreenWithCompletionHandler(std::function<void()>);
    7272};
    7373
  • trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm

    r163118 r163600  
    274274}
    275275
    276 void WebVideoFullscreenInterfaceAVKit::enterFullscreen(std::function<void()> completion)
     276void WebVideoFullscreenInterfaceAVKit::enterFullscreenWithCompletionHandler(std::function<void()> completion)
    277277{
    278278    RefPtr<WebVideoFullscreenInterfaceAVKit> strongThis(this);
     
    300300void WebVideoFullscreenInterfaceAVKit::enterFullscreen()
    301301{
    302     enterFullscreen(nullptr);
    303 }
    304 
    305 void WebVideoFullscreenInterfaceAVKit::exitFullscreen(std::function<void()> completion)
     302    enterFullscreenWithCompletionHandler(nullptr);
     303}
     304
     305void WebVideoFullscreenInterfaceAVKit::exitFullscreenWithCompletionHandler(std::function<void()> completion)
    306306{
    307307    m_playerController.clear();
     
    325325void WebVideoFullscreenInterfaceAVKit::exitFullscreen()
    326326{
    327     exitFullscreen(nullptr);
     327    exitFullscreenWithCompletionHandler(nullptr);
    328328}
    329329
  • trunk/Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.h

    r163097 r163600  
    4848public:
    4949    WebVideoFullscreenModelMediaElement();
    50     virtual ~WebVideoFullscreenModelMediaElement() { }
     50    virtual ~WebVideoFullscreenModelMediaElement();
    5151    void setWebVideoFullscreenInterface(WebVideoFullscreenInterface* interface) {m_videoFullscreenInterface = interface;}
    5252    void setMediaElement(HTMLMediaElement*);
  • trunk/Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm

    r163097 r163600  
    3838#import <WebCore/EventNames.h>
    3939#import <WebCore/HTMLElement.h>
     40#import <WebCore/HTMLMediaElement.h>
    4041#import <WebCore/HTMLVideoElement.h>
    4142#import <WebCore/SoftLinking.h>
     
    4849    : EventListener(EventListener::CPPEventListenerType)
    4950    , m_isListening{false}
     51{
     52}
     53
     54WebVideoFullscreenModelMediaElement::~WebVideoFullscreenModelMediaElement()
    5055{
    5156}
  • trunk/Source/WebKit2/ChangeLog

    r163597 r163600  
     12014-02-06  Jeremy Jones  <jeremyj@apple.com>
     2
     3        Add support for AVKit fullscreen to WebKit2
     4        https://bugs.webkit.org/show_bug.cgi?id=128143
     5
     6        Reviewed by Simon Fraser.
     7
     8        Add WebVideoFullscreenManager and WebVideoFullscreenManagerProxy that implement
     9        WebVideoFullscreenModel and WebVideoFullscreenInterface.
     10
     11        * DerivedSources.make:
     12        * UIProcess/WebPageProxy.cpp:
     13        (WebKit::WebPageProxy::WebPageProxy):
     14            initialize member m_videoFullscreenManager
     15   
     16        (WebKit::WebPageProxy::videoFullscreenManager):
     17            add accessor for videoFullscreenManager
     18
     19        * UIProcess/WebPageProxy.h:
     20        * UIProcess/WebVideoFullscreenManagerProxy.cpp: Added.
     21        (WebKit::WebVideoFullscreenManagerProxy::create):
     22        (WebKit::WebVideoFullscreenManagerProxy::WebVideoFullscreenManagerProxy):
     23        (WebKit::WebVideoFullscreenManagerProxy::~WebVideoFullscreenManagerProxy):
     24            add basic creation for object.
     25
     26        (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerID):
     27        (WebKit::WebVideoFullscreenManagerProxy::requestExitFullScreen):
     28        (WebKit::WebVideoFullscreenManagerProxy::play):
     29        (WebKit::WebVideoFullscreenManagerProxy::pause):
     30        (WebKit::WebVideoFullscreenManagerProxy::togglePlayState):
     31        (WebKit::WebVideoFullscreenManagerProxy::seekToTime):
     32        (WebKit::WebVideoFullscreenManagerProxy::didExitFullscreen):
     33            implement WebVideoFullscreenModel to send IPC message.
     34
     35        * UIProcess/WebVideoFullscreenManagerProxy.h: Added.
     36        * UIProcess/WebVideoFullscreenManagerProxy.messages.in: Added.
     37            this interface closely matches WebVideoFullscreenInterface
     38
     39        * WebKit2.xcodeproj/project.pbxproj:
     40        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
     41        (WebKit::WebChromeClient::supportsFullscreenForNode):
     42        (WebKit::WebChromeClient::enterFullscreenForNode):
     43        (WebKit::WebChromeClient::exitFullscreenForNode):
     44            Forward these requests onto the videoFullscreenManager
     45
     46        * WebProcess/WebCoreSupport/WebChromeClient.h:
     47        * WebProcess/WebPage/WebPage.cpp:
     48        (WebKit::WebPage::videoFullscreenManager):
     49            accessor for m_videoFullscreenManager
     50
     51        * WebProcess/WebPage/WebPage.h:
     52        * WebProcess/WebVideoFullscreenManager.cpp: Added.
     53        (WebKit::WebVideoFullscreenManager::create):
     54        (WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
     55        (WebKit::WebVideoFullscreenManager::~WebVideoFullscreenManager):
     56            add basic creation for object.
     57
     58        (WebKit::WebVideoFullscreenManager::supportsFullscreen):
     59        (WebKit::WebVideoFullscreenManager::enterFullscreenForNode):
     60        (WebKit::WebVideoFullscreenManager::exitFullscreenForNode):
     61            implement interface called by WebChromeClient
     62
     63        (WebKit::WebVideoFullscreenManager::setDuration):
     64        (WebKit::WebVideoFullscreenManager::setCurrentTime):
     65        (WebKit::WebVideoFullscreenManager::setRate):
     66        (WebKit::WebVideoFullscreenManager::setVideoDimensions):
     67        (WebKit::WebVideoFullscreenManager::setVideoLayer):
     68        (WebKit::WebVideoFullscreenManager::setVideoLayerID):
     69        (WebKit::WebVideoFullscreenManager::enterFullscreen):
     70        (WebKit::WebVideoFullscreenManager::exitFullscreen):
     71            implement WebVideoFullscreenInterface to send IPC message.
     72
     73        * WebProcess/WebVideoFullscreenManager.h: Added.
     74        * WebProcess/WebVideoFullscreenManager.messages.in: Added.
     75            this interface closely matches WebVideoFullscreenModel
     76
    1772014-02-06  Anders Carlsson  <andersca@apple.com>
    278
  • trunk/Source/WebKit2/DerivedSources.make

    r161376 r163600  
    5151    $(WebKit2)/WebProcess/WebCoreSupport \
    5252    $(WebKit2)/WebProcess/WebPage \
     53    $(WebKit2)/WebProcess/ios \
    5354    $(WebKit2)/WebProcess \
    5455    $(WebKit2)/UIProcess \
     
    6162    $(WebKit2)/UIProcess/Storage \
    6263    $(WebKit2)/UIProcess/mac \
     64    $(WebKit2)/UIProcess/ios \
    6365#
    6466
     
    127129    WebResourceCacheManagerProxy \
    128130    WebResourceLoader \
     131    WebVideoFullscreenManager \
     132    WebVideoFullscreenManagerProxy \
    129133#
    130134
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r163597 r163600  
    9797#include <WebCore/TextCheckerClient.h>
    9898#include <WebCore/WindowFeatures.h>
     99#include <stdio.h>
    99100#include <wtf/NeverDestroyed.h>
    100 #include <stdio.h>
    101101
    102102#if ENABLE(ASYNC_SCROLLING)
     
    130130#if PLATFORM(MAC)
    131131#include "ViewSnapshotStore.h"
     132#endif
     133
     134#if PLATFORM(IOS)
     135#include "WebVideoFullscreenManagerProxy.h"
     136#include "WebVideoFullscreenManagerProxyMessages.h"
    132137#endif
    133138
     
    350355    m_fullScreenManager = WebFullScreenManagerProxy::create(*this, m_pageClient.fullScreenManagerProxyClient());
    351356#endif
     357#if PLATFORM(IOS)
     358    m_videoFullscreenManager = WebVideoFullscreenManagerProxy::create(*this);
     359#endif
    352360#if ENABLE(VIBRATION)
    353361    m_vibration = WebVibrationProxy::create(this);
     
    29702978{
    29712979    return m_fullScreenManager.get();
     2980}
     2981#endif
     2982   
     2983#if PLATFORM(IOS)
     2984RefPtr<WebVideoFullscreenManagerProxy> WebPageProxy::videoFullscreenManager()
     2985{
     2986    return m_videoFullscreenManager;
    29722987}
    29732988#endif
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r163597 r163600  
    150150class WebEditCommandProxy;
    151151class WebFullScreenManagerProxy;
     152class WebVideoFullscreenManagerProxy;
    152153class WebKeyboardEvent;
    153154class WebMouseEvent;
     
    362363#if ENABLE(FULLSCREEN_API)
    363364    WebFullScreenManagerProxy* fullScreenManager();
     365#endif
     366#if PLATFORM(IOS)
     367    RefPtr<WebVideoFullscreenManagerProxy> videoFullscreenManager();
    364368#endif
    365369
     
    12161220    RefPtr<WebFullScreenManagerProxy> m_fullScreenManager;
    12171221#endif
     1222#if PLATFORM(IOS)
     1223    RefPtr<WebVideoFullscreenManagerProxy> m_videoFullscreenManager;
     1224#endif
    12181225
    12191226#if ENABLE(VIBRATION)
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r163563 r163600  
    607607                37FC194A18510D6A008CFA47 /* WKNSURLAuthenticationChallenge.mm in Sources */ = {isa = PBXBuildFile; fileRef = 37FC194818510D6A008CFA47 /* WKNSURLAuthenticationChallenge.mm */; };
    608608                37FC194B18510D6A008CFA47 /* WKNSURLAuthenticationChallenge.h in Headers */ = {isa = PBXBuildFile; fileRef = 37FC194918510D6A008CFA47 /* WKNSURLAuthenticationChallenge.h */; };
     609                3F418EF91887BD97002795FD /* WebVideoFullscreenManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F418EF51887BD97002795FD /* WebVideoFullscreenManagerMessageReceiver.cpp */; };
     610                3F418EFB1887BD97002795FD /* WebVideoFullscreenManagerProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F418EF71887BD97002795FD /* WebVideoFullscreenManagerProxyMessageReceiver.cpp */; };
    609611                3F87B9BD158940120090FF62 /* WebColorChooser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F87B9BA15893F630090FF62 /* WebColorChooser.cpp */; };
    610612                3F87B9BE158940190090FF62 /* WebColorChooser.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F87B9BB15893F630090FF62 /* WebColorChooser.h */; };
    611613                3F87B9C0158940D80090FF62 /* WebColorPicker.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F87B9BF158940D80090FF62 /* WebColorPicker.h */; };
     614                3F889D14188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp */; };
     615                3F889D15188778C900FEADAF /* WebVideoFullscreenManagerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F889D13188778C900FEADAF /* WebVideoFullscreenManagerProxy.h */; };
     616                3F889D171887859300FEADAF /* WebVideoFullscreenManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F889D0D1887699C00FEADAF /* WebVideoFullscreenManager.cpp */; };
    612617                4F601432155C5AA2001FBDE0 /* BlockingResponseMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F601430155C5A32001FBDE0 /* BlockingResponseMap.h */; };
    613618                51021E9C12B16788005C033C /* WebContextMenuClientMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51021E9B12B16788005C033C /* WebContextMenuClientMac.mm */; };
     
    23012306                37FC194818510D6A008CFA47 /* WKNSURLAuthenticationChallenge.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNSURLAuthenticationChallenge.mm; sourceTree = "<group>"; };
    23022307                37FC194918510D6A008CFA47 /* WKNSURLAuthenticationChallenge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNSURLAuthenticationChallenge.h; sourceTree = "<group>"; };
     2308                3F418EF51887BD97002795FD /* WebVideoFullscreenManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebVideoFullscreenManagerMessageReceiver.cpp; sourceTree = "<group>"; };
     2309                3F418EF61887BD97002795FD /* WebVideoFullscreenManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVideoFullscreenManagerMessages.h; sourceTree = "<group>"; };
     2310                3F418EF71887BD97002795FD /* WebVideoFullscreenManagerProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebVideoFullscreenManagerProxyMessageReceiver.cpp; sourceTree = "<group>"; };
     2311                3F418EF81887BD97002795FD /* WebVideoFullscreenManagerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVideoFullscreenManagerProxyMessages.h; sourceTree = "<group>"; };
    23032312                3F87B9BA15893F630090FF62 /* WebColorChooser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebColorChooser.cpp; sourceTree = "<group>"; };
    23042313                3F87B9BB15893F630090FF62 /* WebColorChooser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebColorChooser.h; sourceTree = "<group>"; };
    23052314                3F87B9BF158940D80090FF62 /* WebColorPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebColorPicker.h; sourceTree = "<group>"; };
     2315                3F889D0D1887699C00FEADAF /* WebVideoFullscreenManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebVideoFullscreenManager.cpp; path = ios/WebVideoFullscreenManager.cpp; sourceTree = "<group>"; };
     2316                3F889D0E1887699C00FEADAF /* WebVideoFullscreenManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebVideoFullscreenManager.h; path = ios/WebVideoFullscreenManager.h; sourceTree = "<group>"; };
     2317                3F889D101887710000FEADAF /* WebVideoFullscreenManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = WebVideoFullscreenManager.messages.in; path = ios/WebVideoFullscreenManager.messages.in; sourceTree = "<group>"; };
     2318                3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WebVideoFullscreenManagerProxy.cpp; path = ios/WebVideoFullscreenManagerProxy.cpp; sourceTree = "<group>"; };
     2319                3F889D13188778C900FEADAF /* WebVideoFullscreenManagerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebVideoFullscreenManagerProxy.h; path = ios/WebVideoFullscreenManagerProxy.h; sourceTree = "<group>"; };
     2320                3F889D1618877A2400FEADAF /* WebVideoFullscreenManagerProxy.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = WebVideoFullscreenManagerProxy.messages.in; path = ios/WebVideoFullscreenManagerProxy.messages.in; sourceTree = "<group>"; };
    23062321                4F601430155C5A32001FBDE0 /* BlockingResponseMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockingResponseMap.h; sourceTree = "<group>"; };
    23072322                510031F61379CACB00C8DFE4 /* SecItemShim.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = SecItemShim.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
     
    41994214                                2DA944AB1884E9BA00ED86DB /* WebPageProxyIOS.mm */,
    42004215                                2DA944AC1884E9BA00ED86DB /* WebProcessProxyIOS.mm */,
     4216                                3F889D12188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp */,
     4217                                3F889D13188778C900FEADAF /* WebVideoFullscreenManagerProxy.h */,
     4218                                3F889D1618877A2400FEADAF /* WebVideoFullscreenManagerProxy.messages.in */,
    42014219                        );
    42024220                        name = ios;
     
    42074225                        children = (
    42084226                                2DA944B21884E9EC00ED86DB /* WebProcessIOS.mm */,
     4227                                3F889D0D1887699C00FEADAF /* WebVideoFullscreenManager.cpp */,
     4228                                3F889D0E1887699C00FEADAF /* WebVideoFullscreenManager.h */,
     4229                                3F889D101887710000FEADAF /* WebVideoFullscreenManager.messages.in */,
    42094230                        );
    42104231                        name = ios;
     
    60436064                                51F060DD1654317500F3281B /* WebResourceLoaderMessageReceiver.cpp */,
    60446065                                51F060DE1654317500F3281B /* WebResourceLoaderMessages.h */,
     6066                                3F418EF51887BD97002795FD /* WebVideoFullscreenManagerMessageReceiver.cpp */,
     6067                                3F418EF61887BD97002795FD /* WebVideoFullscreenManagerMessages.h */,
     6068                                3F418EF71887BD97002795FD /* WebVideoFullscreenManagerProxyMessageReceiver.cpp */,
     6069                                3F418EF81887BD97002795FD /* WebVideoFullscreenManagerProxyMessages.h */,
    60456070                        );
    60466071                        name = "Derived Sources";
     
    66046629                                BC032D8F10F437A00058C15A /* WebPage.h in Headers */,
    66056630                                5153569D1291B1D2000749DC /* WebPageContextMenuClient.h in Headers */,
     6631                                3F889D15188778C900FEADAF /* WebVideoFullscreenManagerProxy.h in Headers */,
    66066632                                BC7B6206129A0A6700D174A4 /* WebPageGroup.h in Headers */,
    66076633                                BC7B625212A43C9600D174A4 /* WebPageGroupData.h in Headers */,
     
    79227948                                F62A76B612B1B25F0005F1B6 /* WebDatabaseManagerMessageReceiver.cpp in Sources */,
    79237949                                51E35209180F5D6B00E53BE9 /* DatabaseServiceEntryPoint.mm in Sources */,
     7950                                3F418EF91887BD97002795FD /* WebVideoFullscreenManagerMessageReceiver.cpp in Sources */,
    79247951                                F62A765C12B1ABC30005F1B6 /* WebDatabaseManagerProxy.cpp in Sources */,
    79257952                                BCAC112012C92C1F00B08EEE /* WebDatabaseManagerProxyClient.cpp in Sources */,
     
    80578084                                33367657130C9ECA006C9DE2 /* WebResourceCacheManagerProxyMessageReceiver.cpp in Sources */,
    80588085                                510AFFB916542048001BA05E /* WebResourceLoader.cpp in Sources */,
     8086                                3F889D14188778C900FEADAF /* WebVideoFullscreenManagerProxy.cpp in Sources */,
    80598087                                51F060E11654318500F3281B /* WebResourceLoaderMessageReceiver.cpp in Sources */,
    80608088                                378E1A3D181ED6FF0031007A /* APIObject.mm in Sources */,
     
    81678195                                BC85806212B8505700EDEB2E /* WKOpenPanelResultListener.cpp in Sources */,
    81688196                                51FCB18817BBFE0300394CD8 /* SynchronousNetworkLoaderClient.cpp in Sources */,
     8197                                3F418EFB1887BD97002795FD /* WebVideoFullscreenManagerProxyMessageReceiver.cpp in Sources */,
    81698198                                BCD597D6112B56DC00EC8C23 /* WKPage.cpp in Sources */,
     8199                                3F889D171887859300FEADAF /* WebVideoFullscreenManager.cpp in Sources */,
    81708200                                BC7B633812A45ABA00D174A4 /* WKPageGroup.cpp in Sources */,
    81718201                                BCE17B7D1381F1170012A641 /* WKPagePrivateMac.cpp in Sources */,
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp

    r163591 r163600  
    7070#include <WebCore/Settings.h>
    7171
     72#if PLATFORM(IOS)
     73#include "WebVideoFullscreenManager.h"
     74#endif
     75
    7276#if ENABLE(ASYNC_SCROLLING)
    7377#include "RemoteScrollingCoordinator.h"
     
    822826#endif
    823827
     828#if PLATFORM(IOS)
     829bool WebChromeClient::supportsFullscreenForNode(const WebCore::Node* node)
     830{
     831    return m_page->videoFullscreenManager()->supportsFullscreen(node);
     832}
     833
     834void WebChromeClient::enterFullscreenForNode(WebCore::Node* node)
     835{
     836    m_page->videoFullscreenManager()->enterFullscreenForNode(node);
     837}
     838
     839void WebChromeClient::exitFullscreenForNode(WebCore::Node* node)
     840{
     841    m_page->videoFullscreenManager()->exitFullscreenForNode(node);
     842}
     843#endif
     844   
    824845#if ENABLE(FULLSCREEN_API)
    825846bool WebChromeClient::supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard)
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h

    r163591 r163600  
    239239#endif
    240240
     241#if PLATFORM(IOS)
     242    virtual bool supportsFullscreenForNode(const WebCore::Node*);
     243    virtual void enterFullscreenForNode(WebCore::Node*);
     244    virtual void exitFullscreenForNode(WebCore::Node*);
     245#endif
     246
    241247#if ENABLE(FULLSCREEN_API)
    242248    virtual bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard) override;
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r163524 r163600  
    183183#endif
    184184
     185#if PLATFORM(IOS)
     186#include "WebVideoFullscreenManager.h"
     187#endif
     188
    185189#ifndef NDEBUG
    186190#include <wtf/RefCountedLeakCounter.h>
     
    25852589}
    25862590#endif
     2591   
     2592#if PLATFORM(IOS)
     2593WebVideoFullscreenManager* WebPage::videoFullscreenManager()
     2594{
     2595    if (!m_videoFullscreenManager)
     2596        m_videoFullscreenManager = WebVideoFullscreenManager::create(this);
     2597    return m_videoFullscreenManager.get();
     2598}
     2599#endif
    25872600
    25882601#if ENABLE(FULLSCREEN_API)
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h

    r163524 r163600  
    155155class WebPageGroupProxy;
    156156class WebPopupMenu;
     157class WebVideoFullscreenManager;
    157158class WebWheelEvent;
    158159struct AttributedString;
     
    205206#if ENABLE(INSPECTOR)
    206207    WebInspector* inspector();
     208#endif
     209   
     210#if PLATFORM(IOS)
     211    WebVideoFullscreenManager* videoFullscreenManager();
    207212#endif
    208213
     
    10061011    RefPtr<WebInspector> m_inspector;
    10071012#endif
     1013#if PLATFORM(IOS)
     1014    RefPtr<WebVideoFullscreenManager> m_videoFullscreenManager;
     1015#endif
    10081016#if ENABLE(FULLSCREEN_API)
    10091017    RefPtr<WebFullScreenManager> m_fullScreenManager;
Note: See TracChangeset for help on using the changeset viewer.