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