| Index: Source/core/page/Page.cpp
|
| diff --git a/Source/core/page/Page.cpp b/Source/core/page/Page.cpp
|
| index 59c33b45e808bc7c88597cd56abb0b98f2d78142..26be6acad3f31ceb43fb483e915bbece462d2996 100644
|
| --- a/Source/core/page/Page.cpp
|
| +++ b/Source/core/page/Page.cpp
|
| @@ -34,6 +34,8 @@
|
| #include "core/frame/FrameHost.h"
|
| #include "core/frame/FrameView.h"
|
| #include "core/frame/LocalFrame.h"
|
| +#include "core/frame/RemoteFrame.h"
|
| +#include "core/frame/RemoteFrameView.h"
|
| #include "core/frame/Settings.h"
|
| #include "core/inspector/InspectorController.h"
|
| #include "core/inspector/InspectorInstrumentation.h"
|
| @@ -161,7 +163,7 @@ void Page::makeOrdinary()
|
|
|
| ViewportDescription Page::viewportDescription() const
|
| {
|
| - return mainFrame() && mainFrame()->document() ? mainFrame()->document()->viewportDescription() : ViewportDescription();
|
| + return mainFrame() && mainFrame()->isLocalFrame() && deprecatedLocalMainFrame()->document() ? deprecatedLocalMainFrame()->document()->viewportDescription() : ViewportDescription();
|
| }
|
|
|
| ScrollingCoordinator* Page::scrollingCoordinator()
|
| @@ -182,8 +184,8 @@ String Page::mainThreadScrollingReasonsAsText()
|
|
|
| PassRefPtrWillBeRawPtr<ClientRectList> Page::nonFastScrollableRects(const LocalFrame* frame)
|
| {
|
| - if (Document* document = m_mainFrame->document())
|
| - document->updateLayout();
|
| + if (m_mainFrame->isLocalFrame() && deprecatedLocalMainFrame()->document())
|
| + deprecatedLocalMainFrame()->document()->updateLayout();
|
|
|
| Vector<IntRect> rects;
|
| if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator())
|
| @@ -195,7 +197,7 @@ PassRefPtrWillBeRawPtr<ClientRectList> Page::nonFastScrollableRects(const LocalF
|
| return ClientRectList::create(quads);
|
| }
|
|
|
| -void Page::setMainFrame(PassRefPtr<LocalFrame> mainFrame)
|
| +void Page::setMainFrame(PassRefPtr<Frame> mainFrame)
|
| {
|
| ASSERT(!m_mainFrame); // Should only be called during initialization
|
| m_mainFrame = mainFrame;
|
| @@ -283,7 +285,7 @@ void Page::refreshPlugins(bool reload)
|
|
|
| PluginData* Page::pluginData() const
|
| {
|
| - if (!mainFrame()->loader().allowPlugins(NotAboutToInstantiatePlugin))
|
| + if (!deprecatedLocalMainFrame()->loader().allowPlugins(NotAboutToInstantiatePlugin))
|
| return 0;
|
| if (!m_pluginData)
|
| m_pluginData = PluginData::create(this);
|
| @@ -329,7 +331,10 @@ void Page::setDefersLoading(bool defers)
|
|
|
| void Page::setPageScaleFactor(float scale, const IntPoint& origin)
|
| {
|
| - FrameView* view = mainFrame()->view();
|
| + if (!mainFrame()->isLocalFrame())
|
| + return;
|
| +
|
| + FrameView* view = deprecatedLocalMainFrame()->view();
|
| PinchViewport& viewport = frameHost().pinchViewport();
|
|
|
| if (scale != viewport.scale()) {
|
| @@ -338,7 +343,7 @@ void Page::setPageScaleFactor(float scale, const IntPoint& origin)
|
| if (view && !settings().pinchVirtualViewportEnabled())
|
| view->setVisibleContentScaleFactor(scale);
|
|
|
| - mainFrame()->deviceOrPageScaleFactorChanged();
|
| + deprecatedLocalMainFrame()->deviceOrPageScaleFactorChanged();
|
| m_chrome->client().deviceOrPageScaleFactorChanged();
|
|
|
| // FIXME: In virtual-viewport pinch mode, scale doesn't change the fixed-pos viewport;
|
| @@ -346,7 +351,7 @@ void Page::setPageScaleFactor(float scale, const IntPoint& origin)
|
| if (view)
|
| view->viewportConstrainedVisibleContentSizeChanged(true, true);
|
|
|
| - mainFrame()->loader().saveScrollState();
|
| + deprecatedLocalMainFrame()->loader().saveScrollState();
|
| }
|
|
|
| if (view && view->scrollPosition() != origin)
|
| @@ -366,8 +371,8 @@ void Page::setDeviceScaleFactor(float scaleFactor)
|
| m_deviceScaleFactor = scaleFactor;
|
| setNeedsRecalcStyleInAllFrames();
|
|
|
| - if (mainFrame()) {
|
| - mainFrame()->deviceOrPageScaleFactorChanged();
|
| + if (mainFrame() && mainFrame()->isLocalFrame()) {
|
| + deprecatedLocalMainFrame()->deviceOrPageScaleFactorChanged();
|
| m_chrome->client().deviceOrPageScaleFactorChanged();
|
| }
|
| }
|
| @@ -447,8 +452,8 @@ void Page::setVisibilityState(PageVisibilityState visibilityState, bool isInitia
|
| if (!isInitialState)
|
| lifecycleNotifier().notifyPageVisibilityChanged();
|
|
|
| - if (!isInitialState && m_mainFrame)
|
| - m_mainFrame->didChangeVisibilityState();
|
| + if (!isInitialState && m_mainFrame && m_mainFrame->isLocalFrame())
|
| + deprecatedLocalMainFrame()->didChangeVisibilityState();
|
| }
|
|
|
| PageVisibilityState Page::visibilityState() const
|
| @@ -478,12 +483,14 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
|
| setNeedsRecalcStyleInAllFrames();
|
| break;
|
| case SettingsDelegate::ViewportDescriptionChange:
|
| - if (mainFrame())
|
| - mainFrame()->document()->updateViewportDescription();
|
| + if (mainFrame() && mainFrame()->isLocalFrame())
|
| + deprecatedLocalMainFrame()->document()->updateViewportDescription();
|
| break;
|
| case SettingsDelegate::MediaTypeChange:
|
| - m_mainFrame->view()->setMediaType(AtomicString(settings().mediaTypeOverride()));
|
| - setNeedsRecalcStyleInAllFrames();
|
| + if (m_mainFrame->isLocalFrame()) {
|
| + deprecatedLocalMainFrame()->view()->setMediaType(AtomicString(settings().mediaTypeOverride()));
|
| + setNeedsRecalcStyleInAllFrames();
|
| + }
|
| break;
|
| case SettingsDelegate::DNSPrefetchingChange:
|
| for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
|
| @@ -506,9 +513,9 @@ void Page::settingsChanged(SettingsDelegate::ChangeType changeType)
|
| }
|
| break;
|
| case SettingsDelegate::TextAutosizingChange:
|
| - if (!mainFrame())
|
| + if (!mainFrame() || !mainFrame()->isLocalFrame())
|
| break;
|
| - if (FastTextAutosizer* textAutosizer = mainFrame()->document()->fastTextAutosizer()) {
|
| + if (FastTextAutosizer* textAutosizer = deprecatedLocalMainFrame()->document()->fastTextAutosizer()) {
|
| textAutosizer->updatePageInfoInAllFrames();
|
| } else {
|
| for (Frame* frame = mainFrame(); frame; frame = frame->tree().traverseNext()) {
|
| @@ -597,7 +604,12 @@ void Page::willBeDestroyed()
|
| // Disable all agents prior to resetting the frame view.
|
| m_inspectorController->willBeDestroyed();
|
|
|
| - m_mainFrame->setView(nullptr);
|
| + if (m_mainFrame->isLocalFrame()) {
|
| + toLocalFrame(m_mainFrame.get())->setView(nullptr);
|
| + } else {
|
| + ASSERT(m_mainFrame->isRemoteFrame());
|
| + toRemoteFrame(m_mainFrame.get())->setView(nullptr);
|
| + }
|
|
|
| allPages().remove(this);
|
| if (ordinaryPages().contains(this))
|
|
|