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