mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Also, add support for exposing services to <iframes>. This worked before but now that [Client=...] is gone we need to create another message pipe. R=sky@chromium.org Review URL: https://codereview.chromium.org/882723003
56 lines
1.6 KiB
C++
56 lines
1.6 KiB
C++
// Copyright 2014 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef SKY_ENGINE_CORE_HTML_HTMLIFRAMEELEMENT_H_
|
|
#define SKY_ENGINE_CORE_HTML_HTMLIFRAMEELEMENT_H_
|
|
|
|
#include "gen/sky/core/HTMLNames.h"
|
|
#include "mojo/services/view_manager/public/cpp/view_observer.h"
|
|
#include "sky/engine/core/dom/DOMURLUtils.h"
|
|
#include "sky/engine/core/dom/Document.h"
|
|
#include "sky/engine/core/html/HTMLElement.h"
|
|
#include "sky/engine/wtf/OwnPtr.h"
|
|
|
|
namespace blink {
|
|
|
|
class RemoteFrame;
|
|
|
|
class HTMLIFrameElement : public HTMLElement,
|
|
public mojo::ViewObserver {
|
|
DEFINE_WRAPPERTYPEINFO();
|
|
public:
|
|
static PassRefPtr<HTMLIFrameElement> create(Document&);
|
|
|
|
~HTMLIFrameElement() override;
|
|
|
|
mojo::View* contentView() const { return m_contentView; }
|
|
|
|
ScriptValue takeServicesHandle(ScriptState*);
|
|
ScriptValue takeExposedServicesHandle(ScriptState*);
|
|
|
|
private:
|
|
explicit HTMLIFrameElement(Document&);
|
|
|
|
// HTMLElement methods:
|
|
RenderObject* createRenderer(RenderStyle* style) override;
|
|
|
|
void insertedInto(ContainerNode*) override;
|
|
void removedFrom(ContainerNode*) override;
|
|
void parseAttribute(const QualifiedName& name, const AtomicString& value) override;
|
|
|
|
// ViewObserver methods:
|
|
void OnViewDestroyed(mojo::View* view) override;
|
|
|
|
void createView();
|
|
void navigateView();
|
|
|
|
mojo::View* m_contentView;
|
|
mojo::ServiceProviderPtr m_services;
|
|
mojo::ScopedMessagePipeHandle m_exposedServices;
|
|
};
|
|
|
|
} // namespace blink
|
|
|
|
#endif // SKY_ENGINE_CORE_HTML_HTMLIFRAMEELEMENT_H_
|