| Index: third_party/WebKit/Source/core/loader/FrameLoader.cpp
|
| diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
|
| index a632db981677c6a60abacd57051a8ba62f277f97..488b56fde73ee5b26389ad709c2336551e1f5490 100644
|
| --- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp
|
| +++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp
|
| @@ -86,6 +86,7 @@
|
| #include "platform/Logging.h"
|
| #include "platform/PluginScriptForbiddenScope.h"
|
| #include "platform/ScriptForbiddenScope.h"
|
| +#include "platform/TraceEvent.h"
|
| #include "platform/UserGestureIndicator.h"
|
| #include "platform/network/HTTPParsers.h"
|
| #include "platform/network/ResourceRequest.h"
|
| @@ -173,6 +174,8 @@ FrameLoader::FrameLoader(LocalFrame* frame)
|
| , m_dispatchingDidClearWindowObjectInMainWorld(false)
|
| , m_protectProvisionalLoader(false)
|
| {
|
| + TRACE_EVENT_OBJECT_CREATED_WITH_ID("loading", "FrameLoader", this);
|
| + takeObjectSnapshot();
|
| }
|
|
|
| FrameLoader::~FrameLoader()
|
| @@ -201,6 +204,7 @@ void FrameLoader::init()
|
| m_provisionalDocumentLoader->startLoadingMainResource();
|
| m_frame->document()->cancelParsing();
|
| m_stateMachine.advanceTo(FrameLoaderStateMachine::DisplayingInitialEmptyDocument);
|
| + takeObjectSnapshot();
|
| }
|
|
|
| FrameLoaderClient* FrameLoader::client() const
|
| @@ -311,6 +315,8 @@ void FrameLoader::clear()
|
|
|
| if (m_stateMachine.isDisplayingInitialEmptyDocument())
|
| m_stateMachine.advanceTo(FrameLoaderStateMachine::CommittedFirstRealLoad);
|
| +
|
| + takeObjectSnapshot();
|
| }
|
|
|
| // This is only called by ScriptController::executeScriptIfJavaScriptURL
|
| @@ -438,6 +444,8 @@ void FrameLoader::receivedFirstData()
|
| InspectorInstrumentation::didCommitLoad(m_frame, m_documentLoader.get());
|
| m_frame->page()->didCommitLoad(m_frame);
|
| dispatchDidClearDocumentOfWindowObject();
|
| +
|
| + takeObjectSnapshot();
|
| }
|
|
|
| void FrameLoader::didInstallNewDocument(bool dispatchWindowObjectAvailable)
|
| @@ -748,6 +756,7 @@ void FrameLoader::loadInSameDocument(const KURL& url, PassRefPtr<SerializedScrip
|
| // We need to scroll to the fragment whether or not a hash change occurred, since
|
| // the user might have scrolled since the previous navigation.
|
| processFragment(url, NavigationWithinSameDocument);
|
| + takeObjectSnapshot();
|
| }
|
|
|
| void FrameLoader::setReferrerForFrameRequest(ResourceRequest& request, ShouldSendReferrer shouldSendReferrer, Document* originDocument)
|
| @@ -1027,6 +1036,7 @@ void FrameLoader::stopAllLoaders()
|
| loadFailed(m_documentLoader.get(), ResourceError::cancelledError(m_documentLoader->url()));
|
|
|
| m_inStopAllLoaders = false;
|
| + takeObjectSnapshot();
|
| }
|
|
|
| void FrameLoader::didAccessInitialDocument()
|
| @@ -1105,6 +1115,7 @@ bool FrameLoader::prepareForCommit()
|
| if (m_frame->document())
|
| m_frame->document()->detach();
|
| m_documentLoader = m_provisionalDocumentLoader.release();
|
| + takeObjectSnapshot();
|
|
|
| return true;
|
| }
|
| @@ -1231,6 +1242,8 @@ void FrameLoader::detach()
|
| m_progressTracker->dispose();
|
| m_progressTracker.clear();
|
| }
|
| +
|
| + TRACE_EVENT_OBJECT_DELETED_WITH_ID("loading", "FrameLoader", this);
|
| }
|
|
|
| void FrameLoader::loadFailed(DocumentLoader* loader, const ResourceError& error)
|
| @@ -1422,6 +1435,8 @@ void FrameLoader::startLoad(FrameLoadRequest& frameLoadRequest, FrameLoadType ty
|
| client()->dispatchDidStartProvisionalLoad(triggeringEventTime);
|
| ASSERT(m_provisionalDocumentLoader);
|
| m_provisionalDocumentLoader->startLoadingMainResource();
|
| +
|
| + takeObjectSnapshot();
|
| }
|
|
|
| void FrameLoader::applyUserAgent(ResourceRequest& request)
|
| @@ -1537,4 +1552,22 @@ SecurityContext::InsecureNavigationsSet* FrameLoader::insecureNavigationsToUpgra
|
| return toLocalFrame(parentFrame)->document()->insecureNavigationsToUpgrade();
|
| }
|
|
|
| +PassOwnPtr<TracedValue> FrameLoader::toTracedValue() const
|
| +{
|
| + OwnPtr<TracedValue> tracedValue = TracedValue::create();
|
| + tracedValue->beginDictionary("frame");
|
| + tracedValue->setString("id_ref", String::format("0x%" PRIx64, static_cast<uint64_t>(reinterpret_cast<uintptr_t>(m_frame.get()))));
|
| + tracedValue->endDictionary();
|
| + tracedValue->setBoolean("isLoadingMainFrame", isLoadingMainFrame());
|
| + tracedValue->setString("stateMachine", m_stateMachine.toString());
|
| + tracedValue->setString("provisionalDocumentLoaderURL", m_provisionalDocumentLoader ? m_provisionalDocumentLoader->url() : String());
|
| + tracedValue->setString("documentLoaderURL", m_documentLoader ? m_documentLoader->url() : String());
|
| + return tracedValue.release();
|
| +}
|
| +
|
| +inline void FrameLoader::takeObjectSnapshot() const
|
| +{
|
| + TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID("loading", "FrameLoader", this, toTracedValue());
|
| +}
|
| +
|
| } // namespace blink
|
|
|