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