<rdar://problem/6302405> Crash (null-deref) when using :before pseudoselector with...
[WebKit-https.git] / WebCore / ChangeLog
1 2008-12-10  Oliver Hunt  <oliver@apple.com>
2
3         Reviewed by Adele Peterson.
4
5         <rdar://problem/6302405> Crash (null-deref) when using :before pseudoselector with content CSS rule in SVG
6         <https://bugs.webkit.org/show_bug.cgi?id=22804>
7
8         This issue was caused by css generated content resulting in non-svg flowboxes
9         being injected into SVG content.  As SVG spec does not describe behaviour in
10         this case, and neither Opera nor Firefox displays such generated content, so
11         now we make svg text layout and rendering just ignore any such content.
12
13         Test: svg/css/crash-css-generated-content.xhtml
14
15         * rendering/SVGRootInlineBox.cpp:
16         (WebCore::SVGRootInlineBox::buildLayoutInformation):
17         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
18         (WebCore::SVGRootInlineBox::buildTextChunks):
19
20 2008-12-11  Cameron Zwarich  <zwarich@apple.com>
21
22         Reviewed by Dave Hyatt.
23
24         Bug 21256: REGRESSION (r36906): horizontally repeating image leaves ghosts when vertical scrolling
25         <https://bugs.webkit.org/show_bug.cgi?id=21256>
26         <rdar://problem/6362978>
27
28         The ScrollView refactoring in r36906 caused the ScrollView and the
29         platform widget to disagree about whether optimizing scrolling via
30         blitting is allowed. The easiest way to fix this is to make ScrollView
31         simply ask the platform widget whether this is safe on platforms that
32         are affected.
33
34         It is not possible to write a layout test for this bug because it
35         involves the back/forward cache.
36
37         * platform/ScrollView.cpp:
38         (WebCore::ScrollView::ScrollView):
39         (WebCore::ScrollView::setCanBlitOnScroll):
40         (WebCore::ScrollView::canBlitOnScroll):
41         (WebCore::ScrollView::platformSetCanBlitOnScroll):
42         (WebCore::ScrollView::platformCanBlitOnScroll):
43         * platform/ScrollView.h:
44         * platform/mac/ScrollViewMac.mm:
45         (WebCore::ScrollView::platformSetCanBlitOnScroll):
46         (WebCore::ScrollView::platformCanBlitOnScroll):
47         * platform/wx/ScrollViewWx.cpp:
48         (WebCore::ScrollView::platformSetCanBlitOnScroll):
49         (WebCore::ScrollView::platformCanBlitOnScroll):
50
51 2008-12-11  Brent Fulgham  <bfulgham@gmail.com>
52
53         Reviewed by Adam Roben.
54
55         https://bugs.webkit.org/show_bug.cgi?id=22808
56
57         Correct build break due to malformed XML in Visual Studio project
58         following @r39205 change.
59
60         * WebCore.vcproj/WebCore.vcproj: Correct file entry so project loads.
61
62 2008-12-10  Chris Marrin  <cmarrin@apple.com>
63
64         Reviewed by Dave Hyatt.
65
66         Fixed https://bugs.webkit.org/show_bug.cgi?id=22738
67
68         This gets rid of the per-animation timers which were used when an animation
69         started, ended and looped. Their job is now done by the main AnimationController's
70         timer. It is now set to fire as needed. For instance, if there is a delay, it will
71         fire after the delay time and then every 30ms to run the animation. The start, loop
72         and end events are generated as needed during the firing of this timer.
73
74         I had to add one more bit of code. When animation timers used to fire the animation events.
75         This would always happen from the RunLoop, so any style changes that happened in the
76         event handler would get picked up on the next updateRendering() call. But now the start
77         event is generated during the styleIsAvailable() call, which is in the middle of the 
78         updateRendering() cycle. And calling an event handler in the middle of updateRendering()
79         is not allowed and causes style changes to get missed. We already have a mechanism in
80         AnimationController to defer updateRendering() calls. So I added logic to defer all
81         event handling to there. Now, I put any request for event handling into a list and ask
82         for a deferred updateRendering() call. When that deferred timer fires, I go through that
83         list, send all the events and then call updateRendering().
84
85         * page/animation/AnimationBase.cpp:
86         (WebCore::AnimationBase::AnimationBase):
87         (WebCore::AnimationBase::updateStateMachine):
88         (WebCore::AnimationBase::fireAnimationEventsIfNeeded):
89         (WebCore::AnimationBase::willNeedService):
90         (WebCore::AnimationBase::goIntoEndingOrLoopingState):
91         * page/animation/AnimationBase.h:
92         * page/animation/AnimationController.cpp:
93         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
94         (WebCore::AnimationControllerPrivate::updateRenderingDispatcherFired):
95         (WebCore::AnimationControllerPrivate::addEventToDispatch):
96         (WebCore::AnimationControllerPrivate::animationTimerFired):
97         (WebCore::AnimationController::addEventToDispatch):
98         * page/animation/AnimationController.h:
99         * page/animation/CompositeAnimation.cpp:
100         (WebCore::CompositeAnimationPrivate::updateTransitions):
101         (WebCore::CompositeAnimationPrivate::willNeedService):
102         (WebCore::CompositeAnimationPrivate::getAnimationForProperty):
103         (WebCore::CompositeAnimation::willNeedService):
104         (WebCore::CompositeAnimation::getAnimationForProperty):
105         * page/animation/CompositeAnimation.h:
106         * page/animation/ImplicitAnimation.cpp:
107         (WebCore::ImplicitAnimation::animate):
108         (WebCore::ImplicitAnimation::onAnimationEnd):
109         (WebCore::ImplicitAnimation::sendTransitionEvent):
110         * page/animation/ImplicitAnimation.h:
111         * page/animation/KeyframeAnimation.cpp:
112         (WebCore::KeyframeAnimation::animate):
113         (WebCore::KeyframeAnimation::sendAnimationEvent):
114         * page/animation/KeyframeAnimation.h:
115         (WebCore::KeyframeAnimation::setUnanimatedStyle):
116
117 2008-12-11  Simon Hausmann  <simon.hausmann@nokia.com>
118
119         Fix the Qt build with an empty filenameExtension() implementation.
120
121         * platform/graphics/qt/ImageSourceQt.cpp:
122         (WebCore::ImageSource::filenameExtension):
123
124 2008-12-11  Holger Hans Peter Freyther  <zecke@selfish.org>
125
126         Reviewed by Simon Hausmann.
127
128         Fix crash in the cairo implementation of the SVGPaintServer
129
130         For SVGFonts the RenderObject can be zero. The existing SVGFont
131         test cases is exposing this bug. Qt and other ports have fixed
132         this issue by adding null checks as well.
133
134         * svg/graphics/cairo/SVGPaintServerCairo.cpp:
135         (WebCore::SVGPaintServer::renderPath):
136
137 2008-12-11  Holger Freyther  <zecke@selfish.org>
138
139         Reviewed by Simon Hausmann.
140
141         https://bugs.webkit.org/show_bug.cgi?id=20953
142
143         Make the Qt port follow the Win, Mac, Gtk+ port in regard to Font
144         handling. FontQt.cpp from now on is only implementing the complex path. Create
145         FontFallbackListQt.cpp and FontPlatformDataQt.cpp to work within
146         the framework set by the Font code.
147
148         Sharing the Font.cpp implementation allows the Qt port to support
149         the CSS font faces and SVG fonts.
150
151         Split out the Qt4.3 Font handling into FonQt43.cpp to allow to more
152         easily deprecate it.
153
154         This commit is removing a lot of #ifdefs from Font.h as the Qt Font
155         implementation is now in line with the rest of WebCore.
156
157         * WebCore.pro:
158         * platform/graphics/Font.h: Remove #ifdefs
159         (WebCore::Font::letterSpacing):
160         (WebCore::Font::setLetterSpacing):
161         (WebCore::Font::isPlatformFont):
162         * platform/graphics/FontFallbackList.h:
163         * platform/graphics/SimpleFontData.cpp:
164         (WebCore::SimpleFontData::SimpleFontData):
165         (WebCore::SimpleFontData::platformGlyphInit): There is no GlyphCache
166         on Qt, move the initialisation over.
167         (WebCore::SimpleFontData::~SimpleFontData):
168         * platform/graphics/SimpleFontData.h:
169         (WebCore::SimpleFontData::getQtFont):
170         * platform/graphics/qt/FontCacheQt.cpp:
171         (WebCore::FontCache::getCachedFontPlatformData): Remove unused parameter
172         (WebCore::FontCache::releaseFontData): Add to build
173         * platform/graphics/qt/FontCustomPlatformData.cpp:
174         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
175         (WebCore::FontCustomPlatformData::fontPlatformData):
176         (WebCore::createFontCustomPlatformData):
177         * platform/graphics/qt/FontCustomPlatformData.h:
178         * platform/graphics/qt/FontFallbackListQt.cpp: Added.
179         (WebCore::FontFallbackList::FontFallbackList):
180         (WebCore::FontFallbackList::invalidate):
181         (WebCore::FontFallbackList::releaseFontData):
182         (WebCore::FontFallbackList::determinePitch):
183         (WebCore::FontFallbackList::fontDataAt):
184         (WebCore::FontFallbackList::fontDataForCharacters):
185         (WebCore::FontFallbackList::setPlatformFont):
186         * platform/graphics/qt/FontPlatformData.h:
187         (WebCore::FontPlatformData::font):
188         (WebCore::FontPlatformData::size):
189         * platform/graphics/qt/FontPlatformDataQt.cpp: Added.
190         (WebCore::FontPlatformData::FontPlatformData):
191         * platform/graphics/qt/FontQt.cpp:
192         (WebCore::Font::drawComplexText):
193         (WebCore::Font::floatWidthForComplexText):
194         (WebCore::Font::offsetForPositionForComplexText):
195         (WebCore::Font::selectionRectForComplexText):
196         (WebCore::Font::font):
197         * platform/graphics/qt/FontQt43.cpp: Added. Moved Qt4.3 code from FontQt.cpp
198         (WebCore::Font::drawComplexText):
199         (WebCore::Font::floatWidthForComplexText):
200         (WebCore::Font::offsetForPositionForComplexText):
201         (WebCore::Font::selectionRectForComplexText):
202         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
203         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
204         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
205         * platform/graphics/qt/SimpleFontDataQt.cpp:
206         (WebCore::SimpleFontData::determinePitch):
207         (WebCore::SimpleFontData::containsCharacters):
208         (WebCore::SimpleFontData::platformInit):
209         (WebCore::SimpleFontData::platformGlyphInit):
210         (WebCore::SimpleFontData::platformDestroy):
211         * platform/qt/RenderThemeQt.cpp:
212         (WebCore::RenderThemeQt::adjustButtonStyle): Avoid crashes.
213
214 2008-12-11  Holger Freyther  <zecke@selfish.org>
215
216         Reviewed by Simon Hausmann.
217
218         https://bugs.webkit.org/show_bug.cgi?id=20953
219
220         For Qt it is not pratical to have a FontCache and GlyphPageTreeNode
221         implementation. This is one of the reasons why the Qt port is currently not
222         using WebCore/platform/graphics/Font.cpp. By allowing to not use
223         the simple/fast-path the Qt port will be able to use it.
224
225         Introduce USE(FONT_FAST_PATH) and define it for every port but the
226         Qt one.
227
228         * platform/graphics/Font.cpp:
229         (WebCore::Font::drawText):
230         (WebCore::Font::floatWidth):
231         (WebCore::Font::selectionRectForText):
232         (WebCore::Font::offsetForPosition):
233         * platform/graphics/Font.h:
234
235 2008-12-11  Holger Hans Peter Freyther  <zecke@selfish.org>
236
237         Reviewed by Darin Adler.
238
239         https://bugs.webkit.org/show_bug.cgi?id=20953
240
241         Split out the font fast path from Fast.cpp into FontFastPath.cpp. This
242         will allow the Qt port to share most of WebCore::Font
243         implementation but the fast path. Qt does not provide the API to get
244         individual Glyphs making the fast path hard to support.
245
246
247         * GNUmakefile.am:
248         * WebCore.vcproj/WebCore.vcproj:
249         * WebCore.xcodeproj/project.pbxproj:
250         * WebCoreSources.bkl:
251         * platform/graphics/Font.cpp:
252         * platform/graphics/FontFastPath.cpp: Added.
253         (WebCore::Font::glyphDataForCharacter):
254
255 2008-12-11  Robert Carr  <racarr@svn.gnome.org>
256
257         Reviewed by Holger Freyther.
258
259         https://bugs.webkit.org/show_bug.cgi?id=22560
260
261         Code in PlatformScreenGtk for screenDepth and screenRect can not
262         assume that the platformWindow for the widget has a valid "window"
263         member. For example in the case of, a new browser view opening as a
264         child of a GtkNotebook, but never being switched to, or manually
265         realized. Solve by using the toplevel window of the widget, rather
266         than the widget itself.
267
268         * platform/gtk/PlatformScreenGtk.cpp:
269         (WebCore::screenDepth):
270         (WebCore::screenRect):
271
272 2008-12-08  Tor Arne Vestbø  <tavestbo@trolltech.com>
273
274         Reviewed by Darin Adler and Holger Freyther.
275
276         Make Widget::frameRectsChanged() and overrides non-const
277
278         This will hopefully allow us to get rid of some of the mutables in
279         the classes that react to the callback by changing their own state.
280
281         * platform/ScrollView.cpp:
282         (WebCore::ScrollView::frameRectsChanged):
283         * platform/ScrollView.h:
284         * platform/Widget.h:
285         (WebCore::Widget::frameRectsChanged):
286         * platform/gtk/ScrollbarGtk.cpp: Remove non-const version since
287         this was more complex and did the same thing, changed const of
288         the leftover frameRectsChanged() method.
289         (ScrollbarGtk::frameRectsChanged):
290         * platform/gtk/ScrollbarGtk.h:
291         * plugins/PluginView.cpp:
292         (WebCore::PluginView::frameRectsChanged):
293         * plugins/PluginView.h:
294
295 2008-12-11  Holger Hans Peter Freyther  <zecke@selfish.org>
296
297         Reviewed and implemented with Tor Arne Vestbø.
298
299         Reimplement RenderTheme::caretBlinkInterval for Qt.
300
301         The QApplication::cursorFlashTime is in milliseconds and describes
302         the whole cycle while WebCore expects half a cycle.
303
304         * platform/qt/RenderThemeQt.cpp:
305         (WebCore::RenderThemeQt::caretBlinkInterval):
306         * platform/qt/RenderThemeQt.h:
307
308 2008-12-09  Trenton Schulz <trenton.schulz@nokia.com>
309
310         Reviewed by Tor Arne Vestbø.
311
312         [Qt/Mac] Don't call HIGetScaleFactor() if we're not on Tiger or better
313
314         * plugins/mac/PluginViewMac.cpp:
315         (WebCore::tigerOrBetter):
316         (WebCore::PluginView::globalMousePosForPlugin):
317
318 2008-12-10  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
319
320         Reviewed by Eric Seidel and George Staikos.
321
322         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22799
323
324         Add WML <template> support. The <template> element is specified at deck-level
325         and declares a template for all <card> elements in the document.
326
327         * GNUmakefile.am:
328         * WebCore.vcproj/WebCore.vcproj:
329         * WebCore.xcodeproj/project.pbxproj:
330         * editing/htmlediting.cpp:
331         (WebCore::canHaveChildrenForEditing): Treat <do> just like a <button>.
332         * wml/WMLCardElement.cpp:
333         (WebCore::WMLCardElement::WMLCardElement):
334         (WebCore::WMLCardElement::setTemplateElement):
335         (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
336         (WebCore::WMLCardElement::handleDeckLevelTaskOverridesIfNeeded):
337         * wml/WMLCardElement.h:
338         (WebCore::WMLCardElement::templateElement):
339         * wml/WMLDoElement.cpp:
340         (WebCore::WMLDoElement::insertedIntoDocument):
341         * wml/WMLDocument.cpp:
342         (WebCore::WMLDocument::finishedParsing):
343         * wml/WMLErrorHandling.cpp:
344         (WebCore::errorMessageForErrorCode):
345         * wml/WMLErrorHandling.h:
346         (WebCore::):
347         * wml/WMLEventHandlingElement.cpp:
348         (WebCore::WMLEventHandlingElement::~WMLEventHandlingElement):
349         * wml/WMLEventHandlingElement.h:
350         (WebCore::WMLEventHandlingElement::doElements):
351         * wml/WMLTagNames.in:
352         * wml/WMLTemplateElement.cpp: Added.
353         (WebCore::WMLTemplateElement::WMLTemplateElement):
354         (WebCore::WMLTemplateElement::~WMLTemplateElement):
355         (WebCore::WMLTemplateElement::parseMappedAttribute):
356         (WebCore::WMLTemplateElement::registerTemplatesInDocument):
357         * wml/WMLTemplateElement.h: Added.
358         * wml/WMLTimerElement.cpp:
359         (WebCore::WMLTimerElement::timerFired):
360
361 2008-12-09  Dmitry Titov  <dimich@chromium.org>
362
363         Reviewed by Darin Adler.
364
365         Fix memory leak - need to call stopActiveDOMObjects
366         when cached pages get destroyed.
367         https://bugs.webkit.org/show_bug.cgi?id=22753
368
369         * dom/Document.cpp:
370         (WebCore::Document::detach):
371
372 2008-12-10  Alice Liu  <alice.liu@apple.com>
373
374         Manual test for https://bugs.webkit.org/show_bug.cgi?id=20685
375
376         Reviewed by Darin Adler.
377
378         * manual-tests/drag-image-to-desktop.html: Added.
379
380 2008-12-10  Alice Liu  <alice.liu@apple.com>
381
382         fixed https://bugs.webkit.org/show_bug.cgi?id=20685
383
384         Reviewed by Darin Adler.
385
386         Manual test case is manual-tests/drag-image-to-desktop.html
387
388         Added new files to projects
389         * WebCore.vcproj/WebCore.vcproj:
390         * WebCore.xcodeproj/project.pbxproj:
391
392         * page/DragController.cpp:
393         (WebCore::DragController::startDrag):
394         * platform/MIMETypeRegistry.cpp:
395         (WebCore::initializeSupportedImageMIMETypes):
396         (WebCore::initializeSupportedImageMIMETypesForEncoding):
397
398         These changes add a method to obtain the extension for an image
399         * platform/graphics/BitmapImage.cpp:
400         (WebCore::BitmapImage::filenameExtension):
401         * platform/graphics/BitmapImage.h:
402         * platform/graphics/Image.h:
403         (WebCore::Image::filenameExtension):
404         * platform/graphics/ImageSource.h:
405         * platform/graphics/cairo/ImageSourceCairo.cpp:
406         (WebCore::ImageSource::filenameExtension):
407         * platform/graphics/cg/ImageSourceCG.cpp:
408         (WebCore::ImageSource::filenameExtension):
409
410         These changes added a utility that returns the preferred extension for a UTI
411         * platform/graphics/cg/ImageSourceCG.h: Added.
412         * platform/graphics/cg/ImageSourceCGMac.mm: Added.
413         (WebCore::MIMETypeForImageSourceType):
414         (WebCore::preferredExtensionForImageSourceType):
415         * platform/graphics/cg/ImageSourceCGWin.cpp: Added.
416         (WebCore::MIMETypeForImageSourceType):
417         (WebCore::preferredExtensionForImageSourceType):
418
419         * platform/mac/MIMETypeRegistryMac.mm:
420         moved getMIMETypeForUTI to ImageSourceCGMac.mm
421
422         Ask image for its file extension instead of relying on MIME type and file path
423         * platform/win/ClipboardWin.cpp:
424         (WebCore::createGlobalImageFileDescriptor):
425
426         Remove extraneous code from getPreferredExtensionForMIMEType.
427         Also moved getMIMETypeForUTI to ImageSourceCGWin.cpp
428         * platform/win/MIMETypeRegistryWin.cpp:
429         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
430
431 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
432
433         Reviewed by Antti Koivisto
434
435         <rdar://problem/6431224>
436         
437         When updating the value of a slider, don't mark the parents
438         as needing layout, because the size of the slider can never
439         change. This fixes full-page repaints in some cases.
440
441         * rendering/RenderSlider.cpp:
442         (WebCore::RenderSlider::updateFromElement):
443
444 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
445
446         Potential build fix. The forward declaration of FloatPoint should
447         be inside the WebCore namespace.
448         
449         * platform/graphics/FloatPoint3D.h:
450
451 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
452
453         Reviewed by Sam Weinig
454
455         https://bugs.webkit.org/show_bug.cgi?id=22793
456
457         Cleanup FloatPoint3D: inline the getters and setters,
458         fix a potential divide-by-zero in normalize(), and add
459         a FloatPoint constructor.
460         
461         * platform/graphics/FloatPoint3D.cpp:
462         (WebCore::FloatPoint3D::FloatPoint3D):
463         (WebCore::FloatPoint3D::normalize):
464         * platform/graphics/FloatPoint3D.h:
465         (WebCore::FloatPoint3D::x):
466         (WebCore::FloatPoint3D::setX):
467         (WebCore::FloatPoint3D::y):
468         (WebCore::FloatPoint3D::setY):
469         (WebCore::FloatPoint3D::z):
470         (WebCore::FloatPoint3D::setZ):
471
472 2008-12-09  Julien Chaffraix  <jchaffraix@webkit.org>
473
474         Reviewed by Eric Seidel.
475
476         Bug 22665: Remove setCreatedByParser(bool) from the few elements that use it
477         https://bugs.webkit.org/show_bug.cgi?id=22665
478
479         - Removed setCreatedByParser from style and link elements.
480
481         - Removed XMLTokenizer::eventuallyMarkAsCreatedByParser.
482
483         * dom/XMLTokenizer.cpp:
484         * dom/XMLTokenizer.h:
485         * dom/XMLTokenizerLibxml2.cpp:
486         (WebCore::XMLTokenizer::startElementNs):
487         * dom/XMLTokenizerQt.cpp:
488         (WebCore::XMLTokenizer::parseStartElement):
489         * html/HTMLElementFactory.cpp:
490         (WebCore::linkConstructor):
491         (WebCore::styleConstructor):
492         * html/HTMLLinkElement.cpp:
493         (WebCore::HTMLLinkElement::HTMLLinkElement):
494         * html/HTMLLinkElement.h:
495         * html/HTMLStyleElement.cpp:
496         (WebCore::HTMLStyleElement::HTMLStyleElement):
497         * html/HTMLStyleElement.h:
498         * html/HTMLTagNames.in:
499         * svg/SVGStyleElement.cpp:
500         (WebCore::SVGStyleElement::SVGStyleElement):
501         * svg/SVGStyleElement.h:
502         * svg/svgtags.in:
503
504 2008-12-10  Brady Eidson  <beidson@apple.com>
505
506         Reviewed by Darin
507
508         https://bugs.webkit.org/show_bug.cgi?id=22194 and <rdar://problem/6388378> -
509         Dialog when going back to a page from whence you submitted a form
510
511         http://trac.webkit.org/changeset/37317 changed the manner in which headers are added to
512         http requests, which caused the networking layer to have an incomplete set of headers
513         just before consulting the Policy Delegate.  This caused a cache miss and incorrectly made
514         us believe we'd be resubmitting the form.
515
516         * loader/FrameLoader.cpp:
517         (WebCore::FrameLoader::loadItem):  Being careful to maintain the new behavior required by
518           the Origin header mechanism as discussed in bug 22194, restore the previous behavior of
519           setting all the headers before the networking layer is asked about the cache lookup.
520
521 2008-12-10  Dimitri Glazkov  <dglazkov@chromium.org>
522
523         Reviewed by Timothy Hatcher.
524
525         Add back ability to end all profiling via console by invoking profileEnd
526         with no arguments.
527
528         * page/Console.cpp:
529         (WebCore::Console::profileEnd): Removed title null-checking and
530             subsequent early exit.
531
532 2008-12-10  Pierre-Olivier Latour  <pol@apple.com>
533
534         Reviewed by Darin Adler.
535
536         KeyframeAnimation::animate() needs to compute the elapsed animation time
537         properly taking into account its paused state.
538
539         https://bugs.webkit.org/show_bug.cgi?id=22773
540
541         Test: animations/animation-drt-api-multiple-keyframes.html
542
543         * page/animation/KeyframeAnimation.cpp:
544         (WebCore::KeyframeAnimation::animate):
545
546 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
547
548         Reviewed by Dan Bernstein
549
550         Part of
551         https://bugs.webkit.org/show_bug.cgi?id=22570
552         
553         Rename methods on RenderLayer for clarity:
554             clearClipRects -> clearClipRectsIncludingDescendants
555             clearClipRect  -> clearClipRects
556
557         * rendering/RenderBox.cpp:
558         (WebCore::RenderBox::destroy):
559         * rendering/RenderLayer.cpp:
560         (WebCore::RenderLayer::updateLayerPosition):
561         (WebCore::RenderLayer::removeOnlyThisLayer):
562         (WebCore::RenderLayer::insertOnlyThisLayer):
563         (WebCore::RenderLayer::clearClipRectsIncludingDescendants):
564         (WebCore::RenderLayer::clearClipRects):
565         * rendering/RenderLayer.h:
566         * rendering/RenderObject.cpp:
567         (WebCore::RenderObject::styleWillChange):
568         * rendering/RenderWidget.cpp:
569         (WebCore::RenderWidget::destroy):
570
571 2008-12-10  Kevin Ollivier  <kevino@theolliviers.com>
572
573         wx build fix after the script call stack/frame additions.
574         
575         * WebCoreSources.bkl:
576
577 2008-12-10   Srinivasa Rao M. Hamse  <msrinirao@gmail.com>
578
579         Reviewed by Holger Freyther.
580
581         F1-F12 key mappings for WebKit Gtk Port
582
583         * platform/gtk/KeyEventGtk.cpp:
584         (WebCore::windowsKeyCodeForKeyEvent):
585
586 2008-12-10  Enrico Ros  <enrico.ros@m31.com>
587
588         Reviewed by Simon Hausmann.
589
590         Fix the Qt build when SVG is disabled. A broken dependancy caused
591         unnecessary rebuilds even with no changes.
592
593         * WebCore.pro: fix a broken build dependancy
594
595 2008-12-10  Hironori Bono  <hbono@chromium.org>
596
597         Reviewed by Alexey Proskuryakov.
598
599         Bug 21820: Unable to enter the Tamil UNICODE Characters via Thamizha Phonetic IME
600         https://bugs.webkit.org/show_bug.cgi?id=21820
601
602         <rdar://problem/5683248> Typing backspace to delete a diacritical mark also deletes the character before (Arabic)
603         <rdar://problem/5702038> Backspace removes Thai Character in wrong sequence
604
605         Tests: editing/deleting/delete-ligature-001.html
606                editing/deleting/delete-ligature-002.html
607                editing/deleting/delete-ligature-003.html
608
609         * editing/TypingCommand.cpp:
610         (WebCore::TypingCommand::deleteKeyPressed): Delete only the last character
611         of a ligature which consists of multiple Unicode characters when deleting it with
612         a backspace key.
613
614 2008-12-10  David Levin  <levin@chromium.org>
615
616         Reviewed by Alexey Proskuryakov.
617
618         https://bugs.webkit.org/show_bug.cgi?id=22177
619         Fix the windows build by removing calls to notifyFormStateChanged
620         where they didn't appear in the original reviewed patch.
621
622         * html/HTMLInputElement.cpp:
623         (WebCore::HTMLInputElement::type):
624         (WebCore::HTMLInputElement::attach):
625
626 2008-12-09  Adam Barth  <abarth@webkit.org>
627
628         Reviewed by Sam Weinig.
629
630         Add ScriptController::updateSecurityOrigin to notify the bindings
631         that a document's securityOrigin has been updated.  This is used by
632         V8 to update its security context.
633
634         * bindings/js/ScriptController.cpp:
635         (WebCore::ScriptController::updateSecurityOrigin):
636         * bindings/js/ScriptController.h:
637         * dom/Document.cpp:
638         (WebCore::Document::setDomain):
639
640 2008-12-09  Eric Seidel  <eric@webkit.org>
641
642         No review, build fix only.
643
644         Fix a few config issues to let the Chromium Windows WebCore build get further.
645
646         * WebCore.scons:
647
648 2008-12-09  Brett Wilson  <brettw@chromium.org>
649
650         Reviewed by Dave Hyatt.
651
652         https://bugs.webkit.org/show_bug.cgi?id=22177
653
654         Add a callback on ChromeClient that the state of form elements on
655         the page has changed. This is to allow clients implementing session
656         saving to know when the current state is dirty.
657
658         * html/HTMLInputElement.cpp:
659         (WebCore::notifyFormStateChanged):
660         (WebCore::HTMLInputElement::setInputType):
661         (WebCore::HTMLInputElement::type):
662         (WebCore::HTMLInputElement::attach):
663         (WebCore::HTMLInputElement::setValue):
664         (WebCore::HTMLInputElement::setValueFromRenderer):
665         (WebCore::HTMLInputElement::setFileListFromRenderer):
666         * html/HTMLSelectElement.cpp:
667         (WebCore::HTMLSelectElement::setSelectedIndex):
668         * html/HTMLTextAreaElement.cpp:
669         (WebCore::notifyFormStateChanged):
670         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
671         (WebCore::HTMLTextAreaElement::updateValue):
672         (WebCore::HTMLTextAreaElement::setValue):
673         * loader/EmptyClients.h:
674         (WebCore::EmptyChromeClient::formStateDidChange):
675         * page/ChromeClient.h:
676
677 2008-12-09  Sam Weinig  <sam@webkit.org>
678
679         Reviewed by Darin Adler.
680
681         https://bugs.webkit.org/show_bug.cgi?id=19762
682
683         Fix intermittent crash in buildbot. The CSSCursorImageValues and
684         SVGCursorElements held onto raw SVGElement pointers without any
685         guarantee that the element is still around.
686
687         We did not fix the design that resulted in this issue, we just fixed
688         the pointer lifetimes.
689
690         * css/CSSCursorImageValue.cpp:
691         (WebCore::CSSCursorImageValue::~CSSCursorImageValue): Zero out the back pointers.
692         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Set up a back pointer.
693         (WebCore::CSSCursorImageValue::removeReferencedElement): Added. Used when the element
694         is destroyed.
695         * css/CSSCursorImageValue.h: Added removeReferencedElement.
696
697         * svg/SVGCursorElement.cpp:
698         (WebCore::SVGCursorElement::~SVGCursorElement): Zero out the back pointers.
699         (WebCore::SVGCursorElement::addClient): Set up a back pointer.
700         (WebCore::SVGCursorElement::removeClient): Zero out the back pointer.
701
702         * svg/SVGElement.cpp:
703         (WebCore::SVGElement::SVGElement): Initialize back pointers to zero.
704         (WebCore::SVGElement::~SVGElement): Call both the element and cursor image value
705         to remove the element from their sets.
706         * svg/SVGElement.h:
707         (WebCore::SVGElement::setCursorElement): Added.
708         (WebCore::SVGElement::setCursorImageValue): Added.
709
710 2008-12-09  David Hyatt  <hyatt@apple.com>
711
712         Add code that will create custom CSS scrollbars from the <body>, the document element (<html>) and the owning
713         frame/iframe.  If any of them set a custom style, it will be used.  The scrollbars do not update dynamically
714         yet as you switch from page to page (until they are destroyed and recreated).
715
716         Reviewed by Adele
717
718         * page/FrameView.cpp:
719         (WebCore::FrameView::createScrollbar):
720
721 2008-12-09  Ojan Vafai  <ojan@chromium.org>
722
723         Reviewed by Dave Hyatt.
724
725         https://bugs.webkit.org/show_bug.cgi?id=22689
726         Match Firefox button metrics on Windows.
727
728         * rendering/RenderButton.cpp:
729         (WebCore::RenderButton::addChild):
730         (WebCore::RenderButton::styleDidChange):
731         (WebCore::RenderButton::setupInnerStyle):
732         * rendering/RenderButton.h:
733         * rendering/RenderTheme.cpp:
734         (WebCore::RenderTheme::adjustButtonInnerStyle):
735         * rendering/RenderTheme.h:
736         * rendering/RenderThemeWin.cpp:
737         (WebCore::RenderThemeWin::adjustSliderThumbSize):
738         (WebCore::RenderThemeWin::adjustButtonInnerStyle):
739         * rendering/RenderThemeWin.h:
740
741 2008-12-09  Darin Fisher  <darin@chromium.org>
742
743         Fixes bustages.
744
745         https://bugs.webkit.org/show_bug.cgi?id=22631
746         Adding missing files from previous commit.
747
748         * bindings/js/ScriptCallFrame.cpp: Added.
749         (WebCore::ScriptCallFrame::ScriptCallFrame):
750         (WebCore::ScriptCallFrame::~ScriptCallFrame):
751         (WebCore::ScriptCallFrame::argumentAt):
752         * bindings/js/ScriptCallFrame.h: Added.
753         (WebCore::ScriptCallFrame::functionName):
754         (WebCore::ScriptCallFrame::sourceURL):
755         (WebCore::ScriptCallFrame::lineNumber):
756         (WebCore::ScriptCallFrame::argumentCount):
757         * bindings/js/ScriptCallStack.cpp: Added.
758         (WebCore::ScriptCallStack::ScriptCallStack):
759         (WebCore::ScriptCallStack::~ScriptCallStack):
760         (WebCore::ScriptCallStack::at):
761         (WebCore::ScriptCallStack::size):
762         (WebCore::ScriptCallStack::initialize):
763         * bindings/js/ScriptCallStack.h: Added.
764         (WebCore::ScriptCallStack::state):
765
766 2008-12-09  Dimitri Glazkov  <dglazkov@chromium.org>
767
768         Reviewed by Timothy Hatcher.
769
770         https://bugs.webkit.org/show_bug.cgi?id=22631
771         Streamline Console.cpp, abstract out the use of JSC::ExecState and
772         JSC::ArgList by introducing ScriptCallFrame and ScriptCallStack
773         abstractions.
774
775         * GNUmakefile.am: Added ScriptCallFrame and ScriptCallStack to build
776         * WebCore.pro:  Added ScriptCallFrame and ScriptCallStack to build
777         * WebCore.vcproj/WebCore.vcproj: Added ScriptCallFrame and
778         ScriptCallStack to project
779         * WebCore.xcodeproj/project.pbxproj: Added ScriptCallFrame and
780         ScriptCallStack to project
781         * bindings/js/JSConsoleCustom.cpp: Remove custom bindings.
782         * bindings/js/ScriptCallFrame.cpp: Added.
783         (WebCore::ScriptCallFrame::ScriptCallFrame):
784         (WebCore::ScriptCallFrame::~ScriptCallFrame):
785         (WebCore::ScriptCallFrame::argumentAt):
786         * bindings/js/ScriptCallFrame.h: Added.
787         (WebCore::ScriptCallFrame::functionName):
788         (WebCore::ScriptCallFrame::sourceURL):
789         (WebCore::ScriptCallFrame::lineNumber):
790         (WebCore::ScriptCallFrame::argumentCount):
791         * bindings/js/ScriptCallStack.cpp: Added.
792         (WebCore::ScriptCallStack::ScriptCallStack):
793         (WebCore::ScriptCallStack::~ScriptCallStack):
794         (WebCore::ScriptCallStack::at):
795         (WebCore::ScriptCallStack::size):
796         (WebCore::ScriptCallStack::initialize):
797         * bindings/js/ScriptCallStack.h: Added.
798         (WebCore::ScriptCallStack::ScriptCallStack):
799         (WebCore::ScriptCallStack::~ScriptCallStack):
800         (WebCore::ScriptCallStack::state):
801         (WebCore::ScriptCallStack::at):
802         (WebCore::ScriptCallStack::size):
803         (WebCore::ScriptCallStack::initialize):
804         * bindings/js/ScriptString.h: Added missing PlatformString include.
805         (WebCore::ScriptString::ScriptString): Added default constructor.
806         (WebCore::ScriptString::operator==): Added equality operator.
807         (WebCore::ScriptString::operator!=):
808         * bindings/js/ScriptValue.cpp: Added isNull and isUndefined.
809         (WebCore::ScriptValue::isNull):
810         (WebCore::ScriptValue::isUndefined):
811         * bindings/js/ScriptValue.h: Added isNull and isUndefined
812         * bindings/scripts/CodeGeneratorJS.pm: Add handling for
813         CustomArgumentHandling attribute.
814         * inspector/InspectorController.cpp: Refactored to use 
815         ScriptCallFrame and ScriptCallStack.
816         (WebCore::ConsoleMessage::ConsoleMessage):
817         (WebCore::InspectorController::addMessageToConsole):
818         (WebCore::InspectorController::startGroup):
819         (WebCore::InspectorController::addScriptConsoleMessage):
820         (WebCore::InspectorController::count):
821         (WebCore::InspectorController::startTiming):
822         (WebCore::InspectorController::stopTiming):
823         * inspector/InspectorController.h: Refactored to use ScriptCallFrame and
824         ScriptCallStack.
825         * inspector/front-end/Console.js: Modified to use argument value itself
826         rather than f.name for stack trace.
827         * page/Console.cpp: Refactored to use ScriptCallFrame and
828         ScriptCallStack.
829         (WebCore::getFirstArgumentAsString):
830         (WebCore::Console::addMessage):
831         (WebCore::Console::debug):
832         (WebCore::Console::error):
833         (WebCore::Console::info):
834         (WebCore::Console::log):
835         (WebCore::Console::dir):
836         (WebCore::Console::dirxml):
837         (WebCore::Console::trace):
838         (WebCore::Console::assertCondition):
839         (WebCore::Console::count):
840         (WebCore::Console::profile):
841         (WebCore::Console::profileEnd):
842         (WebCore::Console::time):
843         (WebCore::Console::timeEnd):
844         (WebCore::Console::group):
845         (WebCore::Console::warn):
846         * page/Console.h:
847         * page/Console.idl: Removed Custom attributes, added
848         CustomArgumentHandling attributes, and tweaked argument defs.
849
850 2008-12-09  Darin Adler  <darin@apple.com>
851
852         Try to fix non-Mac builds.
853
854         * GNUmakefile.am: Added NavigatorBase.
855         * WebCore.pro: Ditto.
856         * WebCore.scons: Ditto.
857         * WebCore.vcproj/WebCore.vcproj: Ditto.
858         * WebCoreSources.bkl: Ditto.
859
860         Unrelated tweak sitting in my tree.
861
862         * bindings/objc/DOMAbstractView.mm: Remove pointless override of finalize method.
863
864 2008-12-09  Darin Adler  <darin@apple.com>
865
866         Try to fix Tiger build.
867
868         * platform/network/mac/NetworkStateNotifierMac.cpp: Declare CFRunLoopGetMain.
869
870 2008-12-09  Alexey Proskuryakov  <ap@webkit.org>
871
872         Reviewed by Darin Adler.
873
874         https://bugs.webkit.org/show_bug.cgi?id=22719
875         Implement Navigator object in Workers
876
877         Test: fast/workers/worker-navigator.html
878
879         * DerivedSources.make:
880         * GNUmakefile.am:
881         * WebCore.pro:
882         * WebCore.vcproj/WebCore.vcproj:
883         * WebCore.xcodeproj/project.pbxproj:
884         Added WorkerNavigator sources.
885
886         * bindings/js/JSWorkerContext.cpp: (WebCore::jsWorkerContextNavigator):
887         Worker.navigator returns a WoerkerNavigator object (it is named just Navigator in the spec,
888         but it is not the same interface that is available on Windows).
889
890         * dom/Worker.cpp:
891         (WebCore::Worker::notifyFinished):
892         * dom/WorkerContext.cpp:
893         (WebCore::WorkerContext::WorkerContext):
894         (WebCore::WorkerContext::navigator):
895         * dom/WorkerContext.h:
896         (WebCore::WorkerContext::create):
897         * dom/WorkerThread.cpp:
898         (WebCore::WorkerThread::create):
899         (WebCore::WorkerThread::WorkerThread):
900         (WebCore::WorkerThread::workerThread):
901         * dom/WorkerThread.h:
902         Pass a pre-computed user agent string into worker, because it cannot call a client method
903         directly, and pre-computing is easier than sending a synchronous message to the main thread.
904
905         * page/Navigator.cpp:
906         * page/Navigator.h:
907         * page/NavigatorBase.cpp: Added.
908         * page/NavigatorBase.h: Added.
909         Factor out common (and uncommon, but very similar) functionality into a base class.
910
911         * page/WorkerNavigator.cpp: Added.
912         * page/WorkerNavigator.h: Added.
913         * page/WorkerNavigator.idl: Added.
914         Per Web Workers and HTML5, implement a small subset of what we currently have in Window.Navigator.
915
916         * platform/network/NetworkStateNotifier.cpp: (WebCore::networkStateNotifier):
917         Make networkStateNotifier() static constructor thread safe. The object is created on the
918         thread it is first called from, while callbacks are registered on the main thread. Calls to
919         onLine() from other threads are safe, because it is just loading a boolean.
920
921         * platform/network/mac/NetworkStateNotifierMac.cpp: (WebCore::NetworkStateNotifier::NetworkStateNotifier):
922         Schedule notifications on main event loop, not the current one.
923
924 2008-12-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
925
926         Rubber-stamped by Alexey Proskuryakov.
927
928         Forgot to update Qt/WML build - add some new files to the build.
929
930         * WebCore.pro:
931
932 2008-12-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
933
934         Reviewed by Alexey Proskuryakov.
935
936         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22637
937
938         Implement the GET method for WMLGoElement, and some test covering it's behaviour.
939         Update all build systems supporting WML that haven't been updated since a while.
940
941         Add WMLPostField stub implementation, needed for implementing POST method.
942
943         Tests: wml/go-task-get-method-external-deck-with-href.html
944                wml/go-task-get-method-external-deck.html
945                wml/go-task-get-method-same-deck.html
946
947         * GNUmakefile.am:
948         * WebCore.vcproj/WebCore.vcproj:
949         * WebCore.xcodeproj/project.pbxproj:
950         * dom/Document.cpp:
951         (WebCore::Document::resetWMLPageState):
952         * wml/WMLCardElement.cpp:
953         * wml/WMLCardElement.h:
954         * wml/WMLEventHandlingElement.cpp:
955         (WebCore::WMLCardElement::registerDoElement):
956         * wml/WMLEventHandlingElement.h:
957         * wml/WMLGoElement.cpp:
958         (WebCore::WMLGoElement::WMLGoElement):
959         (WebCore::WMLGoElement::registerPostfieldElement):
960         (WebCore::WMLGoElement::parseMappedAttribute):
961         (WebCore::WMLGoElement::executeTask):
962         (WebCore::WMLGoElement::parseContentType):
963         (WebCore::WMLGoElement::preparePOSTRequest):
964         (WebCore::WMLGoElement::prepareGETRequest):
965         * wml/WMLGoElement.h:
966         * wml/WMLPostfieldElement.cpp: Added.
967         (WebCore::WMLPostfieldElement::WMLPostfieldElement):
968         (WebCore::WMLPostfieldElement::parseMappedAttribute):
969         (WebCore::WMLPostfieldElement::insertedIntoDocument):
970         * wml/WMLPostfieldElement.h: Added.
971         (WebCore::WMLPostfieldElement::name):
972         (WebCore::WMLPostfieldElement::value):
973         * wml/WMLTagNames.in:
974
975 2008-12-08  Peter Kasting  <pkasting@google.com>
976
977         Reviewed by Anders Carlsson.
978
979         https://bugs.webkit.org/show_bug.cgi?id=16814
980         Allow ports to disable ActiveX->NPAPI conversion for Media Player.
981         Improve handling of miscellaneous ActiveX objects.
982
983         * rendering/RenderPartObject.cpp:
984         (WebCore::mapClassIdToServiceType):
985         (WebCore::shouldUseChildEmbedOfObject):
986         (WebCore::RenderPartObject::updateWidget):
987
988 2008-12-08  Darin Adler  <darin@apple.com>
989
990         Reviewed by John Sullivan.
991
992         - fix https://bugs.webkit.org/show_bug.cgi?id=22409
993           REGRESSION: cmd-shift-left/right don't switch tabs, instead select text
994
995         Tests: editing/execCommand/enabling-and-selection-2.html
996                editing/execCommand/enabling-and-selection.html
997
998         * editing/EditorCommand.cpp: Updated table to use these functions by their new names.
999         (WebCore::enabledVisibleSelection): Renamed this to reflect its new algorithm.
1000         An invisible selection with a position that selects no characters doesn't count
1001         as a visible selection.
1002         (WebCore::enabledVisibleSelectionAndMark): Ditto.
1003
1004 2008-12-08  David Kilzer  <ddkilzer@apple.com>
1005
1006         Remove duplicate entries from WebCore project.
1007
1008         Reviewed by Eric Seidel.
1009
1010         Bug 22555: Sort "children" sections in Xcode project files.
1011         <https://bugs.webkit.org/show_bug.cgi?id=22555>
1012
1013         Recipe for removing duplicates:
1014         $ ./WebKitTools/Scripts/sort-Xcode-project-file project.pbxproj
1015         $ uniq < project.pbxproj | diff -u project.pbxproj - | patch -p0 project.pbxproj
1016
1017         * WebCore.xcodeproj/project.pbxproj: Removed duplicates.
1018
1019 2008-12-08  Julien Chaffraix  <jchaffraix@webkit.org>
1020
1021         Reviewed by Darin Adler.
1022
1023         Bug 22665: Remove setCreatedByParser(bool) from the few elements that use it
1024         https://bugs.webkit.org/show_bug.cgi?id=22665
1025
1026         Remove setCreatedByParser from the script elements (HTML and SVG).
1027
1028         * dom/XMLTokenizer.cpp:
1029         (WebCore::XMLTokenizer::eventuallyMarkAsParserCreated): Removed
1030         call to setCreatedByParser for the 2 elements.
1031
1032         * dom/make_names.pl: Modified to call the constructor with
1033         the createByParser parameter if 'constructorNeedsCreatedByParser'
1034         is set.
1035
1036         * html/HTMLElementFactory.cpp:
1037         (WebCore::scriptConstructor):
1038         * html/HTMLScriptElement.cpp:
1039         (WebCore::HTMLScriptElement::HTMLScriptElement):
1040         * html/HTMLScriptElement.h:
1041         * html/HTMLTagNames.in: Added constructorNeedsCreatedByParser
1042         to script.
1043         * svg/SVGScriptElement.cpp:
1044         (WebCore::SVGScriptElement::SVGScriptElement):
1045         * svg/SVGScriptElement.h:
1046         * svg/svgtags.in: Added constructorNeedsCreatedByParser
1047         to script.
1048
1049 2008-12-08  David Kilzer  <ddkilzer@apple.com>
1050
1051         Bug 22555: Sort "children" sections in Xcode project files
1052
1053         <https://bugs.webkit.org/show_bug.cgi?id=22555>
1054
1055         Reviewed by Eric Seidel.
1056
1057         * WebCore.xcodeproj/project.pbxproj: Sorted.
1058         * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj: Sorted.
1059
1060 2008-12-08  Tony Chang  <tony@chromium.org>
1061
1062         Reviewed by Eric Seidel.
1063
1064         Add a bool to GraphicsContext so that shadows can ignore
1065         transformations.  This is needed by HTML canvas element
1066         where the spec says shadows are applied w/o transformations.
1067         https://bugs.webkit.org/show_bug.cgi?id=22580
1068
1069         No functional changes, thus no tests.
1070
1071         * html/CanvasRenderingContext2D.cpp:
1072         (WebCore::CanvasRenderingContext2D::setShadow):
1073         (WebCore::CanvasRenderingContext2D::applyShadow):
1074         * html/HTMLCanvasElement.cpp:
1075         (WebCore::HTMLCanvasElement::createImageBuffer):
1076         * platform/graphics/GraphicsContext.cpp:
1077         (WebCore::GraphicsContext::setShadowsIgnoreTransforms):
1078         * platform/graphics/GraphicsContext.h:
1079         * platform/graphics/GraphicsContextPrivate.h:
1080         (WebCore::GraphicsContextState::GraphicsContextState):
1081         * platform/graphics/cg/GraphicsContextCG.cpp:
1082         (WebCore::GraphicsContext::setPlatformShadow):
1083
1084 2008-12-08  Julien Chaffraix  <jchaffraix@webkit.org>
1085
1086         Reviewed by Darin Adler.
1087
1088         Bug 17897: Not Rendering Images Imported from XHTML Document
1089         <rdar://problem/5827614>
1090
1091         When we were loading document with XMLHttpRequest that contained images, the images
1092         would not be fetched as they would not be displayed. However if we inserted such
1093         an image element into a rendered document, we would not fetch the image and thus never
1094         display it.
1095
1096         Now we check if the image has been loaded when we insert an HTMLImageElement into a
1097         document.
1098         To enable this, the image loader has an error flag. To avoid doing several attempts
1099         when we know that the image is in error, we store the failed URL.
1100         However Firefox and Opera ignore errors when the 'src' attribute changes and thus
1101         we also have an updateFromElementIgnoringPreviousError to match the other browser.
1102
1103         Tests: http/tests/misc/image-blocked-src-change.html
1104                http/tests/misc/image-blocked-src-no-change.html
1105                http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded-svg.svg
1106                http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded.html
1107
1108         * html/HTMLEmbedElement.cpp:
1109         (WebCore::HTMLEmbedElement::parseMappedAttribute): Changed to call updateFromElementIgnoringPreviousError.
1110         * html/HTMLImageElement.cpp:
1111         (WebCore::HTMLImageElement::parseMappedAttribute): Ditto.
1112         (WebCore::HTMLImageElement::insertedIntoDocument): Call updateFromElement if we do not have
1113         an image.
1114
1115         * html/HTMLInputElement.cpp:
1116         (WebCore::HTMLInputElement::parseMappedAttribute): Changed to call updateFromElementIgnoringPreviousError.
1117         * html/HTMLObjectElement.cpp:
1118         (WebCore::HTMLObjectElement::parseMappedAttribute): Ditto.
1119         * html/HTMLVideoElement.cpp:
1120         (WebCore::HTMLVideoElement::parseMappedAttribute): Ditto.
1121         * loader/ImageLoader.cpp:
1122         (WebCore::ImageLoader::setImage): Added an assertion.
1123         (WebCore::ImageLoader::updateFromElement): Added a check for load error (to avoid displaying
1124         multiple errors in the console for a single image load).
1125
1126         (WebCore::ImageLoader::updateFromElementIgnoringPreviousError): This method clears previous error
1127         before calling updateFromElement.
1128
1129         (WebCore::ImageLoader::notifyFinished): Added an assertion.
1130         * loader/ImageLoader.h:
1131         * svg/SVGImageElement.cpp:
1132         (WebCore::SVGImageElement::svgAttributeChanged): Changed to call updateFromElementIgnoringPreviousError.
1133
1134 2008-12-08  David Hyatt  <hyatt@apple.com>
1135
1136         Make scrollbar creation virtual on ScrollView so that FrameView can have the capability to create
1137         custom CSS scrollbars.
1138
1139         Reviewed by Eric Seidel
1140
1141         * page/FrameView.cpp:
1142         (WebCore::FrameView::createScrollbar):
1143         * page/FrameView.h:
1144         * platform/ScrollView.cpp:
1145         (WebCore::ScrollView::setHasHorizontalScrollbar):
1146         (WebCore::ScrollView::setHasVerticalScrollbar):
1147         (WebCore::ScrollView::createScrollbar):
1148         * platform/ScrollView.h:
1149
1150 2008-12-08  Dan Bernstein  <mitz@apple.com>
1151
1152         Reviewed by John Sullivan.
1153
1154         - WebCore part of tracking the global history item for a WebView
1155
1156         * loader/FrameLoader.cpp:
1157         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Set the page's
1158         global history item to the current back/forward list item, respecting
1159         private browsing mode.
1160         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Ditto in this
1161         case.
1162         (WebCore::FrameLoader::goToItem): Ditto in this case.
1163         (WebCore::FrameLoader::updateHistoryForStandardLoad): If this load
1164         creates a new global history item, set the page's global history item
1165         to it.
1166         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
1167         Ditto.
1168         * page/Page.cpp:
1169         (WebCore::Page::setGlobalHistoryItem): Added this setter.
1170         * page/Page.h: Added a m_globalHistoryItem data member.
1171         (WebCore::Page::globalHistoryItem): Added this getter.
1172
1173 2008-12-08  Antti Koivisto  <antti@apple.com>
1174
1175         Reviewed by Dave Kilzer.
1176
1177         A few stylistic fixes suggested by Dave Kilzer.
1178
1179         * css/CSSPrimitiveValue.cpp:
1180         (WebCore::CSSPrimitiveValue::createIdentifier):
1181         (WebCore::CSSPrimitiveValue::create):
1182
1183 2008-12-08  Alexey Proskuryakov  <ap@webkit.org>
1184
1185         Reviewed by Darin Adler.
1186
1187         https://bugs.webkit.org/show_bug.cgi?id=22737
1188         Try debug version when locating CFNetwork
1189
1190         * platform/network/cf/ResourceRequestCFNet.cpp:
1191         (WebCore::findCFNetworkModule):
1192         (WebCore::findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction):
1193         (WebCore::findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction):
1194         * platform/network/win/CookieJarCFNetWin.cpp:
1195         (WebCore::findCFNetworkModule):
1196         (WebCore::findIsHTTPOnlyFunction):
1197
1198 2008-12-08  Aaron Boodman  <aa@chromium.org>
1199
1200         Reviewed by Stephanie Lewis.
1201
1202         https://bugs.webkit.org/show_bug.cgi?id=22301
1203         Make dispatchDidFinishLoading() always fire before didFinishLoadForFrame().
1204
1205         * loader/FrameLoader.cpp:
1206         (WebCore::FrameLoader::finishedParsing):
1207
1208 2008-12-08  Trenton Schulz <trenton.schulz@nokia.com>
1209
1210         Rubber-stamped by Tor Arne Vestbø.
1211
1212         Fix build warning on Mac
1213
1214         * platform/text/mac/StringImplMac.mm:
1215
1216 2008-12-08  Simon Hausmann  <simon.hausmann@nokia.com>
1217
1218         Fix the Qt build.
1219
1220         * bridge/qt/qt_runtime.cpp:
1221         (JSC::Bindings::convertQVariantToValue): Pass JSGlobalData to RegExp
1222           constructor.
1223
1224 2008-12-08  Oliver Hunt  <oliver@apple.com>
1225
1226         Reviewed by Alexey Proskuryakov.
1227
1228         Bug 22398: r39059: Crash when clearing webkitTransitionDuration in webkitTransitionEnd event handler
1229         <rdar://problem/6426245> REGRESSION(r39059): Reproducible crash when clearing webkitTransitionDuration in webkitTransitionEnd event handler (22398)
1230
1231         This regression was caused by r39059 replacing the protector on the active
1232         animation with a protector on just the composition.  It turns out that both
1233         protectors are necessary.
1234
1235         Test: transitions/transition-duration-cleared-in-transitionend-crash.html
1236
1237         * page/animation/AnimationBase.cpp:
1238         (WebCore::AnimationBase::animationTimerCallbackFired):
1239
1240 2008-12-08  Dmitry Titov  <dimich@chromium.org>
1241
1242         Reviewed by Alexey Proskuryakov.
1243
1244         https://bugs.webkit.org/show_bug.cgi?id=22732
1245         Remove unused files PausedTimeouts.h,.cpp
1246         The change that deprecated this code was https://bugs.webkit.org/show_bug.cgi?id=22620
1247
1248         * GNUmakefile.am:
1249         * WebCore.pro:
1250         * WebCore.scons:
1251         * WebCore.vcproj/WebCore.vcproj:
1252         * WebCore.xcodeproj/project.pbxproj:
1253         * WebCoreSources.bkl:
1254           These are build files which had PausedTimeouts referenced.
1255
1256         * bindings/js/PausedTimeouts.cpp: Removed.
1257         * bindings/js/PausedTimeouts.h: Removed.
1258         * bindings/js/ScriptController.cpp: Removed '#include'
1259         * page/Chrome.cpp: Removed '#include' and unused variable.
1260
1261 2008-12-07  Simon Fraser  <simon.fraser@apple.com>
1262
1263         Reviewed by Dan Bernstein
1264
1265         https://bugs.webkit.org/show_bug.cgi?id=22594
1266
1267         Fix issues which break reading inline style for -webkit-transition
1268         and -webkit-transform-origin.
1269         
1270         Test: fast/css/transform-inline-style.html
1271
1272         * css/CSSMutableStyleDeclaration.cpp:
1273         (WebCore::CSSMutableStyleDeclaration::getPropertyValue): Add cases 
1274         for CSSPropertyWebkitTransformOrigin and CSSPropertyWebkitTransition
1275         so that these shorthand properties are returned correctly.
1276         * css/CSSParser.cpp:
1277         (WebCore::CSSParser::parseAnimationProperty): Create CSSPrimitiveValues
1278         with the correct CSSValueAll and CSSValueNone identifiers, not the
1279         RenderStyle-level cAnimateAll, cAnimateNone.
1280         * css/CSSStyleSelector.cpp:
1281         (WebCore::CSSStyleSelector::mapAnimationProperty): Special-case CSSValueAll
1282         and CSSValueNone values to set cAnimateAll and cAnimateNone transition properties.
1283
1284 2008-12-07  Antti Koivisto  <antti@apple.com>
1285
1286         Reviewed by Darin Adler.
1287
1288         https://bugs.webkit.org/show_bug.cgi?id=22717
1289         Make CSS values use less memory
1290         
1291         Share CSSPrimitiveValue objects for commonly used values including
1292         - idents
1293         - colors
1294         - small integers
1295         
1296         This reduces the amount CSSPrimitiveValue instances by > 80%.
1297
1298         * css/CSSPrimitiveValue.cpp:
1299         (WebCore::CSSPrimitiveValue::createIdentifier):
1300         (WebCore::CSSPrimitiveValue::createColor):
1301         (WebCore::CSSPrimitiveValue::create):
1302         * css/CSSPrimitiveValue.h:
1303         (WebCore::CSSPrimitiveValue::create):
1304
1305 2008-12-07  Antti Koivisto  <antti@apple.com>
1306
1307         Reviewed by Darin Adler.
1308
1309         https://bugs.webkit.org/show_bug.cgi?id=22717
1310         Make CSS values use less memory
1311
1312         Get CSSValues off from the common StyleBase base class. They don't
1313         need a parent pointer or anything else there and there is no real
1314         reason to have them in same data structures with other CSSOM objects.
1315         
1316         Disabled (instead of refactoring around the lack of common base) the ability 
1317         to have style declaration blocks as CSS variable values. They don't exist in 
1318         the spec so I wasn't sure if they have future or not. It would not be hard to 
1319         get them back. CSS variables are in any case an experimental feature and 
1320         not enabled by default.
1321
1322         * css/CSSInitialValue.h:
1323         (WebCore::CSSInitialValue::createExplicit):
1324         (WebCore::CSSInitialValue::createImplicit):
1325         * css/CSSParser.cpp:
1326         (WebCore::CSSParser::addVariableDeclarationBlock):
1327         * css/CSSParser.h:
1328         * css/CSSValue.h:
1329         (WebCore::CSSValue::~CSSValue):
1330         (WebCore::CSSValue::parserValue):
1331         * css/CSSVariablesDeclaration.cpp:
1332         (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration):
1333         (WebCore::CSSVariablesDeclaration::getVariableValue):
1334         (WebCore::CSSVariablesDeclaration::removeVariable):
1335         (WebCore::CSSVariablesDeclaration::addParsedVariable):
1336         (WebCore::CSSVariablesDeclaration::getParsedVariable):
1337         (WebCore::CSSVariablesDeclaration::getParsedVariableDeclarationBlock):
1338         * css/CSSVariablesDeclaration.h:
1339         (WebCore::CSSVariablesDeclaration::create):
1340         * css/StyleBase.h:
1341
1342 2008-12-07  Dirk Schulze  <krit@webkit.org>
1343
1344         Reviewed by Oliver Hunt.
1345
1346         Add gradient and pattern support for strokeRect on canvas/Cg.
1347
1348         Canvas strokeRect() doesn't support gradients
1349         https://bugs.webkit.org/show_bug.cgi?id=19790
1350
1351         Test: fast/canvas/canvas-strokeRect.html
1352
1353         * platform/graphics/cg/GraphicsContextCG.cpp:
1354         (WebCore::GraphicsContext::strokeRect):
1355
1356 2008-12-06  Dirk Schulze  <krit@webkit.org>
1357
1358         Reviewed by Oliver Hunt.
1359
1360         Add support for setTransform() in canvas.
1361
1362         <canvas> lacks transform() and setTransform()
1363         https://bugs.webkit.org/show_bug.cgi?id=16604
1364
1365         Test: fast/canvas/canvas-setTransform.html
1366
1367         * html/CanvasRenderingContext2D.cpp:
1368         (WebCore::CanvasRenderingContext2D::State::State):
1369         (WebCore::CanvasRenderingContext2D::setStrokeStyle):
1370         (WebCore::CanvasRenderingContext2D::setFillStyle):
1371         (WebCore::CanvasRenderingContext2D::scale):
1372         (WebCore::CanvasRenderingContext2D::rotate):
1373         (WebCore::CanvasRenderingContext2D::translate):
1374         (WebCore::CanvasRenderingContext2D::transform):
1375         (WebCore::CanvasRenderingContext2D::setTransform):
1376         (WebCore::CanvasRenderingContext2D::beginPath):
1377         (WebCore::CanvasRenderingContext2D::closePath):
1378         (WebCore::CanvasRenderingContext2D::moveTo):
1379         (WebCore::CanvasRenderingContext2D::lineTo):
1380         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
1381         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
1382         (WebCore::CanvasRenderingContext2D::arcTo):
1383         (WebCore::CanvasRenderingContext2D::arc):
1384         (WebCore::CanvasRenderingContext2D::rect):
1385         (WebCore::CanvasRenderingContext2D::fill):
1386         (WebCore::CanvasRenderingContext2D::stroke):
1387         (WebCore::CanvasRenderingContext2D::clip):
1388         (WebCore::CanvasRenderingContext2D::isPointInPath):
1389         (WebCore::CanvasRenderingContext2D::clearRect):
1390         (WebCore::CanvasRenderingContext2D::fillRect):
1391         (WebCore::CanvasRenderingContext2D::strokeRect):
1392         (WebCore::CanvasRenderingContext2D::drawImage):
1393         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
1394         (WebCore::CanvasRenderingContext2D::willDraw):
1395         (WebCore::CanvasRenderingContext2D::drawTextInternal):
1396         * html/CanvasRenderingContext2D.h:
1397         * html/CanvasRenderingContext2D.idl:
1398         * html/HTMLCanvasElement.cpp:
1399         (WebCore::HTMLCanvasElement::baseTransform):
1400         * html/HTMLCanvasElement.h:
1401         * platform/graphics/ImageBuffer.h:
1402         (WebCore::ImageBuffer::baseTransform):
1403
1404 2008-12-06  Antti Koivisto  <antti@apple.com>
1405
1406         Reviewed by Darin Adler.
1407
1408         Also copy m_implicit field. Darin wanted this change commited separately.
1409
1410         * css/CSSProperty.h:
1411         (WebCore::CSSProperty::operator=):
1412
1413 2008-12-06  Antti Koivisto  <antti@apple.com>
1414
1415         Reviewed by Darin Adler.
1416
1417         https://bugs.webkit.org/show_bug.cgi?id=22379
1418         Make CSSOM use less memory
1419         
1420         Use vector instead of a double linked list for properties in CSSMutableStyleDeclaration.
1421         
1422         Taught setter functions to use existing slots to avoid memory moves, plus some
1423         other optimizations.
1424
1425         * WebCore.xcodeproj/project.pbxproj:
1426         * css/CSSMutableStyleDeclaration.cpp:
1427         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
1428         (WebCore::CSSMutableStyleDeclaration::operator=):
1429         (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
1430         (WebCore::CSSMutableStyleDeclaration::removeShorthandProperty):
1431         (WebCore::CSSMutableStyleDeclaration::removeProperty):
1432         (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
1433         (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
1434         (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
1435         (WebCore::CSSMutableStyleDeclaration::setProperty):
1436         (WebCore::CSSMutableStyleDeclaration::setPropertyInternal):
1437         (WebCore::CSSMutableStyleDeclaration::setStringProperty):
1438         (WebCore::CSSMutableStyleDeclaration::setImageProperty):
1439         (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
1440         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
1441         (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
1442         (WebCore::CSSMutableStyleDeclaration::setLengthProperty):
1443         (WebCore::CSSMutableStyleDeclaration::length):
1444         (WebCore::CSSMutableStyleDeclaration::item):
1445         (WebCore::CSSMutableStyleDeclaration::cssText):
1446         (WebCore::CSSMutableStyleDeclaration::setCssText):
1447         (WebCore::CSSMutableStyleDeclaration::merge):
1448         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
1449         (WebCore::CSSMutableStyleDeclaration::copy):
1450         (WebCore::CSSMutableStyleDeclaration::findPropertyWithId):
1451         * css/CSSMutableStyleDeclaration.h:
1452         (WebCore::CSSMutableStyleDeclarationConstIterator::operator*):
1453         (WebCore::CSSMutableStyleDeclarationConstIterator::operator->):
1454         (WebCore::CSSMutableStyleDeclarationConstIterator::operator!=):
1455         (WebCore::CSSMutableStyleDeclarationConstIterator::operator==):
1456         (WebCore::CSSMutableStyleDeclaration::create):
1457         (WebCore::CSSMutableStyleDeclaration::begin):
1458         (WebCore::CSSMutableStyleDeclaration::end):
1459         (WebCore::CSSMutableStyleDeclarationConstIterator::CSSMutableStyleDeclarationConstIterator):
1460         (WebCore::CSSMutableStyleDeclarationConstIterator::~CSSMutableStyleDeclarationConstIterator):
1461         (WebCore::CSSMutableStyleDeclarationConstIterator::operator=):
1462         (WebCore::CSSMutableStyleDeclarationConstIterator::operator++):
1463         (WebCore::CSSMutableStyleDeclarationConstIterator::operator--):
1464         * css/CSSProperty.h:
1465         (WTF::):
1466         * css/CSSStyleDeclaration.cpp:
1467         (WebCore::CSSStyleDeclaration::diff):
1468         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
1469         * css/CSSStyleSelector.cpp:
1470         (WebCore::CSSStyleSelector::resolveVariablesForDeclaration):
1471         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
1472         (WebCore::CSSStyleSelector::applyDeclarations):
1473         * dom/EventTarget.h:
1474         * editing/ApplyStyleCommand.cpp:
1475         (WebCore::StyleChange::init):
1476         (WebCore::ApplyStyleCommand::isHTMLStyleNode):
1477         (WebCore::ApplyStyleCommand::removeHTMLFontStyle):
1478         (WebCore::ApplyStyleCommand::removeCSSStyle):
1479         * editing/Editor.cpp:
1480         (WebCore::Editor::selectionStartHasStyle):
1481         (WebCore::updateState):
1482         * editing/ReplaceSelectionCommand.cpp:
1483         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
1484         * editing/markup.cpp:
1485         (WebCore::appendStartMarkup):
1486
1487 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
1488
1489         Reviewed by Antti Koivisto, Dan Bernstein
1490
1491         https://bugs.webkit.org/show_bug.cgi?id=22088
1492
1493         Fix logic related to repainting when transform changes:
1494         If an object has a layer, and the transform changes, then we need
1495         to do a repaintIncludingDescendants(), not just a repaint.
1496         
1497         Test: fast/repaint/transform-repaint-descendants.html
1498
1499         * rendering/RenderObject.cpp:
1500         (WebCore::RenderObject::styleWillChange):
1501
1502 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
1503
1504         Reviewed by Dan Bernstein
1505
1506         https://bugs.webkit.org/show_bug.cgi?id=15739
1507
1508         When painting the selection on a replaced element, paint
1509         using local coordinates so that the selection is correctly
1510         painted for transformed elements.
1511
1512         Test: fast/replaced/selection-rect-transform.html
1513
1514         * rendering/RenderReplaced.cpp:
1515         (WebCore::RenderReplaced::paint):
1516
1517 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
1518
1519         Reviewed by Dave Hyatt
1520
1521         https://bugs.webkit.org/show_bug.cgi?id=15671
1522         
1523         Fix caret rendering to behave correctly with transforms:
1524         * Rename caretRect() methods to localCaretRect() and
1525           absoluteCaretBounds() as appropriate
1526         * Fix localCaretRect() methods to return a rect in the
1527           appropriate coordinates.
1528         * Pass tx, ty down through the paintCaret() methods, after fixing them
1529           up to account for differences between contents coords, and renderer-local
1530           coords (via RenderBlock::offsetForContents()).
1531         * Remove m_caretPositionOnLayout from SelectionController, and instead
1532           call invalidateSelection() from RenderLayer::scrollToOffset(), because
1533           we can no longer assume simple x/y offsets from scrolling with transforms.
1534         * Move the logic to compute which RenderObject actually paints the caret into
1535           SelectionController::caretRenderer(), rather than having it in RenderBlock.
1536         * SelectionController now computes and caches a local caret rect. For invalidation,
1537           it computes the absolute bounds of that (possibly transformed) local rect.
1538           The local rect is computed in the coordinate system of the RenderObject that
1539           will paint the caret (this may require offsetting from the actual renderer
1540           at the start of the selection).
1541         * Fix LayoutState(RenderObject* root) to take transforms into account
1542         * Make offsetFromContainer() a virtual method on RenderObject, and implement
1543           the RenderObject version. It's used to map from selection start renderer
1544           to caret renderer.
1545
1546         Test: fast/transforms/transformed-caret.html
1547
1548         * WebCore.base.exp:
1549         * editing/DeleteSelectionCommand.cpp:
1550         (WebCore::DeleteSelectionCommand::mergeParagraphs):
1551         * editing/SelectionController.cpp:
1552         (WebCore::SelectionController::SelectionController):
1553         (WebCore::absoluteCaretY):
1554         (WebCore::SelectionController::modify):
1555         (WebCore::SelectionController::xPosForVerticalArrowNavigation):
1556         (WebCore::SelectionController::layout):
1557         (WebCore::SelectionController::caretRenderer):
1558         (WebCore::SelectionController::localCaretRect):
1559         (WebCore::SelectionController::absoluteCaretBounds):
1560         (WebCore::SelectionController::caretRepaintRect):
1561         (WebCore::SelectionController::recomputeCaretRect):
1562         (WebCore::SelectionController::invalidateCaretRect):
1563         (WebCore::SelectionController::paintCaret):
1564         (WebCore::SelectionController::caretRendersInsideNode):
1565         * editing/SelectionController.h:
1566         * editing/VisiblePosition.cpp:
1567         (WebCore::VisiblePosition::localCaretRect):
1568         (WebCore::VisiblePosition::absoluteCaretBounds):
1569         (WebCore::VisiblePosition::xOffsetForVerticalNavigation):
1570         * editing/VisiblePosition.h:
1571         * editing/mac/SelectionControllerMac.mm:
1572         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
1573         * html/HTMLElement.cpp:
1574         (WebCore::HTMLElement::isContentEditable):
1575         * page/AccessibilityRenderObject.cpp:
1576         (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
1577         * page/Frame.cpp:
1578         (WebCore::Frame::firstRectForRange):
1579         (WebCore::Frame::selectionLayoutChanged):
1580         (WebCore::Frame::paintCaret):
1581         (WebCore::Frame::paintDragCaret):
1582         (WebCore::Frame::revealSelection):
1583         (WebCore::Frame::revealCaret):
1584         * page/Frame.h:
1585         * rendering/LayoutState.cpp:
1586         (WebCore::LayoutState::LayoutState):
1587         * rendering/RenderBlock.cpp:
1588         (WebCore::RenderBlock::paintCaret):
1589         (WebCore::RenderBlock::paintObject):
1590         (WebCore::RenderBlock::positionForCoordinates):
1591         (WebCore::RenderBlock::offsetForContents):
1592         * rendering/RenderBlock.h:
1593         * rendering/RenderBox.cpp:
1594         (WebCore::RenderBox::localCaretRect):
1595         * rendering/RenderBox.h:
1596         * rendering/RenderFlow.cpp:
1597         (WebCore::RenderFlow::localCaretRect):
1598         * rendering/RenderFlow.h:
1599         * rendering/RenderLayer.cpp:
1600         (WebCore::RenderLayer::scrollToOffset):
1601         * rendering/RenderObject.cpp:
1602         (WebCore::RenderObject::localCaretRect):
1603         * rendering/RenderObject.h:
1604         * rendering/RenderSVGInlineText.cpp:
1605         (WebCore::RenderSVGInlineText::localCaretRect):
1606         * rendering/RenderSVGInlineText.h:
1607         * rendering/RenderText.cpp:
1608         (WebCore::RenderText::RenderText):
1609         (WebCore::RenderText::localCaretRect):
1610         * rendering/RenderText.h:
1611
1612 2008-12-06  David Kilzer  <ddkilzer@apple.com>
1613
1614         Bug 22711: Current svn (build 39065) fails to compile
1615
1616         <https://bugs.webkit.org/show_bug.cgi?id=22711>
1617
1618         BUILD FIX for r39065: Forgot parentheses after "document".
1619
1620         Bug 22666: Clean up data structures used when collecting URLs of subresources for webarchives
1621         <https://bugs.webkit.org/show_bug.cgi?id=22666>
1622
1623         * svg/SVGFEImageElement.cpp:
1624         (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Changed
1625         document to document().
1626
1627 2008-12-06  Dmitry Titov  <dimich@chromium.org>
1628
1629         Reviewed by Alexey Proskuryakov.
1630
1631         https://bugs.webkit.org/show_bug.cgi?id=22710
1632         Memory leak due to circular reference Document->DOMTimer->ScheduledAction->[JS objects]->Document
1633
1634         * bindings/js/DOMTimer.cpp:
1635         (WebCore::DOMTimer::stop): Delete ScheduledAction, which contains a protected object.
1636
1637 2008-12-06  David Kilzer  <ddkilzer@apple.com>
1638
1639         Bug 22666: Clean up data structures used when collecting URLs of subresources for webarchives
1640
1641         <https://bugs.webkit.org/show_bug.cgi?id=22666>
1642
1643         Reviewed by Darin Adler.
1644
1645         When creating a webarchive from WebCore::LegacyWebArchive::create(),
1646         HashSet<String>, Vector<KURL> and Vector<String> were all used to
1647         store a list of URLs for resources found in the document.  Instead
1648         use a single ListHashSet<KURL> to store the list and resolve the
1649         relative URLs as they're added.  We use a new inline method called
1650         WebCore::addSubresourceURL() to add KURL objects to the ListHashSet
1651         to prevent "null" KURL objects from crashing in the KURL hashing
1652         function.
1653
1654         * WebCore.base.exp: Changed export of
1655         WebCore::Node::getSubresourceURLs() to take a ListHashSet<KURL>
1656         argument instead of a Vector<KURL>.
1657
1658         * WebCore.xcodeproj/project.pbxproj: Marked KURLHash.h as a private
1659         header for use in WebKit.
1660
1661         * css/CSSStyleSheet.cpp:
1662         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Renamed from
1663         addSubresourceURLStrings().  Changed to use ListHashSet<KURL>
1664         instead of HashSet<String>.  Cleaned up code.
1665         * css/CSSStyleSheet.h:
1666         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Ditto.
1667         * css/StyleSheet.h:
1668         (WebCore::StyleSheet::addSubresourceStyleURLs): Ditto.
1669
1670         * dom/Node.cpp:
1671         (WebCore::Node::getSubresourceURLs): Changed to use
1672         ListHashSet<KURL> instead of Vector<KURL>.  Cleaned up code.
1673         * dom/Node.h:
1674         (WebCore::Node::getSubresourceURLs): Ditto.
1675         (WebCore::Node::addSubresourceAttributeURLs): Renamed from
1676         getSubresourceAttributeStrings().  Changed to use ListHashSet<KURL>
1677         instead of Vector<String>.
1678         (WebCore::addSubresourceURL): Added.  Safely adds new KURL objects
1679         to a ListHashSet<KURL> object.  A "null" KURL object will cause the
1680         hash function to crash since it contains a null StringImpl.  Used in
1681         Node::addSubresourceAttributeURLs() and addSubresourceStyleURLs() in
1682         the style subsystem.
1683
1684         * dom/ProcessingInstruction.cpp:
1685         (WebCore::ProcessingInstruction::addSubresourceAttributeURLs):
1686         Renamed from getSubresourceAttributeStrings().  Changed to use
1687         ListHashSet<KURL> instead of Vector<String>.  Use
1688         WebCore::addSubresourceURL() to add new KURL objects.
1689         * dom/ProcessingInstruction.h: Ditto.
1690         * html/HTMLBodyElement.cpp:
1691         (WebCore::HTMLBodyElement::addSubresourceAttributeURLs): Ditto.
1692         * html/HTMLBodyElement.h: Ditto.
1693         * html/HTMLEmbedElement.cpp:
1694         (WebCore::HTMLEmbedElement::addSubresourceAttributeURLs): Ditto.
1695         * html/HTMLEmbedElement.h: Ditto.
1696         * html/HTMLImageElement.cpp:
1697         (WebCore::HTMLImageElement::addSubresourceAttributeURLs): Ditto.
1698         * html/HTMLImageElement.h: Ditto.
1699         * html/HTMLInputElement.cpp:
1700         (WebCore::HTMLInputElement::addSubresourceAttributeURLs): Ditto.
1701         * html/HTMLInputElement.h: Ditto.
1702         * html/HTMLLinkElement.cpp:
1703         (WebCore::HTMLLinkElement::addSubresourceAttributeURLs): Ditto.
1704         * html/HTMLLinkElement.h: Ditto.
1705         * html/HTMLObjectElement.cpp:
1706         (WebCore::HTMLObjectElement::addSubresourceAttributeURLs): Ditto.
1707         * html/HTMLObjectElement.h: Ditto.
1708         * html/HTMLParamElement.cpp:
1709         (WebCore::HTMLParamElement::addSubresourceAttributeURLs): Ditto.
1710         * html/HTMLParamElement.h: Ditto.
1711         * html/HTMLScriptElement.cpp:
1712         (WebCore::HTMLScriptElement::addSubresourceAttributeURLs): Ditto.
1713         * html/HTMLScriptElement.h: Ditto.
1714         * html/HTMLStyleElement.cpp:
1715         (WebCore::HTMLStyleElement::addSubresourceAttributeURLs): Ditto.
1716         * html/HTMLStyleElement.h: Ditto.
1717         * html/HTMLTableCellElement.cpp:
1718         (WebCore::HTMLTableCellElement::addSubresourceAttributeURLs): Ditto.
1719         * html/HTMLTableCellElement.h: Ditto.
1720         * html/HTMLTableElement.cpp:
1721         (WebCore::HTMLTableElement::addSubresourceAttributeURLs): Ditto.
1722         * html/HTMLTableElement.h: Ditto.
1723
1724         * loader/archive/cf/LegacyWebArchive.cpp:
1725         (WebCore::LegacyWebArchive::create): Changed from using
1726         HashSet<String> to ListHashSet<KURL> for tracking unique
1727         subresources.  Changed from using Vector<KURL> to ListHashSet<KURL>
1728         when calling WebCore::Node::getSubresourceURLs().  Cleaned up code.
1729
1730         * svg/SVGCursorElement.cpp:
1731         (WebCore::SVGCursorElement::addSubresourceAttributeURLs): Renamed
1732         from getSubresourceAttributeStrings().  Changed to use
1733         ListHashSet<KURL> instead of Vector<String>.  Use
1734         WebCore::addSubresourceURL() to add new KURL objects.
1735         * svg/SVGCursorElement.h: Ditto.
1736         * svg/SVGFEImageElement.cpp:
1737         (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Ditto.
1738         * svg/SVGFEImageElement.h: Ditto.
1739         * svg/SVGImageElement.cpp:
1740         (WebCore::SVGImageElement::addSubresourceAttributeURLs): Ditto.
1741         * svg/SVGImageElement.h: Ditto.
1742         * svg/SVGScriptElement.cpp:
1743         (WebCore::SVGScriptElement::addSubresourceAttributeURLs): Ditto.
1744         * svg/SVGScriptElement.h: Ditto.
1745
1746 2008-12-05  Brett Wilson  <brettw@chromium.org>
1747
1748         Reviewed by Darin Adler.
1749
1750         Make the page group use the proper link hashing functions rather than
1751         calling the string hash functions directly. Add Chromium-specfic ifdefs
1752         in the visited link computation functions to allow integration.
1753
1754         * page/PageGroup.cpp:
1755         (WebCore::PageGroup::isLinkVisited):
1756         (WebCore::PageGroup::addVisitedLink):
1757         * platform/LinkHash.cpp:
1758         (WebCore::visitedLinkHash):
1759         * platform/LinkHash.h:
1760
1761 2008-12-05  Chris Marrin  <cmarrin@apple.com>
1762
1763         Reviewed by Dave Hyatt.
1764
1765         Fix for https://bugs.webkit.org/show_bug.cgi?id=22635
1766         For iteration and end events, previous fixes to prevent the deletion of
1767         Animation objects (ref counting and hanging onto a ref during event callbacks)
1768         was sufficient to prevent dangling pointers. But start events are sent in
1769         the styleAvailable() call, which iterates over CompositeAnimation objects,
1770         which are not ref counted. So that object can get destroyed in the event
1771         handler while still active. So I added refcounting for CompositeAnimations.
1772
1773         Additionally, when am iterating over the CompositingAnimation list, it can
1774         be deleted, which mutates the list. So I now make one pass over the list
1775         building a vector of CompositeAnimation objects that need to be called and
1776         then iterate over that vector to make the actual calls.
1777
1778         Finally, to make sure the lifetime of the CompositeAnimation exceeds that of
1779         the Animation objects it owns, I now keep a ref to the CompositeAnimation
1780         in the timer callback for the iteration and end events. That means I no
1781         longer need to keep a ref to the Animation objects themselves in that timer
1782         callback, since the CompositeAnimation already has one.
1783
1784         Tests: animations/animation-iteration-event-destroy-renderer.html
1785                animations/animation-start-event-destroy-renderer.html
1786
1787         * page/animation/AnimationBase.cpp:
1788         (WebCore::AnimationBase::updateStateMachine):
1789         (WebCore::AnimationBase::animationTimerCallbackFired):
1790         * page/animation/AnimationController.cpp:
1791         (WebCore::AnimationControllerPrivate::~AnimationControllerPrivate):
1792         (WebCore::AnimationControllerPrivate::accessCompositeAnimation):
1793         (WebCore::AnimationControllerPrivate::clear):
1794         (WebCore::AnimationControllerPrivate::styleAvailable):
1795         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
1796         (WebCore::AnimationControllerPrivate::animationTimerFired):
1797         (WebCore::AnimationControllerPrivate::isAnimatingPropertyOnRenderer):
1798         (WebCore::AnimationControllerPrivate::suspendAnimations):
1799         (WebCore::AnimationControllerPrivate::resumeAnimations):
1800         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
1801         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
1802         (WebCore::AnimationController::updateAnimations):
1803         (WebCore::AnimationController::setAnimationStartTime):
1804         (WebCore::AnimationController::setTransitionStartTime):
1805         * page/animation/CompositeAnimation.cpp:
1806         (WebCore::CompositeAnimationPrivate::animationController):
1807         (WebCore::CompositeAnimationPrivate::isWaitingForStyleAvailable):
1808         (WebCore::CompositeAnimationPrivate::~CompositeAnimationPrivate):
1809         (WebCore::CompositeAnimationPrivate::clearRenderer):
1810         (WebCore::CompositeAnimation::clearRenderer):
1811         (WebCore::CompositeAnimation::animationController):
1812         (WebCore::CompositeAnimation::isWaitingForStyleAvailable):
1813         * page/animation/CompositeAnimation.h:
1814         (WebCore::CompositeAnimation::create):
1815
1816 2008-12-05  David Kilzer  <ddkilzer@apple.com>
1817
1818         Bug 22609: Provide a build-time choice when generating hash tables for properties of built-in DOM objects
1819
1820         <https://bugs.webkit.org/show_bug.cgi?id=22609>
1821         <rdar://problem/6331749>
1822
1823         Reviewed by Darin Adler.
1824
1825         Initial patch by Yosen Lin.  Adapted for ToT WebKit by David Kilzer.
1826
1827         Added back the code that generates a "compact" hash (instead of a
1828         perfect hash) as a build-time option using the
1829         ENABLE(PERFECT_HASH_SIZE) macro as defined in Lookup.h.
1830
1831         * bindings/scripts/CodeGeneratorJS.pm:
1832         (GenerateImplementation): Compute the number of elements that will
1833         be stored in each hash table and pass it to GenerateHashTable().
1834         (GenerateHashTable): Added new second parameter representing the
1835         number of elements to store in the compact hash table.  Added back
1836         code to compute compact hash tables.  Generate both hash table sizes
1837         and emit conditionalized code based on ENABLE(PERFECT_HASH_SIZE).
1838
1839 2008-12-05  Brett Wilson  <brettw@chromium.org>
1840
1841         Fix build bustage from previous patch.
1842
1843         * css/CSSSelector.h:
1844
1845 2008-12-05  Brett Wilson  <brettw@chromium.org>
1846
1847         Reviewed by Eric Seidel.
1848
1849         Add a missing include for OwnPtr to make CSSSelector compile without
1850         precompiled headers.
1851
1852         * css/CSSSelector.h:
1853
1854 2008-12-05  Finnur Thorarinsson  <finnur.webkit@gmail.com>
1855
1856         Reviewed by Darin Adler.
1857
1858         Bug 22579: Providing a function to ScrollbarClient.h which allows us to get at the tickmarks
1859         without relying on high-level WebCore types, as requested by Dave Hyatt.
1860         
1861         No functional changes, thus no test cases.
1862
1863         * page/FrameView.cpp:
1864         (WebCore::FrameView::getTickmarks):
1865         * page/FrameView.h:
1866         * platform/ScrollbarClient.h:
1867
1868 2008-12-05  Dean Jackson  <dino@apple.com>
1869
1870         Reviewed by David Hyatt.
1871
1872         Make sure Window event listeners also tell the
1873         Document about the event type, so noisy events
1874         will be dispatched even if nothing in the document
1875         is listening.
1876         https://bugs.webkit.org/show_bug.cgi?id=20572
1877
1878         * dom/Document.cpp:
1879         (WebCore::Document::addWindowEventListener):
1880
1881 2008-12-05  Adam Roben  <aroben@apple.com>
1882
1883         Windows build fix after r39026
1884
1885         * platform/network/cf/ResourceRequestCFNet.cpp:
1886         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1887         (WebCore::ResourceRequest::doUpdateResourceRequest):
1888         Add some missing .get()s.
1889
1890 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
1891
1892         Tiger build fix.
1893
1894         * platform/network/mac/ResourceRequestMac.mm: Define NSUInteger.
1895
1896 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
1897
1898         Reviewed by Darin Adler.
1899
1900         <rdar://problem/6405599> Tiger Mail crashes when using "Mail Contents of This Page"
1901         in Safari before opening a mail message in Mail
1902
1903         * platform/mac/WebCoreObjCExtras.mm:
1904         (WebCoreObjCFinalizeOnMainThread):
1905         Don't call initializeThreading: we now expect the caller to do it, to simplify keeping
1906         Tiger and post-Tiger behavior in line.
1907
1908         * bindings/objc/DOMRGBColor.mm:
1909         (+[DOMRGBColor initialize]):
1910         * bindings/objc/WebScriptObject.mm:
1911         (+[WebScriptObject initialize]):
1912         * page/mac/AccessibilityObjectWrapper.mm:
1913         (+[AccessibilityObjectWrapper initialize]):
1914         * platform/mac/SharedBufferMac.mm:
1915         (+[WebCoreSharedBufferData initialize]):
1916         Call JSC::initializeThreading();
1917
1918 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
1919
1920         Reviewed by Darin Adler.
1921
1922         <rdar://problem/4072827> Downloaded non-ASCII file name becomes garbled
1923
1924         * platform/network/ResourceRequestBase.cpp:
1925         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
1926         * platform/network/ResourceRequestBase.h:
1927         * platform/network/cf/ResourceRequestCFNet.cpp:
1928         (WebCore::findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction):
1929         (WebCore::findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction):
1930         (WebCore::setContentDispositionEncodingFallbackArray):
1931         (WebCore::copyContentDispositionEncodingFallbackArray):
1932         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1933         (WebCore::ResourceRequest::doUpdateResourceRequest):
1934         * platform/network/mac/ResourceRequestMac.mm:
1935         (WebCore::ResourceRequest::doUpdateResourceRequest):
1936         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1937         Added a way to specify encoding fallback list for Content-Disposition header.
1938
1939         * loader/FrameLoader.cpp: (WebCore::FrameLoader::addExtraFieldsToRequest): Generate and
1940         pass a list of encodings to try when decoding Content-Disposition header, as described
1941         in comments.
1942
1943 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
1944
1945         Reviewed by Darin Adler.
1946
1947         https://bugs.webkit.org/show_bug.cgi?id=22672
1948         ASSERT(m_table) when xhr.onabort creates another xhr or calls setTimeout
1949
1950         Test: http/tests/xmlhttprequest/send-on-abort.html
1951
1952         * dom/ScriptExecutionContext.cpp:
1953         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
1954         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
1955         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
1956         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
1957         Add a comment explaining that ActiveDOMObject methods shouldn't execute arbitrary JS.
1958
1959         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::stop): Don't dispatch events. This
1960         reverts a recent change that made the behavior slightly closer to Firefox - but the
1961         compatibility effect should be very minor if any, and Firefox itself behaves inconsistently.
1962
1963 2008-12-05  Tobias König <tobias.koenig@nokia.com>
1964
1965         Reviewed by Simon Hausmann.
1966
1967         Record required package dependencies for the Qt build for a correct
1968         pkg-config file.
1969
1970         * WebCore.pro:
1971
1972 2008-12-05  Tor Arne Vestbø  <tavestbo@trolltech.com>
1973
1974         Rubber-stamped by Simon Hausmann.
1975
1976         [Qt/Mac] Blacklist QuickTime plugin until we support the QuickDraw drawing model
1977
1978         * plugins/mac/PluginPackageMac.cpp:
1979         (WebCore::PluginPackage::fetchInfo):
1980         (WebCore::PluginPackage::isPluginBlacklisted):
1981
1982 2008-12-05  Jungshik Shin  <jshin@chromium.org>
1983
1984         Reviewed by Alexey Proskuryakov.
1985
1986         https://bugs.webkit.org/show_bug.cgi?id=22472
1987
1988         Revises charset alias map for TextCodecICU.
1989         - Uses windows-949 and windows-874 instead of windows-949-2000 and windows-874-2000
1990         - Replaces 'windows874' in a couple of place with 'windows-874' (for the canonical name)
1991         - Maps 'dos-874' to 'windows-874'. Currently, it's aliases to 'cp874', which is in turn
1992           mapped to 'TIS-620'. 'TIS-620' is manually aliased to 'windows-874'. We'd better directly
1993           alias 'dos-874' to 'windows-874'.
1994         - Replaces 'EUC-CN' with 'GBK' when it's used as the canonical name.
1995           Similar to the above case, we're getting rid of indirection that eventually leads to 'GBK' by
1996           directly going to 'GBK'.
1997         - Adds 'x-uhc' as an alias for 'windows-949'. It's used in some web pages.
1998
1999         Tests: fast/encoding/char-decoding-mac.html
2000                fast/encoding/char-decoding.html
2001
2002         * platform/text/TextCodecICU.cpp:
2003         (WebCore::TextCodecICU::registerExtendedEncodingNames):
2004
2005 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
2006
2007         Reviewed by Kevin Ollivier.
2008
2009         Add a MIME mapping for the .htm extension to wx and GTK ports.
2010         
2011         https://bugs.webkit.org/show_bug.cgi?id=22668
2012         
2013         * platform/gtk/MIMETypeRegistryGtk.cpp:
2014         (WebCore::):
2015         * platform/wx/MimeTypeRegistryWx.cpp:
2016         (WebCore::):
2017
2018 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
2019
2020         Reviewed by Kevin Ollivier.
2021
2022         Implement basic text paste support in wx and add notImplemented stubs
2023         to catch other methods.
2024         
2025         https://bugs.webkit.org/show_bug.cgi?id=22667
2026
2027         * platform/wx/PasteboardWx.cpp:
2028         (WebCore::Pasteboard::canSmartReplace):
2029         (WebCore::Pasteboard::plainText):
2030         (WebCore::Pasteboard::documentFragment):
2031         (WebCore::Pasteboard::writeImage):
2032
2033 2008-12-04  Kevin Ollivier  <kevino@theolliviers.com>
2034
2035         wx build fix for !USE(WXGC) build config.
2036
2037         * platform/graphics/wx/PathWx.cpp:
2038         (WebCore::Path::contains):
2039         (WebCore::Path::addLineTo):
2040         (WebCore::Path::addQuadCurveTo):
2041         (WebCore::Path::addBezierCurveTo):
2042         (WebCore::Path::addArcTo):
2043         (WebCore::Path::closeSubpath):
2044         (WebCore::Path::addArc):
2045         (WebCore::Path::addRect):
2046         (WebCore::Path::addEllipse):
2047         (WebCore::Path::transform):
2048         (WebCore::Path::apply):
2049         (WebCore::Path::isEmpty):
2050
2051 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
2052
2053         Reviewed by Kevin Ollivier.
2054
2055         Turn off styled controls until we can implement them properly.
2056         
2057         https://bugs.webkit.org/show_bug.cgi?id=22662
2058
2059         * platform/wx/RenderThemeWx.cpp:
2060         (WebCore::RenderThemeWx::isControlStyled):
2061
2062 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
2063
2064         Reviewed by Kevin Ollivier.
2065
2066         wx implementations for Path API.
2067
2068         https://bugs.webkit.org/show_bug.cgi?id=22661
2069
2070         * platform/graphics/wx/PathWx.cpp:
2071         (WebCore::Path::~Path):
2072         (WebCore::Path::contains):
2073         (WebCore::Path::addLineTo):
2074         (WebCore::Path::addQuadCurveTo):
2075         (WebCore::Path::addBezierCurveTo):
2076         (WebCore::Path::addArcTo):
2077         (WebCore::Path::closeSubpath):
2078         (WebCore::Path::addArc):
2079         (WebCore::Path::addRect):
2080         (WebCore::Path::addEllipse):
2081         (WebCore::Path::transform):
2082         (WebCore::Path::isEmpty):
2083
2084 2008-12-04  Julien Chaffraix  <jchaffraix@webkit.org>
2085
2086         Reviewed by Eric Seidel.
2087
2088         Bug 22564: Make HTML elements' constructors take a QualifiedName
2089         https://bugs.webkit.org/show_bug.cgi?id=22564
2090
2091         Updated the remaining constructors.
2092
2093         * bindings/js/JSImageConstructor.cpp:
2094         (WebCore::constructImage):
2095         * dom/Document.cpp:
2096         (WebCore::Document::getCSSCanvasElement):
2097         * editing/DeleteButton.cpp:
2098         (WebCore::DeleteButton::DeleteButton):
2099         * html/HTMLAppletElement.cpp:
2100         (WebCore::HTMLAppletElement::HTMLAppletElement):
2101         * html/HTMLAppletElement.h:
2102         * html/HTMLAreaElement.cpp:
2103         (WebCore::HTMLAreaElement::HTMLAreaElement):
2104         * html/HTMLAreaElement.h:
2105         * html/HTMLBaseFontElement.cpp:
2106         (WebCore::HTMLBaseFontElement::HTMLBaseFontElement):
2107         * html/HTMLBaseFontElement.h:
2108         * html/HTMLCanvasElement.cpp:
2109         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
2110         * html/HTMLCanvasElement.h:
2111         * html/HTMLElementFactory.cpp:
2112         (WebCore::hrConstructor):
2113         (WebCore::paragraphConstructor):
2114         (WebCore::basefontConstructor):
2115         (WebCore::fontConstructor):
2116         (WebCore::anchorConstructor):
2117         (WebCore::imageConstructor):
2118         (WebCore::mapConstructor):
2119         (WebCore::areaConstructor):
2120         (WebCore::canvasConstructor):
2121         (WebCore::appletConstructor):
2122         (WebCore::embedConstructor):
2123         (WebCore::objectConstructor):
2124         (WebCore::paramConstructor):
2125         (WebCore::scriptConstructor):
2126         (WebCore::tableConstructor):
2127         (WebCore::tableCaptionConstructor):
2128         (WebCore::tableRowConstructor):
2129         * html/HTMLEmbedElement.cpp:
2130         (WebCore::HTMLEmbedElement::HTMLEmbedElement):
2131         * html/HTMLEmbedElement.h:
2132         * html/HTMLFontElement.cpp:
2133         (WebCore::HTMLFontElement::HTMLFontElement):
2134         * html/HTMLFontElement.h:
2135         * html/HTMLHRElement.cpp:
2136         (WebCore::HTMLHRElement::HTMLHRElement):
2137         * html/HTMLHRElement.h:
2138         * html/HTMLImageElement.cpp:
2139         (WebCore::HTMLImageElement::HTMLImageElement):
2140         * html/HTMLImageElement.h:
2141         * html/HTMLMapElement.cpp:
2142         (WebCore::HTMLMapElement::HTMLMapElement):
2143         * html/HTMLMapElement.h:
2144         * html/HTMLObjectElement.cpp:
2145         (WebCore::HTMLObjectElement::HTMLObjectElement):
2146         * html/HTMLObjectElement.h:
2147         * html/HTMLParagraphElement.cpp:
2148         (WebCore::HTMLParagraphElement::HTMLParagraphElement):
2149         * html/HTMLParagraphElement.h:
2150         * html/HTMLParamElement.cpp:
2151         (WebCore::HTMLParamElement::HTMLParamElement):
2152         * html/HTMLParamElement.h:
2153         * html/HTMLParser.cpp:
2154         (WebCore::HTMLParser::handleError):
2155         (WebCore::HTMLParser::mapCreateErrorCheck):
2156         (WebCore::HTMLParser::handleIsindex):
2157         * html/HTMLScriptElement.cpp:
2158         (WebCore::HTMLScriptElement::HTMLScriptElement):
2159         * html/HTMLScriptElement.h:
2160         * html/HTMLTableCaptionElement.cpp:
2161         (WebCore::HTMLTableCaptionElement::HTMLTableCaptionElement):
2162         * html/HTMLTableCaptionElement.h:
2163         * html/HTMLTableElement.cpp:
2164         (WebCore::HTMLTableElement::HTMLTableElement):
2165         (WebCore::HTMLTableElement::createCaption):
2166         (WebCore::HTMLTableElement::insertRow):
2167         * html/HTMLTableElement.h:
2168         * html/HTMLTableRowElement.cpp:
2169         (WebCore::HTMLTableRowElement::HTMLTableRowElement):
2170         * html/HTMLTableRowElement.h:
2171         * html/HTMLTableSectionElement.cpp:
2172         (WebCore::HTMLTableSectionElement::insertRow):
2173         * html/HTMLViewSourceDocument.cpp:
2174         (WebCore::HTMLViewSourceDocument::createContainingTable):
2175         (WebCore::HTMLViewSourceDocument::addLine):
2176         * loader/ImageDocument.cpp:
2177         (WebCore::ImageDocumentElement::ImageDocumentElement):
2178
2179 2008-12-04  Eric Seidel  <eric@webkit.org>
2180
2181         No review, build fix only.
2182
2183         Add file missing from last commit.
2184
2185         * bindings/js/ScriptState.h: Added.
2186
2187 2008-12-04  Dimitri Glazkov  <dglazkov@chromium.org>
2188
2189         Reviewed by Geoff Garen.
2190
2191         Implement ScriptState abstraction (initially, a simple typedef)
2192         as means of carrying exception information across bindings boundaries
2193         and in a script engine-independent way.
2194
2195         * WebCore.vcproj/WebCore.vcproj:
2196         * WebCore.xcodeproj/project.pbxproj:
2197         * bindings/js/JSDOMBinding.cpp:
2198         (WebCore::scriptStateFromNode):
2199         * bindings/js/JSDOMBinding.h:
2200         * bindings/js/JSNodeFilterCondition.h:
2201         * bindings/js/ScriptState.h: Added.
2202         * dom/NodeFilter.cpp:
2203         (WebCore::NodeFilter::acceptNode):
2204         * dom/NodeFilter.h:
2205         (WebCore::NodeFilter::acceptNode):
2206         * dom/NodeFilterCondition.cpp:
2207         (WebCore::NodeFilterCondition::acceptNode):
2208         * dom/NodeFilterCondition.h:
2209         * dom/NodeIterator.cpp:
2210         (WebCore::NodeIterator::nextNode):
2211         (WebCore::NodeIterator::previousNode):
2212         * dom/NodeIterator.h:
2213         (WebCore::NodeIterator::nextNode):
2214         (WebCore::NodeIterator::previousNode):
2215         * dom/Traversal.cpp:
2216         (WebCore::Traversal::acceptNode):
2217         * dom/Traversal.h:
2218         * dom/TreeWalker.cpp:
2219         (WebCore::TreeWalker::parentNode):
2220         (WebCore::TreeWalker::firstChild):
2221         (WebCore::TreeWalker::lastChild):
2222         (WebCore::TreeWalker::previousSibling):
2223         (WebCore::TreeWalker::nextSibling):
2224         (WebCore::TreeWalker::previousNode):
2225         (WebCore::TreeWalker::nextNode):
2226         * dom/TreeWalker.h:
2227         (WebCore::TreeWalker::parentNode):
2228         (WebCore::TreeWalker::firstChild):
2229         (WebCore::TreeWalker::lastChild):
2230         (WebCore::TreeWalker::previousSibling):
2231         (WebCore::TreeWalker::nextSibling):
2232         (WebCore::TreeWalker::previousNode):
2233         (WebCore::TreeWalker::nextNode):
2234
2235 2008-12-04  Pierre-Olivier Latour  <pol@apple.com>
2236
2237         Reviewed by Dan Bernstein.
2238
2239         Fixed pauseTransitionAtTimeOnElementWithId() in DRT asserting when passed invalid property name
2240         and potential similar issue with pauseAnimationAtTimeOnElementWithId().
2241
2242         https://bugs.webkit.org/show_bug.cgi?id=22641
2243
2244         * page/animation/CompositeAnimation.cpp:
2245         (WebCore::CompositeAnimationPrivate::pauseAnimationAtTime):
2246         (WebCore::CompositeAnimationPrivate::pauseTransitionAtTime):
2247
2248 2008-12-04  Dimitri Glazkov  <dglazkov@chromium.org>
2249
2250         Reviewed by Darin Adler.
2251
2252         Remove unused Completion.h include.
2253
2254         * html/CanvasRenderingContext2D.cpp: Removed Completion.h include.
2255
2256 2008-11-13  David Hyatt  <hyatt@apple.com>
2257
2258         Fix a bug in ScrollView's refactoring.  An isVisible check should have been isSelfVisible.
2259
2260         Reviewed by Darin Adler
2261
2262         * platform/ScrollView.cpp:
2263         (WebCore::ScrollView::setParentVisible):
2264
2265 2008-12-04  Friedemann Kleint  <friedemann.kleint@nokia.com>
2266
2267         Reviewed by Tor Arne Vestbø.
2268
2269         Fix small translation glitch in the Qt file chooser.
2270
2271         * platform/qt/FileChooserQt.cpp:
2272         (WebCore::FileChooser::basenameForWidth):
2273
2274 2008-12-04  Tor Arne Vestbø  <tavestbo@trolltech.com>
2275
2276         Rubber-stamped by Simon Hausmann.
2277
2278         Blacklist Silverlight plugin on Qt/Mac until supported
2279
2280         Currently the plugin crashes with a corrupted stack trace, possibly
2281         related to https://bugs.webkit.org/show_bug.cgi?id=20635
2282
2283         * plugins/mac/PluginPackageMac.cpp:
2284         (WebCore::PluginPackage::fetchInfo):
2285         (WebCore::PluginPackage::isPluginBlacklisted):
2286
2287 2008-12-03  Dmitry Titov  <dimich@chromium.org>
2288
2289         Reviewed by Alexey Proskuryakov.
2290
2291         Fix non-Mac build.
2292
2293         * page/Chrome.cpp: (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
2294
2295 2008-12-03  David Levin  <levin@chromium.org>
2296
2297         Reviewed by Alexey Proskuryakov.
2298
2299         Remove uses of document() in XMLHttpRequest where simple.
2300         https://bugs.webkit.org/show_bug.cgi?id=22619
2301
2302         * xml/XMLHttpRequest.cpp:
2303         (WebCore::XMLHttpRequest::responseXML):
2304         Return NULL in the worker case which is according to spec (and avoids using document()).
2305
2306         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
2307         (WebCore::XMLHttpRequest::initSend):
2308         Use scriptExecutionContext() instead of document().
2309
2310 2008-12-03  David Levin  <levin@chromium.org>
2311
2312         Reviewed by Alexey Proskuryakov.
2313
2314         Make ScriptExecutionContextTaskWorkerTask::performTask a pure virtual function.
2315         https://bugs.webkit.org/show_bug.cgi?id=22642
2316
2317         * dom/Document.cpp:
2318         (WebCore::ScriptExecutionContextTaskTimer::ScriptExecutionContextTaskTimer):
2319         (WebCore::ScriptExecutionContextTaskTimer::fired):
2320         (WebCore::PerformTaskContext::PerformTaskContext):
2321         (WebCore::performTask):
2322         (WebCore::Document::postTask):
2323         * dom/Document.h:
2324         * dom/ScriptExecutionContext.cpp:
2325         * dom/ScriptExecutionContext.h:
2326         * dom/WorkerContext.cpp:
2327         (WebCore::ScriptExecutionContextTaskWorkerTask::create):
2328         (WebCore::ScriptExecutionContextTaskWorkerTask::ScriptExecutionContextTaskWorkerTask):
2329         (WebCore::ScriptExecutionContextTaskWorkerTask::performTask):
2330         (WebCore::WorkerContext::postTask):
2331         * dom/WorkerContext.h:
2332
2333 2008-12-03  Dmitry Titov  <dimich@chromium.org>
2334
2335         Reviewed by Alexey Proskuryakov.
2336
2337         Using ActiveDOMObject as base class for DOMTimer.
2338         https://bugs.webkit.org/show_bug.cgi?id=22620
2339
2340         Using ActiveDOMObject simplifies the code because ActiveDOMObject
2341         is wired for stop/pause/resume on loading/unloading/caching the page etc
2342         so the timer-specific code that does the same can be removed.
2343         In addition, timers can be now paused/resumed 'in place' which
2344         makes it unnecessary to 'serialize' them into special PausedTimeouts
2345         instance, so pause/resumeTimeouts implementation in JSDOMWindowBase can also be removed.
2346         Also, moving TimeoutMap from JSDOMWindowBase to Document matches lifetime
2347         of timeouts and makes it possible to not roundtrip them via PausedTimeouts 
2348         every time when JSDOMWindow wrapper is destroyed while the page is in the b/f cache.
2349
2350         Timeouts are now paused with other ActiveDOMObjects:
2351         - before creating CachedPage in FrameLoader::commitProvisionalLoad()
2352         - in JavaScriptDebugServer::setJavaScriptPaused
2353         - during modal UI operations in Chrome::*
2354         this is equivalent to previous usage of JSDOMWindowBase::pauseTimeouts()
2355
2356         Timeouts are stopped to prevent future firing from:
2357         - FrameLoader::clear()
2358         - FrameLoader::frameDetached()
2359         this is equivalent to previous usage of JSDOMWindowBase::clearAllTimeouts()
2360
2361         This is also one of the steps to having timers in Workers. See the plan of
2362         the next steps in the bug above.
2363
2364         * bindings/js/DOMTimer.cpp:
2365         (WebCore::DOMTimer::DOMTimer):
2366         (WebCore::DOMTimer::fired):
2367         (WebCore::DOMTimer::hasPendingActivity):
2368         (WebCore::DOMTimer::contextDestroyed):
2369         (WebCore::DOMTimer::stop):
2370         (WebCore::DOMTimer::suspend):
2371         (WebCore::DOMTimer::resume):
2372         (WebCore::DOMTimer::canSuspend): Implemented ActiveDOMObject methods.
2373
2374         * bindings/js/DOMTimer.h:
2375         * bindings/js/JSDOMBinding.cpp: ActiveDOMObject can have no JS wrapper
2376         (WebCore::markActiveObjectsForContext): 
2377
2378         * bindings/js/JSDOMWindowBase.cpp:
2379         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
2380         (WebCore::JSDOMWindowBase::clear):
2381         (WebCore::JSDOMWindowBase::installTimeout):
2382         (WebCore::JSDOMWindowBase::removeTimeout):
2383         (WebCore::JSDOMWindowBase::timerFired):
2384         (WebCore::JSDOMWindowBase::disconnectFrame):
2385         * bindings/js/JSDOMWindowBase.h:
2386         * bindings/js/ScriptController.cpp:
2387         * bindings/js/ScriptController.h:
2388
2389         * dom/Document.cpp: Document now holds a hash map id->timeout
2390         (WebCore::Document::addTimeout):
2391         (WebCore::Document::removeTimeout):
2392         (WebCore::Document::findTimeout):
2393         * dom/Document.h:
2394         * history/CachedPage.cpp:
2395         (WebCore::CachedPage::CachedPage):
2396         (WebCore::CachedPage::restore):
2397         (WebCore::CachedPage::clear):
2398         * history/CachedPage.h:
2399         * inspector/JavaScriptDebugServer.cpp:
2400         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
2401         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
2402         * inspector/JavaScriptDebugServer.h:
2403
2404         * loader/FrameLoader.cpp:
2405         (WebCore::FrameLoader::commitProvisionalLoad): 
2406         removed clearAllTimeouts since all ActiveDOMObjects will be stopped in FrameLoader::clear();
2407         I don't see how the old comment can be correct - the code in the same method proceeds to invoke 'onunload'
2408         and then calls into client which can be external code and can cause any active object created in onunload
2409         to fire. We can stop them all before firing onunload but it does not make a lot of sense.
2410         I have a test to go with the next patch which verifies that timers set in onunload do not fire.
2411
2412         (WebCore::FrameLoader::open):
2413         * page/Chrome.cpp:
2414         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
2415         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
2416
2417 2008-12-03  Justin Garcia  <justin.garcia@apple.com>
2418
2419         Reviewed by Beth Dakin.
2420
2421         <rdar://problem/6018653> Extra blank line when pasting paragraph in plain text
2422         
2423         In SnowLeopard, Mail occasionally adds an empty, unstyled paragraph at the
2424         end of pasted content so that users don't get stuck with non-standard pargraph
2425         spacing.  This content threw off our handling of interchange newlines.  Any interchange
2426         newline, regardless of it's position in the incoming fragment was considered to be
2427         "at the start" of the fragment, and would result in us inserting in a newline before 
2428         inserted content.  This patch makes the checks for interchange newlines more strict, 
2429         and treats interchange newlines found elsewhere as normal <br>s.
2430
2431         * editing/ReplaceSelectionCommand.cpp:
2432         (WebCore::ReplacementFragment::ReplacementFragment):
2433         (WebCore::ReplacementFragment::removeInterchangeNodes):
2434         * editing/VisiblePosition.cpp:
2435         (WebCore::VisiblePosition::init):
2436         (WebCore::VisiblePosition::canonicalPosition):
2437         * editing/VisiblePosition.h:
2438
2439 2008-12-03  Eric Seidel  <eric@webkit.org>
2440
2441         Rubber-stamped by David Hyatt.
2442
2443         Bring the WebCore chromium build a couple steps closer to building.
2444
2445         * WebCore.scons:
2446
2447 2008-12-03  Kevin Ollivier  <kevino@theolliviers.com>
2448
2449         wx build fix.
2450
2451         * WebCoreSources.bkl:
2452
2453 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2454
2455         Reviewed by George Staikos.
2456
2457         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22636
2458
2459         Implement WML variable substitution & validation.
2460         Created a framework for scriptable WML layout tests, that are able to test variable substiution & validation.
2461
2462         Tests: wml/variable-reference-invalid-character.html
2463                wml/variable-reference-valid.html
2464
2465         * wml/WMLVariables.cpp:
2466         (WebCore::isValidFirstVariableNameCharacter):
2467         (WebCore::isValidVariableNameCharacter):
2468         (WebCore::isValidVariableEscapingModeString):
2469         (WebCore::isValidVariableName):
2470         (WebCore::containsVariableReference):
2471         (WebCore::substituteVariableReferences):
2472         * wml/WMLVariables.h:
2473
2474 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2475
2476         Reviewed by Cameron Zwarich.
2477
2478         Further preparations for WML layout tests.
2479         - Enable variable substitution in Text.cpp - if the parent is a WMLElement derived class.
2480         - Dump WMLMessageSource messages to the console, just like it's done for JSMessageSource
2481         - Add helper method in Document.idl, to reset the WML page state to a well-known default state.
2482           (will be used in the upcoming LayoutTests/wml testcases)
2483
2484          * dom/Document.cpp:
2485         (WebCore::Document::resetWMLPageState):
2486         * dom/Document.h:
2487         * dom/Document.idl:
2488         * dom/Text.cpp:
2489         (WebCore::Text::insertedIntoDocument):
2490         * dom/Text.h:
2491         * page/Console.cpp:
2492         (WebCore::Console::addMessage):
2493         * wml/WMLPageState.h: Readd heper function
2494         (WebCore::WMLPageState::hasVariables):
2495
2496 2008-12-03  Antti Koivisto  <antti@apple.com>
2497
2498         Reviewed by Sam Weinig.
2499
2500         Don't leak selectors in case selector list parsing failed.
2501
2502         * css/CSSGrammar.y:
2503         * css/CSSParser.cpp:
2504         (WebCore::CSSParser::~CSSParser):
2505
2506 2008-12-03  Chris Marrin  <cmarrin@apple.com>
2507
2508         Reviewed by Dave Hyatt.
2509
2510         Fix https://bugs.webkit.org/show_bug.cgi?id=22520
2511
2512         This is a regression (causes a crash of LayoutTests/animations/transform-animation-event-destroy-element.html).
2513         This patch fixes the testcase.
2514
2515         This is another case of animations getting destroyed in the end animation callback and causing dangling
2516         pointers on return. This one involves iterating over the CompositeAnimation, which has been destroyed.
2517         So I now check for a null m_object pointer (which is nullified when the CompositeAnimation is destroyed)
2518         and skip that call.
2519
2520         * page/animation/AnimationBase.cpp:
2521         (WebCore::AnimationBase::updateStateMachine):
2522
2523 2008-12-03  Antti Koivisto  <antti@apple.com>
2524
2525         Reviewed by Darin Adler.
2526
2527         https://bugs.webkit.org/show_bug.cgi?id=22379
2528         Make CSSOM use less memory
2529
2530         Reduce size of the CSSSelector by one more pointer by using an array
2531         instead of a linked list to store them.
2532
2533         * WebCore.xcodeproj/project.pbxproj:
2534         * css/CSSGrammar.y:
2535         * css/CSSParser.cpp:
2536         (WebCore::CSSParser::CSSParser):
2537         (WebCore::CSSParser::parseSelector):
2538         (WebCore::CSSParser::createStyleRule):
2539         * css/CSSParser.h:
2540         (WebCore::CSSParser::reusableSelectorVector):
2541         * css/CSSSelector.h:
2542         (WebCore::CSSSelector::CSSSelector):
2543         (WebCore::CSSSelector::~CSSSelector):
2544         (WebCore::CSSSelector::isLastInSelectorList):
2545         (WebCore::CSSSelector::setLastInSelectorList):
2546         * css/CSSStyleRule.cpp:
2547         (WebCore::CSSStyleRule::CSSStyleRule):
2548         (WebCore::CSSStyleRule::~CSSStyleRule):
2549         (WebCore::CSSStyleRule::selectorText):
2550         * css/CSSStyleRule.h:
2551         (WebCore::CSSStyleRule::adoptSelectorVector):
2552         (WebCore::CSSStyleRule::selectorList):
2553         * css/CSSStyleSelector.cpp:
2554         (WebCore::CSSRuleSet::addRulesFromSheet):
2555         * dom/Node.cpp:
2556         (WebCore::forEachSelector):
2557         (WebCore::selectorNeedsNamespaceResolution):
2558         (WebCore::Node::querySelector):
2559         (WebCore::Node::querySelectorAll):
2560         * dom/SelectorNodeList.cpp:
2561         (WebCore::createSelectorNodeList):
2562         * dom/SelectorNodeList.h:
2563
2564 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
2565
2566         Reviewed by Darin Adler.
2567
2568         https://bugs.webkit.org/show_bug.cgi?id=22630
2569         Assertion failure in XMLHttpRequest::contextDestroyed
2570
2571         Test: http/tests/xmlhttprequest/close-window.html
2572
2573         * loader/FrameLoader.cpp:
2574         (WebCore::FrameLoader::clear):
2575         (WebCore::FrameLoader::commitProvisionalLoad):
2576         Move stopping active objects to clear(), so that closing a window is also covered.
2577
2578         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::abort): Protect the object in abort(),
2579         because internalAbort() deref()'s.
2580
2581 2008-12-03  Dean Jackson  <dino@apple.com>
2582
2583         Reviewed by Dan Bernstein.
2584
2585         Implement CSS 3 <angle> turn unit and support it
2586         in rotations.
2587         https://bugs.webkit.org/show_bug.cgi?id=22497
2588
2589         * css/CSSGrammar.y:
2590         * css/CSSParser.cpp:
2591         (WebCore::CSSParser::validUnit):
2592         (WebCore::unitFromString):
2593         (WebCore::CSSParser::lex):
2594         * css/CSSPrimitiveValue.cpp:
2595         (WebCore::CSSPrimitiveValue::cssText):
2596         (WebCore::CSSPrimitiveValue::parserValue):
2597         * css/CSSPrimitiveValue.h:
2598         (WebCore::CSSPrimitiveValue::):
2599         * css/CSSStyleSelector.cpp:
2600         (WebCore::CSSStyleSelector::createTransformOperations):
2601         * css/tokenizer.flex:
2602
2603 2008-12-03  Dirk Schulze  <krit@webkit.org>
2604
2605         Reviewed by Nikolas Zimmermann.
2606
2607         Make use of the gradient code in GraphicsContext and get rid of most of the
2608         platform dependent code.
2609
2610         SVG should use the new Gradient support on GraphicsContext
2611         https://bugs.webkit.org/show_bug.cgi?id=20543
2612
2613         * GNUmakefile.am:
2614         * WebCore.pro:
2615         * WebCore.vcproj/WebCore.vcproj:
2616         * WebCore.xcodeproj/project.pbxproj:
2617         * platform/graphics/FloatSize.h:
2618         (WebCore::FloatSize::shrunkTo):
2619         * svg/SVGLinearGradientElement.cpp:
2620         (WebCore::SVGLinearGradientElement::buildGradient):
2621         * svg/SVGRadialGradientElement.cpp:
2622         (WebCore::SVGRadialGradientElement::buildGradient):
2623         * svg/graphics/SVGPaintServer.h:
2624         * svg/graphics/SVGPaintServerGradient.cpp:
2625         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
2626         (WebCore::SVGPaintServerGradient::~SVGPaintServerGradient):
2627         (WebCore::SVGPaintServerGradient::gradient):
2628         (WebCore::SVGPaintServerGradient::setGradient):
2629         (WebCore::findTextRootObject):
2630         (WebCore::createMaskAndSwapContextForTextGradient):
2631         (WebCore::clipToTextMask):
2632         (WebCore::SVGPaintServerGradient::setup):
2633         (WebCore::SVGPaintServerGradient::renderPath):
2634         (WebCore::SVGPaintServerGradient::teardown):
2635         * svg/graphics/SVGPaintServerGradient.h:
2636         (WebCore::SVGPaintServerGradient::setGradientStops):
2637         (WebCore::SVGPaintServerGradient::gradientStops):
2638         * svg/graphics/SVGPaintServerLinearGradient.h:
2639         * svg/graphics/SVGPaintServerRadialGradient.h:
2640         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp: Removed.
2641         * svg/graphics/cg/SVGPaintServerCg.cpp:
2642         * svg/graphics/cg/SVGPaintServerGradientCg.cpp: Removed.
2643         * svg/graphics/qt/SVGPaintServerGradientQt.cpp: Removed.
2644         * svg/graphics/qt/SVGPaintServerLinearGradientQt.cpp: Removed.
2645         * svg/graphics/qt/SVGPaintServerRadialGradientQt.cpp: Removed.
2646
2647 2008-12-03  Sam Weinig  <sam@webkit.org>
2648
2649         Reviewed by Mark Rowe.
2650
2651         Fix formatting.
2652
2653         * css/CSSSelector.h:
2654         (WebCore::CSSSelector::createRareData):
2655
2656 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2657
2658         Reviewed by Adam Roben.
2659
2660         As Adam Roben noticed, synchronize MessageSource enum with Console.js, and add a comment.
2661
2662         * inspector/front-end/Console.js:
2663         * page/Console.h:
2664
2665 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2666
2667         Reviewed by Alexey Proskuryakov.
2668
2669         Next steps to make LayoutTests work:
2670         Never access the main frame from WMLRefreshElement/WMLCardElement, but
2671         the current documents frame (WML layout tests will run in an <iframe>)
2672
2673         Prepare WMLErrorHandling for the case that no tokenizer is available anymore
2674         -> report errors through Console::addMessage(), so they get logged in the
2675            expected layout test results.
2676
2677         * wml/WMLCardElement.cpp:
2678         (WebCore::WMLCardElement::setActiveCardInDocument):
2679         * wml/WMLErrorHandling.cpp:
2680         (WebCore::reportWMLError):
2681         (WebCore::errorMessageForErrorCode):
2682         * wml/WMLErrorHandling.h:
2683         * wml/WMLRefreshElement.cpp:
2684         (WebCore::WMLRefreshElement::executeTask):
2685         * page/Console.cpp: Handle WMLMessageSource.
2686         (WebCore::printMessageSourceAndLevelPrefix):
2687         * page/Console.h: Add WMLMessageSource.
2688         (WebCore::):
2689
2690 2008-12-03  Tor Arne Vestbø  <tavestbo@trolltech.com>
2691
2692         Reviewed by Simon Hausmann.
2693
2694         Allow passing jsNull and jsUndefined to Qt plugins
2695
2696         Currently limited to functions with QString and QVariant arguments,
2697         and properties of these types. Both jsNull and jsUndefined ends up
2698         as default-constructed QStrings and QVariants, which means you can
2699         check for isEmpty() and isValid() in the native plugin code.
2700
2701         Based on patches by Jade Han <jade.han@nokia.com>
2702
2703         * bridge/qt/qt_runtime.cpp:
2704         (JSC::Bindings::convertValueToQVariant):
2705         (JSC::Bindings::findMethodIndex):
2706
2707 2008-12-03  Trenton Schulz  <trenton.schulz@nokia.com>
2708
2709         Reviewed by Simon Hausmann.
2710
2711         Fix the build with Qt for Mac OS X.
2712
2713         * platform/PurgeableBuffer.h: Use the dummy wrappers for now.
2714
2715 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2716
2717         Reviewed by Alexey Proskuryakov.
2718
2719         Fix error handling in WMLSetvarElement. If an invalid variable reference is contained
2720         in the 'name' attribute of <setvar>, a 'WMLErrorInvalidVariableName' error should be
2721         reported, instead of 'WMLErrorInvalidVariableReference'.
2722
2723         * wml/WMLElement.cpp:
2724         (WebCore::WMLElement::parseValueSubstitutingVariableReferences):
2725         (WebCore::WMLElement::parseValueForbiddingVariableReferences):
2726         * wml/WMLElement.h:
2727         * wml/WMLSetvarElement.cpp:
2728         (WebCore::WMLSetvarElement::parseMappedAttribute):
2729         * wml/WMLSetvarElement.h:
2730         (WebCore::WMLSetvarElement::name):
2731         (WebCore::WMLSetvarElement::value):
2732
2733 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2734
2735         Reviewed by Alexey Proskuryakov.
2736
2737         Preparations to get WML layout tests going.
2738         Make WMLPageState an OwnPtr to Page, and let Page create it on demand.
2739
2740         * page/Page.cpp:
2741         (WebCore::Page::Page):
2742         (WebCore::Page::wmlPageState):
2743         * page/Page.h:
2744         * wml/WMLDocument.cpp:
2745         (WebCore::WMLDocument::WMLDocument):
2746         (WebCore::WMLDocument::finishedParsing):
2747         (WebCore::wmlPageStateForDocument):
2748         * wml/WMLPageState.h: Don't inherit from RefCounted anymore.
2749         (WebCore::WMLPageState::hasVariables): Remove helper function.
2750
2751 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
2752
2753         Reviewed by Mark Rowe.
2754
2755         https://bugs.webkit.org/show_bug.cgi?id=22627
2756         fast/workers/worker-terminate.html fails randomly
2757
2758         The problem is that worker termination uses script timeouts, so an InterruptedExecutionError
2759         is raised, and it sometimes reaches the main thread.
2760
2761         * dom/WorkerMessagingProxy.cpp:
2762         (WebCore::WorkerExceptionTask::create):
2763         (WebCore::WorkerExceptionTask::WorkerExceptionTask):
2764         (WebCore::WorkerExceptionTask::performTask):
2765         (WebCore::WorkerMessagingProxy::postWorkerException):
2766         * dom/WorkerMessagingProxy.h:
2767         Ignore exceptions that happen in terminated workers.
2768
2769 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2770
2771         Reviewed by Alexey Proskuryakov.
2772
2773         Remove some unncessary includes.
2774
2775         * wml/WMLAccessElement.cpp:
2776         * wml/WMLDocument.h:
2777         * wml/WMLRefreshElement.cpp:
2778
2779 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
2780
2781         Rubber-stamped by Cameron Zwarich and Adam Roben.
2782
2783         Fix a typo: m_executionForbidded.
2784
2785         * bindings/js/WorkerScriptController.cpp:
2786         (WebCore::WorkerScriptController::WorkerScriptController):
2787         (WebCore::WorkerScriptController::evaluate):
2788         (WebCore::WorkerScriptController::forbidExecution):
2789         * bindings/js/WorkerScriptController.h:
2790
2791 2008-12-03  Dean McNamee  <deanm@chromium.org>
2792
2793         Bug 22623: Uninitialized memory access in cache parsing code
2794         <https://bugs.webkit.org/show_bug.cgi?id=22623>
2795
2796         Reviewed by David Kilzer.
2797
2798         Initialize m_haveParsedCacheControlHeader and m_haveParsedPragmaHeader.
2799
2800         * platform/network/ResourceResponseBase.h:
2801         (WebCore::ResourceResponseBase::ResourceResponseBase):
2802
2803 2008-12-03  Antti Koivisto  <antti@apple.com>
2804
2805         Probable build fix.
2806
2807         * WebCoreSources.bkl:
2808
2809 2008-12-03  Antti Koivisto  <antti@apple.com>
2810
2811         Forgot to commit these.
2812
2813         * dom/Node.cpp:
2814         (WebCore::forEachTagSelector):
2815         (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
2816         (WebCore::Node::querySelector):
2817         * dom/SelectorNodeList.cpp:
2818         (WebCore::createSelectorNodeList):
2819
2820 2008-12-03  Antti Koivisto  <antti@apple.com>
2821
2822         Reviewed by Dan Bernstein and Mark Rowe.
2823
2824         https://bugs.webkit.org/show_bug.cgi?id=22379
2825         Make CSSOM use less memory
2826
2827         Reduce size of the CSSSelector by 3/8 by moving rarely used fields to a rare data
2828         struct. Browsing around with some instrumentation showed that ~0.1% of all selectors
2829         encountered had rare data.
2830         
2831         This also eliminates the CSSNthSelector subclass which will make possible to store
2832         CSSSelectors in an array instead of a linked list for futher memory savings.
2833
2834         * css/CSSGrammar.y:
2835         * css/CSSNthSelector.cpp: Removed.
2836         * css/CSSNthSelector.h: Removed.
2837         * css/CSSParser.cpp:
2838         (WebCore::CSSParser::createFloatingSelector):
2839         * css/CSSParser.h:
2840         * css/CSSSelector.cpp:
2841         (WebCore::CSSSelector::specificity):
2842         (WebCore::CSSSelector::operator==):
2843         (WebCore::CSSSelector::selectorText):
2844         (WebCore::CSSSelector::setTagHistory):
2845         (WebCore::CSSSelector::attribute):
2846         (WebCore::CSSSelector::setAttribute):
2847         (WebCore::CSSSelector::setArgument):
2848         (WebCore::CSSSelector::setSimpleSelector):
2849         (WebCore::CSSSelector::parseNth):
2850         (WebCore::CSSSelector::matchNth):
2851         (WebCore::CSSSelector::RareData::parseNth):
2852         (WebCore::CSSSelector::RareData::matchNth):
2853         * css/CSSSelector.h:
2854         (WebCore::CSSSelector::CSSSelector):
2855         (WebCore::CSSSelector::~CSSSelector):
2856         (WebCore::CSSSelector::tagHistory):
2857         (WebCore::CSSSelector::hasAttribute):
2858         (WebCore::CSSSelector::argument):
2859         (WebCore::CSSSelector::simpleSelector):
2860         (WebCore::CSSSelector::RareData::RareData):
2861         (WebCore::CSSSelector::createRareData):
2862         (WebCore::CSSSelector::):
2863         * css/CSSStyleSelector.cpp:
2864         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
2865         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
2866
2867 2008-12-03  Jian Li  <jianli@chromium.org>
2868
2869         Reviewed by Alexey Proskuryakov.
2870
2871         Remove unneeded included file in WorkerThread.cpp.
2872         https://bugs.webkit.org/show_bug.cgi?id=22613
2873
2874         * dom/WorkerThread.cpp: No need to include JSWorkerContext.h.
2875
2876 2008-12-02  Alexey Proskuryakov  <ap@webkit.org>
2877
2878         Reviewed by Maciej Stachowiak.
2879
2880         https://bugs.webkit.org/show_bug.cgi?id=22543
2881         Consolidate ActiveDOMObject page cache interaction
2882
2883         Test: http/tests/xmlhttprequest/abort-on-leaving-page.html
2884
2885         * dom/ActiveDOMObject.cpp:
2886         (WebCore::ActiveDOMObject::canSuspend):
2887         (WebCore::ActiveDOMObject::suspend):
2888         (WebCore::ActiveDOMObject::resume):
2889         * dom/ActiveDOMObject.h:
2890         * dom/ScriptExecutionContext.cpp:
2891         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
2892         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
2893         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
2894         * dom/ScriptExecutionContext.h:
2895         Added methods for suspending and resuming active objects.
2896
2897         * dom/Worker.cpp:
2898         (WebCore::Worker::canSuspend):
2899         (WebCore::Worker::stop):
2900         * dom/Worker.h:
2901         Workers cannot be suspended yet. This is a change in behavior, as workers used to keep
2902         running until their owner was destroyed.
2903
2904         * loader/FrameLoader.cpp:
2905         (WebCore::FrameLoader::stopLoading): No longer call stopActiveDOMObjects() here, because
2906         their activity is not necessarily loading.
2907         (WebCore::FrameLoader::canCachePage): Can only cache if all active objects can be suspended.
2908         Previously, stopLoading() cancelled outstanding XMLHttpRequests, which made the page
2909         uncacheable due to no-null main document error.
2910         (WebCore::FrameLoader::commitProvisionalLoad): Suspend or stop active objects, depending on
2911         whether the document will be cached.
2912         (WebCore::FrameLoader::frameDetached): Stop active objects to let them clean up before their
2913         context is destroyed.
2914
2915         * xml/XMLHttpRequest.h: added canSuspend().
2916         * xml/XMLHttpRequest.cpp:
2917         (WebCore::XMLHttpRequest::canSuspend): Only XHRs that are not loading can be suspended.
2918         (WebCore::XMLHttpRequest::stop): Call abort() instead of internalAbort() to dispatch events
2919         for Firefox compatibility. This is a change in behavior that helps test that requests do
2920         get aborted.
2921         (WebCore::XMLHttpRequest::contextDestroyed): The request must have been stopped by now, so
2922         assert that.
2923
2924 2008-12-02  Chris Fleizach  <cfleizach@apple.com>
2925
2926         Reviewed by Beth Dakin.
2927
2928         Bug 22606: Can <th> serves as the AXTitleUIElement for <td>?
2929
2930         Test: accessibility/th-as-title-ui.html
2931
2932         * page/AccessibilityObject.h:
2933         (WebCore::AccessibilityObject::isGroup):
2934         * page/AccessibilityRenderObject.cpp:
2935         (WebCore::AccessibilityRenderObject::isGroup):
2936         * page/AccessibilityRenderObject.h:
2937         * page/AccessibilityTableCell.cpp:
2938         (WebCore::AccessibilityTableCell::rowIndexRange):
2939         (WebCore::AccessibilityTableCell::columnIndexRange):
2940         (WebCore::AccessibilityTableCell::titleUIElement):
2941         * page/AccessibilityTableCell.h:
2942         * page/mac/AccessibilityObjectWrapper.mm:
2943         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
2944
2945 2008-12-02  Simon Fraser  <simon.fraser@apple.com>
2946
2947         Reviewed by Dave Hyatt
2948
2949         https://bugs.webkit.org/show_bug.cgi?id=22472
2950         
2951         Override absoluteClippedOverflowRect() in RenderReplaced to return a rect
2952         that is large enough to encompass the selection, so that the repainting of
2953         selected replaced elements works correctly.
2954         
2955         Test: fast/repaint/selected-replaced.html
2956
2957         * rendering/RenderReplaced.cpp:
2958         (WebCore::RenderReplaced::selectionRect):
2959         (WebCore::RenderReplaced::localSelectionRect):
2960         (WebCore::RenderReplaced::absoluteClippedOverflowRect):
2961         * rendering/RenderReplaced.h:
2962
2963 2008-12-02  Gregory Hughes  <ghughes@apple.com>
2964
2965         Reviewed by Beth Dakin.
2966
2967         Bug 22513: ZOOM: text selection does not send correct zoom bounds
2968
2969         When zoomed, text selection must send the zoom bounds in flipped
2970         screen coordinates.
2971
2972         * editing/mac/SelectionControllerMac.mm:
2973         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
2974         * page/mac/WebCoreViewFactory.h:
2975
2976 2008-12-02  Dean Jackson  <dino@apple.com>
2977
2978         Reviewed by Sam Weinig.
2979
2980         Remove support for 'now' from CSS (was
2981         erroneously added to transition and animation delay)
2982         https://bugs.webkit.org/show_bug.cgi?id=22571
2983
2984         * css/CSSParser.cpp:
2985         (WebCore::CSSParser::parseAnimationDelay):
2986         * css/CSSStyleSelector.cpp:
2987         (WebCore::CSSStyleSelector::mapAnimationDelay):
2988         * css/CSSValueKeywords.in:
2989
2990 2008-12-02  Eric Seidel  <eric@webkit.org>
2991
2992         Build fix, no review.
2993
2994         Fix the Mac and gtk builds:
2995         Don't use a float to hold a double.
2996         Remove a now duplicate symbol.
2997
2998         * page/Frame.cpp:
2999         (WebCore::Frame::selectionLayoutChanged):
3000         * platform/gtk/TemporaryLinkStubs.cpp:
3001
3002 2008-12-02  Chris Fleizach  <cfleizach@apple.com>
3003
3004         Bug 22596: Some elements don't report AXBlockQuoteLevel
3005         https://bugs.webkit.org/show_bug.cgi?id=22596
3006  
3007         Reviewed by John Sullivan.
3008
3009         * page/mac/AccessibilityObjectWrapper.mm:
3010         (blockquoteLevel):
3011         (AXAttributeStringSetBlockquoteLevel):
3012         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
3013         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
3014
3015 2008-12-02  Dean McNamee  <deanm@chromium.org>
3016
3017         Reviewed by Eric Seidel.
3018
3019         Correctly handle a theme returning a non-blinking interval.  We should
3020         not set any timers when the interval is 0 (non-blinking), otherwise we
3021         repeatedly set and destroy a blinking timer, causing a paint and timer
3022         storm.  This is applicable to GTK and Windows, where a user can set a
3023         non-blinking caret in their system preferences.
3024
3025         Renamed caretBlinkFrequency to the more accurate caretBlinkInterval.
3026
3027         * page/Frame.cpp:
3028         (WebCore::Frame::selectionLayoutChanged):
3029         * platform/Theme.h:
3030         (WebCore::Theme::caretBlinkInterval):
3031         * platform/gtk/RenderThemeGtk.cpp:
3032         (WebCore::RenderThemeGtk::caretBlinkInterval):
3033         * platform/gtk/RenderThemeGtk.h:
3034         * rendering/RenderTheme.h:
3035         (WebCore::RenderTheme::caretBlinkInterval):
3036
3037 2008-12-02  David Levin  <levin@chromium.org>
3038
3039         Reviewed by Eric Seidel.
3040
3041         https://bugs.webkit.org/show_bug.cgi?id=22538
3042         
3043         startsWith uses find which searches through the whole string if no match is found.
3044         Using reverseFind with an index of 0 has the benefit of only searching for the match
3045         at the beginning of the string.  This may only be a small benefit in the overall program,
3046         but it may help in some cases when the string is big.
3047
3048         No observable change in behavior, so no test.
3049  
3050         * platform/text/StringImpl.h:
3051         (WebCore::StringImpl::startsWith):
3052
3053 2008-10-29  Eric Seidel  <eric@webkit.org>
3054
3055         Reviewed by Darin Adler.
3056
3057         Wrap a JSC-only hack in a USE(JSC) block to fix the v8 build.
3058         https://bugs.webkit.org/show_bug.cgi?id=21951
3059
3060         * svg/SVGElementInstance.cpp:
3061         (WebCore::SVGElementInstance::forgetWrapper):
3062
3063 2008-12-02  Eric Seidel  <eric@webkit.org>
3064
3065         Reviewed by Darin Adler.
3066
3067         Add an ASSERT to try and catch the root cause of:
3068         https://bugs.webkit.org/show_bug.cgi?id=22168
3069         http://code.google.com/p/chromium/issues/detail?id=4122
3070
3071         * editing/TextIterator.cpp:
3072         (WebCore::TextIterator::emitText):
3073
3074 2008-12-02  Brent Fulgham  <bfulgham@gmail.com>
3075
3076         Reviewed by Adam Roben.
3077
3078         Remove some CG-specific code from the Windows Cairo build.
3079         https://bugs.webkit.org/show_bug.cgi?id=22586
3080
3081         No new test cases since this update should create no user-visible
3082         changes, and should be fully covered by the existing regression
3083         tests.
3084
3085         * WebCore.vcproj/WebCore.vcproj: Remove FontDatabase from
3086         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3087         (WebCore::focusRingColor): Add stub method
3088         * platform/win/TemporaryLinkStubs.cpp:
3089         (WebCore::populateFontDatabase): Add stub method.
3090
3091 2008-12-01 Laszlo Gombos <laszlo.1.gombos@nokia.com>
3092
3093         Reviewed by Tor Arne Vestbø.
3094
3095         MinGW compilation fix for PluginPackageWin.cpp
3096
3097         https://bugs.webkit.org/show_bug.cgi?id=22585
3098
3099         * plugins/win/PluginPackageWin.cpp:
3100         (WebCore::PluginPackage::fetchInfo):
3101
3102 2008-12-02  Adam Roben  <aroben@apple.com>
3103
3104         Build fix for Windows projects with NOMINMAX defined globally
3105
3106         * platform/win/COMPtr.h: Don't redefine NOMINMAX if it's already
3107         defined.
3108
3109 2008-12-02  Simon Hausmann  <hausmann@webkit.org>
3110
3111         Reviewed by Tor Arne Vestbø.
3112
3113         Build JavaScriptCore into libQtWebKit.so through a direct build
3114         instead of a static library. When linking a static library into
3115         a shared library qmake generates an incorrect .prl file, which
3116         causes all sorts of different build problems when linking against
3117         QtWebKit. Fixing this in qmake requires bigger changes that are
3118         currently not possible, so we need to work around this limitation
3119         for now. The advantages of the separate build did not outweight the
3120         build problems it caused.
3121
3122         * WebCore.pro: include JavaScriptCore.pri, re-enable prl support
3123         and rename the lut generator to domlut to avoid a conflict with
3124         JavaScriptCore.pri's lut generator.
3125
3126 2008-12-02  David Levin  <levin@chromium.org>
3127
3128         Reviewed by Alexey Proskuryakov.
3129
3130         https://bugs.webkit.org/show_bug.cgi?id=22588
3131         Move securityOrigin() from Document and WorkerContext into ScriptExecutionContext.
3132
3133         No observable change in behavior, so no test.
3134         
3135         * dom/Document.cpp:
3136         (WebCore::Document::open):
3137         (WebCore::Document::domain):
3138         (WebCore::Document::setDomain):
3139         (WebCore::Document::initSecurityContext):
3140         (WebCore::Document::setSecurityOrigin):
3141         * dom/Document.h:
3142         * dom/ScriptExecutionContext.cpp:
3143         (WebCore::ScriptExecutionContext::setSecurityOrigin):
3144         * dom/ScriptExecutionContext.h:
3145         (WebCore::ScriptExecutionContext::securityOrigin):
3146         * dom/WorkerContext.cpp:
3147         (WebCore::WorkerContext::WorkerContext):
3148         * dom/WorkerContext.h:
3149         These changes are for the move of securityOrigin().
3150         
3151         * xml/XMLHttpRequest.cpp:
3152         (WebCore::XMLHttpRequest::createRequest):
3153         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
3154         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
3155         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
3156         (WebCore::XMLHttpRequest::setRequestHeader):
3157         (WebCore::XMLHttpRequest::getAllResponseHeaders):
3158         (WebCore::XMLHttpRequest::getResponseHeader):
3159         (WebCore::XMLHttpRequest::processSyncLoadResults):
3160         (WebCore::XMLHttpRequest::willSendRequest):
3161         (WebCore::XMLHttpRequest::accessControlCheck):
3162         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
3163         Change XMLHttpRequest to use ScriptExecutionContext instead of Document to access securityOrigin().
3164
3165 2008-12-02  André Pönitz  <apoenitz@trolltech.com>
3166
3167         Reviewed by Simon Hausmann.
3168
3169         Disable the creation of debug information for the Qt build when done
3170         inside Qt. With 670 mb it was slowing down gdb start significantly
3171         for third-party applications that usually don't need it.
3172
3173         * WebCore.pro:
3174
3175 2008-12-01  Beth Dakin  <bdakin@apple.com>
3176
3177         Reviewed by Dan Bernstein.
3178
3179         Fix for https://bugs.webkit.org/show_bug.cgi?id=13736 REGRESSION 
3180         (r19811): Using the down arrow in a textarea gets "stuck" at the 
3181         end of a wrapped line
3182         And corresponding: <rdar://problem/5347931>
3183
3184         The basic problem here is that Position::getInlineBoxAndOffset() 
3185         failed to look beyond a single renderer. This patch looks for a 
3186         better match beyond the first renderer when the affinity is 
3187         downstream and we failed to find a "perfect" match. 
3188         * dom/Position.cpp:
3189         (WebCore::isNonTextLeafChild):
3190         (WebCore::searchAheadForBetterMatch):
3191         (WebCore::Position::getInlineBoxAndOffset):
3192
3193         This is a fix I made based on code inspection. It looks like the 
3194         old code here and skipped over the parent as a possible match. 
3195         * rendering/RenderObject.cpp:
3196         (WebCore::RenderObject::nextInPreOrderAfterChildren):
3197
3198 2008-12-01  Brent Fulgham  <bfulgham@gmail.com>
3199
3200         Reviewed by Adam Roben.
3201
3202         Add WML related files to Visual Studio projects.
3203         https://bugs.webkit.org/show_bug.cgi?id=22561
3204
3205         * WebCore.vcproj/WebCore.vcproj:
3206           1. Add files from the wml directory to the set of windows files.
3207           2. Extend include paths with new wml directory. 
3208           3. Add new autogenerated WML files to DerivedSources.
3209           4. Alphabetize preprocesor includes (holdover from earlier debugging).
3210
3211 2008-12-01  Steve Falkenburg  <sfalken@apple.com>
3212
3213         Revise node/selection image fix.
3214         Moved updateLayout call so selection rect is fetched after the layout.
3215         
3216         Reviewed by Adam Roben.
3217
3218         * page/win/FrameCGWin.cpp:
3219         (WebCore::imageFromRect):
3220         (WebCore::imageFromSelection):
3221         (WebCore::Frame::nodeImage):
3222
3223 2008-12-01  Steve Falkenburg  <sfalken@apple.com>
3224
3225         Support needed to implement renderedImage for Windows.
3226         https://bugs.webkit.org/show_bug.cgi?25648
3227
3228         Reviewed by Adam Roben.
3229
3230         * page/Frame.h:
3231         * page/win/FrameCGWin.cpp:
3232         (WebCore::imageFromRect):
3233         (WebCore::imageFromSelection):
3234         (WebCore::Frame::nodeImage):
3235         * page/win/FrameCairoWin.cpp:
3236         (WebCore::imageFromNode):
3237
3238 2008-12-01  Simon Fraser  <simon.fraser@apple.com>
3239
3240         Reviewed by Dan Bernstein
3241
3242         https://bugs.webkit.org/show_bug.cgi?id=22581
3243         
3244         Fix the painting of the caps lock indicator for transformed text inputs,
3245         by replacing a call to absoluteContentBox() with code that computes the
3246         painting rect for the input contents.
3247
3248         * rendering/RenderTextControl.cpp:
3249         (WebCore::RenderTextControl::paint):
3250
3251 2008-12-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3252
3253         Reviewed by George Staikos.
3254
3255         Add two new helper functions to WMLElement, parseValueSubstitutingVariableReferences/parseValueForbiddingVariableReferences.
3256
3257         Convert all elements to parse their attribute values using these new helper functions. This simplifies the
3258         actual attribute parsing code in all WMLElement derived classes, as most WML attribute values either report
3259         an error if there's a variable reference used in the attribute value, or if it's invalid.
3260
3261         Split the WMLErrorInvalidVariableReference error which covered both 'invalid syntax' / 'wrong location'
3262         in two seperated error codes: WMLErrorInvalidVariableReference / WMLErrorInvalidVariableReferenceLocation.
3263
3264         * wml/WMLAccessElement.cpp:
3265         (WebCore::WMLAccessElement::parseMappedAttribute):
3266         * wml/WMLDoElement.cpp:
3267         (WebCore::WMLDoElement::defaultEventHandler):
3268         (WebCore::WMLDoElement::parseMappedAttribute):
3269         * wml/WMLElement.cpp:
3270         (WebCore::WMLElement::parseValueSubstitutingVariableReferences):
3271         (WebCore::WMLElement::parseValueForbiddingVariableReferences):
3272         * wml/WMLElement.h:
3273         * wml/WMLErrorHandling.cpp:
3274         (WebCore::reportWMLError):
3275         * wml/WMLErrorHandling.h:
3276         (WebCore::):
3277         * wml/WMLOnEventElement.cpp:
3278         (WebCore::WMLOnEventElement::parseMappedAttribute):
3279         * wml/WMLPrevElement.cpp:
3280         (WebCore::WMLPrevElement::executeTask):
3281         * wml/WMLSetvarElement.cpp:
3282         (WebCore::WMLSetvarElement::parseMappedAttribute):
3283         * wml/WMLTimerElement.cpp:
3284         (WebCore::WMLTimerElement::parseMappedAttribute):
3285
3286 2008-12-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3287
3288         Reviewed by George Staikos.
3289
3290         Fix switching active cards within a document. No way to test, until <go> support is implemented.
3291
3292         * wml/WMLCardElement.cpp:
3293         (WebCore::WMLCardElement::showCard):
3294         (WebCore::WMLCardElement::hideCard):
3295         (WebCore::WMLCardElement::setActiveCardInDocument):
3296         * wml/WMLCardElement.h:
3297
3298 2008-12-01  David Kilzer  <ddkilzer@apple.com>
3299
3300         Fix logic error in LegacyWebArchive::create() from r38884.
3301
3302         * loader/archive/cf/LegacyWebArchive.cpp:
3303         (WebCore::LegacyWebArchive::create): Only continue if the
3304         subresource is actually added.
3305
3306 2008-12-01  David Kilzer  <ddkilzer@apple.com>
3307
3308         Bug 22466: REGRESSION (35867): Many resources missing when saving webarchive of webkit.org
3309
3310         <https://bugs.webkit.org/show_bug.cgi?id=22466>
3311         <rdar://problem/6403593>
3312
3313         Reviewed by Brady Eidson.
3314
3315         Test: http/tests/webarchive/test-preload-resources.html
3316
3317         * loader/archive/cf/LegacyWebArchive.cpp:
3318         (WebCore::LegacyWebArchive::create): Check the WebCore cache for
3319         resources if DocumentLoader::subresource() doesn't return them.
3320         Note that the DocumentLoader::subresource() method returned
3321         preloaded resources before r35867, but this caused a regression in
3322         Mail.
3323
3324 2008-12-01  Julien Chaffraix  <jchaffraix@webkit.org>
3325
3326         Reviewed by Eric Seidel.
3327
3328         Bug 22564: Make HTML elements' constructors take a QualifiedName
3329         https://bugs.webkit.org/show_bug.cgi?id=22564
3330
3331         - Modified the remaining HTML elements' constructors to take a QualifiedName.
3332
3333         - Added an assertion that the QualifiedName given corresponds to the element constructed.
3334
3335         * bindings/js/JSAudioConstructor.cpp:
3336         (WebCore::constructAudio):
3337         * html/HTMLAudioElement.cpp:
3338         (WebCore::HTMLAudioElement::HTMLAudioElement):
3339         * html/HTMLAudioElement.h:
3340         * html/HTMLBRElement.cpp:
3341         (WebCore::HTMLBRElement::HTMLBRElement):
3342         * html/HTMLBRElement.h:
3343         * html/HTMLElement.cpp:
3344         (WebCore::HTMLElement::setInnerText):
3345         * html/HTMLElementFactory.cpp:
3346         (WebCore::brConstructor):
3347         (WebCore::quoteConstructor):
3348         (WebCore::marqueeConstructor):
3349         (WebCore::audioConstructor):
3350         (WebCore::videoConstructor):
3351         (WebCore::sourceConstructor):
3352         * html/HTMLMarqueeElement.cpp:
3353         (WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
3354         * html/HTMLMarqueeElement.h:
3355         * html/HTMLQuoteElement.cpp:
3356         (WebCore::HTMLQuoteElement::HTMLQuoteElement):
3357         * html/HTMLQuoteElement.h:
3358         * html/HTMLSourceElement.cpp:
3359         (WebCore::HTMLSourceElement::HTMLSourceElement):
3360         * html/HTMLSourceElement.h:
3361         * html/HTMLVideoElement.cpp:
3362         (WebCore::HTMLVideoElement::HTMLVideoElement):
3363         * html/HTMLVideoElement.h:
3364         * rendering/RenderTextControl.cpp:
3365         (WebCore::RenderTextControl::updateFromElement):
3366
3367 2008-12-01  Julien Chaffraix  <jchaffraix@webkit.org>
3368
3369         Reviewed by Antti Koivisto.
3370
3371         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
3372         https://bugs.webkit.org/show_bug.cgi?id=22441
3373
3374         Add an assertion to the modified HTML elements' constructor
3375         to check that the QualifiedName parameter is the one that
3376         matches the Element's.
3377
3378         * html/HTMLBaseElement.cpp:
3379         (WebCore::HTMLBaseElement::HTMLBaseElement):
3380         * html/HTMLBlockquoteElement.cpp:
3381         (WebCore::HTMLBlockquoteElement::HTMLBlockquoteElement):
3382         * html/HTMLBodyElement.cpp:
3383         (WebCore::HTMLBodyElement::HTMLBodyElement):
3384         * html/HTMLButtonElement.cpp:
3385         (WebCore::HTMLButtonElement::HTMLButtonElement):
3386         * html/HTMLDListElement.cpp:
3387         (WebCore::HTMLDListElement::HTMLDListElement):
3388         * html/HTMLDirectoryElement.cpp:
3389         (WebCore::HTMLDirectoryElement::HTMLDirectoryElement):
3390         * html/HTMLDivElement.cpp:
3391         (WebCore::HTMLDivElement::HTMLDivElement):
3392         * html/HTMLFieldSetElement.cpp:
3393         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
3394         * html/HTMLFormElement.cpp:
3395         (WebCore::HTMLFormElement::HTMLFormElement):
3396         * html/HTMLFrameElement.cpp:
3397         (WebCore::HTMLFrameElement::HTMLFrameElement):
3398         * html/HTMLFrameSetElement.cpp:
3399         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
3400         * html/HTMLHeadElement.cpp:
3401         (WebCore::HTMLHeadElement::HTMLHeadElement):
3402         * html/HTMLHtmlElement.cpp:
3403         (WebCore::HTMLHtmlElement::HTMLHtmlElement):
3404         * html/HTMLIFrameElement.cpp:
3405         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
3406         * html/HTMLInputElement.cpp:
3407         (WebCore::HTMLInputElement::HTMLInputElement):
3408         * html/HTMLIsIndexElement.cpp:
3409         (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
3410         * html/HTMLKeygenElement.cpp:
3411         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
3412         * html/HTMLLIElement.cpp:
3413         (WebCore::HTMLLIElement::HTMLLIElement):
3414         * html/HTMLLabelElement.cpp:
3415         (WebCore::HTMLLabelElement::HTMLLabelElement):
3416         * html/HTMLLegendElement.cpp:
3417         (WebCore::HTMLLegendElement::HTMLLegendElement):
3418         * html/HTMLLinkElement.cpp:
3419         (WebCore::HTMLLinkElement::HTMLLinkElement):
3420         * html/HTMLMenuElement.cpp:
3421         (WebCore::HTMLMenuElement::HTMLMenuElement):
3422         * html/HTMLMetaElement.cpp:
3423         (WebCore::HTMLMetaElement::HTMLMetaElement):
3424         * html/HTMLOListElement.cpp:
3425         (WebCore::HTMLOListElement::HTMLOListElement):
3426         * html/HTMLOptGroupElement.cpp:
3427         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
3428         * html/HTMLOptionElement.cpp:
3429         (WebCore::HTMLOptionElement::HTMLOptionElement):
3430         * html/HTMLSelectElement.cpp:
3431         (WebCore::HTMLSelectElement::HTMLSelectElement):
3432         * html/HTMLStyleElement.cpp:
3433         (WebCore::HTMLStyleElement::HTMLStyleElement):
3434         * html/HTMLTextAreaElement.cpp:
3435         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
3436         * html/HTMLTitleElement.cpp:
3437         (WebCore::HTMLTitleElement::HTMLTitleElement):
3438         * html/HTMLUListElement.cpp:
3439         (WebCore::HTMLUListElement::HTMLUListElement):
3440
3441 2008-12-01  Chris Marrin  <cmarrin@apple.com>
3442
3443         Reviewed by Darin Adler.
3444
3445         https://bugs.webkit.org/show_bug.cgi?id=22046
3446
3447         Fixed another case of crashing because the animation object is getting deleted when
3448         it's in the middle of a callback. I actually moved where I am retaining the pointer
3449         up out of the lower level AnimationBase code and into the timer callback that calls
3450         them. So now the pointer is valid throughout the entire sequence of callback code.
3451
3452         The testcase for https://bugs.webkit.org/show_bug.cgi?id=22052 also exhibits a
3453         crash which this patch fixes. 
3454
3455         * page/animation/AnimationBase.cpp:
3456         (WebCore::AnimationBase::updateStateMachine):
3457         (WebCore::AnimationBase::animationTimerCallbackFired):
3458         * page/animation/CompositeAnimation.cpp:
3459         (WebCore::CompositeAnimationPrivate::setAnimationStartTime):
3460         (WebCore::CompositeAnimationPrivate::setTransitionStartTime):
3461         (WebCore::CompositeAnimationPrivate::styleAvailable):
3462         * page/animation/ImplicitAnimation.cpp:
3463         (WebCore::ImplicitAnimation::sendTransitionEvent):
3464         * page/animation/KeyframeAnimation.cpp:
3465         (WebCore::KeyframeAnimation::sendAnimationEvent):
3466         (WebCore::KeyframeAnimation::resumeOverriddenAnimations):
3467
3468 2008-12-01  Tor Arne Vestbø  <tavestbo@trolltech.com>
3469
3470         Reviewed by Simon Hausmann.
3471
3472         [Qt/Mac] Initialize NPAPI plugins before getting their entry points
3473
3474         The old behavior (calling NP_GetEntryPoints before NP_Initialize) was
3475         copied from Windows, but caused Silverlight on Mac to crash when loaded.
3476
3477         Apparently the call order of NP_Initialize and NP_GetEntryPoints is
3478         reversed on Mac. See https://bugzilla.mozilla.org/show_bug.cgi?id=344425
3479
3480         Reported-by: Peter Johnson <peter@zattoo.com>
3481
3482         * plugins/mac/PluginPackageMac.cpp:
3483         (WebCore::PluginPackage::load):
3484
3485 2008-11-30  Chris Fleizach  <cfleizach@apple.com>
3486
3487         Reviewed by John Sullivan.
3488
3489         https://bugs.webkit.org/show_bug.cgi?id=22510
3490         Crash at WebCore::AccessibilityRenderObject::activeDescendant() on Google Reader with ARIA (22510)
3491
3492         A nil pointer needed to be checked
3493
3494         * page/AccessibilityRenderObject.cpp:
3495         (WebCore::AccessibilityRenderObject::activeDescendant):
3496
3497 2008-11-30  Alexey Proskuryakov  <ap@webkit.org>
3498
3499         Reviewed by Dan Bernstein.
3500
3501         https://bugs.webkit.org/show_bug.cgi?id=22530
3502         Assertion failures seen on buildbot due to uninitialized WorkerThread::m_threadID
3503
3504         * dom/WorkerThread.cpp:
3505         (WebCore::WorkerThread::start): Protect worker startup with a mutex to ensure that this
3506         function runs to completion before the thread begins execution.
3507         (WebCore::WorkerThread::workerThread): Updated comments.
3508         (WebCore::WorkerThread::stop): Ditto.
3509         * dom/WorkerThread.h: Renamed m_workerContextMutex to m_threadCreationMutex, because it now
3510         protects startup as a whole.
3511
3512         * storage/DatabaseThread.cpp:
3513         * storage/DatabaseThread.h:
3514         * storage/LocalStorageThread.cpp:
3515         * storage/LocalStorageThread.h:
3516         Fixed the same m_threadID problem.
3517
3518 2008-11-29  Brent Fulgham  <bfulgham@gmail.com>
3519
3520         Reviewed by Alexey Proskuryakov.
3521
3522         Remove Visual Studio project dependencies on non-redistributable
3523         components in the Debug_Cairo and Release_Cairo build targets.
3524         See https://bugs.webkit.org/show_bug.cgi?id=22527
3525
3526         * WebCore.vcproj/WebCore.vcproj:
3527
3528 2008-11-29  Sam Weinig  <sam@webkit.org>
3529
3530         Rubber-stamped by Alexey Proskuryakov.
3531
3532         Fix some sorting
3533
3534         * WebCore.xcodeproj/project.pbxproj:
3535
3536 2008-11-28  Sam Weinig  <sam@webkit.org>
3537
3538         Reviewed by Alexey Proskuryakov.
3539
3540         Fix for https://bugs.webkit.org/show_bug.cgi?id=21063
3541         NULL pointer crash in dispatchEvent(null);
3542
3543         Test: fast/events/dispatchEvent-crash.html
3544
3545         * dom/MessagePort.cpp:
3546         (WebCore::MessagePort::dispatchEvent):
3547         * dom/Worker.cpp:
3548         (WebCore::Worker::dispatchEvent):
3549         * dom/WorkerContext.cpp:
3550         (WebCore::WorkerContext::dispatchEvent):
3551         * loader/appcache/DOMApplicationCache.cpp:
3552         (WebCore::DOMApplicationCache::dispatchEvent):
3553         * xml/XMLHttpRequest.cpp:
3554         (WebCore::XMLHttpRequest::dispatchEvent):
3555         * xml/XMLHttpRequestUpload.cpp:
3556         (WebCore::XMLHttpRequestUpload::dispatchEvent):
3557
3558 2008-11-29  Dan Bernstein  <mitz@apple.com>
3559
3560         Reviewed by Alexey Proskuryakov.
3561
3562         - fix https://bugs.webkit.org/show_bug.cgi?id=22454
3563           <rdar://problem/6405550> REGRESSION (3.2-TOT): Crash below FontFallbackList::fontDataAt on jacobian.org
3564
3565         Test: http/tests/misc/font-face-in-multiple-segmented-faces.html
3566
3567         The crash happened because style recalculation was invoked by
3568         CSSFontSelector after one CSSSegmentedFontFace had pruned its tables but
3569         before another CSSSegmentedFontFace using the same CSSFontFace had done
3570         so. The fix is to let all CSSSegmentedFontFaces using the CSSFontFace
3571         prune their tables before telling the CSSFontSelector to recalc style.
3572
3573         * css/CSSFontFace.cpp:
3574         (WebCore::CSSFontFace::fontLoaded):
3575         * css/CSSFontSelector.cpp:
3576         (WebCore::CSSFontSelector::fontLoaded):
3577         * css/CSSFontSelector.h:
3578         * css/CSSSegmentedFontFace.cpp:
3579         (WebCore::CSSSegmentedFontFace::fontLoaded):
3580
3581 2008-11-29  Alexey Proskuryakov  <ap@webkit.org>
3582
3583         Reviewed by Eric Seidel.
3584
3585         https://bugs.webkit.org/show_bug.cgi?id=14968
3586         document.open() erroneously returns void instead of the new Document
3587
3588         Test: fast/dom/HTMLDocument/document-open-return-value.html
3589
3590         * bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::open):
3591         Return the document on which this method was invoked, per HTML5.
3592
3593 2008-11-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3594
3595         Reviewed by Cameron Zwarich.
3596
3597         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22550
3598
3599         Add <timer> element support. It provides a way to execute a task with a delay.
3600         The user is notified by firing the task associated with the <card>'s ontimer attribute.
3601         Only one timer element is allowed per <card> (fix wrong error