12bde8e466a4451c7319e3a072d118917957d6554Steve Block/* 22bde8e466a4451c7319e3a072d118917957d6554Steve Block * Copyright (C) 2011 Apple Inc. All rights reserved. 32bde8e466a4451c7319e3a072d118917957d6554Steve Block * 42bde8e466a4451c7319e3a072d118917957d6554Steve Block * Redistribution and use in source and binary forms, with or without 52bde8e466a4451c7319e3a072d118917957d6554Steve Block * modification, are permitted provided that the following conditions 62bde8e466a4451c7319e3a072d118917957d6554Steve Block * are met: 72bde8e466a4451c7319e3a072d118917957d6554Steve Block * 1. Redistributions of source code must retain the above copyright 82bde8e466a4451c7319e3a072d118917957d6554Steve Block * notice, this list of conditions and the following disclaimer. 92bde8e466a4451c7319e3a072d118917957d6554Steve Block * 2. Redistributions in binary form must reproduce the above copyright 102bde8e466a4451c7319e3a072d118917957d6554Steve Block * notice, this list of conditions and the following disclaimer in the 112bde8e466a4451c7319e3a072d118917957d6554Steve Block * documentation and/or other materials provided with the distribution. 122bde8e466a4451c7319e3a072d118917957d6554Steve Block * 132bde8e466a4451c7319e3a072d118917957d6554Steve Block * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 142bde8e466a4451c7319e3a072d118917957d6554Steve Block * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 152bde8e466a4451c7319e3a072d118917957d6554Steve Block * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 162bde8e466a4451c7319e3a072d118917957d6554Steve Block * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 172bde8e466a4451c7319e3a072d118917957d6554Steve Block * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 182bde8e466a4451c7319e3a072d118917957d6554Steve Block * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 192bde8e466a4451c7319e3a072d118917957d6554Steve Block * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 202bde8e466a4451c7319e3a072d118917957d6554Steve Block * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 212bde8e466a4451c7319e3a072d118917957d6554Steve Block * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 222bde8e466a4451c7319e3a072d118917957d6554Steve Block * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 232bde8e466a4451c7319e3a072d118917957d6554Steve Block * THE POSSIBILITY OF SUCH DAMAGE. 242bde8e466a4451c7319e3a072d118917957d6554Steve Block */ 252bde8e466a4451c7319e3a072d118917957d6554Steve Block 262bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "config.h" 272bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "WebFullScreenManagerProxy.h" 282bde8e466a4451c7319e3a072d118917957d6554Steve Block 292bde8e466a4451c7319e3a072d118917957d6554Steve Block#if ENABLE(FULLSCREEN_API) 302bde8e466a4451c7319e3a072d118917957d6554Steve Block 312bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "WebContext.h" 322bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "WebFullScreenManagerMessages.h" 332bde8e466a4451c7319e3a072d118917957d6554Steve Block#include "WebFullScreenManagerProxyMessages.h" 342bde8e466a4451c7319e3a072d118917957d6554Steve Block 352bde8e466a4451c7319e3a072d118917957d6554Steve Blocknamespace WebKit { 362bde8e466a4451c7319e3a072d118917957d6554Steve Block 372bde8e466a4451c7319e3a072d118917957d6554Steve BlockPassRefPtr<WebFullScreenManagerProxy> WebFullScreenManagerProxy::create(WebPageProxy* page) 382bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 392bde8e466a4451c7319e3a072d118917957d6554Steve Block return adoptRef(new WebFullScreenManagerProxy(page)); 402bde8e466a4451c7319e3a072d118917957d6554Steve Block} 412bde8e466a4451c7319e3a072d118917957d6554Steve Block 422bde8e466a4451c7319e3a072d118917957d6554Steve BlockWebFullScreenManagerProxy::WebFullScreenManagerProxy(WebPageProxy* page) 432bde8e466a4451c7319e3a072d118917957d6554Steve Block : m_page(page) 442bde8e466a4451c7319e3a072d118917957d6554Steve Block , m_webView(0) 452bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 462bde8e466a4451c7319e3a072d118917957d6554Steve Block} 472bde8e466a4451c7319e3a072d118917957d6554Steve Block 482bde8e466a4451c7319e3a072d118917957d6554Steve BlockWebFullScreenManagerProxy::~WebFullScreenManagerProxy() 492bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 502bde8e466a4451c7319e3a072d118917957d6554Steve Block} 512bde8e466a4451c7319e3a072d118917957d6554Steve Block 522bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::invalidate() 532bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 542bde8e466a4451c7319e3a072d118917957d6554Steve Block m_webView = 0; 552bde8e466a4451c7319e3a072d118917957d6554Steve Block} 562bde8e466a4451c7319e3a072d118917957d6554Steve Block 572bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::setWebView(PlatformWebView* webView) 582bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 592bde8e466a4451c7319e3a072d118917957d6554Steve Block m_webView = webView; 602bde8e466a4451c7319e3a072d118917957d6554Steve Block} 612bde8e466a4451c7319e3a072d118917957d6554Steve Block 622bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments) 632bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 642bde8e466a4451c7319e3a072d118917957d6554Steve Block didReceiveWebFullScreenManagerProxyMessage(connection, messageID, arguments); 652bde8e466a4451c7319e3a072d118917957d6554Steve Block} 662bde8e466a4451c7319e3a072d118917957d6554Steve Block 672bde8e466a4451c7319e3a072d118917957d6554Steve BlockCoreIPC::SyncReplyMode WebFullScreenManagerProxy::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, CoreIPC::ArgumentEncoder* reply) 682bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 692bde8e466a4451c7319e3a072d118917957d6554Steve Block return didReceiveSyncWebFullScreenManagerProxyMessage(connection, messageID, arguments, reply); 702bde8e466a4451c7319e3a072d118917957d6554Steve Block} 712bde8e466a4451c7319e3a072d118917957d6554Steve Block 722bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::willEnterFullScreen() 732bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 742bde8e466a4451c7319e3a072d118917957d6554Steve Block m_page->process()->send(Messages::WebFullScreenManager::WillEnterFullScreen(), m_page->pageID()); 752bde8e466a4451c7319e3a072d118917957d6554Steve Block} 762bde8e466a4451c7319e3a072d118917957d6554Steve Block 772bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::didEnterFullScreen() 782bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 792bde8e466a4451c7319e3a072d118917957d6554Steve Block m_page->process()->send(Messages::WebFullScreenManager::DidEnterFullScreen(), m_page->pageID()); 802bde8e466a4451c7319e3a072d118917957d6554Steve Block} 812bde8e466a4451c7319e3a072d118917957d6554Steve Block 822bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::willExitFullScreen() 832bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 842bde8e466a4451c7319e3a072d118917957d6554Steve Block m_page->process()->send(Messages::WebFullScreenManager::WillExitFullScreen(), m_page->pageID()); 852bde8e466a4451c7319e3a072d118917957d6554Steve Block} 862bde8e466a4451c7319e3a072d118917957d6554Steve Block 872bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::didExitFullScreen() 882bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 892bde8e466a4451c7319e3a072d118917957d6554Steve Block m_page->process()->send(Messages::WebFullScreenManager::DidExitFullScreen(), m_page->pageID()); 902bde8e466a4451c7319e3a072d118917957d6554Steve Block} 912bde8e466a4451c7319e3a072d118917957d6554Steve Block 922bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::beginEnterFullScreenAnimation(float duration) 932bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 942bde8e466a4451c7319e3a072d118917957d6554Steve Block m_page->process()->send(Messages::WebFullScreenManager::BeginEnterFullScreenAnimation(duration), m_page->pageID()); 952bde8e466a4451c7319e3a072d118917957d6554Steve Block} 962bde8e466a4451c7319e3a072d118917957d6554Steve Block 972bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::beginExitFullScreenAnimation(float duration) 982bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 992bde8e466a4451c7319e3a072d118917957d6554Steve Block m_page->process()->send(Messages::WebFullScreenManager::BeginExitFullScreenAnimation(duration), m_page->pageID()); 1002bde8e466a4451c7319e3a072d118917957d6554Steve Block} 1012bde8e466a4451c7319e3a072d118917957d6554Steve Block 1022bde8e466a4451c7319e3a072d118917957d6554Steve Blockvoid WebFullScreenManagerProxy::supportsFullScreen(bool withKeyboard, bool& supports) 1032bde8e466a4451c7319e3a072d118917957d6554Steve Block{ 1042bde8e466a4451c7319e3a072d118917957d6554Steve Block if (withKeyboard) 1052bde8e466a4451c7319e3a072d118917957d6554Steve Block supports = false; 1062bde8e466a4451c7319e3a072d118917957d6554Steve Block else 1072bde8e466a4451c7319e3a072d118917957d6554Steve Block supports = true; 1082bde8e466a4451c7319e3a072d118917957d6554Steve Block} 1092bde8e466a4451c7319e3a072d118917957d6554Steve Block 1102bde8e466a4451c7319e3a072d118917957d6554Steve Block} // namespace WebKit 1112bde8e466a4451c7319e3a072d118917957d6554Steve Block 1122bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif // ENABLE(FULLSCREEN_API) 113