[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
commit-queue at webkit.org
commit-queue at webkit.org
Wed Dec 22 15:37:08 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 1f584b4157c744cf794d23d8b7d77b1bfd2807ba
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Nov 9 13:01:21 2010 +0000
2010-11-09 Jenn Braithwaite <jennb at chromium.org>
Reviewed by Dmitry Titov.
Update ProgressTracker when moving a frame between documents
https://bugs.webkit.org/show_bug.cgi?id=48368
No new tests. andersca informs me it's not possible to test
ProgressTracker changes via layouttests. Review extra carefully...
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::transferLoadingResourcesFromPage):
Changed to use FrameLoader to deliver the notification to the
client via the notifier.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader:;transferLoadingResourcesFromPage):
Update old and new progress tracker about frame progress.
(WebCore::FrameLoader::dispatchTransferLoadingResourceFromPage):
Added to route notification via the notifier.
* loader/FrameLoader.h:
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::completeProgress):
Comment change only.
* loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::dispatchTransferLoadingResourceFromPage):
Added to provide one place to notify client and progress tracker -
and probably inspector controller (separate patch).
* loader/ResourceLoadNotifier.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 229a85d..19c653d 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,32 @@
+2010-11-09 Jenn Braithwaite <jennb at chromium.org>
+
+ Reviewed by Dmitry Titov.
+
+ Update ProgressTracker when moving a frame between documents
+ https://bugs.webkit.org/show_bug.cgi?id=48368
+
+ No new tests. andersca informs me it's not possible to test
+ ProgressTracker changes via layouttests. Review extra carefully...
+
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::transferLoadingResourcesFromPage):
+ Changed to use FrameLoader to deliver the notification to the
+ client via the notifier.
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader:;transferLoadingResourcesFromPage):
+ Update old and new progress tracker about frame progress.
+ (WebCore::FrameLoader::dispatchTransferLoadingResourceFromPage):
+ Added to route notification via the notifier.
+ * loader/FrameLoader.h:
+ * loader/ProgressTracker.cpp:
+ (WebCore::ProgressTracker::completeProgress):
+ Comment change only.
+ * loader/ResourceLoadNotifier.cpp:
+ (WebCore::ResourceLoadNotifier::dispatchTransferLoadingResourceFromPage):
+ Added to provide one place to notify client and progress tracker -
+ and probably inspector controller (separate patch).
+ * loader/ResourceLoadNotifier.h:
+
2010-11-09 Dai Mikurube <dmikurube at google.com>
Reviewed by Kent Tamura.
diff --git a/WebCore/loader/DocumentLoader.cpp b/WebCore/loader/DocumentLoader.cpp
index 19a55ef..7e4b1d9 100644
--- a/WebCore/loader/DocumentLoader.cpp
+++ b/WebCore/loader/DocumentLoader.cpp
@@ -791,10 +791,12 @@ void DocumentLoader::transferLoadingResourcesFromPage(Page* oldPage)
{
ASSERT(oldPage != m_frame->page());
- FrameLoaderClient* frameLoaderClient = frameLoader()->client();
+ FrameLoader* loader = frameLoader();
+ ASSERT(loader);
+
const ResourceRequest& request = originalRequest();
if (isLoadingMainResource()) {
- frameLoaderClient->transferLoadingResourceFromPage(
+ loader->dispatchTransferLoadingResourceFromPage(
m_mainResourceLoader->identifier(), this, request, oldPage);
}
@@ -802,7 +804,7 @@ void DocumentLoader::transferLoadingResourcesFromPage(Page* oldPage)
ResourceLoaderSet::const_iterator it = m_subresourceLoaders.begin();
ResourceLoaderSet::const_iterator end = m_subresourceLoaders.end();
for (; it != end; ++it) {
- frameLoaderClient->transferLoadingResourceFromPage(
+ loader->dispatchTransferLoadingResourceFromPage(
(*it)->identifier(), this, request, oldPage);
}
}
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index ed988dd..c48ca30 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -1747,8 +1747,17 @@ bool FrameLoader::frameHasLoaded() const
void FrameLoader::transferLoadingResourcesFromPage(Page* oldPage)
{
ASSERT(oldPage != m_frame->page());
- if (isLoading())
+ if (isLoading()) {
activeDocumentLoader()->transferLoadingResourcesFromPage(oldPage);
+ oldPage->progress()->progressCompleted(m_frame);
+ if (m_frame->page())
+ m_frame->page()->progress()->progressStarted(m_frame);
+ }
+}
+
+void FrameLoader::dispatchTransferLoadingResourceFromPage(unsigned long identifier, DocumentLoader* docLoader, const ResourceRequest& request, Page* oldPage)
+{
+ notifier()->dispatchTransferLoadingResourceFromPage(identifier, docLoader, request, oldPage);
}
void FrameLoader::setDocumentLoader(DocumentLoader* loader)
diff --git a/WebCore/loader/FrameLoader.h b/WebCore/loader/FrameLoader.h
index 57ba07a..9ebef29 100644
--- a/WebCore/loader/FrameLoader.h
+++ b/WebCore/loader/FrameLoader.h
@@ -134,6 +134,7 @@ public:
bool isLoading() const;
bool frameHasLoaded() const;
void transferLoadingResourcesFromPage(Page*);
+ void dispatchTransferLoadingResourceFromPage(unsigned long, DocumentLoader*, const ResourceRequest&, Page*);
int numPendingOrLoadingRequests(bool recurse) const;
String referrer() const;
diff --git a/WebCore/loader/ProgressTracker.cpp b/WebCore/loader/ProgressTracker.cpp
index 6bc2055..cd15433 100644
--- a/WebCore/loader/ProgressTracker.cpp
+++ b/WebCore/loader/ProgressTracker.cpp
@@ -241,7 +241,7 @@ void ProgressTracker::completeProgress(unsigned long identifier)
{
ProgressItem* item = m_progressItems.get(identifier);
- // FIXME: Can this happen?
+ // This can happen if a load fails without receiving any response data.
if (!item)
return;
diff --git a/WebCore/loader/ResourceLoadNotifier.cpp b/WebCore/loader/ResourceLoadNotifier.cpp
index b32b737..d002ef3 100644
--- a/WebCore/loader/ResourceLoadNotifier.cpp
+++ b/WebCore/loader/ResourceLoadNotifier.cpp
@@ -160,6 +160,14 @@ void ResourceLoadNotifier::dispatchDidFinishLoading(DocumentLoader* loader, unsi
#endif
}
+void ResourceLoadNotifier::dispatchTransferLoadingResourceFromPage(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request, Page* oldPage)
+{
+ ASSERT(oldPage != m_frame->page());
+ m_frame->loader()->client()->transferLoadingResourceFromPage(identifier, loader, request, oldPage);
+
+ oldPage->progress()->completeProgress(identifier);
+}
+
void ResourceLoadNotifier::sendRemainingDelegateMessages(DocumentLoader* loader, unsigned long identifier, const ResourceResponse& response, int length, const ResourceError& error)
{
if (!response.isNull())
diff --git a/WebCore/loader/ResourceLoadNotifier.h b/WebCore/loader/ResourceLoadNotifier.h
index 93fcccc..2f10856 100644
--- a/WebCore/loader/ResourceLoadNotifier.h
+++ b/WebCore/loader/ResourceLoadNotifier.h
@@ -37,6 +37,7 @@ namespace WebCore {
class AuthenticationChallenge;
class DocumentLoader;
class Frame;
+class Page;
class ResourceError;
class ResourceLoader;
class ResourceResponse;
@@ -60,6 +61,7 @@ public:
void dispatchDidReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&);
void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long identifier, int length);
void dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier, double finishTime);
+ void dispatchTransferLoadingResourceFromPage(unsigned long, DocumentLoader*, const ResourceRequest&, Page*);
void sendRemainingDelegateMessages(DocumentLoader*, unsigned long identifier, const ResourceResponse&, int length, const ResourceError&);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list