// 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