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