WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 68345
pop-state-event-constructor.html crashes and fails
https://bugs.webkit.org/show_bug.cgi?id=68345
Summary
pop-state-event-constructor.html crashes and fails
Kentaro Hara
Reported
2011-09-19 02:54:43 PDT
I added pop-state-event-constructor.html in this bug (
https://bugs.webkit.org/show_bug.cgi?id=67977
), but some tests are crashing or failing. - The following test cases are failing, as you can see in the attached file. The IDL type of PopStateEvent.state should be 'any' (
http://www.whatwg.org/specs/web-apps/current-work/#popstateevent
), and the IDL spec of 'any' (
http://www.w3.org/TR/WebIDL/#es-any
) says that the following test cases should pass. FAIL new PopStateEvent('eventType', { state: '' }).state should be undefined (of type undefined). Was (of type string). FAIL new PopStateEvent('eventType', { state: object1 }).state should be [object Object]. Was [object Object]. FAIL new PopStateEvent('eventType', { state: {valueOf: function () { return object2; } } }).state should be [object Object]. Was [object Object]. FAIL new PopStateEvent('eventType', { bubbles: true, cancelable: true, state: object3 }).state should be [object Object]. Was [object Object]. - When we pass a DOM object (i.e. an unserializable object) as follows, then DRT crashes. This crash happens only in DRT. shouldBe("new PopStateEvent('eventType', { state: document }).state", "document"); The reason for these failures and crash is that PopStateEvent.state is implemented just as SeriazliedScriptValue, and thus it cannot handle ScriptValue. I am preparing a patch for fixing this.
Attachments
Failing test cases
(2.04 KB, text/plain)
2011-09-19 02:55 PDT
,
Kentaro Hara
no flags
Details
Patch
(22.66 KB, patch)
2011-09-26 00:19 PDT
,
Kentaro Hara
no flags
Details
Formatted Diff
Diff
Just updated ChangeLog
(22.79 KB, patch)
2011-09-26 00:33 PDT
,
Kentaro Hara
no flags
Details
Formatted Diff
Diff
WIP patch to see if the patch passes efl build
(24.14 KB, patch)
2011-09-26 01:30 PDT
,
Kentaro Hara
no flags
Details
Formatted Diff
Diff
patch for review
(24.14 KB, patch)
2011-09-26 04:06 PDT
,
Kentaro Hara
no flags
Details
Formatted Diff
Diff
patch for commit
(24.20 KB, patch)
2011-09-26 17:29 PDT
,
Kentaro Hara
no flags
Details
Formatted Diff
Diff
patch for commit
(24.19 KB, patch)
2011-09-26 21:10 PDT
,
Kentaro Hara
no flags
Details
Formatted Diff
Diff
Show Obsolete
(5)
View All
Add attachment
proposed patch, testcase, etc.
Kentaro Hara
Comment 1
2011-09-19 02:55:31 PDT
Created
attachment 107824
[details]
Failing test cases
Kentaro Hara
Comment 2
2011-09-26 00:19:13 PDT
Created
attachment 108632
[details]
Patch
Kentaro Hara
Comment 3
2011-09-26 00:33:07 PDT
Created
attachment 108633
[details]
Just updated ChangeLog
Gyuyoung Kim
Comment 4
2011-09-26 00:43:50 PDT
Comment on
attachment 108633
[details]
Just updated ChangeLog
Attachment 108633
[details]
did not pass efl-ews (efl): Output:
http://queues.webkit.org/results/9843772
Kentaro Hara
Comment 5
2011-09-26 01:30:48 PDT
Created
attachment 108645
[details]
WIP patch to see if the patch passes efl build
Kentaro Hara
Comment 6
2011-09-26 04:06:03 PDT
Created
attachment 108651
[details]
patch for review
Adam Barth
Comment 7
2011-09-26 11:52:08 PDT
Comment on
attachment 108651
[details]
patch for review View in context:
https://bugs.webkit.org/attachment.cgi?id=108651&action=review
> Source/WebCore/ChangeLog:17 > + popped from HistoryItem, but we cannot deserialize the SeriazliedScriptValue into
SeriazliedScriptValue => SerializedScriptValue
> Source/WebCore/ChangeLog:20 > + PopStateEvent still needs to provide an API to construct it with SeriazliedScriptValue.
SeriazliedScriptValue
> Source/WebCore/bindings/v8/custom/V8PopStateEventCustom.cpp:46 > + SerializedScriptValue* serializedState = event->serializedState(); > + return serializedState ? serializedState->deserialize() : event->state().v8Value();
Will this return undefined when the JSC version returns null?
> Source/WebCore/dom/PopStateEvent.cpp:61 > + , m_state()
We usually omit this declaration when we're just calling the default constructor.
Kentaro Hara
Comment 8
2011-09-26 17:29:59 PDT
Created
attachment 108763
[details]
patch for commit
Kentaro Hara
Comment 9
2011-09-26 21:10:39 PDT
Created
attachment 108785
[details]
patch for commit
Kentaro Hara
Comment 10
2011-09-26 21:13:06 PDT
Comment on
attachment 108651
[details]
patch for review View in context:
https://bugs.webkit.org/attachment.cgi?id=108651&action=review
>> Source/WebCore/ChangeLog:17 >> + popped from HistoryItem, but we cannot deserialize the SeriazliedScriptValue into > > SeriazliedScriptValue => SerializedScriptValue
Thanks! Fixed.
>> Source/WebCore/ChangeLog:20 >> + PopStateEvent still needs to provide an API to construct it with SeriazliedScriptValue. > > SeriazliedScriptValue
Fixed.
>> Source/WebCore/bindings/v8/custom/V8PopStateEventCustom.cpp:46 >> + return serializedState ? serializedState->deserialize() : event->state().v8Value(); > > Will this return undefined when the JSC version returns null?
Sorry, fixed it.
>> Source/WebCore/dom/PopStateEvent.cpp:61 >> + , m_state() > > We usually omit this declaration when we're just calling the default constructor.
Omitted.
WebKit Review Bot
Comment 11
2011-09-26 23:26:11 PDT
Comment on
attachment 108785
[details]
patch for commit Clearing flags on attachment: 108785 Committed
r96073
: <
http://trac.webkit.org/changeset/96073
>
WebKit Review Bot
Comment 12
2011-09-26 23:26:17 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug