Title: [135213] branches/chromium/1312

Diff

Copied: branches/chromium/1312/LayoutTests/platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange-expected.txt (from rev 132895, trunk/LayoutTests/platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange-expected.txt) (0 => 135213)


--- branches/chromium/1312/LayoutTests/platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange-expected.txt	                        (rev 0)
+++ branches/chromium/1312/LayoutTests/platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange-expected.txt	2012-11-20 00:39:07 UTC (rev 135213)
@@ -0,0 +1,10 @@
+Check if we have no crash in a case that the input type is changed by selecting a day in the calendar picker.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS unless crash
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Copied: branches/chromium/1312/LayoutTests/platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html (from rev 132895, trunk/LayoutTests/platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html) (0 => 135213)


--- branches/chromium/1312/LayoutTests/platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html	                        (rev 0)
+++ branches/chromium/1312/LayoutTests/platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html	2012-11-20 00:39:07 UTC (rev 135213)
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<body>
+<script src=""
+<script src=""
+<input type="date" id="date1" _onchange_="changeType(this)" value="2000-01-01">
+<script>
+description('Check if we have no crash in a case that the input type is changed by selecting a day in the calendar picker.');
+
+openPicker(document.getElementById('date1'), selectToday);
+
+function selectToday() {
+    eventSender.keyDown('t');
+    eventSender.keyDown('\n');
+}
+
+function changeType(input) {
+    input.type = 'text';
+    testPassed('unless crash');
+    finishJSTest();
+}
+</script>
+<script src=""
+</body>

Modified: branches/chromium/1312/Source/WebCore/html/shadow/PickerIndicatorElement.cpp (135212 => 135213)


--- branches/chromium/1312/Source/WebCore/html/shadow/PickerIndicatorElement.cpp	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebCore/html/shadow/PickerIndicatorElement.cpp	2012-11-20 00:39:07 UTC (rev 135213)
@@ -51,7 +51,6 @@
 
 inline PickerIndicatorElement::PickerIndicatorElement(Document* document)
     : HTMLDivElement(divTag, document)
-    , m_chooser(nullptr)
 {
     setShadowPseudoId("-webkit-calendar-picker-indicator");
 }

Modified: branches/chromium/1312/Source/WebCore/html/shadow/PickerIndicatorElement.h (135212 => 135213)


--- branches/chromium/1312/Source/WebCore/html/shadow/PickerIndicatorElement.h	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebCore/html/shadow/PickerIndicatorElement.h	2012-11-20 00:39:07 UTC (rev 135213)
@@ -63,7 +63,7 @@
 
     HTMLInputElement* hostInput();
 
-    OwnPtr<DateTimeChooser> m_chooser;
+    RefPtr<DateTimeChooser> m_chooser;
 };
 
 }

Modified: branches/chromium/1312/Source/WebCore/loader/EmptyClients.cpp (135212 => 135213)


--- branches/chromium/1312/Source/WebCore/loader/EmptyClients.cpp	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebCore/loader/EmptyClients.cpp	2012-11-20 00:39:07 UTC (rev 135213)
@@ -105,9 +105,9 @@
 #endif
 
 #if ENABLE(CALENDAR_PICKER)
-PassOwnPtr<DateTimeChooser> EmptyChromeClient::openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&)
+PassRefPtr<DateTimeChooser> EmptyChromeClient::openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&)
 {
-    return nullptr;
+    return PassRefPtr<DateTimeChooser>();
 }
 #endif
 

Modified: branches/chromium/1312/Source/WebCore/loader/EmptyClients.h (135212 => 135213)


--- branches/chromium/1312/Source/WebCore/loader/EmptyClients.h	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebCore/loader/EmptyClients.h	2012-11-20 00:39:07 UTC (rev 135213)
@@ -174,7 +174,7 @@
 #endif
 
 #if ENABLE(CALENDAR_PICKER)
-    virtual PassOwnPtr<DateTimeChooser> openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) OVERRIDE;
+    virtual PassRefPtr<DateTimeChooser> openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) OVERRIDE;
 #endif
 
     virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) OVERRIDE;

Modified: branches/chromium/1312/Source/WebCore/page/ChromeClient.h (135212 => 135213)


--- branches/chromium/1312/Source/WebCore/page/ChromeClient.h	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebCore/page/ChromeClient.h	2012-11-20 00:39:07 UTC (rev 135213)
@@ -227,7 +227,7 @@
 #endif
 
 #if ENABLE(CALENDAR_PICKER)
-        virtual PassOwnPtr<DateTimeChooser> openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) = 0;
+        virtual PassRefPtr<DateTimeChooser> openDateTimeChooser(DateTimeChooserClient*, const DateTimeChooserParameters&) = 0;
 #endif
 
         virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>) = 0;

Modified: branches/chromium/1312/Source/WebCore/platform/DateTimeChooser.h (135212 => 135213)


