Ejemplo n.º 1
0
WebRemoteFrameImpl* createRemoteChild(WebRemoteFrame* parent,
                                      WebRemoteFrameClient* client,
                                      const WebString& name) {
  return toWebRemoteFrameImpl(parent->createRemoteChild(
      WebTreeScopeType::Document, name, nameToUniqueName(name),
      WebSandboxFlags::None, client, nullptr));
}
WebRemoteFrame* WebRemoteFrameImpl::createRemoteChild(WebTreeScopeType scope, const WebString& name, WebSandboxFlags sandboxFlags, WebRemoteFrameClient* client)
{
    WebRemoteFrameImpl* child = toWebRemoteFrameImpl(WebRemoteFrame::create(scope, client));
    WillBeHeapHashMap<WebFrame*, OwnPtrWillBeMember<FrameOwner>>::AddResult result =
        m_ownersForChildren.add(child, RemoteBridgeFrameOwner::create(nullptr, static_cast<SandboxFlags>(sandboxFlags), WebFrameOwnerProperties()));
    appendChild(child);
    child->initializeCoreFrame(frame()->host(), result.storedValue->value.get(), name, nullAtom);
    return child;
}
Ejemplo n.º 3
0
ALWAYS_INLINE bool WebFrame::isFrameAlive(const WebFrame* frame) {
  if (!frame)
    return true;

  if (frame->isWebLocalFrame())
    return ThreadHeap::isHeapObjectAlive(toWebLocalFrameImpl(frame));

  return ThreadHeap::isHeapObjectAlive(toWebRemoteFrameImpl(frame));
}
Ejemplo n.º 4
0
WebRemoteFrame* WebRemoteFrameImpl::createRemoteChild(const WebString& name, WebRemoteFrameClient* client)
{
    WebRemoteFrameImpl* child = toWebRemoteFrameImpl(WebRemoteFrame::create(client));
    WillBeHeapHashMap<WebFrame*, OwnPtrWillBeMember<FrameOwner> >::AddResult result =
        m_ownersForChildren.add(child, adoptPtrWillBeNoop(new PlaceholderFrameOwner));
    appendChild(child);
    child->initializeCoreFrame(frame()->host(), result.storedValue->value.get(), name);
    return child;
}
Ejemplo n.º 5
0
ALWAYS_INLINE void WebFrame::traceFrameImpl(VisitorDispatcher visitor,
                                            WebFrame* frame) {
  if (!frame)
    return;

  if (frame->isWebLocalFrame())
    visitor->trace(toWebLocalFrameImpl(frame));
  else
    visitor->trace(toWebRemoteFrameImpl(frame));
}