Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(421)

Unified Diff: Source/core/frame/LocalFrame.cpp

Issue 183713002: Add Frame and RemoteFrame classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Removed unneeded method definition Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/frame/LocalFrame.h ('k') | Source/core/frame/RemoteFrame.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/frame/LocalFrame.cpp
diff --git a/Source/core/frame/LocalFrame.cpp b/Source/core/frame/LocalFrame.cpp
index 581c61e6f1a550a44c2e79cc8db0145df2bbd154..ab36baa72a7966be2c48cfed78119b1c9c113df1 100644
--- a/Source/core/frame/LocalFrame.cpp
+++ b/Source/core/frame/LocalFrame.cpp
@@ -43,19 +43,15 @@
#include "core/events/Event.h"
#include "core/fetch/ResourceFetcher.h"
#include "core/frame/DOMWindow.h"
-#include "core/frame/FrameDestructionObserver.h"
#include "core/frame/FrameHost.h"
#include "core/frame/FrameView.h"
#include "core/frame/Settings.h"
#include "core/html/HTMLFrameElementBase.h"
#include "core/inspector/InspectorInstrumentation.h"
-#include "core/loader/EmptyClients.h"
#include "core/loader/FrameLoaderClient.h"
#include "core/page/Chrome.h"
-#include "core/page/ChromeClient.h"
#include "core/page/EventHandler.h"
#include "core/page/FocusController.h"
-#include "core/page/Page.h"
#include "core/page/scrolling/ScrollingCoordinator.h"
#include "core/rendering/HitTestResult.h"
#include "core/rendering/RenderLayer.h"
@@ -66,9 +62,7 @@
#include "platform/DragImage.h"
#include "platform/graphics/GraphicsContext.h"
#include "platform/graphics/ImageBuffer.h"
-#include "public/platform/WebLayer.h"
#include "wtf/PassOwnPtr.h"
-#include "wtf/RefCountedLeakCounter.h"
#include "wtf/StdLibExtras.h"
using namespace std;
@@ -77,20 +71,6 @@ namespace WebCore {
using namespace HTMLNames;
-namespace {
-
-int64_t generateFrameID()
-{
- // Initialize to the current time to reduce the likelihood of generating
- // identifiers that overlap with those from past/future browser sessions.
- static int64_t next = static_cast<int64_t>(currentTime() * 1000000.0);
- return ++next;
-}
-
-} // namespace
-
-DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, frameCounter, ("LocalFrame"));
-
static inline float parentPageZoomFactor(LocalFrame* frame)
{
LocalFrame* parent = frame->tree().parent();
@@ -108,10 +88,9 @@ static inline float parentTextZoomFactor(LocalFrame* frame)
}
inline LocalFrame::LocalFrame(PassRefPtr<FrameInit> frameInit)
- : m_frameID(generateFrameID())
- , m_host(frameInit->frameHost())
+ : Frame(frameInit)
, m_treeNode(this)
- , m_loader(this, frameInit->frameLoaderClient())
+ , m_loader(this, m_frameInit->frameLoaderClient())
, m_navigationScheduler(this)
, m_script(adoptPtr(new ScriptController(this)))
, m_editor(Editor::create(*this))
@@ -119,23 +98,15 @@ inline LocalFrame::LocalFrame(PassRefPtr<FrameInit> frameInit)
, m_selection(adoptPtr(new FrameSelection(this)))
, m_eventHandler(adoptPtr(new EventHandler(this)))
, m_inputMethodController(InputMethodController::create(*this))
- , m_frameInit(frameInit)
, m_pageZoomFactor(parentPageZoomFactor(this))
, m_textZoomFactor(parentTextZoomFactor(this))
, m_orientation(0)
, m_inViewSourceMode(false)
- , m_remotePlatformLayer(0)
{
- ASSERT(page());
-
if (ownerElement()) {
page()->incrementSubframeCount();
ownerElement()->setContentFrame(*this);
}
-
-#ifndef NDEBUG
- frameCounter.increment();
-#endif
}
PassRefPtr<LocalFrame> LocalFrame::create(PassRefPtr<FrameInit> frameInit)
@@ -153,17 +124,7 @@ LocalFrame::~LocalFrame()
loader().clear();
setDOMWindow(nullptr);
- // FIXME: We should not be doing all this work inside the destructor
-
-#ifndef NDEBUG
- frameCounter.decrement();
-#endif
-
disconnectOwnerElement();
-
- HashSet<FrameDestructionObserver*>::iterator stop = m_destructionObservers.end();
- for (HashSet<FrameDestructionObserver*>::iterator it = m_destructionObservers.begin(); it != stop; ++it)
- (*it)->frameDestroyed();
}
bool LocalFrame::inScope(TreeScope* scope) const
@@ -178,16 +139,6 @@ bool LocalFrame::inScope(TreeScope* scope) const
return owner->treeScope() == scope;
}
-void LocalFrame::addDestructionObserver(FrameDestructionObserver* observer)
-{
- m_destructionObservers.add(observer);
-}
-
-void LocalFrame::removeDestructionObserver(FrameDestructionObserver* observer)
-{
- m_destructionObservers.remove(observer);
-}
-
void LocalFrame::setView(PassRefPtr<FrameView> view)
{
// We the custom scroll bars as early as possible to prevent m_doc->detach()
@@ -222,25 +173,6 @@ void LocalFrame::sendOrientationChangeEvent(int orientation)
window->dispatchEvent(Event::create(EventTypeNames::orientationchange));
}
-FrameHost* LocalFrame::host() const
-{
- return m_host;
-}
-
-Page* LocalFrame::page() const
-{
- if (m_host)
- return &m_host->page();
- return 0;
-}
-
-Settings* LocalFrame::settings() const
-{
- if (m_host)
- return &m_host->settings();
- return 0;
-}
-
void LocalFrame::setPrinting(bool printing, const FloatSize& pageSize, const FloatSize& originalPageSize, float maximumShrinkRatio)
{
// In setting printing, we should not validate resources already cached for the document.
@@ -293,34 +225,9 @@ FloatSize LocalFrame::resizePageRectsKeepingRatio(const FloatSize& originalSize,
void LocalFrame::setDOMWindow(PassRefPtr<DOMWindow> domWindow)
{
InspectorInstrumentation::frameWindowDiscarded(this, m_domWindow.get());
- if (m_domWindow)
- m_domWindow->reset();
if (domWindow)
script().clearWindowShell();
- m_domWindow = domWindow;
-}
-
-static ChromeClient& emptyChromeClient()
-{
- DEFINE_STATIC_LOCAL(EmptyChromeClient, client, ());
- return client;
-}
-
-ChromeClient& LocalFrame::chromeClient() const
-{
- if (Page* page = this->page())
- return page->chrome().client();
- return emptyChromeClient();
-}
-
-Document* LocalFrame::document() const
-{
- return m_domWindow ? m_domWindow->document() : 0;
-}
-
-RenderView* LocalFrame::contentRenderer() const
-{
- return document() ? document()->renderView() : 0;
+ Frame::setDOMWindow(domWindow);
}
RenderPart* LocalFrame::ownerRenderer() const
@@ -360,27 +267,18 @@ void LocalFrame::willDetachFrameHost()
if (LocalFrame* parent = tree().parent())
parent->loader().checkLoadComplete();
- HashSet<FrameDestructionObserver*>::iterator stop = m_destructionObservers.end();
- for (HashSet<FrameDestructionObserver*>::iterator it = m_destructionObservers.begin(); it != stop; ++it)
- (*it)->willDetachFrameHost();
-
- // FIXME: Page should take care of updating focus/scrolling instead of LocalFrame.
- // FIXME: It's unclear as to why this is called more than once, but it is,
- // so page() could be NULL.
- if (page() && page()->focusController().focusedFrame() == this)
- page()->focusController().setFocusedFrame(nullptr);
+ Frame::willDetachFrameHost();
+ script().clearScriptObjects();
if (page() && page()->scrollingCoordinator() && m_view)
page()->scrollingCoordinator()->willDestroyScrollableArea(m_view.get());
-
- script().clearScriptObjects();
}
void LocalFrame::detachFromFrameHost()
{
// We should never be detatching the page during a Layout.
RELEASE_ASSERT(!m_view || !m_view->isInPerformLayout());
- m_host = 0;
+ Frame::detachFromFrameHost();
}
void LocalFrame::disconnectOwnerElement()
@@ -395,12 +293,6 @@ void LocalFrame::disconnectOwnerElement()
m_frameInit->setOwnerElement(0);
}
-bool LocalFrame::isMainFrame() const
-{
- Page* page = this->page();
- return page && this == page->mainFrame();
-}
-
String LocalFrame::documentTypeString() const
{
if (DocumentType* doctype = document()->doctype())
« no previous file with comments | « Source/core/frame/LocalFrame.h ('k') | Source/core/frame/RemoteFrame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698