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