Changeset 38838 in webkit
- Timestamp:
- Nov 28, 2008 8:00:20 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r38837 r38838 1 2008-11-28 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> 2 3 Reviewed by Cameron Zwarich. 4 5 Update WML layout test results after adding <timer> element support. 6 7 * platform/mac/fast/wml/err-multi-timer-expected.checksum: 8 * platform/mac/fast/wml/err-multi-timer-expected.png: 9 * platform/mac/fast/wml/err-multi-timer-expected.txt: 10 1 11 2008-11-28 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> 2 12 -
trunk/LayoutTests/platform/mac/fast/wml/err-multi-timer-expected.checksum
r38577 r38838 1 ec325e125c7d147318bc7d519440914c 1 0b637caf7ac3a7af93fe0e787a096efa -
trunk/LayoutTests/platform/mac/fast/wml/err-multi-timer-expected.txt
r38577 r38838 1 1 layer at (0,0) size 800x600 2 2 RenderView at (0,0) size 800x600 3 layer at (0,0) size 800x76 4 RenderBlock {wml} at (0,0) size 800x76 5 RenderBlock {card} at (8,16) size 784x52 6 RenderBlock (anonymous) at (0,0) size 784x0 7 RenderInline {timer} at (0,0) size 0x0 8 RenderText {#text} at (0,0) size 0x0 9 RenderInline {timer} at (0,0) size 0x0 10 RenderText {#text} at (0,0) size 0x0 11 RenderBlock {p} at (0,0) size 784x18 12 RenderText {#text} at (0,0) size 281x18 13 text run at (0,0) width 281: "Test for error of meta multi-timer in one card" 14 RenderBlock (anonymous) at (0,34) size 784x18 15 RenderText {#text} at (0,0) size 585x18 16 text run at (0,0) width 585: "You should NOT see this text, because of the error that more than one timer exist in one card" 3 layer at (0,0) size 800x166 4 RenderBlock {html} at (0,0) size 800x166 5 RenderBody {body} at (8,16) size 784x134 6 RenderBlock {parsererror} at (16,0) size 752x134 [bgcolor=#FFDDDD] [border: (2px solid #CC7777)] 7 RenderBlock {h3} at (18,20) size 716x22 8 RenderText {#text} at (0,0) size 324x22 9 text run at (0,0) width 324: "This page contains the following errors:" 10 RenderBlock {div} at (18,60) size 716x14 11 RenderText {#text} at (0,0) size 518x14 12 text run at (0,0) width 518: "error on line 6 at column 65: Only one timer element is allowed in a card." 13 RenderBlock {h3} at (18,92) size 716x22 14 RenderText {#text} at (0,0) size 429x22 15 text run at (0,0) width 429: "Below is a rendering of the page up to the first error." 16 RenderBlock (anonymous) at (0,150) size 784x0 17 RenderInline {wml} at (0,0) size 0x0 18 RenderText {#text} at (0,0) size 0x0 19 RenderBlock (anonymous) at (0,150) size 784x0 20 RenderBlock {card} at (8,0) size 768x0 21 RenderInline {timer} at (0,0) size 0x0 22 RenderText {#text} at (0,0) size 0x0 23 RenderInline {timer} at (0,0) size 0x0 24 RenderBlock (anonymous) at (0,150) size 784x0 25 RenderInline {wml} at (0,0) size 0x0 -
trunk/WebCore/ChangeLog
r38837 r38838 1 2008-11-28 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> 2 3 Reviewed by Cameron Zwarich. 4 5 Fixes: https://bugs.webkit.org/show_bug.cgi?id=22550 6 7 Add <timer> element support. It provides a way to execute a task with a delay. 8 The user is notified by firing the task associated with the <card>'s ontimer attribute. 9 Only one timer element is allowed per <card> (fix wrong error message in reportWMLError) 10 11 * WebCore.xcodeproj/project.pbxproj: 12 * wml/WMLCardElement.cpp: 13 (WebCore::WMLCardElement::WMLCardElement): 14 (WebCore::WMLCardElement::setIntrinsicEventTimer): 15 (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded): 16 * wml/WMLCardElement.h: 17 * wml/WMLDoElement.cpp: 18 (WebCore::WMLDoElement::defaultEventHandler): 19 * wml/WMLErrorHandling.cpp: 20 (WebCore::reportWMLError): 21 * wml/WMLPageState.h: 22 (WebCore::WMLPageState::getVariable): 23 * wml/WMLPrevElement.cpp: 24 (WebCore::WMLPrevElement::executeTask): 25 * wml/WMLRefreshElement.cpp: 26 (WebCore::WMLRefreshElement::executeTask): 27 * wml/WMLTagNames.in: 28 * wml/WMLTimerElement.cpp: Added. 29 (WebCore::WMLTimerElement::WMLTimerElement): 30 (WebCore::WMLTimerElement::parseMappedAttribute): 31 (WebCore::WMLTimerElement::insertedIntoDocument): 32 (WebCore::WMLTimerElement::timerFired): 33 (WebCore::WMLTimerElement::start): 34 (WebCore::WMLTimerElement::stop): 35 (WebCore::WMLTimerElement::storeIntervalToPageState): 36 * wml/WMLTimerElement.h: Added. 37 1 38 2008-11-28 Nikolas Zimmermann <nikolas.zimmermann@torchmobile.com> 2 39 -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r38837 r38838 46 46 0818AEE20EDB86BC00647B66 /* WMLEventHandlingElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0818AEE00EDB86BC00647B66 /* WMLEventHandlingElement.cpp */; }; 47 47 0818AEE30EDB86BC00647B66 /* WMLEventHandlingElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 0818AEE10EDB86BC00647B66 /* WMLEventHandlingElement.h */; }; 48 081D81310EE0E74D00D73689 /* WMLTimerElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 081D812F0EE0E74D00D73689 /* WMLTimerElement.cpp */; }; 49 081D81320EE0E74D00D73689 /* WMLTimerElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 081D81300EE0E74D00D73689 /* WMLTimerElement.h */; }; 48 50 08203A9F0ED8C35300B8B61A /* WMLAccessElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 08203A9D0ED8C35300B8B61A /* WMLAccessElement.cpp */; }; 49 51 08203AA00ED8C35300B8B61A /* WMLAccessElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 08203A9E0ED8C35300B8B61A /* WMLAccessElement.h */; }; … … 4824 4826 0818AEE00EDB86BC00647B66 /* WMLEventHandlingElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLEventHandlingElement.cpp; sourceTree = "<group>"; }; 4825 4827 0818AEE10EDB86BC00647B66 /* WMLEventHandlingElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLEventHandlingElement.h; sourceTree = "<group>"; }; 4828 081D812F0EE0E74D00D73689 /* WMLTimerElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLTimerElement.cpp; sourceTree = "<group>"; }; 4829 081D81300EE0E74D00D73689 /* WMLTimerElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLTimerElement.h; sourceTree = "<group>"; }; 4826 4830 08203A9D0ED8C35300B8B61A /* WMLAccessElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WMLAccessElement.cpp; sourceTree = "<group>"; }; 4827 4831 08203A9E0ED8C35300B8B61A /* WMLAccessElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WMLAccessElement.h; sourceTree = "<group>"; }; … … 9559 9563 08CD61B80ED3929C002DDF51 /* WMLTaskElement.cpp */, 9560 9564 08CD61B90ED3929C002DDF51 /* WMLTaskElement.h */, 9565 081D812F0EE0E74D00D73689 /* WMLTimerElement.cpp */, 9566 081D81300EE0E74D00D73689 /* WMLTimerElement.h */, 9561 9567 084DBA9D0ED39D350038C226 /* WMLVariables.cpp */, 9562 9568 084DBA9E0ED39D360038C226 /* WMLVariables.h */, … … 16453 16459 08E192540EDE0C3A0087B780 /* WMLErrorHandling.h in Headers */, 16454 16460 0804BF6F0EE09C3B0006C000 /* WMLDoElement.h in Headers */, 16461 081D81320EE0E74D00D73689 /* WMLTimerElement.h in Headers */, 16455 16462 ); 16456 16463 runOnlyForDeploymentPostprocessing = 0; … … 18391 18398 08E192530EDE0C3A0087B780 /* WMLErrorHandling.cpp in Sources */, 18392 18399 0804BF6E0EE09C3B0006C000 /* WMLDoElement.cpp in Sources */, 18400 081D81310EE0E74D00D73689 /* WMLTimerElement.cpp in Sources */, 18393 18401 ); 18394 18402 runOnlyForDeploymentPostprocessing = 0; -
trunk/WebCore/wml/WMLCardElement.cpp
r38837 r38838 37 37 #include "WMLNames.h" 38 38 #include "WMLPageState.h" 39 #include "WMLTimerElement.h" 39 40 #include "WMLVariables.h" 40 41 … … 48 49 , m_isOrdered(false) 49 50 , m_isVisible(false) 51 , m_eventTimer(0) 50 52 { 51 53 } … … 69 71 m_doElements.append(doElement); 70 72 doElement->setActive(true); 73 } 74 75 void WMLCardElement::setIntrinsicEventTimer(WMLTimerElement* timer) 76 { 77 // Only one timer is allowed in a card 78 if (m_eventTimer) { 79 m_eventTimer = 0; 80 reportWMLError(document(), WMLErrorMultipleTimerElements); 81 return; 82 } 83 84 m_eventTimer = timer; 71 85 } 72 86 … … 118 132 eventHandler->triggerIntrinsicEvent(eventType); 119 133 120 // FIXME Start the timer if it exists in current card 121 /* 122 if (eventTimer) 123 eventTimer->start(); 124 */ 134 // Start the timer if it exists in current card 135 if (m_eventTimer) 136 m_eventTimer->start(); 125 137 126 138 // FIXME: Initialize input/select elements in this card -
trunk/WebCore/wml/WMLCardElement.h
r38837 r38838 31 31 32 32 class WMLDoElement; 33 class WMLTimerElement; 33 34 34 35 class WMLCardElement : public WMLEventHandlingElement { … … 39 40 bool isNewContext() const { return m_isNewContext; } 40 41 bool isOrdered() const { return m_isOrdered; } 42 WMLTimerElement* eventTimer() const { return m_eventTimer; } 41 43 42 44 void registerDoElement(WMLDoElement*); 45 void setIntrinsicEventTimer(WMLTimerElement*); 43 46 void handleIntrinsicEventIfNeeded(); 44 47 … … 59 62 bool m_isVisible; 60 63 64 WMLTimerElement* m_eventTimer; 61 65 Vector<WMLDoElement*> m_doElements; 62 66 }; -
trunk/WebCore/wml/WMLDoElement.cpp
r38837 r38838 35 35 #include "WMLErrorHandling.h" 36 36 #include "WMLTaskElement.h" 37 #include "WMLTimerElement.h" 37 38 #include "WMLNames.h" 38 39 #include "WMLPageState.h" … … 77 78 return; 78 79 79 / * FIXME:Stop the timer of the current card if it is active80 // Stop the timer of the current card if it is active 80 81 WMLCardElement* card = pageState->activeCard(); 81 82 if (card && card->eventTimer()) 82 83 card->eventTimer()->stop(); 83 */84 84 85 85 pageState->page()->goBack(); -
trunk/WebCore/wml/WMLErrorHandling.cpp
r38816 r38838 77 77 break; 78 78 case WMLErrorMultipleTimerElements: 79 errorMessage = "Only one accesselement is allowed in a card.";79 errorMessage = "Only one timer element is allowed in a card."; 80 80 break; 81 81 case WMLErrorUnknown: -
trunk/WebCore/wml/WMLPageState.h
r38816 r38838 48 48 void storeVariable(const String& name, const String& value) { m_variables.set(name, value); } 49 49 void storeVariables(WMLVariableMap& variables) { m_variables = variables; } 50 String getVari bale(const String& name) const { return m_variables.get(name); }50 String getVariable(const String& name) const { return m_variables.get(name); } 51 51 bool hasVariables() const { return m_variables.size(); } 52 52 -
trunk/WebCore/wml/WMLPrevElement.cpp
r38743 r38838 26 26 27 27 #include "Page.h" 28 #include "WMLCardElement.h" 28 29 #include "WMLDocument.h" 29 30 #include "WMLPageState.h" 31 #include "WMLTimerElement.h" 30 32 31 33 namespace WebCore { … … 52 54 storeVariableState(pageState); 53 55 54 /* FIXME55 56 // Stop the timer of the current card if it is active 56 57 if (WMLTimerElement* timer = card->eventTimer()) 57 58 timer->stop(); 58 */59 59 60 60 pageState->page()->goBack(); -
trunk/WebCore/wml/WMLRefreshElement.cpp
r38743 r38838 28 28 #include "FrameLoader.h" 29 29 #include "Page.h" 30 #include "WMLCardElement.h" 30 31 #include "WMLDocument.h" 31 32 #include "WMLPageState.h" 33 #include "WMLTimerElement.h" 32 34 33 35 namespace WebCore { … … 52 54 return; 53 55 54 /* FIXME55 56 // Before perform refresh task, we store the current timeout 56 57 // value in the page state and then stop the timer 57 if (WMLTimerElement* timer = card->eventTimer()) { 58 WMLTimerElement* timer = card->eventTimer(); 59 if (timer) { 58 60 timer->storeIntervalToPageState(); 59 61 timer->stop(); 60 62 } 61 */62 63 63 64 storeVariableState(pageState); 64 65 65 66 // Redisplay curremt card with current variable state 66 if (Frame* frame = pageState->page()->mainFrame()) 67 if (Frame* frame = pageState->page()->mainFrame()) { 67 68 if (FrameLoader* loader = frame->loader()) 68 69 loader->reload(); 70 } 69 71 70 /* FIXME71 72 // After refreshing task, resume the timer if it exsits 72 73 if (timer) 73 74 timer->start(); 74 */75 75 } 76 76 -
trunk/WebCore/wml/WMLTagNames.in
r38837 r38838 16 16 refresh 17 17 setvar 18 timer 18 19 19 20 #if 0 … … 31 32 postfield 32 33 template 33 timer34 34 #endif
Note: See TracChangeset
for help on using the changeset viewer.