1d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)// found in the LICENSE file. 4d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 5d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "config.h" 6d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "web/RemoteFrameClient.h" 7d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 87242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "platform/weborigin/SecurityOrigin.h" 97242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#include "web/WebLocalFrameImpl.h" 10d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)#include "web/WebRemoteFrameImpl.h" 11d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 12d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)namespace blink { 13d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 14d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)RemoteFrameClient::RemoteFrameClient(WebRemoteFrameImpl* webFrame) 15d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) : m_webFrame(webFrame) 16d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 17d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 18d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 19e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)Frame* RemoteFrameClient::opener() const 20d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 21e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return toCoreFrame(m_webFrame->opener()); 22d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 23d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 24e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)void RemoteFrameClient::setOpener(Frame*) 25d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 26d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) // FIXME: Implement. 27d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 28d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 29e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)Frame* RemoteFrameClient::parent() const 30d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 31e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return toCoreFrame(m_webFrame->parent()); 32d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 33d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 34e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)Frame* RemoteFrameClient::top() const 35d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 36e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return toCoreFrame(m_webFrame->top()); 37d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 38d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 39e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)Frame* RemoteFrameClient::previousSibling() const 40d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 41e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return toCoreFrame(m_webFrame->previousSibling()); 42d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 43d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 44e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)Frame* RemoteFrameClient::nextSibling() const 45d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 46e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return toCoreFrame(m_webFrame->nextSibling()); 47d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 48d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 49e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)Frame* RemoteFrameClient::firstChild() const 50d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 51e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return toCoreFrame(m_webFrame->firstChild()); 52d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 53d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 54e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)Frame* RemoteFrameClient::lastChild() const 55d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles){ 56e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) return toCoreFrame(m_webFrame->lastChild()); 57d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} 58d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 597242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tuccibool RemoteFrameClient::willCheckAndDispatchMessageEvent( 607242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci SecurityOrigin* target, MessageEvent* event, LocalFrame* sourceFrame) const 617242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci{ 627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci if (m_webFrame->client()) 637242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci m_webFrame->client()->postMessageEvent(WebLocalFrameImpl::fromFrame(sourceFrame), m_webFrame, WebSecurityOrigin(target), WebDOMMessageEvent(event)); 647242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci return true; 657242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci} 667242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 67d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles)} // namespace blink 68