3a7199b42f7630b29be3901e2ef63efb4ba297da
[WebKit-https.git] / WebCore / ChangeLog
1 2008-01-06  Alexey Proskuryakov  <ap@webkit.org>
2
3         Reviewed by Darin.
4
5         http://bugs.webkit.org/show_bug.cgi?id=16731
6         Incorrect node type for whitespace when setting innerHTML in an XHTML document
7
8         Test: fast/dom/xhtml-fragment-whitespace.xhtml
9
10         * dom/XMLTokenizer.cpp: (WebCore::parseXMLDocumentFragment):
11         Use balancedCharactersHandler for ignorable whitespace.
12
13 2008-01-06  Alexey Proskuryakov  <ap@webkit.org>
14
15         Reviewed by Darin.
16
17         http://bugs.webkit.org/show_bug.cgi?id=16701
18         <rdar://problem/5666580> REGRESSION: URL-encoded space (%20) in livejournal url
19         causes page load error
20
21         Test: http/tests/misc/location-with-space.php
22
23         * platform/network/cf/ResourceRequestCFNet.cpp:
24         (WebCore::ResourceRequest::doUpdatePlatformRequest): Do update its URL, too.
25
26 2008-01-06  Andrew Wellington  <proton@wiretapped.net>
27
28         Reviewed by Darin.
29         
30         DOMRange.cloneContents does not work (Acid3 bug)
31         http://bugs.webkit.org/show_bug.cgi?id=16748
32         
33         When cloning an empty range, return an empty DocmentFragment instead of
34         null or undefined.
35
36         Test: fast/dom/Range/range-clone-empty.html
37
38         * dom/Range.cpp:
39         (WebCore::Range::processContents):
40
41 2008-01-06  Luca Bruno  <lethalman88@gmail.com>
42
43         Reviewed by Alp Toker.
44
45         Remove curl handles immediately if the timer is not running.
46
47         * platform/network/curl/ResourceHandleManager.cpp:
48         (WebCore::ResourceHandleManager::cancel):
49
50 2008-01-06  Alp Toker  <alp@atoker.com>
51
52         Reviewed by Eric.
53
54         Cairo canvas refcounting fix. Reference the surface in the constructor
55         to match its destruction in the destructor.
56
57         Fixes a crash triggered by leaving this page:
58           http://philip.html5.org/tests/canvas/misc/globalalpha-pattern.html
59
60         * html/CanvasPattern.cpp:
61         (WebCore::CanvasPattern::CanvasPattern):
62
63 2008-01-06  Eric Seidel  <eric@webkit.org>
64
65         Reviewed by Sam.
66
67         Fix :checked matching type='text' and add test case
68         http://bugs.webkit.org/show_bug.cgi?id=16750
69
70         Test: fast/dom/HTMLInputElement/checked-pseudo-selector.html
71
72         * html/HTMLInputElement.h: isChecked() can only be true for RADIO or CHECKBOX
73
74 2008-01-05  Sam Weinig  <sam@webkit.org>
75
76         Reviewed by Eric Seidel.
77
78         Patch for http://bugs.webkit.org/show_bug.cgi?id=16758
79         ASSERT when using TreeWalker methods for a current node outside of the root (Acid3)
80
81         - Ensure that returned nodes are within the root node, or return 0, in adherence with the spec.
82
83         Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
84
85         * dom/TreeWalker.cpp:
86         (WebCore::TreeWalker::parentNode):
87         (WebCore::TreeWalker::firstChild):
88         (WebCore::TreeWalker::lastChild):
89         (WebCore::TreeWalker::previousSibling):
90         (WebCore::TreeWalker::nextSibling):
91         (WebCore::TreeWalker::previousNode):
92         (WebCore::TreeWalker::nextNode):
93
94 2008-01-04  Oliver Hunt  <oliver@apple.com>
95
96         Reviewed by Beth Dakin.
97
98         Fix bounds computation bugs responsible for http://bugs.webkit.org/show_bug.cgi?id=16015
99         and other image repaint bugs.
100
101         We now cache the full local bounds for the <image> element, as otherwise certain
102         combinations of attribute changes could result in incorrect dirty rects.
103         Additionally we no longer use any of the integer bounds fields on RenderObject for
104         determining repaint bounds (this was the principle cause of bug #16015).
105
106         I also removed the outline painting code as it was both wrong, and not correctly
107         repainted.  I feel safe doing this as no other browser or viewer supports outline
108         properties on svg elements.
109
110         I was unable to make a testcase for this unfortunately, despite seemingly deterministic 
111         behaviour :(
112
113         * rendering/RenderSVGImage.cpp:
114         (WebCore::RenderSVGImage::layout):
115         (WebCore::RenderSVGImage::paint):
116         (WebCore::RenderSVGImage::nodeAtPoint):
117         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
118         * rendering/RenderSVGImage.h:
119
120 2008-01-04  Beth Dakin  <bdakin@apple.com>
121
122         Reviewed by Oliver.
123
124         Fix for http://bugs.webkit.org/show_bug.cgi?id=16704 input with 
125         type="hidden" matches :enabled/:disabled (Acid3 bug)
126
127         Prevent :enabled and :disabled from applying to input type="hidden" 
128
129         * css/CSSStyleSelector.cpp:
130         (WebCore::CSSStyleSelector::checkOneSelector): Rather than 
131         allowing :enabled and :disabled to apply to all controls, only 
132         allow it to apply to non-"hidden" controls
133         * dom/Element.h:
134         (WebCore::Element::isInputTypeHidden): 
135         * html/HTMLInputElement.h:
136         (WebCore::HTMLInputElement::isInputTypeHidden):
137
138 2008-01-04  Sam Weinig  <sam@webkit.org>
139
140         Reviewed by Oliver Hunt.
141
142         - Match the spec when calling getFloatValue, getStringValue, getCounterValue,
143           getRectValue and getRGBColorValue of CSSPrimitiveValue by throwing exceptions
144           if the type of the CSSPrimitiveValue is not the same as the type requested.
145         - Fix the intermittent assertion failure seen in svg/css/glyph-orientation-rounding-test.xhtml
146
147         Test: fast/css/CSSPrimitiveValue-exceptions.html
148
149         * css/CSSPrimitiveValue.cpp:
150         (WebCore::CSSPrimitiveValue::getDoubleValue):
151         (WebCore::CSSPrimitiveValue::getStringValue):
152         (WebCore::CSSPrimitiveValue::getCounterValue):
153         (WebCore::CSSPrimitiveValue::getRectValue):
154         (WebCore::CSSPrimitiveValue::getRGBColorValue):
155         (WebCore::CSSPrimitiveValue::getPairValue):
156         * css/CSSPrimitiveValue.h:
157         (WebCore::CSSPrimitiveValue::getFloatValue):
158         (WebCore::CSSPrimitiveValue::getIntValue):
159         (WebCore::CSSPrimitiveValue::getCounterValue):
160         (WebCore::CSSPrimitiveValue::getRectValue):
161         (WebCore::CSSPrimitiveValue::getDashboardRegionValue):
162         * css/CSSPrimitiveValue.idl:
163
164 2008-01-04  Antti Koivisto  <antti@apple.com>
165
166         Reviewed by Darin.
167         
168         Windows part of <rdar://problem/5647034>
169         Media tests crash if an old version of QuickTime is installed
170
171         Check QuickTime version on Windows too.
172
173         * platform/graphics/MediaPlayer.cpp:
174         (WebCore::MediaPlayer::isAvailable):
175         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
176         (WebCore::MediaPlayerPrivate::isAvailable):
177         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
178         (WebCore::MediaPlayerPrivate::isAvailable):
179         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
180         * platform/graphics/win/QTMovieWin.cpp:
181         (QTMovieWin::initializeQuickTime):
182
183 2008-01-04  Darin Adler  <darin@apple.com>
184
185         Reviewed by Maciej and Alice.
186
187         - fix <rdar://problem/4404302> Borders where there should be none (canadasmountains.com)
188
189         Test: fast/images/border.html
190
191         * html/HTMLImageElement.cpp:
192         (WebCore::HTMLImageElement::parseMappedAttribute): Change the code that handles cases
193         where the border value is not a number to use the value "0" for the border width instead
194         of not setting the border width and style at all. This matches other browsers, and makes
195         more sense.
196
197 2008-01-04  Antti Koivisto  <antti@apple.com>
198
199         Try to fix 64-bit build
200
201         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
202         (WebCore::MediaPlayerPrivate::isAvailable):
203
204 2008-01-04  Stephanie  <slewis@apple.com>
205
206         Reviewed by Oliver.
207
208         WARNING: NO TEST CASES ADDED OR CHANGED
209
210         Fix another stringImpl leak.
211
212         * platform/text/StringImpl.cpp: remove an extra allocation
213         (WebCore::StringImpl::StringImpl):
214
215 2008-01-04  Alice Liu  <alice.liu@apple.com>
216
217         Reviewed by Mitz.
218
219         * platform/graphics/win/FontCacheWin.cpp:
220         fix loop condition that was causing crash
221
222 2008-01-04  Timothy Hatcher  <timothy@apple.com>
223
224         Reviewed by Adam Roben.
225
226         <rdar://problem/5671059> Always show the Timeline and Console buttons in the Inspector
227
228         * page/inspector/inspector.css: Remove styles related to the toggle button
229           and make the area always visible. 
230         * page/inspector/inspector.html: Remove the toggle button.
231         * page/inspector/inspector.js: Remove code to toggle the status area.
232
233 2008-01-04  Alexey Proskuryakov  <ap@webkit.org>
234
235         Reviewed by Adam Roben.
236
237         Temporarily restore BackwardDelete for Windows nightlies to work correctly.
238
239         * editing/EditorCommand.cpp: (WebCore::CommandEntry::):
240
241 2008-01-04  Alexey Proskuryakov  <ap@webkit.org>
242
243         Reviewed by Darin.
244
245         <rdar://problem/5611712> xsl:sort does not use a case folding sort, and the 'case-order' attribute is ignored (16077)
246
247         Enable the fix on Windows.
248
249         * xml/XSLTProcessor.cpp: (WebCore::XSLTProcessor::transformToString):
250         Always set a custom sort function, even if it doesn't implement proper collation on the platform.
251
252         * xml/XSLTUnicodeSort.cpp:
253         (WebCore::xsltUnicodeSortFunction):
254         * xml/XSLTUnicodeSort.h:
255         If the platform does not use ICU, or ICU has collation support disabled, fall back to binary comparison.
256
257 2008-01-04  Antti Koivisto  <antti@apple.com>
258
259         Fix build.
260
261         * bindings/js/JSHTMLElementWrapperFactory.cpp:
262
263 2008-01-04  Antti Koivisto  <antti@apple.com>
264
265         Reviewed by Darin.
266         
267         Partial fix for <rdar://problem/5647034>
268         Media tests crash if an old version of QuickTime is installed
269
270         Disable media support if QuickTime is not current enough (>=7.3).
271         
272         Windows patch coming soon.
273
274         * bindings/js/JSHTMLElementWrapperFactory.cpp:
275         (WebCore::createJSHTMLWrapper):
276         * bindings/js/kjs_window.cpp:
277         (KJS::Window::getValueProperty):
278         * html/HTMLElementFactory.cpp:
279         (WebCore::audioConstructor):
280         (WebCore::videoConstructor):
281         (WebCore::sourceConstructor):
282         * platform/graphics/MediaPlayer.cpp:
283         (WebCore::MediaPlayer::isAvailable):
284         * platform/graphics/MediaPlayer.h:
285         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
286         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
287         (WebCore::MediaPlayerPrivate::isAvailable):
288
289 2008-01-04  Timothy Hatcher  <timothy@apple.com>
290
291         Reviewed by Darin Adler.
292
293         <rdar://problem/5604409> JavaScript privilege escalation when Web Inspector accesses page unsafely (16011)
294
295         Check if the property is a getter before asking for the value.
296         If the property is a getter, we no longer show the value.
297
298         * page/inspector/PropertiesSidebarPane.js:
299         * page/inspector/inspector.css:
300
301 2008-01-04  Dan Bernstein  <mitz@apple.com>
302
303         Reviewed by Darin Adler.
304
305         - fix synthetic bold and italic on Windows
306
307         Covered by an existing test.
308
309         * platform/graphics/win/FontPlatformDataWin.cpp:
310         (WebCore::FontPlatformData::FontPlatformData):
311
312 2008-01-04  Alp Toker  <alp@atoker.com>
313
314         GTK+ autotools build fix. Terminate empty rules.
315
316         * GNUmakefile.am:
317
318 2008-01-04  Lars Knoll  <lars@trolltech.com>
319
320         Reviewed by Simon.
321
322         Remove most dependencies of Widget/ScrollView onto native QWidgets.
323
324         This also brings the code closer in line with the Windows code. Seems
325         to work nicely on first try :)
326
327         * page/qt/FrameQt.cpp:
328         (WebCore::Frame::createScriptInstanceForWidget):
329         * platform/Widget.h:
330         * platform/qt/PlatformScreenQt.cpp:
331         (WebCore::screenDepth):
332         (WebCore::screenDepthPerComponent):
333         (WebCore::screenIsMonochrome):
334         (WebCore::screenRect):
335         * platform/qt/PlatformScrollBarQt.cpp:
336         (WebCore::PlatformScrollbar::thumbPosition):
337         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
338         * platform/qt/ScrollViewQt.cpp:
339         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
340         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
341         (WebCore::ScrollView::updateContents):
342         (WebCore::ScrollView::update):
343         (WebCore::ScrollView::scrollRectIntoViewRecursively):
344         (WebCore::ScrollView::updateScrollbars):
345         (WebCore::ScrollView::addChild):
346         (WebCore::ScrollView::removeChild):
347         (WebCore::ScrollView::paint):
348         * platform/qt/WidgetQt.cpp:
349         (WebCore::WidgetPrivate::WidgetPrivate):
350         (WebCore::WidgetPrivate::~WidgetPrivate):
351         (WebCore::Widget::frameGeometry):
352         (WebCore::Widget::setFrameGeometry):
353         (WebCore::Widget::setCursor):
354         (WebCore::Widget::show):
355         (WebCore::Widget::hide):
356         (WebCore::Widget::nativeWidget):
357         (WebCore::Widget::setNativeWidget):
358         (WebCore::Widget::suppressInvalidation):
359         (WebCore::Widget::setSuppressInvalidation):
360         (WebCore::Widget::invalidateRect):
361         (WebCore::Widget::topLevel):
362         (WebCore::Widget::containingWindow):
363
364 2008-01-04  Lars Knoll  <lars@trolltech.com>
365
366         Reviewed by Simon.
367
368         make QWebPage a QObject and get things to compile.
369
370         Nothing works currently though.
371
372         * platform/qt/ScrollViewQt.cpp:
373         (WebCore::ScrollView::updateContents):
374         (WebCore::ScrollView::update):
375         * platform/qt/WidgetQt.cpp:
376         (WebCore::Widget::qwidget):
377         (WebCore::Widget::invalidateRect):
378
379 2008-01-04  Alp Toker  <alp@atoker.com>
380
381         Reviewed by Mark Rowe.
382
383         http://bugs.webkit.org/show_bug.cgi?id=16667
384         make -j is failing with the autotools based system
385
386         Support parallel code generation. Nearly every use of explicit
387         multiple targets was a potential concurrency bug, though in practice
388         the bison rules were the first to be noticed because they took longer
389         to complete and broke the build immediately.
390
391         * GNUmakefile.am:
392
393 2008-01-04  Alp Toker  <alp@atoker.com>
394
395         Reviewed by Mark Rowe.
396
397         Re-use a single static dummy surface rather than creating and
398         destroying a surface for each CairoPath.
399
400         * platform/graphics/cairo/CairoPath.h:
401         (WebCore::CairoPath::CairoPath):
402
403 2008-01-04  Mark Rowe  <mrowe@apple.com>
404
405         Tiger build fix.
406
407         * platform/Threading.h: The OSAtomic functions take non-volatile pointers on Tiger.
408
409 2008-01-03  Mark Rowe  <mrowe@apple.com>
410
411         Reviewed by Maciej Stachowiak.
412
413         Use platform-provided atomic operations in place of inline assembly to
414         increase portability.
415
416         * platform/Threading.h:
417         (WebCore::atomicIncrement):
418         (WebCore::atomicDecrement):
419
420 2008-01-03  Oliver Hunt  <oliver@apple.com>
421
422         Reviewed by Maciej.
423
424         Fix <rdar://problem/5668517> REGRESSION: Major under painting issues in SVG (carto.net dock example)
425
426         We need to cache the absolute bounds of the <image>,
427         as there's no reliable way to recompute the old bounding
428         box one we have started layout.
429
430         * rendering/RenderSVGImage.cpp:
431         (WebCore::RenderSVGImage::layout):
432         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
433         * rendering/RenderSVGImage.h:
434
435 2008-01-03  Alp Toker  <alp@atoker.com>
436
437         Reviewed by Mark Rowe.
438
439         Support building in Scratchbox, which has a version of make that fails
440         on wildcard syntax. Use a vpath to match IDL files instead.
441
442         * GNUmakefile.am:
443
444 2008-01-03  Jon Honeycutt  <jhoneycutt@apple.com>
445
446         Reviewed by Darin.
447
448         <rdar://problem/5504775> PDF page will not load first time after Adobe
449         Reader install, unless browser is relaunched
450
451         Refresh and re-search the plugin database if the MIME type is not
452         registered.
453
454         * plugins/win/PluginDatabaseWin.cpp:
455         (WebCore::PluginDatabaseWin::isMIMETypeRegistered):
456         * plugins/win/PluginDatabaseWin.h:
457
458 2008-01-03  Dan Bernstein  <mitz@apple.com>
459
460         Reviewed by Darin Adler.
461
462         - fix http://bugs.webkit.org/show_bug.cgi?id=16548
463           <rdar://problem/5659452> REGRESSION(r28810): Font style and sizes are weird for Japanese text
464
465         * platform/graphics/win/FontCacheWin.cpp:
466         (WebCore::linkedFontEnumProc): Added. This callback is used to fetch
467         a valid LOGFONT for a given family.
468         (WebCore::getLinkedFonts): Added. Returns a vector of font families
469         linked to the given font family by the Windows registry key
470         HKLM\Software\...\FontLink\SystemLink. The registry values typically
471         differ based on the installed language version of Windows.
472         (WebCore::FontCache::getFontDataForCharacters): Changed to not use MLang
473         font mapping, which is Windows code page based, except for characters in
474         the range U+2000..U+200F. Instead, this function gets the font Uniscribe
475         would use for the character. However, that font might not actually
476         contain the character, in which case GDI font linking would substitute a
477         different font. Therefore, this function walks the linked font list
478         until it finds a font that actually contains the character.
479
480 2008-01-03  Darin Adler  <darin@apple.com>
481
482         Reviewed by Mitz.
483
484         - fix http://bugs.webkit.org/show_bug.cgi?id=16723
485           tables/mozilla/bugs/bug30418.html test failing due to problems updating dynamic border rules
486
487         Test: fast/table/border-changes.html
488
489         * html/HTMLTableElement.h:
490         * html/HTMLTableElement.cpp:
491         (WebCore::HTMLTableElement::parseMappedAttribute): Check the border type before and after
492         parsing attributes, rather than doing this only for the rules attribute.
493         (WebCore::HTMLTableElement::cellBorders): Added.
494         (WebCore::HTMLTableElement::getSharedCellDecl): Changed to use cellBorders to factor out the
495         rule about what type of borders to use.
496
497 2008-01-02  Sam Weinig  <sam@webkit.org>
498
499         Reviewed by Darin.
500
501         Pass the prototype of WebCore JS objects up the constructor chain
502         rather than explicitly setting using setPrototype.  This removes many
503         redundant settings of the prototype on construction.  To avoid a CG 
504         hazard, the prototype must be constructed before calling the
505         constructor of the JS object.
506
507         - JS objects that inherit from DOMObject, which all bindings objects
508           (except Window) do, now can't implicitly have a jsNull prototype, but
509           must explicitly pass it up the construction chain.
510
511         * bindings/js/JSCSSRuleCustom.cpp:
512         (WebCore::toJS):
513         * bindings/js/JSCSSValueCustom.cpp:
514         (WebCore::toJS):
515         * bindings/js/JSDocumentCustom.cpp:
516         (WebCore::toJS):
517         * bindings/js/JSEventCustom.cpp:
518         (WebCore::toJS):
519         * bindings/js/JSEventTargetNode.cpp:
520         (WebCore::JSEventTargetNode::JSEventTargetNode):
521         * bindings/js/JSEventTargetNode.h:
522         * bindings/js/JSHTMLAllCollection.h:
523         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
524         * bindings/js/JSHTMLAudioElementConstructor.cpp:
525         (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
526         * bindings/js/JSHTMLCollectionCustom.cpp:
527         (WebCore::getNamedItems):
528         (WebCore::toJS):
529         * bindings/js/JSHTMLElementWrapperFactory.cpp:
530         (WebCore::createJSHTMLWrapper):
531         * bindings/js/JSHTMLFormElementCustom.cpp:
532         (WebCore::JSHTMLFormElement::nameGetter):
533         * bindings/js/JSHTMLInputElementBase.cpp:
534         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
535         * bindings/js/JSHTMLInputElementBase.h:
536         * bindings/js/JSHTMLOptionElementConstructor.cpp:
537         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
538         * bindings/js/JSLocation.cpp:
539         (WebCore::JSLocation::JSLocation):
540         * bindings/js/JSLocation.h:
541         * bindings/js/JSNamedNodesCollection.cpp:
542         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
543         * bindings/js/JSNamedNodesCollection.h:
544         * bindings/js/JSNodeCustom.cpp:
545         (WebCore::toJS):
546         * bindings/js/JSSVGElementWrapperFactory.cpp:
547         (WebCore::createJSSVGWrapper):
548         * bindings/js/JSSVGPathSegCustom.cpp:
549         (WebCore::toJS):
550         * bindings/js/JSStyleSheetCustom.cpp:
551         (WebCore::toJS):
552         * bindings/js/JSXMLHttpRequest.cpp:
553         (KJS::JSXMLHttpRequestConstructorImp::JSXMLHttpRequestConstructorImp):
554         (KJS::JSXMLHttpRequestConstructorImp::construct):
555         (KJS::JSXMLHttpRequest::JSXMLHttpRequest):
556         * bindings/js/JSXMLHttpRequest.h:
557         * bindings/js/JSXSLTProcessor.cpp:
558         (KJS::JSXSLTProcessor::JSXSLTProcessor):
559         (KJS::XSLTProcessorConstructorImp::XSLTProcessorConstructorImp):
560         (KJS::XSLTProcessorConstructorImp::implementsConstruct):
561         (KJS::XSLTProcessorConstructorImp::construct):
562         * bindings/js/JSXSLTProcessor.h:
563         * bindings/js/kjs_binding.h:
564         (KJS::DOMObject::DOMObject):
565         (KJS::cacheDOMObject):
566         (KJS::cacheSVGDOMObject):
567         * bindings/js/kjs_css.cpp:
568         (WebCore::JSRGBColor::JSRGBColor):
569         (WebCore::getJSRGBColor):
570         * bindings/js/kjs_css.h:
571         * bindings/js/kjs_events.cpp:
572         (WebCore::JSClipboard::JSClipboard):
573         (WebCore::toJS):
574         * bindings/js/kjs_events.h:
575         * bindings/js/kjs_html.cpp:
576         (WebCore::ImageConstructorImp::ImageConstructorImp):
577         * bindings/js/kjs_navigator.cpp:
578         (KJS::Navigator::Navigator):
579         (KJS::PluginBase::PluginBase):
580         * bindings/js/kjs_navigator.h:
581         * bindings/js/kjs_window.cpp:
582         (KJS::Window::Window):
583         (KJS::Window::location):
584         (KJS::Window::getValueProperty):
585         * bindings/js/kjs_window.h:
586         * bindings/scripts/CodeGeneratorJS.pm:
587
588 2008-01-03  Holger Hans Peter Freyther  <zecke@selfish.org>
589
590         Reviewed by Alp.
591
592         -This is from http://bugs.webkit.org/show_bug.cgi?id=16115
593
594         Change the Gtk ContextMenuItem code to generate the GtkMenuItem
595         or GtkCheckMenuItem on the fly. Currently we will create a
596         GtkCheckMenuItem if the ContextMenuItem has been checked. What needs
597         to be done is to change WebCore to tell the platform code if an item
598         is checkable or not.
599
600         * platform/ContextMenuItem.h:
601         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
602         * platform/gtk/ContextMenuGtk.cpp:
603         (WebCore::ContextMenu::appendItem):
604         * platform/gtk/ContextMenuItemGtk.cpp:
605         (WebCore::ContextMenuItem::ContextMenuItem):
606         (WebCore::ContextMenuItem::~ContextMenuItem):
607         (WebCore::ContextMenuItem::createNativeMenuItem):
608         (WebCore::ContextMenuItem::releasePlatformDescription):
609         (WebCore::ContextMenuItem::type):
610         (WebCore::ContextMenuItem::setType):
611         (WebCore::ContextMenuItem::action):
612         (WebCore::ContextMenuItem::setAction):
613         (WebCore::ContextMenuItem::platformSubMenu):
614         (WebCore::ContextMenuItem::setSubMenu):
615         (WebCore::ContextMenuItem::setChecked):
616
617 2008-01-03  Dan Bernstein  <mitz@apple.com>
618
619         Rubber-stamped by Adam Roben.
620
621         - update the project hierarchy to match the on-disk organization of
622           the platform directory.
623
624         * WebCore.vcproj/WebCore.vcproj:
625
626 2008-01-03  Adam Roben  <aroben@apple.com>
627
628         Fix a buffer overrun and a leak introduced in r29098
629
630         Reviewed by Mark.
631
632         * platform/text/StringImpl.cpp:
633         (WebCore::StringImpl::StringImpl): Only allocate one buffer, and make
634         it be big enough to hold the string contents plus the null terminator.
635
636 2008-01-03  Simon Hausmann  <hausmann@webkit.org>
637
638         Reviewed by Lars.
639
640         Added the first revision of QWebView and started moving functionality from QWebPave over to QWebView and QWebFrame.
641
642         * WebCore.pro:
643
644 2008-01-03  Alp Toker  <alp@atoker.com>
645
646         Suggested by Mark Rowe.
647
648         Fix indentation and remove trailing whitespace.
649
650         * platform/network/curl/ResourceHandleManager.cpp:
651
652 2008-01-03  Luca Bruno  <lethalman88@gmail.com>
653
654         Reviewed by Alp Toker.
655
656         Fix HTTP POST-based logins to sites like Facebook, GMail by ensuring
657         that the two POST methods don't conflict.
658
659         * platform/network/curl/ResourceHandleManager.cpp:
660         (WebCore::ResourceHandleManager::setupPOST):
661
662 2008-01-02  Darin Adler  <darin@apple.com>
663
664         - touched some files to try to get the Windows buildbot building again
665
666 2008-01-02  Dan Bernstein  <mitz@apple.com>
667
668         Reviewed by Sam Weinig.
669
670         - fix small caps rendering
671
672         Covered by an existing test.
673
674         * platform/graphics/win/FontDataWin.cpp:
675         (WebCore::FontData::smallCapsFontData):
676
677 2008-01-02  Antti Koivisto  <antti@apple.com>
678
679         Reviewed by Oliver.
680
681         Calculate video position and size within the renderer box in WebCore. This
682         way the aspect ratio calculation is not needed in each MediaPlayer implementation.
683         
684         This fixes video aspect ratio on Windows.
685         
686         Covered by an existing pixel test.
687
688         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
689         (WebCore::MediaPlayerPrivate::createQTMovieView):
690         * rendering/RenderVideo.cpp:
691         (WebCore::RenderVideo::videoBox):
692         (WebCore::RenderVideo::paintReplaced):
693         (WebCore::RenderVideo::updatePlayer):
694         * rendering/RenderVideo.h:
695
696 2008-01-02  Ada Chan  <adachan@apple.com>
697
698         Fix windows build.
699
700         * WebCore.vcproj/WebCore.vcproj:
701
702 2008-01-02  John Sullivan  <sullivan@apple.com>
703
704         Reviewed by Dan Bernstein
705         
706         - fixed <rdar://problem/5579010> REGRESSION: Safari inserts newlines in tab names when U+2028 is present
707
708         * loader/DocumentLoader.cpp:
709         (WebCore::canonicalizedTitle):
710         in the code that replaces control characters with white space, also replace the unicode line separator
711         and paragraph separator characters
712
713 2008-01-02  Darin Adler  <darin@apple.com>
714
715         - fix buffer overruns seen on buildbot
716
717         * platform/text/StringImpl.cpp:
718         (WebCore::countCharacter): Added this.
719         (WebCore::StringImpl::toCoordsArray): Use countCharacter instead of incorrect find expression.
720         (WebCore::StringImpl::toLengthArray): Ditto.
721         (WebCore::StringImpl::replace): Added assertions.
722
723 2008-01-02  Darin Adler  <darin@apple.com>
724
725         Reviewed by Maciej.
726
727         - fix http://bugs.webkit.org/show_bug.cgi?id=16657
728           Acid3 failure since table.caption and table.thead do not work for nodes added by appendChild
729         - fix http://bugs.webkit.org/show_bug.cgi?id=16659
730           Acid3 expects HTMLTableElement.rows to include a <tr> element that is an immediate child of the <table>
731
732         Tests: dom/html/level2/html/HTMLCollection07.html
733                dom/html/level2/html/HTMLCollection08.html
734                dom/html/level2/xhtml/HTMLCollection07.xhtml
735                dom/html/level2/xhtml/HTMLCollection08.xhtml
736                fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
737                fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
738
739         * GNUmakefile.am: Added HTMLTableRowsCollection.
740         * WebCore.pro: Ditto.
741         * WebCore.vcproj/WebCore.vcproj: Ditto.
742         * WebCore.xcodeproj/project.pbxproj: Ditto.
743         * WebCoreSources.bkl: Ditto.
744
745         * dom/XMLTokenizer.cpp: Took out stray include.
746
747         * html/HTMLCollection.cpp:
748         (WebCore::HTMLCollection::itemAfter): Removed all the table rows code, since we now use
749         a separate class for that collection. Also got rid of the distinct types for custom collections
750         that don't need them (use Other for both).
751         * html/HTMLCollection.h: Also made firstItem non-virtual because it doesn't need to be virtual.
752
753         * html/HTMLFormCollection.cpp:
754         (WebCore::HTMLFormCollection::HTMLFormCollection): Use Other instead of FormElements
755         for the HTMLCollection type.
756
757         * html/HTMLTableElement.cpp:
758         (WebCore::HTMLTableElement::HTMLTableElement): Eliminated m_head, m_foot, m_firstBody, and m_caption.
759         (WebCore::HTMLTableElement::caption): Added non-inline version. Finds the caption rather than
760         keeping a pointer to it.
761         (WebCore::HTMLTableElement::setCaption): Rewrote.
762         (WebCore::HTMLTableElement::tHead): Ditto.
763         (WebCore::HTMLTableElement::setTHead): Ditto.
764         (WebCore::HTMLTableElement::tFoot): Ditto.
765         (WebCore::HTMLTableElement::setTFoot): Ditto.
766         (WebCore::HTMLTableElement::createTHead): Ditto.
767         (WebCore::HTMLTableElement::deleteTHead): Ditto.
768         (WebCore::HTMLTableElement::createTFoot): Ditto.
769         (WebCore::HTMLTableElement::deleteTFoot): Ditto.
770         (WebCore::HTMLTableElement::createCaption): Ditto.
771         (WebCore::HTMLTableElement::deleteCaption): Ditto.
772         (WebCore::HTMLTableElement::lastBody): Added.
773         (WebCore::HTMLTableElement::insertRow): Rewrote to use a loop based on code in HTMLTableRowsCollection.
774         This is different from the old code mainly in how it handles rows outside any section.
775         (WebCore::HTMLTableElement::deleteRow): Ditto.
776         (WebCore::HTMLTableElement::addChild): Removed code to set the various members. Keeping pointers to
777         these was a possible source of serious bugs too, including crashes with stale pointers, although I
778         didn't write any test cases to prove those bugs existed.
779         (WebCore::HTMLTableElement::parseMappedAttribute): Changed the rules code to visit all cells, not
780         just the cells of the first body. I believe this fixed rendering on some table tests. I think the code
781         visits too many cells and also the use of recursion is overkill, but I didn't try to fix that.
782         (WebCore::HTMLTableElement::rows): Changed to use the new HTMLTableRowsCollection.
783         * html/HTMLTableElement.h: Changed functions to return PassRefPtr, which can be important if strange
784         things like DOM mutation events take things ot of the tree before they are safely referenced by
785         JavaScript wrappers. Also changed functions to take PassRefPtr and added exceptions. Removed unneeded
786         firstTBody and setTBody functions and childrenChanged function override, as well as unused Rules and
787         Frame enums. Removed m_head, m_foot, m_firstBody, and m_caption, and added lastBody function. Removed
788         unneeded friend declaration for HTMLTableCellElement.
789         * html/HTMLTableElement.idl: Allow the setteres for caption, tHead, and tFoot to raise exceptions.
790
791         * html/HTMLTableRowsCollection.cpp: Added. Implements the HTML 5 rule for which rows are in the
792         collection in which order.
793         * html/HTMLTableRowsCollection.h: Added.
794
795         * loader/FTPDirectoryDocument.cpp:
796         (WebCore::FTPDirectoryTokenizer::appendEntry): Use the standard insertRow function instead of
797         coming up with our own way of inserting a row. Simplifies things -- we can remove the code to
798         create a tbody element.
799
800 2008-01-02  Darin Adler  <darin@apple.com>
801
802         Reviewed by Alice and Tim.
803
804         - try to fix GTK and Qt builds
805
806         * platform/win/ScrollViewWin.cpp:
807         (WebCore::ScrollView::scroll): Improve logic slightly for the case of
808         vertical scrolling when there's no vertical scroll bar.
809
810         * platform/gtk/ScrollViewGtk.cpp:
811         (WebCore::ScrollView::scroll): Copy the code from Windows. Maybe this
812         should be factored differently.
813         * platform/qt/ScrollViewQt.cpp:
814         (WebCore::ScrollView::scroll): Ditto.
815
816 2008-01-02  Darin Adler  <darin@apple.com>
817
818         Reviewed by Anders.
819
820         - http://bugs.webkit.org/show_bug.cgi?id=16712
821           change StringImpl to take and return PassRefPtr instead of raw pointers
822
823         Also eliminated use of const StringImpl. Since StringImpl is immutable there
824         is no distinction between a const and non-const one at the moment.
825
826         * WebCore.base.exp: Updated.
827
828         * css/CSSHelper.cpp:
829         (WebCore::parseURL): Make String directly, not by making a StringImpl.
830         * dom/Attr.cpp:
831         (WebCore::Attr::createTextChild): Convert AtomicString to String with domString,
832         not via StringImpl.
833         (WebCore::Attr::setValue): Remove unneed call to impl() when passing a String
834         to a function that takes a String.
835
836         * dom/CDATASection.cpp: Removed unused constructor.
837         (WebCore::CDATASection::cloneNode): Added a now-needed .get().
838         (WebCore::CDATASection::createNew): Changed function to take a PassRefPtr.
839         * dom/CDATASection.h:
840
841         * dom/CharacterData.cpp:
842         (WebCore::CharacterData::CharacterData): Removed unneeded initialization and
843         ref() now that the string is a RefPtr. Also updated to not call "new StringImpl".
844         (WebCore::CharacterData::~CharacterData): Removed unneeded deref() since it's
845         a RefPtr.
846         (WebCore::CharacterData::setData): More of that.
847         (WebCore::CharacterData::substringData): Ditto.
848         (WebCore::CharacterData::appendData): Ditto.
849         (WebCore::CharacterData::insertData): Ditto.
850         (WebCore::CharacterData::deleteData): Ditto.
851         (WebCore::CharacterData::replaceData): Ditto.
852         (WebCore::CharacterData::nodeValue): Ditto.
853         (WebCore::CharacterData::dispatchModifiedEvent): Ditto.
854         (WebCore::CharacterData::dump): Ditto.
855         * dom/CharacterData.h: Changed to use a RefPtr. I could have used a String
856         instead, but since String adds extra branches to handle 0, I figured it was
857         more conservative to just use RefPtr. Later it would be good to figure out
858         which is preferred style and be more consistent. Maybe we'll phase out
859         StringImpl, or maybe we'll go the other way and use it more since it can be
860         more efficient.
861
862         * dom/DOMImplementation.cpp:
863         (WebCore::addString): Changed set to use String rather than StringImpl.
864         (WebCore::isSVG10Feature): Ditto.
865         (WebCore::isSVG11Feature): Ditto.
866         (WebCore::DOMImplementation::createDocument): Replaced custom code to
867         find a colon with a call to String::find.
868
869         * dom/Range.cpp:
870         (WebCore::Range::insertNode): Updated since the result of splitText is now
871         a PassRefPtr.
872
873         * dom/Text.cpp:
874         (WebCore::Text::splitText): Updated since str is now a RefPtr. Also made the
875         result of this function be a PassRefPtr.
876         (WebCore::Text::createRenderer): Ditto.
877         (WebCore::Text::createNew): Made the parameter and result both be PassRefPtr.
878         * dom/Text.h:
879
880         * html/HTMLElement.cpp:
881         (WebCore::HTMLElement::nodeName): Use String::upper.
882
883         * html/HTMLInputElement.cpp:
884         (WebCore::numGraphemeClusters): Remove now-unneeded const.
885         (WebCore::numCharactersInGraphemeClusters): Ditto.
886
887         * html/HTMLTokenizer.cpp:
888         (WebCore::HTMLTokenizer::processToken): Updated for function name change.
889
890         * platform/text/AtomicString.cpp:
891         (WebCore::CStringTranslator::translate): Updated since there is no longer
892         a constructor that takes a string.
893
894         * platform/text/PlatformString.h: Added new constructors that take
895         PassRefPtr and RefPtr. Removed misleading comment.
896
897         * platform/text/String.cpp:
898         (WebCore::String::String): Changed to use StringImpl::create, which handles
899         the empty string automatically.
900         (WebCore::String::append): Ditto.
901         (WebCore::String::charactersWithNullTermination): Similar.
902         (WebCore::String::format): Ditto.
903
904         * platform/text/StringHash.h: Took out unneeded const.
905
906         * platform/text/StringImpl.cpp:
907         (WebCore::deleteUCharVector): Changed to take a const pointer since the
908         buffers are now const UChar buffers.
909         (WebCore::StringImpl::StringImpl): Removed some constructors. Got rid of the
910         separate init functions. The constructors are now private and used only in
911         the create functions and one or two other places.
912         (WebCore::StringImpl::containsOnlyWhitespace): Removed now-meaningless const.
913         (WebCore::StringImpl::substring): Ditto. Also changed return value to be a
914         PassRefPtr.
915         (WebCore::StringImpl::characterStartingAt): Ditto.
916         (WebCore::StringImpl::toLength): Ditto.
917         (WebCore::StringImpl::toCoordsArray): Ditto.
918         (WebCore::StringImpl::toLengthArray): Ditto.
919         (WebCore::StringImpl::isLower): Ditto.
920         (WebCore::StringImpl::lower): Ditto. Changed to use Vector and adopt so we
921         don't have to use new directly here. Makes empty string handling more consistent.
922         (WebCore::StringImpl::upper): Ditto.
923         (WebCore::StringImpl::secure): Ditto.
924         (WebCore::StringImpl::foldCase): Ditto.
925         (WebCore::StringImpl::stripWhiteSpace): Ditto.
926         (WebCore::StringImpl::simplifyWhiteSpace): Ditto.
927         (WebCore::StringImpl::capitalize): Ditto.
928         (WebCore::StringImpl::toInt): Removed now-meaningless const.
929         (WebCore::StringImpl::toInt64): Ditto.
930         (WebCore::StringImpl::toUInt64): Ditto.
931         (WebCore::StringImpl::toDouble): Ditto.
932         (WebCore::StringImpl::toFloat): Ditto.
933         (WebCore::StringImpl::find): Ditto.
934         (WebCore::StringImpl::reverseFind): Ditto.
935         (WebCore::StringImpl::endsWith): Ditto.
936         (WebCore::StringImpl::replace): Ditto.
937         (WebCore::equal): Ditto.
938         (WebCore::equalIgnoringCase): Ditto.
939         (WebCore::StringImpl::ascii): Ditto.
940         (WebCore::StringImpl::defaultWritingDirection): Ditto.
941         (WebCore::StringImpl::createStrippingNullCharacters): Ditto.
942         (WebCore::StringImpl::adopt): Added special case so this uses the shared
943         empty string like other functions. Also optimized the common case where the
944         vector happens to already have the right size so we don't do a fastRealloc
945         at all in those cases.
946         (WebCore::StringImpl::create): Added. These are now the public functions for
947         creating new StringImpl objects. They all implement the shared empty string.
948         (WebCore::StringImpl::createWithTerminatingNullCharacter):
949         * platform/text/StringImpl.h:
950
951         * platform/text/cf/StringCF.cpp:
952         (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
953         * platform/text/cf/StringImplCF.cpp:
954         (WebCore::StringImpl::createCFString): Removed now-obsolete const.
955         * platform/text/mac/StringImplMac.mm:
956         (WebCore::StringImpl::operator NSString *): Ditto.
957         * platform/text/mac/StringMac.mm:
958         (WebCore::String::String): Use StringImpl::create instead of new StringImpl.
959         * platform/text/qt/StringQt.cpp:
960         (WebCore::String::String): Ditto.
961         * platform/text/wx/StringWx.cpp:
962         (WebCore::String::String): Ditto.
963         * rendering/RenderBR.cpp:
964         (WebCore::RenderBR::RenderBR): Ditto.
965
966         * rendering/RenderSVGInlineText.cpp:
967         (WebCore::RenderSVGInlineText::RenderSVGInlineText): Use PassRefPtr.
968         * rendering/RenderSVGInlineText.h:
969
970         * rendering/RenderText.cpp:
971         (WebCore::charactersAreAllASCII): Removed now-unneeded const.
972         * rendering/RenderTextFragment.cpp:
973         (WebCore::RenderTextFragment::originalText): Use RefPtr.
974
975 2008-01-02  Timothy Hatcher  <timothy@apple.com>
976
977         Reviewed by Oliver Hunt.
978
979         <rdar://problem/5618086> WebInspector does not expand the DOM tree after being closed
980
981         Closing the Web Inspector causes the DOM tree outline to be torn down, clearing the
982         internal element lookup tables. The represented DOM node object still holds the identifier
983         it was assigned, and a later call to findTreeElement will use that original identifier
984         against a cleared lookup table. In that case we need to fallback on DOM ancestor lookup.
985
986         * page/inspector/treeoutline.js:
987         (TreeOutline.prototype.findTreeElement): If the DOM node already had a __treeElementIdentifier,
988         but the TreeOutline no longer has the element in the _knownTreeElements list do an ancestor lookup
989         instead of an early return.
990
991 2008-01-02  Alice Liu  <alice.liu@apple.com>
992
993         Reviewed by Maciej.
994
995         Fixed <rdar://5283861> (problems scrolling in gmail message content area)
996
997         * platform/ScrollView.h:
998         * platform/win/ScrollViewWin.cpp:
999         (WebCore::ScrollView::scroll):
1000          Changed return value to bool to reflect success of scroll attempt
1001
1002 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
1003
1004         Fixed a typo (pointed out in review, but I somehow missed it at first).
1005
1006         * editing/EditorCommand.cpp: (WebCore::executeDelete):
1007
1008 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
1009
1010         Reviewed by Darin.
1011
1012         Resolved several FIXMEs in EditorCommand.
1013         Made recently added commands hidden from JS again.
1014         Removed BackwardDelete implementation, which used to be dead code, but got exposed now.
1015
1016         Tests: editing/execCommand/delete-no-scroll.html
1017                editing/execCommand/forward-delete-no-scroll.html
1018                editing/execCommand/insert-line-break-no-scroll.html
1019
1020         * editing/EditorCommand.cpp:
1021         (WebCore::executeDelete):
1022         (WebCore::executeForwardDelete):
1023         (WebCore::executeInsertLineBreak):
1024         (WebCore::supportedFromMenuOrKeyBinding):
1025         (WebCore::CommandEntry::):
1026
1027 2008-01-02  Alexey Proskuryakov  <ap@webkit.org>
1028
1029         Reviewed by Darin.
1030
1031         http://bugs.webkit.org/show_bug.cgi?id=14555
1032         action=mailto + method=get - The generated mailto URI is incorrect and the hvalues are encoded twice
1033
1034         http://bugs.webkit.org/show_bug.cgi?id=14774
1035         Submitted data only includes first input item
1036
1037         Reworked encoding of mailto URLs to match other browsers.
1038         Moved most of related logic from FrameLoader::submitForm() to HTMLFormElement::submit().
1039
1040         Tests: fast/forms/mailto/advanced-get.html
1041                fast/forms/mailto/advanced-put.html
1042                fast/forms/mailto/get-multiple-items-text-plain.html
1043                fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
1044                fast/forms/mailto/get-multiple-items.html
1045                fast/forms/mailto/get-non-ascii.html
1046                fast/forms/mailto/get-non-ascii-text-plain.html
1047                fast/forms/mailto/get-overwrite-query.html
1048                fast/forms/mailto/post-append-query.html
1049                fast/forms/mailto/post-multiple-items-multipart-form-data.html
1050                fast/forms/mailto/post-multiple-items-text-plain.html
1051                fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
1052                fast/forms/mailto/post-multiple-items.html
1053
1054         * html/HTMLFormElement.cpp:
1055         (WebCore::HTMLFormElement::submit):
1056         * loader/FrameLoader.cpp:
1057         (WebCore::FrameLoader::submitForm):
1058
1059 2008-01-02  Mark Rowe  <mrowe@apple.com>
1060
1061         Autotools build fix.
1062
1063         * GNUmakefile.am: Remove files before generating them, not after.
1064
1065 2008-01-02  Mark Rowe  <mrowe@apple.com>
1066
1067         Rubber-stamped by Alp Toker.
1068
1069         Add missing dependencies to some GNUmakefile.am rules.
1070
1071         * GNUmakefile.am:
1072
1073 2008-01-02  Mark Rowe  <mrowe@apple.com>
1074
1075         Reviewed by Alp Toker.
1076
1077         Autotools build fix.  Make can expand $@ to any of the targets for the rule,
1078         while we always want to use the name of the .cpp file as the output file.
1079
1080         * GNUmakefile.am:
1081
1082 2008-01-02  Luca Bruno  <lethalman88@gmail.com>
1083
1084         Reviewed by Alp Toker.
1085
1086         http://bugs.webkit.org/show_bug.cgi?id=16115
1087         [GTK] ContextMenu and ContextMenuItem lacks an implementation
1088
1089         Add context menu support.
1090
1091         Based on a patch by Holger Freyther.
1092
1093         * platform/gtk/ContextMenuGtk.cpp:
1094         (WebCore::menuItemActivated):
1095         (WebCore::ContextMenu::ContextMenu):
1096         (WebCore::ContextMenu::~ContextMenu):
1097         (WebCore::ContextMenu::appendItem):
1098         (WebCore::ContextMenu::setPlatformDescription):
1099         (WebCore::ContextMenu::releasePlatformDescription):
1100         * platform/gtk/ContextMenuItemGtk.cpp:
1101         (WebCore::ContextMenuItem::ContextMenuItem):
1102         (WebCore::ContextMenuItem::~ContextMenuItem):
1103         (WebCore::ContextMenuItem::releasePlatformDescription):
1104         (WebCore::ContextMenuItem::type):
1105         (WebCore::ContextMenuItem::action):
1106         (WebCore::ContextMenuItem::setAction):
1107         (WebCore::ContextMenuItem::platformSubMenu):
1108         (WebCore::ContextMenuItem::setSubMenu):
1109         (WebCore::ContextMenuItem::setChecked):
1110         (WebCore::ContextMenuItem::setEnabled):
1111
1112 2008-01-02  Alp Toker  <alp@atoker.com>
1113
1114         GTK+ autotools build fix. Track changes in r29073.
1115
1116         * GNUmakefile.am:
1117
1118 2008-01-01  Darin Adler  <darin@apple.com>
1119
1120         - fix release build
1121
1122         * bindings/js/kjs_binding.cpp:
1123         (KJS::setDOMException): Initialize to avoid uninitialized variable warning.
1124         Removed default so we get a warning if there's a missing case.
1125
1126 2008-01-01  David D. Kilzer  <ddkilzer@webkit.org>
1127
1128         Scripting MIME Types application/ecmascript, application/javascript not viewable
1129         <http://bugs.webkit.org/show_bug.cgi?id=11063>
1130
1131         Reviewed by Darin.
1132
1133         This patch consolidates the list of acceptable MIME types for JavaScript
1134         source into the MIMETypeRegistry class, and replaces checks for these
1135         types with a call to MIMETypeRegistry::isSupportedJavaScriptMIMEType().
1136
1137         No tests added since viewing JavaScript source is not testable.
1138
1139         * dom/DOMImplementation.cpp:
1140         (WebCore::DOMImplementation::isTextMIMEType): Use
1141         MIMETypeRegistry::isSupportedJavaScriptMIMEType() instead of a single
1142         hard-coded MIME type, "application/x-javascript".
1143
1144         * html/HTMLScriptElement.cpp:
1145         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript): Moved list of
1146         JavaScript MIME types from here to
1147         MIMETypeRegistry::initialiseSupportedJavaScriptMIMETypes().
1148
1149         * platform/MIMETypeRegistry.cpp:
1150         (WebCore::initialiseSupportedJavaScriptMIMETypes): Added. List of
1151         MIME types came from HTMLScriptElement::shouldExecuteAsJavaScript().
1152         (WebCore::initialiseSupportedNonImageMimeTypes): Remove single
1153         hard-coded MIME type, "application/x-javascript", from the list.
1154         (WebCore::initialiseMIMETypeRegistry): Initialise
1155         supportedJavaScriptMIMETypes, then pre-populate supportedNonImageMIMETypes
1156         with values in supportedJavaScriptMIMETypes.
1157         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Added.
1158
1159         * platform/MIMETypeRegistry.h: Added isSupportedJavaScriptMIMEType().
1160
1161 2008-01-01  Sam Weinig  <sam@webkit.org>
1162
1163         Reviewed by Darin.
1164
1165         Patch for http://bugs.webkit.org/show_bug.cgi?id=16691
1166         Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)
1167
1168         - Create JS objects for all the different types of exceptions, each with there own prototype and constructor.
1169         - Abstract all the logic and storage for exception classes in to an ExceptionBase class.
1170         - Move specialized ExceptionCodes into the exception classes. (ie. the EventExceptionCode enum is now in EventException).
1171
1172         Tests: fast/dom/DOMException/EventException.html
1173                fast/dom/DOMException/RangeException.html
1174                fast/dom/DOMException/XPathException.html
1175                http/tests/xmlhttprequest/XMLHttpRequestException.html
1176                svg/custom/SVGException.html
1177
1178         * DerivedSources.make:
1179         * WebCore.pro:
1180         * WebCore.vcproj/WebCore.vcproj:
1181         * WebCore.xcodeproj/project.pbxproj:
1182         * WebCoreSources.bkl:
1183         * bindings/js/JSSVGMatrixCustom.cpp:
1184         (WebCore::JSSVGMatrix::inverse):
1185         (WebCore::JSSVGMatrix::rotateFromVector):
1186         * bindings/js/kjs_binding.cpp:
1187         (KJS::setDOMException):
1188         * bindings/scripts/CodeGeneratorJS.pm: Use the constant values defined
1189         in the IDL as the ObjC bindings do.
1190         * bindings/scripts/CodeGeneratorObjC.pm:
1191         * dom/DOMCoreException.cpp: Removed.
1192         * dom/DOMCoreException.h:
1193         (WebCore::DOMCoreException::DOMCoreException):
1194         * dom/DOMCoreException.idl:
1195         * dom/Event.h:
1196         * dom/EventException.h: Copied from WebCore/dom/DOMCoreException.h.
1197         (WebCore::EventException::EventException):
1198         (WebCore::EventException::):
1199         * dom/EventException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1200         * dom/EventTargetNode.cpp:
1201         (WebCore::EventTargetNode::dispatchEvent):
1202         * dom/ExceptionBase.cpp: Copied from WebCore/dom/DOMCoreException.cpp.
1203         (WebCore::ExceptionBase::ExceptionBase):
1204         (WebCore::ExceptionBase::toString):
1205         * dom/ExceptionBase.h: Copied from WebCore/dom/DOMCoreException.h.
1206         (WebCore::ExceptionBase::code):
1207         * dom/ExceptionCode.cpp:
1208         (WebCore::getExceptionCodeDescription):
1209         * dom/ExceptionCode.h:
1210         (WebCore::):
1211         * dom/Range.cpp:
1212         (WebCore::Range::insertNode):
1213         (WebCore::Range::checkNodeWOffset):
1214         (WebCore::Range::checkNodeBA):
1215         (WebCore::Range::selectNode):
1216         (WebCore::Range::selectNodeContents):
1217         (WebCore::Range::surroundContents):
1218         * dom/RangeException.h:
1219         (WebCore::RangeException::RangeException):
1220         (WebCore::RangeException::):
1221         * dom/RangeException.idl:
1222         * page/DOMWindow.idl:
1223         * svg/SVGColor.cpp:
1224         (WebCore::SVGColor::setRGBColor):
1225         * svg/SVGException.h:
1226         (WebCore::SVGException::SVGException):
1227         (WebCore::SVGException::):
1228         * svg/SVGException.idl:
1229         * svg/SVGLocatable.cpp:
1230         (WebCore::SVGLocatable::getTransformToElement):
1231         * xml/XMLHttpRequest.cpp:
1232         (WebCore::XMLHttpRequest::dispatchEvent):
1233         (WebCore::XMLHttpRequest::open):
1234         (WebCore::XMLHttpRequest::send):
1235         * xml/XMLHttpRequest.h:
1236         * xml/XMLHttpRequestException.h: Copied from WebCore/dom/DOMCoreException.h.
1237         (WebCore::XMLHttpRequestException::XMLHttpRequestException):
1238         (WebCore::XMLHttpRequestException::):
1239         * xml/XMLHttpRequestException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1240         * xml/XPathEvaluator.h:
1241         * xml/XPathException.h: Copied from WebCore/dom/DOMCoreException.h.
1242         (WebCore::XPathException::XPathException):
1243         (WebCore::XPathException::):
1244         * xml/XPathException.idl: Copied from WebCore/dom/DOMCoreException.idl.
1245         * xml/XPathParser.cpp:
1246         (WebCore::XPath::Parser::parseStatement):
1247         * xml/XPathResult.cpp:
1248         (WebCore::XPathResult::convertTo):
1249         (WebCore::XPathResult::numberValue):
1250         (WebCore::XPathResult::stringValue):
1251         (WebCore::XPathResult::booleanValue):
1252         (WebCore::XPathResult::singleNodeValue):
1253         (WebCore::XPathResult::snapshotLength):
1254         (WebCore::XPathResult::iterateNext):
1255         (WebCore::XPathResult::snapshotItem):
1256
1257 2008-01-01  Sam Weinig  <sam@webkit.org>
1258
1259         Remove JSDomExceptionConstructor.lut.h from clean step
1260         as it no longer exists.
1261
1262         * GNUmakefile.am:
1263
1264 2008-01-01  Dan Bernstein  <mitz@apple.com>
1265
1266         - Windows build fix
1267
1268         * WebCore.vcproj/WebCore.vcproj:
1269
1270 2008-01-01  Sam Weinig  <sam@webkit.org>
1271
1272         Try again to fix the builds
1273
1274         * DerivedSources.make:
1275
1276 2008-01-01  Sam Weinig  <sam@webkit.org>
1277
1278         Fix non-mac builds.
1279
1280         * WebCore.pro:
1281         * WebCore.vcproj/WebCore.vcproj:
1282         * WebCoreSources.bkl:
1283
1284 2008-01-01  Eric Seidel  <eric@webkit.org>
1285
1286         Reviewed by Alexey.
1287
1288         Don't replace \ with / in data: urls
1289         http://bugs.webkit.org/show_bug.cgi?id=16692
1290
1291         Test: fast/loader/url-data-replace-backslash.html
1292
1293         * platform/KURL.cpp:
1294         (WebCore::KURL::init):
1295
1296 2008-01-01  Alp Toker  <alp@atoker.com>
1297
1298         GTK+ autotools build fix. Track changes in r29051, r29058 and pass the
1299         correct parameter to AM_INIT_AUTOMAKE.
1300
1301         * GNUmakefile.am:
1302
1303 2007-12-31  Sam Weinig  <sam@webkit.org>
1304
1305         Reviewed by Darin.
1306
1307         Patch for http://bugs.webkit.org/show_bug.cgi?id=16637
1308         Acid3 expects ExeceptionCode constants to be defined on DOMException objects
1309
1310         - Make DOMException a real JS object.
1311
1312         Test: fast/dom/DOMException/prototype-object.html
1313
1314         * DerivedSources.make:
1315         * WebCore.xcodeproj/project.pbxproj:
1316
1317         This is no longer needed as the autogenerated classes now includes the
1318         constructor.
1319         * bindings/js/JSDOMExceptionConstructor.cpp: Removed.
1320         * bindings/js/JSDOMExceptionConstructor.h: Removed.
1321
1322         Create on demand and use the new class for DOMExceptions.
1323         * bindings/js/kjs_binding.cpp:
1324         (KJS::setDOMException):
1325
1326         Remove no longer needed custom constructor getter.
1327         * bindings/js/kjs_window.cpp:
1328         (KJS::Window::getValueProperty):
1329
1330         Don't expose DOMCoreException as the name of class by special casing
1331         the user visible class name to be DOMException.
1332         * bindings/scripts/CodeGeneratorJS.pm:
1333
1334         The DOMException class/file needs to be named DOMCoreException because there is
1335         name conflict with one of the Objective-C bindings classes.  It should be renamed
1336         to DOMException when the Objective-C bindings are moved into WebKit.
1337         * dom/DOMCoreException.cpp: Added.
1338         (WebCore::DOMCoreException::DOMCoreException):
1339         (WebCore::DOMCoreException::toString):
1340         * dom/DOMCoreException.h: Added.
1341         (WebCore::DOMCoreException::):
1342         (WebCore::DOMCoreException::code):
1343         (WebCore::DOMCoreException::name):
1344         (WebCore::DOMCoreException::message):
1345         * dom/DOMCoreException.idl: Added.
1346         * page/DOMWindow.idl:
1347
1348 2007-12-31  Sam Weinig  <sam@webkit.org>
1349
1350         Re-enable querySelector and querySelectorAll and touch the necessary files to not
1351         kill the windows build.
1352
1353         * WebCore.vcproj/build-generated-files.sh:
1354         * bindings/scripts/CodeGeneratorCOM.pm:
1355         * dom/Document.idl:
1356         * dom/Element.idl:
1357
1358 2007-12-31  Darin Adler  <darin@apple.com>
1359
1360         - fix Windows build
1361
1362         * dom/Document.idl: Temporarily disable querySelector and querySelectorAll, since they are showing
1363         up as pure virtual functions. Sam can fix this later.
1364         * dom/Element.idl: Ditto.
1365
1366 2007-12-31  Dan Bernstein  <mitz@apple.com>
1367
1368         Reviewed by Darin Adler.
1369
1370         - fix http://bugs.webkit.org/show_bug.cgi?id=14134
1371           <rdar://problem/5655160> REGRESSION (r25353): Whitespace nodes ignored between inline list items
1372
1373         Test: fast/dynamic/create-renderer-for-whitespace-only-text.html
1374
1375         * dom/Node.cpp:
1376         (WebCore::Node::attach): Added code to check if this node's renderer
1377         has become the "previous renderer" of any sibling text node, and if so,
1378         ensure that that node gets a renderer if it now needs one.
1379         (WebCore::Node::createRendererIfNeeded): Removed the assertion that the
1380         node is not attached.
1381
1382 2007-12-31  Darin Adler  <darin@apple.com>
1383
1384         Reviewed by Mitz.
1385
1386         - fix http://bugs.webkit.org/show_bug.cgi?id=16641
1387           Acid3 reveals HTMLFormElement.elements fails to update when element name changes
1388
1389         Test: fast/dom/HTMLFormElement/elements-not-in-document.html
1390
1391         This was a bug specific to forms that are not in the document tree.
1392         The fix was to change the code to increment the document version number to match
1393         up with other document change tracking. Maybe at some point we can clean these up
1394         so we don't have so many competing change notification systems.
1395
1396         * dom/ContainerNode.cpp:
1397         (WebCore::ContainerNode::replaceChild): Removed bogus comment.
1398         (WebCore::ContainerNode::addChild): Added an explicit incDOMTreeVersion
1399         call here, since this code path bypasses the subtree-modified event code.
1400
1401         * dom/Element.cpp:
1402         (WebCore::Element::setAttribute): Remove the inDocument() check -- not all HTML
1403         collections are for things in the document.
1404         (WebCore::Element::setAttributeMap): Ditto.
1405
1406         * dom/EventTargetNode.cpp:
1407         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent): Added a call to
1408         incDOMTreeVersion here; covers most cases of tree structure changes.
1409
1410         * dom/Node.cpp:
1411         (WebCore::Node::attach): Remove call to incDOMTreeVersion -- creating a renderer
1412         has nothing to do with changes to the DOM tree!
1413         (WebCore::Node::detach): Ditto.
1414
1415         * html/HTMLFormElement.cpp:
1416         (WebCore::HTMLFormElement::registerFormElement): Remove call to incDOMTreeVersion.
1417         This is handled at a lower level and doesn't need to be here.
1418         (WebCore::HTMLFormElement::removeFormElement): Ditto.
1419
1420 2007-12-31  Henry Mason  <hmason@mac.com>
1421
1422         Reviewed by Darin.
1423
1424         Patch for http://bugs.webkit.org/show_bug.cgi?id=14994
1425         Support for MessageEvent and cross-domain messaging
1426
1427         Test: http/tests/messaging/cross-domain-message-send.html
1428
1429         * DerivedSources.make:
1430         * WebCore.pro:
1431         * WebCore.vcproj/WebCore.vcproj:
1432         * WebCore.xcodeproj/project.pbxproj:
1433         * WebCoreSources.bkl:
1434         * bindings/js/JSDOMWindowCustom.cpp:
1435         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Allow cross-domain access to the
1436         postMessage function.
1437         (WebCore::JSDOMWindow::postMessage):
1438         * bindings/js/JSEventCustom.cpp:
1439         (WebCore::toJS):
1440         * dom/Event.cpp:
1441         (WebCore::Event::isMessageEvent):
1442         * dom/Event.h:
1443         * dom/EventNames.h: New event name
1444         * dom/MessageEvent.cpp: Added.
1445         * dom/MessageEvent.h: Added.
1446         * dom/MessageEvent.idl: Added.
1447         * page/DOMWindow.cpp:
1448         (WebCore::DOMWindow::postMessage): Added.
1449         * page/DOMWindow.h:
1450         * page/DOMWindow.idl:
1451
1452 2007-12-31  Darin Adler  <darin@apple.com>
1453
1454         Suggested by Antti.
1455
1456         - turn ENABLE_VIDEO back off for Windows until we can install QuickTime on the build bots
1457
1458         * WebCore.vcproj/WebCore.vcproj: Removed ENABLE_VIDEO.
1459         * WebCore.vcproj/build-generated-files.sh: Ditto.
1460
1461 2007-12-30  Alp Toker  <alp@atoker.com>
1462
1463         Reviewed by Dan Bernstein.
1464
1465         Silence warning.
1466
1467         * dom/NodeList.h:
1468
1469 2007-12-30  Sam Weinig  <sam@webkit.org>
1470
1471         Reviewed by Oliver Hunt.
1472
1473         Fix for http://bugs.webkit.org/show_bug.cgi?id=16387
1474         Variable names can be enumerated across domains
1475         <rdar://problem/5640454>
1476
1477         Test: http/tests/security/cross-frame-access-enumeration.html
1478
1479         * bindings/js/kjs_window.cpp:
1480         (KJS::Window::getPropertyNames): Override method to test same-origin policy.
1481         * bindings/js/kjs_window.h:
1482
1483 2007-12-30  Sam Weinig  <sam@webkit.org>
1484
1485         Reviewed by Oliver Hunt.
1486
1487         Patch for http://bugs.webkit.org/show_bug.cgi?id=10686
1488         event instanceof MouseEvent throws exception
1489
1490         Add JS constructors for all the Event types.
1491
1492         Test: fast/events/event-instanceof.html
1493
1494         * WebCore.xcodeproj/project.pbxproj:
1495         * dom/KeyboardEvent.idl:
1496         * dom/MouseEvent.idl:
1497         * dom/MutationEvent.idl:
1498         * dom/OverflowEvent.idl:
1499         * dom/ProgressEvent.idl:
1500         * dom/TextEvent.idl:
1501         * dom/UIEvent.idl:
1502         * dom/WheelEvent.idl:
1503         * page/DOMWindow.idl:
1504
1505 2007-12-30  David Kilzer  <ddkilzer@webkit.org>
1506
1507         Reviewed by Darin.
1508
1509         - fix http://bugs.webkit.org/show_bug.cgi?id=15359
1510           JPEG image not shown when height is specified as percentage inside a table
1511
1512         The problem occurs when a replaced element (image, canvas, etc.) with
1513         a percent-height attribute is contained by a table cell with an auto-
1514         or percent-height attribute.  If there are no other conditions to cause
1515         the table cell's height to expand, an available height of zero will
1516         always be returned.  In these cases, the intrinsic height of the
1517         replaced element should be used if it is greater than the available
1518         height of the table cell.
1519
1520         Tests: fast/replaced/table-percent-height.html
1521                tables/mozilla/bugs/bug137388-1.html
1522                tables/mozilla/bugs/bug137388-2.html
1523
1524         * rendering/RenderBox.cpp:
1525         (WebCore::RenderBox::calcReplacedHeightUsing):
1526
1527 2007-12-30  Luca Bruno  <lethalman88@gmail.com>
1528
1529         Reviewed by Alp Toker.
1530
1531         http://bugs.webkit.org/show_bug.cgi?id=16099
1532         Crash in CURL for empty POST
1533
1534         We have to set POST even when the data is empty, otherwise cURL will
1535         hang while waiting for a response.
1536
1537         * platform/network/curl/ResourceHandleManager.cpp
1538         (ResourceHandleManager::setupPOST): allow empty POST
1539
1540 2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
1541
1542         Reviewed by Alp Toker.
1543
1544         Move all SVG related stuff inside SVG block. Don't include
1545         SVGNames, SVGElementFactory, and XLinkNames when SVG is not
1546         enabled
1547
1548         * GNUmakefile.am:
1549
1550 2007-12-29  Alexey Proskuryakov  <ap@webkit.org>
1551
1552         Reviewed by Darin.
1553
1554         http://bugs.webkit.org/show_bug.cgi?id=14428
1555         FCKEditor: Images disappear on drag/drop and copy/paste
1556
1557         Test: editing/pasteboard/drag-image-in-about-blank-frame.html
1558
1559         * editing/markup.cpp: (WebCore::createFragmentFromMarkup): Don't use "about:blank" as a
1560         base URL, just like we don't use an empty one.
1561
1562 2007-12-29  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
1563
1564         Reviewed by Alp Toker.
1565
1566         http://bugs.webkit.org/show_bug.cgi?id=16669
1567         autotools update and fixes
1568
1569         Autotools update and database/icon database inclusion guard fixes
1570
1571         * GNUmakefile.am:
1572           - Update autotools config as per -r29012 changes
1573           - Fix CSSGrammar.h/cpp generation (Seo Sanghyeon, sanxiyn)
1574         * dom/Document.cpp:
1575         * loader/icon/IconDatabase.h:
1576         * page/DOMWindow.cpp:
1577         * page/InspectorController.cpp:
1578         * page/Settings.cpp:
1579         * storage/Database.h:
1580           - Remove ENABLE(DATABASE) inclusion guard. Let the includer add the guard instead.
1581
1582 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
1583
1584         Reviewed by Alexey.
1585
1586         Respect horiz-origin-x / horiz-origin-y / vert-origin-x / vert-origin-y properties when drawing SVG Fonts.
1587         (Fixes fonts-elem-05-t.svg in a --svg-fonts build)
1588
1589         * svg/SVGFont.cpp:
1590         (WebCore::Font::drawGlyphsWithSVGFont):
1591
1592 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
1593
1594         Reviewed by Oliver.
1595
1596         Further SVG Font work. Parse all <glyph> attributes, using SVGGlyphElement::buildGlyphIdentifier.
1597         SVGFontElement::collectGlyphs() now uses this method. Per character advance values work well now.
1598
1599         * platform/graphics/FontData.cpp:
1600         (WebCore::SVGFontData::convertEmUnitToPixel): Add helper function.
1601         (WebCore::FontData::ascent):
1602         (WebCore::FontData::descent):
1603         * platform/graphics/FontData.h:
1604         * svg/SVGFont.cpp:
1605         (WebCore::isVerticalWritingMode): Add helper function.
1606         (WebCore::Font::drawGlyphsWithSVGFont):
1607         * svg/SVGFontElement.cpp:
1608         (WebCore::SVGFontElement::collectGlyphs): Simplified implementation - SVGGlyphIdentifier now build by SVGGlyphElement.
1609         * svg/SVGGlyphElement.cpp:
1610         (WebCore::parseArabicForm): Helper function.
1611         (WebCore::parseOrientation): Ditto.
1612         (WebCore::parsePathData): Ditto.
1613         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
1614         * svg/SVGGlyphElement.h:
1615         (WebCore::SVGGlyphElement::rendererIsNeeded):
1616
1617 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
1618
1619         Reviewed by Oliver.
1620
1621         Refactor SVGAnimationElement::parseValues into a generic function parseDelimitedString.
1622         SVGAnimationElement needs to parse semicolon-seperated strings, SVGGlyphElement comma-seperated.
1623
1624         * svg/SVGAnimationElement.cpp:
1625         (WebCore::SVGAnimationElement::parseMappedAttribute):
1626         * svg/SVGParserUtilities.cpp:
1627         (WebCore::parseDelimitedString):
1628         * svg/SVGParserUtilities.h:
1629
1630 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
1631
1632         Reviewed by Maciej.
1633
1634         Add new helper structure SVGFontData - FontData holds this object as OwnPtr.
1635         Store several attribute values there (horiz-adv-x, horiz-origin-x etc..)
1636
1637         To optimize for the common case ('FontData' used for HTML rendering) it feels
1638         better to hold one OwnPtr in FontData, than several floats.
1639
1640         Parse all <font> attributes in SVGFontFaceElement::createFontData.
1641
1642         * platform/graphics/FontData.cpp:
1643         (WebCore::SVGFontData::SVGFontData):
1644         (WebCore::FontData::FontData):
1645         (WebCore::FontData::ascent):
1646         (WebCore::FontData::descent):
1647         * platform/graphics/FontData.h:
1648         (WebCore::FontData::isSVGFont):
1649         (WebCore::FontData::svgFontData):
1650         * svg/SVGFont.cpp:
1651         (WebCore::Font::drawGlyphsWithSVGFont):
1652         * svg/SVGFontElement.cpp:
1653         * svg/SVGFontElement.h:
1654         (WebCore::SVGFontElement::rendererIsNeeded):
1655         * svg/SVGFontFaceElement.cpp:
1656         (WebCore::SVGFontFaceElement::unitsPerEm):
1657         (WebCore::SVGFontFaceElement::createFontData):
1658
1659 2007-12-28  Darin Adler  <darin@apple.com>
1660
1661         - try to fix Windows and WX builds (broken by SVG Fonts check-in)
1662
1663         * platform/graphics/win/FontWin.cpp:
1664         (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent, now that it requires it.
1665         I can't see how it can be right to require the font size for ascent and descent,
1666         but not for other metrics functions in FontData.
1667
1668         * platform/graphics/wx/FontWx.cpp:
1669         (WebCore::Font::drawGlyphs): Pass font size to FontData::ascent and FontData::descent.
1670
1671 2007-12-28  Dan Bernstein  <mitz@apple.com>
1672
1673         Reviewed by Mark Rowe.
1674
1675         - fix http://bugs.webkit.org/show_bug.cgi?id=16650
1676           <rdar://problem/5664872> REGRESSION (r28278-r28314): ATSUI uses LTR writing direction for all text runs
1677
1678         Covered by existing pixel tests.
1679
1680         * platform/graphics/mac/FontMac.mm:
1681         (WebCore::Font::drawComplexText): Corrected to maintain the style
1682         information in the adjusted text run when passing it to
1683         ATSUILayoutParameters. Prior to r28298 the style was passed separately.
1684
1685 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
1686
1687         Build fix, not reviewed.
1688
1689         Add wtf/OwnPtr.h include, to fix --svg-fonts build.
1690
1691         * css/SVGCSSFontFace.h:
1692
1693 2007-12-29  Nikolas Zimmermann  <zimmermann@kde.org>
1694
1695         Reviewed by Eric.
1696
1697         Fixes: http://bugs.webkit.org/show_bug.cgi?id=10649 (WebKit SVG needs SVG Fonts support)
1698
1699         Begin implementation of SVG Fonts module. Basic documents using SVG Fonts already work.
1700         Only local, in-document fonts who declare their glyphs using the <glyph d="..."> path syntax
1701         are supported. (<glyph> containing arbitary SVG content as child elements, not supported yet).
1702
1703         Limited to single char <-> glyph mapping, no ligatures supported yet.
1704         (ie. <glyph unicode='A'/> <glyph unicode='AB'/> - it ignores the 'AB' glyph definition for now)
1705
1706         Mark all SVG Font related classes & usages in ENABLE(SVG_FONTS) blocks.
1707
1708         No layout test changes for a --no-svg-fonts build, heavy changes if enabled. Because a lot of SVG Font
1709         attributes are not processed yet, the rendering looks wrong - hence disabled by default.)
1710
1711         * DerivedSources.make: Add SVGFontElement/SVGGlyphElement/SVGMissingGlyphElement
1712         * WebCore.pro: Updated build system.
1713         * WebCore.vcproj/WebCore.vcproj: Ditto.
1714         * WebCore.xcodeproj/project.pbxproj: Ditto.
1715         * bindings/js/JSSVGElementWrapperFactory.cpp: Add JSSVGFontElement/JSSVGGlyphElement/JSSVGMissingGlyphElement
1716         * bindings/objc/DOM.mm: Ditto (for DOMSVG*).
1717         (WebCore::createElementClassMap):
1718         * bindings/objc/DOMInternal.h: Ditto.
1719         * bindings/objc/DOMSVG.h: Ditto.
1720         * css/CSSFontFace.h: Mark three functions 'virtual', to be overriden by SVGCSSFontFace
1721         * css/CSSFontFaceSrcValue.h: Add functionality to identify as SVG CSS font face source.
1722         (WebCore::CSSFontFaceSrcValue::m_fontFaceElement): Hold a pointer to the font face which created it.
1723         (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
1724         (WebCore::CSSFontFaceSrcValue::setSVGFontFaceElement):
1725         * css/CSSFontSelector.cpp: Build 'SVGCSSFontFace' objects for local, in-document SVG fonts.
1726         (WebCore::CSSFontSelector::addFontFaceRule):
1727         * css/SVGCSSFontFace.cpp: Added. (Simplified implementation for SVG Fonts)
1728         (WebCore::SVGCSSFontFace::SVGCSSFontFace):
1729         (WebCore::SVGCSSFontFace::~SVGCSSFontFace):
1730         (WebCore::SVGCSSFontFace::isValid):
1731         (WebCore::SVGCSSFontFace::addSource):
1732         (WebCore::SVGCSSFontFace::getFontData):
1733         * css/SVGCSSFontFace.h: Added.
1734         * platform/graphics/cg/PathCG.cpp:
1735         (WebCore::Path::closeSubpath): Silence a CG warning when calling closeSubpath() on empty path.
1736         * platform/graphics/Font.cpp: Add some logic to call into SVG Font code when operating on SVG Fonts.
1737         (WebCore::Font::ascent): Pass font size to FontData::ascent() call
1738         (WebCore::Font::descent): Pass font size to FontData::descent() call
1739         (WebCore::Font::canUseGlyphCache): Always return true for SVG fonts here.
1740         (WebCore::Font::drawGlyphBuffer): Call drawGlyphsWithSVGFont (instead of drawGlyphs) if the primary font is a SVG font.
1741         * platform/graphics/Font.h: Add (SVG-only!) ability to store a RenderObject pointer, to the element which invoked the drawText() call.
1742         (WebCore::TextRun::TextRun):
1743         (WebCore::TextRun::referencingRenderObject):
1744         (WebCore::TextRun::setReferencingRenderObject):
1745         * platform/graphics/FontData.cpp:
1746         (WebCore::FontData::FontData):
1747         (WebCore::FontData::ascent):
1748         (WebCore::FontData::descent):
1749         * platform/graphics/FontData.h: Store a pointer to the SVGFontFaceElement, which created this FontData object - needed for drawGlyphsWithSVGFont().
1750         (WebCore::FontData::isSVGFont): Offer a way to determine wheter this is a FontData object, created by a SVGFontFaceElement.
1751         (WebCore::FontData::svgFontFace):
1752         * rendering/SVGInlineTextBox.cpp:
1753         (WebCore::SVGInlineTextBox::calculateGlyphWidth): Add assertion.
1754         * rendering/SVGRootInlineBox.cpp:
1755         (WebCore::svgTextRunForInlineTextBox): Always call 'setReferencingRenderObject(myRenderSVGText)' on the new TextRun
1756         * svg/SVGFont.cpp: Added.
1757         (WebCore::Font::drawGlyphsWithSVGFont): Outsourced implementation of SVG Fonts into it's own file.
1758         * svg/SVGFontElement.cpp: Added. (Note: this holds the GlyphHashMap which associates certain <glyph> objects with unicode values)
1759         (WebCore::SVGFontElement::SVGFontElement):
1760         (WebCore::SVGFontElement::~SVGFontElement):
1761         (WebCore::SVGFontElement::parseMappedAttribute):
1762         (WebCore::SVGFontElement::collectGlyphs):
1763         (WebCore::SVGFontElement::glyphIdentifierForGlyphCode):
1764         * svg/SVGFontElement.h: Added.
1765         (WebCore::GlyphHash::hash):
1766         (WebCore::GlyphHash::equal):
1767         (WebCore::GlyphHashTraits::deletedValue):
1768         (WebCore::SVGFontElement::rendererIsNeeded):
1769         (WebCore::SVGFontElement::contextElement):
1770         * svg/SVGFontElement.idl: Added.
1771         * svg/SVGFontFaceElement.cpp: Build SVG specific 'FontData' object
1772         (WebCore::SVGFontFaceElement::unitsPerEm):
1773         (WebCore::SVGFontFaceElement::fontFamily):
1774         (WebCore::SVGFontFaceElement::createFontData): Builds SVG specified 'FontData' object with the markup specified ascent/descent values etc..
1775         (WebCore::SVGFontFaceElement::rebuildFontFace): Construct CSSFontFaceSrc object (marked as 'isSVGFontFaceSrc') to satisfy CSSFontSelector::addFontFaceRule.
1776         (WebCore::SVGFontFaceElement::insertedIntoDocument): Rebuild font face.
1777         (WebCore::SVGFontFaceElement::glyphIdentifierForGlyphCode): Allows drawGlyphsWithSVGFont to access the glyph hash map living in the SVGFontElement.
1778         * svg/SVGFontFaceElement.h: Fixed code formatting issues & wrap in ENABLE(SVG_FONTS) blocks.
1779         * svg/SVGFontFaceElement.idl: Ditto.
1780         * svg/SVGFontFaceFormatElement.cpp: Ditto.
1781         * svg/SVGFontFaceFormatElement.h: Ditto.
1782         * svg/SVGFontFaceFormatElement.idl: Ditto.
1783         * svg/SVGFontFaceNameElement.cpp: Ditto.
1784         * svg/SVGFontFaceNameElement.h: Ditto.
1785         * svg/SVGFontFaceNameElement.idl: Ditto.
1786         * svg/SVGFontFaceSrcElement.cpp: Ditto.
1787         * svg/SVGFontFaceSrcElement.h: Ditto.
1788         * svg/SVGFontFaceSrcElement.idl: Ditto.
1789         * svg/SVGFontFaceUriElement.cpp: Ditto.
1790         * svg/SVGFontFaceUriElement.h: Ditto.
1791         * svg/SVGFontFaceUriElement.idl: Ditto.
1792         * svg/SVGDefinitionSrcElement.cpp: Ditto.
1793         * svg/SVGDefinitionSrcElement.h: Ditto.
1794         * svg/SVGDefinitionSrcElement.idl: Ditto.
1795         * svg/SVGGlyphElement.cpp: Added.
1796         (WebCore::SVGGlyphElement::SVGGlyphElement):
1797         (WebCore::SVGGlyphElement::parseMappedAttribute):
1798         (WebCore::SVGGlyphElement::childrenChanged):
1799         * svg/SVGGlyphElement.h: Added.
1800         (WebCore::SVGGlyphElement::rendererIsNeeded):
1801         (WebCore::SVGGlyphIdentifier::): Structure holding all data to represent a SVG glyph (origin, advance, orientation etc..)
1802         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
1803         * svg/SVGGlyphElement.idl: Added.
1804         * svg/SVGMissingGlyphElement.cpp: Added. (stub implementation)
1805         (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
1806         (WebCore::SVGMissingGlyphElement::parseMappedAttribute):
1807         (WebCore::SVGMissingGlyphElement::childrenChanged):
1808         * svg/SVGMissingGlyphElement.h: Added.
1809         (WebCore::SVGMissingGlyphElement::rendererIsNeeded):
1810         * svg/SVGMissingGlyphElement.idl: Added.
1811         * svg/svgtags.in: Wrap all SVGFont* elements in ENABLE(SVG_FONTS) block - to assure --no-svg-fonts compilation works (which is the default for now!).
1812
1813 2007-12-27  Dan Bernstein  <mitz@apple.com>
1814
1815         Reviewed by Alexey Proskuryakov.
1816
1817         - fix http://bugs.webkit.org/show_bug.cgi?id=16628
1818           ASSERTION FAILED: m_resizeLayer (running layout tests)
1819
1820         * rendering/RenderLayer.cpp:
1821         (WebCore::RenderLayer::~RenderLayer): Avoid calling
1822         EventHandler::resizeLayerDestroyed() if the document is being destroyed.
1823
1824 2007-12-27  Dan Bernstein  <mitz@apple.com>
1825
1826         Reviewed by Oliver Hunt.
1827
1828         - fix http://bugs.webkit.org/show_bug.cgi?id=16603
1829           <rdar://problem/5664199> Crash when resizing text field
1830
1831         Test: fast/layers/resize-layer-deletion-crash.html
1832
1833         The event handler has only a weak reference to the layer that is
1834         currently in resize mode, so it is the layer's responsibility to let
1835         the event handler know if it has been destroyed while in that mode.
1836
1837         * page/EventHandler.cpp:
1838         (WebCore::EventHandler::resizeLayerDestroyed): Added. Resets
1839         m_resizeLayer to 0.
1840         * page/EventHandler.h:
1841         * rendering/RenderLayer.cpp:
1842         (WebCore::RenderLayer::~RenderLayer): Added a call to
1843         EventHandler::resizeLayerDestroyed() if the layer is in resize mode.
1844
1845 2007-12-27  Collin Jackson  <webkit@collinjackson.com>
1846
1847         Reviewed by Sam Weinig.
1848
1849         http://bugs.webkit.org/show_bug.cgi?id=16539
1850         <rdar://problem/5659269>
1851
1852         The same-origin check was missing in the implementation of 
1853         setTimeout, setInterval, addEventListener, and removeEventListener.
1854
1855         Suppose <http://www.badguy.com/> contains an iframe to 
1856         <http://www.goodguy.com/>. Now www.badguy.com can steal
1857         www.goodguy.com cookies by running this code:
1858
1859         setTimeout.call(frames[0], "alert(document.cookie)", 1000);
1860
1861         This patch changes the behavior so that setTimeout to does 
1862         nothing and returns an undefined value if the caller is not
1863         permitted to script the window whose setTimeout method is being
1864         called. The same applies to setInterval, addEventListener, and 
1865         removeEventListener.
1866
1867         Tests: http/tests/security/cross-frame-access-call.html
1868
1869         * bindings/js/kjs_window.cpp:
1870         (KJS::WindowProtoFuncSetTimeout::callAsFunction)
1871         (KJS::WindowProtoFuncSetInterval::callAsFunction)
1872         (KJS::WindowProtoFuncAddEventListener::callAsFunction)
1873         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction)
1874
1875 2007-12-27  Dan Bernstein  <mitz@apple.com>
1876
1877         Reviewed by Dave Hyatt and Sam Weinig.
1878
1879         - fix <rdar://problem/5605937> Inspector: Disclosure triangle not drawn in node's properties panel until click
1880
1881         Test: fast/layers/add-layer-with-nested-stacking.html
1882         Test: fast/layers/remove-layer-with-nested-stacking.html
1883
1884         * rendering/RenderLayer.cpp:
1885         (WebCore::RenderLayer::addChild): If the new child is overflow-only
1886         but has children of its own, dirty the stacking context's z-order lists
1887         since the grandchildren might need to be in them.
1888         (WebCore::RenderLayer::removeChild): Similarly for the old child.
1889
1890 2007-12-27  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
1891
1892         Reviewed by Alp Toker.
1893
1894         http://bugs.webkit.org/show_bug.cgi?id=16353
1895         [GTK] Check for deprecated API use (G_DISABLE_DEPRECATED etc.)
1896
1897         Added the flags mentioned in the bug only when doing 'debug'
1898         builds. -DGST_DISABLE_DEPRECATED only added when video is enabled.
1899
1900         * GNUmakefile.am:
1901         * WebCore.pro:
1902
1903 2007-12-27  Dan Bernstein  <mitz@apple.com>
1904
1905         Reviewed by Eric Seidel.
1906
1907         - fix http://bugs.webkit.org/show_bug.cgi?id=16490
1908           ASSERT in ~FrameView while viewing/reloading WICD test case
1909
1910         Test: fast/dynamic/paused-event-dispatch.html
1911
1912         * page/FrameView.cpp:
1913         (WebCore::FrameView::~FrameView):
1914         (WebCore::FrameView::layout): Changed to always pause event dispatch and
1915         always resume event dispatch, regardless of whether the post-layout
1916         task timer is active. However, if it is active, assert that event
1917         dispatch is still paused.
1918
1919 2007-12-27  Alexey Proskuryakov  <ap@webkit.org>
1920
1921         Reviewed by Maciej.
1922
1923         http://bugs.webkit.org/show_bug.cgi?id=14500
1924         need to be more generous about charset declaration with meta tag
1925         
1926         http://bugs.webkit.org/show_bug.cgi?id=12526
1927         <rdar://problem/4867183> Safari ignores encoding description "charset=Shift_JIS" in invalid html
1928
1929         <rdar://problem/4892428> Unlike other browsers, WebKit ignores <meta> charset definitions outside the head
1930
1931         <rdar://problem/5643774> REGRESSION: Text is garbled when clicking a link inside an Arabic website
1932
1933         Tests: fast/encoding/ahram-org-eg.html
1934                fast/encoding/bandai-co-jp-releases.html
1935                fast/encoding/floraexpress-ru.html
1936                fast/encoding/hanarei-blog32-fc2-com.html
1937                fast/encoding/yahoo-mail.html
1938
1939         * loader/TextResourceDecoder.cpp:
1940         (WebCore::TextResourceDecoder::checkForHeadCharset): Don't stop looking for <meta> until we've
1941         seen at least 512 bytes of input.
1942
1943 2007-12-26  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
1944
1945         Reviewed by Alp Toker.
1946
1947         http://bugs.webkit.org/show_bug.cgi?id=16390
1948         Use autotools or GNU make as the build system for the GTK port
1949
1950         * GNUmakefile.am: Added.
1951
1952 2007-12-26  Alexey Proskuryakov  <ap@webkit.org>
1953
1954         Reviewed by Sam Weinig.
1955
1956         http://bugs.webkit.org/show_bug.cgi?id=16609
1957         Make manual-tests/xmlhttprequest-contenttype-empty.html test automatic
1958
1959         * manual-tests/xmlhttprequest-contenttype-empty.html: Removed (moved to LayoutTests/http).
1960
1961 2007-12-26  Mark Rowe  <mrowe@apple.com>
1962
1963         Windows build fix.
1964
1965         * platform/Threading.h:
1966
1967 2007-12-25  Rob Buis  <buis@kde.org>
1968
1969         Reviewed by Eric.
1970
1971         http://bugs.webkit.org/show_bug.cgi?id=15514
1972         <clipPath> with <use> not respected
1973         http://bugs.webkit.org/show_bug.cgi?id=16557
1974         SVG circle elements have been clipped away completely, instead of partially.
1975
1976         Add toClipPath to get clip path data for the clipping paths. Implement it for <use>, thereby allowing clip paths using use.
1977
1978         * svg/SVGClipPathElement.cpp:
1979         (WebCore::SVGClipPathElement::canvasResource):
1980         * svg/SVGStyledTransformableElement.h:
1981         (WebCore::SVGStyledTransformableElement::toClipPath):
1982         * svg/SVGUseElement.cpp:
1983         (WebCore::isDirectReference):
1984         (WebCore::SVGUseElement::toClipPath):
1985         * svg/SVGUseElement.h:
1986
1987 2007-12-25  Sam Weinig  <sam@webkit.org>
1988
1989         Reviewed by Eric Seidel.
1990
1991         Clean up the files relating to NodeLists.
1992
1993         * dom/ChildNodeList.cpp:
1994         (WebCore::ChildNodeList::ChildNodeList):
1995         (WebCore::ChildNodeList::length):
1996         (WebCore::ChildNodeList::item):
1997         (WebCore::ChildNodeList::nodeMatches):
1998         * dom/ChildNodeList.h:
1999         * dom/DynamicNodeList.cpp:
2000         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
2001         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
2002         (WebCore::DynamicNodeList::itemWithName):
2003         * dom/DynamicNodeList.h:
2004         (WebCore::DynamicNodeList::needsNotifications):
2005         * dom/NameNodeList.cpp:
2006         (WebCore::NameNodeList::NameNodeList):
2007         (WebCore::NameNodeList::rootNodeAttributeChanged):
2008         (WebCore::NameNodeList::nodeMatches):
2009         * dom/NameNodeList.h:
2010         * dom/NodeList.h:
2011         * dom/SelectorNodeList.h:
2012
2013 2007-12-25  Sam Weinig  <sam@webkit.org>
2014
2015         Fix non-mac builds.
2016
2017         * WebCore.pro:
2018         * WebCore.vcproj/WebCore.vcproj:
2019         * WebCoreSources.bkl:
2020
2021 2007-12-25  Sam Weinig  <sam@webkit.org>
2022
2023         Rubber stamped by Eric Seidel.
2024
2025         Move TagNodeList into its own file.
2026
2027         * WebCore.xcodeproj/project.pbxproj:
2028         * dom/Node.cpp:
2029         * dom/TagNodeList.cpp: Copied from dom/Node.cpp.
2030         (WebCore::TagNodeList::TagNodeList):
2031         * dom/TagNodeList.h: Copied from dom/Node.cpp.
2032
2033 2007-12-25  Sam Weinig  <sam@webkit.org>
2034
2035         Reviewed by Eric Seidel.
2036
2037         Simplify the NodeList architecture.
2038         - Rename recursiveItem() to item(), since it is not recursive.
2039         - Make recursiveLength() iterative and rename to length().
2040         - Remove now unneeded overrides of item() and length() that used 
2041           to call the recursive variants.
2042
2043         * dom/ClassNodeList.cpp:
2044         * dom/ClassNodeList.h:
2045         * dom/DynamicNodeList.cpp:
2046         (WebCore::DynamicNodeList::length):
2047         (WebCore::DynamicNodeList::item):
2048         (WebCore::DynamicNodeList::rootNodeAttributeChanged): Move implementation 
2049         into the .cpp file since virtual methods can't be inlined.
2050         * dom/DynamicNodeList.h:
2051         * dom/NameNodeList.cpp:
2052         * dom/NameNodeList.h:
2053         * dom/Node.cpp:
2054
2055 2007-12-25  Alp Toker  <alp@atoker.com>
2056
2057         More complete GTK+/Qt/Wx/Win build fixes for breakage introduced in
2058         r28981.
2059
2060         * WebCore.pro:
2061         * WebCore.vcproj/WebCore.vcproj:
2062         * WebCoreSources.bkl:
2063
2064 2007-12-25  Alp Toker  <alp@atoker.com>
2065
2066         Win build fix for breakage introduced in r28981.
2067
2068         * WebCore.vcproj/WebCore.vcproj:
2069
2070 2007-12-25  Alp Toker  <alp@atoker.com>
2071
2072         Wx build fix for breakage introduced in r28981.
2073
2074         * WebCoreSources.bkl:
2075
2076 2007-12-25  Alp Toker  <alp@atoker.com>
2077
2078         GTK+/Qt build fix for breakage introduced in r28981.
2079
2080         * WebCore.pro:
2081
2082 2007-12-25  David Smith  <catfish.man@gmail.com> and Sam Weinig  <sam@webkit.org>
2083
2084         Reviewed by Oliver.
2085         
2086         - http://bugs.webkit.org/show_bug.cgi?id=16587
2087         Implement the most useful part of the W3C Selectors API.
2088
2089         * WebCore.xcodeproj/project.pbxproj:
2090         * css/CSSStyleSelector.h: Make Node a friend of CSSStyleSelector so it can use checkSelector()
2091         * dom/ChildNodeList.cpp:
2092         (WebCore::ChildNodeList::ChildNodeList): Change to being a DynamicNodeList
2093         * dom/ChildNodeList.h:
2094         * dom/ClassNodeList.cpp:
2095         (WebCore::ClassNodeList::ClassNodeList): Change to being a DynamicNodeList
2096         * dom/ClassNodeList.h:
2097         * dom/Document.idl: Add the new functions
2098         * dom/DynamicNodeList.cpp: Copied from WebCore/dom/NodeList.cpp.
2099         (WebCore::DynamicNodeList::DynamicNodeList): Rename NodeList to DynamicNodeList, to differentiate it from the new StaticNodeList
2100         (WebCore::DynamicNodeList::~DynamicNodeList):
2101         (WebCore::DynamicNodeList::recursiveLength):
2102         (WebCore::DynamicNodeList::itemForwardsFromCurrent):
2103         (WebCore::DynamicNodeList::itemBackwardsFromCurrent):
2104         (WebCore::DynamicNodeList::recursiveItem):
2105         (WebCore::DynamicNodeList::itemWithName):
2106         (WebCore::DynamicNodeList::rootNodeChildrenChanged):
2107         (WebCore::DynamicNodeList::Caches::Caches):
2108         (WebCore::DynamicNodeList::Caches::reset):
2109         * dom/DynamicNodeList.h: Copied from WebCore/dom/NodeList.h.
2110         (WebCore::DynamicNodeList::rootNodeAttributeChanged):
2111         * dom/Element.idl: Add the new functions
2112         * dom/NameNodeList.cpp: Change to being a DynamicNodeList
2113         (WebCore::NameNodeList::NameNodeList):
2114         * dom/NameNodeList.h:
2115         (WebCore::NameNodeList::rootNodeAttributeChanged):
2116         * dom/Node.cpp:
2117         (WebCore::TagNodeList::TagNodeList): Change to being a DynamicNodeList
2118         (WebCore::Node::registerDynamicNodeList):
2119         (WebCore::Node::unregisterDynamicNodeList):
2120         (WebCore::Node::getElementsByName):
2121         (WebCore::Node::getElementsByClassName):
2122         (WebCore::Node::querySelector): new
2123         (WebCore::Node::querySelectorAll): new
2124         * dom/Node.h:
2125         * dom/NodeList.cpp: Removed.
2126         * dom/NodeList.h: This is now an abstract superclass of DynamicNodeList and StaticNodeList
2127         (WebCore::NodeList::NodeList):
2128         (WebCore::NodeList::~NodeList):
2129         * dom/SelectorNodeList.cpp: Added.
2130         (WebCore::SelectorNodeList::SelectorNodeList): New StaticNodeList subclass that filters elements by CSS selector
2131         * dom/SelectorNodeList.h: Added.
2132         * dom/StaticNodeList.cpp: Added.
2133         (WebCore::StaticNodeList::length):
2134         (WebCore::StaticNodeList::item):
2135         (WebCore::StaticNodeList::itemWithName):
2136         * dom/StaticNodeList.h: Added.
2137         (WebCore::StaticNodeList::StaticNodeList):
2138         (WebCore::StaticNodeList::~StaticNodeList):
2139
2140 2007-12-25  Mark Rowe  <mrowe@apple.com>
2141
2142         Reviewed by Sam Weinig.
2143
2144         Implement a lock-free ThreadSafeShared for i386, x86_64, ppc and ppc64.
2145         http://bugs.webkit.org/show_bug.cgi?id=16596
2146
2147         This is a 1.7x as fast as the lock-based implementation on x86 for a single-threaded use
2148         of ThreadSafeShared but is closer to 280x as fast when there is heavy concurrent multi-threaded
2149         access to a single ThreadSafeShared object.
2150
2151         The atomic operations are based on those used by the Boost C++ library's shared_ptr implementation.
2152
2153         * platform/Threading.h:
2154         (WebCore::atomicIncrement):
2155         (WebCore::atomicDecrement):
2156         (WebCore::ThreadSafeShared::ThreadSafeShared):
2157         (WebCore::ThreadSafeShared::ref): Use lock-free operations if available.
2158         (WebCore::ThreadSafeShared::deref): Ditto.
2159         (WebCore::ThreadSafeShared::hasOneRef):
2160         (WebCore::ThreadSafeShared::refCount):
2161         (WebCore::ThreadSafeShared::isThreadSafe):
2162
2163 2007-12-24  Darin Adler  <darin@apple.com>
2164
2165         * platform/text/PlatformString.h: Removed now-incorrect comment.
2166         Added a comment about copy().
2167         * platform/text/StringImpl.h: Added a comment about copy().
2168
2169 2007-12-24  Darin Adler  <darin@apple.com>
2170
2171         Reviewed by Maciej.
2172
2173         - http://bugs.webkit.org/show_bug.cgi?id=16550
2174           make StringImpl immutable
2175
2176         I tried to keep the changes to a minimum. In some cases there is
2177         room for optimization -- I didn't try to add in the "single ref count"
2178         optimizations and there might be a tiny bit more string copying than
2179         we had before.
2180
2181         * WebCore.base.exp: Updated.
2182
2183         * dom/CharacterData.cpp:
2184         (WebCore::CharacterData::appendData): Changed to use String since
2185         StringImpl doesn't have mutating functions any more.
2186         (WebCore::CharacterData::insertData): Ditto.
2187         (WebCore::CharacterData::deleteData): Ditto.
2188         (WebCore::CharacterData::replaceData): Ditto.
2189         * dom/Text.cpp:
2190         (WebCore::Text::splitText): Changed to use substring instead of
2191         remove since StringImpl does't have mutating functions any more.
2192         * editing/CompositeEditCommand.cpp:
2193         (WebCore::CompositeEditCommand::deleteInsignificantText): Changed
2194         to use String instead of StringImpl so we can use remove.
2195
2196         * platform/text/PlatformString.h: Removed newUninitialized.
2197         Added append that takes a character pointer and length.
2198
2199         * platform/text/String.cpp:
2200         (WebCore::String::insert): Added an implementation that does not
2201         rely on an underlying StringImpl function.
2202         (WebCore::String::append): Ditto.
2203         (WebCore::String::truncate): Ditto.
2204         (WebCore::String::remove): Ditto.
2205         (WebCore::String::charactersWithNullTermination): Added an
2206         implementation that uses the new StringImpl null termination feature,
2207         which does not require modifying a string.
2208
2209         * platform/text/StringImpl.cpp:
2210         (WebCore::isSpace): Fix comment.
2211         (WebCore::StringImpl::StringImpl): Added a new constructor that makes
2212         a string with a trailing null character.
2213         (WebCore::StringImpl::substring): Marked const.
2214         (WebCore::StringImpl::replace): Marked const; had to add quite a few
2215         const_cast. Also rewrote one of these to work without modifying the
2216         existing string.
2217
2218         * platform/text/StringImpl.h: Fixed a mistake where the empty string had
2219         m_hasTerminatingNullCharacter uninitialized. Added a type and constructor
2220         for creating strings that have a trailing null character. Added a
2221         hasTerminatingNullCharacter function. Removed newUninitialized,
2222         charactersWithNullTermination, append, insert, truncate, and remove.
2223         Marked lots of other functions const.
2224
2225         * platform/text/TextCodecLatin1.cpp:
2226         (WebCore::TextCodecLatin1::decode): Rewrote to use a Vector instead of
2227         newUninitialized.
2228         * platform/text/TextCodecUTF16.cpp:
2229         (WebCore::TextCodecUTF16::decode): Ditto.
2230         * platform/text/TextCodecUserDefined.cpp:
2231         (WebCore::TextCodecUserDefined::decode): Ditto.
2232
2233         * rendering/RenderStyle.cpp:
2234         (WebCore::RenderStyle::setContent): Changed to use String since
2235         StringImpl doesn't have mutating functions any more.
2236
2237 2007-12-24  Alexey Proskuryakov  <ap@webkit.org>
2238
2239         Reviewed by Oliver.
2240
2241         Fix fast/events/arrow-keys-on-body.html, failing on Windows.
2242
2243         * platform/win/KeyEventWin.cpp:
2244         (WebCore::isKeypadEvent):
2245         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2246         Use HIWORD() macro instead of shifting the value explicitly (no change in behavior).
2247
2248 2007-12-23  Alexey Proskuryakov  <ap@webkit.org>
2249
2250         Fix Debug and Release QTMovieWin bulds.
2251
2252         * WebCore.vcproj/QTMovieWin.vcproj:
2253         * WebCore.vcproj/debug.vsprops:
2254         * WebCore.vcproj/debug_internal.vsprops:
2255         * WebCore.vcproj/release.vsprops:
2256         Use LibraryConfigSuffix instead of WebKitConfigSuffix for pthreadVC2.
2257         Build release import lib into \lib, not \bin.
2258
2259 2007-12-23  Alp Toker  <alp@atoker.com>
2260
2261         Reviewed by Holger Freyther.
2262
2263         http://bugs.webkit.org/show_bug.cgi?id=15382
2264         [CAIRO] Canvas pattern support
2265
2266         http://bugs.webkit.org/show_bug.cgi?id=16577
2267         Merge Cairo enhancements from Apollo project
2268
2269         Add support for canvas patterns.
2270
2271         Make Image::nativeImageForCurrentFrame() public.
2272
2273         Fix some typos along the way.
2274
2275         The globalAlpha canvas fixes are not included in this patch as
2276         they're slightly more intrusive and may conflict conceptually with
2277         GraphicsContext::setAlpha().
2278
2279         * html/CanvasPattern.cpp:
2280         (WebCore::CanvasPattern::CanvasPattern):
2281         (WebCore::CanvasPattern::~CanvasPattern):
2282         (WebCore::CanvasPattern::createPattern):
2283         * html/CanvasPattern.h:
2284         (WebCore::CanvasPattern::platformImage):
2285         * html/CanvasRenderingContext2D.cpp:
2286         (WebCore::CanvasRenderingContext2D::setShadow):
2287         (WebCore::CanvasRenderingContext2D::applyShadow):
2288         (WebCore::CanvasRenderingContext2D::drawImage):
2289         (WebCore::CanvasRenderingContext2D::createPattern):
2290         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
2291         (WebCore::CanvasRenderingContext2D::applyFillPattern):
2292         * platform/graphics/Image.h:
2293         (WebCore::Image::nativeImageForCurrentFrame):
2294
2295 2007-12-23  Kevin Ollivier  <kevino@theolliviers.com>
2296
2297         Reviewed by Eric Seidel.
2298
2299         Remove getWxBitmap as we have nativeImageForCurrentFrame now,
2300         and don't draw a border in fillRect.
2301
2302         * platform/graphics/BitmapImage.h:
2303         * platform/graphics/wx/GraphicsContextWx.cpp:
2304         (WebCore::GraphicsContext::fillRect):
2305         * platform/graphics/wx/ImageWx.cpp:
2306
2307 2007-12-23  Alp Toker  <alp@atoker.com>
2308
2309         Reviewed by Holger Freyther.
2310
2311         http://bugs.webkit.org/show_bug.cgi?id=16577
2312         Merge Cairo enhancements from Apollo project
2313
2314         This patch is based on initial merging work by Brent Fulgham. Adobe's
2315         code has been modified in a few places to better suit the existing
2316         coding style.
2317
2318         Implement more clipping and drawing functions.
2319
2320         Save and restore the fill rule manually when clipping.
2321
2322         Avoid image surface creation when the image buffer has height zero.
2323
2324         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2325         (WebCore::GraphicsContext::clip):
2326         (WebCore::GraphicsContext::addInnerRoundedRectClip):
2327         (WebCore::GraphicsContext::addPath):
2328         (WebCore::GraphicsContext::clipOut):
2329         (WebCore::GraphicsContext::clipOutEllipseInRect):
2330         (WebCore::GraphicsContext::fillRoundedRect):
2331         * platform/graphics/cairo/ImageSourceCairo.cpp:
2332         (WebCore::ImageSource::createFrameAtIndex):
2333
2334 2007-12-23  Nikolas Zimmermann  <zimmermann@kde.org>
2335
2336         Reviewed by Mark.
2337
2338         Fix wrong placed ifdef - wrapping SVGDefsElement, instead of SVGDefinitionSrcElement in SVG_FONTS block.
2339
2340         * bindings/objc/DOM.mm:
2341         (WebCore::createElementClassMap):
2342
2343 2007-12-22  Alp Toker  <alp@atoker.com>
2344
2345         GTK+ build fix
2346
2347         GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass
2348         empty target flags for now.
2349
2350         Check GTK+, not GLib versions, since they are different.
2351
2352         * platform/gtk/PasteboardGtk.cpp:
2353         (WebCore::Pasteboard::documentFragment):
2354
2355 2007-12-22  Luca Bruno  <lethalman88@gmail.com>
2356
2357         Reviewed by Alp Toker.
2358
2359         http://bugs.webkit.org/show_bug.cgi?id=16311
2360         [Gtk] Copy rich text to clipboard as text/plain and text/html.
2361
2362         Hook into the WebView to get the correct clipboard object on the
2363         appropriate display. This is necessary because GTK+ does not have
2364         global clipboards.
2365
2366         * WebCore.pro:
2367         * platform/Pasteboard.h:
2368         (WebCore::Pasteboard::setHelper): added for GTK
2369         (WebCore::Pasteboard::m_helper): private added for GTK
2370         * platform/gtk/PasteboardGtk.cpp:
2371         (WebCore::PasteboardSelectionData): added to support GTK selection data callback
2372         (WebCore::clipboard_get_contents_cb): added
2373         (WebCore::clipboard_clear_contents_cb): added
2374         (WebCore::Pasteboard::~Pasteboard):
2375         (WebCore::Pasteboard::setHelper):
2376         (WebCore::Pasteboard::writeSelection): copy rich text
2377         (WebCore::Pasteboard::documentFragment): 
2378         (WebCore::Pasteboard::plainText): 
2379         * platform/gtk/PasteboardHelper.h: Added.
2380
2381 2007-12-22  Nikolas Zimmermann  <zimmermann@kde.org>
2382
2383         Reviewed by Oliver.
2384
2385         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15966 (Crash in SVGRootInlineBox::walkTextChunks() on mouse hover)
2386
2387         Add new isSVGRootInlineBox() function to InlineBox to be able to differentiate between RootInlineBox/SVGRootInlineBox.
2388         SVG assumed it's root inline box (for <text> elements) is always of type SVGRootInlineBox, which is not the case
2389         for HTML text in <foreignObject>. Text selection doesn't work so far as line box offsets are wrong - which is visible
2390         in Web Inspector.
2391
2392         * rendering/InlineBox.h:
2393         (WebCore::InlineBox::isSVGRootInlineBox):
2394         * rendering/SVGInlineTextBox.cpp:
2395         (WebCore::SVGInlineTextBox::svgRootInlineBox):
2396         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
2397         (WebCore::SVGInlineTextBox::selectionRect):
2398         * rendering/SVGRenderTreeAsText.cpp:
2399         (WebCore::writeSVGInlineTextBox):
2400         * rendering/SVGRootInlineBox.h:
2401         (WebCore::SVGRootInlineBox::isSVGRootInlineBox):
2402
2403 2007-12-22  Alp Toker  <alp@atoker.com>
2404
2405         LOW_BANDWIDTH_DISPLAY build fix
2406
2407         Track recent KURL DeprecatedString changes.
2408
2409         * loader/FrameLoader.cpp:
2410         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
2411
2412 2007-12-22  Dan Bernstein  <mitz@apple.com>
2413
2414         - Windows build fix
2415
2416         * WebCore.vcproj/WebCore.vcproj:
2417
2418 2007-12-22  Xan Lopez  <xan@gnome.org>
2419
2420         Reviewed by Alp Toker.
2421
2422         Add missing return 0 to fix a compile warning.
2423
2424         * page/gtk/FrameGtk.cpp:
2425         (WebCore::Frame::createScriptInstanceForWidget):
2426
2427 2007-12-21  Antti Koivisto  <antti@apple.com>
2428
2429         Reviewed by Darin, Adam and Steve.
2430
2431         Add media playback support for Windows.
2432         
2433         The implementation uses low level QuickTime API. DLL is
2434         needed to work around CF use in both WebKit and QuickTime.
2435         
2436         This makes Windows build depend on the QuickTime SDK 
2437         
2438         http://developer.apple.com/quicktime/download/
2439         
2440         but not QuickTime itself.
2441         
2442         QTMovieWinTimer contains some copy code from SharedTimerWin. It
2443         is used in the QuickTime access DLL which can't use WebCore
2444         SharedTimer due to dependency problems.
2445
2446         * WebCore.vcproj/QTMovieWin.vcproj: Added.
2447         * WebCore.vcproj/WebCore.vcproj:
2448         * WebCore.vcproj/build-generated-files.sh:
2449         * html/HTMLMediaElement.cpp:
2450         (WebCore::HTMLMediaElement::setSrc):
2451         * platform/graphics/MediaPlayer.cpp:
2452         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: Added.
2453         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
2454         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
2455         (WebCore::MediaPlayerPrivate::load):
2456         (WebCore::MediaPlayerPrivate::play):
2457         (WebCore::MediaPlayerPrivate::pause):
2458         (WebCore::MediaPlayerPrivate::duration):
2459         (WebCore::MediaPlayerPrivate::currentTime):
2460         (WebCore::MediaPlayerPrivate::seek):
2461         (WebCore::MediaPlayerPrivate::doSeek):
2462         (WebCore::MediaPlayerPrivate::cancelSeek):
2463         (WebCore::MediaPlayerPrivate::seekTimerFired):
2464         (WebCore::MediaPlayerPrivate::setEndTime):
2465         (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
2466         (WebCore::MediaPlayerPrivate::endPointTimerFired):
2467         (WebCore::MediaPlayerPrivate::paused):
2468         (WebCore::MediaPlayerPrivate::seeking):
2469         (WebCore::MediaPlayerPrivate::naturalSize):
2470         (WebCore::MediaPlayerPrivate::hasVideo):
2471         (WebCore::MediaPlayerPrivate::setVolume):
2472         (WebCore::MediaPlayerPrivate::setMuted):
2473         (WebCore::MediaPlayerPrivate::setRate):
2474         (WebCore::MediaPlayerPrivate::dataRate):
2475         (WebCore::MediaPlayerPrivate::maxTimeBuffered):
2476         (WebCore::MediaPlayerPrivate::maxTimeSeekable):
2477         (WebCore::MediaPlayerPrivate::maxTimeLoaded):
2478         (WebCore::MediaPlayerPrivate::bytesLoaded):
2479         (WebCore::MediaPlayerPrivate::totalBytesKnown):
2480         (WebCore::MediaPlayerPrivate::totalBytes):
2481         (WebCore::MediaPlayerPrivate::cancelLoad):
2482         (WebCore::MediaPlayerPrivate::updateStates):
2483         (WebCore::MediaPlayerPrivate::didEnd):
2484         (WebCore::MediaPlayerPrivate::setRect):
2485         (WebCore::MediaPlayerPrivate::setVisible):
2486         (WebCore::MediaPlayerPrivate::paint):
2487         (WebCore::MediaPlayerPrivate::getSupportedTypes):
2488         (WebCore::MediaPlayerPrivate::movieEnded):
2489         (WebCore::MediaPlayerPrivate::movieLoadStateChanged):
2490         (WebCore::MediaPlayerPrivate::movieTimeChanged):
2491         (WebCore::MediaPlayerPrivate::movieNewImageAvailable):
2492         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: Added.
2493         (WebCore::MediaPlayerPrivate::networkState):
2494         (WebCore::MediaPlayerPrivate::readyState):
2495         * platform/graphics/win/QTMovieWin.cpp: Added.
2496         (updateTaskTimer):
2497         (QTMovieWinPrivate::QTMovieWinPrivate):
2498         (QTMovieWinPrivate::~QTMovieWinPrivate):
2499         (taskTimerFired):
2500         (QTMovieWinPrivate::startTask):
2501         (QTMovieWinPrivate::endTask):
2502         (QTMovieWinPrivate::task):
2503         (QTMovieWinPrivate::registerDrawingCallback):
2504         (QTMovieWinPrivate::drawingComplete):
2505         (QTMovieWinPrivate::createGWorld):
2506         (QTMovieWinPrivate::setSize):
2507         (QTMovieWinPrivate::deleteGWorld):
2508         (QTMovieWin::QTMovieWin):
2509         (QTMovieWin::~QTMovieWin):
2510         (QTMovieWin::play):
2511         (QTMovieWin::pause):
2512         (QTMovieWin::rate):
2513         (QTMovieWin::setRate):
2514         (QTMovieWin::duration):
2515         (QTMovieWin::currentTime):
2516         (QTMovieWin::setCurrentTime):
2517         (QTMovieWin::setVolume):
2518         (QTMovieWin::setMuted):
2519         (QTMovieWin::dataSize):
2520         (QTMovieWin::maxTimeLoaded):
2521         (QTMovieWin::loadState):
2522         (QTMovieWin::getNaturalSize):
2523         (QTMovieWin::setSize):
2524         (QTMovieWin::setVisible):
2525         (QTMovieWin::paint):
2526         (QTMovieWin::load):
2527         (movieDrawingCompleteProc):
2528         (initializeSupportedTypes):
2529         (QTMovieWin::countSupportedTypes):
2530         (QTMovieWin::getSupportedType):
2531         (QTMovieWin::initializeQuickTime):
2532         (DllMain):
2533         * platform/graphics/win/QTMovieWin.h: Added.
2534         * platform/graphics/win/QTMovieWinTimer.cpp: Added.
2535         (TimerWindowWndProc):
2536         (initializeOffScreenTimerWindow):
2537         (setSharedTimerFiredFunction):
2538         (timerFired):
2539         (setSharedTimerFireDelay):
2540         (stopSharedTimer):
2541         (setSharedTimerInstanceHandle):
2542         (systemTime):
2543         * platform/graphics/win/QTMovieWinTimer.h: Added.
2544         * rendering/RenderMedia.cpp:
2545         (WebCore::MediaControlPlayButtonElement::update):
2546
2547 2007-12-21  Brent Fulgham  <bfulgham@gmail.com>
2548
2549         Reviewed by Alp Toker.
2550
2551         http://bugs.webkit.org/show_bug.cgi?id=16558
2552         Cairo WebCore Rendering Fails on arc drawing
2553
2554         Fix for bug reported (and patched) by Apollo team in which
2555         arcs were draw in reverse (resulting in inverted images).
2556         Review of the source found that the 'clockwise' term was
2557         actually meant to mean 'anticlockwise' so the IDL and
2558         supporting classes have been changed to match this. 
2559
2560         * html/CanvasRenderingContext2D.cpp:
2561         (WebCore::CanvasRenderingContext2D::arc):
2562         * html/CanvasRenderingContext2D.idl:
2563         * platform/graphics/cairo/PathCairo.cpp:
2564         (WebCore::Path::addArc):
2565         (WebCore::Path::addEllipse):
2566         * platform/graphics/Path.h:
2567
2568 2007-12-21  Alexey Proskuryakov  <ap@webkit.org>
2569
2570         Reviewed by Oliver.
2571
2572         <rdar://problem/5629995> Incorrect display of Danish characters on web site.
2573
2574         Test: http/tests/xmlhttprequest/response-encoding.html
2575
2576         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData):
2577         Default to UTF-8 for HTML, too. It's unfortunate that we have to use different
2578         rules for main content and XHR responses, but this matches both IE and Firefox.
2579
2580 2007-12-20  Jon Honeycutt  <jhoneycutt@apple.com>
2581
2582         Reviewed by Kevin Decker.
2583
2584         <rdar://problem/5655797> REGRESSION(304-306A10) Safari does not find
2585         shockwave plugin on freshly installed OS
2586
2587         Look for Director plugin in its native directory.
2588
2589         * plugins/win/PluginDatabaseWin.cpp:
2590         (WebCore::PluginDatabaseWin::getPluginsInPaths): The Director plugin
2591         doesn't start with "np," so special case its filename.
2592         (WebCore::addMacromediaPluginPaths): Add Flash and "Shockwave 10"
2593         directories to the plugin paths.
2594         (WebCore::PluginDatabaseWin::defaultPluginPaths):
2595
2596 2007-12-20  Peter Kasting  <zerodpx@gmail.com>
2597
2598         Reviewed by Alp Toker.
2599
2600         http://bugs.webkit.org/show_bug.cgi?id=16508
2601         Fix regression in GIFImageDecoder.cpp: "Haeberli hack" led to wrongly
2602         decoded transparent areas.
2603
2604         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2605         (WebCore::GIFImageDecoder::haveDecodedRow):
2606         * platform/image-decoders/gif/GIFImageDecoder.h:
2607         * platform/image-decoders/gif/GIFImageReader.cpp:
2608         (GIFImageReader::output_row):
2609
2610 2007-12-20  Justin Garcia  <justin.garcia@apple.com>
2611
2612         Reviewed by Oliver Hunt.
2613
2614         <rdar://problem/5543472> GoogleDocs: Safari hangs when creating a list from a particular selection
2615         
2616         Still need to fix similar issues with the other operations that iterate 
2617         over selected paragraphs, like FormatBlock, Indent and Outdent (<rdar://problem/5658933>).
2618
2619         * editing/IndentOutdentCommand.cpp:
2620         (WebCore::IndentOutdentCommand::indentRegion): Added a FIXME.
2621         * editing/IndentOutdentCommand.h: Removed an unused function.
2622         * editing/InsertListCommand.cpp:
2623         (WebCore::InsertListCommand::modifyRange): 
2624         Renamed visibleStart to startOfSelection and visibleEnd to endOfSelection.
2625         Call the new selectionForParagraphIteration, which a) prevents operations like this
2626         one from being performed on a table that isn't fully selected (where the selection
2627         starts just before the table and ends inside it), and b) helps prevent paragraph
2628         iteration from going past the end of the selection.
2629         Call the new startOfNextParagraph, instead of using endOfParagraph(v).next(),
2630         since when v is in the last paragraph of the last cell of a table, that expression 
2631         will return the position after the table, not the start of the next paragraph.
2632         * editing/htmlediting.cpp:
2633         (WebCore::enclosingListChild): Don't go above a table cell, so that list operations
2634         take effect inside the table cell where they are performed.
2635         (WebCore::selectionForParagraphIteration): Added, see above.
2636         (WebCore::indexForVisiblePosition): Moved from IndentOutdentCommand.cpp.
2637         * editing/htmlediting.h:
2638         * editing/visible_units.cpp:
2639         (WebCore::startOfNextParagraph): Added, see above.
2640         * editing/visible_units.h:
2641         * editing/TextIterator.h:
2642         (WebCore::TextIterator::exitNode): Added a FIXME.
2643
2644 2007-12-20  Alp Toker  <alp@atoker.com>
2645
2646         Rubber-stamped by Maciej.
2647
2648         http://bugs.webkit.org/show_bug.cgi?id=16542
2649         [GTK] Text is missing with old Pango version
2650
2651         Back out commits r28880, r28876, r28865, r28864 which added Pango font
2652         selection support. These changes caused a regression where no text was
2653         displayed with older Pango versions.
2654
2655         * platform/graphics/gtk/FontCacheGtk.cpp:
2656         (WebCore::FontCache::fontExists):
2657         * platform/graphics/gtk/FontDataGtk.cpp:
2658         (WebCore::FontData::platformDestroy):
2659         (WebCore::FontData::containsCharacters):
2660         * platform/graphics/gtk/FontPlatformData.h:
2661         (WebCore::FontPlatformData::FontPlatformData):
2662         (WebCore::FontPlatformData::hash):
2663         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2664         (WebCore::FontPlatformData::FontPlatformData):
2665         (WebCore::FontPlatformData::init):
2666         (WebCore::FontPlatformData::~FontPlatformData):
2667         (WebCore::FontPlatformData::isFixedPitch):
2668         (WebCore::FontPlatformData::operator==):
2669         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
2670         (WebCore::GlyphPage::fill):
2671
2672 2007-12-20  Timothy Hatcher  <timothy@apple.com>
2673
2674         Reviewed by Sam Weinig.
2675
2676         <rdar://problem/5604897> Double-clicking on JavaScript console error
2677         won't show the line where it occurred
2678
2679         Make the URLs clickable in the console, since double clicking is used for
2680         word text selection. Makes the word "line" localizable. Messages that don't
2681         have a URL will no longer print "undefined". Messages that have a line number
2682         less than or equal to 0 will no longer be printed.
2683
2684         * English.lproj/InspectorLocalizedStrings.js: Add "%s (line %d)".
2685         * page/inspector/ConsolePanel.js: Tweak how the DOM nodes are created
2686           and change the click handler to look for a link with the
2687           "console-message-url" class name.
2688         * page/inspector/SourcePanel.js: Call setupSourceFrameIfNeeded() if a
2689           line row is needed. 
2690         * page/inspector/inspector.css: Update the look of the URL in the console.
2691
2692 2007-12-20  Adam Barth  <hk9565@gmail.com>
2693
2694         Reviewed and landed by Sam Weinig.
2695
2696         http://bugs.webkit.org/show_bug.cgi?id=15313
2697         <rdar://problem/5514516>
2698
2699         The same-origin check was incorrect in two cases (both fixed in this
2700         patch):
2701
2702         A) If both the source and the target have set their document.domain
2703            to the same value, the protocol must also match in order for
2704            access to be allowed.  Without this requirement, the browser is
2705            vulnerable to the following attack:
2706
2707            1) Suppose there is an HTTPS site (www.example.com) that sets
2708               document.domain = "example.com".
2709            2) A network attacker redirects the browser to http://www.example.com/
2710               a) injects script to set document.domain = "example.com", and
2711               b) opens a window to https://www.example.com/
2712            3) Now the network attacker can inject script into the HTTPS page,
2713               stealing cookies and issuing banking transactions.
2714
2715         B) If only one of the source and target has set document.domain, then
2716            access should be denied.  With this behavior, the browser is
2717            vulnerable to the following attack:
2718
2719            1) Suppose http://foo.example.com/ opens an iframe to
2720               http://foo.example.com/frame.html that
2721               a) sets document.domain = "example.com", and
2722               b) opens an iframe to http://bar.example.com/
2723               This is a common usage of document.domain for cross-domain
2724               communication, see for example:
2725                 http://www.collinjackson.com/research/papers/fp801-jackson.pdf
2726            2) The inner-most iframe, which is from bar.example.com, sets
2727               document.domain = "example.com".
2728            3) Now the inner-most iframe can inject script into the middle
2729               iframe (say via document.write).  This bar.example.com script
2730               now has access to the outer-most frame (from foo.example.com).
2731
2732         Both these changes cause WebKit to match the behavior of Firefox 2 and
2733         IE6 in these cases.  This patch includes regression tests for both
2734         issues.
2735
2736         Internet Explorer 7 and Opera 9 are more strict in that they require
2737         the port numbers to match when both pages have document.domain set.
2738         Opera 9 allows access when only one page has set document.domain, but
2739         this is a security vulnerability.
2740
2741         Tests: http/tests/security/cross-frame-access-child-explicit-domain.html
2742                http/tests/security/cross-frame-access-parent-explicit-domain.html
2743
2744         * bindings/js/kjs_window.cpp:
2745         (KJS::createWindow):
2746         (KJS::Window::allowsAccessFrom):
2747         * dom/Document.cpp:
2748         (WebCore::Document::domain):
2749         (WebCore::Document::setDomain):
2750         (WebCore::Document::initSecurityOrigin):
2751         * dom/Document.h:
2752         (WebCore::Document::securityOrigin):
2753         * loader/FrameLoader.cpp:
2754         (WebCore::FrameLoader::begin):
2755         (WebCore::FrameLoader::checkCallImplicitClose):
2756         (WebCore::FrameLoader::shouldAllowNavigation):
2757         * platform/SecurityOrigin.cpp:
2758         (WebCore::SecurityOrigin::setForURL):
2759         (WebCore::SecurityOrigin::createForFrame):
2760         (WebCore::SecurityOrigin::canAccess):
2761         * platform/SecurityOrigin.h:
2762         (WebCore::SecurityOrigin::domain):
2763         * storage/Database.cpp:
2764         (WebCore::Database::openDatabase):
2765         (WebCore::Database::Database):
2766         (WebCore::Database::securityOriginData):
2767         * storage/Database.h:
2768         (WebCore::Database::databaseDebugName):
2769         * storage/DatabaseTracker.cpp:
2770         (WebCore::DatabaseTracker::canEstablishDatabase):
2771         * storage/SQLTransaction.cpp:
2772         (WebCore::SQLTransaction::postflightAndCommit):
2773         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
2774
2775 2007-12-20  Rodney Dawes  <dobey@wayofthemonkey.com>
2776
2777         Reviewed by Darin Adler.
2778
2779         Define XP_UNIX when building with plugins on X11.
2780         Use new npruntime_internal.h instead of npruntime.h.
2781         http://bugs.webkit.org/show_bug.cgi?id=15669
2782
2783         * ForwardingHeaders/bindings/npruntime_internal.h
2784         * WebCore.pro:
2785         * html/HTMLPlugInElement.h:
2786
2787 2007-12-19  johnnyding.webkit  <johnnyding.webkit@gmail.com>
2788
2789         Reviewed by Alexey. Landed by Stephanie.
2790
2791         - fix http://bugs.webkit.org/show_bug.cgi?id=16179 | <rdar://problem/5619399>
2792           Any attribute name start with a unicode which like #xx00(x could be any hex number[0-9a-f]) will cause HTMLTokenizer parse error
2793           Actually any unicode characters which great than 255 in attribute name will cause Webkit parse the attribute name wrong. So after comparing 
2794           the same scenario in IE 6/7, FireFox 2/3, Opera, we should treat those characters as part of attribute name.
2795
2796
2797         * html/HTMLTokenizer.cpp:
2798         (WebCore::HTMLTokenizer::parseEntity): Handle Unicode Entity Name by using ASCII version of findEntity.
2799         (WebCore::HTMLTokenizer::parseTag): Let type of ptr match type of cBuffer.
2800         * html/HTMLTokenizer.h: Change type of cBuffer from char to UChar.
2801
2802 2007-12-20  Eric Seidel  <eric@webkit.org>
2803
2804         Reviewed by Nikolas Zimmermann.
2805
2806         WebKit claims to support SVG feature strings it shouldn't
2807         http://bugs.webkit.org/show_bug.cgi?id=15480
2808
2809         * dom/DOMImplementation.cpp:
2810         (WebCore::isSVG10Feature):
2811         (WebCore::isSVG11Feature):
2812
2813 2007-12-20  John Sullivan  <sullivan@apple.com>
2814
2815         Reviewed by Oliver and Geoff
2816         
2817         - fix <rdar://problem/5536858> Yellow highlight for find results is sometimes shorter 
2818           than white "hole" behind it
2819
2820         * rendering/RenderText.cpp:
2821         (WebCore::RenderText::addLineBoxRects):
2822         respect useSelectionHeight in all cases; we were only respecting it in one of the two cases
2823
2824 2007-12-20  Dan Bernstein  <mitz@apple.com>
2825
2826         Reviewed by Darin Adler.
2827
2828         - fix <rdar://problem/5656368> REGRESSION(3.0.4-ToT): Acid2 test fails to render anything
2829
2830         * platform/win/ScrollViewWin.cpp:
2831         (WebCore::ScrollView::maximumScroll): Changed back to return the maximum
2832         scroll offsets even if scrolling is not allowed, because navigation and
2833         scrollTo should still work.
2834         (WebCore::ScrollView::wheelEvent): Added early return if scrolling is
2835         not allowed.
2836
2837 2007-12-17  Tony Chang  <idealisms@gmail.com>
2838
2839         Reviewed by Darin.
2840
2841         - Fix for http://bugs.webkit.org/show_bug.cgi?id=16479
2842           text selection does not always begin at mouse down point
2843           Reset the m_dragSrc object on mouse down on all platforms.
2844
2845         Test: fast/text/reset-drag-on-mouse-down.html
2846
2847         * page/EventHandler.cpp:
2848         (WebCore::EventHandler::handleMousePressEvent):
2849         * page/mac/EventHandlerMac.mm:
2850         (WebCore::EventHandler::mouseDown):
2851
2852 2007-12-19  Geoffrey Garen  <ggaren@apple.com>
2853
2854         Reviewed by Oliver Hunt.
2855
2856         Build support:
2857         * ForwardingHeaders/kjs/SymbolTable.h: Added.
2858         * ForwardingHeaders/wtf/VectorTraits.h: Added.
2859
2860         * bindings/js/JSDOMWindowCustom.cpp:
2861         (WebCore::JSDOMWindow::customGetOwnPropertySlot): Replaced use of
2862         getDirectLocation with getOwnPropertySlot. getDirectLocation is no
2863         longer valid, since global declarations are not stored in the property
2864         map.
2865
2866         (WebCore::JSDOMWindow::customPut): Replaced use of JSObject::put with
2867         JSGlobalObject::put. JSObject::put is no longer valid, since global
2868         declarations are not stored in the property map.
2869
2870         * bindings/js/kjs_window.cpp: Replaced JSObject:: calls with Base::
2871         calls, since JSObject is not our base class. This was always a bug, but
2872         the bug is even more apparent after some of my changes.
2873
2874         (KJS::Window::clear): Removed call to clearProperties because
2875         JSGlobalObject::reset takes care of that now.
2876
2877         * history/CachedPage.cpp:
2878         * history/CachedPage.h: Added support for saving a symbol table and
2879         localStorage to the page cache, and restoring it.
2880
2881 2007-12-19  Dan Bernstein  <mitz@apple.com>
2882
2883         Reviewed by Darin Adler and Dave Hyatt.
2884
2885         - Substitute the user's preferred standard font for an unknown primary
2886           font before falling back on the platform's last resort font
2887
2888         Cannot be tested in DumpRenderTree because it sets the standard font to
2889         Times, which is also the hard-coded last resort font on Mac.
2890
2891         * css/CSSFontSelector.cpp:
2892         (WebCore::CSSFontSelector::getFontData): Changed the early bail out
2893         condition to allow getting generic font families from settings even if
2894         there are not @font-face rules. Fixed a typo that mapped fantasy to
2895         cursive. Added a mapping from -webkit-standard to the standard family.
2896         * css/CSSStyleSelector.cpp:
2897         (WebCore::CSSStyleSelector::CSSStyleSelector): Changed to always create
2898         a font selector.
2899         (WebCore::CSSRuleSet::addRulesFromSheet):
2900         (WebCore::CSSStyleSelector::applyProperty): Changed to always use the
2901         font selector.
2902         * css/CSSStyleSelector.h:
2903         (WebCore::CSSStyleSelector::fontSelector):
2904         * platform/graphics/FontCache.cpp:
2905         (WebCore::FontCache::getFontData): Try the user's preferred standard
2906         font before the platform's last resort font.
2907
2908 2007-12-19  Sven Herzberg  <sven@imendio.com>
2909
2910         Reviewed by Alp Toker.
2911
2912         Scaled font destruction takes place in FontData::platformDestroy(). No
2913         need to do it in FontPlatformData::~FontPlatformData().
2914
2915         Destroying platform data in platformDestroy() is a convention we
2916         borrow from the Mac and Win ports.
2917
2918         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2919
2920 2007-12-19  Alice Liu  <alice.liu@apple.com>
2921
2922         build fix (Windows)
2923
2924         Changed uint to unsigned int.  uint caused Windows build breakage
2925
2926         * page/Page.cpp:
2927         (WebCore::Page::markAllMatchesForText):
2928         * page/Page.h:
2929
2930 2007-12-19  Christian Dywan  <christian@twotoasts.de> 
2931
2932         Reviewed by Alp Toker.
2933
2934         http://bugs.webkit.org/show_bug.cgi?id=16222
2935         [GTK] Implement inline search and highlighting of matching strings.
2936
2937         Implement search and highlighting logic directly in WebCore.
2938
2939         * page/Page.cpp:
2940         (WebCore::incrementFrame):
2941         (WebCore::Page::findString):
2942         (WebCore::Page::markAllMatchesForText):
2943         (WebCore::Page::unmarkAllTextMatches):
2944         * page/Page.h:
2945
2946 2007-12-19  Geoffrey Garen  <ggaren@apple.com>
2947
2948         Reviewed by Sam Weinig, Dan Bernstein.
2949
2950         Tiger build fix: restored some graphics code still needed on Tiger.
2951
2952         * platform/graphics/GraphicsTypes.h:
2953         * platform/graphics/cg/GraphicsContextCG.cpp:
2954         * platform/graphics/mac/GraphicsContextMac.mm:
2955         (WebCore::GraphicsContext::setCompositeOperation):
2956
2957 2007-12-19  Alp Toker  <alp@atoker.com>
2958
2959         Build fix for Pango < 1.18.0 breakage introduced in r28864. Use Fc and
2960         the Pango backend API in these cases.
2961
2962         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2963         (WebCore::FontPlatformData::FontPlatformData):
2964         (WebCore::FontPlatformData::~FontPlatformData):
2965
2966 2007-12-19  Alice Liu  <alice.liu@apple.com>
2967
2968         Reviewed by Darin.
2969
2970         Fixed <rdar://problem/5592485> Safari crashed trying to get a motorcycle insurance quote
2971         on Geico.com WebCore::Document::inPageCache()
2972
2973         Calling Node::willRemove on the focusedNode would immediately tell the document to remove
2974         the focused node, and trigger JS events.  This means that the document is mutated while
2975         the engine is trying to tell all child nodes that it's about to removed.  To avoid
2976         crashing, we need to hold off on mutating the document until node traversal is finished.
2977
2978         * dom/ContainerNode.cpp:
2979         (WebCore::ContainerNode::removeChild):
2980         (WebCore::ContainerNode::removeChildren):
2981         * dom/Node.cpp:
2982         * dom/Node.h:
2983         (WebCore::Node::willRemove):
2984         * loader/FrameLoader.cpp:
2985         (WebCore::FrameLoader::clear):
2986
2987 2007-12-19  Andre Boule  <aboule@apple.com>
2988
2989         Reviewed by Dan Bernstein.
2990
2991         Test: fast/canvas/canvas-composite.html
2992
2993         Fix for:
2994         <rdar://problem/5640059> GraphicsContext::setCompositeOperation should use CGContextSetBlendMode
2995
2996         This fix makes setCompositeOperation consistent across all platforms that use CG.
2997
2998         The following compositing modes don't pass however that is covered by another bug:
2999         source-in
3000         source-out
3001         destination-in
3002         destination-atop
3003         copy
3004         <rdar://problem/5651783> Some canvas tag compositing modes don't render correctly
3005
3006         * platform/graphics/GraphicsTypes.h:
3007         * platform/graphics/cg/GraphicsContextCG.cpp:
3008         (WebCore::GraphicsContext::setCompositeOperation):
3009         * platform/graphics/mac/GraphicsContextMac.mm:
3010         * platform/win/GraphicsContextWin.cpp:
3011
3012 2007-12-19  Dan Bernstein  <mitz@apple.com>
3013
3014         Reviewed by Dave Hyatt.
3015
3016         - fix <rdar://problem/5650045> REGRESSION: major layout problems in svn r28754 WebKit on Vox.com page
3017
3018         Test: fast/dynamic/subtree-boundary-percent-height.html
3019
3020         * rendering/RenderObject.cpp:
3021         (WebCore::objectIsRelayoutBoundary): Do not allow overflows with
3022         percent heights because sometimes they compute to 'auto'.
3023
3024 2007-12-19  Sam Weinig  <sam@webkit.org>
3025
3026         Reviewed by Maciej.
3027
3028         http://bugs.webkit.org/show_bug.cgi?id=16511
3029         Speed up ClassNodeList and NamedNodeList by using the caching mechanism employed by ChildNodeList.
3030         - This give a ~2.15x speedup on the native test @ http://ejohn.org/apps/classname/
3031
3032         * dom/ChildNodeList.cpp: Use the caching NodeList constructor to turn on caching.
3033         (WebCore::ChildNodeList::ChildNodeList):
3034         * dom/ClassNodeList.cpp:
3035         (WebCore::ClassNodeList::ClassNodeList):
3036         * dom/ClassNodeList.h:
3037
3038         Move getElementsByName and getElementsByClassName to Node so they
3039         can use easily employ the caching already used by ChildNodeLists.  In the case of 
3040         getElementsByClassName, this reduces code duplication in Element as well
3041         * dom/Document.cpp:
3042         * dom/Document.h:
3043
3044         Move getElementsByClassName to Node.
3045         * dom/Element.cpp:
3046         * dom/Element.h:
3047
3048         * dom/NameNodeList.cpp: Use the caching NodeList constructor to turn on caching.
3049         (WebCore::NameNodeList::NameNodeList):
3050         (WebCore::NameNodeList::item):
3051         * dom/NameNodeList.h:
3052
3053         Add maps of caches for ClassNodeLists and NameNodeList to NodeListsNodeData.
3054         * dom/Node.cpp:
3055         (WebCore::TagNodeList::TagNodeList):
3056         (WebCore::Node::Node):
3057         (WebCore::Node::~Node):
3058         (WebCore::Node::childNodes):
3059         (WebCore::Node::registerNodeList):
3060         (WebCore::Node::getElementsByName):
3061         (WebCore::Node::getElementsByClassName):
3062         * dom/Node.h: Make m_nodeLists an OwnPtr.  Moved getElementsByName and getElementsByClassName here
3063
3064         Allow subclasses to choose whether they want to receive the notifications using a new bit.
3065         * dom/NodeList.cpp:
3066         (WebCore::NodeList::NodeList):
3067         * dom/NodeList.h:
3068         (WebCore::NodeList::needsNotifications):
3069
3070 2007-12-19  Dave Hyatt  <hyatt@apple.com>
3071
3072         Add support for GDI text rendering to WebKit.
3073       
3074         Reviewed by mitz
3075         
3076         * css/CSSStyleSelector.cpp:
3077         (WebCore::CSSStyleSelector::applyProperty):
3078         * dom/Document.cpp:
3079         (WebCore::Document::recalcStyle):
3080         * page/Settings.cpp:
3081         (WebCore::Settings::setFontRenderingMode):
3082         (WebCore::Settings::fontRenderingMode):
3083         * page/Settings.h:
3084         * platform/graphics/Font.h:
3085         (WebCore::Font::renderingMode):
3086         * platform/graphics/FontCache.cpp:
3087         (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
3088         (WebCore::FontPlatformDataCacheKey::operator==):
3089         (WebCore::computeHash):
3090         (WebCore::FontCache::getCachedFontPlatformData):
3091         * platform/graphics/FontDescription.h:
3092         (WebCore::):
3093         (WebCore::FontDescription::FontDescription):
3094         (WebCore::FontDescription::renderingMode):
3095         (WebCore::FontDescription::setRenderingMode):
3096         (WebCore::FontDescription::operator==):
3097         * platform/graphics/GraphicsContext.h:
3098         * platform/graphics/win/FontCacheWin.cpp:
3099         (WebCore::FontCache::fontExists):
3100         (WebCore::FontCache::createFontPlatformData):
3101         * platform/graphics/win/FontDataWin.cpp:
3102         (WebCore::FontData::platformInit):
3103         (WebCore::FontData::smallCapsFontData):
3104         (WebCore::FontData::containsCharacters):
3105         (WebCore::FontData::determinePitch):
3106         (WebCore::FontData::platformWidthForGlyph):
3107         * platform/graphics/win/FontPlatformData.h:
3108         (WebCore::FontPlatformData::FontPlatformData):
3109         (WebCore::FontPlatformData::useGDI):
3110         (WebCore::FontPlatformData::operator==):
3111         * platform/graphics/win/FontPlatformDataWin.cpp:
3112         (WebCore::FontPlatformData::FontPlatformData):
3113         * platform/graphics/win/FontWin.cpp:
3114         (WebCore::Font::drawGlyphs):
3115         * platform/graphics/win/IconWin.cpp:
3116         (WebCore::Icon::paint):
3117         * platform/win/GraphicsContextWin.cpp:
3118         (WebCore::GraphicsContext::getWindowsContext):
3119         (WebCore::GraphicsContext::releaseWindowsContext):
3120         * platform/win/UniscribeController.cpp:
3121         (WebCore::UniscribeController::shapeAndPlaceItem):
3122         * platform/win/UniscribeController.h:
3123         * plugins/win/PluginViewWin.cpp:
3124         (WebCore::PluginViewWin::paint):
3125
3126 2007-12-19  Sven Herzberg  <sven@imendio.com>
3127
3128         Reviewed by Alp Toker.
3129
3130         Replace the fontconfig/freetype based font management with a pango
3131         based one. Fixes:
3132         http://bugs.webkit.org/show_bug.cgi?id=15229
3133
3134         * platform/gtk/FontDataGtk.cpp (FontData::platformDestroy()): updated
3135         the platform specific destroy code
3136         (FontData::containsCharacters()): implemented font coverage with pango
3137         * platform/gtk/FontPlatformData.h: replaced fontconfig specific
3138         members with pango-specific ones
3139         * platform/gtk/FontPlatformDataGtk.cpp: added static members for the
3140         FontPlatformData class
3141         (FontPlatformData::FontPlatformData()): implemented the font-matching
3142         with a PangoFontDescription instead of an FcPattern; initialize the
3143         scaled font by using the API for PangoCairoFont
3144         (FontPlatformData::init()): initialize the PangoFontMap and set up a
3145         hash table to translate the font family name into a font family
3146         (FontPlatformData::isFixedPitch()): implemented by querying the
3147         PangoFontFamily
3148         (FontPlatformData::operator==): compare the FontPlatformData by
3149         comparing the font pointers or the described fonts
3150         * platform/gtk/GlyphPageTreeNodeGtk.cpp (pango_font_get_glyph()):
3151         added a function to query a glyph from a PangoFont
3152         (GlyphPage::fill()): implemented the fill function with Pango instead
3153         of fontconfig/freetype
3154
3155 2007-12-19  Alp Toker  <alp@atoker.com>
3156
3157         Reviewed by Holger Freyther.
3158
3159         Improve graphics operator approximations
3160         
3161         These changes match Cairo's own CG approximations.
3162
3163         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3164         (WebCore::toCairoOperator):
3165
3166 2007-12-19  Alp Toker  <alp@atoker.com>
3167
3168         Reviewed by Holger Freyther.
3169
3170         Check the bounding box before doing a full hit test
3171
3172         * platform/graphics/cairo/PathCairo.cpp:
3173         (WebCore::Path::contains):
3174
3175 2007-12-18  Sam Weinig  <sam@webkit.org>
3176
3177         Reviewed by Geoff.
3178
3179         Fix for <rdar://problem/5646478>
3180         REGRESSION: fast/events/event-view-toString fails on Leopard
3181
3182         This fixes an issue where we were incorrectly setting the lastInPrototypeChain
3183         for the JSDOMWindow (the global object) before a call to setPrototype overwrote
3184         it. This fixes it by passing the prototype up the constructor chain so that it
3185         is set before any calls can be made.
3186
3187         * bindings/js/kjs_window.cpp:
3188         (KJS::Window::Window):
3189         * bindings/js/kjs_window.h:
3190         * bindings/scripts/CodeGeneratorJS.pm:
3191
3192 2007-12-18  Beth Dakin  <bdakin@apple.com>
3193
3194         Reviewed by Oliver.
3195
3196         Fix for <rdar://problem/5616982> SVGs with width and height 100% 
3197         fail to render when used as <img> or CSS image (16167)
3198
3199         This final part of the work fixes the <img> tag.
3200
3201         This is the real fix. 
3202         * rendering/RenderImage.cpp:
3203         (WebCore::RenderImage::calcReplacedWidth): Set the container size 
3204         on the image. Setting the container size only actually sticks if 
3205         the values are non-zero, so if the container size really was set, 
3206         use the imageSize that is calculated using the container size. If 
3207         it did not stick but the image does have relative width (meaning 
3208         that the container size is 0), set the width to 0 by hand. We want 
3209         to avoid setting the width before we have a container size or we 
3210         will end up incorrectly using the default size of 300x150.
3211         (WebCore::RenderImage::calcReplacedHeight): Same as above, but for 
3212         height.
3213
3214         A few more pieces of information have to be exposed through cached 
3215         image to make this happen.
3216         * loader/CachedImage.cpp:
3217         (WebCore::CachedImage::usesImageContainerSize): As mentioned above, 
3218         when setContainerSize() is called, the container size is only 
3219         actually set if the values are non-zero. This call tells you if it 
3220         was set.
3221         (WebCore::CachedImage::imageHasRelativeWidth):
3222         (WebCore::CachedImage::imageHasRelativeHeight):
3223         * loader/CachedImage.h:
3224         * platform/graphics/Image.h:
3225         (WebCore::Image::usesContainerSize):
3226         * svg/graphics/SVGImage.cpp:
3227         (WebCore::SVGImage::usesContainerSize):
3228         * svg/graphics/SVGImage.h:
3229
3230 2007-12-18  Mark Rowe  <mrowe@apple.com>
3231
3232         Rubber-stamped by Maciej Stachowiak.
3233
3234         Remove outdated and non-functioning project files for the Apollo port.
3235
3236         * WebCore.apolloproj: Removed.
3237
3238 2007-12-18  Steve Falkenburg  <sfalken@apple.com>
3239
3240         <rdar://problem/5649911> REGRESSION (304-306A9): Typing 'p' in popup menu for type-to-select brings up Safari Help
3241         
3242         Need to translate the char back into a key code for posting our WM_KEYDOWN.
3243         
3244         Reviewed by Ada.
3245
3246         * platform/win/PopupMenuWin.cpp:
3247         (WebCore::PopupWndProc):
3248
3249 2007-12-18  Steve Falkenburg  <sfalken@apple.com>
3250
3251         <rdar://problem/5651534> REGRESSION(r28764-r28765): GDI leak drawing text when no appropriate font is available
3252         
3253         Our captured metafile from Uniscribe may contain multiple calls to CreateFontIndirect.
3254         Only create a font with the last one.
3255         
3256         Reviewed by Mitz, Darin.
3257
3258         * platform/graphics/win/FontCacheWin.cpp:
3259         (WebCore::metaFileEnumProc):
3260         (WebCore::FontCache::getFontDataForCharacters):
3261
3262 2007-12-17  Brent Fulgham  <bfulgham@gmail.com>
3263
3264         Reviewed by Darin.
3265
3266         http://bugs.webkit.org/show_bug.cgi?id=16464
3267         Modify WebCore to use win32 thread primitives
3268
3269         Updates to support native windows threading primitives
3270         rather than pthreads emulation library.
3271
3272         * WebCore.vcproj/WebCore.vcproj:
3273         * config.h:
3274         * platform/Threading.h:
3275         * platform/win/MutexWin.cpp: Added.
3276         (WebCore::Mutex::Mutex):
3277         (WebCore::Mutex::~Mutex):
3278         (WebCore::Mutex::lock):
3279         (WebCore::Mutex::tryLock):
3280         (WebCore::Mutex::unlock):
3281         * platform/win/ThreadConditionWin.cpp: Added.
3282         (WebCore::ThreadCondition::ThreadCondition):
3283         (WebCore::ThreadCondition::~ThreadCondition):
3284         (WebCore::ThreadCondition::wait):
3285         (WebCore::ThreadCondition::signal):
3286         (WebCore::ThreadCondition::broadcast):
3287         * platform/win/ThreadingWin.cpp:
3288         (WebCore::threadMapMutex):
3289         (WebCore::threadMap):
3290         (WebCore::storeThreadHandleByIdentifier):
3291         (WebCore::identifierByThreadHandle):
3292         (WebCore::threadHandleForIdentifier):
3293         (WebCore::clearThreadHandleForIdentifier):
3294         (WebCore::createThread):
3295         (WebCore::waitForThreadCompletion):
3296         (WebCore::detachThread):
3297         (WebCore::currentThread):
3298
3299 2007-12-18  Rodney Dawes  <dobey@wayofthemonkey.com>
3300
3301         Reviewed by Darin Adler.
3302
3303         Handle EINTR when set by select() and try the select() again
3304         http://bugs.webkit.org/show_bug.cgi?id=16071
3305
3306         * platform/network/curl/ResourceHandleManager.cpp:
3307         (ResourceHandleManager::downloadTimerCallback):
3308
3309 2007-12-18  Dan Bernstein  <mitz@apple.com>
3310
3311         Reviewed by Dave Hyatt.
3312
3313         - avoid the simplified Chinese font linking code for characters that are
3314           not in any Windows code page
3315
3316         * platform/graphics/win/FontCacheWin.cpp:
3317         (WebCore::FontCache::getFontDataForCharacters):
3318
3319 2007-12-18  Brady Eidson <beidson@apple.com>
3320
3321         Reviewed by Adele
3322
3323         <rdar://problem/5525770> REGRESSION: HTTP Auth protected favicon request results in a password sheet
3324
3325         Some http-auth protected sites have the main resource(s) unprotected, but many subresources are
3326         protected by authentication.  Occasionally one can view the main page of a site but the favicon
3327         is behind the iron curtain - in these cases, we should *not* prompt for a username and password
3328         solely for the favicon.
3329
3330         * loader/ResourceLoader.h: Make didReceiveAuthenticationChallenge virtual
3331
3332         * loader/SubresourceLoader.cpp:
3333         (WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Now that this method
3334           is virtual from ResourceLoader, SubresourceLoader can override.  First call to the 
3335           SubresourceLoaderClient.  If they cancel the resource load, return early. Otherwise, let
3336           ResourceLoader work its magic (resulting in the auth sheet coming down)
3337         * loader/SubresourceLoader.h:
3338
3339         * loader/SubresourceLoaderClient.h:
3340         (WebCore::SubresourceLoaderClient::didReceiveAuthenticationChallenge):
3341
3342         * loader/icon/IconLoader.cpp:
3343         (WebCore::IconLoader::didReceiveAuthenticationChallenge): Cancel the resource load, since we should
3344           never prompt the user for credentials just for a favicon.
3345         * loader/icon/IconLoader.h:
3346
3347 2007-12-18  John Sullivan  <sullivan@apple.com>
3348
3349         Reviewed by Brady
3350         
3351         - fixed <rdar://problem/5652380> Initial prompt shows "" for databases with no user-visible name
3352
3353         * storage/DatabaseTracker.cpp:
3354         (WebCore::DatabaseTracker::canEstablishDatabase):
3355         pass "name" instead of "displayName" if there's no displayName
3356
3357 2007-12-17  Dan Bernstein  <mitz@apple.com>
3358
3359         Reviewed by Maciej Stachowiak.
3360
3361         - restore ButtonFace and ThreeDFace to their previous values for non-Mac
3362           platforms. The Mac port also uses the same values for now instead
3363           of NSColor-based ones.
3364
3365         * rendering/RenderTheme.cpp:
3366         (WebCore::RenderTheme::systemColor):
3367
3368 2007-12-17  Rodney Dawes  <dobey@wayofthemonkey.com>
3369
3370         Reviewed by Maciej Stachowiak.
3371
3372         Define WTF_USE_NPOBJECT and WTF_USE_JAVASCRIPTCORE_BINDINGS for GTK+
3373         Add required Frame::createScriptInstanceForWidget to FrameGtk
3374
3375         * config.h:
3376         * page/gtk/FrameGtk.cpp (Frame::createScriptInstanceForWidget):
3377
3378 2007-12-17  Alice Liu  <alice.liu@apple.com>
3379
3380         Reviewed by Adam.
3381
3382         Fixed <rdar://5566435> window with no scrollbars can be scrolled
3383
3384         * platform/win/ScrollViewWin.cpp:
3385         (WebCore::ScrollView::maximumScroll):
3386         corrected maximumScroll() to account for scrolling not allowed.
3387         (WebCore::ScrollView::wheelEvent):
3388
3389 2007-12-14  Juan A. Suarez Romero  <jasuarez@igalia.com>
3390
3391         Reviewed by Alp Toker.
3392
3393         http://bugs.webkit.org/show_bug.cgi?id=16042
3394         [GTK] Eliminate webkit_init()
3395
3396         Move webkit initialization to WebView class init.
3397
3398         * WebCore.pro:
3399
3400 2007-12-17  Jon Honeycutt  <jhoneycutt@apple.com>
3401
3402         Reviewed by Darin.
3403
3404         <rdar://problem/5651291> REGRESSION: Flash content doesn't display
3405         (www.adobe.com)
3406
3407         We were passing NPEvent** instead of NPEvent* to NPP_HandleEvent.
3408
3409         * plugins/win/PluginViewWin.cpp:
3410         (WebCore::PluginViewWin::dispatchNPEvent): Changed to take NPEvent&, not
3411         NPEvent*
3412         (WebCore::PluginViewWin::paint): Pass NPEvent, not NPEvent*
3413         (WebCore::PluginViewWin::handleKeyboardEvent): same
3414         (WebCore::PluginViewWin::handleMouseEvent): same
3415         * plugins/win/PluginViewWin.h:
3416
3417 2007-12-17  Alexey Proskuryakov  <ap@webkit.org>
3418
3419         Reviewed by Darin.
3420
3421         Live to the promise of never making AppKit special character codes visible via DOM.
3422
3423         Test: fast/events/arrow-keys-on-body.html
3424
3425         * page/EventHandler.cpp:
3426         (WebCore::EventHandler::keyEvent): Check for empty keypress characters after disambiguation,
3427         to let quirks-aware code strip special charactrers.
3428         * platform/mac/KeyEventMac.mm:
3429         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): If not in keyboard event quirks
3430         mode, remove the text if it's a special character.
3431
3432 2007-12-17  Mark Rowe  <mrowe@apple.com>
3433
3434         Reviewed by Darin Adler.
3435
3436         Fix incorrect array size and incorrect array index in convertNSColorToColor.
3437
3438         * rendering/RenderThemeMac.mm:
3439         (WebCore::convertNSColorToColor):
3440
3441 2007-12-17  Darin Adler  <darin@apple.com>
3442
3443         Reviewed by Mark Rowe.
3444
3445         - fix http://bugs.webkit.org/show_bug.cgi?id=16468
3446           REGRESSION(r28781): Crash running storage/transaction_callback_exception_crash.html
3447
3448         * storage/DatabaseThread.cpp:
3449         (WebCore::DatabaseThread::dispatchNextTaskIdentifier): Use a RefPtr for the database
3450         because there's no guarantee it won't lose its last reference otherwise.
3451
3452 2007-12-17  Dan Bernstein  <mitz@apple.com>
3453
3454         Reviewed by Maciej Stachowiak.
3455
3456         - fix <rdar://problem/5333260> Some Chinese characters in Text Encoding menu are bold, others are not
3457           and <rdar://problem/5280188> Chinese text looks worse on Safari for Windows cf. Safari for Mac
3458
3459         * platform/graphics/win/FontCacheWin.cpp:
3460         (WebCore::FontCache::getFontDataForCharacters): To ensure that font
3461         linking gives consistent results for characters that are exclusive to
3462         the simplified Chinese code page and characters that belong to that
3463         code page and other code pages, always ask to map to simplified Chinese
3464         alone first.
3465
3466 2007-12-17  Christian Dywan  <christian@twotoasts.de>
3467
3468         Reviewed by Alp Toker.
3469
3470         http://bugs.webkit.org/show_bug.cgi?id=16378
3471         Implement Icon for Gtk
3472
3473         Icon provides a GdkPixbuf containing a themed icon.
3474         The icon theme is probed for an icon name according to the
3475         Icon Naming Specification or conventional Gnome icon names respectively.
3476
3477         See http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
3478
3479         * platform/graphics/Icon.h:
3480         * platform/graphics/gtk/IconGtk.cpp:
3481         (WebCore::Icon::~Icon):
3482         (WebCore::lookupIconName):
3483         (WebCore::Icon::newIconForFile):
3484         (WebCore::Icon::paint):
3485
3486 2007-12-16  Sam Weinig  <sam@webkit.org>
3487
3488         Reviewed by Mitz.
3489
3490         Fix for http://bugs.webkit.org/show_bug.cgi?id=16466
3491         Move the JS Location object to its own file
3492
3493         - Move Location into its own file and rename it JSLocation.
3494
3495         * DerivedSources.make:
3496         * WebCore.pro:
3497         * WebCore.vcproj/WebCore.vcproj:
3498         * WebCore.xcodeproj/project.pbxproj:
3499         * WebCoreSources.bkl:
3500         * bindings/js/JSDocumentCustom.cpp:
3501         * bindings/js/JSLocation.cpp: Copied from WebCore/bindings/js/kjs_window.cpp.
3502         (WebCore::):
3503         (WebCore::JSLocation::JSLocation):
3504         (WebCore::JSLocation::getValueProperty):
3505         (WebCore::JSLocation::getOwnPropertySlot):
3506         (WebCore::JSLocation::put):
3507         (WebCore::JSLocationProtoFuncReplace::callAsFunction):
3508         (WebCore::JSLocationProtoFuncReload::callAsFunction):
3509         (WebCore::JSLocationProtoFuncAssign::callAsFunction):
3510         (WebCore::JSLocationProtoFuncToString::callAsFunction):
3511         * bindings/js/JSLocation.h: Copied from WebCore/bindings/js/kjs_window.h.
3512         (WebCore::JSLocation::):
3513         (WebCore::JSLocation::frame):
3514         (WebCore::JSLocation::classInfo):
3515         * bindings/js/kjs_window.cpp:
3516         (KJS::Window::location):
3517         * bindings/js/kjs_window.h:
3518         * history/CachedPage.cpp:
3519
3520 2007-12-16  Dan Bernstein  <mitz@apple.com>
3521
3522         Reviewed by Sam Weinig.
3523
3524         - make 'cursor: copy' and 'cursor: none' work.
3525
3526         Already covered by manual-tests/cursor.html
3527
3528         * rendering/RenderStyle.h: Increase the _cursor_style field to 6 bits,
3529         needed for the 33rd and 34th cursor values.
3530
3531 2007-12-16  Mark Rowe  <mrowe@apple.com>
3532
3533         Reviewed by Maciej Stachowiak.
3534
3535         Refactor Mac plugin stream code to use the shared NetscapePlugInStreamLoader implementation.
3536
3537         * WebCore.base.exp:
3538         * WebCore.xcodeproj/project.pbxproj:
3539         * loader/NetscapePlugInStreamLoader.h:
3540         * loader/mac/NetscapePlugInStreamLoaderMac.mm: Removed.
3541         * loader/mac/WebPlugInStreamLoaderDelegate.h: Moved to WebKit.
3542
3543 2007-12-16  Sam Weinig  <sam@webkit.org>
3544
3545         Reviewed by Maciej.
3546
3547         Yet more of http://bugs.webkit.org/show_bug.cgi?id=16385
3548         Cleanup kjs_window
3549
3550         - Move ScheduledAction into its own file and put it in the WebCore namespace.
3551
3552         * WebCore.pro:
3553         * WebCore.vcproj/WebCore.vcproj:
3554         * WebCore.xcodeproj/project.pbxproj:
3555         * WebCoreSources.bkl:
3556         * bindings/js/PausedTimeouts.cpp:
3557         * bindings/js/PausedTimeouts.h:
3558         * bindings/js/ScheduledAction.cpp: Copied from bindings/js/kjs_window.cpp.
3559         (WebCore::ScheduledAction::ScheduledAction):
3560         (WebCore::ScheduledAction::execute):
3561         * bindings/js/ScheduledAction.h: Copied from bindings/js/kjs_window.h.
3562         (WebCore::ScheduledAction::ScheduledAction):
3563         * bindings/js/kjs_window.cpp:
3564         (KJS::DOMWindowTimer::DOMWindowTimer):
3565         (KJS::DOMWindowTimer::action):
3566         (KJS::DOMWindowTimer::takeAction):
3567         (KJS::Window::installTimeout):
3568         (KJS::Window::timerFired):
3569         * bindings/js/kjs_window.h:
3570
3571 2007-12-16  Alp Toker  <alp@atoker.com>
3572
3573         Reviewed by Maciej.
3574
3575         http://bugs.webkit.org/show_bug.cgi?id=16356
3576         [GTK] Integrate GStreamer video with the graphics backend
3577
3578         Integrate the GStreamer media backend with the Cairo graphics backend.
3579         There are still some issues: Data is copied more often than necessary,
3580         and repaint() is not called, causing transformed video not to update
3581         sometimes.
3582
3583         * WebCore.pro:
3584         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3585         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3586         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
3587         (WebCore::MediaPlayerPrivate::currentTime):
3588         (WebCore::MediaPlayerPrivate::setEndTime):
3589         (WebCore::MediaPlayerPrivate::seeking):