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