--- branches/chromium/1312/Source/WebCore/platform/DateTimeChooser.h	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebCore/platform/DateTimeChooser.h	2012-11-20 00:39:07 UTC (rev 135213)
@@ -32,6 +32,7 @@
 #define DateTimeChooser_h
 
 #include "IntRect.h"
+#include <wtf/RefCounted.h>
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
@@ -52,7 +53,7 @@
 };
 
 // For pickers like color pickers and date pickers.
-class DateTimeChooser {
+class DateTimeChooser : public RefCounted<DateTimeChooser> {
 public:
     virtual ~DateTimeChooser() { }
 

Modified: branches/chromium/1312/Source/WebKit/chromium/src/ChromeClientImpl.cpp (135212 => 135213)


--- branches/chromium/1312/Source/WebKit/chromium/src/ChromeClientImpl.cpp	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebKit/chromium/src/ChromeClientImpl.cpp	2012-11-20 00:39:07 UTC (rev 135213)
@@ -706,9 +706,9 @@
 #endif
 
 #if ENABLE(CALENDAR_PICKER)
-PassOwnPtr<WebCore::DateTimeChooser> ChromeClientImpl::openDateTimeChooser(WebCore::DateTimeChooserClient* pickerClient, const WebCore::DateTimeChooserParameters& parameters)
+PassRefPtr<DateTimeChooser> ChromeClientImpl::openDateTimeChooser(DateTimeChooserClient* pickerClient, const DateTimeChooserParameters& parameters)
 {
-    return adoptPtr(new DateTimeChooserImpl(this, pickerClient, parameters));
+    return DateTimeChooserImpl::create(this, pickerClient, parameters);
 }
 #endif
 

Modified: branches/chromium/1312/Source/WebKit/chromium/src/ChromeClientImpl.h (135212 => 135213)


--- branches/chromium/1312/Source/WebKit/chromium/src/ChromeClientImpl.h	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebKit/chromium/src/ChromeClientImpl.h	2012-11-20 00:39:07 UTC (rev 135213)
@@ -148,7 +148,7 @@
     PassOwnPtr<WebColorChooser> createWebColorChooser(WebColorChooserClient*, const WebColor&);
 #endif
 #if ENABLE(CALENDAR_PICKER)
-    virtual PassOwnPtr<WebCore::DateTimeChooser> openDateTimeChooser(WebCore::DateTimeChooserClient*, const WebCore::DateTimeChooserParameters&) OVERRIDE;
+    virtual PassRefPtr<WebCore::DateTimeChooser> openDateTimeChooser(WebCore::DateTimeChooserClient*, const WebCore::DateTimeChooserParameters&) OVERRIDE;
 #endif
     virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>);
     virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*);

Modified: branches/chromium/1312/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp (135212 => 135213)


--- branches/chromium/1312/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp	2012-11-20 00:39:07 UTC (rev 135213)
@@ -64,6 +64,11 @@
     m_popup = m_chromeClient->openPagePopup(this, m_parameters.anchorRectInRootView);
 }
 
+PassRefPtr<DateTimeChooserImpl> DateTimeChooserImpl::create(ChromeClientImpl* chromeClient, WebCore::DateTimeChooserClient* client, const WebCore::DateTimeChooserParameters& parameters)
+{
+    return adoptRef(new DateTimeChooserImpl(chromeClient, client, parameters));
+}
+
 DateTimeChooserImpl::~DateTimeChooserImpl()
 {
 }
@@ -150,6 +155,7 @@
 
 void DateTimeChooserImpl::setValueAndClosePopup(int numValue, const String& stringValue)
 {
+    RefPtr<DateTimeChooserImpl> protector(this);
     if (numValue >= 0)
         m_client->didChooseValue(stringValue);
     endChooser();

Modified: branches/chromium/1312/Source/WebKit/chromium/src/DateTimeChooserImpl.h (135212 => 135213)


--- branches/chromium/1312/Source/WebKit/chromium/src/DateTimeChooserImpl.h	2012-11-20 00:38:01 UTC (rev 135212)
+++ branches/chromium/1312/Source/WebKit/chromium/src/DateTimeChooserImpl.h	2012-11-20 00:39:07 UTC (rev 135213)
@@ -47,13 +47,14 @@
 
 class DateTimeChooserImpl : public WebCore::DateTimeChooser, public WebCore::PagePopupClient {
 public:
-    DateTimeChooserImpl(ChromeClientImpl*, WebCore::DateTimeChooserClient*, const WebCore::DateTimeChooserParameters&);
+    static PassRefPtr<DateTimeChooserImpl> create(ChromeClientImpl*, WebCore::DateTimeChooserClient*, const WebCore::DateTimeChooserParameters&);
     virtual ~DateTimeChooserImpl();
 
     // DateTimeChooser functions:
     virtual void endChooser() OVERRIDE;
 
 private:
+    DateTimeChooserImpl(ChromeClientImpl*, WebCore::DateTimeChooserClient*, const WebCore::DateTimeChooserParameters&);
     // PagePopupClient functions:
     virtual WebCore::IntSize contentSize() OVERRIDE;
     virtual void writeDocument(WebCore::DocumentWriter&) OVERRIDE;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to