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