[Webkit-unassigned] [Bug 108589] New: REGRESSION (r137607): Loading of archives as substitute data is broken
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Jan 31 23:45:49 PST 2013
https://bugs.webkit.org/show_bug.cgi?id=108589
Summary: REGRESSION (r137607): Loading of archives as
substitute data is broken
Product: WebKit
Version: 528+ (Nightly build)
Platform: Unspecified
OS/Version: Unspecified
Status: NEW
Severity: Normal
Priority: P2
Component: Page Loading
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: ap at webkit.org
CC: beidson at apple.com, japhet at chromium.org
It is possible to call FrameLoader::load with substitute data that is a WebArchive (or another type of archive, such as MHTML for Chromium). This is exposed via both WebKit1 and WebKit2 API on Mac, see e.g. WKPageLoadWebArchiveData() for the latter.
Our bisection shows that this functionality got broken in <http://trac.webkit.org/changeset/137607>. By the time MainDocumentLoader tries to decode the archive, the data it tries to use is null. Here is how a debug stack trace looks like, with an assertion being fired:
ASSERTION FAILED: data
/Volumes/Data/SafariSources/OpenSource/Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp(269) : static PassRefPtr<WebCore::LegacyWebArchive> WebCore::LegacyWebArchive::create(const WebCore::KURL &, WebCore::SharedBuffer *)
1 0x104657d5a WebCore::LegacyWebArchive::create(WebCore::KURL const&, WebCore::SharedBuffer*)
2 0x10350402f WTF::PassRefPtr<WebCore::Archive> WebCore::archiveFactoryCreate<WebCore::LegacyWebArchive>(WebCore::KURL const&, WebCore::SharedBuffer*)
3 0x103503f18 WebCore::ArchiveFactory::create(WebCore::KURL const&, WebCore::SharedBuffer*, WTF::String const&)
4 0x1038f26ee WebCore::DocumentLoader::maybeCreateArchive()
5 0x1038f254c WebCore::DocumentLoader::finishedLoading()
6 0x1046772d1 WebCore::MainResourceLoader::didFinishLoading(double)
7 0x104677085 WebCore::MainResourceLoader::continueAfterContentPolicy(WebCore::PolicyAction, WebCore::ResourceResponse const&)
8 0x1046773e6 WebCore::MainResourceLoader::continueAfterContentPolicy(WebCore::PolicyAction)
9 0x10467732b WebCore::MainResourceLoader::callContinueAfterContentPolicy(void*, WebCore::PolicyAction)
10 0x1046779f8 WebCore::MainResourceLoader::responseReceived(WebCore::CachedResource*, WebCore::ResourceResponse const&)
11 0x104675824 WebCore::MainResourceLoader::handleSubstituteDataLoadNow(WebCore::RunLoopTimer<WebCore::MainResourceLoader>*)
12 0x104679f83 WebCore::RunLoopTimer<WebCore::MainResourceLoader>::fired()
One easy way to reproduce this that I'm aware of is:
1. Open http://www.apple.com/startpage/ in Safari.
2. Select Email This Page from the Share menu (a button to the left of address bar, or just Command+I).
3. In the new email message that appears in Mail.app, change the "Send as web content" selection at top right to PDF.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list