WebFullScreenManagerWin.cpp [plain text]
#include "config.h"
#include "WebFullScreenManagerWin.h"
#if ENABLE(FULLSCREEN_API)
#include "MessageID.h"
#include "WebFullScreenManagerProxyMessages.h"
#include "WebPage.h"
#include "WebProcess.h"
#include <WebCore/Frame.h>
#include <WebCore/FrameView.h>
#include <WebCore/GraphicsLayer.h>
#include <WebCore/Page.h>
#include <WebKitSystemInterface/WebKitSystemInterface.h>
using namespace WebCore;
namespace WebKit {
PassRefPtr<WebFullScreenManager> WebFullScreenManager::create(WebPage* page)
{
return WebFullScreenManagerWin::create(page);
}
PassRefPtr<WebFullScreenManagerWin> WebFullScreenManagerWin::create(WebPage* page)
{
return adoptRef(new WebFullScreenManagerWin(page));
}
WebFullScreenManagerWin::WebFullScreenManagerWin(WebPage* page)
: WebFullScreenManager(page)
{
}
WebFullScreenManagerWin::~WebFullScreenManagerWin()
{
m_page->send(Messages::WebFullScreenManagerProxy::ExitAcceleratedCompositingMode());
}
void WebFullScreenManagerWin::setRootFullScreenLayer(WebCore::GraphicsLayer* layer)
{
if (m_fullScreenRootLayer == layer)
return;
m_fullScreenRootLayer = layer;
if (!m_fullScreenRootLayer) {
m_page->send(Messages::WebFullScreenManagerProxy::ExitAcceleratedCompositingMode());
if (m_rootLayer) {
m_rootLayer->removeAllChildren();
m_rootLayer = nullptr;
}
return;
}
if (!m_rootLayer) {
m_rootLayer = GraphicsLayer::create(0);
#ifndef NDEBUG
m_rootLayer->setName("Full screen root layer");
#endif
m_rootLayer->setDrawsContent(false);
m_rootLayer->setSize(getFullScreenRect().size());
}
m_rootLayer->removeAllChildren();
if (m_fullScreenRootLayer)
m_rootLayer->addChild(m_fullScreenRootLayer);
m_rootLayer->syncCompositingStateForThisLayerOnly();
m_page->corePage()->mainFrame()->view()->syncCompositingStateIncludingSubframes();
}
void WebFullScreenManagerWin::beginEnterFullScreenAnimation(float)
{
}
void WebFullScreenManagerWin::beginExitFullScreenAnimation(float)
{
}
}
#endif // ENABLE(FULLSCREEN_API)