| Index: content/renderer/render_frame_impl.cc | 
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc | 
| index eb1bcd25d22acb9b29bf5da6560fa52ed856e79a..8c684bc96f5c162a89a52668eca8151ba2a52b5a 100644 | 
| --- a/content/renderer/render_frame_impl.cc | 
| +++ b/content/renderer/render_frame_impl.cc | 
| @@ -871,6 +871,7 @@ void RenderFrameImpl::CreateFrame( | 
| RenderFrameImpl::Create(parent_proxy->render_view(), routing_id); | 
| web_frame = parent_web_frame->createLocalChild( | 
| replicated_state.scope, WebString::fromUTF8(replicated_state.name), | 
| +        WebString::fromUTF8(replicated_state.unique_name), | 
| replicated_state.sandbox_flags, render_frame, | 
| previous_sibling_web_frame, frame_owner_properties); | 
|  | 
| @@ -2648,14 +2649,21 @@ blink::WebFrame* RenderFrameImpl::createChildFrame( | 
| blink::WebLocalFrame* parent, | 
| blink::WebTreeScopeType scope, | 
| const blink::WebString& name, | 
| +    const blink::WebString& unique_name, | 
| blink::WebSandboxFlags sandbox_flags, | 
| -    const blink::WebFrameOwnerProperties& frameOwnerProperties) { | 
| +    const blink::WebFrameOwnerProperties& frame_owner_properties) { | 
| // Synchronously notify the browser of a child frame creation to get the | 
| // routing_id for the RenderFrame. | 
| int child_routing_id = MSG_ROUTING_NONE; | 
| -  Send(new FrameHostMsg_CreateChildFrame( | 
| -      routing_id_, scope, base::UTF16ToUTF8(base::StringPiece16(name)), | 
| -      sandbox_flags, frameOwnerProperties, &child_routing_id)); | 
| +  FrameHostMsg_CreateChildFrame_Params params; | 
| +  params.parent_routing_id = routing_id_; | 
| +  params.scope = scope; | 
| +  params.frame_name = base::UTF16ToUTF8(base::StringPiece16(name)); | 
| +  params.frame_unique_name = | 
| +      base::UTF16ToUTF8(base::StringPiece16(unique_name)); | 
| +  params.sandbox_flags = sandbox_flags; | 
| +  params.frame_owner_properties = frame_owner_properties; | 
| +  Send(new FrameHostMsg_CreateChildFrame(params, &child_routing_id)); | 
|  | 
| // Allocation of routing id failed, so we can't create a child frame. This can | 
| // happen if this RenderFrameImpl's IPCs are being filtered when in swapped | 
| @@ -2769,7 +2777,8 @@ void RenderFrameImpl::willClose(blink::WebFrame* frame) { | 
| } | 
|  | 
| void RenderFrameImpl::didChangeName(blink::WebLocalFrame* frame, | 
| -                                    const blink::WebString& name) { | 
| +                                    const blink::WebString& name, | 
| +                                    const blink::WebString& unique_name) { | 
| DCHECK(!frame_ || frame_ == frame); | 
|  | 
| // TODO(alexmos): According to https://crbug.com/169110, sending window.name | 
| @@ -2783,7 +2792,8 @@ void RenderFrameImpl::didChangeName(blink::WebLocalFrame* frame, | 
| if (SiteIsolationPolicy::AreCrossProcessFramesPossible() || | 
| render_view_->renderer_preferences_.report_frame_name_changes) { | 
| Send(new FrameHostMsg_DidChangeName( | 
| -        routing_id_, base::UTF16ToUTF8(base::StringPiece16(name)))); | 
| +        routing_id_, base::UTF16ToUTF8(base::StringPiece16(name)), | 
| +        base::UTF16ToUTF8(base::StringPiece16(unique_name)))); | 
| } | 
| } | 
|  | 
|  |