| 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 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 #include "platform/graphics/paint/DrawingRecorder.h" | 178 #include "platform/graphics/paint/DrawingRecorder.h" |
| 179 #include "platform/graphics/paint/SkPictureBuilder.h" | 179 #include "platform/graphics/paint/SkPictureBuilder.h" |
| 180 #include "platform/graphics/skia/SkiaUtils.h" | 180 #include "platform/graphics/skia/SkiaUtils.h" |
| 181 #include "platform/heap/Handle.h" | 181 #include "platform/heap/Handle.h" |
| 182 #include "platform/network/ResourceRequest.h" | 182 #include "platform/network/ResourceRequest.h" |
| 183 #include "platform/scroll/ScrollTypes.h" | 183 #include "platform/scroll/ScrollTypes.h" |
| 184 #include "platform/scroll/ScrollbarTheme.h" | 184 #include "platform/scroll/ScrollbarTheme.h" |
| 185 #include "platform/weborigin/KURL.h" | 185 #include "platform/weborigin/KURL.h" |
| 186 #include "platform/weborigin/SchemeRegistry.h" | 186 #include "platform/weborigin/SchemeRegistry.h" |
| 187 #include "platform/weborigin/SecurityPolicy.h" | 187 #include "platform/weborigin/SecurityPolicy.h" |
| 188 #include "public/platform/ServiceRegistry.h" |
| 188 #include "public/platform/WebFloatPoint.h" | 189 #include "public/platform/WebFloatPoint.h" |
| 189 #include "public/platform/WebFloatRect.h" | 190 #include "public/platform/WebFloatRect.h" |
| 190 #include "public/platform/WebLayer.h" | 191 #include "public/platform/WebLayer.h" |
| 191 #include "public/platform/WebPoint.h" | 192 #include "public/platform/WebPoint.h" |
| 192 #include "public/platform/WebRect.h" | 193 #include "public/platform/WebRect.h" |
| 193 #include "public/platform/WebSecurityOrigin.h" | 194 #include "public/platform/WebSecurityOrigin.h" |
| 194 #include "public/platform/WebSize.h" | 195 #include "public/platform/WebSize.h" |
| 195 #include "public/platform/WebSuspendableTask.h" | 196 #include "public/platform/WebSuspendableTask.h" |
| 196 #include "public/platform/WebURLError.h" | 197 #include "public/platform/WebURLError.h" |
| 197 #include "public/platform/WebVector.h" | 198 #include "public/platform/WebVector.h" |
| (...skipping 1222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1420 RawPtr<WebLocalFrameImpl> webFrame = new WebLocalFrameImpl(oldWebFrame, clie
nt); | 1421 RawPtr<WebLocalFrameImpl> webFrame = new WebLocalFrameImpl(oldWebFrame, clie
nt); |
| 1421 Frame* oldFrame = oldWebFrame->toImplBase()->frame(); | 1422 Frame* oldFrame = oldWebFrame->toImplBase()->frame(); |
| 1422 webFrame->setParent(oldWebFrame->parent()); | 1423 webFrame->setParent(oldWebFrame->parent()); |
| 1423 webFrame->setOpener(oldWebFrame->opener()); | 1424 webFrame->setOpener(oldWebFrame->opener()); |
| 1424 // Note: this *always* temporarily sets a frame owner, even for main frames! | 1425 // Note: this *always* temporarily sets a frame owner, even for main frames! |
| 1425 // When a core Frame is created with no owner, it attempts to set itself as | 1426 // When a core Frame is created with no owner, it attempts to set itself as |
| 1426 // the main frame of the Page. However, this is a provisional frame, and may | 1427 // the main frame of the Page. However, this is a provisional frame, and may |
| 1427 // disappear, so Page::m_mainFrame can't be updated just yet. | 1428 // disappear, so Page::m_mainFrame can't be updated just yet. |
| 1428 RawPtr<FrameOwner> tempOwner = DummyFrameOwner::create(); | 1429 RawPtr<FrameOwner> tempOwner = DummyFrameOwner::create(); |
| 1429 // TODO(dcheng): This block is very similar to initializeCoreFrame. Try to r
euse it here. | 1430 // TODO(dcheng): This block is very similar to initializeCoreFrame. Try to r
euse it here. |
| 1430 RawPtr<LocalFrame> frame = LocalFrame::create(webFrame->m_frameLoaderClientI
mpl.get(), oldFrame->host(), tempOwner.get()); | 1431 RawPtr<LocalFrame> frame = LocalFrame::create(webFrame->m_frameLoaderClientI
mpl.get(), oldFrame->host(), tempOwner.get(), client ? client->serviceRegistry()
: ServiceRegistry::getEmptyServiceRegistry()); |
| 1431 // Set the name and unique name directly, bypassing any of the normal logic | 1432 // Set the name and unique name directly, bypassing any of the normal logic |
| 1432 // to calculate unique name. | 1433 // to calculate unique name. |
| 1433 frame->tree().setPrecalculatedName(toWebRemoteFrameImpl(oldWebFrame)->frame(
)->tree().name(), toWebRemoteFrameImpl(oldWebFrame)->frame()->tree().uniqueName(
)); | 1434 frame->tree().setPrecalculatedName(toWebRemoteFrameImpl(oldWebFrame)->frame(
)->tree().name(), toWebRemoteFrameImpl(oldWebFrame)->frame()->tree().uniqueName(
)); |
| 1434 webFrame->setCoreFrame(frame); | 1435 webFrame->setCoreFrame(frame); |
| 1435 | 1436 |
| 1436 frame->setOwner(oldFrame->owner()); | 1437 frame->setOwner(oldFrame->owner()); |
| 1437 | 1438 |
| 1438 if (frame->owner() && frame->owner()->isRemote()) { | 1439 if (frame->owner() && frame->owner()->isRemote()) { |
| 1439 toRemoteFrameOwner(frame->owner())->setSandboxFlags(static_cast<SandboxF
lags>(flags)); | 1440 toRemoteFrameOwner(frame->owner())->setSandboxFlags(static_cast<SandboxF
lags>(flags)); |
| 1440 // Since a remote frame doesn't get the notifications about frame owner | 1441 // Since a remote frame doesn't get the notifications about frame owner |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1545 if (RuntimeEnabledFeatures::wakeLockEnabled()) | 1546 if (RuntimeEnabledFeatures::wakeLockEnabled()) |
| 1546 ScreenWakeLock::provideTo(*m_frame, m_client ? m_client->wakeLockClient(
) : nullptr); | 1547 ScreenWakeLock::provideTo(*m_frame, m_client ? m_client->wakeLockClient(
) : nullptr); |
| 1547 if (RuntimeEnabledFeatures::audioOutputDevicesEnabled()) | 1548 if (RuntimeEnabledFeatures::audioOutputDevicesEnabled()) |
| 1548 provideAudioOutputDeviceClientTo(*m_frame, AudioOutputDeviceClientImpl::
create()); | 1549 provideAudioOutputDeviceClientTo(*m_frame, AudioOutputDeviceClientImpl::
create()); |
| 1549 if (RuntimeEnabledFeatures::installedAppEnabled()) | 1550 if (RuntimeEnabledFeatures::installedAppEnabled()) |
| 1550 InstalledAppController::provideTo(*m_frame, m_client ? m_client->install
edAppClient() : nullptr); | 1551 InstalledAppController::provideTo(*m_frame, m_client ? m_client->install
edAppClient() : nullptr); |
| 1551 } | 1552 } |
| 1552 | 1553 |
| 1553 void WebLocalFrameImpl::initializeCoreFrame(FrameHost* host, FrameOwner* owner,
const AtomicString& name, const AtomicString& uniqueName) | 1554 void WebLocalFrameImpl::initializeCoreFrame(FrameHost* host, FrameOwner* owner,
const AtomicString& name, const AtomicString& uniqueName) |
| 1554 { | 1555 { |
| 1555 setCoreFrame(LocalFrame::create(m_frameLoaderClientImpl.get(), host, owner))
; | 1556 setCoreFrame(LocalFrame::create(m_frameLoaderClientImpl.get(), host, owner,
client() ? client()->serviceRegistry() : ServiceRegistry::getEmptyServiceRegistr
y())); |
| 1556 frame()->tree().setPrecalculatedName(name, uniqueName); | 1557 frame()->tree().setPrecalculatedName(name, uniqueName); |
| 1557 // We must call init() after m_frame is assigned because it is referenced | 1558 // We must call init() after m_frame is assigned because it is referenced |
| 1558 // during init(). Note that this may dispatch JS events; the frame may be | 1559 // during init(). Note that this may dispatch JS events; the frame may be |
| 1559 // detached after init() returns. | 1560 // detached after init() returns. |
| 1560 frame()->init(); | 1561 frame()->init(); |
| 1561 if (frame() && frame()->loader().stateMachine()->isDisplayingInitialEmptyDoc
ument() && !parent() && !opener() && frame()->settings()->shouldReuseGlobalForUn
ownedMainFrame()) | 1562 if (frame() && frame()->loader().stateMachine()->isDisplayingInitialEmptyDoc
ument() && !parent() && !opener() && frame()->settings()->shouldReuseGlobalForUn
ownedMainFrame()) |
| 1562 frame()->document()->getSecurityOrigin()->grantUniversalAccess(); | 1563 frame()->document()->getSecurityOrigin()->grantUniversalAccess(); |
| 1563 } | 1564 } |
| 1564 | 1565 |
| 1565 RawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const FrameLoadRequest& r
equest, | 1566 RawPtr<LocalFrame> WebLocalFrameImpl::createChildFrame(const FrameLoadRequest& r
equest, |
| (...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2174 return WebSandboxFlags::None; | 2175 return WebSandboxFlags::None; |
| 2175 return static_cast<WebSandboxFlags>(frame()->loader().effectiveSandboxFlags(
)); | 2176 return static_cast<WebSandboxFlags>(frame()->loader().effectiveSandboxFlags(
)); |
| 2176 } | 2177 } |
| 2177 | 2178 |
| 2178 void WebLocalFrameImpl::forceSandboxFlags(WebSandboxFlags flags) | 2179 void WebLocalFrameImpl::forceSandboxFlags(WebSandboxFlags flags) |
| 2179 { | 2180 { |
| 2180 frame()->loader().forceSandboxFlags(static_cast<SandboxFlags>(flags)); | 2181 frame()->loader().forceSandboxFlags(static_cast<SandboxFlags>(flags)); |
| 2181 } | 2182 } |
| 2182 | 2183 |
| 2183 } // namespace blink | 2184 } // namespace blink |
| OLD | NEW |