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