blob: c1ada0520f8cb7ca55dd3337ea82edd33cbb7c1b [file] [log] [blame]
// Copyright 2015 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.
#include "content/renderer/web_frame_utils.h"
#include "content/renderer/render_frame_impl.h"
#include "content/renderer/render_frame_proxy.h"
#include "ipc/ipc_message.h"
#include "third_party/WebKit/public/web/WebFrame.h"
#include "third_party/WebKit/public/web/WebLocalFrame.h"
#include "third_party/WebKit/public/web/WebRemoteFrame.h"
namespace content {
int GetRoutingIdForFrameOrProxy(blink::WebFrame* web_frame) {
if (!web_frame)
return MSG_ROUTING_NONE;
if (web_frame->IsWebRemoteFrame())
return RenderFrameProxy::FromWebFrame(web_frame)->routing_id();
return RenderFrameImpl::FromWebFrame(web_frame)->GetRoutingID();
}
blink::WebFrame* GetWebFrameFromRoutingIdForFrameOrProxy(int routing_id) {
auto* render_frame = RenderFrameImpl::FromRoutingID(routing_id);
if (render_frame)
return render_frame->GetWebFrame();
auto* render_frame_proxy = RenderFrameProxy::FromRoutingID(routing_id);
if (render_frame_proxy)
return render_frame_proxy->web_frame();
return nullptr;
}
} // namespace content