[Webkit-unassigned] [Bug 33830] New: assertion failure calling history.pushState within popstate event handler
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Jan 18 23:55:52 PST 2010
https://bugs.webkit.org/show_bug.cgi?id=33830
Summary: assertion failure calling history.pushState within
popstate event handler
Product: WebKit
Version: 528+ (Nightly build)
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: P2
Component: Page Loading
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: fishd at chromium.org
CC: beidson at apple.com
Created an attachment (id=46892)
--> (https://bugs.webkit.org/attachment.cgi?id=46892)
test case
assertion failure calling history.pushState within popstate event handler
call stack:
> test_shell.exe!WebCore::FrameLoader::navigateWithinDocument(WebCore::HistoryItem * item=0x096e80f8) Line 3707 + 0x30 bytes C++
test_shell.exe!WebCore::FrameLoader::loadItem(WebCore::HistoryItem *
item=0x096e80f8, WebCore::FrameLoadType
loadType=FrameLoadTypeIndexedBackForward) Line 3830 C++
test_shell.exe!WebCore::HistoryController::recursiveGoToItem(WebCore::HistoryItem
* item=0x096e80f8, WebCore::HistoryItem * fromItem=0x008cc148,
WebCore::FrameLoadType type=FrameLoadTypeIndexedBackForward) Line 587 C++
test_shell.exe!WebCore::HistoryController::goToItem(WebCore::HistoryItem *
targetItem=0x096e80f8, WebCore::FrameLoadType
type=FrameLoadTypeIndexedBackForward) Line 228 C++
test_shell.exe!WebKit::WebFrameImpl::loadHistoryItem(const
WebKit::WebHistoryItem & item={...}) Line 759 C++
test_shell.exe!TestShell::Navigate(const TestNavigationEntry &
entry={...}, bool reload=false) Line 627 + 0x2b bytes C++
test_shell.exe!TestNavigationController::NavigateToPendingEntry(bool
reload=false) Line 219 + 0x16 bytes C++
test_shell.exe!TestNavigationController::GoToIndex(int index=2) Line 87
C++
test_shell.exe!TestNavigationController::GoToOffset(int offset=-1) Line
77 C++
test_shell.exe!TestWebViewDelegate::navigateBackForwardSoon(int offset=-1)
Line 552 C++
test_shell.exe!WebKit::FrameLoaderClientImpl::handleBackForwardNavigation(const
WebCore::KURL & url={...}) Line 1464 + 0x21 bytes C++
test_shell.exe!WebKit::FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction(void
(WebCore::PolicyAction)* function=0x01f0acd0, const WebCore::NavigationAction &
action={...}, const WebCore::ResourceRequest & request={...},
WTF::PassRefPtr<WebCore::FormState> formState={...}) Line 899 C++
test_shell.exe!WebCore::PolicyChecker::checkNavigationPolicy(const
WebCore::ResourceRequest & request={...}, WebCore::DocumentLoader *
loader=0x097016d8, WTF::PassRefPtr<WebCore::FormState> formState={...}, void
(void *, const WebCore::ResourceRequest &, WTF::PassRefPtr<WebCore::FormState>,
bool)* function=0x01ad5030, void * argument=0x0083e478) Line 89 C++
test_shell.exe!WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader
* loader=0x097016d8, WebCore::FrameLoadType
type=FrameLoadTypeIndexedBackForward, WTF::PassRefPtr<WebCore::FormState>
prpFormState={...}) Line 2087 C++
test_shell.exe!WebCore::FrameLoader::loadWithNavigationAction(const
WebCore::ResourceRequest & request={...}, const WebCore::NavigationAction &
action={...}, bool lockHistory=false, WebCore::FrameLoadType
type=FrameLoadTypeIndexedBackForward, WTF::PassRefPtr<WebCore::FormState>
formState={...}) Line 2010 C++
test_shell.exe!WebCore::FrameLoader::navigateToDifferentDocument(WebCore::HistoryItem
* item=0x008cb890, WebCore::FrameLoadType
loadType=FrameLoadTypeIndexedBackForward) Line 3806 C++
test_shell.exe!WebCore::FrameLoader::loadItem(WebCore::HistoryItem *
item=0x008cb890, WebCore::FrameLoadType
loadType=FrameLoadTypeIndexedBackForward) Line 3832 C++
test_shell.exe!WebCore::HistoryController::recursiveGoToItem(WebCore::HistoryItem
* item=0x008cb890, WebCore::HistoryItem * fromItem=0x008cc148,
WebCore::FrameLoadType type=FrameLoadTypeIndexedBackForward) Line 587 C++
test_shell.exe!WebCore::HistoryController::goToItem(WebCore::HistoryItem *
targetItem=0x008cb890, WebCore::FrameLoadType
type=FrameLoadTypeIndexedBackForward) Line 228 C++
test_shell.exe!WebCore::Page::goToItem(WebCore::HistoryItem *
item=0x008cb890, WebCore::FrameLoadType type=FrameLoadTypeIndexedBackForward)
Line 311 C++
test_shell.exe!WebCore::Page::goBackOrForward(int distance=-1) Line 288
C++
test_shell.exe!WebCore::RedirectScheduler::timerFired(WebCore::Timer<WebCore::RedirectScheduler>
* __formal=0x0083e790) Line 302 C++
test_shell.exe!WebCore::Timer<WebCore::RedirectScheduler>::fired() Line
98 + 0x23 bytes C++
test_shell.exe!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 112
+ 0xf bytes C++
test_shell.exe!WebCore::ThreadTimers::sharedTimerFired() Line 91 C++
code snippet:
history()->setCurrentItem(item);
// loadInSameDocument() actually changes the URL and notifies load
delegates of a "fake" load
loadInSameDocument(item->url(), item->stateObject(), false);
// Restore user view state from the current history item here since we
don't do a normal load.
// Even though we just manually set the current history item, this ASSERT
verifies nothing
// inside of loadInSameDocument() caused it to change.
ASSERT(history()->currentItem() == item);
^^^ within loadInSameDocument, we dispatch the popstate event. the test case,
calls pushState, which has the effect of synchronously changing the current
HistoryItem.
--
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