1 2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>
5 Draw scrollview corners (between scrollbars) using the Qt style.
7 https://bugs.webkit.org/show_bug.cgi?id=18894
9 * platform/qt/ScrollViewQt.cpp:
10 (WebCore::drawScrollbarCorner):
11 (WebCore::ScrollView::paint):
13 2008-05-07 Simon Hausmann <hausmann@webkit.org>
15 Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
20 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
22 Rubber-stamped by Holger.
24 Fix building without storage support.
27 (WebCore::PageGroup::closeLocalStorage): proper #if
29 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
31 Rubber-stamped by Oliver Hunt.
33 Fix building without accessibility.
35 * page/AXObjectCache.cpp:
36 (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
38 2008-05-06 Dan Bernstein <mitz@apple.com>
40 Reviewed by Darin Adler.
42 - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
44 Test: fast/block/float/float-on-zero-height-line.html
46 * rendering/RenderBlock.cpp:
47 (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
49 2008-05-06 Alice Liu <alice.liu@apple.com>
51 Reviewed by Adele Peterson and John Sullivan.
53 changes needed to build on Windows after r32911 and r32927
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:]):
72 2008-05-06 Brady Eidson <beidson@apple.com>
74 Reviewed by Sam Weinig
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.
80 * storage/LocalStorage.cpp:
81 (WebCore::LocalStorage::storageArea):
82 (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
84 * storage/LocalStorage.h: Change the map to be of LocalStorageAreas instead of StorageAreas
86 * storage/LocalStorageArea.cpp:
87 (WebCore::LocalStorageArea::LocalStorageArea):
88 (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
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:
96 2008-05-06 Kevin Ollivier <kevino@theolliviers.com>
98 wx build fix. Adding files added in r32925 to the bakefiles.
100 * WebCoreSources.bkl:
102 2008-05-06 Alp Toker <alp@nuanti.com>
104 GTK+ build fix. Add empty stub to keep non-accessible ports building.
106 * page/AXObjectCache.h:
107 (WebCore::AXObjectCache::selectedChildrenChanged):
109 2008-05-06 Beth Dakin <bdakin@apple.com>
113 Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and
114 'aria-describedby' attributes.
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:
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
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
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.
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
154 2008-05-06 Anders Carlsson <andersca@apple.com>
158 Support reading back app caches from the database.
160 * loader/appcache/ApplicationCache.cpp:
161 (WebCore::ApplicationCache::ApplicationCache):
162 Initialize m_storageID to 0.
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.
169 (WebCore::ApplicationCacheGroup::setNewestCache):
170 Don't store the cache here.
172 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
173 Store it here instead.
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).
179 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
180 Search for the group in the database.
182 (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
183 New method that loads the host hashes from the database.
185 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
186 Search in the database for a cache that contains the resource.
188 (WebCore::ApplicationCacheStorage::loadCache):
189 New method that loads a cache with a given ID.
191 (WebCore::ApplicationCacheStorage::remove):
192 New method that removes a cache.
194 * loader/appcache/ApplicationCacheStorage.h:
197 2008-05-06 Alp Toker <alp@nuanti.com>
199 Partial GTK+ build fix. Add files from r32925 to the build and replace
203 * page/AccessibilityListBoxOption.cpp:
204 (WebCore::AccessibilityListBoxOption::parentObject):
206 2008-05-06 Brady Eidson <beidson@apple.com>
210 Make LocalStorage persistent using a SQLite database.
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.
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.
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.
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.
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
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:
254 2008-05-06 Brady Eidson <beidson@apple.com>
256 Rubberstamped by Mitz Pettel RTL
258 * storage/LocalStorage.cpp:
259 (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
261 2008-05-06 Brady Eidson <beidson@apple.com>
263 Reviewed by Darin, Sam Weinig, and Anders
265 Preparation for upcoming work making LocalStorage persistent.
267 The final step before code that actually does storage and retrieval of LocalStorage items.
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
273 Also, add the scheduling methods that LocalStorageArea will use for importing and syncing
274 it's persistent items.
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:
284 2008-05-06 Chris Fleizach <cfleizach@apple.com>
286 Reviewed by Beth Dakin.
288 rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
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:
353 2008-05-06 Chris Fleizach <cfleizach@apple.com>
355 Reviewed by Beth Dakin.
357 <rdar://problem/5455287> AXWebArea should include AXURL
359 * page/AccessibilityRenderObject.cpp:
360 (WebCore::AccessibilityRenderObject::url):
361 * page/mac/AccessibilityObjectWrapper.mm:
362 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
364 2008-05-06 Alice Liu <alice.liu@apple.com>
366 Rubber-stamped by Beth
368 stab-in-the-dark attempt at fixing non-mac builds.
372 * WebCore.vcproj/WebCore.vcproj:
373 * WebCoreSources.bkl:
375 2008-05-06 Anders Carlsson <andersca@apple.com>
379 Only use the toplevel application cache when loading subframes.
381 * loader/MainResourceLoader.cpp:
382 (WebCore::MainResourceLoader::load):
384 2008-05-06 Adam Barth <abarth-webkit@adambarth.com>
386 Reviewed by Sam Weinig.
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.
392 Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
394 Test: http/tests/security/postMessage/delivery-order.html
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):
406 * page/DOMWindow.idl:
408 2008-05-06 Anders Carlsson <andersca@apple.com>
412 Store cache to the database.
414 * loader/appcache/ApplicationCache.cpp:
415 (WebCore::ApplicationCache::addResource):
416 If the cache has been saved to disk, save the resource as well.
418 * loader/appcache/ApplicationCache.h:
419 (WebCore::ApplicationCache::onlineWhitelist):
420 New method which returns the online whitelist.
422 (WebCore::ApplicationCache::setStorageId):
423 (WebCore::ApplicationCache::storageId):
424 Setter/getter for the application cache storage ID.
426 * loader/appcache/ApplicationCacheGroup.cpp:
427 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
428 Save the cache/group to disk.
430 * loader/appcache/ApplicationCacheGroup.h:
431 (WebCore::ApplicationCacheGroup::setStorageID):
432 (WebCore::ApplicationCacheGroup::storageID):
433 Setter/getter for the application cache group storage ID.
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.
439 * loader/appcache/ApplicationCacheResource.h:
440 (WebCore::ApplicationCacheResource::setStorageID):
441 (WebCore::ApplicationCacheResource::storageID):
442 Setter/getter for the application cache resource storage ID.
444 * loader/appcache/ApplicationCacheStorage.cpp:
445 * loader/appcache/ApplicationCacheStorage.cpp:
446 (WebCore::ApplicationCacheStorage::executeSQLCommand):
447 New method for executing SQL and logging any errors.
449 (WebCore::ApplicationCacheStorage::openDatabase):
452 (WebCore::ApplicationCacheStorage::executeStatement):
453 New method for executing an SQL statement and logging any errors.
455 (WebCore::ApplicationCacheStorage::store):
456 New methods for storing a cache group, cache and cache resource to the store.
458 (WebCore::ApplicationCacheStorage::storeNewestCache):
459 New method which stores the newest cache and updates the newest cache field in the cache group.
461 * loader/appcache/ApplicationCacheStorage.h:
464 * platform/sql/SQLiteStatement.h:
465 (WebCore::SQLiteStatement::query):
466 Getter for the SQL query.
468 2008-05-06 Brady Eidson <beidson@apple.com>
470 Reviewed by Darin Adler
472 Preparation for upcoming work making LocalStorage persistent.
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.
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.
482 This patch accomplished 2 things:
484 1 - Each PageGroup has its own LocalStorage set. Upon its creation its LocalStorageThread is
487 2 - At application shutdown, each thread is synchronously terminated.
489 What happens between steps 1 and 2 will come later.
493 * WebCore.vcproj/WebCore.vcproj:
494 * WebCore.xcodeproj/project.pbxproj:
495 * WebCoreSources.bkl:
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:
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:
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):
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.
538 2008-05-06 Anders Carlsson <andersca@apple.com>
542 Add NPN_PopUpContextMenu.
545 * plugins/npfunctions.h:
547 2008-05-06 Alp Toker <alp@nuanti.com>
549 GTK+ build fix. Add file from r32911 to the build.
553 2008-05-06 Gwenole Beauchesne <gbeauchesne@splitted-desktop.org>
555 Reviewed by Alp Toker.
557 http://bugs.webkit.org/show_bug.cgi?id=18906
558 [GTK] Fix varargs terminator in g_build_filename()
560 * plugins/gtk/PluginDatabaseGtk.cpp:
561 (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
564 2008-05-06 Kevin McCullough <kmccullough@apple.com>
566 - Forgot to update localized Strings from previous checkin.
568 * English.lproj/localizedStrings.js:
570 2008-05-06 Chris Fleizach <cfleizach@apple.com>
572 Reviewed by Beth Dakin
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
578 Initial prep work to support accessibility objects that do not have renderers.
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:
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]):
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:]):
822 2008-05-06 Jonathan Haas <myrdred@gmail.com>
824 Reviewed by Rob Buis.
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
830 * rendering/SVGRootInlineBox.cpp:
831 (WebCore::SVGRootInlineBox::buildTextChunks):
833 2008-05-06 Brady Eidson <beidson@apple.com>
835 Reviewed by Darin Adler
837 Preparation for upcoming work making LocalStorage persistent.
839 When the application terminates, all pending local storage writes need to be
841 This works n combination with platform specific code in WebKit that calls it.
845 * page/PageGroup.cpp:
846 (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
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:
854 2008-05-06 Brady Eidson <beidson@apple.com>
856 Rubberstamped by David Kilzer
858 * WebCore.base.exp: Sort this mess!
860 2008-05-05 Mark Rowe <mrowe@apple.com>
862 Reviewed by Dan Bernstein.
864 Fix 60 crashes seen on the buildbots that were misreported as hangs.
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.
873 2008-05-05 Brady Eidson <beidson@apple.com>
875 Reviewed by Mitz Pettel RTL
877 Preparation for upcoming work making LocalStorage persistent.
879 The other half of the StorageMap::importItem() addition.
881 * storage/StorageArea.cpp:
882 (WebCore::StorageArea::importItem):
883 * storage/StorageArea.h:
885 2008-05-05 Brady Eidson <beidson@apple.com>
887 Reviewed by Mitz Pettel RTL
889 Preparation for upcoming work making LocalStorage persistent.
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
896 * page/DOMWindow.cpp:
897 (WebCore::DOMWindow::localStorage):
899 * page/PageGroup.cpp:
900 (WebCore::PageGroup::addPage):
901 (WebCore::PageGroup::localStorage):
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):
910 2008-05-05 Brady Eidson <beidson@apple.com>
912 Reviewed by Mitz Pettel RTL
914 Preparation for upcoming work making LocalStorage persistent.
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.
920 * storage/StorageMap.cpp:
921 (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
923 * storage/StorageMap.h:
925 2008-05-05 Kevin McCullough <kmccullough@apple.com>
929 -<rdar://problem/5770054> JavaScript profiler (10928)
930 -Begininings of a UI for the Profiler in the WebInspector.
932 * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
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
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.
948 2008-05-05 Brady Eidson <beidson@apple.com>
950 Change by Darin, reviewed by Brady
952 Small efficiency improvement Darin just spotted
954 * storage/StorageMap.cpp:
955 (WebCore::StorageMap::setItem):
957 2008-05-05 Antti Koivisto <antti@apple.com>
961 Fix https://bugs.webkit.org/show_bug.cgi?id=18899
962 Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
965 (WebCore::Loader::Loader):
967 2008-05-05 Brady Eidson <beidson@apple.com>
969 Reviewed by Sam Weinig
971 Fix a bug in StorageMap iterator tracking where the iterator was not successfully
972 invalidated at an appropriate time.
974 * storage/StorageMap.cpp:
975 (WebCore::StorageMap::setItem): ALWAYS invalidate it here
977 2008-05-05 Justin Garcia <justin.garcia@apple.com>
981 <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
983 Disable Range mutation on document modifications in Tiger and Leopard Mail,
984 since they do their own mutation which interferes with ours.
988 (WebCore::Document::nodeChildrenChanged):
989 (WebCore::Document::nodeWillBeRemoved):
990 (WebCore::Document::textInserted):
991 (WebCore::Document::textRemoved):
992 (WebCore::Document::textNodesMerged):
993 (WebCore::Document::textNodeSplit):
995 (WebCore::Settings::Settings):
996 (WebCore::Settings::disableRangeMutationForOldAppleMail):
998 (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
1000 2008-05-05 Sam Weinig <sam@webkit.org>
1002 Reviewed by Tim Hatcher.
1004 Make the Inspector's localizable strings file match the format used by Dashboard widgets.
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:
1012 2008-05-05 Steve Falkenburg <sfalken@apple.com>
1014 Add support for default button appearance.
1015 Add WebCore setting for app chrome mode.
1017 Reviewed by Dave Hyatt.
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):
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:
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:
1043 * rendering/RenderThemeSafari.cpp:
1044 (WebCore::RenderThemeSafari::determineState):
1045 (WebCore::RenderThemeSafari::adjustRepaintRect):
1046 (WebCore::RenderThemeSafari::adjustButtonStyle):
1047 * rendering/RenderThemeWin.cpp:
1048 (WebCore::RenderThemeWin::supportsFocus):
1050 2008-05-05 Alexey Proskuryakov <ap@webkit.org>
1054 https://bugs.webkit.org/show_bug.cgi?id=11947
1055 nbsps should be converted to entities in innerHTML
1057 https://bugs.webkit.org/show_bug.cgi?id=18769
1058 replacing with spaces using regexp creates inconsistent result
1060 Tests: fast/dom/innerHTML-nbsp.html
1061 fast/dom/innerHTML-escaping-attribute.html
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.
1069 2008-05-05 David Hyatt <hyatt@apple.com>
1071 Fix for https://bugs.webkit.org/show_bug.cgi?id=18821. Fix some bugs in both get/PutImageData of <canvas>.
1075 New tests added in fast/canvas/
1077 * platform/graphics/cg/ImageBufferCG.cpp:
1078 (WebCore::ImageBuffer::getImageData):
1079 (WebCore::ImageBuffer::putImageData):
1081 2008-05-05 Dan Bernstein <mitz@apple.com>
1083 Reviewed by Dave Hyatt.
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)
1088 Test: fast/block/basic/adding-near-anonymous-block.html
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.
1096 2008-05-05 Antti Koivisto <antti@apple.com>
1100 Speculative fix for <rdar://problem/5906790>
1101 Crash in Loader::servePendingRequests() due to hash table being modified during iteration
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.
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):
1113 (WebCore::Loader::Host::name):
1115 2008-05-05 Ariya Hidayat <ariya.hidayat@trolltech.com>
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
1126 2008-05-02 Antti Koivisto <antti@apple.com>
1130 Fix <rdar://problem/5840475>
1131 CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
1133 Non-block objects can have transforms so containingBlock() could end up returning null.
1134 RenderObject::container() needs to match.
1136 Test: fast/transforms/container-transform-crash.html
1138 * rendering/RenderObject.cpp:
1139 (WebCore::RenderObject::containingBlock):
1140 (WebCore::RenderObject::container):
1142 2008-05-04 Sam Weinig <sam@webkit.org>
1144 Roll out r32851. It broke tiger builds.
1146 * bindings/objc/DOMUtility.mm:
1147 (KJS::createDOMWrapper):
1148 (WebCore::createDOMWrapper):
1150 2008-05-04 Dan Bernstein <mitz@apple.com>
1152 Reviewed by Sam Weinig.
1154 - fix https://bugs.webkit.org/show_bug.cgi?id=18879
1155 <rdar://problem/5909481> Reproducible crash when removing a gradient
1157 Test: fast/gradients/crash-on-remove.html
1159 * css/CSSImageGeneratorValue.cpp:
1160 (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
1161 (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
1163 (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
1166 2008-05-03 Sam Weinig <sam@webkit.org>
1168 Reviewed by Mark Rowe.
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
1174 * bindings/objc/DOMUtility.mm:
1175 (WebCore::createDOMWrapper):
1177 2008-05-03 Rob Buis <buis@kde.org>
1181 https://bugs.webkit.org/show_bug.cgi?id=18652
1182 onchange events don't seem to fire for input[type=range] controls.
1184 Fire changeEvent when clicking the slider outside the current
1187 * rendering/RenderSlider.cpp:
1188 (WebCore::RenderSlider::setValueForPosition):
1190 2008-05-03 Sam Weinig <sam@webkit.org>
1192 Reviewed by Mark Rowe.
1194 Remove unused enums from JSDOMWindowBase.
1196 * bindings/js/JSDOMWindowBase.h:
1197 (WebCore::JSDOMWindowBase::):
1199 2008-05-03 Sam Weinig <sam@webkit.org>
1203 * WebCore.xcodeproj/project.pbxproj:
1205 2008-05-03 Sam Weinig <sam@webkit.org>
1209 * bindings/js/kjs_events.cpp:
1210 (WebCore::JSAbstractEventListener::handleEvent):
1212 2008-05-03 Sam Weinig <sam@webkit.org>
1214 Rubber-stamped by Geoffrey Garen.
1216 Rename JSDOMWindowWrapper to JSDOMWindowShell.
1218 2008-05-01 Rob Buis <buis@kde.org>
1222 https://bugs.webkit.org/show_bug.cgi?id=18568
1223 background: currentColor fails
1225 Implement currentColor from CSS3 color module.
1227 Tests: fast/css/background-currentcolor.html
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:
1237 2008-05-02 Anders Carlsson <andersca@apple.com>
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.
1247 2008-05-02 Benjamin Otte <otte@gnome.org>
1249 Reviewed by Alp Toker.
1251 http://bugs.webkit.org/show_bug.cgi?id=18856
1252 [GTK] variable initialization missing
1254 Not initializing the m_needsXEmbed variable could have very funny
1255 results. Most often those results would be crashes.
1257 * plugins/PluginView.cpp:
1258 (WebCore::PluginView::PluginView):
1260 2008-05-02 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1264 https://bugs.webkit.org/show_bug.cgi?id=18811
1265 Enable dashboard and offline web apps in autotools
1269 2008-05-02 Anders Carlsson <andersca@apple.com>
1273 Name the event union so it will work in plain C.
1278 2008-05-02 Dan Bernstein <mitz@apple.com>
1280 Reviewed by John Sullivan.
1282 - render text shadows with zero offset, as the shadow can be seen behind
1283 the text if the text is translucent
1285 Test: fast/text/shadow-no-blur.html
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.
1296 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1300 Build the Qt port with SVG Use and As Image support.
1304 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1308 Fixed potential crash on SVG animation (added more checks to the assert).
1310 * svg/SVGUseElement.cpp:
1311 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
1313 2008-05-02 Alexey Proskuryakov <ap@webkit.org>
1315 Rubber-stamped by John Sullivan.
1317 Fix a debug-only crash in layout tests.
1319 * loader/CachedResource.cpp:
1320 (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
1322 2008-05-02 Simon Hausmann <shausman@trolltech.com>
1324 Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
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.
1331 2008-05-02 Simon Hausmann <hausmann@webkit.org>
1333 Fix the Qt build. Add ExecState where necessary.
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):
1356 2008-05-02 Simon Hausmann <shausman@trolltech.com>
1358 Fix the Qt/Win build.
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):
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):
1385 2008-05-02 Alexey Proskuryakov <ap@webkit.org>
1387 Reviewed by Geoffrey Garen.
1389 https://bugs.webkit.org/show_bug.cgi?id=18826
1390 Make JavaScript heap per-thread
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.
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.
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.
1407 * bindings/js/JSAudioConstructor.cpp:
1408 (WebCore::JSAudioConstructor::JSAudioConstructor):
1409 * bindings/js/JSCSSRuleCustom.cpp:
1411 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1412 (WebCore::JSCSSStyleDeclaration::nameGetter):
1413 * bindings/js/JSCSSValueCustom.cpp:
1415 * bindings/js/JSCanvasPixelArrayCustom.cpp:
1416 (WebCore::JSCanvasPixelArray::indexGetter):
1418 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
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:
1450 * bindings/js/JSEventCustom.cpp:
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):
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:
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:
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):
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.
1589 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1593 Build the Qt port with SVG Animation support.
1597 2008-05-02 Simon Hausmann <hausmann@webkit.org>
1599 Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
1600 with different signatures.
1602 * plugins/npfunctions.h:
1604 2008-05-01 Robin Dunn <robin@alldunn.com>
1606 Reviewed by Kevin Ollivier.
1608 Explicitly set the pen style in wx port to keep pen style changes from
1609 affecting URL underline or text field drawing.
1611 https://bugs.webkit.org/show_bug.cgi?id=18775
1613 * platform/graphics/wx/GraphicsContextWx.cpp:
1614 (WebCore::GraphicsContext::fillRect):
1615 (WebCore::GraphicsContext::drawLineForText):
1616 * platform/wx/RenderThemeWx.cpp:
1617 (WebCore::RenderThemeWx::paintTextField):
1619 2008-05-01 Robin Dunn <robin@alldunn.com>
1621 Reviewed by Kevin Ollivier.
1623 Implement popup menu support for wx port.
1625 https://bugs.webkit.org/show_bug.cgi?id=18776
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:
1639 2008-05-01 Kevin Ollivier <kevino@theolliviers.com>
1641 Reviewed by Eric Seidel.
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.
1647 https://bugs.webkit.org/show_bug.cgi?id=18464
1649 * platform/wx/MouseEventWx.cpp:
1650 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1652 2008-05-01 Sam Weinig <sam@webkit.org>
1654 Reviewed by Mark Rowe (in his infinite wisdom).
1656 Auto-generate the JSXSLTProcessor binding.
1658 * DerivedSources.make:
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:
1672 2008-05-01 Sam Weinig <sam@webkit.org>
1674 Reviewed by Geoffrey Garen.
1677 - https://bugs.webkit.org/show_bug.cgi?id=17249
1678 Incorrect lexical scope after navigation leads to UXSS
1679 <rdar://problem/5738497>
1681 - https://bugs.webkit.org/show_bug.cgi?id=16824
1682 Script authorization should follow lexical (not dynamic) scope
1683 <rdar://problem/5683032>
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
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
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):
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:
1724 2008-05-01 Anders Carlsson <andersca@apple.com>
1728 Enable 64-bit NPAPI plugins.
1730 * WebCore.xcodeproj/project.pbxproj:
1731 Don't remove NPAPI related symbols from the 64-bit .exp file.
1733 * bridge/npruntime.h:
1734 Remove now unnecessary #error.
1736 2008-05-01 Maciej Stachowiak <mjs@apple.com>
1738 Reviewed by Oliver (a while ago)
1740 - just a wee bit more bindings speedup
1742 Store the per-document Node --> JS wrapper cache in the document
1743 instead of an external hashtable.
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):
1752 (WebCore::Document::wrapperCache):
1754 2008-05-01 Anders Carlsson <andersca@apple.com>
1758 Remove duplicate npfunctions.h header from WebKit.
1760 * WebCore.xcodeproj/project.pbxproj:
1761 Add npfunctions.h and set its role to private.
1763 * plugins/npfunctions.h:
1764 Merge Mac specific changes.
1766 2008-05-01 Sam Weinig <sam@webkit.org>
1768 Reviewed by Geoffrey Garen.
1770 Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
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:
1807 2008-05-01 Anatoli Papirovski <apapirovski@mac.com>
1809 Reviewed by Dave Hyatt.
1811 - fix https://bugs.webkit.org/show_bug.cgi?id=18347
1812 Absolutely positioned image percentage width does not respect container's padding
1814 Test: fast/replaced/absolute-position-percentage-width.html
1816 * rendering/RenderBox.cpp:
1817 (WebCore::RenderBox::calcReplacedWidthUsing):
1819 2008-05-01 Dan Bernstein <mitz@apple.com>
1823 * platform/graphics/win/FontCGWin.cpp:
1824 (WebCore::Font::drawGlyphs):
1826 2008-05-01 Dan Bernstein <mitz@apple.com>
1828 Reviewed by Darin Adler.
1830 - make synthetic bold and synthetic italics work in GDI text
1831 - account for synthetic bold in complex text on Windows
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
1840 * platform/graphics/win/UniscribeController.cpp:
1841 (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
1844 2008-05-01 Alp Toker <alp@nuanti.com>
1846 Qt/Win build fix attempt following plugin changes. Add missing return
1849 Also fixes some newly introduced coding style issues in the Qt port.
1851 * platform/qt/FileSystemQt.cpp:
1852 (WebCore::openTemporaryFile):
1853 (WebCore::closeFile):
1854 (WebCore::writeToFile):
1855 (WebCore::unloadModule):
1857 2008-05-01 Anders Carlsson <andersca@apple.com>
1861 Export methods needed to subclass Widget. (See r32770.)
1865 2008-05-01 Marc Ordinas i Llopis <marc.ordinasillopis@collabora.co.uk>
1867 Reviewed by Alp Toker.
1868 Qt parts OK'ed by Simon Hausmann.
1870 https://bugs.webkit.org/show_bug.cgi?id=14750
1871 Added support for NPAPI plugins on Gtk and Qt-x11 ports.
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
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
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
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
1900 (WebCore::WidgetPrivate::WidgetPrivate):
1901 (WebCore::Widget::isNPAPIPlugin):
1902 (WebCore::Widget::setIsNPAPIPlugin):
1903 * plugins/PluginPackage.cpp:
1904 (WebCore::PluginPackage::~PluginPackage): Unload the module before
1906 (WebCore::PluginPackage::compare): Moved here as it's platform
1908 * plugins/PluginView.cpp: Moved platform-independent functions here.
1909 (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
1911 (WebCore::PluginView::freeStringArray):
1912 (WebCore::startsWithBlankLine):
1913 (WebCore::locationAfterFirstBlankLine):
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.
2002 2008-05-01 Sam Weinig <sam@webkit.org>
2006 * ForwardingHeaders/wtf/StrHash.h: Added.
2008 2008-05-01 Anders Carlsson <andersca@apple.com>
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.
2016 * loader/appcache/ApplicationCache.cpp:
2017 (WebCore::ApplicationCache::ApplicationCache):
2018 Initialize m_group to 0.
2020 (WebCore::ApplicationCache::~ApplicationCache):
2021 Null check the group.
2023 (WebCore::ApplicationCache::setGroup):
2024 New method for setting the group.
2026 * loader/appcache/ApplicationCache.h:
2027 (WebCore::ApplicationCache::create):
2028 Remove the group argument.
2030 * loader/appcache/ApplicationCacheGroup.cpp:
2031 (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
2032 Let the storage know that the cache group has been destroyed.
2034 (WebCore::ApplicationCacheGroup::cacheForMainRequest):
2035 Call into the storage.
2037 (WebCore::ApplicationCacheGroup::selectCache):
2038 Call into the storage.
2040 (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
2041 When there are no document loaders associated with the cache group,
2042 set the newest cache to 0.
2044 (WebCore::ApplicationCacheGroup::cacheDestroyed):
2045 Delete the group if there are no associated caches.
2047 (WebCore::ApplicationCacheGroup::setNewestCache):
2048 New method that will set the newest cache and associate the group with the cache.
2050 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
2051 Call setNewestCache instead.
2053 * loader/appcache/ApplicationCacheStorage.cpp:
2054 (WebCore::urlHostHash):
2055 Move host hash method here.
2057 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
2058 New method that finds a cache group with a given manifest URL or creates a new one.
2060 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
2061 New method that returns a cache group for a given URL.
2063 (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
2064 When the cache group has been destroyed, remove it from the hash map.
2066 * loader/appcache/ApplicationCacheStorage.h:
2069 2008-05-01 Dan Winship <danw@gnome.org>
2071 Reviewed by Alp Toker.
2073 http://bugs.webkit.org/show_bug.cgi?id=18490
2074 Add mostly-working file: support and mostly-broken ftp: support to
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.
2084 * platform/network/ResourceHandle.h:
2085 * platform/network/ResourceHandleInternal.h: add new member
2086 variables for gio-based loading
2088 2008-05-01 Alp Toker <alp@nuanti.com>
2090 Rubber-stamped by Anders.
2092 GTK+ build fix for changes in r32752. Use int32, not int32_t types in
2095 Additional fix to use same signedness in npapi.h and Mac for the
2100 2008-04-30 Anders Carlsson <andersca@apple.com>
2104 Add new Cocoa event model type declarations.
2108 2008-04-30 Beth Dakin <bdakin@apple.com>
2110 Reviewed by Sam Weinig.
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.
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
2125 (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to
2127 (WebCore::RoleEntry::): Same.
2128 (WebCore::ariaRoleToWebCoreRole): Same.
2129 (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
2131 2008-04-30 Rob Buis <buis@kde.org>
2133 Reviewed by Nikolas.
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
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.
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):
2152 2008-04-30 David Hyatt <hyatt@apple.com>
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.
2157 Reviewed by Dan Bernstein
2159 * rendering/RenderLayer.cpp:
2160 (WebCore::RenderLayer::~RenderLayer):
2161 Make sure to remove the reflection's child layer from its parent.
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
2172 2008-04-30 Rémi Zara <remi_zara@mac.com>
2174 Reviewed by Dave Hyatt.
2176 fix https://bugs.webkit.org/show_bug.cgi?id=18618
2177 <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
2179 * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
2180 (WebCore::patternCallback): flip the y axis when drawing the tile
2182 2008-04-30 Timothy Hatcher <timothy@apple.com>
2184 Fixes an undefined type exception that fires when adding a resource to the inspector
2185 that has a MIME type warning.
2187 Reviewed by Adam Roben.
2189 * page/inspector/Resource.js:
2190 (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
2191 WebInspector.consolePanel.
2192 (WebInspector.Resource.prototype._checkWarning): Ditto.
2194 2008-04-30 Timothy Hatcher <timothy@apple.com>
2196 Fixes the bug where the selected resource would be deselected after
2197 changing the sort order in the Resources panel.
2199 Reviewed by Dan Bernstein.
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.
2207 2008-04-29 Timothy Hatcher <timothy@apple.com>
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.
2214 Reviewed by Adam Roben.
2216 * page/inspector/Console.js:
2217 (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
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.
2234 2008-04-30 Timothy Hatcher <timothy@apple.com>
2236 Adds a helper function to convert a JSValueRef to a String.
2238 Reviewed by Adam Roben.
2240 * page/InspectorController.cpp:
2241 (WebCore::toString): Converts a JSValueRef to a String.
2242 (WebCore::search): Use toString.
2243 (WebCore::InspectorController::handleException): Ditto.
2245 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2249 Build the Qt port with SVG Foreign Object support.
2253 2008-04-30 Simon Hausmann <hausmann@webkit.org>
2257 Fix null pointer deference triggered by
2258 LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
2260 * platform/network/qt/ResourceHandleQt.cpp:
2261 (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
2263 2008-04-29 David Hyatt <hyatt@apple.com>
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.
2269 Reviewed by Dan Bernstein
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
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
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.
2291 (WebCore::RenderBox::maskClipRect):
2292 A new method that attempts to compute a precise clip rect for the mask images.
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.
2300 * rendering/RenderFieldset.cpp:
2301 (WebCore::RenderFieldset::paintMask):
2302 Call the new base class paintMaskImages method for optimized mask painting.
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.
2309 (WebCore::RenderLayer::paintLayer):
2310 Removed the code that always pushed a transparency layer before painting masks.
2312 (WebCore::RenderLayer::boundingBox):
2313 Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
2315 * rendering/RenderObject.cpp:
2316 (WebCore::RenderObject::paintNinePieceImage):
2317 Added a composite operator argument for direct destination-in painting of nine piece images.
2319 * rendering/RenderObject.h:
2320 (WebCore::RenderObject::maskClipRect):
2321 (WebCore::RenderObject::paintFillLayerExtended):
2322 Base class stubs for RenderBox-implemented methods.
2324 * rendering/RenderTable.cpp:
2325 (WebCore::RenderTable::paintMask):
2326 * rendering/RenderTableCell.cpp:
2327 (WebCore::RenderTableCell::paintMask):
2328 Modified to call the new paintMaskImages function.
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.
2335 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2337 Rubber-stamped by Rob Buis.
2339 Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
2341 * svg/SVGUseElement.cpp:
2342 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2344 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2346 Rubber-stamped by Rob Buis.
2348 Fixed compile, due to API change in XMLSerializer
2350 * svg/SVGUseElement.cpp:
2351 (WebCore::SVGUseElement::buildPendingResource):
2353 2008-04-30 Rob Buis <buis@kde.org>
2357 https://bugs.webkit.org/show_bug.cgi?id=11939
2358 Quirksmode: Ignores media types in stylesheet PIs
2360 Transfer the xml-stylesheet pseudo attribute media to the css
2361 stylesheet created from the ProcessingInstruction.
2363 Tests: fast/css/xml-stylesheet-media-processing.xhtml
2365 * css/StyleSheet.cpp:
2366 (WebCore::StyleSheet::setMedia):
2368 * dom/ProcessingInstruction.cpp:
2369 (WebCore::ProcessingInstruction::checkStyleSheet):
2370 (WebCore::ProcessingInstruction::setCSSStyleSheet):
2371 * dom/ProcessingInstruction.h:
2373 2008-04-29 David D. Kilzer <ddkilzer@apple.com>
2375 BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
2377 On the buildbot, this is a fatal error:
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
2383 Newer dev tools only produce a warning:
2385 ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
2387 * WebCore.base.exp: Remove hidden symbol from export list.
2389 2008-04-29 David Kilzer <ddkilzer@apple.com>
2391 Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
2393 * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
2395 2008-04-29 David Kilzer <ddkilzer@apple.com>
2397 BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
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.
2406 2008-04-29 Ada Chan <adachan@apple.com>
2408 Added missing return.
2410 * platform/win/COMPtr.h:
2413 2008-04-29 Alp Toker <alp@nuanti.com>
2415 GTK+ build fix attempt following breakage in r32700 which
2416 conditionalised dashboard support.
2420 2008-04-29 Adam Roben <aroben@apple.com>
2422 Restore the beloved COMPtr::operator&
2424 * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
2425 constructor and isHashTableDeletedValue and hashTableDeletedValue
2427 (WTF::): Changed constructDeletedValue to play nicely with
2430 2008-04-29 Adam Roben <aroben@apple.com>
2432 Fix assertion on launch on Windows
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.
2438 2008-04-29 Greg Bolsinga <bolsinga@apple.com>
2442 Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
2444 * DerivedSources.make:
2445 * WebCore.DashboardSupport.exp: Added.
2447 * WebCore.xcodeproj/project.pbxproj:
2448 * bindings/js/JSDOMWindowCustom.cpp:
2449 (WebCore::JSDOMWindow::setLocation):
2450 * css/CSSComputedStyleDeclaration.cpp:
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):
2466 (WebCore::Document::Document):
2467 (WebCore::Document::importNode):
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:
2477 * page/ChromeClient.h:
2479 (WebCore::Frame::paint):
2481 * page/FrameView.cpp:
2482 (WebCore::FrameView::layout):
2484 * page/Settings.cpp:
2485 (WebCore::Settings::Settings):
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):
2508 2008-04-29 Adam Roben <aroben@apple.com>
2512 This removes COMPtr::operator&, which didn't jive with HashTable. It
2513 is replaced by COMPtr::adoptionPointer.
2515 Discussed with Darin Adler and Anders Carlsson.
2517 * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
2519 2008-04-29 David Hyatt <hyatt@apple.com>
2521 Implement the new box-reflect property in CSS. This property enables real-time reflections on
2522 objects (yes you can reflect <video>!).
2524 Reviewed by Dan Bernstein
2526 Test cases added in fast/reflections/
2530 * WebCore.xcodeproj/project.pbxproj:
2531 * WebCoreSources.bkl:
2532 * css/CSSComputedStyleDeclaration.cpp:
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):
2544 * css/CSSPropertyNames.in:
2545 * css/CSSReflectValue.cpp: Added.
2546 (WebCore::CSSReflectValue::cssText):
2547 * css/CSSReflectValue.h: Added.
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):
2652 2008-04-29 Beth Dakin <bdakin@apple.com>
2656 Initial implementation of the following ARIA roles: button,
2657 checkbox, heading, link, radio, textbox.
2659 * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
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):
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):
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):
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):
2715 Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
2716 (WebCore::AccessibilityObject::ariaRoleAttribute):
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:
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:]):
2726 2008-04-29 Timothy Hatcher <timothy@apple.com>
2728 Make the exceptions that the InspectorController catches log the
2729 original file and line number, if present on the exception object.
2731 Reviewed by Adam Roben.
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.
2747 2008-04-29 Timothy Hatcher <timothy@apple.com>
2749 Fixes a regression where the Page's debugger would not be reattached
2750 when a new JSDOMWindow is created.
2752 Reviewed by Sam Weinig.
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.
2761 2008-04-29 Anatoli Papirovski <apapirovski@mac.com>
2763 Reviewed by Darin Adler.
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."
2769 * css/CSSParser.cpp:
2770 (WebCore::CSSParser::parseColorParameters):
2772 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
2776 Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
2778 Ben found this crash in the demo browser.
2780 In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
2782 case PolicyDownload:
2783 frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
2784 receivedError(interruptionForPolicyChangeError());
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...
2792 * loader/MainResourceLoader.cpp:
2793 (WebCore::MainResourceLoader::continueAfterContentPolicy):
2795 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
2799 Rely on auto-boxing of C++ for the QCursor c'tor
2801 * platform/qt/CursorQt.cpp:
2803 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
2807 Add the remaining cursors that defaulted to PointerCursor
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):
2818 2008-04-29 Alice Liu <alice.liu@apple.com>
2820 Reviewed by Beth Dakin.
2822 Comply with HTML5 spec about parsing tabindex property according to
2823 integer parsing rules
2825 Test: fast/parser/tabindex-parsing.html
2827 * html/HTMLElement.cpp:
2828 (WebCore::HTMLElement::parseMappedAttribute):
2830 2008-04-29 Tor Arne Vestbø <tavestbo@trolltech.com>
2834 Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
2836 https://bugs.webkit.org/show_bug.cgi?id=18482
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
2843 * platform/ScrollView.h:
2844 * platform/qt/ScrollViewQt.cpp:
2845 (WebCore::ScrollView::geometryChanged):
2846 (WebCore::ScrollView::suppressScrollbars):
2847 (WebCore::ScrollView::invalidateScrollbars):
2849 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
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.
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.
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.
2865 This should be race free and work reliable, the manual test for this
2866 is WebCore/manual-tests/cursor.html
2868 * platform/qt/WidgetQt.cpp:
2869 (WebCore::Widget::setCursor):
2871 2008-04-28 Dan Bernstein <mitz@apple.com>
2873 Reviewed by Maciej Stachowiak.
2875 - fix https://bugs.webkit.org/show_bug.cgi?id=18795
2876 REGRESSION (r32660): Text heavier with text-shadow
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.
2886 2008-04-28 Brady Eidson <beidson@apple.com>
2888 Reviewed by Sam Weinig
2890 Add Storage.clear(), per updates to HTML5
2892 Tests: storage/domstorage/localstorage/clear.html
2893 storage/domstorage/sessionstorage/clear.html
2895 * storage/LocalStorageArea.cpp:
2896 (WebCore::LocalStorageArea::areaCleared):
2897 * storage/LocalStorageArea.h:
2899 * storage/SessionStorageArea.cpp:
2900 (WebCore::SessionStorageArea::areaCleared):
2901 * storage/SessionStorageArea.h:
2903 * storage/Storage.cpp:
2904 (WebCore::Storage::clear):
2905 * storage/Storage.h:
2906 * storage/Storage.idl:
2908 * storage/StorageArea.cpp:
2909 (WebCore::StorageArea::internalClear):
2910 * storage/StorageArea.h:
2911 (WebCore::StorageArea::clear):
2913 2008-04-28 Adele Peterson <adele@apple.com>
2915 Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
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)
2920 * WebCore.base.exp: Added symbols.
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.
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.
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.
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.
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.
2955 Added new ChromeClient methods to give the application control over the file compression for uploading.
2957 (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
2958 (WebCore::ChromeClient::generateReplacementFile): ditto.
2959 * page/ChromeClient.h:
2961 2008-04-28 Anders Carlsson <andersca@apple.com>
2963 Reviewed by Sam, Mark, Adele and Darin.
2965 Add a (currently not called) method for opening the application cache database.
2968 * loader/appcache/ApplicationCacheStorage.cpp:
2969 (WebCore::ApplicationCacheStorage::setCacheDirectory):
2970 (WebCore::ApplicationCacheStorage::openDatabase):
2971 * loader/appcache/ApplicationCacheStorage.h:
2973 2008-04-28 Alice Liu <alice.liu@apple.com>
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
2981 Test: fast/events/tabindex-focus-blur-all.html
2983 * WebCore.xcodeproj/project.pbxproj:
2984 * bindings/objc/DOMPrivate.h:
2985 -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
2988 * bindings/objc/PublicDOMInterfaces.h:
2989 -Moving focus, blur, tabindex to HTMLElement from its descendants.
2992 (WebCore::Node::Node):
2993 (WebCore::Node::isFocusable):
2994 (WebCore::Node::isKeyboardFocusable):
2995 -The concept of being focusable now needs to account for tabindex
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
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.
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
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:
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
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
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.
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
3071 2008-04-28 Dan Bernstein <mitz@apple.com>
3073 Reviewed by Dave Hyatt.
3075 - support multiple box- and text-shadows
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
3083 * css/CSSComputedStyleDeclaration.cpp:
3084 (WebCore::valueForShadow): Changed to account for reversing the order
3085 of the shadow values in the ShadowData list.
3087 * css/CSSValueList.cpp:
3088 (WebCore::CSSValueList::prepend): Added.
3089 * css/CSSValueList.h:
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
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
3112 * rendering/RenderBlock.cpp:
3113 (WebCore::RenderBlock::overflowHeight): Changed to account for all
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.
3121 * rendering/RenderFlexibleBox.cpp:
3122 (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
3124 * rendering/RenderLayer.cpp:
3125 (WebCore::RenderLayer::calculateRects): Ditto.
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
3131 (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Changed to account
3133 (WebCore::RenderObject::selectionForegroundColor): Cleaned up.
3134 (WebCore::RenderObject::adjustRectForOutlineAndShadow): Changed to
3135 account for all shadows.
3137 * rendering/RenderReplaced.cpp:
3138 (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Ditto.
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
3144 (WebCore::RenderStyle::setBoxShadow): Ditto.
3146 * rendering/RenderTable.cpp:
3147 (WebCore::RenderTable::layout): Changed to account for all shadows.
3149 2008-04-28 Adam Roben <aroben@apple.com>
3151 Fix some more Windows build errors in COMPtr
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> >.
3157 2008-04-28 Adam Roben <aroben@apple.com>
3159 Fix some Windows build errors in COMPtr
3161 * platform/win/COMPtr.h: Explicitly name the WTF namespace when using
3162 HashTableDeletedValueType.
3164 2008-04-28 Adam Roben <aroben@apple.com>
3166 Fix some Windows build errors in FontPlatfomrData
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().
3173 2008-04-28 David Hyatt <hyatt@apple.com>
3175 https://bugs.webkit.org/show_bug.cgi?id=18780
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. :)
3182 Reviewed by Dan Bernstein
3184 Added fast/canvas/canvasDrawsIntoSelf.html
3186 * html/CanvasRenderingContext2D.cpp:
3187 (WebCore::CanvasRenderingContext2D::drawImage):
3189 2008-04-28 Alexey Proskuryakov <ap@webkit.org>
3191 Reviewed by Geoff Garen.
3193 <rdar://problem/5825192> Replace use of Gestalt with BSD sysctl
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.
3200 2008-04-25 Alexey Proskuryakov <ap@webkit.org>
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
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.
3211 * bindings/js/JSAudioConstructor.cpp:
3213 * bindings/js/JSDOMWindowBase.cpp:
3215 * bindings/js/JSDOMWindowCustom.cpp:
3216 (WebCore::JSDOMWindow::customGetOwnPropertySlot):
3217 * bindings/js/JSDOMWindowWrapper.cpp:
3219 (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
3220 * bindings/js/JSDOMWindowWrapper.h:
3221 * bindings/js/JSEventTargetBase.h:
3222 (WebCore::JSEventTargetPrototype::classInfo):
3223 * bindings/js/JSHTMLInputElementBase.cpp:
3225 * bindings/js/JSHTMLOptionElementConstructor.cpp:
3227 * bindings/js/JSHistoryCustom.cpp:
3228 (WebCore::JSHistory::customGetOwnPropertySlot):
3229 * bindings/js/JSImageConstructor.cpp:
3231 * bindings/js/JSInspectedObjectWrapper.cpp:
3233 * bindings/js/JSInspectorCallbackWrapper.cpp:
3235 * bindings/js/JSLocationCustom.cpp:
3236 (WebCore::JSLocation::customGetOwnPropertySlot):
3237 (WebCore::JSLocation::customPut):
3238 * bindings/js/JSNamedNodesCollection.cpp:
3240 * bindings/js/JSQuarantinedObjectWrapper.cpp:
3242 * bindings/js/JSRGBColor.cpp:
3244 * bindings/js/JSStorageCustom.cpp:
3245 (WebCore::JSStorage::customPut):
3246 * bindings/js/JSXMLHttpRequestConstructor.cpp:
3248 * bindings/js/JSXSLTProcessor.cpp:
3250 * bindings/scripts/CodeGeneratorJS.pm:
3251 * bridge/objc/objc_runtime.mm:
3252 * bridge/runtime_array.cpp:
3253 * bridge/runtime_object.cpp:
3255 2008-04-28 David Hyatt <hyatt@apple.com>
3257 https://bugs.webkit.org/show_bug.cgi?id=18779
3259 The arguments in drawImage were reversed when I switched away from the image buffer method.
3261 Reviewed by Tim Hatcher
3263 Added fast/canvas/drawImage.html
3265 * html/CanvasRenderingContext2D.cpp:
3266 (WebCore::CanvasRenderingContext2D::drawImage):
3268 2008-04-28 Holger Hans Peter Freyther <zecke@selfish.org>
3272 Fix the crash on http://www.orad.pl. We called end too early.
3274 1. we need a ::write that will pause the parser due a pending
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
3280 5. we resume the new script and we get a crash
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
3287 Test: http/tests/misc/xmltokenizer-do-not-crash.pl
3289 * dom/XMLTokenizer.cpp:
3291 2008-04-28 Ariya Hidayat <ahidayat@trolltech.com>
3295 Fix rounded corner on combo box with CSS border
3297 * platform/qt/RenderThemeQt.cpp:
3298 (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
3300 2008-04-28 Ariya Hidayat <ahidayat@trolltech.com>
3304 Fix CSS border does not show up for combo boxes
3306 Do not clear the border when painting the combo box for 'select' form element
3308 * platform/qt/RenderThemeQt.cpp:
3310 2008-04-28 Olivier Goffart <ogoffart@trolltech.com>
3314 Avoid comparing to 0 in qFuzzyCompare for increased
3317 * platform/graphics/qt/PathQt.cpp:
3318 (WebCore::Path::addArc):
3320 2008-04-28 Benjamin Meyer <bmeyer@trolltech.com>
3324 Fixes: Pages returning 404 with content are not displayed.
3326 A web page that returns 404 can still have content.
3328 * platform/network/qt/QNetworkReplyHandler.cpp:
3329 (WebCore::QNetworkReplyHandler::finish):
3331 2008-04-28 Paul Olav Tvete <paul@trolltech.com>
3335 Fix compiler warning; Avoid the implicity QString(const char *)
3338 * platform/qt/RenderThemeQt.cpp:
3339 (WebCore::RenderThemeQt::fallbackStyle):
3341 2008-04-28 Tor Arne Vestbø <tavestbo@trolltech.com>
3345 Prevent middle-click from triggering open URL from clipboard when the event has already been accepted.
3347 * platform/qt/PlatformScrollBarQt.cpp:
3348 (WebCore::PlatformScrollbar::handleMousePressEvent):
3350 2008-04-28 Tor Arne Vestbø <tavestbo@trolltech.com>
3354 Fix scrollbar behavior in QtWebKit to match QScrollBar.
3356 Right click context menu is now supported, along with
3357 middle click to center slider thumb over mouse cursor.
3359 * platform/qt/PlatformScrollBar.h:
3360 * platform/qt/PlatformScrollBarQt.cpp:
3362 (WebCore::PlatformScrollbar::pixelPosToRangeValue):
3363 (WebCore::PlatformScrollbar::handleMousePressEvent):
3364 (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
3365 (WebCore::PlatformScrollbar::handleContextMenuEvent):
3367 2008-04-28 Tor Arne Vestbø <tavestbo@trolltech.com>
3371 Implemented channel-based logging for QtWebKit.
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.
3378 * platform/NotImplemented.h:
3379 * platform/qt/LoggingQt.cpp: Added.
3380 (WebCore::getChannelFromName):
3381 (WebCore::InitializeLoggingChannelsIfNecessary):
3383 2008-04-28 Simon Hausmann <shausman@trolltech.com>
3387 Fixes: Popups/Context menu in WebKit appearing at the wrong location when embedded in the graphics view or using multiple screens
3389 Give the popups the right parent widget and the right coordinates relative within the parent.
3391 * platform/qt/PopupMenuQt.cpp:
3392 (WebCore::PopupMenu::show):
3394 2008-04-28 Tor Arne Vestbø <tavestbo@trolltech.com>
3398 Fixes: Tabbing to a checkbox/button doesn't work on Win/X11
3400 Respect platform settings for tabbing to all controls.
3402 * page/qt/EventHandlerQt.cpp:
3404 2008-04-28 Tor Arne Vestbø <tavestbo@trolltech.com>
3408 First part of the fix for tabbing to a checkbox/button doesn't work on Win/X11
3410 Draw controls instead of pimitive elements, to get focus rects for free.
3412 * platform/qt/RenderThemeQt.cpp:
3413 (WebCore::RenderThemeQt::paintButton):
3415 2008-04-28 Lincoln Ramsay <lincoln.ramsay@trolltech.com>
3419 Compile when QT_NO_CLIPBOARD is defined.
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):
3436 2008-04-28 Ariya Hidayat <ariya.hidayat@trolltech.com>
3440 Draw the arrow button on the styled combo box using the fallback ("Windows") style
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:
3450 2008-04-28 Simon Hausmann <hausmann@webkit.org>
3454 Fix positioning of native widgets (plugins).
3456 Correctly convert the coordinates of the Widget in Widget::setFrameGeometry()
3457 to be relative to the containing toplevel QWidget using convertToContainingWindow().
3459 Note: convertToContainingWindow() takes child coordinates.
3461 * platform/qt/WidgetQt.cpp:
3462 (WebCore::Widget::frameGeometry):
3463 (WebCore::Widget::setFrameGeometry):
3465 2008-04-28 Holger Hans Peter Freyther <zecke@selfish.org>
3469 plugins: fix scrolling issues
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
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.
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):
3493 2008-04-28 Holger Hans Peter Freyther <zecke@selfish.org>
3497 Add manual test to test placement of QWidgets in iframe's
3499 * manual-tests/qt/main.html: Added.
3500 * manual-tests/qt/qtplugin.html: Added.
3502 2008-04-28 Simon Hausmann <hausmann@webkit.org>
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.
3508 * page/DOMWindow.cpp:
3510 2008-04-28 Simon Hausmann <hausmann@webkit.org>
3512 Prospective Wx build fix.
3514 * platform/graphics/wx/FontPlatformData.h:
3516 2008-04-28 Simon Hausmann <hausmann@webkit.org>
3520 Gtk build fix, similar to the changes done in r32609.
3522 * platform/graphics/gtk/FontPlatformData.h:
3523 (WebCore::FontPlatformData::FontPlatformData):
3524 (WebCore::FontPlatformData::isHashTableDeletedValue):
3525 (WebCore::FontPlatformData::hashTableDeletedFontValue):
3527 2008-04-28 Simon Hausmann <hausmann@webkit.org>
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.
3534 * plugins/PluginPackage.h: Removed workaround of extra StorageTraits
3535 specification for the custom hash function of PluginPackage used in
3538 2008-04-28 Tor Arne Vestbø <tavestbo@trolltech.com>
3542 https://bugs.webkit.org/show_bug.cgi?id=18713
3544 Fix scrollbar painting issues in QtWebKit.
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.
3551 * platform/qt/PlatformScrollBarQt.cpp:
3552 (WebCore::PlatformScrollbar::handleMouseMoveEvent):
3553 (WebCore::PlatformScrollbar::handleMouseOutEvent):
3554 (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
3556 2008-04-27 Oliver Hunt <oliver@apple.com>
3560 Bug 17173: HTML5 Canvas API requires us to ignore certain operations
3561 <https://bugs.webkit.org/show_bug.cgi?id=17173>
3563 This fixes the semantics of a number of Canvas functions to match
3564 the new HTML5 non-throwing semantics.
3566 Test: fast/canvas/canvas-path-with-inf-nan-dimensions.html
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:
3585 2008-04-27 Rob Buis <buis@kde.org>