OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 1642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1653 WebLocalFrameImpl* frame = new WebLocalFrameImpl(scope, client); | 1653 WebLocalFrameImpl* frame = new WebLocalFrameImpl(scope, client); |
1654 #if ENABLE(OILPAN) | 1654 #if ENABLE(OILPAN) |
1655 return frame; | 1655 return frame; |
1656 #else | 1656 #else |
1657 return adoptRef(frame).leakRef(); | 1657 return adoptRef(frame).leakRef(); |
1658 #endif | 1658 #endif |
1659 } | 1659 } |
1660 | 1660 |
1661 WebLocalFrameImpl::WebLocalFrameImpl(WebTreeScopeType scope, WebFrameClient* cli
ent) | 1661 WebLocalFrameImpl::WebLocalFrameImpl(WebTreeScopeType scope, WebFrameClient* cli
ent) |
1662 : WebLocalFrame(scope) | 1662 : WebLocalFrame(scope) |
1663 , m_frameLoaderClientImpl(this) | 1663 , m_frameLoaderClientImpl(FrameLoaderClientImpl::create(this)) |
1664 , m_frameWidget(0) | 1664 , m_frameWidget(0) |
1665 , m_client(client) | 1665 , m_client(client) |
1666 , m_autofillClient(0) | 1666 , m_autofillClient(0) |
1667 , m_contentSettingsClient(0) | 1667 , m_contentSettingsClient(0) |
1668 , m_inputEventsScaleFactorForEmulation(1) | 1668 , m_inputEventsScaleFactorForEmulation(1) |
1669 , m_userMediaClientImpl(this) | 1669 , m_userMediaClientImpl(this) |
1670 , m_geolocationClientProxy(GeolocationClientProxy::create(client ? client->g
eolocationClient() : 0)) | 1670 , m_geolocationClientProxy(GeolocationClientProxy::create(client ? client->g
eolocationClient() : 0)) |
1671 , m_webDevToolsFrontend(0) | 1671 , m_webDevToolsFrontend(0) |
1672 #if ENABLE(OILPAN) | 1672 #if ENABLE(OILPAN) |
1673 , m_selfKeepAlive(this) | 1673 , m_selfKeepAlive(this) |
(...skipping 11 matching lines...) Expand all Loading... |
1685 frameCount--; | 1685 frameCount--; |
1686 | 1686 |
1687 #if !ENABLE(OILPAN) | 1687 #if !ENABLE(OILPAN) |
1688 cancelPendingScopingEffort(); | 1688 cancelPendingScopingEffort(); |
1689 #endif | 1689 #endif |
1690 } | 1690 } |
1691 | 1691 |
1692 #if ENABLE(OILPAN) | 1692 #if ENABLE(OILPAN) |
1693 DEFINE_TRACE(WebLocalFrameImpl) | 1693 DEFINE_TRACE(WebLocalFrameImpl) |
1694 { | 1694 { |
| 1695 visitor->trace(m_frameLoaderClientImpl); |
1695 visitor->trace(m_frame); | 1696 visitor->trace(m_frame); |
1696 visitor->trace(m_devToolsAgent); | 1697 visitor->trace(m_devToolsAgent); |
1697 visitor->trace(m_inspectorOverlay); | 1698 visitor->trace(m_inspectorOverlay); |
1698 visitor->trace(m_textFinder); | 1699 visitor->trace(m_textFinder); |
1699 visitor->trace(m_printContext); | 1700 visitor->trace(m_printContext); |
1700 visitor->trace(m_geolocationClientProxy); | 1701 visitor->trace(m_geolocationClientProxy); |
1701 visitor->template registerWeakMembers<WebFrame, &WebFrame::clearWeakFrames>(
this); | 1702 visitor->template registerWeakMembers<WebFrame, &WebFrame::clearWeakFrames>(
this); |
1702 WebFrame::traceFrames(visitor, this); | 1703 WebFrame::traceFrames(visitor, this); |
1703 } | 1704 } |
1704 #endif | 1705 #endif |
(...skipping 27 matching lines...) Expand all Loading... |
1732 USBController::provideTo(*m_frame, m_client ? m_client->usbClient()
: nullptr); | 1733 USBController::provideTo(*m_frame, m_client ? m_client->usbClient()
: nullptr); |
1733 if (RuntimeEnabledFeatures::webVREnabled()) | 1734 if (RuntimeEnabledFeatures::webVREnabled()) |
1734 VRController::provideTo(*m_frame, m_client ? m_client->webVRClient()
: nullptr); | 1735 VRController::provideTo(*m_frame, m_client ? m_client->webVRClient()
: nullptr); |
1735 if (RuntimeEnabledFeatures::wakeLockEnabled()) | 1736 if (RuntimeEnabledFeatures::wakeLockEnabled()) |
1736 ScreenWakeLock::provideTo(*m_frame, m_client ? m_client->wakeLockCli
ent() : nullptr); | 1737 ScreenWakeLock::provideTo(*m_frame, m_client ? m_client->wakeLockCli
ent() : nullptr); |
1737 } | 1738 } |
1738 } | 1739 } |
1739 | 1740 |
1740 PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::initializeCoreFrame(FrameH
ost* host, FrameOwner* owner, const AtomicString& name, const AtomicString& fall
backName) | 1741 PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::initializeCoreFrame(FrameH
ost* host, FrameOwner* owner, const AtomicString& name, const AtomicString& fall
backName) |
1741 { | 1742 { |
1742 RefPtrWillBeRawPtr<LocalFrame> frame = LocalFrame::create(&m_frameLoaderClie
ntImpl, host, owner); | 1743 RefPtrWillBeRawPtr<LocalFrame> frame = LocalFrame::create(m_frameLoaderClien
tImpl.get(), host, owner); |
1743 setCoreFrame(frame); | 1744 setCoreFrame(frame); |
1744 frame->tree().setName(name, fallbackName); | 1745 frame->tree().setName(name, fallbackName); |
1745 // We must call init() after m_frame is assigned because it is referenced | 1746 // We must call init() after m_frame is assigned because it is referenced |
1746 // during init(). Note that this may dispatch JS events; the frame may be | 1747 // during init(). Note that this may dispatch JS events; the frame may be |
1747 // detached after init() returns. | 1748 // detached after init() returns. |
1748 frame->init(); | 1749 frame->init(); |
1749 return frame; | 1750 return frame; |
1750 } | 1751 } |
1751 | 1752 |
1752 PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const Fra
meLoadRequest& request, | 1753 PassRefPtrWillBeRawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const Fra
meLoadRequest& request, |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2003 } | 2004 } |
2004 | 2005 |
2005 void WebLocalFrameImpl::initializeToReplaceRemoteFrame(WebRemoteFrame* oldWebFra
me, const WebString& name, WebSandboxFlags flags) | 2006 void WebLocalFrameImpl::initializeToReplaceRemoteFrame(WebRemoteFrame* oldWebFra
me, const WebString& name, WebSandboxFlags flags) |
2006 { | 2007 { |
2007 Frame* oldFrame = toCoreFrame(oldWebFrame); | 2008 Frame* oldFrame = toCoreFrame(oldWebFrame); |
2008 // Note: this *always* temporarily sets a frame owner, even for main frames! | 2009 // Note: this *always* temporarily sets a frame owner, even for main frames! |
2009 // When a core Frame is created with no owner, it attempts to set itself as | 2010 // When a core Frame is created with no owner, it attempts to set itself as |
2010 // the main frame of the Page. However, this is a provisional frame, and may | 2011 // the main frame of the Page. However, this is a provisional frame, and may |
2011 // disappear, so Page::m_mainFrame can't be updated just yet. | 2012 // disappear, so Page::m_mainFrame can't be updated just yet. |
2012 OwnPtrWillBeRawPtr<FrameOwner> tempOwner = RemoteBridgeFrameOwner::create(nu
llptr, SandboxNone); | 2013 OwnPtrWillBeRawPtr<FrameOwner> tempOwner = RemoteBridgeFrameOwner::create(nu
llptr, SandboxNone); |
2013 m_frame = LocalFrame::create(&m_frameLoaderClientImpl, oldFrame->host(), tem
pOwner.get()); | 2014 m_frame = LocalFrame::create(m_frameLoaderClientImpl.get(), oldFrame->host()
, tempOwner.get()); |
2014 m_frame->setOwner(oldFrame->owner()); | 2015 m_frame->setOwner(oldFrame->owner()); |
2015 if (m_frame->owner() && !m_frame->owner()->isLocal()) | 2016 if (m_frame->owner() && !m_frame->owner()->isLocal()) |
2016 toRemoteBridgeFrameOwner(m_frame->owner())->setSandboxFlags(static_cast<
SandboxFlags>(flags)); | 2017 toRemoteBridgeFrameOwner(m_frame->owner())->setSandboxFlags(static_cast<
SandboxFlags>(flags)); |
2017 m_frame->tree().setName(name); | 2018 m_frame->tree().setName(name); |
2018 setParent(oldWebFrame->parent()); | 2019 setParent(oldWebFrame->parent()); |
2019 setOpener(oldWebFrame->opener()); | 2020 setOpener(oldWebFrame->opener()); |
2020 // We must call init() after m_frame is assigned because it is referenced | 2021 // We must call init() after m_frame is assigned because it is referenced |
2021 // during init(). Note that this may dispatch JS events; the frame may be | 2022 // during init(). Note that this may dispatch JS events; the frame may be |
2022 // detached after init() returns. | 2023 // detached after init() returns. |
2023 m_frame->init(); | 2024 m_frame->init(); |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2211 } | 2212 } |
2212 | 2213 |
2213 WebSandboxFlags WebLocalFrameImpl::effectiveSandboxFlags() const | 2214 WebSandboxFlags WebLocalFrameImpl::effectiveSandboxFlags() const |
2214 { | 2215 { |
2215 if (!frame()) | 2216 if (!frame()) |
2216 return WebSandboxFlags::None; | 2217 return WebSandboxFlags::None; |
2217 return static_cast<WebSandboxFlags>(frame()->loader().effectiveSandboxFlags(
)); | 2218 return static_cast<WebSandboxFlags>(frame()->loader().effectiveSandboxFlags(
)); |
2218 } | 2219 } |
2219 | 2220 |
2220 } // namespace blink | 2221 } // namespace blink |
OLD | NEW |