Index: third_party/WebKit/Source/web/WebLocalFrameImpl.cpp |
diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp |
index 4cb7d027f8e9302666faadc7677f12e37094d8e5..44a1e9b565c5d1acd6183688c9c0e7370ad35db3 100644 |
--- a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp |
+++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp |
@@ -944,7 +944,7 @@ v8::Local<v8::Context> WebLocalFrameImpl::mainWorldScriptContext() const |
bool WebFrame::scriptCanAccess(WebFrame* target) |
{ |
- return BindingSecurity::shouldAllowAccessToFrame(mainThreadIsolate(), callingDOMWindow(mainThreadIsolate()), toCoreFrame(target), DoNotReportSecurityError); |
+ return BindingSecurity::shouldAllowAccessToFrame(mainThreadIsolate(), callingDOMWindow(mainThreadIsolate()), target->toImplBase()->frame(), DoNotReportSecurityError); |
} |
void WebLocalFrameImpl::reload(bool ignoreCache) |
@@ -1682,6 +1682,7 @@ DEFINE_TRACE(WebLocalFrameImpl) |
visitor->trace(m_geolocationClientProxy); |
visitor->template registerWeakMembers<WebFrame, &WebFrame::clearWeakFrames>(this); |
WebFrame::traceFrames(visitor, this); |
+ WebFrameImplBase::trace(visitor); |
} |
#endif |
@@ -1721,16 +1722,14 @@ void WebLocalFrameImpl::setCoreFrame(PassRefPtrWillBeRawPtr<LocalFrame> frame) |
} |
} |
-PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::initializeCoreFrame(FrameHost* host, FrameOwner* owner, const AtomicString& name, const AtomicString& fallbackName) |
+void WebLocalFrameImpl::initializeCoreFrame(FrameHost* host, FrameOwner* owner, const AtomicString& name, const AtomicString& fallbackName) |
{ |
- RefPtrWillBeRawPtr<LocalFrame> frame = LocalFrame::create(m_frameLoaderClientImpl.get(), host, owner); |
- setCoreFrame(frame); |
- frame->tree().setName(name, fallbackName); |
+ setCoreFrame(LocalFrame::create(m_frameLoaderClientImpl.get(), host, owner)); |
+ frame()->tree().setName(name, fallbackName); |
// We must call init() after m_frame is assigned because it is referenced |
// during init(). Note that this may dispatch JS events; the frame may be |
// detached after init() returns. |
- frame->init(); |
- return frame; |
+ frame()->init(); |
} |
PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const FrameLoadRequest& request, |
@@ -1742,7 +1741,7 @@ PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const Fra |
? WebTreeScopeType::Document |
: WebTreeScopeType::Shadow; |
WebFrameOwnerProperties ownerProperties(ownerElement->scrollingMode(), ownerElement->marginWidth(), ownerElement->marginHeight()); |
- WebLocalFrameImpl* webframeChild = toWebLocalFrameImpl(m_client->createChildFrame(this, scope, name, static_cast<WebSandboxFlags>(ownerElement->sandboxFlags()), ownerProperties)); |
+ RefPtrWillBeRawPtr<WebLocalFrameImpl> webframeChild = toWebLocalFrameImpl(m_client->createChildFrame(this, scope, name, static_cast<WebSandboxFlags>(ownerElement->sandboxFlags()), ownerProperties)); |
if (!webframeChild) |
return nullptr; |
@@ -1750,17 +1749,17 @@ PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const Fra |
// solution. subResourceAttributeName returns just one attribute name. The |
// element might not have the attribute, and there might be other attributes |
// which can identify the element. |
- RefPtrWillBeRawPtr<LocalFrame> child = webframeChild->initializeCoreFrame(frame()->host(), ownerElement, name, ownerElement->getAttribute(ownerElement->subResourceAttributeName())); |
+ webframeChild->initializeCoreFrame(frame()->host(), ownerElement, name, ownerElement->getAttribute(ownerElement->subResourceAttributeName())); |
// Initializing the core frame may cause the new child to be detached, since |
// it may dispatch a load event in the parent. |
- if (!child->tree().parent()) |
+ if (!webframeChild->parent()) |
return nullptr; |
// If we're moving in the back/forward list, we might want to replace the content |
// of this child frame with whatever was there at that point. |
RefPtrWillBeRawPtr<HistoryItem> childItem = nullptr; |
if (isBackForwardLoadType(frame()->loader().loadType()) && !frame()->document()->loadEventFinished()) |
- childItem = PassRefPtrWillBeRawPtr<HistoryItem>(webframeChild->client()->historyItemForNewChildFrame(webframeChild)); |
+ childItem = PassRefPtrWillBeRawPtr<HistoryItem>(webframeChild->client()->historyItemForNewChildFrame(webframeChild.get())); |
FrameLoadRequest newRequest = request; |
FrameLoadType loadType = FrameLoadTypeStandard; |
@@ -1769,14 +1768,14 @@ PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const Fra |
FrameLoader::resourceRequestFromHistoryItem(childItem.get(), UseProtocolCachePolicy)); |
loadType = FrameLoadTypeInitialHistoryLoad; |
} |
- child->loader().load(newRequest, loadType, childItem.get()); |
+ webframeChild->frame()->loader().load(newRequest, loadType, childItem.get()); |
// Note a synchronous navigation (about:blank) would have already processed |
// onload, so it is possible for the child frame to have already been |
// detached by script in the page. |
- if (!child->tree().parent()) |
+ if (!webframeChild->parent()) |
return nullptr; |
- return child; |
+ return webframeChild->frame(); |
} |
void WebLocalFrameImpl::didChangeContentsSize(const IntSize& size) |
@@ -1984,7 +1983,7 @@ static void ensureFrameLoaderHasCommitted(FrameLoader& frameLoader) |
void WebLocalFrameImpl::initializeToReplaceRemoteFrame(WebRemoteFrame* oldWebFrame, const WebString& name, WebSandboxFlags flags, const WebFrameOwnerProperties& frameOwnerProperties) |
{ |
- Frame* oldFrame = toCoreFrame(oldWebFrame); |
+ Frame* oldFrame = oldWebFrame->toImplBase()->frame(); |
// Note: this *always* temporarily sets a frame owner, even for main frames! |
// When a core Frame is created with no owner, it attempts to set itself as |
// the main frame of the Page. However, this is a provisional frame, and may |
@@ -2040,7 +2039,7 @@ void WebLocalFrameImpl::setFrameOwnerProperties(const WebFrameOwnerProperties& f |
{ |
// At the moment, this is only used to replicate frame owner properties |
// for frames with a remote owner. |
- FrameOwner* owner = toCoreFrame(this)->owner(); |
+ FrameOwner* owner = frame()->owner(); |
ASSERT(owner); |
toRemoteBridgeFrameOwner(owner)->setScrollingMode(frameOwnerProperties.scrollingMode); |
toRemoteBridgeFrameOwner(owner)->setMarginWidth(frameOwnerProperties.marginWidth); |