Summary: | Add setValue and closePopup methods to PagePopupController | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Keishi Hattori <keishi> | ||||||
Component: | Forms | Assignee: | Keishi Hattori <keishi> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | tkent, webkit.review.bot | ||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Bug Depends on: | |||||||||
Bug Blocks: | 109439 | ||||||||
Attachments: |
|
Description
Keishi Hattori
2013-02-14 23:23:44 PST
Created attachment 188490 [details]
Patch
Comment on attachment 188490 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=188490&action=review > Source/WebKit/chromium/src/DateTimeChooserImpl.cpp:173 > - RefPtr<DateTimeChooserImpl> protector(this); > if (numValue >= 0) > - m_client->didChooseValue(stringValue); > + setValue(stringValue); > + endChooser(); > +} The protector is required here. setValue(), which might dispatch some events, can delete 'this'. > Source/WebKit/chromium/src/DateTimeChooserImpl.cpp:178 > + RefPtr<DateTimeChooserImpl> protector(this); > + m_client->didChooseValue(value); The protector makes no sense. We do nothing after didChooseValue, which might dispatch some events. Also, I'm afraid that we have no ways to avoid calendar picker JavaScript code execution after didChooseValue because event handler might delete the page popup. Created attachment 188529 [details]
changed protector position
Comment on attachment 188529 [details]
changed protector position
ok
Comment on attachment 188529 [details] changed protector position Clearing flags on attachment: 188529 Committed r142987: <http://trac.webkit.org/changeset/142987> All reviewed patches have been landed. Closing bug. |