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