1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)// found in the LICENSE file. 4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#ifndef RemoteFrame_h 6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define RemoteFrame_h 7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 8d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "core/frame/Frame.h" 9d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 10c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 1207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdochclass RemoteFrameView; 1307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 14d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)class RemoteFrame: public Frame { 15d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)public: 167242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static PassRefPtrWillBeRawPtr<RemoteFrame> create(FrameClient*, FrameHost*, FrameOwner*); 17d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) virtual bool isRemoteFrame() const OVERRIDE { return true; } 18d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 19d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) virtual ~RemoteFrame(); 20d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 21c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) virtual void detach() OVERRIDE; 22c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 2307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch void setView(PassRefPtr<RemoteFrameView>); 2407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch void createView(); 2507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 26323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) RemoteFrameView* view() const; 27323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 28d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)private: 29f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles) RemoteFrame(FrameClient*, FrameHost*, FrameOwner*); 3007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 3107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch RefPtr<RemoteFrameView> m_view; 32d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)}; 33d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 34323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)inline RemoteFrameView* RemoteFrame::view() const 35323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles){ 36323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) return m_view.get(); 37323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)} 38323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 39d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)DEFINE_TYPE_CASTS(RemoteFrame, Frame, remoteFrame, remoteFrame->isRemoteFrame(), remoteFrame.isRemoteFrame()); 40d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 41c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 42d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 43d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#endif // RemoteFrame_h 44