5230adf1e0f502bd739fd2ee8d157ef6068ae0f7
[WebKit-https.git] / WebCore / ChangeLog
1 2008-05-13  Timothy Hatcher  <timothy@apple.com>
2
3         Add a new WebInspector.Object base class that will be used for
4         a few objects in the Web Inspector to support listeners on any
5         object. This will help add more abstraction to the Inspector.
6
7         Reviewed by Adam Roben.
8
9         * page/inspector/Object.js: Added.
10         (WebInspector.Object): Does nothing.
11         (WebInspector.Object.prototype.addEventListener): Adds the listener to
12         the _listeners map by type. Supports a this object argument, for easy
13         addition of listeners without the need for bind.
14         (WebInspector.Object.prototype.removeEventListener): Remove the listener
15         from the _listeners map. If the listener is null and the thisObject was
16         passed, remove any listener for that thisObject.
17         (WebInspector.Object.prototype.dispatchEventToListeners): Sends an event
18         for a type to all listeners for that type. Mimics some of the DOMEvent
19         methods and properties for the event object passed to the listeners.
20         * WebCore.vcproj/WebCore.vcproj: Add new files.
21         * page/inspector/WebKit.qrc: Ditto.
22         * page/inspector/inspector.html: Ditto.
23
24 2008-05-13  Timothy Hatcher  <timothy@apple.com>
25
26         Update the view source CSS to better match the new Inspector mock-ups.
27
28         Reviewed by Kevin McCullough.
29
30         * css/view-source.css:
31
32 2008-05-13  John Sullivan  <sullivan@apple.com>
33
34         Reviewed by Dan Bernstein and Kevin Decker
35         
36         - fixed <rdar://problem/5879597> reproducible crash in HTMLSelectElement::typeAheadFind
37
38         Test: fast/forms/select-type-ahead-list-box-no-selection.html
39
40         * html/HTMLSelectElement.cpp:
41         (WebCore::HTMLSelectElement::typeAheadFind):
42         When there's no initially-selected element, we were accessing index -1. Check for this
43         case and start at 0.
44
45 2008-05-13  Sam Weinig  <sam@webkit.org>
46
47         Reviewed by Dan Bernstein.
48
49         Small cleanup to XMLHttpRequest in preparation for Access Control changes.
50
51         * xml/XMLHttpRequest.cpp:
52         (WebCore::XMLHttpRequest::XMLHttpRequest):
53         (WebCore::XMLHttpRequest::~XMLHttpRequest):
54         (WebCore::XMLHttpRequest::open):
55         (WebCore::XMLHttpRequest::send):
56         (WebCore::XMLHttpRequest::internalAbort):
57         (WebCore::XMLHttpRequest::processSyncLoadResults):
58         (WebCore::XMLHttpRequest::didFinishLoading):
59         (WebCore::XMLHttpRequest::didReceiveResponse):
60         (WebCore::XMLHttpRequest::didReceiveData):
61         * xml/XMLHttpRequest.h:
62
63 2008-05-13  chris fleizach  <cfleizach@apple.com>
64
65         Beth Dakin
66
67         <rdar://problem/5701210> VO: If image is missing, VoiceOver does not speak the alternative text.
68
69         * page/AccessibilityRenderObject.cpp:
70         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
71
72 2008-05-13  chris fleizach  <cfleizach@apple.com>
73
74         Beth Dakin
75
76         <rdar://problem/5908446> AX: webkit needs to return blockquote information for all AX objects, not just in AXTextMarker info
77
78         * page/mac/AccessibilityObjectWrapper.mm:
79         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
80         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
81
82 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
83
84         Reviewed by John Sullivan.
85
86         <rdar://problem/4852077> REGRESSION: The content of the HTML file which is saved as Thai
87         (ISO 8859-11) disappear.
88
89         <rdar://problem/5842597> Thai ISO-8859-11 should be upgraded to Windows-874
90
91         Test: fast/encoding/char-decoding.html
92
93         * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
94         Register ISO-8859-11, which doesn't have a standard IANA name, despite following
95         the usual 8859 naming scheme. Also, made TIS-620 map to windows-874-2000 explicitly.
96
97 2008-05-13  chris fleizach  <cfleizach@apple.com>
98
99         Reviewed by Beth Dakin
100
101         <rdar://problem/5471973> Some AXLinks are not getting AXTitles though there is title text
102
103         * page/AccessibilityRenderObject.cpp:
104         (WebCore::AccessibilityRenderObject::title):
105
106 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
107
108         Reviewed by Eric Seidel.
109
110         https://bugs.webkit.org/show_bug.cgi?id=18681
111         <rdar://problem/5888130> WebKit should not remove BOM characters from content.
112
113         We were only trying to match Firefox, and it doesn't do this any more.
114
115         Tests: fast/encoding/bom-in-content.html
116                fast/encoding/bom-in-content-utf16.html
117
118         * platform/text/TextDecoder.cpp: (WebCore::TextDecoder::checkForBOM): Skip the BOM if it's
119         at the start of input stream.
120
121         * platform/text/TextCodec.cpp:
122         * platform/text/TextCodec.h:
123         * platform/text/TextCodecICU.cpp:
124         (WebCore::TextCodecICU::decode):
125         * platform/text/TextCodecUTF16.cpp:
126         (WebCore::TextCodecUTF16::decode):
127         * platform/text/mac/TextCodecMac.cpp:
128         (WebCore::TextCodecMac::decode):
129         Don't remove the BOM.
130
131 2008-05-13  Anders Carlsson  <andersca@apple.com>
132
133         Reviewed by Darin.
134
135         Don't crash when a document loader is destroyed while an initial caching attempt
136         is in progress.
137
138         * loader/appcache/ApplicationCacheGroup.cpp:
139         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
140         Stop loading.
141         
142         (WebCore::ApplicationCacheGroup::stopLoading):
143         New method that stops a cache update.
144         
145         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
146         Delete ourselves here.
147         
148         * loader/appcache/ApplicationCacheGroup.h:
149
150 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
151
152         Reviewed by Darin.
153
154         <rdar://problem/5841351> Turkish ISO 8859-9 encoding should be treated as windows-1254
155
156         Match IE and upgrade ISO-8859-9 to windows-1254, which is its strict superset.
157
158         Test: fast/encoding/char-decoding.html
159
160         * platform/text/TextCodecICU.cpp:
161         (WebCore::TextCodecICU::registerExtendedEncodingNames): Register the standard name
162         unconditionally. Previously, we registered windows-949-2000 as a special case that lacked 
163         an IANA standard name, and got away with not registering GBK because it happened
164         to be reported by ICU normally earlier than any encoding upgraded to it.
165
166 2008-05-13  Tor Arne Vestbø  <tavestbo@trolltech.com>
167
168         Reviewed by Simon
169
170         Fix QtWebKit build on Qt embedded.
171
172         * WebCore.pro:
173         * platform/FileSystem.h:
174         * platform/qt/FileSystemQt.cpp:
175
176 2008-05-13  Ariya Hidayat  <ariya.hidayat@trolltech.com>
177
178         Reviewed by Simon.
179
180         For Gtk/X11 and Qt/X11, use a more extensive plug-ins scan directories set
181
182         * plugins/PluginDatabase.cpp:
183         (WebCore::addMozillaPluginDirectories):
184         (WebCore::PluginDatabase::isPreferredPluginDirectory):
185
186 2008-05-12  Adam Roben  <aroben@apple.com>
187
188         Turn on warnings as errors in WebCore.vcproj
189
190         Rubberstamped by Anders Carlsson.
191
192         * WebCore.vcproj/WebCore.vcproj: Also let VS reformat the file as it
193         saw fit. The important part is the removal of the WarnAsError="false"
194         lines.
195
196 2008-05-09  Sam Weinig  <sam@webkit.org>
197
198         Reviewed by Mark Rowe.
199
200         Fix for https://bugs.webkit.org/show_bug.cgi?id=18958
201         NULL pointer dereference in NamedAttrMap::setNamedItem
202
203         Test: fast/dom/NamedNodeMap-setNamedItem-crash.html
204
205         * dom/NamedAttrMap.cpp:
206         (WebCore::NamedAttrMap::setNamedItem): Null check the argument.
207
208 2008-05-09  Kevin McCullough  <kmccullough@apple.com>
209
210         Build fix.
211
212         * page/Console.cpp:
213         (WebCore::Console::profile):
214
215 2008-05-09  Sam Weinig  <sam@webkit.org>
216
217         Rubber-stamped by Mark Rowe.
218
219         Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.
220
221         * Configurations/WebCore.xcconfig:
222         * WebCore.vcproj/WebCore.vcproj:
223         * WebCore.vcproj/build-generated-files.sh:
224         * bindings/js/JSDOMWindowCustom.cpp:
225         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
226         (WebCore::JSDOMWindow::postMessage):
227         * bindings/js/JSEventCustom.cpp:
228         (WebCore::toJS):
229         * bindings/objc/DOMEvents.mm:
230         (+[DOMEvent _wrapEvent:WebCore::]):
231         * dom/Document.cpp:
232         (WebCore::Document::createEvent):
233         * dom/Event.cpp:
234         (WebCore::Event::isMessageEvent):
235         * dom/Event.h:
236         * dom/MessageEvent.cpp:
237         * dom/MessageEvent.h:
238         * dom/MessageEvent.idl:
239         * page/DOMWindow.cpp:
240         (WebCore::DOMWindow::postMessageTimerFired):
241         * page/DOMWindow.h:
242         * page/DOMWindow.idl:
243
244 2008-05-09  Adam Barth  <abarth-webkit@adambarth.com>
245
246         Reviewed by Sam Weinig.
247
248         https://bugs.webkit.org/show_bug.cgi?id=18771
249
250         Make postMessage generate an event on the window instead of the
251         document.
252
253         Test: http/tests/messaging/cross-domain-message-event-dispatch.html
254
255         * dom/EventTargetNode.cpp:
256         (WebCore::EventTargetNode::dispatchWindowEvent):
257         * dom/EventTargetNode.h:
258         * page/DOMWindow.cpp:
259         (WebCore::DOMWindow::postMessageTimerFired):
260
261 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
262
263         Reviewed by Simon.
264
265         Replaced all instances of qDebug() with LOG(Media, ...)
266         in MediaPlayerPrivatePhonon.
267
268         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
269         (WebCore::MediaPlayerPrivate::updateStates):
270
271 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
272
273         Reviewed by Simon
274
275         Fix the Qt/Mac build.
276
277         * platform/qt/FileSystemQt.cpp:
278
279 2008-05-08  Sam Weinig  <sam@webkit.org>
280
281         Reviewed by Anders Carlsson.
282
283         Rename the XMLHttpRequestState enum values to match the spec.
284
285         * xml/XMLHttpRequest.cpp:
286         (WebCore::XMLHttpRequest::responseXML):
287         (WebCore::XMLHttpRequest::XMLHttpRequest):
288         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
289         (WebCore::XMLHttpRequest::open):
290         (WebCore::XMLHttpRequest::send):
291         (WebCore::XMLHttpRequest::abort):
292         (WebCore::XMLHttpRequest::setRequestHeader):
293         (WebCore::XMLHttpRequest::getAllResponseHeaders):
294         (WebCore::XMLHttpRequest::getResponseHeader):
295         (WebCore::XMLHttpRequest::status):
296         (WebCore::XMLHttpRequest::statusText):
297         (WebCore::XMLHttpRequest::processSyncLoadResults):
298         (WebCore::XMLHttpRequest::didFinishLoading):
299         (WebCore::XMLHttpRequest::didReceiveData):
300         * xml/XMLHttpRequest.h:
301         (WebCore::):
302
303 2008-05-08  Dan Bernstein  <mitz@apple.com>
304
305         Reviewed by Mark Rowe.
306
307         - fix https://bugs.webkit.org/show_bug.cgi?id=18818
308           <rdar://problem/5901544> REGRESSION (3.1.1-TOT): Character order (float:left ordered after the first letter)
309
310         Test: fast/css/first-letter-float-after-float.html
311
312         * rendering/RenderBlock.cpp:
313         (WebCore::RenderBlock::updateFirstLetter): Changed to add the first
314         letter container right before the rest of the text it is taken from,
315         instead of at the beginning of the block.
316
317 2008-05-08  Chris Fleizach  <cfleizach@apple.com>
318
319         Reviewed by Darin Adler.
320
321         <rdar://problem/5921046> AX: list box options have wrong AXPosition
322
323         * page/AccessibilityObject.cpp:
324         (WebCore::AccessibilityObject::documentFrameView):
325         * page/AccessibilityObject.h:
326
327 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
328
329         Reviewed by Eric.
330
331         Bug 18916: make_names.pl --factory needs to support custom c++ guard
332
333         Add --guardFactoryWith to handle the cpp guard around generated factories.
334
335         * DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
336         * GNUmakefile.am: Ditto.
337         * WebCore.pro: Ditto.
338         * dom/make_names.pl: Add guardFactoryWith option.
339
340 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
341
342         Reviewed by Adam Roben.
343
344         wx & Gtk build fix.
345
346         Should also fix the cURL backend for the Windows port.
347
348         * WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
349         * platform/network/curl/FormDataStreamCurl.h: Include stdio.h which
350         fixes the build on some machine.
351
352         * webcore-wx.bkl: Add FormDataStreamCurl.cpp.
353
354 2008-05-08  Timothy Hatcher  <timothy@apple.com>
355
356         Fixes the bug where the Web Inspector could not
357         find any localization strings.
358
359         Reviewed by Mark Rowe.
360
361         * WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js
362         file to the WebCore Copy Resources phase. Also removes an idl from
363         the Copy Resources phase.
364
365 2008-05-08  Dan Bernstein  <mitz@apple.com>
366
367         Reviewed by Adam Roben.
368
369         - fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
370
371         * platform/win/PopupMenuWin.cpp:
372         (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold
373         font for measuring labels.
374
375 2008-05-08  Dan Bernstein  <mitz@apple.com>
376
377         Reviewed by Geoffrey Garen.
378
379         - cross-platform fix for http://bugs.webkit.org/show_bug.cgi?id=17590 
380           ASSERTION FAILED: subject in jsRegExpExecute()
381
382         * page/Frame.cpp:
383         (WebCore::Frame::matchLabelsAgainstElement):
384
385 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
386
387         Reviewed by Simon.
388
389         Simple ImageBuffer::image implementation.
390
391         In contrast to cg and cairo we do not use a special BitmapImage because
392         the ownership of the FrameData inside the BitmapImage is a bit backward
393         (actually owned by the ImageDecoderQt...). Further work is needed for image
394         and pixmap handling in the qt port...
395
396         * WebCore.pro:
397         * platform/graphics/ImageBuffer.h:
398         * platform/graphics/qt/ImageBufferQt.cpp:
399         (WebCore::ImageBuffer::image):
400         * platform/graphics/qt/ImageQt.cpp:
401         * platform/graphics/qt/StillImageQt.cpp: Added.
402         (WebCore::StillImage::StillImage):
403         (WebCore::StillImage::size):
404         (WebCore::StillImage::getPixmap):
405         (WebCore::StillImage::draw):
406         * platform/graphics/qt/StillImageQt.h: Added.
407
408 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
409
410         Reviewed by Simon.
411
412         Update the WebKit.qrc of the inspector to be functional again
413
414         * page/inspector/WebKit.qrc:
415
416 2008-05-08  Tor Arne Vestbø  <tavestbo@trolltech.com>
417
418         Reviewed by Simon
419
420         Fix the Qt/Mac build.
421
422         * platform/FileSystem.h:
423
424 2008-05-08  Ariya Hidayat  <ariya.hidayat@trolltech.com>
425
426         Reviewed by Simon.
427
428         Use native Windows library handling (instead of QLibrary) 
429         for Qt/Win32's PlatformModule.
430
431         * platform/FileSystem.h:
432         (WebCore::PlatformModuleVersion::PlatformModuleVersion):
433         * platform/qt/FileSystemQt.cpp:
434         (WebCore::unloadModule):
435
436 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
437
438         Reviewed and found by Holger.
439
440         Include .css in the list of extensions for text/css. Fixes
441         fast/loader/local-css-allowed-in-strict-mode.html.
442
443         * platform/qt/MIMETypeRegistryQt.cpp:
444
445 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
446
447         Fix the Qt and Wx build when compiling without offline app support.
448
449         * loader/FrameLoader.cpp:
450         (WebCore::FrameLoader::canCachePage):
451
452 2008-05-07  Sam Weinig  <sam@webkit.org>
453
454         Reviewed by Adele Peterson
455
456         Update MessageEvent to match the latest version of the HTML5 spec,
457         adding the lastEventId attribute.
458
459         * dom/MessageEvent.cpp:
460         (WebCore::MessageEvent::MessageEvent):
461         (WebCore::MessageEvent::initMessageEvent):
462         * dom/MessageEvent.h:
463         (WebCore::MessageEvent::lastEventId):
464         * dom/MessageEvent.idl:
465         * page/DOMWindow.cpp:
466         (WebCore::DOMWindow::postMessage):
467
468 2008-05-07  Stephanie Lewis <slewis@apple.com>
469
470         Reviewed by Maciej.
471
472         remove non-functioning code.  If onunload should be fired from these nodes then
473         a WindowEventListener needs to be set.  However, Firefox and IE also do not
474         fire onunload events for these cases.
475
476         Test: fast/events/onunload-not-on-body.html 
477         
478         * html/HTMLFrameElementBase.cpp:
479         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
480         * html/HTMLObjectElement.cpp
481         (WebCore::HTMLObjectElement::parseMappedAttribute):
482
483 2008-05-07  Dan Bernstein  <mitz@apple.com>
484
485         Reviewed by John Sullivan.
486
487         - fix https://bugs.webkit.org/show_bug.cgi?id=18909
488           <rdar://problem/5914165> REGRESSION (r31872-r31878): Viewed photos not closing completely at indycar.com
489
490         Test: fast/dynamic/positioned-movement-with-positioned-children.html
491
492         * rendering/RenderBlock.cpp:
493         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of
494         a positioned object that has only moved and has only positioned children
495         that have changed.
496         * rendering/RenderObject.h:
497         (WebCore::RenderObject::needsPositionedMovementLayout): Added this
498         accessor.
499
500 2008-05-07  Anders Carlsson  <andersca@apple.com>
501
502         Reviewed by John.
503
504         When no document loaders are associated with an application cache group,
505         release the reference to the newest cache group. This prevents reference cycles.
506         
507         * loader/appcache/ApplicationCacheGroup.cpp:
508         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
509         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
510         (WebCore::ApplicationCacheGroup::cacheDestroyed):
511         * loader/appcache/ApplicationCacheGroup.h:
512         
513         * loader/appcache/ApplicationCacheStorage.cpp:
514         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
515         Return early if the datbase wasn't open.
516         
517         (WebCore::ApplicationCacheStorage::loadCache):
518         Add error.
519
520 2008-05-07  Anders Carlsson  <andersca@apple.com>
521
522         Reviewed by Adam.
523
524         Don't put pages with an application cache in the BF cache.
525         
526         * loader/FrameLoader.cpp:
527         (WebCore::FrameLoader::canCachePage):
528
529 2008-05-07  Justin Garcia  <justin.garcia@apple.com>
530
531         Reviewed by John Sullivan.
532
533         <rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply
534         
535         When a single tab or series of tabs was copied, we weren't putting them into a 
536         tab span.  On Paste, we would be given a text node with a single tab or series
537         of tabs in it, and we would crash when inserting it at the start of a block
538         (where that kind of text becomes completely unrendered).
539
540         * editing/ReplaceSelectionCommand.cpp:
541         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean
542         up correctly and early return if we removed everything that was inserted.
543         * editing/markup.cpp:
544         (WebCore::createMarkup):  Include the tab span when the only thing copied
545         was a tab or a series of tabs.
546
547 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
548
549         Reviewed by Adam Roben.
550
551         wx & Gtk build fix.
552
553         * platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define
554         __STDC_LIMIT_MACROS to have SIZE_MAX exported.
555         * platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h)
556         as it is not present on the build bots.
557         * plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
558
559 2008-05-07  David Kilzer  <ddkilzer@apple.com>
560
561         Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
562         <https://bugs.webkit.org/show_bug.cgi?id=18900>
563         <rdar://problem/5912383>
564
565         Original patch by Aaron Golden and Tim Omernick.  Reviewed by Adele.
566
567         Test: fast/forms/textfield-to-password-on-focus.html
568
569         * html/HTMLInputElement.cpp:
570         (WebCore::HTMLInputElement::setInputType): If the current node has
571         focus, call updateFocusAppearance() to make sure its state is correct
572         after changing its type.
573
574 2008-05-07  Chris Fleizach  <cfleizach@apple.com>
575
576         Reviewed by Alice Liu
577
578         <rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton
579
580         * page/AccessibilityObject.h:
581         (WebCore::AccessibilityObject::isFileUploadButton):
582         * page/AccessibilityRenderObject.cpp:
583         (WebCore::AccessibilityRenderObject::isFileUploadButton):
584         (WebCore::AccessibilityRenderObject::actionElement):
585         (WebCore::AccessibilityRenderObject::textUnderElement):
586         (WebCore::AccessibilityRenderObject::stringValue):
587         (WebCore::AccessibilityRenderObject::roleValue):
588         * page/AccessibilityRenderObject.h:
589         * rendering/RenderFileUploadControl.cpp:
590         (WebCore::RenderFileUploadControl::buttonValue):
591         (WebCore::RenderFileUploadControl::fileTextValue):
592         * rendering/RenderFileUploadControl.h:
593
594 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
595
596         Reviewed by Eric.
597
598         Bug 17971: [Curl] FormData processing should be moved to its own class
599
600         Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
601         could manipulate.
602
603         First step into having complete file uploading facility in cURL.
604
605         No test case as it is only code refactoring.
606
607         * GNUmakefile.am: Add FormDataStreamCurl.cpp
608         * platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h
609         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
610         * platform/network/curl/FormDataStreamCurl.cpp: Added.
611         (WebCore::FormDataStream::~FormDataStream):
612         (WebCore::FormDataStream::read):
613         * platform/network/curl/FormDataStreamCurl.h: Added.
614         (WebCore::FormDataStream::FormDataStream):
615         * platform/network/curl/ResourceHandleCurl.cpp:
616         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
617         * platform/network/curl/ResourceHandleManager.cpp:
618         (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
619
620 2008-05-07  Adam Treat  <treat@kde.org>
621
622         Reviewed by Simon.
623
624         https://bugs.webkit.org/show_bug.cgi?id=18898
625
626         Fixed wrong transform being used for creating the pixmap for a new
627         transparency layer. This fixes the popup menus on dell.com.
628
629         * platform/graphics/qt/GraphicsContextQt.cpp:
630         (WebCore::GraphicsContext::beginTransparencyLayer):
631
632 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
633
634         Reviewed by Simon.
635
636         Share the plug-in directories between Gtk and Qt/X11 port.
637
638         * platform/qt/FileSystemQt.cpp:
639         (WebCore::homeDirectoryPath): Implement it for Qt.
640         * plugins/PluginDatabase.cpp:
641         (WebCore::addMozillaPluginDirectories): Shared code.
642         (WebCore::PluginDatabase::defaultPluginDirectories):
643         (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
644         * plugins/gtk/PluginDatabaseGtk.cpp:
645         (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
646         * plugins/qt/PluginDatabaseQt.cpp: Refactored.
647
648 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
649
650         Reviewed by Simon
651
652         Fix build issues on Mac and refeactor the .pro file a bit.
653
654         * WebCore.pro:
655         * platform/qt/TemporaryLinkStubs.cpp:
656         (PluginPackage::fetchInfo):
657
658 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
659
660         Reviewed by Simon
661
662         Draw scrollview corners (between scrollbars) using the Qt style.
663
664         https://bugs.webkit.org/show_bug.cgi?id=18894
665
666         * platform/qt/ScrollViewQt.cpp:
667         (WebCore::drawScrollbarCorner):
668         (WebCore::ScrollView::paint):
669
670 2008-05-07  Simon Hausmann  <hausmann@webkit.org>
671
672         Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
673         the build.
674
675         * WebCore.pro:
676
677 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
678
679         Rubber-stamped by Holger.
680
681         Fix building without storage support.
682
683         * page/PageGroup.cpp:
684         (WebCore::PageGroup::closeLocalStorage): proper #if
685
686 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
687
688         Rubber-stamped by Oliver Hunt.
689
690         Fix building without accessibility.
691
692         * page/AXObjectCache.cpp:
693         (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
694
695 2008-05-06  Dan Bernstein  <mitz@apple.com>
696
697         Reviewed by Darin Adler.
698
699         - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
700
701         Test: fast/block/float/float-on-zero-height-line.html
702
703         * rendering/RenderBlock.cpp:
704         (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
705
706 2008-05-06  Alice Liu  <alice.liu@apple.com>
707
708         Reviewed by Adele Peterson and John Sullivan.
709
710         changes needed to build on Windows after r32911 and r32927
711
712         * WebCore.vcproj/WebCore.vcproj:
713         * page/AXObjectCache.cpp:
714         (WebCore::AXObjectCache::selectedChildrenChanged):
715         * page/AccessibilityObject.h:
716         (WebCore::AccessibilityObject::document):
717         (WebCore::AccessibilityObject::topDocumentFrameView):
718         (WebCore::AccessibilityObject::documentFrameView):
719         * page/AccessibilityRenderObject.cpp:
720         (WebCore::AccessibilityRenderObject::document):
721         (WebCore::AccessibilityRenderObject::topDocumentFrameView):
722         (WebCore::AccessibilityRenderObject::documentFrameView):
723         * page/AccessibilityRenderObject.h:
724         * page/mac/AXObjectCacheMac.mm:
725         * page/mac/AccessibilityObjectWrapper.mm:
726         (-[AccessibilityObjectWrapper position]):
727         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
728
729 2008-05-06  Brady Eidson  <beidson@apple.com>
730
731         Reviewed by Sam Weinig
732
733         Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
734         1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
735         2 - Pending sync timers all need to be cancelled.
736
737         * storage/LocalStorage.cpp:
738         (WebCore::LocalStorage::storageArea):
739         (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
740           thread termination.
741         * storage/LocalStorage.h:  Change the map to be of LocalStorageAreas instead of StorageAreas
742
743         * storage/LocalStorageArea.cpp:
744         (WebCore::LocalStorageArea::LocalStorageArea):
745         (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
746           in release builds.
747         (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
748           "final sync scheduled" flag
749         (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
750         (WebCore::LocalStorageArea::scheduleClear): Ditto
751         * storage/LocalStorageArea.h:
752
753 2008-05-06  Kevin Ollivier  <kevino@theolliviers.com>
754
755         wx build fix. Adding files added in  r32925 to the bakefiles.
756
757         * WebCoreSources.bkl:
758
759 2008-05-06  Alp Toker  <alp@nuanti.com>
760
761         GTK+ build fix. Add empty stub to keep non-accessible ports building.
762
763         * page/AXObjectCache.h:
764         (WebCore::AXObjectCache::selectedChildrenChanged):
765
766 2008-05-06  Beth Dakin  <bdakin@apple.com>
767
768         Reviewed by Darin.
769
770         Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and 
771         'aria-describedby' attributes.
772
773         * html/HTMLAttributeNames.in: Added new attributes. Added both the 
774         British spelling (since that is what is specified in the spec), and 
775         the American spelling (since the bug filer and I are two Americans 
776         who keep spelling it the American way by accident). 
777         * page/AccessibilityObject.cpp: Added empty wrappers. These 
778         functions can't do anything meaningful without a renderer.
779         (WebCore::AccessibilityObject::ariaAccessiblityName):
780         (WebCore::AccessibilityObject::ariaLabeledByAttribute):
781         (WebCore::AccessibilityObject::ariaDescribedByAttribute):
782         * page/AccessibilityObject.h:
783
784         Here is where the real work is done.
785         * page/AccessibilityRenderObject.h:
786         * page/AccessibilityRenderObject.cpp:
787         (WebCore::accessibleNameForNode): Takes a node and finds its 
788         contribution to the accessible name, as defined by the Mozilla ARIA 
789         Implementer's Guide. 
790         (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a 
791         string of space-separated IDs, fetches the corresponding element 
792         for each ID, and concatenates an accessible name based on the 
793         elements.
794         (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute): 
795         Retrieve the labeledby attribute and send its contents to 
796         ariaAccessibilityName().
797         (WebCore::AccessibilityRenderObject::title): Return the ARIA 
798         labeledby value if one exists.
799         (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute): 
800         Retrieve the describedby attribute and send its contents to 
801         ariaAccessibilityName().
802         (WebCore::AccessibilityRenderObject::accessibilityDescription): 
803         Return the ARIA describedby attribute if one exists. 
804
805         These are two bugs I spotted. 
806         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't 
807         ignore anything with an ARIA role.
808         (WebCore::AccessibilityRenderObject::roleValue): Button tags maps 
809         to ButtonRole.
810
811 2008-05-06  Anders Carlsson  <andersca@apple.com>
812
813         Reviewed by Brady.
814
815         Support reading back app caches from the database.
816     
817         * loader/appcache/ApplicationCache.cpp:
818         (WebCore::ApplicationCache::ApplicationCache):
819         Initialize m_storageID to 0.
820         
821         * loader/appcache/ApplicationCacheGroup.cpp:
822         (WebCore::ApplicationCacheGroup::cacheDestroyed):
823         If the cache being destroyed is not the newest cache, it should no longer be 
824         stored in the database. Remove it.
825         
826         (WebCore::ApplicationCacheGroup::setNewestCache):
827         Don't store the cache here.
828         
829         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
830         Store it here instead.
831         
832         * loader/appcache/ApplicationCacheStorage.cpp:
833         (WebCore::ApplicationCacheStorage::loadCacheGroup):
834         New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).
835         
836         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
837         Search for the group in the database.
838         
839         (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
840         New method that loads the host hashes from the database.
841         
842         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
843         Search in the database for a cache that contains the resource.
844         
845         (WebCore::ApplicationCacheStorage::loadCache):
846         New method that loads a cache with a given ID.
847         
848         (WebCore::ApplicationCacheStorage::remove):
849         New method that removes a cache.
850         
851         * loader/appcache/ApplicationCacheStorage.h:
852         Add definitions.
853
854 2008-05-06  Alp Toker  <alp@nuanti.com>
855
856         Partial GTK+ build fix. Add files from r32925 to the build and replace
857         'nil' return with 0.
858
859         * GNUmakefile.am:
860         * page/AccessibilityListBoxOption.cpp:
861         (WebCore::AccessibilityListBoxOption::parentObject):
862
863 2008-05-06  Brady Eidson  <beidson@apple.com>
864
865         Reviewed by Anders
866
867         Make LocalStorage persistent using a SQLite database.
868
869         There's a few things going on here.  Whenever an item is changed, we add it to a set of
870         "items to be sync'ed."  Instead of immediately scheduling the sync'ing on the background
871         thread, we set a "sync timer" instead.  This is to shield against a series of rapid changes
872         to avoid thread churn.
873
874         When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
875         and schedule the sync task which is where the items are actually committed to disk.
876
877         Current design for reading items back in from disk is to be as aggressive as possible.
878         When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
879         they are immediately available.  A future enhancement will be to being this pre-fetching the
880         moment we start loading a page when we know that page has LocalStorage.
881
882         * storage/LocalStorageArea.cpp:
883         (WebCore::LocalStorageArea::LocalStorageArea):
884         (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it.
885         (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it.
886         (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it.
887         (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it.  The second case is
888           because if the item is set while the import is still in progress, the new value should override whatever
889           the imported value is.
890         (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it.  See the 
891           explanation for setItem()
892         (WebCore::LocalStorageArea::contains): Return whether or not the item is contained.  Do the same dance with
893           the import flag, import lock, and import condition that the above methods do.
894
895         (WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
896         (WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
897         (WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously 
898           scheduled items.
899
900         (WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
901         (WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed."  If any
902           items are later set before the actual removal takes place, they will be written *after* the removal.
903         (WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then 
904           schedule a sync task.  Also transfer the "items cleared" flag to the "background thread items cleared" flag
905         (WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
906         (WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
907         (WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items.  Then update or delete 
908           each item waiting to be sync'ed
909         * storage/LocalStorageArea.h:
910
911 2008-05-06  Brady Eidson  <beidson@apple.com>
912
913         Rubberstamped by Mitz Pettel RTL
914
915         * storage/LocalStorage.cpp:
916         (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
917
918 2008-05-06  Brady Eidson  <beidson@apple.com>
919
920         Reviewed by Darin, Sam Weinig, and Anders
921
922         Preparation for upcoming work making LocalStorage persistent.
923
924         The final step before code that actually does storage and retrieval of LocalStorage items.
925
926         The LocalStorage set is responsible for controlling the path and filenames that individual
927         LocalStorageAreas will use for their persistent store.  This adds the ability to return that
928         filename.
929
930         Also, add the scheduling methods that LocalStorageArea will use for importing and syncing 
931         it's persistent items.
932
933         * storage/LocalStorage.cpp:
934         (WebCore::LocalStorage::storageArea):  Add some comments re: the future direction of this
935           method once we actually do quota tracking.
936         (WebCore::LocalStorage::fullDatabaseFilename):
937         (WebCore::LocalStorage::scheduleImport):
938         (WebCore::LocalStorage::scheduleSync):
939         * storage/LocalStorage.h:
940
941 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
942
943         Reviewed by Beth Dakin.
944
945         rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
946
947         * WebCore.xcodeproj/project.pbxproj:
948         * html/HTMLOptGroupElement.cpp:
949         (WebCore::HTMLOptGroupElement::ownerSelectElement):
950         (WebCore::HTMLOptGroupElement::accessKeyAction):
951         * html/HTMLOptGroupElement.h:
952         * html/HTMLOptionElement.cpp:
953         (WebCore::HTMLOptionElement::accessKeyAction):
954         (WebCore::HTMLOptionElement::index):
955         (WebCore::HTMLOptionElement::setSelected):
956         (WebCore::HTMLOptionElement::childrenChanged):
957         (WebCore::HTMLOptionElement::ownerSelectElement):
958         (WebCore::HTMLOptionElement::insertedIntoDocument):
959         * html/HTMLOptionElement.h:
960         * html/HTMLSelectElement.cpp:
961         (WebCore::HTMLSelectElement::childrenChanged):
962         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
963         * html/HTMLSelectElement.h:
964         * page/AXObjectCache.cpp:
965         (WebCore::AXObjectCache::get):
966         * page/AccessibilityListBox.cpp: Added.
967         (WebCore::AccessibilityListBox::AccessibilityListBox):
968         (WebCore::AccessibilityListBox::~AccessibilityListBox):
969         (WebCore::AccessibilityListBox::create):
970         (WebCore::AccessibilityListBox::addChildren):
971         (WebCore::AccessibilityListBox::selectedChildren):
972         (WebCore::AccessibilityListBox::visibleChildren):
973         (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
974         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
975         * page/AccessibilityListBox.h: Added.
976         (WebCore::AccessibilityListBox::accessibilityShouldUseUniqueId):
977         (WebCore::AccessibilityListBox::isListBox):
978         (WebCore::AccessibilityListBox::canSetFocusAttribute):
979         (WebCore::AccessibilityListBox::roleValue):
980         (WebCore::AccessibilityListBox::accessibilityIsIgnored):
981         * page/AccessibilityListBoxOption.cpp: Added.
982         (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
983         (WebCore::AccessibilityListBoxOption::~AccessibilityListBoxOption):
984         (WebCore::AccessibilityListBoxOption::create):
985         (WebCore::AccessibilityListBoxOption::isEnabled):
986         (WebCore::AccessibilityListBoxOption::isSelected):
987         (WebCore::AccessibilityListBoxOption::elementRect):
988         (WebCore::AccessibilityListBoxOption::title):
989         (WebCore::AccessibilityListBoxOption::size):
990         (WebCore::AccessibilityListBoxOption::actionElement):
991         (WebCore::AccessibilityListBoxOption::parentObject):
992         (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
993         (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
994         * page/AccessibilityListBoxOption.h: Added.
995         (WebCore::AccessibilityListBoxOption::setHTMLElement):
996         (WebCore::AccessibilityListBoxOption::roleValue):
997         (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
998         (WebCore::AccessibilityListBoxOption::isListBoxOption):
999         * page/AccessibilityObject.h:
1000         (WebCore::AccessibilityObject::isListBox):
1001         * page/AccessibilityRenderObject.cpp:
1002         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1003         * page/mac/AccessibilityObjectWrapper.mm:
1004         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1005         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1006         * rendering/RenderListBox.cpp:
1007         (WebCore::RenderListBox::selectionChanged):
1008         * rendering/RenderListBox.h:
1009
1010 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
1011
1012         Reviewed by Beth Dakin.
1013
1014          <rdar://problem/5455287> AXWebArea should include AXURL
1015
1016         * page/AccessibilityRenderObject.cpp:
1017         (WebCore::AccessibilityRenderObject::url):
1018         * page/mac/AccessibilityObjectWrapper.mm:
1019         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1020
1021 2008-05-06  Alice Liu  <alice.liu@apple.com>
1022
1023         Rubber-stamped by Beth
1024         
1025         stab-in-the-dark attempt at fixing non-mac builds.
1026
1027         * GNUmakefile.am:
1028         * WebCore.pro:
1029         * WebCore.vcproj/WebCore.vcproj:
1030         * WebCoreSources.bkl:
1031
1032 2008-05-06  Anders Carlsson  <andersca@apple.com>
1033
1034         Reviewed by Adam.
1035
1036         Only use the toplevel application cache when loading subframes.
1037
1038         * loader/MainResourceLoader.cpp:
1039         (WebCore::MainResourceLoader::load):
1040
1041 2008-05-06  Adam Barth  <abarth-webkit@adambarth.com>
1042
1043         Reviewed by Sam Weinig.
1044
1045         https://bugs.webkit.org/show_bug.cgi?id=18725
1046         Implement asynchronous postMessage.
1047         MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.
1048
1049         Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
1050
1051         Test: http/tests/security/postMessage/delivery-order.html
1052
1053         * dom/MessageEvent.cpp:
1054         (WebCore::MessageEvent::MessageEvent):
1055         * page/DOMWindow.cpp:
1056         (WebCore::PostMessageTimer::PostMessageTimer):
1057         (WebCore::PostMessageTimer::event):
1058         (WebCore::PostMessageTimer::targetOrigin):
1059         (WebCore::PostMessageTimer::fired):
1060         (WebCore::DOMWindow::postMessage):
1061         (WebCore::DOMWindow::postMessageTimerFired):
1062         * page/DOMWindow.h:
1063         * page/DOMWindow.idl:
1064         
1065 2008-05-06  Anders Carlsson  <andersca@apple.com>
1066
1067         Reviewed by Brady.
1068
1069         Store cache to the database.
1070
1071         * loader/appcache/ApplicationCache.cpp:
1072         (WebCore::ApplicationCache::addResource):
1073         If the cache has been saved to disk, save the resource as well.
1074         
1075         * loader/appcache/ApplicationCache.h:
1076         (WebCore::ApplicationCache::onlineWhitelist):
1077         New method which returns the online whitelist.
1078
1079         (WebCore::ApplicationCache::setStorageId):
1080         (WebCore::ApplicationCache::storageId):
1081         Setter/getter for the application cache storage ID.
1082
1083         * loader/appcache/ApplicationCacheGroup.cpp:
1084         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
1085         Save the cache/group to disk.
1086         
1087         * loader/appcache/ApplicationCacheGroup.h:
1088         (WebCore::ApplicationCacheGroup::setStorageID):
1089         (WebCore::ApplicationCacheGroup::storageID):
1090         Setter/getter for the application cache group storage ID.
1091         
1092         * loader/appcache/ApplicationCacheResource.cpp:
1093         (WebCore::ApplicationCacheResource::addType):
1094         We can't add a new type if the resource has been saved to disk.
1095         
1096         * loader/appcache/ApplicationCacheResource.h:
1097         (WebCore::ApplicationCacheResource::setStorageID):
1098         (WebCore::ApplicationCacheResource::storageID):
1099         Setter/getter for the application cache resource storage ID.
1100
1101         * loader/appcache/ApplicationCacheStorage.cpp:
1102         * loader/appcache/ApplicationCacheStorage.cpp:
1103         (WebCore::ApplicationCacheStorage::executeSQLCommand):
1104         New method for executing SQL and logging any errors.
1105         
1106         (WebCore::ApplicationCacheStorage::openDatabase):
1107         Create new tables.
1108         
1109         (WebCore::ApplicationCacheStorage::executeStatement):
1110         New method for executing an SQL statement and logging any errors.
1111         
1112         (WebCore::ApplicationCacheStorage::store):
1113         New methods for storing a cache group, cache and cache resource to the store.
1114
1115         (WebCore::ApplicationCacheStorage::storeNewestCache):
1116         New method which stores the newest cache and updates the newest cache field in the cache group.
1117         
1118         * loader/appcache/ApplicationCacheStorage.h:
1119         Add new methods.
1120         
1121         * platform/sql/SQLiteStatement.h:
1122         (WebCore::SQLiteStatement::query):
1123         Getter for the SQL query.
1124
1125 2008-05-06  Brady Eidson  <beidson@apple.com>
1126
1127         Reviewed by Darin Adler
1128
1129         Preparation for upcoming work making LocalStorage persistent.
1130
1131         Writing persistent values for LocalStorage will take place on a background thread.
1132         Here is that background thread, as well as most of the hooks that will be utilized to
1133         make the whole song and dance work.
1134
1135         The thread itself is very simple and MessageQueue based.  LocalStorageTasks are what 
1136         mark the work that needs to be done and come in 5 flavors:  Import and Sync a LocalStorage set,
1137         Import and Sync a LocalStorageArea, and terminate the thread.
1138
1139         This patch accomplished 2 things:
1140         
1141         1 - Each PageGroup has its own LocalStorage set.  Upon its creation its LocalStorageThread is 
1142             created and started.
1143
1144         2 - At application shutdown, each thread is synchronously terminated.
1145
1146         What happens between steps 1 and 2 will come later.
1147
1148         * GNUmakefile.am:
1149         * WebCore.pro:
1150         * WebCore.vcproj/WebCore.vcproj:
1151         * WebCore.xcodeproj/project.pbxproj:
1152         * WebCoreSources.bkl:
1153
1154         * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
1155           method is meant to be called from.
1156         (WebCore::LocalStorage::LocalStorage):
1157         (WebCore::LocalStorage::storageArea):
1158         (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
1159         (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
1160         (WebCore::LocalStorage::close): Synchronously terminate the thread.
1161         * storage/LocalStorage.h:
1162
1163         * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
1164           method is meant to be called from.
1165         (WebCore::LocalStorageArea::itemChanged):
1166         (WebCore::LocalStorageArea::itemRemoved):
1167         (WebCore::LocalStorageArea::areaCleared):
1168         (WebCore::LocalStorageArea::dispatchStorageEvent):
1169         (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this 
1170           LocalStorageArea to prime the page before the items are needed
1171         (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
1172         * storage/LocalStorageArea.h:
1173
1174         * storage/LocalStorageTask.cpp: Added.
1175         (WebCore::LocalStorageTask::LocalStorageTask):
1176         (WebCore::LocalStorageTask::performTask):
1177         * storage/LocalStorageTask.h: Added.
1178         (WebCore::LocalStorageTask::):
1179         (WebCore::LocalStorageTask::createImport):
1180         (WebCore::LocalStorageTask::createSync):
1181         (WebCore::LocalStorageTask::createTerminate):
1182
1183         * storage/LocalStorageThread.cpp: Added.
1184         (WebCore::LocalStorageThread::create):
1185         (WebCore::LocalStorageThread::LocalStorageThread):
1186         (WebCore::LocalStorageThread::start):
1187         (WebCore::LocalStorageThread::localStorageThreadStart):
1188         (WebCore::LocalStorageThread::localStorageThread):
1189         (WebCore::LocalStorageThread::scheduleImport):
1190         (WebCore::LocalStorageThread::scheduleSync):
1191         (WebCore::LocalStorageThread::terminate): 
1192         (WebCore::LocalStorageThread::performTerminate):
1193         * storage/LocalStorageThread.h: Added.
1194
1195 2008-05-06  Anders Carlsson  <andersca@apple.com>
1196
1197         Reviewed by Darin.
1198
1199         Add NPN_PopUpContextMenu.
1200         
1201         * bridge/npapi.h:
1202         * plugins/npfunctions.h:
1203
1204 2008-05-06  Alp Toker  <alp@nuanti.com>
1205
1206         GTK+ build fix. Add file from r32911 to the build.
1207
1208         * GNUmakefile.am:
1209
1210 2008-05-06  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
1211
1212         Reviewed by Alp Toker.
1213
1214         http://bugs.webkit.org/show_bug.cgi?id=18906
1215         [GTK] Fix varargs terminator in g_build_filename()
1216
1217         * plugins/gtk/PluginDatabaseGtk.cpp:
1218         (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
1219         terminator.
1220
1221 2008-05-06  Kevin McCullough  <kmccullough@apple.com>
1222
1223         - Forgot to update localized Strings from previous checkin.
1224
1225         * English.lproj/localizedStrings.js:
1226
1227 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
1228
1229         Reviewed by Beth Dakin
1230
1231         <rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
1232         <rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
1233         <rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9
1234         
1235         Initial prep work to support accessibility objects that do not have renderers. 
1236
1237         * WebCore.xcodeproj/project.pbxproj:
1238         * page/AXObjectCache.cpp:
1239         (WebCore::AXObjectCache::~AXObjectCache):
1240         (WebCore::AXObjectCache::get):
1241         (WebCore::AXObjectCache::remove):
1242         (WebCore::AXObjectCache::getAXID):
1243         (WebCore::AXObjectCache::removeAXID):
1244         (WebCore::AXObjectCache::childrenChanged):
1245         * page/AXObjectCache.h:
1246         (WebCore::AXObjectCache::isIDinUse):
1247         * page/AccessibilityObject.cpp:
1248         (WebCore::AccessibilityObject::AccessibilityObject):
1249         (WebCore::AccessibilityObject::create):
1250         (WebCore::AccessibilityObject::detach):
1251         (WebCore::AccessibilityObject::firstChild):
1252         (WebCore::AccessibilityObject::lastChild):
1253         (WebCore::AccessibilityObject::previousSibling):
1254         (WebCore::AccessibilityObject::nextSibling):
1255         (WebCore::AccessibilityObject::parentObject):
1256         (WebCore::AccessibilityObject::layoutCount):
1257         (WebCore::AccessibilityObject::text):
1258         (WebCore::AccessibilityObject::helpText):
1259         (WebCore::AccessibilityObject::textUnderElement):
1260         (WebCore::AccessibilityObject::isARIAInput):
1261         (WebCore::AccessibilityObject::isARIAControl):
1262         (WebCore::AccessibilityObject::intValue):
1263         (WebCore::AccessibilityObject::stringValue):
1264         (WebCore::AccessibilityObject::title):
1265         (WebCore::AccessibilityObject::accessibilityDescription):
1266         (WebCore::AccessibilityObject::boundingBoxRect):
1267         (WebCore::AccessibilityObject::elementRect):
1268         (WebCore::AccessibilityObject::size):
1269         (WebCore::AccessibilityObject::linkedUIElement):
1270         (WebCore::AccessibilityObject::textLength):
1271         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
1272         (WebCore::AccessibilityObject::selectedText):
1273         (WebCore::AccessibilityObject::accessKey):
1274         (WebCore::AccessibilityObject::selection):
1275         (WebCore::AccessibilityObject::selectedTextRange):
1276         (WebCore::AccessibilityObject::setSelectedTextRange):
1277         (WebCore::AccessibilityObject::url):
1278         (WebCore::AccessibilityObject::setFocused):
1279         (WebCore::AccessibilityObject::setValue):
1280         (WebCore::AccessibilityObject::axObjectCache):
1281         (WebCore::AccessibilityObject::getDocumentLinks):
1282         (WebCore::AccessibilityObject::widget):
1283         (WebCore::AccessibilityObject::widgetForAttachmentView):
1284         (WebCore::AccessibilityObject::anchorElement):
1285         (WebCore::AccessibilityObject::actionElement):
1286         (WebCore::AccessibilityObject::visiblePositionRange):
1287         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
1288         (WebCore::AccessibilityObject::visiblePositionForIndex):
1289         (WebCore::AccessibilityObject::indexForVisiblePosition):
1290         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
1291         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
1292         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
1293         (WebCore::AccessibilityObject::textMarkerForIndex):
1294         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
1295         (WebCore::AccessibilityObject::indexForTextMarker):
1296         (WebCore::AccessibilityObject::doAXRangeForLine):
1297         (WebCore::AccessibilityObject::doAXRangeForPosition):
1298         (WebCore::AccessibilityObject::doAXRangeForIndex):
1299         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
1300         (WebCore::AccessibilityObject::doAXStringForRange):
1301         (WebCore::AccessibilityObject::doAXBoundsForRange):
1302         (WebCore::AccessibilityObject::doAccessibilityHitTest):
1303         (WebCore::AccessibilityObject::focusedUIElement):
1304         (WebCore::AccessibilityObject::observableObject):
1305         (WebCore::AccessibilityObject::roleValue):
1306         (WebCore::AccessibilityObject::ariaRoleAttribute):
1307         (WebCore::AccessibilityObject::childrenChanged):
1308         (WebCore::AccessibilityObject::addChildren):
1309         (WebCore::AccessibilityObject::removeAXObjectID):
1310         * page/AccessibilityObject.h:
1311         (WebCore::):
1312         (WebCore::PlainTextRange::PlainTextRange):
1313         (WebCore::PlainTextRange::isNull):
1314         (WebCore::AccessibilityObject::isAccessibilityRenderObject):
1315         (WebCore::AccessibilityObject::isAnchor):
1316         (WebCore::AccessibilityObject::isAttachment):
1317         (WebCore::AccessibilityObject::isHeading):
1318         (WebCore::AccessibilityObject::isLink):
1319         (WebCore::AccessibilityObject::isImage):
1320         (WebCore::AccessibilityObject::isNativeImage):
1321         (WebCore::AccessibilityObject::isImageButton):
1322         (WebCore::AccessibilityObject::isPasswordField):
1323         (WebCore::AccessibilityObject::isTextControl):
1324         (WebCore::AccessibilityObject::isNativeTextControl):
1325         (WebCore::AccessibilityObject::isWebArea):
1326         (WebCore::AccessibilityObject::isCheckboxOrRadio):
1327         (WebCore::AccessibilityObject::isChecked):
1328         (WebCore::AccessibilityObject::isEnabled):
1329         (WebCore::AccessibilityObject::isSelected):
1330         (WebCore::AccessibilityObject::isFocused):
1331         (WebCore::AccessibilityObject::isHovered):
1332         (WebCore::AccessibilityObject::isIndeterminate):
1333         (WebCore::AccessibilityObject::isLoaded):
1334         (WebCore::AccessibilityObject::isMultiSelect):
1335         (WebCore::AccessibilityObject::isOffScreen):
1336         (WebCore::AccessibilityObject::isPressed):
1337         (WebCore::AccessibilityObject::isReadOnly):
1338         (WebCore::AccessibilityObject::isVisited):
1339         (WebCore::AccessibilityObject::canSetFocusAttribute):
1340         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
1341         (WebCore::AccessibilityObject::canSetValueAttribute):
1342         (WebCore::AccessibilityObject::hasIntValue):
1343         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
1344         (WebCore::AccessibilityObject::accessibilityIsIgnored):
1345         (WebCore::AccessibilityObject::children):
1346         (WebCore::AccessibilityObject::hasChildren):
1347         (WebCore::AccessibilityObject::setWrapper):
1348         (WebCore::AccessibilityObject::isDetached):
1349         * page/AccessibilityRenderObject.cpp: Added.
1350         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1351         (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
1352         (WebCore::AccessibilityRenderObject::create):
1353         (WebCore::AccessibilityRenderObject::detach):
1354         (WebCore::AccessibilityRenderObject::firstChild):
1355         (WebCore::AccessibilityRenderObject::lastChild):
1356         (WebCore::AccessibilityRenderObject::previousSibling):
1357         (WebCore::AccessibilityRenderObject::nextSibling):
1358         (WebCore::AccessibilityRenderObject::parentObject):
1359         (WebCore::AccessibilityRenderObject::isWebArea):
1360         (WebCore::AccessibilityRenderObject::isImageButton):
1361         (WebCore::AccessibilityRenderObject::isAnchor):
1362         (WebCore::AccessibilityRenderObject::isNativeTextControl):
1363         (WebCore::AccessibilityRenderObject::isTextControl):
1364         (WebCore::AccessibilityRenderObject::isNativeImage):
1365         (WebCore::AccessibilityRenderObject::isImage):
1366         (WebCore::AccessibilityRenderObject::isAttachment):
1367         (WebCore::AccessibilityRenderObject::isPasswordField):
1368         (WebCore::AccessibilityRenderObject::isCheckboxOrRadio):
1369         (WebCore::AccessibilityRenderObject::isPressed):
1370         (WebCore::AccessibilityRenderObject::isIndeterminate):
1371         (WebCore::AccessibilityRenderObject::isChecked):
1372         (WebCore::AccessibilityRenderObject::isHovered):
1373         (WebCore::AccessibilityRenderObject::isMultiSelect):
1374         (WebCore::AccessibilityRenderObject::isReadOnly):
1375         (WebCore::AccessibilityRenderObject::isOffScreen):
1376         (WebCore::AccessibilityRenderObject::headingLevel):
1377         (WebCore::AccessibilityRenderObject::isHeading):
1378         (WebCore::AccessibilityRenderObject::isLink):
1379         (WebCore::AccessibilityRenderObject::anchorElement):
1380         (WebCore::AccessibilityRenderObject::actionElement):
1381         (WebCore::AccessibilityRenderObject::mouseButtonListener):
1382         (WebCore::AccessibilityRenderObject::helpText):
1383         (WebCore::AccessibilityRenderObject::textUnderElement):
1384         (WebCore::AccessibilityRenderObject::hasIntValue):
1385         (WebCore::AccessibilityRenderObject::intValue):
1386         (WebCore::AccessibilityRenderObject::stringValue):
1387         (WebCore::labelForElement):
1388         (WebCore::AccessibilityRenderObject::title):
1389         (WebCore::AccessibilityRenderObject::accessibilityDescription):
1390         (WebCore::AccessibilityRenderObject::boundingBoxRect):
1391         (WebCore::AccessibilityRenderObject::elementRect):
1392         (WebCore::AccessibilityRenderObject::size):
1393         (WebCore::AccessibilityRenderObject::linkedUIElement):
1394         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
1395         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1396         (WebCore::AccessibilityRenderObject::isLoaded):
1397         (WebCore::AccessibilityRenderObject::layoutCount):
1398         (WebCore::AccessibilityRenderObject::text):
1399         (WebCore::AccessibilityRenderObject::textLength):
1400         (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
1401         (WebCore::AccessibilityRenderObject::selectedText):
1402         (WebCore::AccessibilityRenderObject::accessKey):
1403         (WebCore::AccessibilityRenderObject::selection):
1404         (WebCore::AccessibilityRenderObject::selectedTextRange):
1405         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
1406         (WebCore::AccessibilityRenderObject::url):
1407         (WebCore::AccessibilityRenderObject::isVisited):
1408         (WebCore::AccessibilityRenderObject::isSelected):
1409         (WebCore::AccessibilityRenderObject::isFocused):
1410         (WebCore::AccessibilityRenderObject::setFocused):
1411         (WebCore::AccessibilityRenderObject::setValue):
1412         (WebCore::AccessibilityRenderObject::isEnabled):
1413         (WebCore::AccessibilityRenderObject::topRenderer):
1414         (WebCore::AccessibilityRenderObject::widget):
1415         (WebCore::AccessibilityRenderObject::axObjectCache):
1416         (WebCore::AccessibilityRenderObject::getDocumentLinks):
1417         (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
1418         (WebCore::AccessibilityRenderObject::frameViewIfRenderView):
1419         (WebCore::AccessibilityRenderObject::visiblePositionRange):
1420         (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
1421         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
1422         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
1423         (WebCore::AccessibilityRenderObject::doAXBoundsForTextMarkerRange):
1424         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
1425         (WebCore::AccessibilityRenderObject::doAXTextMarkerForPosition):
1426         (WebCore::AccessibilityRenderObject::textMarkerForIndex):
1427         (WebCore::AccessibilityRenderObject::indexForTextMarker):
1428         (WebCore::AccessibilityRenderObject::doAXRangeForLine):
1429         (WebCore::AccessibilityRenderObject::doAXRangeForIndex):
1430         (WebCore::AccessibilityRenderObject::doAXStringForRange):
1431         (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
1432         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1433         (WebCore::AccessibilityRenderObject::focusedUIElement):
1434         (WebCore::AccessibilityRenderObject::observableObject):
1435         (WebCore::createARIARoleMap):
1436         (WebCore::RoleEntry::):
1437         (WebCore::ariaRoleToWebCoreRole):
1438         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
1439         (WebCore::AccessibilityRenderObject::roleValue):
1440         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
1441         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
1442         (WebCore::AccessibilityRenderObject::canSetTextRangeAttributes):
1443         (WebCore::AccessibilityRenderObject::childrenChanged):
1444         (WebCore::AccessibilityRenderObject::children):
1445         (WebCore::AccessibilityRenderObject::addChildren):
1446         (WebCore::AccessibilityRenderObject::removeAXObjectID):
1447         (WebCore::AccessibilityRenderObject::actionVerb):
1448         * page/AccessibilityRenderObject.h: Added.
1449         (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject):
1450         (WebCore::AccessibilityRenderObject::areaElement):
1451         (WebCore::AccessibilityRenderObject::setRenderer):
1452         (WebCore::AccessibilityRenderObject::renderer):
1453         (WebCore::AccessibilityRenderObject::setRenderObject):
1454         (WebCore::AccessibilityRenderObject::isDetached):
1455         * page/mac/AXObjectCacheMac.mm:
1456         (WebCore::AXObjectCache::detachWrapper):
1457         (WebCore::AXObjectCache::selectedChildrenChanged):
1458         (WebCore::AXObjectCache::postNotification):
1459         * page/mac/AccessibilityObjectWrapper.mm:
1460         (textMarkerForVisiblePosition):
1461         (CreateCGColorIfDifferent):
1462         (AXAttributeStringSetHeadingLevel):
1463         (AXLinkElementForNode):
1464         (AXAttributeStringSetElement):
1465         (AXAttributedStringAppendText):
1466         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1467         (-[AccessibilityObjectWrapper documentFrameView:]):
1468         (-[AccessibilityObjectWrapper position]):
1469         (RoleEntry::):
1470         (-[AccessibilityObjectWrapper roleDescription]):
1471         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1472         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
1473         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1474         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
1475         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
1476         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
1477         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1478
1479 2008-05-06  Jonathan Haas  <myrdred@gmail.com>
1480
1481         Reviewed by Rob Buis.
1482
1483         https://bugs.webkit.org/show_bug.cgi?id=18859\
1484         Prevented SVGRootInlineBox from static_casting a
1485         node to a class it doesn't inherit
1486         
1487         * rendering/SVGRootInlineBox.cpp:
1488         (WebCore::SVGRootInlineBox::buildTextChunks):
1489
1490 2008-05-06  Brady Eidson  <beidson@apple.com>
1491
1492         Reviewed by Darin Adler
1493
1494         Preparation for upcoming work making LocalStorage persistent.
1495
1496         When the application terminates, all pending local storage writes need to be
1497         sync'ed out to disk.
1498         This works n combination with platform specific code in WebKit that calls it.
1499
1500         * WebCore.base.exp:
1501
1502         * page/PageGroup.cpp:
1503         (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
1504         * page/PageGroup.h:
1505
1506         * storage/LocalStorage.cpp:
1507         (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
1508           local storage thread in the future.
1509         * storage/LocalStorage.h:
1510
1511 2008-05-06  Brady Eidson  <beidson@apple.com>
1512
1513         Rubberstamped by David Kilzer
1514
1515         * WebCore.base.exp:  Sort this mess!
1516
1517 2008-05-05  Mark Rowe  <mrowe@apple.com>
1518
1519         Reviewed by Dan Bernstein.
1520
1521         Fix 60 crashes seen on the buildbots that were misreported as hangs.
1522
1523         * dom/Document.cpp:
1524         (WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
1525         (WebCore::Document::nodeWillBeRemoved): Ditto.
1526         (WebCore::Document::textInserted): Ditto.
1527         (WebCore::Document::textNodesMerged): Ditto.
1528         (WebCore::Document::textRemoved): Ditto.
1529
1530 2008-05-05  Brady Eidson  <beidson@apple.com>
1531
1532         Reviewed by Mitz Pettel RTL
1533
1534         Preparation for upcoming work making LocalStorage persistent.
1535
1536         The other half of the StorageMap::importItem() addition.
1537
1538         * storage/StorageArea.cpp:
1539         (WebCore::StorageArea::importItem):
1540         * storage/StorageArea.h:
1541
1542 2008-05-05  Brady Eidson  <beidson@apple.com>
1543
1544         Reviewed by Mitz Pettel RTL
1545
1546         Preparation for upcoming work making LocalStorage persistent.
1547
1548         - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
1549           The Settings of the first Page define what persistent path the LocalStorage will use
1550         - Add a Frame argument for the LocalStorageArea request - this will allow a client object
1551           to be queried before the LocalStorageArea is established
1552
1553         * page/DOMWindow.cpp:
1554         (WebCore::DOMWindow::localStorage):
1555
1556         * page/PageGroup.cpp:
1557         (WebCore::PageGroup::addPage):
1558         (WebCore::PageGroup::localStorage):
1559
1560         * storage/LocalStorage.cpp:
1561         (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument.  Deep copy
1562           the path as it will be used from another thread.
1563         (WebCore::LocalStorage::storageArea):
1564         * storage/LocalStorage.h:
1565         (WebCore::LocalStorage::create):
1566
1567 2008-05-05  Brady Eidson  <beidson@apple.com>
1568
1569         Reviewed by Mitz Pettel RTL
1570
1571         Preparation for upcoming work making LocalStorage persistent.
1572
1573         StorageMaps normally have copy-on-write semantics to help support SessionStorage.
1574         For LocalStorage, we never want this behavior.  When we forcefully import items into 
1575         a StorageMap from the LocalStorage background thread, this new import method will be used.
1576
1577         * storage/StorageMap.cpp:
1578         (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
1579           about copy-on-write.
1580         * storage/StorageMap.h:
1581
1582 2008-05-05  Kevin McCullough  <kmccullough@apple.com>
1583
1584         Reviewed by Tim.
1585
1586         -<rdar://problem/5770054> JavaScript profiler (10928)
1587         -Begininings of a UI for the Profiler in the WebInspector.
1588
1589         * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
1590         localized.
1591         * page/inspector/DatabasesPanel.js: Changed the name of the Databae's
1592         results table to be more generic as it is now also used by the profiler.
1593         * page/inspector/Images/glossySelected.png: Added.
1594         * page/inspector/Images/profilesIcon.png: Added.
1595         * page/inspector/Images/treeUpTriangleBlack.png: Added.
1596         * page/inspector/Images/treeUpTriangleWhite.png: Added.
1597         * page/inspector/ProfileView.js: Added. Sets up the header of the table.
1598         * page/inspector/ProfilesPanel.js: Added.
1599         * page/inspector/ProfilesPanel.js: Added. Sets up the containers of the
1600         profiler's content.
1601         * page/inspector/inspector.css: Change database-result-table to be more
1602         generic as well as add the styles needed by the profiler.
1603         * page/inspector/inspector.html: Add profiler support.
1604
1605 2008-05-05  Brady Eidson  <beidson@apple.com>
1606
1607         Change by Darin, reviewed by Brady
1608
1609         Small efficiency improvement Darin just spotted
1610
1611         * storage/StorageMap.cpp:
1612         (WebCore::StorageMap::setItem):
1613
1614 2008-05-05  Antti Koivisto  <antti@apple.com>
1615
1616         Reviewed by Anders.
1617
1618         Fix https://bugs.webkit.org/show_bug.cgi?id=18899
1619         Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
1620
1621         * loader/loader.cpp:
1622         (WebCore::Loader::Loader):
1623
1624 2008-05-05  Brady Eidson  <beidson@apple.com>
1625
1626         Reviewed by Sam Weinig
1627
1628         Fix a bug in StorageMap iterator tracking where the iterator was not successfully
1629         invalidated at an appropriate time.
1630
1631         * storage/StorageMap.cpp:
1632         (WebCore::StorageMap::setItem): ALWAYS invalidate it here
1633
1634 2008-05-05  Justin Garcia  <justin.garcia@apple.com>
1635
1636         Reviewed by Darin.
1637
1638         <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
1639         
1640         Disable Range mutation on document modifications in Tiger and Leopard Mail,
1641         since they do their own mutation which interferes with ours.
1642
1643         * WebCore.base.exp:
1644         * dom/Document.cpp:
1645         (WebCore::Document::nodeChildrenChanged):
1646         (WebCore::Document::nodeWillBeRemoved):
1647         (WebCore::Document::textInserted):
1648         (WebCore::Document::textRemoved):
1649         (WebCore::Document::textNodesMerged):
1650         (WebCore::Document::textNodeSplit):
1651         * page/Settings.cpp:
1652         (WebCore::Settings::Settings):
1653         (WebCore::Settings::disableRangeMutationForOldAppleMail):
1654         * page/Settings.h:
1655         (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
1656
1657 2008-05-05  Sam Weinig  <sam@webkit.org>
1658
1659         Reviewed by Tim Hatcher.
1660
1661         Make the Inspector's localizable strings file match the format used by Dashboard widgets.
1662
1663         * English.lproj/InspectorLocalizedStrings.js: Removed.
1664         * English.lproj/localizedStrings.js: Added.
1665         * WebCore.vcproj/WebCore.vcproj:
1666         * WebCore.xcodeproj/project.pbxproj:
1667         * page/inspector/inspector.js:
1668
1669 2008-05-05  Steve Falkenburg  <sfalken@apple.com>
1670
1671         Add support for default button appearance.
1672         Add WebCore setting for app chrome mode.
1673         
1674         Reviewed by Dave Hyatt.
1675
1676         * css/CSSPrimitiveValueMappings.h:
1677         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1678         * css/CSSValueKeywords.in: Added default-button value keyword.
1679         * page/Settings.cpp:
1680         (WebCore::Settings::Settings):
1681         (WebCore::Settings::setApplicationChromeMode):
1682         * page/Settings.h:
1683         (WebCore::Settings::inApplicationChromeMode):
1684         * rendering/RenderButton.cpp:
1685         (WebCore::RenderButton::RenderButton):
1686         (WebCore::RenderButton::setStyle):
1687         (WebCore::RenderButton::timerFired):
1688         * rendering/RenderButton.h:
1689         * rendering/RenderStyle.h:
1690         (WebCore::):
1691         * rendering/RenderTheme.cpp:
1692         (WebCore::RenderTheme::adjustStyle):
1693         (WebCore::RenderTheme::paint):
1694         (WebCore::RenderTheme::paintBorderOnly):
1695         (WebCore::RenderTheme::paintDecorations):
1696         (WebCore::RenderTheme::isControlStyled):
1697         (WebCore::RenderTheme::isDefault):
1698         * rendering/RenderTheme.h:
1699         (WebCore::):
1700         * rendering/RenderThemeSafari.cpp:
1701         (WebCore::RenderThemeSafari::determineState):
1702         (WebCore::RenderThemeSafari::adjustRepaintRect):
1703         (WebCore::RenderThemeSafari::adjustButtonStyle):
1704         * rendering/RenderThemeWin.cpp:
1705         (WebCore::RenderThemeWin::supportsFocus):
1706
1707 2008-05-05  Alexey Proskuryakov  <ap@webkit.org>
1708
1709         Reviewed by Darin.
1710
1711         https://bugs.webkit.org/show_bug.cgi?id=11947
1712         nbsps should be converted to entities in innerHTML
1713
1714         https://bugs.webkit.org/show_bug.cgi?id=18769
1715         replacing &nbsp; with spaces using regexp creates inconsistent result
1716
1717         Tests: fast/dom/innerHTML-nbsp.html
1718                fast/dom/innerHTML-escaping-attribute.html
1719
1720         * editing/markup.cpp:
1721         (WebCore::appendAttributeValue):
1722         (WebCore::escapeContentText):
1723         (WebCore::appendEscapedContent):
1724         Added U+00a0/nbsp to the list of characters to escape.
1725
1726 2008-05-05  David Hyatt  <hyatt@apple.com>
1727
1728         Fix for https://bugs.webkit.org/show_bug.cgi?id=18821.  Fix some bugs in both get/PutImageData of <canvas>.
1729
1730         Reviewed by Eric
1731
1732         New tests added in fast/canvas/
1733
1734         * platform/graphics/cg/ImageBufferCG.cpp:
1735         (WebCore::ImageBuffer::getImageData):
1736         (WebCore::ImageBuffer::putImageData):
1737
1738 2008-05-05  Dan Bernstein  <mitz@apple.com>
1739
1740         Reviewed by Dave Hyatt.
1741
1742         - fix https://bugs.webkit.org/show_bug.cgi?id=18809
1743           Forms with block level generated content and absolutely positioned labels break inline layout (fixed on reflow)
1744
1745         Test: fast/block/basic/adding-near-anonymous-block.html
1746
1747         * rendering/RenderBlock.cpp:
1748         (WebCore::RenderBlock::addChildToFlow): When adding a floating or
1749         positioned object, if it follows an anonymous block, put it
1750         inside the anonymous block. When adding an inline, check if it comes
1751         after an anonymous block and put it in the anonymous block.
1752
1753 2008-05-05  Antti Koivisto  <antti@apple.com>
1754
1755         Reviewed by Darin.
1756
1757         Speculative fix for <rdar://problem/5906790> 
1758         Crash in Loader::servePendingRequests() due to hash table being modified during iteration
1759         
1760         I don't know how to reproduce this. It would require the load to fail (or succeed)
1761         synchronously, something that should not usually happen.
1762
1763         * loader/loader.cpp:
1764         (WebCore::Loader::Loader):
1765         (WebCore::Loader::load):
1766         (WebCore::Loader::servePendingRequests):
1767         (WebCore::Loader::cancelRequests):
1768         (WebCore::Loader::Host::Host):
1769         * loader/loader.h:
1770         (WebCore::Loader::Host::name):
1771
1772 2008-05-05  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1773
1774         Reviewed by Simon.
1775
1776         Disable SVG As Image support in the Qt port again, as it
1777         requires more work. Right now the chrome client is
1778         assumed to be a ChromeClientQt, which the SVG Image support
1779         changes.
1780
1781         * WebCore.pro:
1782
1783 2008-05-02  Antti Koivisto  <antti@apple.com>
1784
1785         Reviewed by Mitz.
1786
1787         Fix <rdar://problem/5840475>
1788         CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
1789         
1790         Non-block objects can have transforms so containingBlock() could end up returning null. 
1791         RenderObject::container() needs to match.
1792
1793         Test: fast/transforms/container-transform-crash.html
1794
1795         * rendering/RenderObject.cpp:
1796         (WebCore::RenderObject::containingBlock):
1797         (WebCore::RenderObject::container):
1798
1799 2008-05-04  Sam Weinig  <sam@webkit.org>
1800
1801         Roll out r32851.  It broke tiger builds.
1802
1803         * bindings/objc/DOMUtility.mm:
1804         (KJS::createDOMWrapper):
1805         (WebCore::createDOMWrapper):
1806
1807 2008-05-04  Dan Bernstein  <mitz@apple.com>
1808
1809         Reviewed by Sam Weinig.
1810
1811         - fix https://bugs.webkit.org/show_bug.cgi?id=18879
1812           <rdar://problem/5909481> Reproducible crash when removing a gradient
1813
1814         Test: fast/gradients/crash-on-remove.html
1815
1816         * css/CSSImageGeneratorValue.cpp:
1817         (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
1818         (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
1819         value.
1820         (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
1821         the value.
1822
1823 2008-05-03  Sam Weinig  <sam@webkit.org>
1824
1825         Reviewed by Mark Rowe.
1826
1827         Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
1828         the WebCore namespace now that the required compilers don't freak out about
1829         this anymore.
1830
1831         * bindings/objc/DOMUtility.mm:
1832         (WebCore::createDOMWrapper):
1833
1834 2008-05-03  Rob Buis  <buis@kde.org>
1835
1836         Reviewed by Sam.
1837
1838         https://bugs.webkit.org/show_bug.cgi?id=18652
1839         onchange events don't seem to fire for input[type=range] controls.
1840
1841         Fire changeEvent when clicking the slider outside the current
1842         thumb position.
1843
1844         * rendering/RenderSlider.cpp:
1845         (WebCore::RenderSlider::setValueForPosition):
1846
1847 2008-05-03  Sam Weinig  <sam@webkit.org>
1848
1849         Reviewed by Mark Rowe.
1850
1851         Remove unused enums from JSDOMWindowBase.
1852
1853         * bindings/js/JSDOMWindowBase.h:
1854         (WebCore::JSDOMWindowBase::):
1855
1856 2008-05-03  Sam Weinig  <sam@webkit.org>
1857
1858         Real build fix.
1859
1860         * WebCore.xcodeproj/project.pbxproj:
1861
1862 2008-05-03  Sam Weinig  <sam@webkit.org>
1863
1864         Build fix.
1865
1866         * bindings/js/kjs_events.cpp:
1867         (WebCore::JSAbstractEventListener::handleEvent):
1868
1869 2008-05-03  Sam Weinig  <sam@webkit.org>
1870
1871         Rubber-stamped by Geoffrey Garen.
1872
1873         Rename JSDOMWindowWrapper to JSDOMWindowShell.
1874
1875 2008-05-01  Rob Buis  <buis@kde.org>
1876
1877         Reviewed by Eric.
1878
1879         https://bugs.webkit.org/show_bug.cgi?id=18568
1880         background: currentColor fails
1881
1882         Implement currentColor from CSS3 color module.
1883
1884         Tests: fast/css/background-currentcolor.html
1885
1886         * css/CSSParser.cpp:
1887         (WebCore::CSSParser::parseValue):
1888         (WebCore::CSSParser::parseBackgroundColor):
1889         * css/CSSStyleSelector.cpp:
1890         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
1891         * css/CSSValueKeywords.in:
1892         * css/SVGCSSValueKeywords.in:
1893
1894 2008-05-02  Anders Carlsson  <andersca@apple.com>
1895
1896         Reviewed by Mark.
1897
1898         Turns out calling locationInWindow on keyboard events will not throw an exception,
1899         but the point returned is completely bogus, so remove coordinates from the keyboard event struct.
1900         
1901         * bridge/npapi.h:
1902         (_NPCocoaEvent::):
1903
1904 2008-05-02  Benjamin Otte  <otte@gnome.org>
1905
1906         Reviewed by Alp Toker.
1907
1908         http://bugs.webkit.org/show_bug.cgi?id=18856
1909         [GTK] variable initialization missing
1910
1911         Not initializing the m_needsXEmbed variable could have very funny
1912         results. Most often those results would be crashes.
1913
1914         * plugins/PluginView.cpp:
1915         (WebCore::PluginView::PluginView):
1916
1917 2008-05-02  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
1918
1919         Reviewed by Eric.
1920
1921         https://bugs.webkit.org/show_bug.cgi?id=18811
1922         Enable dashboard and offline web apps in autotools
1923
1924         * GNUmakefile.am:
1925
1926 2008-05-02  Anders Carlsson  <andersca@apple.com>
1927
1928         Reviewed by Sam.
1929
1930         Name the event union so it will work in plain C.
1931
1932         * bridge/npapi.h:
1933         (_NPCocoaEvent::):
1934
1935 2008-05-02  Dan Bernstein  <mitz@apple.com>
1936
1937         Reviewed by John Sullivan.
1938
1939         - render text shadows with zero offset, as the shadow can be seen behind
1940           the text if the text is translucent
1941
1942         Test: fast/text/shadow-no-blur.html
1943
1944         * platform/graphics/mac/FontMac.mm:
1945         (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the
1946         shadow offset. Since isEmpty() is also true for sizes that have one or
1947         more non-positive components, this also ensures that subpixel
1948         antialiasing of the text is maintained with shadows in all directions.
1949         (WebCore::Font::drawGlyphs): Ditto.
1950         * platform/graphics/win/FontCGWin.cpp:
1951         (WebCore::Font::drawGlyphs): Ditto.
1952
1953 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1954
1955         Reviewed by Simon.
1956
1957         Build the Qt port with SVG Use and As Image support.
1958
1959         * WebCore.pro:
1960
1961 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1962
1963         Reviewed by Simon.
1964
1965         Fixed potential crash on SVG animation (added more checks to the assert).
1966
1967         * svg/SVGUseElement.cpp:
1968         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
1969
1970 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
1971
1972         Rubber-stamped by John Sullivan.
1973
1974         Fix a debug-only crash in layout tests.
1975
1976         * loader/CachedResource.cpp:
1977         (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
1978
1979 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
1980
1981         Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
1982
1983         * WebCore.pro: Don't use QT += phonon as it prepends the phonon
1984         includes to the include paths. Instead add it manually and make sure
1985         phonon comes last, to avoid the conflict of phonon's path.h with
1986         WebCore's Path.h on case-insensitive filesystems.
1987
1988 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
1989
1990         Fix the Qt build. Add ExecState where necessary.
1991
1992         * bridge/qt/qt_class.cpp:
1993         (KJS::Bindings::QtClass::fallbackObject):
1994         * bridge/qt/qt_instance.cpp:
1995         (KJS::Bindings::QtRuntimeObjectImp::construct):
1996         (KJS::Bindings::QtInstance::getRuntimeObject):
1997         (KJS::Bindings::QtInstance::invokeDefaultMethod):
1998         (KJS::Bindings::QtInstance::defaultValue):
1999         (KJS::Bindings::QtInstance::stringValue):
2000         * bridge/qt/qt_instance.h:
2001         (KJS::Bindings::QtInstance::getObject):
2002         * bridge/qt/qt_runtime.cpp:
2003         (KJS::Bindings::convertValueToQVariant):
2004         (KJS::Bindings::convertQVariantToValue):
2005         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
2006         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
2007         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
2008         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
2009         (KJS::Bindings::QtConnectionObject::execute):
2010         * bridge/runtime.cpp:
2011         (KJS::Bindings::Instance::createRuntimeObject):
2012
2013 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
2014
2015         Fix the Qt/Win build.
2016
2017         * WebCore.pro:
2018         * platform/qt/TemporaryLinkStubs.cpp:
2019         (PluginDatabase::getPluginPathsInDirectories):
2020         (PluginDatabase::defaultPluginDirectories):
2021         (PluginDatabase::isPreferredPluginDirectory):
2022         (PluginView::setNPWindowRect):
2023         (PluginView::userAgent):
2024         (PluginView::invalidateRect):
2025         (PluginView::invalidateRegion):
2026         (PluginView::forceRedraw):
2027         (PluginView::setFocus):
2028         (PluginView::show):
2029         (PluginView::hide):
2030         (PluginView::paint):
2031         (PluginView::setParent):
2032         (PluginView::attachToWindow):
2033         (PluginView::detachFromWindow):
2034         (PluginView::updateWindow):
2035         (PluginView::handleKeyboardEvent):
2036         (PluginView::handleMouseEvent):
2037         (PluginView::handlePostReadFile):
2038         (PluginView::getValue):
2039         * plugins/qt/PluginPackageQt.cpp:
2040         (WebCore::PluginPackage::load):
2041
2042 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
2043
2044         Reviewed by Geoffrey Garen.
2045
2046         https://bugs.webkit.org/show_bug.cgi?id=18826
2047         Make JavaScript heap per-thread
2048
2049         This is mostly adaptation for JSC changes. The most prominent one is that JSObject
2050         allocator now takes ExecState, e.g. "new (exec) JSXMLHttpRequestConstructor(...)". It is
2051         OK to pass either the current or global one, whichever is faster to get hold of, as both
2052         have the same reference to a per-thread JS heap.
2053
2054         * bindings/scripts/CodeGeneratorJS.pm: Pass ExecState to functions that now need it.
2055         JSDOMWindow, JSDOMWindowPrototype and JSDOMWindowWrapper are special, because they are
2056         constructed before any ExecState comes into existence, so they use Heap::threadHeap()
2057         directly for allocation.
2058
2059         * bindings/js/JSDOMWindowWrapper.cpp:
2060         (WebCore::JSDOMWindowWrapper::operator new):
2061         * bindings/js/JSDOMWindowWrapper.h:
2062         Added a custom operator new to use per-thread heap when there's no ExecState around.
2063
2064         * bindings/js/JSAudioConstructor.cpp:
2065         (WebCore::JSAudioConstructor::JSAudioConstructor):
2066         * bindings/js/JSCSSRuleCustom.cpp:
2067         (WebCore::toJS):
2068         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2069         (WebCore::JSCSSStyleDeclaration::nameGetter):
2070         * bindings/js/JSCSSValueCustom.cpp:
2071         (WebCore::toJS):
2072         * bindings/js/JSCanvasPixelArrayCustom.cpp:
2073         (WebCore::JSCanvasPixelArray::indexGetter):
2074         (WebCore::toJS):
2075         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2076         (WebCore::toJS):
2077         * bindings/js/JSClipboardCustom.cpp:
2078         (WebCore::JSClipboard::types):
2079         (WebCore::JSClipboard::getData):
2080         * bindings/js/JSCustomXPathNSResolver.cpp:
2081         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2082         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2083         (WebCore::JSDOMApplicationCache::addEventListener):
2084         (WebCore::JSDOMApplicationCache::removeEventListener):
2085         (WebCore::JSDOMApplicationCache::setOnchecking):
2086         (WebCore::JSDOMApplicationCache::setOnerror):
2087         (WebCore::JSDOMApplicationCache::setOnnoupdate):
2088         (WebCore::JSDOMApplicationCache::setOndownloading):
2089         (WebCore::JSDOMApplicationCache::setOnprogress):
2090         (WebCore::JSDOMApplicationCache::setOnupdateready):
2091         (WebCore::JSDOMApplicationCache::setOncached):
2092         * bindings/js/JSDOMWindowBase.cpp:
2093         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
2094         (WebCore::JSDOMWindowBase::getValueProperty):
2095         (WebCore::JSDOMWindowBase::setListener):
2096         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
2097         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
2098         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
2099         (WebCore::windowProtoFuncAToB):
2100         (WebCore::windowProtoFuncBToA):
2101         (WebCore::windowProtoFuncSetTimeout):
2102         (WebCore::windowProtoFuncSetInterval):
2103         (WebCore::windowProtoFuncAddEventListener):
2104         * bindings/js/JSDOMWindowBase.h:
2105         * bindings/js/JSDocumentCustom.cpp:
2106         (WebCore::toJS):
2107         * bindings/js/JSEventCustom.cpp:
2108         (WebCore::toJS):
2109         * bindings/js/JSEventTargetBase.cpp:
2110         (WebCore::jsEventTargetAddEventListener):
2111         * bindings/js/JSEventTargetBase.h:
2112         (WebCore::JSEventTargetPrototype::self):
2113         * bindings/js/JSEventTargetNode.cpp:
2114         (WebCore::JSEventTargetNode::setListener):
2115         * bindings/js/JSHTMLCollectionCustom.cpp:
2116         (WebCore::getNamedItems):
2117         (WebCore::toJS):
2118         * bindings/js/JSHTMLElementWrapperFactory.cpp:
2119         (WebCore::createJSHTMLWrapper):
2120         * bindings/js/JSHTMLFormElementCustom.cpp:
2121         (WebCore::JSHTMLFormElement::nameGetter):
2122         * bindings/js/JSHTMLInputElementBase.cpp:
2123         (WebCore::JSHTMLInputElementBase::getValueProperty):
2124         * bindings/js/JSHTMLOptionElementConstructor.cpp:
2125         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
2126         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2127         (WebCore::JSHTMLOptionsCollection::length):
2128         * bindings/js/JSInspectedObjectWrapper.cpp:
2129         (WebCore::JSInspectedObjectWrapper::wrap):
2130         * bindings/js/JSInspectorCallbackWrapper.cpp:
2131         (WebCore::JSInspectorCallbackWrapper::wrap):
2132         * bindings/js/JSLocationCustom.cpp:
2133         (WebCore::JSLocation::toString):
2134         * bindings/js/JSNamedNodesCollection.cpp:
2135         (WebCore::JSNamedNodesCollection::lengthGetter):
2136         * bindings/js/JSNavigatorCustom.cpp:
2137         (WebCore::JSNavigator::appVersion):
2138         * bindings/js/JSNodeCustom.cpp:
2139         (WebCore::toJS):
2140         * bindings/js/JSNodeFilterCustom.cpp:
2141         (WebCore::JSNodeFilter::acceptNode):
2142         * bindings/js/JSRGBColor.cpp:
2143         (WebCore::getJSRGBColor):
2144         * bindings/js/JSSQLResultSetRowListCustom.cpp:
2145         (WebCore::JSSQLResultSetRowList::item):
2146         * bindings/js/JSSVGElementWrapperFactory.cpp:
2147         (WebCore::createJSSVGWrapper):
2148         * bindings/js/JSSVGLazyEventListener.cpp:
2149         (WebCore::JSSVGLazyEventListener::eventParameterName):
2150         * bindings/js/JSStorageCustom.cpp:
2151         (WebCore::JSStorage::nameGetter):
2152         * bindings/js/JSStyleSheetCustom.cpp:
2153         (WebCore::toJS):
2154         * bindings/js/JSXMLHttpRequestConstructor.cpp:
2155         (WebCore::JSXMLHttpRequestConstructor::construct):
2156         * bindings/js/JSXMLHttpRequestCustom.cpp:
2157         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
2158         (WebCore::JSXMLHttpRequest::setOnload):
2159         (WebCore::JSXMLHttpRequest::setOnprogress):
2160         (WebCore::JSXMLHttpRequest::getResponseHeader):
2161         (WebCore::JSXMLHttpRequest::addEventListener):
2162         (WebCore::JSXMLHttpRequest::removeEventListener):
2163         * bindings/js/JSXSLTProcessor.cpp:
2164         (WebCore::jsXSLTProcessorPrototypeFunctionGetParameter):
2165         (WebCore::JSXSLTProcessorConstructor::construct):
2166         * bindings/js/kjs_binding.cpp:
2167         (WebCore::jsStringOrNull):
2168         (WebCore::jsOwnedStringOrNull):
2169         (WebCore::jsStringOrUndefined):
2170         (WebCore::jsStringOrFalse):
2171         (WebCore::nonCachingStaticFunctionGetter):
2172         (WebCore::objectToStringFunctionGetter):
2173         * bindings/js/kjs_binding.h:
2174         (WebCore::DOMObject::DOMObject):
2175         (WebCore::cacheDOMObject):
2176         (WebCore::cacheSVGDOMObject):
2177         * bindings/js/kjs_events.cpp:
2178         (WebCore::JSLazyEventListener::eventParameterName):
2179         (WebCore::JSLazyEventListener::parseCode):
2180         * bindings/js/kjs_html.cpp:
2181         (WebCore::getRuntimeObject):
2182         * bridge/c/c_instance.cpp:
2183         (KJS::Bindings::CInstance::defaultValue):
2184         (KJS::Bindings::CInstance::stringValue):
2185         (KJS::Bindings::CInstance::numberValue):
2186         (KJS::Bindings::CInstance::valueOf):
2187         * bridge/c/c_instance.h:
2188         * bridge/c/c_utility.cpp:
2189         (KJS::Bindings::convertNPVariantToValue):
2190         * bridge/jni/jni_instance.cpp:
2191         (JavaInstance::stringValue):
2192         (JavaInstance::numberValue):
2193         (JavaInstance::invokeMethod):
2194         (JavaInstance::defaultValue):
2195         (JavaInstance::valueOf):
2196         * bridge/jni/jni_instance.h:
2197         * bridge/jni/jni_jsobject.h:
2198         * bridge/jni/jni_jsobject.mm:
2199         (JavaJSObject::call):
2200         (JavaJSObject::setMember):
2201         (JavaJSObject::setSlot):
2202         (JavaJSObject::convertJObjectToValue):
2203         (JavaJSObject::getListFromJArray):
2204         * bridge/jni/jni_objc.mm:
2205         (KJS::Bindings::dispatchJNICall):
2206         * bridge/jni/jni_runtime.cpp:
2207         (JavaArray::convertJObjectToArray):
2208         (JavaField::dispatchValueFromInstance):
2209         (JavaField::valueFromInstance):
2210         (JavaField::dispatchSetValueToInstance):
2211         (JavaArray::valueAt):
2212         * bridge/jni/jni_utility.h:
2213         * bridge/objc/objc_class.mm:
2214         (KJS::Bindings::ObjcClass::fallbackObject):
2215         * bridge/objc/objc_instance.h:
2216         * bridge/objc/objc_instance.mm:
2217         (ObjcInstance::defaultValue):
2218         (ObjcInstance::stringValue):
2219         (ObjcInstance::numberValue):
2220         (ObjcInstance::valueOf):
2221         * bridge/objc/objc_utility.h:
2222         * bridge/objc/objc_utility.mm:
2223         (KJS::Bindings::convertNSStringToString):
2224         (KJS::Bindings::convertObjcValueToValue):
2225         * bridge/runtime.cpp:
2226         (KJS::Bindings::Instance::createRuntimeObject):
2227         * bridge/runtime.h:
2228         (KJS::Bindings::Instance::valueOf):
2229         * bridge/runtime_array.cpp:
2230         (RuntimeArray::lengthGetter):
2231         * bridge/runtime_method.cpp:
2232         (RuntimeMethod::lengthGetter):
2233         * bridge/runtime_object.cpp:
2234         (RuntimeObjectImp::RuntimeObjectImp):
2235         (RuntimeObjectImp::methodGetter):
2236         (RuntimeObjectImp::defaultValue):
2237         * xml/XMLHttpRequest.cpp:
2238         (WebCore::XMLHttpRequest::dropProtection):
2239         * bindings/js/GCController.cpp:
2240         (WebCore::GCController::gcTimerFired):
2241         (WebCore::GCController::garbageCollectNow):
2242         Adapted to JSC changes. Pass ExecState to functions that now need it. Removed
2243         collectOnMainThreadOnly, as this is the only way to collect now. Replaced calls to static
2244         Collector methods with calls to per-thread Heap ones.
2245
2246 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2247
2248         Reviewed by Simon.
2249
2250         Build the Qt port with SVG Animation support.
2251
2252         * WebCore.pro:
2253
2254 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
2255
2256         Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
2257         with different signatures.
2258
2259         * plugins/npfunctions.h:
2260
2261 2008-05-01  Robin Dunn  <robin@alldunn.com>
2262
2263         Reviewed by Kevin Ollivier.
2264
2265         Explicitly set the pen style in wx port to keep pen style changes from 
2266         affecting URL underline or text field drawing.
2267         
2268         https://bugs.webkit.org/show_bug.cgi?id=18775
2269
2270         * platform/graphics/wx/GraphicsContextWx.cpp:
2271         (WebCore::GraphicsContext::fillRect):
2272         (WebCore::GraphicsContext::drawLineForText):
2273         * platform/wx/RenderThemeWx.cpp:
2274         (WebCore::RenderThemeWx::paintTextField):
2275
2276 2008-05-01  Robin Dunn  <robin@alldunn.com>
2277
2278         Reviewed by Kevin Ollivier.
2279
2280         Implement popup menu support for wx port.
2281         
2282         https://bugs.webkit.org/show_bug.cgi?id=18776
2283
2284         * platform/PopupMenu.h:
2285         * platform/wx/PopupMenuWx.cpp: Added.
2286         (WebCore::PopupMenu::PopupMenu):
2287         (WebCore::PopupMenu::~PopupMenu):
2288         (WebCore::PopupMenu::show):
2289         (WebCore::PopupMenu::OnMenuItemSelected):
2290         (WebCore::PopupMenu::hide):
2291         (WebCore::PopupMenu::updateFromElement):
2292         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
2293         * platform/wx/TemporaryLinkStubs.cpp:
2294         * webcore-wx.bkl:
2295
2296 2008-05-01  Kevin Ollivier  <kevino@theolliviers.com>
2297
2298         Reviewed by Eric Seidel.
2299
2300         Make sure we properly set the button for all mouse events,
2301         not just mouse down, set the click count to 0
2302         for non-click events, and finally set the timestamp.
2303         
2304         https://bugs.webkit.org/show_bug.cgi?id=18464
2305
2306         * platform/wx/MouseEventWx.cpp:
2307         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2308
2309 2008-05-01  Sam Weinig  <sam@webkit.org>
2310
2311         Reviewed by Mark Rowe (in his infinite wisdom).
2312
2313         Auto-generate the JSXSLTProcessor binding.
2314
2315         * DerivedSources.make:
2316         * GNUmakefile.am:
2317         * WebCore.pro:
2318         * WebCore.vcproj/WebCore.vcproj:
2319         * WebCore.xcodeproj/project.pbxproj:
2320         * WebCoreSources.bkl:
2321         * bindings/js/JSDOMWindowBase.cpp:
2322         (WebCore::JSDOMWindowBase::getValueProperty):
2323         * bindings/js/JSDOMWindowBase.h:
2324         (WebCore::JSDOMWindowBase::):
2325         * bindings/js/JSXSLTProcessor.cpp: Removed.
2326         * bindings/js/JSXSLTProcessor.h: Removed.
2327         * xml/XSLTProcessor.h:
2328
2329 2008-05-01  Sam Weinig  <sam@webkit.org>
2330
2331         Reviewed by Geoffrey Garen.
2332
2333         Fixes:
2334           - https://bugs.webkit.org/show_bug.cgi?id=17249
2335             Incorrect lexical scope after navigation leads to UXSS
2336             <rdar://problem/5738497>
2337
2338           - https://bugs.webkit.org/show_bug.cgi?id=16824
2339             Script authorization should follow lexical (not dynamic) scope
2340             <rdar://problem/5683032>
2341
2342         This patch changes us to perform same-origin checks based on the lexical global object) 
2343         rather than dynamic global object, which is now possible we don't re-use the window on 
2344         navigations, but rather switch in a new one and re-use the outer shell.  This is both
2345         more secure and conforms with the HTML5 specification.  Now that all the checks are
2346         done based on the lexical global object, we can remove the SecurityOrigin::Reason
2347         concept, as it was only around to work around an ebay.com bug that required the check to
2348         be done that way.
2349
2350         An important thing to note is that we currently implement a stricter than necessary policy
2351         and perform the same-origin check based on the currently active global object to avoid leaking
2352         the document in cases when the target frame is navigated before access.  This will be fixed in
2353         an upcoming patch.
2354
2355         * bindings/js/JSDOMWindowBase.cpp:
2356         (WebCore::JSDOMWindowBase::allowsAccessFrom):
2357         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
2358         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
2359         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
2360         (WebCore::JSDOMWindowBase::printErrorMessage):
2361         (WebCore::asJSDOMWindow):
2362         * bindings/js/JSDOMWindowBase.h:
2363         * html/CanvasRenderingContext2D.cpp:
2364         (WebCore::CanvasRenderingContext2D::checkOrigin):
2365         (WebCore::CanvasRenderingContext2D::createPattern):
2366         * loader/FrameLoader.cpp:
2367         (WebCore::FrameLoader::begin):
2368         (WebCore::FrameLoader::write):
2369         (WebCore::FrameLoader::setOpener):
2370         (WebCore::FrameLoader::shouldAllowNavigation):
2371         * page/DOMWindow.h:
2372         (WebCore::DOMWindow::setSecurityOrigin):
2373         (WebCore::DOMWindow::securityOrigin):
2374         (WebCore::DOMWindow::setURL):
2375         (WebCore::DOMWindow::url):
2376         * platform/SecurityOrigin.cpp:
2377         (WebCore::SecurityOrigin::canAccess):
2378         (WebCore::SecurityOrigin::isSecureTransitionTo):
2379         * platform/SecurityOrigin.h:
2380
2381 2008-05-01  Anders Carlsson  <andersca@apple.com>
2382
2383         Reviewed by Mark.
2384
2385         Enable 64-bit NPAPI plugins.
2386         
2387         * WebCore.xcodeproj/project.pbxproj:
2388         Don't remove NPAPI related symbols from the 64-bit .exp file.
2389         
2390         * bridge/npruntime.h:
2391         Remove now unnecessary #error.
2392
2393 2008-05-01  Maciej Stachowiak  <mjs@apple.com>
2394
2395         Reviewed by Oliver (a while ago)
2396
2397         - just a wee bit more bindings speedup
2398         
2399         Store the per-document Node --> JS wrapper cache in the document
2400         instead of an external hashtable.
2401
2402         * bindings/js/kjs_binding.cpp:
2403         (WebCore::ScriptInterpreter::getDOMNodeForDocument):
2404         (WebCore::ScriptInterpreter::forgetDOMNodeForDocument):
2405         (WebCore::ScriptInterpreter::putDOMNodeForDocument):
2406         (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument):
2407         (WebCore::ScriptInterpreter::markDOMNodesForDocument):
2408         * dom/Document.h:
2409         (WebCore::Document::wrapperCache):
2410
2411 2008-05-01  Anders Carlsson  <andersca@apple.com>
2412
2413         Reviewed by Tim.
2414
2415         Remove duplicate npfunctions.h header from WebKit.
2416         
2417         * WebCore.xcodeproj/project.pbxproj:
2418         Add npfunctions.h and set its role to private.
2419         
2420         * plugins/npfunctions.h:
2421         Merge Mac specific changes.
2422
2423 2008-05-01  Sam Weinig  <sam@webkit.org>
2424
2425         Reviewed by Geoffrey Garen.
2426
2427         Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
2428         cast.
2429
2430         * bindings/js/JSCustomVoidCallback.cpp:
2431         (WebCore::toVoidCallback):
2432         * bindings/js/JSCustomXPathNSResolver.cpp:
2433         (WebCore::JSCustomXPathNSResolver::create):
2434         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2435         (WebCore::JSDOMApplicationCache::add):
2436         (WebCore::JSDOMApplicationCache::remove):
2437         * bindings/js/JSDOMWindowBase.cpp:
2438         (WebCore::allowPopUp):
2439         (WebCore::createWindow):
2440         (WebCore::windowProtoFuncOpen):
2441         (WebCore::asJSDOMWindow):
2442         * bindings/js/JSDOMWindowBase.h:
2443         * bindings/js/JSDOMWindowCustom.cpp:
2444         (WebCore::JSDOMWindow::setLocation):
2445         (WebCore::JSDOMWindow::postMessage):
2446         * bindings/js/JSDatabaseCustom.cpp:
2447         (WebCore::JSDatabase::changeVersion):
2448         (WebCore::JSDatabase::transaction):
2449         * bindings/js/JSDocumentCustom.cpp:
2450         (WebCore::JSDocument::setLocation):
2451         * bindings/js/JSLocationCustom.cpp:
2452         (WebCore::navigateIfAllowed):
2453         (WebCore::JSLocation::setHref):
2454         (WebCore::JSLocation::replace):
2455         (WebCore::JSLocation::reload):
2456         (WebCore::JSLocation::assign):
2457         * bindings/js/JSSQLTransactionCustom.cpp:
2458         (WebCore::JSSQLTransaction::executeSql):
2459         * bindings/js/JSXMLHttpRequestCustom.cpp:
2460         (WebCore::JSXMLHttpRequest::open):
2461         * page/JavaScriptDebugServer.cpp:
2462         (WebCore::toPage):
2463
2464 2008-05-01  Anatoli Papirovski  <apapirovski@mac.com>
2465
2466         Reviewed by Dave Hyatt.
2467
2468         - fix https://bugs.webkit.org/show_bug.cgi?id=18347
2469           Absolutely positioned image percentage width does not respect container's padding
2470
2471         Test: fast/replaced/absolute-position-percentage-width.html
2472
2473         * rendering/RenderBox.cpp:
2474         (WebCore::RenderBox::calcReplacedWidthUsing):
2475
2476 2008-05-01  Dan Bernstein  <mitz@apple.com>
2477
2478         - Windows build fix
2479
2480         * platform/graphics/win/FontCGWin.cpp:
2481         (WebCore::Font::drawGlyphs):
2482
2483 2008-05-01  Dan Bernstein  <mitz@apple.com>
2484
2485         Reviewed by Darin Adler.
2486
2487         - make synthetic bold and synthetic italics work in GDI text
2488         - account for synthetic bold in complex text on Windows
2489
2490         * platform/graphics/win/FontCGWin.cpp:
2491         (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates
2492         to fit italics. Added a skew transform for synthetic italics and a
2493         second paint pass for synthetic bold.
2494         * platform/graphics/win/SimpleFontDataWin.cpp:
2495         (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold
2496         offset.
2497         * platform/graphics/win/UniscribeController.cpp:
2498         (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
2499         bold offset.
2500
2501 2008-05-01  Alp Toker  <alp@nuanti.com>
2502
2503         Qt/Win build fix attempt following plugin changes. Add missing return
2504         statements.
2505
2506         Also fixes some newly introduced coding style issues in the Qt port.
2507
2508         * platform/qt/FileSystemQt.cpp:
2509         (WebCore::openTemporaryFile):
2510         (WebCore::closeFile):
2511         (WebCore::writeToFile):
2512         (WebCore::unloadModule):
2513
2514 2008-05-01  Anders Carlsson  <andersca@apple.com>
2515
2516         Reviewed by Adam.
2517
2518         Export methods needed to subclass Widget.  (See r32770.)
2519
2520         * WebCore.base.exp:
2521
2522 2008-05-01  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
2523
2524         Reviewed by Alp Toker.
2525         Qt parts OK'ed by Simon Hausmann.
2526
2527         https://bugs.webkit.org/show_bug.cgi?id=14750
2528         Added support for NPAPI plugins on Gtk and Qt-x11 ports.
2529
2530         * GNUmakefile.am: Added Gtk plugin files.
2531         * WebCore.pro: Added Qt plugins files, defined XP_UNIX and
2532         ENABLE_NETSCAPE_PLUGIN_API
2533         * bridge/npruntime_internal.h: Additional undefs that conflict
2534         with Qt headers.
2535         * page/gtk/FrameGtk.cpp: Create js bindings for PluginView.
2536         (WebCore::Frame::createScriptInstanceForWidget):
2537         * page/qt/FrameQt.cpp: Create js bindings for PluginView.
2538         (WebCore::Frame::createScriptInstanceForWidget):
2539         (WebCore::Frame::clearPlatformScriptObjects):
2540         (WebCore::Frame::disconnectPlatformScriptObjects):
2541         * platform/FileSystem.h: Qt FileSystem implementation.
2542         * platform/Widget.h: Members to differentiate between Qt plugins and
2543         NPAPI ones.
2544         * platform/gtk/ScrollViewGtk.cpp:
2545         (WebCore::ScrollView::addChild): Set containing window before calling setParent.
2546         * platform/gtk/TemporaryLinkStubs.cpp: Removed implemented functions.
2547         (PluginView::invalidateRegion):
2548         * platform/qt/FileSystemQt.cpp: Implemented functions necessary for
2549         NPAPI plugins.
2550         (WebCore::openTemporaryFile):
2551         (WebCore::closeFile):
2552         (WebCore::writeToFile):
2553         (WebCore::unloadModule): Delete module if unloaded.
2554         * platform/qt/TemporaryLinkStubs.cpp: Removed implemented functions.
2555         * platform/qt/WidgetQt.cpp: Differentiate between Qt plugins and
2556         NPAPI ones.
2557         (WebCore::WidgetPrivate::WidgetPrivate):
2558         (WebCore::Widget::isNPAPIPlugin):
2559         (WebCore::Widget::setIsNPAPIPlugin):
2560         * plugins/PluginPackage.cpp:
2561         (WebCore::PluginPackage::~PluginPackage): Unload the module before
2562         destruction.
2563         (WebCore::PluginPackage::compare): Moved here as it's platform
2564         independent.
2565         * plugins/PluginView.cpp: Moved platform-independent functions here.
2566         (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
2567         Unix platforms.
2568         (WebCore::PluginView::freeStringArray):
2569         (WebCore::startsWithBlankLine):
2570         (WebCore::locationAfterFirstBlankLine):
2571         (WebCore::findEOL):
2572         (WebCore::capitalizeRFC822HeaderFieldName):
2573         (WebCore::parseRFC822HeaderFields):
2574         (WebCore::PluginView::handlePost):
2575         * plugins/PluginView.h: Moved platform-independent functions here.
2576         Added member to signal plugin needs XEmbed extension.
2577         * plugins/gtk/PluginDataGtk.cpp: Added.
2578         (WebCore::PluginData::initPlugins):
2579         (WebCore::PluginData::refresh):
2580         * plugins/gtk/PluginDatabaseGtk.cpp:
2581         (WebCore::PluginDatabase::defaultPluginDirectories):
2582         (WebCore::PluginDatabase::isPreferredPluginDirectory):
2583         * plugins/gtk/PluginPackageGtk.cpp: Added.
2584         (WebCore::PluginPackage::determineQuirks):
2585         (WebCore::PluginPackage::fetchInfo):
2586         (WebCore::PluginPackage::load):
2587         (WebCore::PluginPackage::hash):
2588         (WebCore::PluginPackage::equal):
2589         (WebCore::PluginPackage::compareFileVersion):
2590         * plugins/gtk/PluginViewGtk.cpp: Added.
2591         (WebCore::PluginView::updateWindow):
2592         (WebCore::PluginView::setFocus):
2593         (WebCore::PluginView::show):
2594         (WebCore::PluginView::hide):
2595         (WebCore::PluginView::paint):
2596         (WebCore::PluginView::handleKeyboardEvent):
2597         (WebCore::PluginView::handleMouseEvent):
2598         (WebCore::PluginView::setParent):
2599         (WebCore::PluginView::setNPWindowRect):
2600         (WebCore::PluginView::attachToWindow):
2601         (WebCore::PluginView::detachFromWindow):
2602         (WebCore::PluginView::stop):
2603         (WebCore::PluginView::userAgent):
2604         (WebCore::PluginView::handlePostReadFile):
2605         (WebCore::PluginView::getValue):
2606         (WebCore::PluginView::invalidateRect):
2607         (WebCore::PluginView::forceRedraw):
2608         (WebCore::PluginView::~PluginView):
2609         (WebCore::plug_removed_cb): Added callback to handle plug removal.
2610         (WebCore::PluginView::init):
2611         * plugins/gtk/xembed.h: Added.
2612         * plugins/npapi.cpp:
2613         (NPN_GetValue): Return error if no view present.
2614         * plugins/qt/PluginDataQt.cpp:
2615         (WebCore::PluginData::initPlugins):
2616         (WebCore::PluginData::refresh):
2617         * plugins/qt/PluginDatabaseQt.cpp: Added.
2618         (WebCore::PluginDatabase::getPluginPathsInDirectories):
2619         (WebCore::addQtWebKitPluginDirectories):
2620         (WebCore::addMozillaPluginDirectories):
2621         (WebCore::PluginDatabase::defaultPluginDirectories):
2622         (WebCore::PluginDatabase::isPreferredPluginDirectory):
2623         * plugins/qt/PluginPackageQt.cpp: Added.
2624         (WebCore::PluginPackage::determineQuirks):
2625         (WebCore::PluginPackage::fetchInfo):
2626         (WebCore::PluginPackage::load):
2627         (WebCore::PluginPackage::hash):
2628         (WebCore::PluginPackage::equal):
2629         (WebCore::PluginPackage::compareFileVersion):
2630         * plugins/qt/PluginViewQt.cpp: Added.
2631         (WebCore::PluginView::updateWindow):
2632         (WebCore::PluginView::setFocus):
2633         (WebCore::PluginView::show):
2634         (WebCore::PluginView::hide):
2635         (WebCore::PluginView::paint):
2636         (WebCore::PluginView::handleKeyboardEvent):
2637         (WebCore::PluginView::handleMouseEvent):
2638         (WebCore::PluginView::setParent):
2639         (WebCore::PluginView::setNPWindowRect):
2640         (WebCore::PluginView::attachToWindow):
2641         (WebCore::PluginView::detachFromWindow):
2642         (WebCore::PluginView::stop):
2643         (WebCore::PluginView::userAgent):
2644         (WebCore::PluginView::handlePostReadFile):
2645         (WebCore::PluginView::getValue):
2646         (WebCore::PluginView::invalidateRect):
2647         (WebCore::PluginView::invalidateRegion):
2648         (WebCore::PluginView::forceRedraw):
2649         (WebCore::PluginView::~PluginView):
2650         (WebCore::PluginView::init):
2651         * plugins/win/PluginPackageWin.cpp: Moved platform-independent code
2652         to plugins/PluginPackage.cpp
2653         * plugins/win/PluginViewWin.cpp: Moved platform-independent code to
2654         plugins/PluginView.cpp
2655         (WebCore::PluginView::stop):
2656         (WebCore::PluginView::handlePostReadFile):
2657         (WebCore::PluginView::getValue): Moved this function to each platform.
2658
2659 2008-05-01  Sam Weinig  <sam@webkit.org>
2660
2661         Fix build.
2662
2663         * ForwardingHeaders/wtf/StrHash.h: Added.
2664
2665 2008-05-01  Anders Carlsson  <andersca@apple.com>
2666
2667         Reviewed by Darin.
2668
2669         Move management of cache groups to ApplicationCacheStorage. Also,
2670         application caches now start out with a null group and will have their group set
2671         when the cache has finished loading. 
2672
2673         * loader/appcache/ApplicationCache.cpp:
2674         (WebCore::ApplicationCache::ApplicationCache):
2675         Initialize m_group to 0.
2676         
2677         (WebCore::ApplicationCache::~ApplicationCache):
2678         Null check the group.
2679         
2680         (WebCore::ApplicationCache::setGroup):
2681         New method for setting the group.
2682         
2683         * loader/appcache/ApplicationCache.h:        
2684         (WebCore::ApplicationCache::create):
2685         Remove the group argument.
2686         
2687         * loader/appcache/ApplicationCacheGroup.cpp:
2688         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
2689         Let the storage know that the cache group has been destroyed.
2690         
2691         (WebCore::ApplicationCacheGroup::cacheForMainRequest):
2692         Call into the storage.
2693         
2694         (WebCore::ApplicationCacheGroup::selectCache):
2695         Call into the storage.
2696         
2697         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
2698         When there are no document loaders associated with the cache group,
2699         set the newest cache to 0.
2700         
2701         (WebCore::ApplicationCacheGroup::cacheDestroyed):
2702         Delete the group if there are no associated caches.
2703         
2704         (WebCore::ApplicationCacheGroup::setNewestCache):
2705         New method that will set the newest cache and associate the group with the cache.
2706         
2707         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
2708         Call setNewestCache instead.
2709         
2710         * loader/appcache/ApplicationCacheStorage.cpp:
2711         (WebCore::urlHostHash):
2712         Move host hash method here.
2713         
2714         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
2715         New method that finds a cache group with a given manifest URL or creates a new one.
2716
2717         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
2718         New method that returns a cache group for a given URL.
2719         
2720         (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
2721         When the cache group has been destroyed, remove it from the hash map.
2722         
2723         * loader/appcache/ApplicationCacheStorage.h:
2724         Add new methods.I b
2725
2726 2008-05-01  Dan Winship  <danw@gnome.org>
2727
2728         Reviewed by Alp Toker.
2729
2730         http://bugs.webkit.org/show_bug.cgi?id=18490
2731         Add mostly-working file: support and mostly-broken ftp: support to
2732         the soup backend.
2733
2734         * platform/network/soup/ResourceHandleSoup.cpp (start): after
2735         doing basic checks, delegate to one of three submethods
2736         (startData): handles data: URLs
2737         (startHttp): handles http: and https: URLs, via libsoup
2738         (startGio, etc): handles file: and ftp: URLs, via gio. Lots of
2739         FIXMEs detailing the parts that don't fully work yet.
2740
2741         * platform/network/ResourceHandle.h:
2742         * platform/network/ResourceHandleInternal.h: add new member
2743         variables for gio-based loading
2744
2745 2008-05-01  Alp Toker  <alp@nuanti.com>
2746
2747         Rubber-stamped by Anders.
2748
2749         GTK+ build fix for changes in r32752. Use int32, not int32_t types in
2750         npapi.h.
2751
2752         Additional fix to use same signedness in npapi.h and Mac for the
2753         interval parameter.
2754
2755         * bridge/npapi.h:
2756
2757 2008-04-30  Anders Carlsson  <andersca@apple.com>
2758
2759         Reviewed by Adam.
2760
2761         Add new Cocoa event model type declarations.
2762         
2763         * bridge/npapi.h:
2764
2765 2008-04-30  Beth Dakin  <bdakin@apple.com>
2766
2767         Reviewed by Sam Weinig.
2768
2769         This patch does three things:
2770         1. Adds support for the "img" ARIA role
2771         2. Switches over to a HashMap for converting ARIA role attributes 
2772         to WebCore's AccessibilityRole type. 
2773         3. Fixes a crash in the new ARIA code that I ran into while 
2774         browsing with VoiceOver enabled.
2775
2776         * page/AccessibilityObject.cpp:
2777         (WebCore::AccessibilityObject::headingLevel): This is the crash 
2778         fix. Make sure the node's renderer is not null before looking up 
2779         its corresponding AccessibilityObject in the cache.
2780         (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for 
2781         ARIA images.
2782         (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to 
2783         the Map.
2784         (WebCore::RoleEntry::): Same.
2785         (WebCore::ariaRoleToWebCoreRole): Same.
2786         (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
2787
2788 2008-04-30  Rob Buis  <buis@kde.org>
2789
2790         Reviewed by Nikolas.
2791
2792         https://bugs.webkit.org/show_bug.cgi?id=16447
2793         onload called too many times for <svg:image>
2794         https://bugs.webkit.org/show_bug.cgi?id=12282
2795         SVG wastes time in malloc to send loadEvents to non-existent listeners
2796
2797         Postpone load event dispatching for image when externalResourcesRequired
2798         is true, delaying parents but not siblings, and make sure the load event
2799         is sent once for image in all cases.
2800
2801         * svg/SVGElement.cpp:
2802         (WebCore::hasLoadListener):
2803         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
2804         * svg/SVGImageElement.cpp:
2805         (WebCore::SVGImageElement::haveLoadedRequiredResources):
2806         * svg/SVGImageLoader.cpp:
2807         (WebCore::SVGImageLoader::dispatchLoadEvent):
2808
2809 2008-04-30  David Hyatt  <hyatt@apple.com>
2810
2811         Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts.  This
2812         won't typically crash release builds because of arena recycling.
2813
2814         Reviewed by Dan Bernstein
2815         
2816         * rendering/RenderLayer.cpp:
2817         (WebCore::RenderLayer::~RenderLayer):
2818         Make sure to remove the reflection's child layer from its parent.
2819
2820         * rendering/RenderMedia.cpp:
2821         (WebCore::RenderMedia::~RenderMedia):
2822         (WebCore::RenderMedia::destroy):
2823         (WebCore::RenderMedia::removeChild):
2824         * rendering/RenderMedia.h:
2825         Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more
2826         like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia
2827         destructor).
2828
2829 2008-04-30  Rémi Zara  <remi_zara@mac.com>
2830
2831         Reviewed by Dave Hyatt.
2832
2833         fix https://bugs.webkit.org/show_bug.cgi?id=18618
2834         <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
2835
2836         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
2837         (WebCore::patternCallback): flip the y axis when drawing the tile
2838
2839 2008-04-30  Timothy Hatcher  <timothy@apple.com>
2840
2841         Fixes an undefined type exception that fires when adding a resource to the inspector
2842         that has a MIME type warning.
2843
2844         Reviewed by Adam Roben.
2845
2846         * page/inspector/Resource.js:
2847         (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
2848         WebInspector.consolePanel.
2849         (WebInspector.Resource.prototype._checkWarning): Ditto.
2850
2851 2008-04-30  Timothy Hatcher  <timothy@apple.com>
2852
2853         Fixes the bug where the selected resource would be deselected after
2854         changing the sort order in the Resources panel.
2855
2856         Reviewed by Dan Bernstein.
2857
2858         * page/inspector/ResourcesPanel.js:
2859         (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
2860         Rememebr if the tree element that we are sorting was selected, so
2861         the selection can be restored after it is re-inserted. The onSelect
2862         is suppressed since we don't need to show the resource again.
2863
2864 2008-04-29  Timothy Hatcher  <timothy@apple.com>
2865
2866         Fixes the regression where error bubbles in source views always show
2867         "undefined" for the content because the message property on
2868         ConsoleMessage was removed. Adds support for a plain text formated
2869         message that is stored in the message proeprty.
2870
2871         Reviewed by Adam Roben.
2872
2873         * page/inspector/Console.js:
2874         (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
2875         the formatters.
2876         (WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
2877         about needing to honor it if the textContent of the output doesn't make sense.
2878         (WebInspector.Console.prototype._formatvalue): Ditto.
2879         (WebInspector.Console.prototype._formatstring): Ditto.
2880         (WebInspector.Console.prototype._formatregexp): Ditto.
2881         (WebInspector.Console.prototype._formatarray): Ditto.
2882         (WebInspector.Console.prototype._formatnode): Ditto.
2883         (WebInspector.Console.prototype._formatobject): Ditto.
2884         (WebInspector.Console.prototype._formaterror): Ditto.
2885         (WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the 
2886         textContnet of the result and assign to the message proeprty. This property is 
2887         referenced from the SourceView.
2888         (WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the 
2889         result element as a local and return it, instead of using formatedMessage directly.
2890
2891 2008-04-30  Timothy Hatcher  <timothy@apple.com>
2892
2893         Adds a helper function to convert a JSValueRef to a String.
2894
2895         Reviewed by Adam Roben.
2896
2897         * page/InspectorController.cpp:
2898         (WebCore::toString): Converts a JSValueRef to a String.
2899         (WebCore::search): Use toString.
2900         (WebCore::InspectorController::handleException): Ditto.
2901
2902 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2903
2904         Reviewed by Simon.
2905         
2906         Build the Qt port with SVG Foreign Object support.
2907
2908         * WebCore.pro:
2909
2910 2008-04-30  Simon Hausmann  <hausmann@webkit.org>
2911
2912         Reviewed by Holger.
2913
2914         Fix null pointer deference triggered by
2915         LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
2916
2917         * platform/network/qt/ResourceHandleQt.cpp:
2918         (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
2919
2920 2008-04-29  David Hyatt  <hyatt@apple.com>
2921
2922         Improve the performance of masks by adding code to set more precise clips on the transparency layers
2923         used to paint the content under the mask, and then also avoid creating transparency layers for the masks
2924         themselves in common cases.
2925
2926         Reviewed by Dan Bernstein
2927
2928         * platform/graphics/GraphicsContext.cpp:
2929         (WebCore::GraphicsContext::drawTiledImage):
2930         Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece
2931         images.
2932
2933         * rendering/InlineFlowBox.cpp:
2934         (WebCore::InlineFlowBox::paintFillLayers):
2935         (WebCore::InlineFlowBox::paintFillLayer):
2936         (WebCore::InlineFlowBox::paintMask):
2937         Optimize to only push a transparency layer for the mask if multiple images are combining.  Add a new
2938         composite operator argument for use when painting fill layers to do direct destination-in compositing while
2939         painting images.
2940
2941
2942         * rendering/InlineFlowBox.h:
2943         * rendering/RenderBox.cpp:
2944         (WebCore::RenderBox::paintMask):
2945         (WebCore::RenderBox::paintMaskImages):
2946         Optimize to only push a transparency layer for the mask if multiple images are combining.
2947
2948         (WebCore::RenderBox::maskClipRect):
2949         A new method that attempts to compute a precise clip rect for the mask images.
2950
2951         (WebCore::RenderBox::paintFillLayers):
2952         (WebCore::RenderBox::paintFillLayer):
2953         (WebCore::RenderBox::paintFillLayerExtended):
2954         * rendering/RenderBox.h:
2955         Added the composite operator argument to the paintFillLayer methods.
2956
2957         * rendering/RenderFieldset.cpp:
2958         (WebCore::RenderFieldset::paintMask):
2959         Call the new base class paintMaskImages method for optimized mask painting.
2960
2961         * rendering/RenderLayer.cpp:
2962         (WebCore::transparencyClipBox):
2963         Fix a coordinate space issue with transparencyClipBox when masks were used.  The border box was in the
2964         wrong coordinate space.  Moved the code into the layer's boundingBox() method instead.
2965
2966         (WebCore::RenderLayer::paintLayer):
2967         Removed the code that always pushed a transparency layer before painting masks.
2968
2969         (WebCore::RenderLayer::boundingBox):
2970         Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
2971
2972         * rendering/RenderObject.cpp:
2973         (WebCore::RenderObject::paintNinePieceImage):
2974         Added a composite operator argument for direct destination-in painting of nine piece images.
2975
2976         * rendering/RenderObject.h:
2977         (WebCore::RenderObject::maskClipRect):
2978         (WebCore::RenderObject::paintFillLayerExtended):
2979         Base class stubs for RenderBox-implemented methods.
2980
2981         * rendering/RenderTable.cpp:
2982         (WebCore::RenderTable::paintMask):
2983         * rendering/RenderTableCell.cpp:
2984         (WebCore::RenderTableCell::paintMask):
2985         Modified to call the new paintMaskImages function.
2986
2987         * svg/graphics/SVGImage.cpp:
2988         (WebCore::SVGImage::draw):
2989         SVG images now respect composite modes by pushing a transparency layer when the composite mode
2990         is anything other than source-over.
2991
2992 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2993
2994         Rubber-stamped by Rob Buis.
2995
2996         Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
2997
2998         * svg/SVGUseElement.cpp:
2999         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
3000
3001 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3002
3003         Rubber-stamped by Rob Buis.
3004
3005         Fixed compile, due to API change in XMLSerializer
3006
3007         * svg/SVGUseElement.cpp:
3008         (WebCore::SVGUseElement::buildPendingResource):
3009
3010 2008-04-30  Rob Buis  <buis@kde.org>
3011
3012         Reviewed by Eric.
3013
3014         https://bugs.webkit.org/show_bug.cgi?id=11939
3015         Quirksmode: Ignores media types in stylesheet PIs
3016
3017         Transfer the xml-stylesheet pseudo attribute media to the css
3018         stylesheet created from the ProcessingInstruction.
3019
3020         Tests: fast/css/xml-stylesheet-media-processing.xhtml
3021
3022         * css/StyleSheet.cpp:
3023         (WebCore::StyleSheet::setMedia):
3024         * css/StyleSheet.h:
3025         * dom/ProcessingInstruction.cpp:
3026         (WebCore::ProcessingInstruction::checkStyleSheet):
3027         (WebCore::ProcessingInstruction::setCSSStyleSheet):
3028         * dom/ProcessingInstruction.h:
3029
3030 2008-04-29  David D. Kilzer  <ddkilzer@apple.com>
3031
3032         BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
3033
3034         On the buildbot, this is a fatal error:
3035
3036         ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
3037         __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
3038         /usr/bin/libtool: internal link edit command failed
3039
3040         Newer dev tools only produce a warning:
3041
3042         ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
3043
3044         * WebCore.base.exp: Remove hidden symbol from export list.
3045
3046 2008-04-29  David Kilzer  <ddkilzer@apple.com>
3047
3048         Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
3049
3050         * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
3051
3052 2008-04-29  David Kilzer  <ddkilzer@apple.com>
3053
3054         BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
3055
3056         * DerivedSources.make: Removed duplication of targets for
3057         generating CSSPropertyNames.h and CSSValueKeywords.h.
3058         * GNUmakefile.am: Ditto.  Added support for ENABLE_DASHBOARD_SUPPORT.
3059         * WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT.
3060         Made both SVG and non-SVG variables of GENERATOR 6-A use new
3061         DASHBOARDSUPPORTCSSPROPERTIES variable.
3062
3063 2008-04-29  Ada Chan  <adachan@apple.com>
3064
3065         Added missing return.        
3066
3067         * platform/win/COMPtr.h:
3068         (WTF::):
3069
3070 2008-04-29  Alp Toker  <alp@nuanti.com>
3071
3072         GTK+ build fix attempt following breakage in r32700 which
3073         conditionalised dashboard support.
3074
3075         * GNUmakefile.am:
3076
3077 2008-04-29  Adam Roben  <aroben@apple.com>
3078
3079         Restore the beloved COMPtr::operator&
3080
3081         * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
3082         constructor and isHashTableDeletedValue and hashTableDeletedValue
3083         functions.
3084         (WTF::): Changed constructDeletedValue to play nicely with
3085         COMPtr::operator&.
3086
3087 2008-04-29  Adam Roben  <aroben@apple.com>
3088
3089         Fix assertion on launch on Windows
3090
3091         * platform/graphics/win/FontPlatformData.h: Pass
3092         WTF::HashTableDeletedValue to the m_font constructor instead of a
3093         bogus -1 value. This is needed because m_font is a RefPtr.
3094
3095 2008-04-29  Greg Bolsinga  <bolsinga@apple.com>
3096
3097         Reviewed by Darin.
3098
3099         Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
3100
3101         * DerivedSources.make:
3102         * WebCore.DashboardSupport.exp: Added.
3103         * WebCore.base.exp:
3104         * WebCore.xcodeproj/project.pbxproj:
3105         * bindings/js/JSDOMWindowCustom.cpp:
3106         (WebCore::JSDOMWindow::setLocation):
3107         * css/CSSComputedStyleDeclaration.cpp:
3108         (WebCore::):
3109         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3110         * css/CSSParser.cpp:
3111         (WebCore::CSSParser::parseValue):
3112         * css/CSSPrimitiveValue.cpp:
3113         (WebCore::CSSPrimitiveValue::cleanup):
3114         (WebCore::CSSPrimitiveValue::cssText):
3115         * css/CSSPropertyNames.in:
3116         * css/CSSStyleSelector.cpp:
3117         (WebCore::CSSStyleSelector::applyProperty):
3118         * css/DashboardRegion.h:
3119         * css/DashboardSupportCSSPropertyNames.in: Added.
3120         * dom/DOMImplementation.cpp:
3121         (WebCore::DOMImplementation::createDocument):
3122         * dom/Document.cpp:
3123         (WebCore::Document::Document):
3124         (WebCore::Document::importNode):
3125         * dom/Document.h:
3126         * html/CanvasRenderingContext2D.cpp:
3127         (WebCore::CanvasRenderingContext2D::fill):
3128         (WebCore::CanvasRenderingContext2D::stroke):
3129         (WebCore::CanvasRenderingContext2D::clip):
3130         * html/CanvasRenderingContext2D.h:
3131         * html/HTMLCanvasElement.cpp:
3132         * html/HTMLCanvasElement.h:
3133         * page/Chrome.cpp:
3134         * page/ChromeClient.h:
3135         * page/Frame.cpp:
3136         (WebCore::Frame::paint):
3137         * page/Frame.h:
3138         * page/FrameView.cpp:
3139         (WebCore::FrameView::layout):
3140         * page/FrameView.h:
3141         * page/Settings.cpp:
3142         (WebCore::Settings::Settings):
3143         * page/Settings.h:
3144         * page/mac/EventHandlerMac.mm:
3145         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
3146         * page/mac/FrameMac.mm:
3147         * page/mac/WebDashboardRegion.h:
3148         * page/mac/WebDashboardRegion.m:
3149         * rendering/RenderLayer.cpp:
3150         (WebCore::RenderLayer::scrollToOffset):
3151         (WebCore::RenderLayer::setHasHorizontalScrollbar):
3152         (WebCore::RenderLayer::setHasVerticalScrollbar):
3153         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
3154         * rendering/RenderObject.cpp:
3155         (WebCore::RenderObject::setStyle):
3156         * rendering/RenderObject.h:
3157         * rendering/RenderStyle.cpp:
3158         (WebCore::StyleRareNonInheritedData::operator==):
3159         (WebCore::RenderStyle::diff):
3160         * rendering/RenderStyle.h:
3161         * xml/XMLHttpRequest.cpp:
3162         (WebCore::XMLHttpRequest::send):
3163         (WebCore::XMLHttpRequest::setRequestHeader):
3164
3165 2008-04-29  Adam Roben  <aroben@apple.com>
3166
3167         Windows build fix
3168
3169         This removes COMPtr::operator&, which didn't jive with HashTable. It
3170         is replaced by COMPtr::adoptionPointer.
3171
3172         Discussed with Darin Adler and Anders Carlsson.
3173
3174         * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
3175
3176 2008-04-29  David Hyatt  <hyatt@apple.com>
3177
3178         Implement the new box-reflect property in CSS.  This property enables real-time reflections on
3179         objects (yes you can reflect <video>!).
3180
3181         Reviewed by Dan Bernstein
3182
3183         Test cases added in fast/reflections/
3184
3185         * GNUmakefile.am:
3186         * WebCore.pro:
3187         * WebCore.xcodeproj/project.pbxproj:
3188         * WebCoreSources.bkl:
3189         * css/CSSComputedStyleDeclaration.cpp:
3190         (WebCore::):
3191         (WebCore::valueForReflection):
3192         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3193         * css/CSSParser.cpp:
3194         (WebCore::CSSParser::parseValue):
3195         (WebCore::CSSParser::parseReflect):
3196         (WebCore::BorderImageParseContext::commitBorderImage):
3197         (WebCore::CSSParser::parseBorderImage):
3198         (WebCore::parseGradientColorStop):
3199         (WebCore::CSSParser::parseTransform):
3200         * css/CSSParser.h:
3201         * css/CSSPropertyNames.in:
3202         * css/CSSReflectValue.cpp: Added.
3203         (WebCore::CSSReflectValue::cssText):
3204         * css/CSSReflectValue.h: Added.
3205         (WebCore::):
3206         (WebCore::CSSReflectValue::CSSReflectValue):
3207         (WebCore::CSSReflectValue::direction):
3208         (WebCore::CSSReflectValue::offset):
3209         (WebCore::CSSReflectValue::mask):
3210         (WebCore::CSSReflectValue::setDirection):
3211         (WebCore::CSSReflectValue::setOffset):
3212         (WebCore::CSSReflectValue::setMask):
3213         * css/CSSStyleSelector.cpp:
3214         (WebCore::CSSStyleSelector::adjustRenderStyle):
3215         (WebCore::CSSStyleSelector::applyProperty):
3216         (WebCore::CSSStyleSelector::mapNinePieceImage):
3217         * css/CSSStyleSelector.h:
3218         * rendering/InlineFlowBox.cpp:
3219         (WebCore::InlineFlowBox::placeBoxesVertically):
3220         (WebCore::InlineFlowBox::paintMask):
3221         * rendering/Length.h:
3222         (WebCore::Length::calcFloatValue):
3223         * rendering/RenderBlock.cpp:
3224         (WebCore::RenderBlock::overflowHeight):
3225         (WebCore::RenderBlock::overflowWidth):
3226         (WebCore::RenderBlock::overflowLeft):
3227         (WebCore::RenderBlock::overflowTop):
3228         (WebCore::RenderBlock::overflowRect):
3229         (WebCore::RenderBlock::layoutBlock):
3230         * rendering/RenderBox.cpp:
3231         (WebCore::RenderBox::setStyle):
3232         (WebCore::RenderBox::paintMask):
3233         (WebCore::RenderBox::imageChanged):
3234         (WebCore::RenderBox::computeAbsoluteRepaintRect):
3235         * rendering/RenderFlexibleBox.cpp:
3236         (WebCore::RenderFlexibleBox::layoutBlock):
3237         * rendering/RenderLayer.cpp:
3238         (WebCore::RenderLayer::RenderLayer):
3239         (WebCore::RenderLayer::~RenderLayer):
3240         (WebCore::RenderLayer::updateLayerPositions):
3241         (WebCore::RenderLayer::enclosingPositionedAncestor):
3242         (WebCore::RenderLayer::enclosingTransformedAncestor):
3243         (WebCore::RenderLayer::isTransparent):
3244         (WebCore::transparencyClipBox):
3245         (WebCore::RenderLayer::operator delete):
3246         (WebCore::RenderLayer::destroy):
3247         (WebCore::RenderLayer::removeOnlyThisLayer):
3248         (WebCore::RenderLayer::insertOnlyThisLayer):
3249         (WebCore::RenderLayer::paintLayer):
3250         (WebCore::RenderLayer::updateZOrderLists):
3251         (WebCore::RenderLayer::updateOverflowList):
3252         (WebCore::RenderLayer::collectLayers):
3253         (WebCore::RenderLayer::shouldBeOverflowOnly):
3254         (WebCore::RenderLayer::styleChanged):
3255         (WebCore::RenderLayer::reflectionLayer):
3256         (WebCore::RenderLayer::createReflection):
3257         (WebCore::RenderLayer::updateReflectionStyle):
3258         * rendering/RenderLayer.h:
3259         (WebCore::RenderLayer::hasReflection):
3260         (WebCore::RenderLayer::reflection):
3261         (WebCore::RenderLayer::paintingInsideReflection):
3262         * rendering/RenderObject.cpp:
3263         (WebCore::RenderObject::RenderObject):
3264         (WebCore::RenderObject::requiresLayer):
3265         (WebCore::RenderObject::setStyle):
3266         (WebCore::RenderObject::updateImage):
3267         (WebCore::RenderObject::reflectionBox):
3268         (WebCore::RenderObject::reflectionOffset):
3269         * rendering/RenderObject.h:
3270         (WebCore::RenderObject::hasTransform):
3271         (WebCore::RenderObject::setHasReflection):
3272         (WebCore::RenderObject::hasReflection):
3273         * rendering/RenderReplica.cpp: Added.
3274         (WebCore::RenderReplica::RenderReplica):
3275         (WebCore::RenderReplica::~RenderReplica):
3276         (WebCore::RenderReplica::layout):
3277         (WebCore::RenderReplica::calcPrefWidths):
3278         (WebCore::RenderReplica::paint):
3279         * rendering/RenderReplica.h: Added.
3280         (WebCore::RenderReplica::renderName):
3281         (WebCore::RenderReplica::requiresLayer):
3282         * rendering/RenderStyle.cpp:
3283         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3284         (WebCore::StyleRareNonInheritedData::operator==):
3285         (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
3286         (WebCore::RenderStyle::diff):
3287         (WebCore::RenderStyle::applyTransform):
3288         * rendering/RenderStyle.h:
3289         (WebCore::TranslateTransformOperation::apply):
3290         (WebCore::StyleReflection::StyleReflection):
3291         (WebCore::StyleReflection::operator==):
3292         (WebCore::StyleReflection::operator!=):
3293         (WebCore::StyleReflection::direction):
3294         (WebCore::StyleReflection::offset):
3295         (WebCore::StyleReflection::mask):
3296         (WebCore::StyleReflection::setDirection):
3297         (WebCore::StyleReflection::setOffset):
3298         (WebCore::StyleReflection::setMask):
3299         (WebCore::RenderStyle::boxReflect):
3300         (WebCore::RenderStyle::setBoxReflect):
3301         (WebCore::RenderStyle::initialBoxReflect):
3302         * rendering/RenderTable.cpp:
3303         (WebCore::RenderTable::layout):
3304         (WebCore::RenderTable::paintMask):
3305         * rendering/RenderTableCell.cpp:
3306         (WebCore::RenderTableCell::requiresLayer):
3307         (WebCore::RenderTableCell::paintMask):
3308
3309 2008-04-29  Beth Dakin  <bdakin@apple.com>
3310
3311         Reviewed by Alice.
3312
3313         Initial implementation of the following ARIA roles: button, 
3314         checkbox, heading, link, radio, textbox.
3315
3316         * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
3317
3318         * page/AccessibilityObject.cpp:
3319          When an ARIA role is set, the role overrides whatever the actual 
3320 element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
3321         (WebCore::AccessibilityObject::isWebArea):
3322         (WebCore::AccessibilityObject::isImageButton):
3323         (WebCore::AccessibilityObject::isAnchor):
3324         (WebCore::AccessibilityObject::isTextControl):
3325         (WebCore::AccessibilityObject::isImage):
3326         (WebCore::AccessibilityObject::isAttachment):
3327         (WebCore::AccessibilityObject::isPasswordField):
3328         (WebCore::AccessibilityObject::isCheckboxOrRadio):
3329         (WebCore::AccessibilityObject::isHeading):
3330         (WebCore::AccessibilityObject::isLink):
3331
3332         Check for ARIA information:
3333         (WebCore::AccessibilityObject::headingLevel):
3334         (WebCore::AccessibilityObject::anchorElement):
3335         (WebCore::AccessibilityObject::actionElement):
3336         (WebCore::AccessibilityObject::hasIntValue):
3337         (WebCore::AccessibilityObject::intValue):
3338         (WebCore::AccessibilityObject::stringValue):
3339         (WebCore::AccessibilityObject::title):
3340         (WebCore::AccessibilityObject::accessibilityIsIgnored):
3341         (WebCore::AccessibilityObject::roleValue):
3342
3343         There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
3344         (WebCore::AccessibilityObject::isNativeImage):
3345         (WebCore::AccessibilityObject::isNativeTextControl):
3346         (WebCore::isARIAInput):
3347         (WebCore::isARIAControl):
3348
3349         A lot of spots in the code used to cast to RenderTextControl to get information about the text inside the element. Now that non-native text controls can run this code with the ARIA role 'textbox', it needs to be as general as possible. 
3350         (WebCore::AccessibilityObject::text): Still calls into 
3351         RenderTextControl's text() for native text controls. Uses Element's 
3352         innerText() for ARIA textboxes.
3353         (WebCore::AccessibilityObject::textLength): Call 
3354         AccessibilityObject's text() instead of RenderTextControl's.
3355         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
3356         (WebCore::AccessibilityObject::selectedText):
3357         (WebCore::AccessibilityObject::selectedTextRange):
3358         (WebCore::AccessibilityObject::selectionStart):
3359         (WebCore::AccessibilityObject::selectionEnd):
3360         (WebCore::AccessibilityObject::setSelectedTextRange):
3361         (WebCore::AccessibilityObject::setValue):
3362         (WebCore::AccessibilityObject::visiblePositionForIndex):
3363         (WebCore::AccessibilityObject::indexForVisiblePosition):
3364         (WebCore::AccessibilityObject::textMarkerRangeForRange):
3365         (WebCore::AccessibilityObject::textMarkerForIndex):
3366         (WebCore::AccessibilityObject::indexForTextMarker):
3367         (WebCore::AccessibilityObject::doAXRangeForLine):
3368         (WebCore::AccessibilityObject::doAXRangeForIndex):
3369         (WebCore::AccessibilityObject::doAXStringForRange):
3370         (WebCore::AccessibilityObject::doAXBoundsForRange):
3371         
3372         Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
3373         (WebCore::AccessibilityObject::ariaRoleAttribute):
3374         
3375         Added several new functions. Most of them existed before but were static, or have been added to reduce the dependency on RenderTextControl for a lot of the text functionality.
3376         * page/AccessibilityObject.h:
3377
3378         Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
3379         * page/mac/AccessibilityObjectWrapper.mm:
3380         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
3381         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
3382
3383 2008-04-29  Timothy Hatcher  <timothy@apple.com>
3384
3385         Make the exceptions that the InspectorController catches log the
3386         original file and line number, if present on the exception object.
3387
3388         Reviewed by Adam Roben.
3389
3390         * page/InspectorController.cpp:
3391         (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
3392         (WebCore::InspectorController::~InspectorController): Ditto.
3393         (WebCore::InspectorController::scriptObjectReady): Ditto.
3394         (WebCore::InspectorController::addScriptResource): Ditto.
3395         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
3396         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
3397         (WebCore::InspectorController::updateScriptResource): Ditto.
3398         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
3399         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
3400         (WebCore::InspectorController::handleException): Take a context. Pull the line
3401         and sourceURL properties off the exception if it is an object.
3402         * page/InspectorController.h: Change handleException to take a context.
3403
3404 2008-04-29  Timothy Hatcher  <timothy@apple.com>
3405
3406         Fixes a regression where the Page's debugger would not be reattached
3407         when a new JSDOMWindow is created.
3408
3409         Reviewed by Sam Weinig.
3410
3411         * bindings/js/kjs_proxy.cpp:
3412         (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
3413         * history/CachedPage.cpp:
3414         (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
3415         contain a window, reattach the debugger to the new JSDOMWindow by calling
3416         proxy->attachDebugger. Also restore the setPageGroupIdentifier.
3417
3418 2008-04-29  Anatoli Papirovski  <apapirovski@mac.com>
3419
3420         Reviewed by Darin Adler.
3421
3422         Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
3423         Fixed RGB and RGBA parsing to ignore the declaration when the value is not
3424         "either three integer values or three percentage values."
3425
3426         * css/CSSParser.cpp:
3427         (WebCore::CSSParser::parseColorParameters):
3428
3429 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3430
3431         Reviewed by Simon.
3432
3433         Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
3434
3435         Ben found this crash in the demo browser.
3436
3437         In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
3438
3439         case PolicyDownload:
3440         frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
3441         receivedError(interruptionForPolicyChangeError());
3442
3443         We are in a policy check, the download() call will call setHtml, which will start loading
3444         the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
3445         which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
3446         will use the m_frame->loader() but it is gone. Do not call into receivedError and
3447         interruptionForPolicyChangeError if we are gone anyway...
3448
3449         * loader/MainResourceLoader.cpp:
3450         (WebCore::MainResourceLoader::continueAfterContentPolicy):
3451
3452 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3453
3454         Reviewed by Simon.
3455
3456         Rely on auto-boxing of C++ for the QCursor c'tor
3457
3458         * platform/qt/CursorQt.cpp:
3459
3460 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3461
3462         Reviewed by Simon.
3463
3464         Add the remaining cursors that defaulted to PointerCursor
3465
3466         * Resources/WebKitResources.qrc:
3467         * platform/qt/CursorQt.cpp:
3468         (WebCore::verticalTextCursor):
3469         (WebCore::cellCursor):
3470         (WebCore::contextMenuCursor):
3471         (WebCore::copyCursor):
3472         (WebCore::progressCursor):
3473         (WebCore::aliasCursor):
3474
3475 2008-04-29  Alice Liu  <alice.liu@apple.com>
3476
3477         Reviewed by Beth Dakin.
3478
3479         Comply with HTML5 spec about parsing tabindex property according to
3480         integer parsing rules
3481
3482         Test: fast/parser/tabindex-parsing.html
3483
3484         * html/HTMLElement.cpp:
3485         (WebCore::HTMLElement::parseMappedAttribute):
3486
3487 2008-04-29  Tor Arne Vestbø  <tavestbo@trolltech.com>
3488
3489         Reviewed by Simon.
3490
3491         Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
3492
3493         https://bugs.webkit.org/show_bug.cgi?id=18482
3494
3495         We need to repaint scrollbars after a geometry change, and also make sure
3496         the computed clipping rect for the corners between scrollbars is propagated
3497         to the chrome client without beeing intersected by the visible content rect
3498         of the frame.
3499
3500         * platform/ScrollView.h:
3501         * platform/qt/ScrollViewQt.cpp:
3502         (WebCore::ScrollView::geometryChanged):
3503         (WebCore::ScrollView::suppressScrollbars):
3504         (WebCore::ScrollView::invalidateScrollbars):
3505
3506 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3507
3508         Reviewed by Simon.
3509
3510         Calling QWebView::setCursor will override the WebCore Cursor.
3511         Calling QWebView::setCursor will override the WebCore Cursor using
3512         QWidget::unsetCursor will revert to the WebCore Cursor.
3513
3514         For detecting the unset we have to compare the shape of the
3515         cursor to the default arrow. Qt::WA_SetCursor can not be used
3516         as it is set unconditionally but conditionally removed.
3517
3518         Calling QWidget::setCursor will immediately send the CursorChange
3519         event. We listen to this event to decide if we currently use a
3520         WebCore cursor, got a cursor from outside, or revert to the default.
3521
3522         This should be race free and work reliable, the manual test for this
3523         is WebCore/manual-tests/cursor.html
3524
3525         * platform/qt/WidgetQt.cpp:
3526         (WebCore::Widget::setCursor):
3527
3528 2008-04-28  Dan Bernstein  <mitz@apple.com>
3529
3530         Reviewed by Maciej Stachowiak.
3531
3532         - fix https://bugs.webkit.org/show_bug.cgi?id=18795
3533           REGRESSION (r32660): Text heavier with text-shadow
3534
3535         * rendering/InlineTextBox.cpp:
3536         (WebCore::paintTextWithShadows): The loop was doing one extra pass
3537         without shadow even in cases where the last pass with a shadow was
3538         painting the text at the right position (rather than outside the clip).
3539         Fixed that. The only case where a separate pass without shadow is needed
3540         is when there is text-stroke, since in that case all shadow passes
3541         paint the text outside the clip.
3542
3543 2008-04-28  Brady Eidson <beidson@apple.com>
3544
3545         Reviewed by Sam Weinig
3546
3547         Add Storage.clear(), per updates to HTML5
3548
3549         Tests: storage/domstorage/localstorage/clear.html
3550                storage/domstorage/sessionstorage/clear.html
3551
3552         * storage/LocalStorageArea.cpp:
3553         (WebCore::LocalStorageArea::areaCleared):
3554         * storage/LocalStorageArea.h:
3555
3556         * storage/SessionStorageArea.cpp:
3557         (WebCore::SessionStorageArea::areaCleared):
3558         * storage/SessionStorageArea.h:
3559
3560         * storage/Storage.cpp:
3561         (WebCore::Storage::clear):
3562         * storage/Storage.h:
3563         * storage/Storage.idl:
3564
3565         * storage/StorageArea.cpp:
3566         (WebCore::StorageArea::internalClear):
3567         * storage/StorageArea.h:
3568         (WebCore::StorageArea::clear):
3569
3570 2008-04-28  Adele Peterson  <adele@apple.com>
3571
3572         Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
3573
3574         WebCore part of fix for <rdar://problem/3709505>
3575         Safari should have a way to upload bundles from the file upload control (as zip)
3576
3577         * WebCore.base.exp: Added symbols.
3578
3579         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded.
3580           It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
3581
3582         * loader/FrameLoader.cpp:
3583         (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts.
3584         (WebCore::FrameLoader::loadItem): ditto.
3585         * loader/ResourceLoader.cpp:
3586         (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to.
3587         (WebCore::ResourceLoader::didCancel): ditto.
3588         (WebCore::ResourceLoader::didFail): ditto.
3589
3590         * platform/network/FormData.cpp:
3591         (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed.
3592         (WebCore::FormData::~FormData): Added.  Assert that there are no files that need to be removed, but if there are, release builds will still remove them here.
3593         (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement.
3594         (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to
3595          create any compressed files so the FormDataElements can store the paths.
3596         (WebCore::FormData::removeGeneratedFilesIfNeeded): Added.  Removes generated files and their directories (if empty).
3597         * platform/network/FormData.h:
3598         (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated,
3599          and a string to hold the path of the generated file.
3600
3601         * platform/network/mac/FormDataStreamMac.mm:
3602         (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file.
3603         (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
3604
3605         * platform/FileSystem.h: Added directoryName.
3606         * platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
3607         * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
3608         * platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
3609         * platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
3610         * platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.
3611
3612         Added new ChromeClient methods to give the application control over the file compression for uploading.
3613         * page/Chrome.cpp:
3614         (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
3615         (WebCore::ChromeClient::generateReplacementFile): ditto.
3616         * page/ChromeClient.h:
3617
3618 2008-04-28  Anders Carlsson  <andersca@apple.com>
3619
3620         Reviewed by Sam, Mark, Adele and Darin.
3621
3622         Add a (currently not called) method for opening the application cache database.
3623         
3624         * WebCore.base.exp:
3625         * loader/appcache/ApplicationCacheStorage.cpp:
3626         (WebCore::ApplicationCacheStorage::setCacheDirectory):
3627         (WebCore::ApplicationCacheStorage::openDatabase):
3628         * loader/appcache/ApplicationCacheStorage.h:
3629
3630 2008-04-28  Alice Liu  <alice.liu@apple.com>
3631
3632         Reviewed by Darin.
3633
3634         Fix <rdar://problem/4911289> Add tabindex property to all children 
3635         of HTMLElement (7138)
3636         http://bugs.webkit.org/show_bug.cgi?id=7138
3637
3638         Test: fast/events/tabindex-focus-blur-all.html
3639
3640         * WebCore.xcodeproj/project.pbxproj:
3641         * bindings/objc/DOMPrivate.h:
3642         -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
3643          longer needed
3644
3645         * bindings/objc/PublicDOMInterfaces.h:
3646         -Moving focus, blur, tabindex to HTMLElement from its descendants.
3647
3648         * dom/Node.cpp:
3649         (WebCore::Node::Node):
3650         (WebCore::Node::isFocusable):
3651         (WebCore::Node::isKeyboardFocusable):
3652         -The concept of being focusable now needs to account for tabindex
3653         attribute.
3654
3655         * dom/Node.h:
3656         -Need to use a bit to keep track of whether tabindex was explicitly set
3657          to 0 or was just initialized to 0.
3658         (WebCore::Node::tabIndex):
3659         -Make this virtual so that Anchors and GenericFormElements can determine
3660          tabindex without accounting for focusability
3661         (WebCore::Node::setTabIndexExplicitly):
3662         -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide
3663          behind and/or be confused for HTMLElement::setTabIndex
3664
3665         * html/HTMLAnchorElement.cpp:
3666         * html/HTMLAnchorElement.h:
3667         (WebCore::HTMLAnchorElement::tabIndex):
3668         * html/HTMLGenericFormElement.cpp:
3669         * html/HTMLGenericFormElement.h:
3670         (WebCore::HTMLGenericFormElement::tabIndex):
3671         -Anchors and form elements are normally focusable, and need to avert the
3672          check for focusability in HTMLElement::tabIndex
3673          because tabIndex could be queried before a first layout happens.
3674
3675         * html/HTMLElement.cpp:
3676         (WebCore::HTMLElement::parseMappedAttribute):
3677         -Function Node::setTabIndex changed to Node::setTabIndexExplicitly
3678         (WebCore::HTMLElement::isFocusable):
3679         -The concept of being focusable now needs to account for tabindex
3680          attribute.
3681         (WebCore::HTMLElement::tabIndex):
3682         -HTML5 specifies that querying tabindex for elements that aren't
3683          focusable shall return -1
3684         (WebCore::HTMLElement::setTabIndex):
3685         -New default implementation
3686         * html/HTMLElement.h:
3687
3688         * html/HTMLLegendElement.cpp:
3689         (WebCore::HTMLLegendElement::focus):
3690         -Now with HTML5's enhanced specification of tabindex, legend elements
3691          themselves shall focus (if they should), and not the first form element 
3692          they encapsulate.  This matches Firefox behavior.  HTMLLabelElements
3693          still forward focus to the encapsulated element.  This also matches
3694          other browsers. 
3695
3696         * html/HTMLAreaElement.cpp:
3697         (WebCore::HTMLAreaElement::isFocusable):
3698         * html/HTMLAreaElement.h:
3699         -HTMLAreaElement isn't subject to the same focusability requirements as
3700          its parent, HTMLAnchorElement. Default HTMLElement implementation is
3701          desired.  
3702
3703         * html/HTMLFieldSetElement.cpp:
3704         (WebCore::HTMLFieldSetElement::isFocusable):
3705         * html/HTMLLegendElement.cpp:
3706         (WebCore::HTMLLegendElement::isFocusable):
3707         * html/HTMLOptGroupElement.cpp:
3708         (WebCore::HTMLOptGroupElement::isFocusable):
3709         * html/HTMLOptionElement.cpp:
3710         (WebCore::HTMLOptionElement::isFocusable):
3711         -These elements aren't subject to the same focusability requirements as
3712          their parent, HTMLGenericFormElement. Default HTMLElement 
3713          implementation is desired.  
3714
3715         * html/HTMLAnchorElement.idl:
3716         * html/HTMLAreaElement.idl:
3717         * html/HTMLButtonElement.idl:
3718         * html/HTMLElement.idl:
3719         * html/HTMLInputElement.idl:
3720         * html/HTMLLabelElement.idl:
3721         * html/HTMLLegendElement.idl:
3722         * html/HTMLObjectElement.idl:
3723         * html/HTMLSelectElement.idl:
3724         * html/HTMLTextAreaElement.idl:
3725         -Moving tabindex attribute, focus and blur methods from descendants of
3726          HTMLElement to HTMLElement
3727
3728 2008-04-28  Dan Bernstein  <mitz@apple.com>
3729
3730         Reviewed by Dave Hyatt.
3731
3732         - support multiple box- and text-shadows
3733
3734         Tests: fast/css/shadow-multiple.html
3735                fast/repaint/shadow-multiple-horizontal.html
3736                fast/repaint/shadow-multiple-strict-horizontal.html
3737                fast/repaint/shadow-multiple-strict-vertical.html
3738                fast/repaint/shadow-multiple-vertical.html
3739
3740         * css/CSSComputedStyleDeclaration.cpp:
3741         (WebCore::valueForShadow): Changed to account for reversing the order
3742         of the shadow values in the ShadowData list.
3743
3744         * css/CSSValueList.cpp:
3745         (WebCore::CSSValueList::prepend): Added.
3746         * css/CSSValueList.h:
3747
3748         * rendering/InlineFlowBox.cpp:
3749         (WebCore::InlineFlowBox::placeBoxesHorizontally): Changed to account for
3750         all shadows in overflow calculation.
3751         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
3752         (WebCore::InlineFlowBox::paint): Changed to account for all shadows
3753         when testing for intersection with the damage rect.
3754         (WebCore::InlineFlowBox::paintTextDecorations): Changed to paint all
3755         shadows.
3756
3757         * rendering/InlineTextBox.cpp:
3758         (WebCore::paintTextWithShadows): Factored out from paint() and changed
3759         to paint all shadows.
3760         (WebCore::InlineTextBox::paint): Moved the text painting code out to
3761         paintTextWithShadows(). Changed to not paint shadows for markers and
3762         composition underlines and in "force black text" mode.
3763         (WebCore::InlineTextBox::paintSelection):
3764         (WebCore::InlineTextBox::paintCompositionBackground):
3765         (WebCore::InlineTextBox::paintDecoration): Changed to paint all shadows.
3766         * rendering/InlineTextBox.h: Changed some public methods to private
3767         or protected.
3768
3769         * rendering/RenderBlock.cpp:
3770         (WebCore::RenderBlock::overflowHeight): Changed to account for all
3771         shadows.
3772         (WebCore::RenderBlock::overflowWidth): Ditto.
3773         (WebCore::RenderBlock::overflowLeft): Ditto.
3774         (WebCore::RenderBlock::overflowTop): Ditto.
3775         (WebCore::RenderBlock::overflowRect): Ditto.
3776         (WebCore::RenderBlock::layoutBlock): Ditto.
3777
3778         * rendering/RenderFlexibleBox.cpp:
3779         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
3780
3781         * rendering/RenderLayer.cpp:
3782         (WebCore::RenderLayer::calculateRects): Ditto.
3783
3784         * rendering/RenderObject.cpp:
3785         (WebCore::RenderObject::paintBoxShadow): Changed to paint all shadows.
3786         Changed to avoid clipping out the box if it has a fully opaque
3787         background.
3788         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Changed to account
3789         for all shadows.
3790         (WebCore::RenderObject::selectionForegroundColor): Cleaned up.
3791         (WebCore::RenderObject::adjustRectForOutlineAndShadow): Changed to
3792         account for all shadows.
3793
3794         * rendering/RenderReplaced.cpp:
3795         (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Ditto.
3796
3797         * rendering/RenderStyle.cpp:
3798         (WebCore::RenderStyle::setTextShadow): Changed to prepend when adding
3799         so that the stacking order of shadows when painting will be "first o
3800         top".
3801         (WebCore::RenderStyle::setBoxShadow): Ditto.
3802
3803         * rendering/RenderTable.cpp:
3804         (WebCore::RenderTable::layout): Changed to account for all shadows.
3805
3806 2008-04-28  Adam Roben  <aroben@apple.com>
3807
3808         Fix some more Windows build errors in COMPtr
3809
3810         * platform/win/COMPtr.h:
3811         (WTF::): Define DefaultHash<COMPtr<P> > by using PtrHash<COMPtr<P> >,
3812         which is just a copy of PtrHash<RefPtr<P> >.
3813
3814 2008-04-28  Adam Roben  <aroben@apple.com>
3815
3816         Fix some Windows build errors in COMPtr
3817
3818         * platform/win/COMPtr.h: Explicitly name the WTF namespace when using
3819         HashTableDeletedValueType.
3820
3821 2008-04-28  Adam Roben  <aroben@apple.com>
3822
3823         Fix some Windows build errors in FontPlatfomrData
3824
3825         * platform/graphics/win/FontPlatformData.h: Removed the Deleted
3826         constructor and replaced it with a HashTableDeletedValueType
3827         constructor. Also added isHashTableDeletedValue() and
3828         hashTableDeletedFontValue().
3829
3830 2008-04-28  David Hyatt  <hyatt@apple.com>
3831
3832         https://bugs.webkit.org/show_bug.cgi?id=18780
3833
3834         Canvas can't draw itself into its own buffer.  Make sure the dirtying call comes after the image()
3835         has been accessed.  Technically willDraw should be renamed to didDraw and all calls should be moved
3836         to after draws have occurred (since if the draw op itself wants to reference the image it shouldn't get
3837         a dirty copy either), but I'll take that up with olliej when he wakes up. :)
3838
3839         Reviewed by Dan Bernstein
3840
3841         Added fast/canvas/canvasDrawsIntoSelf.html
3842
3843         * html/CanvasRenderingContext2D.cpp:
3844         (WebCore::CanvasRenderingContext2D::drawImage):
3845
3846 2008-04-28  Alexey Proskuryakov  <ap@webkit.org>
3847
3848         Reviewed by Geoff Garen.
3849
3850         <rdar://problem/5825192> Replace use of Gestalt with BSD sysctl
3851
3852         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3853         (WebCore::MediaPlayerPrivate::isAvailable): There is no need to check QuickTime version post-Tiger,
3854         as it will never be below 7.3 again. This change may make library loading happen earlier in
3855         some cases, hopefully, that's not a big deal.
3856
3857 2008-04-25  Alexey Proskuryakov  <ap@webkit.org>
3858
3859         Reviewed by Darin.
3860
3861         Fix run-webkit-tests --threading
3862         and provisionally fix <https://bugs.webkit.org/show_bug.cgi?id=18661>
3863         Proxy server issue in Sunday's Nightly
3864
3865         Adjusted for JavaScriptCore changes: added a new member to ClassInfo objects, turned
3866         ClassInfo::propHashTable into a function, made getPropertyAttributes() take an ExecState pointer.
3867
3868         * bindings/js/JSAudioConstructor.cpp:
3869         (WebCore::):
3870         * bindings/js/JSDOMWindowBase.cpp:
3871         (WebCore::):
3872         * bindings/js/JSDOMWindowCustom.cpp:
3873         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
3874         * bindings/js/JSDOMWindowWrapper.cpp:
3875         (WebCore::):
3876         (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
3877         * bindings/js/JSDOMWindowWrapper.h:
3878         * bindings/js/JSEventTargetBase.h:
3879         (WebCore::JSEventTargetPrototype::classInfo):
3880         * bindings/js/JSHTMLInputElementBase.cpp:
3881         (WebCore::):
3882         * bindings/js/JSHTMLOptionElementConstructor.cpp:
3883         (WebCore::):
3884         * bindings/js/JSHistoryCustom.cpp:
3885         (WebCore::JSHistory::customGetOwnPropertySlot):
3886         * bindings/js/JSImageConstructor.cpp:
3887         (WebCore::):
3888         * bindings/js/JSInspectedObjectWrapper.cpp:
3889         (WebCore::):
3890         * bindings/js/JSInspectorCallbackWrapper.cpp:
3891         (WebCore::):
3892         * bindings/js/JSLocationCustom.cpp:
3893         (WebCore::JSLocation::customGetOwnPropertySlot):
3894         (WebCore::JSLocation::customPut):
3895         * bindings/js/JSNamedNodesCollection.cpp:
3896         (WebCore::):
3897         * bindings/js/JSQuarantinedObjectWrapper.cpp:
3898         (WebCore::):
3899         * bindings/js/JSRGBColor.cpp:
3900         (WebCore::):
3901         * bindings/js/JSStorageCustom.cpp:
3902         (WebCore::JSStorage::customPut):
3903         * bindings/js/JSXMLHttpRequestConstructor.cpp:
3904         (WebCore::):
3905         * bindings/js/JSXSLTProcessor.cpp:
3906         (WebCore::):
3907         * bindings/scripts/CodeGeneratorJS.pm:
3908         * bridge/objc/objc_runtime.mm:
3909         * bridge/runtime_array.cpp:
3910         * bridge/runtime_object.cpp:
3911
3912 2008-04-28  David Hyatt  <hyatt@apple.com>
3913
3914         https://bugs.webkit.org/show_bug.cgi?id=18779
3915
3916         The arguments in drawImage were reversed when I switched away from the image buffer method.
3917
3918         Reviewed by Tim Hatcher
3919
3920         Added fast/canvas/drawImage.html
3921
3922         * html/CanvasRenderingContext2D.cpp:
3923         (WebCore::CanvasRenderingContext2D::drawImage):
3924
3925 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
3926
3927         Reviewed by Simon.
3928
3929         Fix the crash on http://www.orad.pl. We called end too early.
3930
3931         1. we need a ::write that will pause the parser due a pending
3932         script
3933         2. we need a second write to queue data (tricky part)
3934         3. we need to get a finish call (document loaded)
3935         4. we resume the script and parse, schedule loading of a new script
3936         and have called end
3937         5. we resume the new script and we get a crash
3938
3939         This bug is hard to trigger, e.g. if the web server is only allowing
3940         one connection per client/IP. This is why we need to sleep in the scripts. We
3941         want to make sure that the page is first fully received before serving the
3942         scripts.
3943
3944         Test: http/tests/misc/xmltokenizer-do-not-crash.pl
3945
3946         * dom/XMLTokenizer.cpp:
3947
3948 2008-04-28  Ariya Hidayat  <ahidayat@trolltech.com>
3949
3950         Reviewed by Simon.
3951
3952         Fix rounded corner on combo box with CSS border
3953
3954         * platform/qt/RenderThemeQt.cpp:
3955         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
3956
3957 2008-04-28  Ariya Hidayat  <ahidayat@trolltech.com>
3958
3959         Reviewed by Simon.
3960
3961         Fix CSS border does not show up for combo boxes
3962
3963         Do not clear the border when painting the combo box for 'select' form element
3964
3965         * platform/qt/RenderThemeQt.cpp:
3966
3967 2008-04-28  Olivier Goffart  <ogoffart@trolltech.com>
3968
3969         Reviewed by Simon.
3970
3971         Avoid comparing to 0 in qFuzzyCompare for increased
3972         numeric stability.
3973
3974         * platform/graphics/qt/PathQt.cpp:
3975         (WebCore::Path::addArc):
3976
3977 2008-04-28  Benjamin Meyer  <bmeyer@trolltech.com>
3978
3979         Reviewed by Simon.
3980
3981         Fixes: Pages returning 404 with content are not displayed.
3982
3983         A web page that returns 404 can still have content.
3984
3985         * platform/network/qt/QNetworkReplyHandler.cpp:
3986         (WebCore::QNetworkReplyHandler::finish):
3987
3988 2008-04-28  Paul Olav Tvete  <paul@trolltech.com>
3989
3990         Reviewed by Simon.
3991
3992         Fix compiler warning; Avoid the implicity QString(const char *)
3993         constructor
3994
3995         * platform/qt/RenderThemeQt.cpp:
3996         (WebCore::RenderThemeQt::fallbackStyle):
3997
3998 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
3999
4000         Reviewed by Simon.
4001
4002         Prevent middle-click from triggering open URL from clipboard when the event has already been accepted.
4003
4004         * platform/qt/PlatformScrollBarQt.cpp:
4005         (WebCore::PlatformScrollbar::handleMousePressEvent):
4006
4007 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4008
4009         Reviewed by Simon.
4010
4011         Fix scrollbar behavior in QtWebKit to match QScrollBar.
4012
4013         Right click context menu is now supported, along with
4014         middle click to center slider thumb over mouse cursor.
4015
4016         * platform/qt/PlatformScrollBar.h:
4017         * platform/qt/PlatformScrollBarQt.cpp:
4018         (tr):
4019         (WebCore::PlatformScrollbar::pixelPosToRangeValue):
4020         (WebCore::PlatformScrollbar::handleMousePressEvent):
4021         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
4022         (WebCore::PlatformScrollbar::handleContextMenuEvent):
4023
4024 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4025
4026         Reviewed by Simon.
4027
4028         Implemented channel-based logging for QtWebKit.
4029
4030         Comma-separated log channels are read from the QT_WEBKIT_LOG environment variable.
4031         Warnings for notImplemented() is still output by default, but can be disabled
4032         by setting DISABLE_NI_WARNINGS=1.
4033
4034         * WebCore.pro:
4035         * platform/NotImplemented.h:
4036         * platform/qt/LoggingQt.cpp: Added.
4037         (WebCore::getChannelFromName):
4038         (WebCore::InitializeLoggingChannelsIfNecessary):
4039
4040 2008-04-28  Simon Hausmann  <shausman@trolltech.com>
4041
4042         Reviewed by Holger.
4043
4044         Fixes: Popups/Context menu in WebKit appearing at the wrong location when embedded in the graphics view or using multiple screens
4045
4046         Give the popups the right parent widget and the right coordinates relative within the parent.
4047
4048         * platform/qt/PopupMenuQt.cpp:
4049         (WebCore::PopupMenu::show):
4050
4051 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4052
4053         Reviewed by Simon.
4054
4055         Fixes: Tabbing to a checkbox/button doesn't work on Win/X11
4056
4057         Respect platform settings for tabbing to all controls.
4058
4059         * page/qt/EventHandlerQt.cpp:
4060
4061 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4062
4063         Reviewed by Simon.
4064
4065         First part of the fix for tabbing to a checkbox/button doesn't work on Win/X11
4066
4067         Draw controls instead of pimitive elements, to get focus rects for free.
4068
4069         * platform/qt/RenderThemeQt.cpp:
4070         (WebCore::RenderThemeQt::paintButton):
4071
4072 2008-04-28  Lincoln Ramsay  <lincoln.ramsay@trolltech.com>
4073
4074         Reviewed by Simon.
4075
4076         Compile when QT_NO_CLIPBOARD is defined.
4077
4078         * platform/qt/ClipboardQt.cpp:
4079         (WebCore::ClipboardQt::ClipboardQt):
4080         (WebCore::ClipboardQt::clearData):
4081         (WebCore::ClipboardQt::clearAllData):
4082         (WebCore::ClipboardQt::setData):
4083         (WebCore::ClipboardQt::declareAndWriteDragImage):
4084         (WebCore::ClipboardQt::writeURL):
4085         (WebCore::ClipboardQt::writeRange):
4086         * platform/qt/PasteboardQt.cpp:
4087         (WebCore::Pasteboard::writeSelection):
4088         (WebCore::Pasteboard::plainText):
4089         (WebCore::Pasteboard::documentFragment):
4090         (WebCore::Pasteboard::writeURL):
4091         (WebCore::Pasteboard::writeImage):
4092
4093 2008-04-28  Ariya Hidayat  <ariya.hidayat@trolltech.com>
4094
4095         Reviewed by Simon.
4096
4097         Draw the arrow button on the styled combo box using the fallback ("Windows") style
4098
4099         * platform/qt/RenderThemeQt.cpp:
4100         (WebCore::RenderThemeQt::RenderThemeQt):
4101         (WebCore::RenderThemeQt::~RenderThemeQt):
4102         (WebCore::RenderThemeQt::fallbackStyle):
4103         (WebCore::RenderThemeQt::paintMenuListButton):
4104         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
4105         * platform/qt/RenderThemeQt.h:
4106
4107 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
4108
4109         Reviewed by Holger.
4110
4111         Fix positioning of native widgets (plugins).
4112
4113         Correctly convert the coordinates of the Widget in Widget::setFrameGeometry()
4114         to be relative to the containing toplevel QWidget using convertToContainingWindow().
4115
4116         Note: convertToContainingWindow() takes child coordinates.
4117
4118         * platform/qt/WidgetQt.cpp:
4119         (WebCore::Widget::frameGeometry):
4120         (WebCore::Widget::setFrameGeometry):
4121
4122 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
4123
4124         Reviewed by Simon.
4125
4126         plugins: fix scrolling issues
4127
4128         When scrolling you can see artefacts that remain on the screen, they
4129         seem to originate from the backingstore handling. I'm not entirely sure
4130         where they come from, my workarounds involved a
4131         data->m_widget->parentWidget()->update() call in Widget::geometryChanged or
4132         handling widgets with a native QWidget embedded like web pages with a
4133         static background. This needs more investigations, I think the ScrollView
4134         change is cleaner than the brute force in Widget::geometryChanged
4135
4136         Focus handling seems to be broken as well and needs further work, we don't
4137         clip plugin QWidgets and they can draw out of their bounds, e.g. on the ScrollBar,
4138         the z-order is likely not honored as well.
4139
4140         * platform/ScrollView.h:
4141         * platform/qt/ScrollViewQt.cpp:
4142         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
4143         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
4144         (WebCore::ScrollView::addChild):
4145         (WebCore::ScrollView::removeChild):
4146         (WebCore::ScrollView::incrementNativeWidgetCount):
4147         (WebCore::ScrollView::decrementNativeWidgetCount):
4148         (WebCore::ScrollView::hasNativeWidgets):
4149
4150 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
4151
4152         Reviewed by Simon.
4153
4154         Add manual test to test placement of QWidgets in iframe's
4155
4156         * manual-tests/qt/main.html: Added.
4157         * manual-tests/qt/qtplugin.html: Added.
4158
4159 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
4160
4161         Fix the build with ENABLE_DATABASE=0 (Qt/Windows) by including
4162         SecurityOrigin.h. It's used in the file and also implicitly included
4163         through the database headers.
4164
4165         * page/DOMWindow.cpp:
4166
4167 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
4168
4169         Prospective Wx build fix.
4170
4171         * platform/graphics/wx/FontPlatformData.h:
4172
4173 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
4174
4175         Reviewed by Alp.
4176
4177         Gtk build fix, similar to the changes done in r32609.
4178
4179         * platform/graphics/gtk/FontPlatformData.h:
4180         (WebCore::FontPlatformData::FontPlatformData):
4181         (WebCore::FontPlatformData::isHashTableDeletedValue):
4182         (WebCore::FontPlatformData::hashTableDeletedFontValue):
4183
4184 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
4185
4186         Prospective build fix. After r32609 it seems the workaround here
4187         is not needed anymore. With gcc 4.2/4.3 before 32609 the workaround
4188         is needed for compilation, after 32609 compilation only succeeds
4189         without the workaround.
4190
4191         * plugins/PluginPackage.h: Removed workaround of extra StorageTraits
4192         specification for the custom hash function of PluginPackage used in
4193         PluginSet.
4194
4195 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4196
4197         Reviewed by Simon.
4198
4199         https://bugs.webkit.org/show_bug.cgi?id=18713
4200
4201         Fix scrollbar painting issues in QtWebKit.
4202
4203         Hovering and click-draging outside of the scrollbar would
4204         produce unexpected and inconcistent results. We also didn't
4205         pass on leave-events to the underlying WebKit code, which
4206         was nessecary to implement the paint fix.
4207
4208         * platform/qt/PlatformScrollBarQt.cpp:
4209         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
4210         (WebCore::PlatformScrollbar::handleMouseOutEvent):
4211         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
4212
4213 2008-04-27  Oliver Hunt  <oliver@apple.com>
4214
4215         Reviewed by Maciej.
4216
4217         Bug 17173: HTML5 Canvas API requires us to ignore certain operations
4218         <https://bugs.webkit.org/show_bug.cgi?id=17173>
4219
4220         This fixes the semantics of a number of Canvas functions to match
4221         the new HTML5 non-throwing semantics.
4222
4223         Test: fast/canvas/canvas-path-with-inf-nan-dimensions.html
4224
4225         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
4226         (WebCore::JSCanvasRenderingContext2D::strokeRect):
4227         * html/CanvasRenderingContext2D.cpp:
4228         (WebCore::CanvasRenderingContext2D::moveTo):
4229         (WebCore::CanvasRenderingContext2D::lineTo):
4230         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
4231         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
4232         (WebCore::CanvasRenderingContext2D::arcTo):
4233         (WebCore::CanvasRenderingContext2D::arc):
4234         (WebCore::validateRectForCanvas):
4235         (WebCore::CanvasRenderingContext2D::rect):
4236         (WebCore::CanvasRenderingContext2D::clearRect):
4237         (WebCore::CanvasRenderingContext2D::fillRect):
4238         (WebCore::CanvasRenderingContext2D::strokeRect):
4239         * html/CanvasRenderingContext2D.h:
4240         * html/CanvasRenderingContext2D.idl:
4241
4242 2008-04-27  Rob Buis  <buis@kde.org>
4243
4244         Reviewed by Adele.
4245
4246         https://bugs.webkit.org/show_bug.cgi?id=18652
4247         onchange events don't seem to fire for input[type=range] controls.
4248
4249         Fire changeEvent when dragging the slider.
4250
4251         Test: fast/forms/slider-onchange-event.html
4252
4253         * rendering/RenderSlider.cpp: