| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 #include "public/web/WebFrame.h" | 6 #include "public/web/WebFrame.h" |
| 7 | 7 |
| 8 #include "core/frame/FrameHost.h" | 8 #include "core/frame/FrameHost.h" |
| 9 #include "core/frame/FrameView.h" |
| 9 #include "core/frame/RemoteFrame.h" | 10 #include "core/frame/RemoteFrame.h" |
| 10 #include "core/html/HTMLFrameOwnerElement.h" | 11 #include "core/html/HTMLFrameOwnerElement.h" |
| 11 #include "platform/UserGestureIndicator.h" | 12 #include "platform/UserGestureIndicator.h" |
| 12 #include "platform/heap/Handle.h" | 13 #include "platform/heap/Handle.h" |
| 13 #include "web/OpenedFrameTracker.h" | 14 #include "web/OpenedFrameTracker.h" |
| 14 #include "web/WebLocalFrameImpl.h" | 15 #include "web/WebLocalFrameImpl.h" |
| 15 #include "web/WebRemoteFrameImpl.h" | 16 #include "web/WebRemoteFrameImpl.h" |
| 16 #include <algorithm> | 17 #include <algorithm> |
| 17 | 18 |
| 18 namespace blink { | 19 namespace blink { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 m_openedFrameTracker->updateOpener(frame); | 69 m_openedFrameTracker->updateOpener(frame); |
| 69 frame->m_openedFrameTracker.reset(m_openedFrameTracker.release()); | 70 frame->m_openedFrameTracker.reset(m_openedFrameTracker.release()); |
| 70 } | 71 } |
| 71 | 72 |
| 72 // Finally, clone the state of the current Frame into one matching | 73 // Finally, clone the state of the current Frame into one matching |
| 73 // the type of the passed in WebFrame. | 74 // the type of the passed in WebFrame. |
| 74 // FIXME: This is a bit clunky; this results in pointless decrements and | 75 // FIXME: This is a bit clunky; this results in pointless decrements and |
| 75 // increments of connected subframes. | 76 // increments of connected subframes. |
| 76 FrameOwner* owner = oldFrame->owner(); | 77 FrameOwner* owner = oldFrame->owner(); |
| 77 oldFrame->disconnectOwnerElement(); | 78 oldFrame->disconnectOwnerElement(); |
| 78 if (toCoreFrame(frame)) { | 79 if (Frame* newFrame = toCoreFrame(frame)) { |
| 79 ASSERT(owner == toCoreFrame(frame)->owner()); | 80 ASSERT(owner == newFrame->owner()); |
| 80 if (owner->isLocal()) | 81 if (owner->isLocal()) { |
| 81 toHTMLFrameOwnerElement(owner)->setContentFrame(*toCoreFrame(frame))
; | 82 HTMLFrameOwnerElement* ownerElement = toHTMLFrameOwnerElement(owner)
; |
| 83 ownerElement->setContentFrame(*newFrame); |
| 84 if (newFrame->isLocalFrame()) |
| 85 ownerElement->setWidget(toLocalFrame(newFrame)->view()); |
| 86 } |
| 82 } else if (frame->isWebLocalFrame()) { | 87 } else if (frame->isWebLocalFrame()) { |
| 83 toWebLocalFrameImpl(frame)->initializeCoreFrame(oldFrame->host(), owner,
oldFrame->tree().name(), nullAtom); | 88 toWebLocalFrameImpl(frame)->initializeCoreFrame(oldFrame->host(), owner,
oldFrame->tree().name(), nullAtom); |
| 84 } else { | 89 } else { |
| 85 toWebRemoteFrameImpl(frame)->initializeCoreFrame(oldFrame->host(), owner
, oldFrame->tree().name()); | 90 toWebRemoteFrameImpl(frame)->initializeCoreFrame(oldFrame->host(), owner
, oldFrame->tree().name()); |
| 86 } | 91 } |
| 87 | 92 |
| 88 return true; | 93 return true; |
| 89 } | 94 } |
| 90 | 95 |
| 91 void WebFrame::detach() | 96 void WebFrame::detach() |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 } | 273 } |
| 269 | 274 |
| 270 void WebFrame::clearWeakFrames(Visitor* visitor) | 275 void WebFrame::clearWeakFrames(Visitor* visitor) |
| 271 { | 276 { |
| 272 if (!isFrameAlive(visitor, m_opener)) | 277 if (!isFrameAlive(visitor, m_opener)) |
| 273 m_opener = nullptr; | 278 m_opener = nullptr; |
| 274 } | 279 } |
| 275 #endif | 280 #endif |
| 276 | 281 |
| 277 } // namespace blink | 282 } // namespace blink |
| OLD | NEW |