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