1 2008-05-10 Adele Peterson <adele@apple.com>
3 Reviewed by Tim Hatcher.
5 Fix crash for WebKit clients that don't set a group name for the WebView/Page.
7 * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): Instead of adding the Page directly to the group,
8 call the addPage method, since it does extra work initializing m_localStorage.
10 2008-05-09 Sam Weinig <sam@webkit.org>
12 Reviewed by Mark Rowe.
14 Fix for https://bugs.webkit.org/show_bug.cgi?id=18958
15 NULL pointer dereference in NamedAttrMap::setNamedItem
17 Test: fast/dom/NamedNodeMap-setNamedItem-crash.html
19 * dom/NamedAttrMap.cpp:
20 (WebCore::NamedAttrMap::setNamedItem): Null check the argument.
22 2008-05-09 Kevin McCullough <kmccullough@apple.com>
27 (WebCore::Console::profile):
29 2008-05-09 Sam Weinig <sam@webkit.org>
31 Rubber-stamped by Mark Rowe.
33 Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.
35 * Configurations/WebCore.xcconfig:
36 * WebCore.vcproj/WebCore.vcproj:
37 * WebCore.vcproj/build-generated-files.sh:
38 * bindings/js/JSDOMWindowCustom.cpp:
39 (WebCore::JSDOMWindow::customGetOwnPropertySlot):
40 (WebCore::JSDOMWindow::postMessage):
41 * bindings/js/JSEventCustom.cpp:
43 * bindings/objc/DOMEvents.mm:
44 (+[DOMEvent _wrapEvent:WebCore::]):
46 (WebCore::Document::createEvent):
48 (WebCore::Event::isMessageEvent):
50 * dom/MessageEvent.cpp:
52 * dom/MessageEvent.idl:
54 (WebCore::DOMWindow::postMessageTimerFired):
58 2008-05-09 Adam Barth <abarth-webkit@adambarth.com>
60 Reviewed by Sam Weinig.
62 https://bugs.webkit.org/show_bug.cgi?id=18771
64 Make postMessage generate an event on the window instead of the
67 Test: http/tests/messaging/cross-domain-message-event-dispatch.html
69 * dom/EventTargetNode.cpp:
70 (WebCore::EventTargetNode::dispatchWindowEvent):
71 * dom/EventTargetNode.h:
73 (WebCore::DOMWindow::postMessageTimerFired):
75 2008-05-09 Tor Arne Vestbø <tavestbo@trolltech.com>
79 Replaced all instances of qDebug() with LOG(Media, ...)
80 in MediaPlayerPrivatePhonon.
82 * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
83 (WebCore::MediaPlayerPrivate::updateStates):
85 2008-05-09 Tor Arne Vestbø <tavestbo@trolltech.com>
91 * platform/qt/FileSystemQt.cpp:
93 2008-05-08 Sam Weinig <sam@webkit.org>
95 Reviewed by Anders Carlsson.
97 Rename the XMLHttpRequestState enum values to match the spec.
99 * xml/XMLHttpRequest.cpp:
100 (WebCore::XMLHttpRequest::responseXML):
101 (WebCore::XMLHttpRequest::XMLHttpRequest):
102 (WebCore::XMLHttpRequest::callReadyStateChangeListener):
103 (WebCore::XMLHttpRequest::open):
104 (WebCore::XMLHttpRequest::send):
105 (WebCore::XMLHttpRequest::abort):
106 (WebCore::XMLHttpRequest::setRequestHeader):
107 (WebCore::XMLHttpRequest::getAllResponseHeaders):
108 (WebCore::XMLHttpRequest::getResponseHeader):
109 (WebCore::XMLHttpRequest::status):
110 (WebCore::XMLHttpRequest::statusText):
111 (WebCore::XMLHttpRequest::processSyncLoadResults):
112 (WebCore::XMLHttpRequest::didFinishLoading):
113 (WebCore::XMLHttpRequest::didReceiveData):
114 * xml/XMLHttpRequest.h:
117 2008-05-08 Dan Bernstein <mitz@apple.com>
119 Reviewed by Mark Rowe.
121 - fix https://bugs.webkit.org/show_bug.cgi?id=18818
122 <rdar://problem/5901544> REGRESSION (3.1.1-TOT): Character order (float:left ordered after the first letter)
124 Test: fast/css/first-letter-float-after-float.html
126 * rendering/RenderBlock.cpp:
127 (WebCore::RenderBlock::updateFirstLetter): Changed to add the first
128 letter container right before the rest of the text it is taken from,
129 instead of at the beginning of the block.
131 2008-05-08 Chris Fleizach <cfleizach@apple.com>
133 Reviewed by Darin Adler.
135 <rdar://problem/5921046> AX: list box options have wrong AXPosition
137 * page/AccessibilityObject.cpp:
138 (WebCore::AccessibilityObject::documentFrameView):
139 * page/AccessibilityObject.h:
141 2008-05-08 Julien Chaffraix <jchaffraix@webkit.org>
145 Bug 18916: make_names.pl --factory needs to support custom c++ guard
147 Add --guardFactoryWith to handle the cpp guard around generated factories.
149 * DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
150 * GNUmakefile.am: Ditto.
151 * WebCore.pro: Ditto.
152 * dom/make_names.pl: Add guardFactoryWith option.
154 2008-05-08 Julien Chaffraix <jchaffraix@webkit.org>
156 Reviewed by Adam Roben.
160 Should also fix the cURL backend for the Windows port.
162 * WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
163 * platform/network/curl/FormDataStreamCurl.h: Include stdio.h which
164 fixes the build on some machine.
166 * webcore-wx.bkl: Add FormDataStreamCurl.cpp.
168 2008-05-08 Timothy Hatcher <timothy@apple.com>
170 Fixes the bug where the Web Inspector could not
171 find any localization strings.
173 Reviewed by Mark Rowe.
175 * WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js
176 file to the WebCore Copy Resources phase. Also removes an idl from
177 the Copy Resources phase.
179 2008-05-08 Dan Bernstein <mitz@apple.com>
181 Reviewed by Adam Roben.
183 - fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
185 * platform/win/PopupMenuWin.cpp:
186 (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold
187 font for measuring labels.
189 2008-05-08 Dan Bernstein <mitz@apple.com>
191 Reviewed by Geoffrey Garen.
193 - cross-platform fix for http://bugs.webkit.org/show_bug.cgi?id=17590
194 ASSERTION FAILED: subject in jsRegExpExecute()
197 (WebCore::Frame::matchLabelsAgainstElement):
199 2008-05-08 Holger Hans Peter Freyther <zecke@selfish.org>
203 Simple ImageBuffer::image implementation.
205 In contrast to cg and cairo we do not use a special BitmapImage because
206 the ownership of the FrameData inside the BitmapImage is a bit backward
207 (actually owned by the ImageDecoderQt...). Further work is needed for image
208 and pixmap handling in the qt port...
211 * platform/graphics/ImageBuffer.h:
212 * platform/graphics/qt/ImageBufferQt.cpp:
213 (WebCore::ImageBuffer::image):
214 * platform/graphics/qt/ImageQt.cpp:
215 * platform/graphics/qt/StillImageQt.cpp: Added.
216 (WebCore::StillImage::StillImage):
217 (WebCore::StillImage::size):
218 (WebCore::StillImage::getPixmap):
219 (WebCore::StillImage::draw):
220 * platform/graphics/qt/StillImageQt.h: Added.
222 2008-05-08 Holger Hans Peter Freyther <zecke@selfish.org>
226 Update the WebKit.qrc of the inspector to be functional again
228 * page/inspector/WebKit.qrc:
230 2008-05-08 Tor Arne Vestbø <tavestbo@trolltech.com>
234 Fix the Qt/Mac build.
236 * platform/FileSystem.h:
238 2008-05-08 Ariya Hidayat <ariya.hidayat@trolltech.com>
242 Use native Windows library handling (instead of QLibrary)
243 for Qt/Win32's PlatformModule.
245 * platform/FileSystem.h:
246 (WebCore::PlatformModuleVersion::PlatformModuleVersion):
247 * platform/qt/FileSystemQt.cpp:
248 (WebCore::unloadModule):
250 2008-05-08 Simon Hausmann <hausmann@webkit.org>
252 Reviewed and found by Holger.
254 Include .css in the list of extensions for text/css. Fixes
255 fast/loader/local-css-allowed-in-strict-mode.html.
257 * platform/qt/MIMETypeRegistryQt.cpp:
259 2008-05-08 Simon Hausmann <hausmann@webkit.org>
261 Fix the Qt and Wx build when compiling without offline app support.
263 * loader/FrameLoader.cpp:
264 (WebCore::FrameLoader::canCachePage):
266 2008-05-07 Sam Weinig <sam@webkit.org>
268 Reviewed by Adele Peterson
270 Update MessageEvent to match the latest version of the HTML5 spec,
271 adding the lastEventId attribute.
273 * dom/MessageEvent.cpp:
274 (WebCore::MessageEvent::MessageEvent):
275 (WebCore::MessageEvent::initMessageEvent):
276 * dom/MessageEvent.h:
277 (WebCore::MessageEvent::lastEventId):
278 * dom/MessageEvent.idl:
279 * page/DOMWindow.cpp:
280 (WebCore::DOMWindow::postMessage):
282 2008-05-07 Stephanie Lewis <slewis@apple.com>
286 remove non-functioning code. If onunload should be fired from these nodes then
287 a WindowEventListener needs to be set. However, Firefox and IE also do not
288 fire onunload events for these cases.
290 Test: fast/events/onunload-not-on-body.html
292 * html/HTMLFrameElementBase.cpp:
293 (WebCore::HTMLFrameElementBase::parseMappedAttribute):
294 * html/HTMLObjectElement.cpp
295 (WebCore::HTMLObjectElement::parseMappedAttribute):
297 2008-05-07 Dan Bernstein <mitz@apple.com>
299 Reviewed by John Sullivan.
301 - fix https://bugs.webkit.org/show_bug.cgi?id=18909
302 <rdar://problem/5914165> REGRESSION (r31872-r31878): Viewed photos not closing completely at indycar.com
304 Test: fast/dynamic/positioned-movement-with-positioned-children.html
306 * rendering/RenderBlock.cpp:
307 (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of
308 a positioned object that has only moved and has only positioned children
310 * rendering/RenderObject.h:
311 (WebCore::RenderObject::needsPositionedMovementLayout): Added this
314 2008-05-07 Anders Carlsson <andersca@apple.com>
318 When no document loaders are associated with an application cache group,
319 release the reference to the newest cache group. This prevents reference cycles.
321 * loader/appcache/ApplicationCacheGroup.cpp:
322 (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
323 (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
324 (WebCore::ApplicationCacheGroup::cacheDestroyed):
325 * loader/appcache/ApplicationCacheGroup.h:
327 * loader/appcache/ApplicationCacheStorage.cpp:
328 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
329 Return early if the datbase wasn't open.
331 (WebCore::ApplicationCacheStorage::loadCache):
334 2008-05-07 Anders Carlsson <andersca@apple.com>
338 Don't put pages with an application cache in the BF cache.
340 * loader/FrameLoader.cpp:
341 (WebCore::FrameLoader::canCachePage):
343 2008-05-07 Justin Garcia <justin.garcia@apple.com>
345 Reviewed by John Sullivan.
347 <rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply
349 When a single tab or series of tabs was copied, we weren't putting them into a
350 tab span. On Paste, we would be given a text node with a single tab or series
351 of tabs in it, and we would crash when inserting it at the start of a block
352 (where that kind of text becomes completely unrendered).
354 * editing/ReplaceSelectionCommand.cpp:
355 (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean
356 up correctly and early return if we removed everything that was inserted.
357 * editing/markup.cpp:
358 (WebCore::createMarkup): Include the tab span when the only thing copied
359 was a tab or a series of tabs.
361 2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>
363 Reviewed by Adam Roben.
367 * platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define
368 __STDC_LIMIT_MACROS to have SIZE_MAX exported.
369 * platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h)
370 as it is not present on the build bots.
371 * plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
373 2008-05-07 David Kilzer <ddkilzer@apple.com>
375 Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
376 <https://bugs.webkit.org/show_bug.cgi?id=18900>
377 <rdar://problem/5912383>
379 Original patch by Aaron Golden and Tim Omernick. Reviewed by Adele.
381 Test: fast/forms/textfield-to-password-on-focus.html
383 * html/HTMLInputElement.cpp:
384 (WebCore::HTMLInputElement::setInputType): If the current node has
385 focus, call updateFocusAppearance() to make sure its state is correct
386 after changing its type.
388 2008-05-07 Chris Fleizach <cfleizach@apple.com>
390 Reviewed by Alice Liu
392 <rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton
394 * page/AccessibilityObject.h:
395 (WebCore::AccessibilityObject::isFileUploadButton):
396 * page/AccessibilityRenderObject.cpp:
397 (WebCore::AccessibilityRenderObject::isFileUploadButton):
398 (WebCore::AccessibilityRenderObject::actionElement):
399 (WebCore::AccessibilityRenderObject::textUnderElement):
400 (WebCore::AccessibilityRenderObject::stringValue):
401 (WebCore::AccessibilityRenderObject::roleValue):
402 * page/AccessibilityRenderObject.h:
403 * rendering/RenderFileUploadControl.cpp:
404 (WebCore::RenderFileUploadControl::buttonValue):
405 (WebCore::RenderFileUploadControl::fileTextValue):
406 * rendering/RenderFileUploadControl.h:
408 2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>
412 Bug 17971: [Curl] FormData processing should be moved to its own class
414 Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
417 First step into having complete file uploading facility in cURL.
419 No test case as it is only code refactoring.
421 * GNUmakefile.am: Add FormDataStreamCurl.cpp
422 * platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h
423 (WebCore::ResourceHandleInternal::ResourceHandleInternal):
424 * platform/network/curl/FormDataStreamCurl.cpp: Added.
425 (WebCore::FormDataStream::~FormDataStream):
426 (WebCore::FormDataStream::read):
427 * platform/network/curl/FormDataStreamCurl.h: Added.
428 (WebCore::FormDataStream::FormDataStream):
429 * platform/network/curl/ResourceHandleCurl.cpp:
430 (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
431 * platform/network/curl/ResourceHandleManager.cpp:
432 (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
434 2008-05-07 Adam Treat <treat@kde.org>
438 https://bugs.webkit.org/show_bug.cgi?id=18898
440 Fixed wrong transform being used for creating the pixmap for a new
441 transparency layer. This fixes the popup menus on dell.com.
443 * platform/graphics/qt/GraphicsContextQt.cpp:
444 (WebCore::GraphicsContext::beginTransparencyLayer):
446 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
450 Share the plug-in directories between Gtk and Qt/X11 port.
452 * platform/qt/FileSystemQt.cpp:
453 (WebCore::homeDirectoryPath): Implement it for Qt.
454 * plugins/PluginDatabase.cpp:
455 (WebCore::addMozillaPluginDirectories): Shared code.
456 (WebCore::PluginDatabase::defaultPluginDirectories):
457 (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
458 * plugins/gtk/PluginDatabaseGtk.cpp:
459 (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
460 * plugins/qt/PluginDatabaseQt.cpp: Refactored.
462 2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>
466 Fix build issues on Mac and refeactor the .pro file a bit.
469 * platform/qt/TemporaryLinkStubs.cpp:
470 (PluginPackage::fetchInfo):
472 2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>
476 Draw scrollview corners (between scrollbars) using the Qt style.
478 https://bugs.webkit.org/show_bug.cgi?id=18894
480 * platform/qt/ScrollViewQt.cpp:
481 (WebCore::drawScrollbarCorner):
482 (WebCore::ScrollView::paint):
484 2008-05-07 Simon Hausmann <hausmann@webkit.org>
486 Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
491 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
493 Rubber-stamped by Holger.
495 Fix building without storage support.
497 * page/PageGroup.cpp:
498 (WebCore::PageGroup::closeLocalStorage): proper #if
500 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
502 Rubber-stamped by Oliver Hunt.
504 Fix building without accessibility.
506 * page/AXObjectCache.cpp:
507 (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
509 2008-05-06 Dan Bernstein <mitz@apple.com>
511 Reviewed by Darin Adler.
513 - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
515 Test: fast/block/float/float-on-zero-height-line.html
517 * rendering/RenderBlock.cpp:
518 (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
520 2008-05-06 Alice Liu <alice.liu@apple.com>
522 Reviewed by Adele Peterson and John Sullivan.
524 changes needed to build on Windows after r32911 and r32927
526 * WebCore.vcproj/WebCore.vcproj:
527 * page/AXObjectCache.cpp:
528 (WebCore::AXObjectCache::selectedChildrenChanged):
529 * page/AccessibilityObject.h:
530 (WebCore::AccessibilityObject::document):
531 (WebCore::AccessibilityObject::topDocumentFrameView):
532 (WebCore::AccessibilityObject::documentFrameView):
533 * page/AccessibilityRenderObject.cpp:
534 (WebCore::AccessibilityRenderObject::document):
535 (WebCore::AccessibilityRenderObject::topDocumentFrameView):
536 (WebCore::AccessibilityRenderObject::documentFrameView):
537 * page/AccessibilityRenderObject.h:
538 * page/mac/AXObjectCacheMac.mm:
539 * page/mac/AccessibilityObjectWrapper.mm:
540 (-[AccessibilityObjectWrapper position]):
541 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
543 2008-05-06 Brady Eidson <beidson@apple.com>
545 Reviewed by Sam Weinig
547 Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
548 1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
549 2 - Pending sync timers all need to be cancelled.
551 * storage/LocalStorage.cpp:
552 (WebCore::LocalStorage::storageArea):
553 (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
555 * storage/LocalStorage.h: Change the map to be of LocalStorageAreas instead of StorageAreas
557 * storage/LocalStorageArea.cpp:
558 (WebCore::LocalStorageArea::LocalStorageArea):
559 (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
561 (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
562 "final sync scheduled" flag
563 (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
564 (WebCore::LocalStorageArea::scheduleClear): Ditto
565 * storage/LocalStorageArea.h:
567 2008-05-06 Kevin Ollivier <kevino@theolliviers.com>
569 wx build fix. Adding files added in r32925 to the bakefiles.
571 * WebCoreSources.bkl:
573 2008-05-06 Alp Toker <alp@nuanti.com>
575 GTK+ build fix. Add empty stub to keep non-accessible ports building.
577 * page/AXObjectCache.h:
578 (WebCore::AXObjectCache::selectedChildrenChanged):
580 2008-05-06 Beth Dakin <bdakin@apple.com>
584 Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and
585 'aria-describedby' attributes.
587 * html/HTMLAttributeNames.in: Added new attributes. Added both the
588 British spelling (since that is what is specified in the spec), and
589 the American spelling (since the bug filer and I are two Americans
590 who keep spelling it the American way by accident).
591 * page/AccessibilityObject.cpp: Added empty wrappers. These
592 functions can't do anything meaningful without a renderer.
593 (WebCore::AccessibilityObject::ariaAccessiblityName):
594 (WebCore::AccessibilityObject::ariaLabeledByAttribute):
595 (WebCore::AccessibilityObject::ariaDescribedByAttribute):
596 * page/AccessibilityObject.h:
598 Here is where the real work is done.
599 * page/AccessibilityRenderObject.h:
600 * page/AccessibilityRenderObject.cpp:
601 (WebCore::accessibleNameForNode): Takes a node and finds its
602 contribution to the accessible name, as defined by the Mozilla ARIA
604 (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a
605 string of space-separated IDs, fetches the corresponding element
606 for each ID, and concatenates an accessible name based on the
608 (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute):
609 Retrieve the labeledby attribute and send its contents to
610 ariaAccessibilityName().
611 (WebCore::AccessibilityRenderObject::title): Return the ARIA
612 labeledby value if one exists.
613 (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute):
614 Retrieve the describedby attribute and send its contents to
615 ariaAccessibilityName().
616 (WebCore::AccessibilityRenderObject::accessibilityDescription):
617 Return the ARIA describedby attribute if one exists.
619 These are two bugs I spotted.
620 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't
621 ignore anything with an ARIA role.
622 (WebCore::AccessibilityRenderObject::roleValue): Button tags maps
625 2008-05-06 Anders Carlsson <andersca@apple.com>
629 Support reading back app caches from the database.
631 * loader/appcache/ApplicationCache.cpp:
632 (WebCore::ApplicationCache::ApplicationCache):
633 Initialize m_storageID to 0.
635 * loader/appcache/ApplicationCacheGroup.cpp:
636 (WebCore::ApplicationCacheGroup::cacheDestroyed):
637 If the cache being destroyed is not the newest cache, it should no longer be
638 stored in the database. Remove it.
640 (WebCore::ApplicationCacheGroup::setNewestCache):
641 Don't store the cache here.
643 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
644 Store it here instead.
646 * loader/appcache/ApplicationCacheStorage.cpp:
647 (WebCore::ApplicationCacheStorage::loadCacheGroup):
648 New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).
650 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
651 Search for the group in the database.
653 (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
654 New method that loads the host hashes from the database.
656 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
657 Search in the database for a cache that contains the resource.
659 (WebCore::ApplicationCacheStorage::loadCache):
660 New method that loads a cache with a given ID.
662 (WebCore::ApplicationCacheStorage::remove):
663 New method that removes a cache.
665 * loader/appcache/ApplicationCacheStorage.h:
668 2008-05-06 Alp Toker <alp@nuanti.com>
670 Partial GTK+ build fix. Add files from r32925 to the build and replace
674 * page/AccessibilityListBoxOption.cpp:
675 (WebCore::AccessibilityListBoxOption::parentObject):
677 2008-05-06 Brady Eidson <beidson@apple.com>
681 Make LocalStorage persistent using a SQLite database.
683 There's a few things going on here. Whenever an item is changed, we add it to a set of
684 "items to be sync'ed." Instead of immediately scheduling the sync'ing on the background
685 thread, we set a "sync timer" instead. This is to shield against a series of rapid changes
686 to avoid thread churn.
688 When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
689 and schedule the sync task which is where the items are actually committed to disk.
691 Current design for reading items back in from disk is to be as aggressive as possible.
692 When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
693 they are immediately available. A future enhancement will be to being this pre-fetching the
694 moment we start loading a page when we know that page has LocalStorage.
696 * storage/LocalStorageArea.cpp:
697 (WebCore::LocalStorageArea::LocalStorageArea):
698 (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it.
699 (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it.
700 (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it.
701 (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it. The second case is
702 because if the item is set while the import is still in progress, the new value should override whatever
703 the imported value is.
704 (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it. See the
705 explanation for setItem()
706 (WebCore::LocalStorageArea::contains): Return whether or not the item is contained. Do the same dance with
707 the import flag, import lock, and import condition that the above methods do.
709 (WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
710 (WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
711 (WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously
714 (WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
715 (WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed." If any
716 items are later set before the actual removal takes place, they will be written *after* the removal.
717 (WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then
718 schedule a sync task. Also transfer the "items cleared" flag to the "background thread items cleared" flag
719 (WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
720 (WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
721 (WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items. Then update or delete
722 each item waiting to be sync'ed
723 * storage/LocalStorageArea.h:
725 2008-05-06 Brady Eidson <beidson@apple.com>
727 Rubberstamped by Mitz Pettel RTL
729 * storage/LocalStorage.cpp:
730 (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
732 2008-05-06 Brady Eidson <beidson@apple.com>
734 Reviewed by Darin, Sam Weinig, and Anders
736 Preparation for upcoming work making LocalStorage persistent.
738 The final step before code that actually does storage and retrieval of LocalStorage items.
740 The LocalStorage set is responsible for controlling the path and filenames that individual
741 LocalStorageAreas will use for their persistent store. This adds the ability to return that
744 Also, add the scheduling methods that LocalStorageArea will use for importing and syncing
745 it's persistent items.
747 * storage/LocalStorage.cpp:
748 (WebCore::LocalStorage::storageArea): Add some comments re: the future direction of this
749 method once we actually do quota tracking.
750 (WebCore::LocalStorage::fullDatabaseFilename):
751 (WebCore::LocalStorage::scheduleImport):
752 (WebCore::LocalStorage::scheduleSync):
753 * storage/LocalStorage.h:
755 2008-05-06 Chris Fleizach <cfleizach@apple.com>
757 Reviewed by Beth Dakin.
759 rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
761 * WebCore.xcodeproj/project.pbxproj:
762 * html/HTMLOptGroupElement.cpp:
763 (WebCore::HTMLOptGroupElement::ownerSelectElement):
764 (WebCore::HTMLOptGroupElement::accessKeyAction):
765 * html/HTMLOptGroupElement.h:
766 * html/HTMLOptionElement.cpp:
767 (WebCore::HTMLOptionElement::accessKeyAction):
768 (WebCore::HTMLOptionElement::index):
769 (WebCore::HTMLOptionElement::setSelected):
770 (WebCore::HTMLOptionElement::childrenChanged):
771 (WebCore::HTMLOptionElement::ownerSelectElement):
772 (WebCore::HTMLOptionElement::insertedIntoDocument):
773 * html/HTMLOptionElement.h:
774 * html/HTMLSelectElement.cpp:
775 (WebCore::HTMLSelectElement::childrenChanged):
776 (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
777 * html/HTMLSelectElement.h:
778 * page/AXObjectCache.cpp:
779 (WebCore::AXObjectCache::get):
780 * page/AccessibilityListBox.cpp: Added.
781 (WebCore::AccessibilityListBox::AccessibilityListBox):
782 (WebCore::AccessibilityListBox::~AccessibilityListBox):
783 (WebCore::AccessibilityListBox::create):
784 (WebCore::AccessibilityListBox::addChildren):
785 (WebCore::AccessibilityListBox::selectedChildren):
786 (WebCore::AccessibilityListBox::visibleChildren):
787 (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
788 (WebCore::AccessibilityListBox::doAccessibilityHitTest):
789 * page/AccessibilityListBox.h: Added.
790 (WebCore::AccessibilityListBox::accessibilityShouldUseUniqueId):
791 (WebCore::AccessibilityListBox::isListBox):
792 (WebCore::AccessibilityListBox::canSetFocusAttribute):
793 (WebCore::AccessibilityListBox::roleValue):
794 (WebCore::AccessibilityListBox::accessibilityIsIgnored):
795 * page/AccessibilityListBoxOption.cpp: Added.
796 (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
797 (WebCore::AccessibilityListBoxOption::~AccessibilityListBoxOption):
798 (WebCore::AccessibilityListBoxOption::create):
799 (WebCore::AccessibilityListBoxOption::isEnabled):
800 (WebCore::AccessibilityListBoxOption::isSelected):
801 (WebCore::AccessibilityListBoxOption::elementRect):
802 (WebCore::AccessibilityListBoxOption::title):
803 (WebCore::AccessibilityListBoxOption::size):
804 (WebCore::AccessibilityListBoxOption::actionElement):
805 (WebCore::AccessibilityListBoxOption::parentObject):
806 (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
807 (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
808 * page/AccessibilityListBoxOption.h: Added.
809 (WebCore::AccessibilityListBoxOption::setHTMLElement):
810 (WebCore::AccessibilityListBoxOption::roleValue):
811 (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
812 (WebCore::AccessibilityListBoxOption::isListBoxOption):
813 * page/AccessibilityObject.h:
814 (WebCore::AccessibilityObject::isListBox):
815 * page/AccessibilityRenderObject.cpp:
816 (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
817 * page/mac/AccessibilityObjectWrapper.mm:
818 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
819 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
820 * rendering/RenderListBox.cpp:
821 (WebCore::RenderListBox::selectionChanged):
822 * rendering/RenderListBox.h:
824 2008-05-06 Chris Fleizach <cfleizach@apple.com>
826 Reviewed by Beth Dakin.
828 <rdar://problem/5455287> AXWebArea should include AXURL
830 * page/AccessibilityRenderObject.cpp:
831 (WebCore::AccessibilityRenderObject::url):
832 * page/mac/AccessibilityObjectWrapper.mm:
833 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
835 2008-05-06 Alice Liu <alice.liu@apple.com>
837 Rubber-stamped by Beth
839 stab-in-the-dark attempt at fixing non-mac builds.
843 * WebCore.vcproj/WebCore.vcproj:
844 * WebCoreSources.bkl:
846 2008-05-06 Anders Carlsson <andersca@apple.com>
850 Only use the toplevel application cache when loading subframes.
852 * loader/MainResourceLoader.cpp:
853 (WebCore::MainResourceLoader::load):
855 2008-05-06 Adam Barth <abarth-webkit@adambarth.com>
857 Reviewed by Sam Weinig.
859 https://bugs.webkit.org/show_bug.cgi?id=18725
860 Implement asynchronous postMessage.
861 MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.
863 Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
865 Test: http/tests/security/postMessage/delivery-order.html
867 * dom/MessageEvent.cpp:
868 (WebCore::MessageEvent::MessageEvent):
869 * page/DOMWindow.cpp:
870 (WebCore::PostMessageTimer::PostMessageTimer):
871 (WebCore::PostMessageTimer::event):
872 (WebCore::PostMessageTimer::targetOrigin):
873 (WebCore::PostMessageTimer::fired):
874 (WebCore::DOMWindow::postMessage):
875 (WebCore::DOMWindow::postMessageTimerFired):
877 * page/DOMWindow.idl:
879 2008-05-06 Anders Carlsson <andersca@apple.com>
883 Store cache to the database.
885 * loader/appcache/ApplicationCache.cpp:
886 (WebCore::ApplicationCache::addResource):
887 If the cache has been saved to disk, save the resource as well.
889 * loader/appcache/ApplicationCache.h:
890 (WebCore::ApplicationCache::onlineWhitelist):
891 New method which returns the online whitelist.
893 (WebCore::ApplicationCache::setStorageId):
894 (WebCore::ApplicationCache::storageId):
895 Setter/getter for the application cache storage ID.
897 * loader/appcache/ApplicationCacheGroup.cpp:
898 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
899 Save the cache/group to disk.
901 * loader/appcache/ApplicationCacheGroup.h:
902 (WebCore::ApplicationCacheGroup::setStorageID):
903 (WebCore::ApplicationCacheGroup::storageID):
904 Setter/getter for the application cache group storage ID.
906 * loader/appcache/ApplicationCacheResource.cpp:
907 (WebCore::ApplicationCacheResource::addType):
908 We can't add a new type if the resource has been saved to disk.
910 * loader/appcache/ApplicationCacheResource.h:
911 (WebCore::ApplicationCacheResource::setStorageID):
912 (WebCore::ApplicationCacheResource::storageID):
913 Setter/getter for the application cache resource storage ID.
915 * loader/appcache/ApplicationCacheStorage.cpp:
916 * loader/appcache/ApplicationCacheStorage.cpp:
917 (WebCore::ApplicationCacheStorage::executeSQLCommand):
918 New method for executing SQL and logging any errors.
920 (WebCore::ApplicationCacheStorage::openDatabase):
923 (WebCore::ApplicationCacheStorage::executeStatement):
924 New method for executing an SQL statement and logging any errors.
926 (WebCore::ApplicationCacheStorage::store):
927 New methods for storing a cache group, cache and cache resource to the store.
929 (WebCore::ApplicationCacheStorage::storeNewestCache):
930 New method which stores the newest cache and updates the newest cache field in the cache group.
932 * loader/appcache/ApplicationCacheStorage.h:
935 * platform/sql/SQLiteStatement.h:
936 (WebCore::SQLiteStatement::query):
937 Getter for the SQL query.
939 2008-05-06 Brady Eidson <beidson@apple.com>
941 Reviewed by Darin Adler
943 Preparation for upcoming work making LocalStorage persistent.
945 Writing persistent values for LocalStorage will take place on a background thread.
946 Here is that background thread, as well as most of the hooks that will be utilized to
947 make the whole song and dance work.
949 The thread itself is very simple and MessageQueue based. LocalStorageTasks are what
950 mark the work that needs to be done and come in 5 flavors: Import and Sync a LocalStorage set,
951 Import and Sync a LocalStorageArea, and terminate the thread.
953 This patch accomplished 2 things:
955 1 - Each PageGroup has its own LocalStorage set. Upon its creation its LocalStorageThread is
958 2 - At application shutdown, each thread is synchronously terminated.
960 What happens between steps 1 and 2 will come later.
964 * WebCore.vcproj/WebCore.vcproj:
965 * WebCore.xcodeproj/project.pbxproj:
966 * WebCoreSources.bkl:
968 * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
969 method is meant to be called from.
970 (WebCore::LocalStorage::LocalStorage):
971 (WebCore::LocalStorage::storageArea):
972 (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
973 (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
974 (WebCore::LocalStorage::close): Synchronously terminate the thread.
975 * storage/LocalStorage.h:
977 * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
978 method is meant to be called from.
979 (WebCore::LocalStorageArea::itemChanged):
980 (WebCore::LocalStorageArea::itemRemoved):
981 (WebCore::LocalStorageArea::areaCleared):
982 (WebCore::LocalStorageArea::dispatchStorageEvent):
983 (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this
984 LocalStorageArea to prime the page before the items are needed
985 (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
986 * storage/LocalStorageArea.h:
988 * storage/LocalStorageTask.cpp: Added.
989 (WebCore::LocalStorageTask::LocalStorageTask):
990 (WebCore::LocalStorageTask::performTask):
991 * storage/LocalStorageTask.h: Added.
992 (WebCore::LocalStorageTask::):
993 (WebCore::LocalStorageTask::createImport):
994 (WebCore::LocalStorageTask::createSync):
995 (WebCore::LocalStorageTask::createTerminate):
997 * storage/LocalStorageThread.cpp: Added.
998 (WebCore::LocalStorageThread::create):
999 (WebCore::LocalStorageThread::LocalStorageThread):
1000 (WebCore::LocalStorageThread::start):
1001 (WebCore::LocalStorageThread::localStorageThreadStart):
1002 (WebCore::LocalStorageThread::localStorageThread):
1003 (WebCore::LocalStorageThread::scheduleImport):
1004 (WebCore::LocalStorageThread::scheduleSync):
1005 (WebCore::LocalStorageThread::terminate):
1006 (WebCore::LocalStorageThread::performTerminate):
1007 * storage/LocalStorageThread.h: Added.
1009 2008-05-06 Anders Carlsson <andersca@apple.com>
1013 Add NPN_PopUpContextMenu.
1016 * plugins/npfunctions.h:
1018 2008-05-06 Alp Toker <alp@nuanti.com>
1020 GTK+ build fix. Add file from r32911 to the build.
1024 2008-05-06 Gwenole Beauchesne <gbeauchesne@splitted-desktop.org>
1026 Reviewed by Alp Toker.
1028 http://bugs.webkit.org/show_bug.cgi?id=18906
1029 [GTK] Fix varargs terminator in g_build_filename()
1031 * plugins/gtk/PluginDatabaseGtk.cpp:
1032 (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
1035 2008-05-06 Kevin McCullough <kmccullough@apple.com>
1037 - Forgot to update localized Strings from previous checkin.
1039 * English.lproj/localizedStrings.js:
1041 2008-05-06 Chris Fleizach <cfleizach@apple.com>
1043 Reviewed by Beth Dakin
1045 <rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
1046 <rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
1047 <rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9
1049 Initial prep work to support accessibility objects that do not have renderers.
1051 * WebCore.xcodeproj/project.pbxproj:
1052 * page/AXObjectCache.cpp:
1053 (WebCore::AXObjectCache::~AXObjectCache):
1054 (WebCore::AXObjectCache::get):
1055 (WebCore::AXObjectCache::remove):
1056 (WebCore::AXObjectCache::getAXID):
1057 (WebCore::AXObjectCache::removeAXID):
1058 (WebCore::AXObjectCache::childrenChanged):
1059 * page/AXObjectCache.h:
1060 (WebCore::AXObjectCache::isIDinUse):
1061 * page/AccessibilityObject.cpp:
1062 (WebCore::AccessibilityObject::AccessibilityObject):
1063 (WebCore::AccessibilityObject::create):
1064 (WebCore::AccessibilityObject::detach):
1065 (WebCore::AccessibilityObject::firstChild):
1066 (WebCore::AccessibilityObject::lastChild):
1067 (WebCore::AccessibilityObject::previousSibling):
1068 (WebCore::AccessibilityObject::nextSibling):
1069 (WebCore::AccessibilityObject::parentObject):
1070 (WebCore::AccessibilityObject::layoutCount):
1071 (WebCore::AccessibilityObject::text):
1072 (WebCore::AccessibilityObject::helpText):
1073 (WebCore::AccessibilityObject::textUnderElement):
1074 (WebCore::AccessibilityObject::isARIAInput):
1075 (WebCore::AccessibilityObject::isARIAControl):
1076 (WebCore::AccessibilityObject::intValue):
1077 (WebCore::AccessibilityObject::stringValue):
1078 (WebCore::AccessibilityObject::title):
1079 (WebCore::AccessibilityObject::accessibilityDescription):
1080 (WebCore::AccessibilityObject::boundingBoxRect):
1081 (WebCore::AccessibilityObject::elementRect):
1082 (WebCore::AccessibilityObject::size):
1083 (WebCore::AccessibilityObject::linkedUIElement):
1084 (WebCore::AccessibilityObject::textLength):
1085 (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
1086 (WebCore::AccessibilityObject::selectedText):
1087 (WebCore::AccessibilityObject::accessKey):
1088 (WebCore::AccessibilityObject::selection):
1089 (WebCore::AccessibilityObject::selectedTextRange):
1090 (WebCore::AccessibilityObject::setSelectedTextRange):
1091 (WebCore::AccessibilityObject::url):
1092 (WebCore::AccessibilityObject::setFocused):
1093 (WebCore::AccessibilityObject::setValue):
1094 (WebCore::AccessibilityObject::axObjectCache):
1095 (WebCore::AccessibilityObject::getDocumentLinks):
1096 (WebCore::AccessibilityObject::widget):
1097 (WebCore::AccessibilityObject::widgetForAttachmentView):
1098 (WebCore::AccessibilityObject::anchorElement):
1099 (WebCore::AccessibilityObject::actionElement):
1100 (WebCore::AccessibilityObject::visiblePositionRange):
1101 (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
1102 (WebCore::AccessibilityObject::visiblePositionForIndex):
1103 (WebCore::AccessibilityObject::indexForVisiblePosition):
1104 (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
1105 (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
1106 (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
1107 (WebCore::AccessibilityObject::textMarkerForIndex):
1108 (WebCore::AccessibilityObject::rangeForTextMarkerRange):
1109 (WebCore::AccessibilityObject::indexForTextMarker):
1110 (WebCore::AccessibilityObject::doAXRangeForLine):
1111 (WebCore::AccessibilityObject::doAXRangeForPosition):
1112 (WebCore::AccessibilityObject::doAXRangeForIndex):
1113 (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
1114 (WebCore::AccessibilityObject::doAXStringForRange):
1115 (WebCore::AccessibilityObject::doAXBoundsForRange):
1116 (WebCore::AccessibilityObject::doAccessibilityHitTest):
1117 (WebCore::AccessibilityObject::focusedUIElement):
1118 (WebCore::AccessibilityObject::observableObject):
1119 (WebCore::AccessibilityObject::roleValue):
1120 (WebCore::AccessibilityObject::ariaRoleAttribute):
1121 (WebCore::AccessibilityObject::childrenChanged):
1122 (WebCore::AccessibilityObject::addChildren):
1123 (WebCore::AccessibilityObject::removeAXObjectID):
1124 * page/AccessibilityObject.h:
1126 (WebCore::PlainTextRange::PlainTextRange):
1127 (WebCore::PlainTextRange::isNull):
1128 (WebCore::AccessibilityObject::isAccessibilityRenderObject):
1129 (WebCore::AccessibilityObject::isAnchor):
1130 (WebCore::AccessibilityObject::isAttachment):
1131 (WebCore::AccessibilityObject::isHeading):
1132 (WebCore::AccessibilityObject::isLink):
1133 (WebCore::AccessibilityObject::isImage):
1134 (WebCore::AccessibilityObject::isNativeImage):
1135 (WebCore::AccessibilityObject::isImageButton):
1136 (WebCore::AccessibilityObject::isPasswordField):
1137 (WebCore::AccessibilityObject::isTextControl):
1138 (WebCore::AccessibilityObject::isNativeTextControl):
1139 (WebCore::AccessibilityObject::isWebArea):
1140 (WebCore::AccessibilityObject::isCheckboxOrRadio):
1141 (WebCore::AccessibilityObject::isChecked):
1142 (WebCore::AccessibilityObject::isEnabled):
1143 (WebCore::AccessibilityObject::isSelected):
1144 (WebCore::AccessibilityObject::isFocused):
1145 (WebCore::AccessibilityObject::isHovered):
1146 (WebCore::AccessibilityObject::isIndeterminate):
1147 (WebCore::AccessibilityObject::isLoaded):
1148 (WebCore::AccessibilityObject::isMultiSelect):
1149 (WebCore::AccessibilityObject::isOffScreen):
1150 (WebCore::AccessibilityObject::isPressed):
1151 (WebCore::AccessibilityObject::isReadOnly):
1152 (WebCore::AccessibilityObject::isVisited):
1153 (WebCore::AccessibilityObject::canSetFocusAttribute):
1154 (WebCore::AccessibilityObject::canSetTextRangeAttributes):
1155 (WebCore::AccessibilityObject::canSetValueAttribute):
1156 (WebCore::AccessibilityObject::hasIntValue):
1157 (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
1158 (WebCore::AccessibilityObject::accessibilityIsIgnored):
1159 (WebCore::AccessibilityObject::children):
1160 (WebCore::AccessibilityObject::hasChildren):
1161 (WebCore::AccessibilityObject::setWrapper):
1162 (WebCore::AccessibilityObject::isDetached):
1163 * page/AccessibilityRenderObject.cpp: Added.
1164 (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1165 (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
1166 (WebCore::AccessibilityRenderObject::create):
1167 (WebCore::AccessibilityRenderObject::detach):
1168 (WebCore::AccessibilityRenderObject::firstChild):
1169 (WebCore::AccessibilityRenderObject::lastChild):
1170 (WebCore::AccessibilityRenderObject::previousSibling):
1171 (WebCore::AccessibilityRenderObject::nextSibling):
1172 (WebCore::AccessibilityRenderObject::parentObject):
1173 (WebCore::AccessibilityRenderObject::isWebArea):
1174 (WebCore::AccessibilityRenderObject::isImageButton):
1175 (WebCore::AccessibilityRenderObject::isAnchor):
1176 (WebCore::AccessibilityRenderObject::isNativeTextControl):
1177 (WebCore::AccessibilityRenderObject::isTextControl):
1178 (WebCore::AccessibilityRenderObject::isNativeImage):
1179 (WebCore::AccessibilityRenderObject::isImage):
1180 (WebCore::AccessibilityRenderObject::isAttachment):
1181 (WebCore::AccessibilityRenderObject::isPasswordField):
1182 (WebCore::AccessibilityRenderObject::isCheckboxOrRadio):
1183 (WebCore::AccessibilityRenderObject::isPressed):
1184 (WebCore::AccessibilityRenderObject::isIndeterminate):
1185 (WebCore::AccessibilityRenderObject::isChecked):
1186 (WebCore::AccessibilityRenderObject::isHovered):
1187 (WebCore::AccessibilityRenderObject::isMultiSelect):
1188 (WebCore::AccessibilityRenderObject::isReadOnly):
1189 (WebCore::AccessibilityRenderObject::isOffScreen):
1190 (WebCore::AccessibilityRenderObject::headingLevel):
1191 (WebCore::AccessibilityRenderObject::isHeading):
1192 (WebCore::AccessibilityRenderObject::isLink):
1193 (WebCore::AccessibilityRenderObject::anchorElement):
1194 (WebCore::AccessibilityRenderObject::actionElement):
1195 (WebCore::AccessibilityRenderObject::mouseButtonListener):
1196 (WebCore::AccessibilityRenderObject::helpText):
1197 (WebCore::AccessibilityRenderObject::textUnderElement):
1198 (WebCore::AccessibilityRenderObject::hasIntValue):
1199 (WebCore::AccessibilityRenderObject::intValue):
1200 (WebCore::AccessibilityRenderObject::stringValue):
1201 (WebCore::labelForElement):
1202 (WebCore::AccessibilityRenderObject::title):
1203 (WebCore::AccessibilityRenderObject::accessibilityDescription):
1204 (WebCore::AccessibilityRenderObject::boundingBoxRect):
1205 (WebCore::AccessibilityRenderObject::elementRect):
1206 (WebCore::AccessibilityRenderObject::size):
1207 (WebCore::AccessibilityRenderObject::linkedUIElement):
1208 (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
1209 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1210 (WebCore::AccessibilityRenderObject::isLoaded):
1211 (WebCore::AccessibilityRenderObject::layoutCount):
1212 (WebCore::AccessibilityRenderObject::text):
1213 (WebCore::AccessibilityRenderObject::textLength):
1214 (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
1215 (WebCore::AccessibilityRenderObject::selectedText):
1216 (WebCore::AccessibilityRenderObject::accessKey):
1217 (WebCore::AccessibilityRenderObject::selection):
1218 (WebCore::AccessibilityRenderObject::selectedTextRange):
1219 (WebCore::AccessibilityRenderObject::setSelectedTextRange):
1220 (WebCore::AccessibilityRenderObject::url):
1221 (WebCore::AccessibilityRenderObject::isVisited):
1222 (WebCore::AccessibilityRenderObject::isSelected):
1223 (WebCore::AccessibilityRenderObject::isFocused):
1224 (WebCore::AccessibilityRenderObject::setFocused):
1225 (WebCore::AccessibilityRenderObject::setValue):
1226 (WebCore::AccessibilityRenderObject::isEnabled):
1227 (WebCore::AccessibilityRenderObject::topRenderer):
1228 (WebCore::AccessibilityRenderObject::widget):
1229 (WebCore::AccessibilityRenderObject::axObjectCache):
1230 (WebCore::AccessibilityRenderObject::getDocumentLinks):
1231 (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
1232 (WebCore::AccessibilityRenderObject::frameViewIfRenderView):
1233 (WebCore::AccessibilityRenderObject::visiblePositionRange):
1234 (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
1235 (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
1236 (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
1237 (WebCore::AccessibilityRenderObject::doAXBoundsForTextMarkerRange):
1238 (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
1239 (WebCore::AccessibilityRenderObject::doAXTextMarkerForPosition):
1240 (WebCore::AccessibilityRenderObject::textMarkerForIndex):
1241 (WebCore::AccessibilityRenderObject::indexForTextMarker):
1242 (WebCore::AccessibilityRenderObject::doAXRangeForLine):
1243 (WebCore::AccessibilityRenderObject::doAXRangeForIndex):
1244 (WebCore::AccessibilityRenderObject::doAXStringForRange):
1245 (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
1246 (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1247 (WebCore::AccessibilityRenderObject::focusedUIElement):
1248 (WebCore::AccessibilityRenderObject::observableObject):
1249 (WebCore::createARIARoleMap):
1250 (WebCore::RoleEntry::):
1251 (WebCore::ariaRoleToWebCoreRole):
1252 (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
1253 (WebCore::AccessibilityRenderObject::roleValue):
1254 (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
1255 (WebCore::AccessibilityRenderObject::canSetValueAttribute):
1256 (WebCore::AccessibilityRenderObject::canSetTextRangeAttributes):
1257 (WebCore::AccessibilityRenderObject::childrenChanged):
1258 (WebCore::AccessibilityRenderObject::children):
1259 (WebCore::AccessibilityRenderObject::addChildren):
1260 (WebCore::AccessibilityRenderObject::removeAXObjectID):
1261 (WebCore::AccessibilityRenderObject::actionVerb):
1262 * page/AccessibilityRenderObject.h: Added.
1263 (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject):
1264 (WebCore::AccessibilityRenderObject::areaElement):
1265 (WebCore::AccessibilityRenderObject::setRenderer):
1266 (WebCore::AccessibilityRenderObject::renderer):
1267 (WebCore::AccessibilityRenderObject::setRenderObject):
1268 (WebCore::AccessibilityRenderObject::isDetached):
1269 * page/mac/AXObjectCacheMac.mm:
1270 (WebCore::AXObjectCache::detachWrapper):
1271 (WebCore::AXObjectCache::selectedChildrenChanged):
1272 (WebCore::AXObjectCache::postNotification):
1273 * page/mac/AccessibilityObjectWrapper.mm:
1274 (textMarkerForVisiblePosition):
1275 (CreateCGColorIfDifferent):
1276 (AXAttributeStringSetHeadingLevel):
1277 (AXLinkElementForNode):
1278 (AXAttributeStringSetElement):
1279 (AXAttributedStringAppendText):
1280 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1281 (-[AccessibilityObjectWrapper documentFrameView:]):
1282 (-[AccessibilityObjectWrapper position]):
1284 (-[AccessibilityObjectWrapper roleDescription]):
1285 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1286 (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
1287 (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1288 (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
1289 (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
1290 (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
1291 (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1293 2008-05-06 Jonathan Haas <myrdred@gmail.com>
1295 Reviewed by Rob Buis.
1297 https://bugs.webkit.org/show_bug.cgi?id=18859\
1298 Prevented SVGRootInlineBox from static_casting a
1299 node to a class it doesn't inherit
1301 * rendering/SVGRootInlineBox.cpp:
1302 (WebCore::SVGRootInlineBox::buildTextChunks):
1304 2008-05-06 Brady Eidson <beidson@apple.com>
1306 Reviewed by Darin Adler
1308 Preparation for upcoming work making LocalStorage persistent.
1310 When the application terminates, all pending local storage writes need to be
1311 sync'ed out to disk.
1312 This works n combination with platform specific code in WebKit that calls it.
1316 * page/PageGroup.cpp:
1317 (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
1320 * storage/LocalStorage.cpp:
1321 (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
1322 local storage thread in the future.
1323 * storage/LocalStorage.h:
1325 2008-05-06 Brady Eidson <beidson@apple.com>
1327 Rubberstamped by David Kilzer
1329 * WebCore.base.exp: Sort this mess!
1331 2008-05-05 Mark Rowe <mrowe@apple.com>
1333 Reviewed by Dan Bernstein.
1335 Fix 60 crashes seen on the buildbots that were misreported as hangs.
1338 (WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
1339 (WebCore::Document::nodeWillBeRemoved): Ditto.
1340 (WebCore::Document::textInserted): Ditto.
1341 (WebCore::Document::textNodesMerged): Ditto.
1342 (WebCore::Document::textRemoved): Ditto.
1344 2008-05-05 Brady Eidson <beidson@apple.com>
1346 Reviewed by Mitz Pettel RTL
1348 Preparation for upcoming work making LocalStorage persistent.
1350 The other half of the StorageMap::importItem() addition.
1352 * storage/StorageArea.cpp:
1353 (WebCore::StorageArea::importItem):
1354 * storage/StorageArea.h:
1356 2008-05-05 Brady Eidson <beidson@apple.com>
1358 Reviewed by Mitz Pettel RTL
1360 Preparation for upcoming work making LocalStorage persistent.
1362 - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
1363 The Settings of the first Page define what persistent path the LocalStorage will use
1364 - Add a Frame argument for the LocalStorageArea request - this will allow a client object
1365 to be queried before the LocalStorageArea is established
1367 * page/DOMWindow.cpp:
1368 (WebCore::DOMWindow::localStorage):
1370 * page/PageGroup.cpp:
1371 (WebCore::PageGroup::addPage):
1372 (WebCore::PageGroup::localStorage):
1374 * storage/LocalStorage.cpp:
1375 (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument. Deep copy
1376 the path as it will be used from another thread.
1377 (WebCore::LocalStorage::storageArea):
1378 * storage/LocalStorage.h:
1379 (WebCore::LocalStorage::create):
1381 2008-05-05 Brady Eidson <beidson@apple.com>
1383 Reviewed by Mitz Pettel RTL
1385 Preparation for upcoming work making LocalStorage persistent.
1387 StorageMaps normally have copy-on-write semantics to help support SessionStorage.
1388 For LocalStorage, we never want this behavior. When we forcefully import items into
1389 a StorageMap from the LocalStorage background thread, this new import method will be used.
1391 * storage/StorageMap.cpp:
1392 (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
1393 about copy-on-write.
1394 * storage/StorageMap.h:
1396 2008-05-05 Kevin McCullough <kmccullough@apple.com>
1400 -<rdar://problem/5770054> JavaScript profiler (10928)
1401 -Begininings of a UI for the Profiler in the WebInspector.
1403 * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
1405 * page/inspector/DatabasesPanel.js: Changed the name of the Databae's
1406 results table to be more generic as it is now also used by the profiler.
1407 * page/inspector/Images/glossySelected.png: Added.
1408 * page/inspector/Images/profilesIcon.png: Added.
1409 * page/inspector/Images/treeUpTriangleBlack.png: Added.
1410 * page/inspector/Images/treeUpTriangleWhite.png: Added.
1411 * page/inspector/ProfileView.js: Added. Sets up the header of the table.
1412 * page/inspector/ProfilesPanel.js: Added.
1413 * page/inspector/ProfilesPanel.js: Added. Sets up the containers of the
1415 * page/inspector/inspector.css: Change database-result-table to be more
1416 generic as well as add the styles needed by the profiler.
1417 * page/inspector/inspector.html: Add profiler support.
1419 2008-05-05 Brady Eidson <beidson@apple.com>
1421 Change by Darin, reviewed by Brady
1423 Small efficiency improvement Darin just spotted
1425 * storage/StorageMap.cpp:
1426 (WebCore::StorageMap::setItem):
1428 2008-05-05 Antti Koivisto <antti@apple.com>
1432 Fix https://bugs.webkit.org/show_bug.cgi?id=18899
1433 Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
1435 * loader/loader.cpp:
1436 (WebCore::Loader::Loader):
1438 2008-05-05 Brady Eidson <beidson@apple.com>
1440 Reviewed by Sam Weinig
1442 Fix a bug in StorageMap iterator tracking where the iterator was not successfully
1443 invalidated at an appropriate time.
1445 * storage/StorageMap.cpp:
1446 (WebCore::StorageMap::setItem): ALWAYS invalidate it here
1448 2008-05-05 Justin Garcia <justin.garcia@apple.com>
1452 <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
1454 Disable Range mutation on document modifications in Tiger and Leopard Mail,
1455 since they do their own mutation which interferes with ours.
1459 (WebCore::Document::nodeChildrenChanged):
1460 (WebCore::Document::nodeWillBeRemoved):
1461 (WebCore::Document::textInserted):
1462 (WebCore::Document::textRemoved):
1463 (WebCore::Document::textNodesMerged):
1464 (WebCore::Document::textNodeSplit):
1465 * page/Settings.cpp:
1466 (WebCore::Settings::Settings):
1467 (WebCore::Settings::disableRangeMutationForOldAppleMail):
1469 (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
1471 2008-05-05 Sam Weinig <sam@webkit.org>
1473 Reviewed by Tim Hatcher.
1475 Make the Inspector's localizable strings file match the format used by Dashboard widgets.
1477 * English.lproj/InspectorLocalizedStrings.js: Removed.
1478 * English.lproj/localizedStrings.js: Added.
1479 * WebCore.vcproj/WebCore.vcproj:
1480 * WebCore.xcodeproj/project.pbxproj:
1481 * page/inspector/inspector.js:
1483 2008-05-05 Steve Falkenburg <sfalken@apple.com>
1485 Add support for default button appearance.
1486 Add WebCore setting for app chrome mode.
1488 Reviewed by Dave Hyatt.
1490 * css/CSSPrimitiveValueMappings.h:
1491 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1492 * css/CSSValueKeywords.in: Added default-button value keyword.
1493 * page/Settings.cpp:
1494 (WebCore::Settings::Settings):
1495 (WebCore::Settings::setApplicationChromeMode):
1497 (WebCore::Settings::inApplicationChromeMode):
1498 * rendering/RenderButton.cpp:
1499 (WebCore::RenderButton::RenderButton):
1500 (WebCore::RenderButton::setStyle):
1501 (WebCore::RenderButton::timerFired):
1502 * rendering/RenderButton.h:
1503 * rendering/RenderStyle.h:
1505 * rendering/RenderTheme.cpp:
1506 (WebCore::RenderTheme::adjustStyle):
1507 (WebCore::RenderTheme::paint):
1508 (WebCore::RenderTheme::paintBorderOnly):
1509 (WebCore::RenderTheme::paintDecorations):
1510 (WebCore::RenderTheme::isControlStyled):
1511 (WebCore::RenderTheme::isDefault):
1512 * rendering/RenderTheme.h:
1514 * rendering/RenderThemeSafari.cpp:
1515 (WebCore::RenderThemeSafari::determineState):
1516 (WebCore::RenderThemeSafari::adjustRepaintRect):
1517 (WebCore::RenderThemeSafari::adjustButtonStyle):
1518 * rendering/RenderThemeWin.cpp:
1519 (WebCore::RenderThemeWin::supportsFocus):
1521 2008-05-05 Alexey Proskuryakov <ap@webkit.org>
1525 https://bugs.webkit.org/show_bug.cgi?id=11947
1526 nbsps should be converted to entities in innerHTML
1528 https://bugs.webkit.org/show_bug.cgi?id=18769
1529 replacing with spaces using regexp creates inconsistent result
1531 Tests: fast/dom/innerHTML-nbsp.html
1532 fast/dom/innerHTML-escaping-attribute.html
1534 * editing/markup.cpp:
1535 (WebCore::appendAttributeValue):
1536 (WebCore::escapeContentText):
1537 (WebCore::appendEscapedContent):
1538 Added U+00a0/nbsp to the list of characters to escape.
1540 2008-05-05 David Hyatt <hyatt@apple.com>
1542 Fix for https://bugs.webkit.org/show_bug.cgi?id=18821. Fix some bugs in both get/PutImageData of <canvas>.
1546 New tests added in fast/canvas/
1548 * platform/graphics/cg/ImageBufferCG.cpp:
1549 (WebCore::ImageBuffer::getImageData):
1550 (WebCore::ImageBuffer::putImageData):
1552 2008-05-05 Dan Bernstein <mitz@apple.com>
1554 Reviewed by Dave Hyatt.
1556 - fix https://bugs.webkit.org/show_bug.cgi?id=18809
1557 Forms with block level generated content and absolutely positioned labels break inline layout (fixed on reflow)
1559 Test: fast/block/basic/adding-near-anonymous-block.html
1561 * rendering/RenderBlock.cpp:
1562 (WebCore::RenderBlock::addChildToFlow): When adding a floating or
1563 positioned object, if it follows an anonymous block, put it
1564 inside the anonymous block. When adding an inline, check if it comes
1565 after an anonymous block and put it in the anonymous block.
1567 2008-05-05 Antti Koivisto <antti@apple.com>
1571 Speculative fix for <rdar://problem/5906790>
1572 Crash in Loader::servePendingRequests() due to hash table being modified during iteration
1574 I don't know how to reproduce this. It would require the load to fail (or succeed)
1575 synchronously, something that should not usually happen.
1577 * loader/loader.cpp:
1578 (WebCore::Loader::Loader):
1579 (WebCore::Loader::load):
1580 (WebCore::Loader::servePendingRequests):
1581 (WebCore::Loader::cancelRequests):
1582 (WebCore::Loader::Host::Host):
1584 (WebCore::Loader::Host::name):
1586 2008-05-05 Ariya Hidayat <ariya.hidayat@trolltech.com>
1590 Disable SVG As Image support in the Qt port again, as it
1591 requires more work. Right now the chrome client is
1592 assumed to be a ChromeClientQt, which the SVG Image support
1597 2008-05-02 Antti Koivisto <antti@apple.com>
1601 Fix <rdar://problem/5840475>
1602 CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
1604 Non-block objects can have transforms so containingBlock() could end up returning null.
1605 RenderObject::container() needs to match.
1607 Test: fast/transforms/container-transform-crash.html
1609 * rendering/RenderObject.cpp:
1610 (WebCore::RenderObject::containingBlock):
1611 (WebCore::RenderObject::container):
1613 2008-05-04 Sam Weinig <sam@webkit.org>
1615 Roll out r32851. It broke tiger builds.
1617 * bindings/objc/DOMUtility.mm:
1618 (KJS::createDOMWrapper):
1619 (WebCore::createDOMWrapper):
1621 2008-05-04 Dan Bernstein <mitz@apple.com>
1623 Reviewed by Sam Weinig.
1625 - fix https://bugs.webkit.org/show_bug.cgi?id=18879
1626 <rdar://problem/5909481> Reproducible crash when removing a gradient
1628 Test: fast/gradients/crash-on-remove.html
1630 * css/CSSImageGeneratorValue.cpp:
1631 (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
1632 (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
1634 (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
1637 2008-05-03 Sam Weinig <sam@webkit.org>
1639 Reviewed by Mark Rowe.
1641 Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
1642 the WebCore namespace now that the required compilers don't freak out about
1645 * bindings/objc/DOMUtility.mm:
1646 (WebCore::createDOMWrapper):
1648 2008-05-03 Rob Buis <buis@kde.org>
1652 https://bugs.webkit.org/show_bug.cgi?id=18652
1653 onchange events don't seem to fire for input[type=range] controls.
1655 Fire changeEvent when clicking the slider outside the current
1658 * rendering/RenderSlider.cpp:
1659 (WebCore::RenderSlider::setValueForPosition):
1661 2008-05-03 Sam Weinig <sam@webkit.org>
1663 Reviewed by Mark Rowe.
1665 Remove unused enums from JSDOMWindowBase.
1667 * bindings/js/JSDOMWindowBase.h:
1668 (WebCore::JSDOMWindowBase::):
1670 2008-05-03 Sam Weinig <sam@webkit.org>
1674 * WebCore.xcodeproj/project.pbxproj:
1676 2008-05-03 Sam Weinig <sam@webkit.org>
1680 * bindings/js/kjs_events.cpp:
1681 (WebCore::JSAbstractEventListener::handleEvent):
1683 2008-05-03 Sam Weinig <sam@webkit.org>
1685 Rubber-stamped by Geoffrey Garen.
1687 Rename JSDOMWindowWrapper to JSDOMWindowShell.
1689 2008-05-01 Rob Buis <buis@kde.org>
1693 https://bugs.webkit.org/show_bug.cgi?id=18568
1694 background: currentColor fails
1696 Implement currentColor from CSS3 color module.
1698 Tests: fast/css/background-currentcolor.html
1700 * css/CSSParser.cpp:
1701 (WebCore::CSSParser::parseValue):
1702 (WebCore::CSSParser::parseBackgroundColor):
1703 * css/CSSStyleSelector.cpp:
1704 (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
1705 * css/CSSValueKeywords.in:
1706 * css/SVGCSSValueKeywords.in:
1708 2008-05-02 Anders Carlsson <andersca@apple.com>
1712 Turns out calling locationInWindow on keyboard events will not throw an exception,
1713 but the point returned is completely bogus, so remove coordinates from the keyboard event struct.
1718 2008-05-02 Benjamin Otte <otte@gnome.org>
1720 Reviewed by Alp Toker.
1722 http://bugs.webkit.org/show_bug.cgi?id=18856
1723 [GTK] variable initialization missing
1725 Not initializing the m_needsXEmbed variable could have very funny
1726 results. Most often those results would be crashes.
1728 * plugins/PluginView.cpp:
1729 (WebCore::PluginView::PluginView):
1731 2008-05-02 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1735 https://bugs.webkit.org/show_bug.cgi?id=18811
1736 Enable dashboard and offline web apps in autotools
1740 2008-05-02 Anders Carlsson <andersca@apple.com>
1744 Name the event union so it will work in plain C.
1749 2008-05-02 Dan Bernstein <mitz@apple.com>
1751 Reviewed by John Sullivan.
1753 - render text shadows with zero offset, as the shadow can be seen behind
1754 the text if the text is translucent
1756 Test: fast/text/shadow-no-blur.html
1758 * platform/graphics/mac/FontMac.mm:
1759 (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the
1760 shadow offset. Since isEmpty() is also true for sizes that have one or
1761 more non-positive components, this also ensures that subpixel
1762 antialiasing of the text is maintained with shadows in all directions.
1763 (WebCore::Font::drawGlyphs): Ditto.
1764 * platform/graphics/win/FontCGWin.cpp:
1765 (WebCore::Font::drawGlyphs): Ditto.
1767 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1771 Build the Qt port with SVG Use and As Image support.
1775 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1779 Fixed potential crash on SVG animation (added more checks to the assert).
1781 * svg/SVGUseElement.cpp:
1782 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
1784 2008-05-02 Alexey Proskuryakov <ap@webkit.org>
1786 Rubber-stamped by John Sullivan.
1788 Fix a debug-only crash in layout tests.
1790 * loader/CachedResource.cpp:
1791 (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
1793 2008-05-02 Simon Hausmann <shausman@trolltech.com>
1795 Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
1797 * WebCore.pro: Don't use QT += phonon as it prepends the phonon
1798 includes to the include paths. Instead add it manually and make sure
1799 phonon comes last, to avoid the conflict of phonon's path.h with
1800 WebCore's Path.h on case-insensitive filesystems.
1802 2008-05-02 Simon Hausmann <hausmann@webkit.org>
1804 Fix the Qt build. Add ExecState where necessary.
1806 * bridge/qt/qt_class.cpp:
1807 (KJS::Bindings::QtClass::fallbackObject):
1808 * bridge/qt/qt_instance.cpp:
1809 (KJS::Bindings::QtRuntimeObjectImp::construct):
1810 (KJS::Bindings::QtInstance::getRuntimeObject):
1811 (KJS::Bindings::QtInstance::invokeDefaultMethod):
1812 (KJS::Bindings::QtInstance::defaultValue):
1813 (KJS::Bindings::QtInstance::stringValue):
1814 * bridge/qt/qt_instance.h:
1815 (KJS::Bindings::QtInstance::getObject):
1816 * bridge/qt/qt_runtime.cpp:
1817 (KJS::Bindings::convertValueToQVariant):
1818 (KJS::Bindings::convertQVariantToValue):
1819 (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
1820 (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
1821 (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
1822 (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
1823 (KJS::Bindings::QtConnectionObject::execute):
1824 * bridge/runtime.cpp:
1825 (KJS::Bindings::Instance::createRuntimeObject):
1827 2008-05-02 Simon Hausmann <shausman@trolltech.com>
1829 Fix the Qt/Win build.
1832 * platform/qt/TemporaryLinkStubs.cpp:
1833 (PluginDatabase::getPluginPathsInDirectories):
1834 (PluginDatabase::defaultPluginDirectories):
1835 (PluginDatabase::isPreferredPluginDirectory):
1836 (PluginView::setNPWindowRect):
1837 (PluginView::userAgent):
1838 (PluginView::invalidateRect):
1839 (PluginView::invalidateRegion):
1840 (PluginView::forceRedraw):
1841 (PluginView::setFocus):
1844 (PluginView::paint):
1845 (PluginView::setParent):
1846 (PluginView::attachToWindow):
1847 (PluginView::detachFromWindow):
1848 (PluginView::updateWindow):
1849 (PluginView::handleKeyboardEvent):
1850 (PluginView::handleMouseEvent):
1851 (PluginView::handlePostReadFile):
1852 (PluginView::getValue):
1853 * plugins/qt/PluginPackageQt.cpp:
1854 (WebCore::PluginPackage::load):
1856 2008-05-02 Alexey Proskuryakov <ap@webkit.org>
1858 Reviewed by Geoffrey Garen.
1860 https://bugs.webkit.org/show_bug.cgi?id=18826
1861 Make JavaScript heap per-thread
1863 This is mostly adaptation for JSC changes. The most prominent one is that JSObject
1864 allocator now takes ExecState, e.g. "new (exec) JSXMLHttpRequestConstructor(...)". It is
1865 OK to pass either the current or global one, whichever is faster to get hold of, as both
1866 have the same reference to a per-thread JS heap.
1868 * bindings/scripts/CodeGeneratorJS.pm: Pass ExecState to functions that now need it.
1869 JSDOMWindow, JSDOMWindowPrototype and JSDOMWindowWrapper are special, because they are
1870 constructed before any ExecState comes into existence, so they use Heap::threadHeap()
1871 directly for allocation.
1873 * bindings/js/JSDOMWindowWrapper.cpp:
1874 (WebCore::JSDOMWindowWrapper::operator new):
1875 * bindings/js/JSDOMWindowWrapper.h:
1876 Added a custom operator new to use per-thread heap when there's no ExecState around.
1878 * bindings/js/JSAudioConstructor.cpp:
1879 (WebCore::JSAudioConstructor::JSAudioConstructor):
1880 * bindings/js/JSCSSRuleCustom.cpp:
1882 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1883 (WebCore::JSCSSStyleDeclaration::nameGetter):
1884 * bindings/js/JSCSSValueCustom.cpp:
1886 * bindings/js/JSCanvasPixelArrayCustom.cpp:
1887 (WebCore::JSCanvasPixelArray::indexGetter):
1889 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
1891 * bindings/js/JSClipboardCustom.cpp:
1892 (WebCore::JSClipboard::types):
1893 (WebCore::JSClipboard::getData):
1894 * bindings/js/JSCustomXPathNSResolver.cpp:
1895 (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1896 * bindings/js/JSDOMApplicationCacheCustom.cpp:
1897 (WebCore::JSDOMApplicationCache::addEventListener):
1898 (WebCore::JSDOMApplicationCache::removeEventListener):
1899 (WebCore::JSDOMApplicationCache::setOnchecking):
1900 (WebCore::JSDOMApplicationCache::setOnerror):
1901 (WebCore::JSDOMApplicationCache::setOnnoupdate):
1902 (WebCore::JSDOMApplicationCache::setOndownloading):
1903 (WebCore::JSDOMApplicationCache::setOnprogress):
1904 (WebCore::JSDOMApplicationCache::setOnupdateready):
1905 (WebCore::JSDOMApplicationCache::setOncached):
1906 * bindings/js/JSDOMWindowBase.cpp:
1907 (WebCore::JSDOMWindowBase::JSDOMWindowBase):
1908 (WebCore::JSDOMWindowBase::getValueProperty):
1909 (WebCore::JSDOMWindowBase::setListener):
1910 (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
1911 (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
1912 (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
1913 (WebCore::windowProtoFuncAToB):
1914 (WebCore::windowProtoFuncBToA):
1915 (WebCore::windowProtoFuncSetTimeout):
1916 (WebCore::windowProtoFuncSetInterval):
1917 (WebCore::windowProtoFuncAddEventListener):
1918 * bindings/js/JSDOMWindowBase.h:
1919 * bindings/js/JSDocumentCustom.cpp:
1921 * bindings/js/JSEventCustom.cpp:
1923 * bindings/js/JSEventTargetBase.cpp:
1924 (WebCore::jsEventTargetAddEventListener):
1925 * bindings/js/JSEventTargetBase.h:
1926 (WebCore::JSEventTargetPrototype::self):
1927 * bindings/js/JSEventTargetNode.cpp:
1928 (WebCore::JSEventTargetNode::setListener):
1929 * bindings/js/JSHTMLCollectionCustom.cpp:
1930 (WebCore::getNamedItems):
1932 * bindings/js/JSHTMLElementWrapperFactory.cpp:
1933 (WebCore::createJSHTMLWrapper):
1934 * bindings/js/JSHTMLFormElementCustom.cpp:
1935 (WebCore::JSHTMLFormElement::nameGetter):
1936 * bindings/js/JSHTMLInputElementBase.cpp:
1937 (WebCore::JSHTMLInputElementBase::getValueProperty):
1938 * bindings/js/JSHTMLOptionElementConstructor.cpp:
1939 (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
1940 * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
1941 (WebCore::JSHTMLOptionsCollection::length):
1942 * bindings/js/JSInspectedObjectWrapper.cpp:
1943 (WebCore::JSInspectedObjectWrapper::wrap):
1944 * bindings/js/JSInspectorCallbackWrapper.cpp:
1945 (WebCore::JSInspectorCallbackWrapper::wrap):
1946 * bindings/js/JSLocationCustom.cpp:
1947 (WebCore::JSLocation::toString):
1948 * bindings/js/JSNamedNodesCollection.cpp:
1949 (WebCore::JSNamedNodesCollection::lengthGetter):
1950 * bindings/js/JSNavigatorCustom.cpp:
1951 (WebCore::JSNavigator::appVersion):
1952 * bindings/js/JSNodeCustom.cpp:
1954 * bindings/js/JSNodeFilterCustom.cpp:
1955 (WebCore::JSNodeFilter::acceptNode):
1956 * bindings/js/JSRGBColor.cpp:
1957 (WebCore::getJSRGBColor):
1958 * bindings/js/JSSQLResultSetRowListCustom.cpp:
1959 (WebCore::JSSQLResultSetRowList::item):
1960 * bindings/js/JSSVGElementWrapperFactory.cpp:
1961 (WebCore::createJSSVGWrapper):
1962 * bindings/js/JSSVGLazyEventListener.cpp:
1963 (WebCore::JSSVGLazyEventListener::eventParameterName):
1964 * bindings/js/JSStorageCustom.cpp:
1965 (WebCore::JSStorage::nameGetter):
1966 * bindings/js/JSStyleSheetCustom.cpp:
1968 * bindings/js/JSXMLHttpRequestConstructor.cpp:
1969 (WebCore::JSXMLHttpRequestConstructor::construct):
1970 * bindings/js/JSXMLHttpRequestCustom.cpp:
1971 (WebCore::JSXMLHttpRequest::setOnreadystatechange):
1972 (WebCore::JSXMLHttpRequest::setOnload):
1973 (WebCore::JSXMLHttpRequest::setOnprogress):
1974 (WebCore::JSXMLHttpRequest::getResponseHeader):
1975 (WebCore::JSXMLHttpRequest::addEventListener):
1976 (WebCore::JSXMLHttpRequest::removeEventListener):
1977 * bindings/js/JSXSLTProcessor.cpp:
1978 (WebCore::jsXSLTProcessorPrototypeFunctionGetParameter):
1979 (WebCore::JSXSLTProcessorConstructor::construct):
1980 * bindings/js/kjs_binding.cpp:
1981 (WebCore::jsStringOrNull):
1982 (WebCore::jsOwnedStringOrNull):
1983 (WebCore::jsStringOrUndefined):
1984 (WebCore::jsStringOrFalse):
1985 (WebCore::nonCachingStaticFunctionGetter):
1986 (WebCore::objectToStringFunctionGetter):
1987 * bindings/js/kjs_binding.h:
1988 (WebCore::DOMObject::DOMObject):
1989 (WebCore::cacheDOMObject):
1990 (WebCore::cacheSVGDOMObject):
1991 * bindings/js/kjs_events.cpp:
1992 (WebCore::JSLazyEventListener::eventParameterName):
1993 (WebCore::JSLazyEventListener::parseCode):
1994 * bindings/js/kjs_html.cpp:
1995 (WebCore::getRuntimeObject):
1996 * bridge/c/c_instance.cpp:
1997 (KJS::Bindings::CInstance::defaultValue):
1998 (KJS::Bindings::CInstance::stringValue):
1999 (KJS::Bindings::CInstance::numberValue):
2000 (KJS::Bindings::CInstance::valueOf):
2001 * bridge/c/c_instance.h:
2002 * bridge/c/c_utility.cpp:
2003 (KJS::Bindings::convertNPVariantToValue):
2004 * bridge/jni/jni_instance.cpp:
2005 (JavaInstance::stringValue):
2006 (JavaInstance::numberValue):
2007 (JavaInstance::invokeMethod):
2008 (JavaInstance::defaultValue):
2009 (JavaInstance::valueOf):
2010 * bridge/jni/jni_instance.h:
2011 * bridge/jni/jni_jsobject.h:
2012 * bridge/jni/jni_jsobject.mm:
2013 (JavaJSObject::call):
2014 (JavaJSObject::setMember):
2015 (JavaJSObject::setSlot):
2016 (JavaJSObject::convertJObjectToValue):
2017 (JavaJSObject::getListFromJArray):
2018 * bridge/jni/jni_objc.mm:
2019 (KJS::Bindings::dispatchJNICall):
2020 * bridge/jni/jni_runtime.cpp:
2021 (JavaArray::convertJObjectToArray):
2022 (JavaField::dispatchValueFromInstance):
2023 (JavaField::valueFromInstance):
2024 (JavaField::dispatchSetValueToInstance):
2025 (JavaArray::valueAt):
2026 * bridge/jni/jni_utility.h:
2027 * bridge/objc/objc_class.mm:
2028 (KJS::Bindings::ObjcClass::fallbackObject):
2029 * bridge/objc/objc_instance.h:
2030 * bridge/objc/objc_instance.mm:
2031 (ObjcInstance::defaultValue):
2032 (ObjcInstance::stringValue):
2033 (ObjcInstance::numberValue):
2034 (ObjcInstance::valueOf):
2035 * bridge/objc/objc_utility.h:
2036 * bridge/objc/objc_utility.mm:
2037 (KJS::Bindings::convertNSStringToString):
2038 (KJS::Bindings::convertObjcValueToValue):
2039 * bridge/runtime.cpp:
2040 (KJS::Bindings::Instance::createRuntimeObject):
2042 (KJS::Bindings::Instance::valueOf):
2043 * bridge/runtime_array.cpp:
2044 (RuntimeArray::lengthGetter):
2045 * bridge/runtime_method.cpp:
2046 (RuntimeMethod::lengthGetter):
2047 * bridge/runtime_object.cpp:
2048 (RuntimeObjectImp::RuntimeObjectImp):
2049 (RuntimeObjectImp::methodGetter):
2050 (RuntimeObjectImp::defaultValue):
2051 * xml/XMLHttpRequest.cpp:
2052 (WebCore::XMLHttpRequest::dropProtection):
2053 * bindings/js/GCController.cpp:
2054 (WebCore::GCController::gcTimerFired):
2055 (WebCore::GCController::garbageCollectNow):
2056 Adapted to JSC changes. Pass ExecState to functions that now need it. Removed
2057 collectOnMainThreadOnly, as this is the only way to collect now. Replaced calls to static
2058 Collector methods with calls to per-thread Heap ones.
2060 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
2064 Build the Qt port with SVG Animation support.
2068 2008-05-02 Simon Hausmann <hausmann@webkit.org>
2070 Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
2071 with different signatures.
2073 * plugins/npfunctions.h:
2075 2008-05-01 Robin Dunn <robin@alldunn.com>
2077 Reviewed by Kevin Ollivier.
2079 Explicitly set the pen style in wx port to keep pen style changes from
2080 affecting URL underline or text field drawing.
2082 https://bugs.webkit.org/show_bug.cgi?id=18775
2084 * platform/graphics/wx/GraphicsContextWx.cpp:
2085 (WebCore::GraphicsContext::fillRect):
2086 (WebCore::GraphicsContext::drawLineForText):
2087 * platform/wx/RenderThemeWx.cpp:
2088 (WebCore::RenderThemeWx::paintTextField):
2090 2008-05-01 Robin Dunn <robin@alldunn.com>
2092 Reviewed by Kevin Ollivier.
2094 Implement popup menu support for wx port.
2096 https://bugs.webkit.org/show_bug.cgi?id=18776
2098 * platform/PopupMenu.h:
2099 * platform/wx/PopupMenuWx.cpp: Added.
2100 (WebCore::PopupMenu::PopupMenu):
2101 (WebCore::PopupMenu::~PopupMenu):
2102 (WebCore::PopupMenu::show):
2103 (WebCore::PopupMenu::OnMenuItemSelected):
2104 (WebCore::PopupMenu::hide):
2105 (WebCore::PopupMenu::updateFromElement):
2106 (WebCore::PopupMenu::itemWritingDirectionIsNatural):
2107 * platform/wx/TemporaryLinkStubs.cpp:
2110 2008-05-01 Kevin Ollivier <kevino@theolliviers.com>
2112 Reviewed by Eric Seidel.
2114 Make sure we properly set the button for all mouse events,
2115 not just mouse down, set the click count to 0
2116 for non-click events, and finally set the timestamp.
2118 https://bugs.webkit.org/show_bug.cgi?id=18464
2120 * platform/wx/MouseEventWx.cpp:
2121 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2123 2008-05-01 Sam Weinig <sam@webkit.org>
2125 Reviewed by Mark Rowe (in his infinite wisdom).
2127 Auto-generate the JSXSLTProcessor binding.
2129 * DerivedSources.make:
2132 * WebCore.vcproj/WebCore.vcproj:
2133 * WebCore.xcodeproj/project.pbxproj:
2134 * WebCoreSources.bkl:
2135 * bindings/js/JSDOMWindowBase.cpp:
2136 (WebCore::JSDOMWindowBase::getValueProperty):
2137 * bindings/js/JSDOMWindowBase.h:
2138 (WebCore::JSDOMWindowBase::):
2139 * bindings/js/JSXSLTProcessor.cpp: Removed.
2140 * bindings/js/JSXSLTProcessor.h: Removed.
2141 * xml/XSLTProcessor.h:
2143 2008-05-01 Sam Weinig <sam@webkit.org>
2145 Reviewed by Geoffrey Garen.
2148 - https://bugs.webkit.org/show_bug.cgi?id=17249
2149 Incorrect lexical scope after navigation leads to UXSS
2150 <rdar://problem/5738497>
2152 - https://bugs.webkit.org/show_bug.cgi?id=16824
2153 Script authorization should follow lexical (not dynamic) scope
2154 <rdar://problem/5683032>
2156 This patch changes us to perform same-origin checks based on the lexical global object)
2157 rather than dynamic global object, which is now possible we don't re-use the window on
2158 navigations, but rather switch in a new one and re-use the outer shell. This is both
2159 more secure and conforms with the HTML5 specification. Now that all the checks are
2160 done based on the lexical global object, we can remove the SecurityOrigin::Reason
2161 concept, as it was only around to work around an ebay.com bug that required the check to
2164 An important thing to note is that we currently implement a stricter than necessary policy
2165 and perform the same-origin check based on the currently active global object to avoid leaking
2166 the document in cases when the target frame is navigated before access. This will be fixed in
2169 * bindings/js/JSDOMWindowBase.cpp:
2170 (WebCore::JSDOMWindowBase::allowsAccessFrom):
2171 (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
2172 (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
2173 (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
2174 (WebCore::JSDOMWindowBase::printErrorMessage):
2175 (WebCore::asJSDOMWindow):
2176 * bindings/js/JSDOMWindowBase.h:
2177 * html/CanvasRenderingContext2D.cpp:
2178 (WebCore::CanvasRenderingContext2D::checkOrigin):
2179 (WebCore::CanvasRenderingContext2D::createPattern):
2180 * loader/FrameLoader.cpp:
2181 (WebCore::FrameLoader::begin):
2182 (WebCore::FrameLoader::write):
2183 (WebCore::FrameLoader::setOpener):
2184 (WebCore::FrameLoader::shouldAllowNavigation):
2186 (WebCore::DOMWindow::setSecurityOrigin):
2187 (WebCore::DOMWindow::securityOrigin):
2188 (WebCore::DOMWindow::setURL):
2189 (WebCore::DOMWindow::url):
2190 * platform/SecurityOrigin.cpp:
2191 (WebCore::SecurityOrigin::canAccess):
2192 (WebCore::SecurityOrigin::isSecureTransitionTo):
2193 * platform/SecurityOrigin.h:
2195 2008-05-01 Anders Carlsson <andersca@apple.com>
2199 Enable 64-bit NPAPI plugins.
2201 * WebCore.xcodeproj/project.pbxproj:
2202 Don't remove NPAPI related symbols from the 64-bit .exp file.
2204 * bridge/npruntime.h:
2205 Remove now unnecessary #error.
2207 2008-05-01 Maciej Stachowiak <mjs@apple.com>
2209 Reviewed by Oliver (a while ago)
2211 - just a wee bit more bindings speedup
2213 Store the per-document Node --> JS wrapper cache in the document
2214 instead of an external hashtable.
2216 * bindings/js/kjs_binding.cpp:
2217 (WebCore::ScriptInterpreter::getDOMNodeForDocument):
2218 (WebCore::ScriptInterpreter::forgetDOMNodeForDocument):
2219 (WebCore::ScriptInterpreter::putDOMNodeForDocument):
2220 (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument):
2221 (WebCore::ScriptInterpreter::markDOMNodesForDocument):
2223 (WebCore::Document::wrapperCache):
2225 2008-05-01 Anders Carlsson <andersca@apple.com>
2229 Remove duplicate npfunctions.h header from WebKit.
2231 * WebCore.xcodeproj/project.pbxproj:
2232 Add npfunctions.h and set its role to private.
2234 * plugins/npfunctions.h:
2235 Merge Mac specific changes.
2237 2008-05-01 Sam Weinig <sam@webkit.org>
2239 Reviewed by Geoffrey Garen.
2241 Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
2244 * bindings/js/JSCustomVoidCallback.cpp:
2245 (WebCore::toVoidCallback):
2246 * bindings/js/JSCustomXPathNSResolver.cpp:
2247 (WebCore::JSCustomXPathNSResolver::create):
2248 * bindings/js/JSDOMApplicationCacheCustom.cpp:
2249 (WebCore::JSDOMApplicationCache::add):
2250 (WebCore::JSDOMApplicationCache::remove):
2251 * bindings/js/JSDOMWindowBase.cpp:
2252 (WebCore::allowPopUp):
2253 (WebCore::createWindow):
2254 (WebCore::windowProtoFuncOpen):
2255 (WebCore::asJSDOMWindow):
2256 * bindings/js/JSDOMWindowBase.h:
2257 * bindings/js/JSDOMWindowCustom.cpp:
2258 (WebCore::JSDOMWindow::setLocation):
2259 (WebCore::JSDOMWindow::postMessage):
2260 * bindings/js/JSDatabaseCustom.cpp:
2261 (WebCore::JSDatabase::changeVersion):
2262 (WebCore::JSDatabase::transaction):
2263 * bindings/js/JSDocumentCustom.cpp:
2264 (WebCore::JSDocument::setLocation):
2265 * bindings/js/JSLocationCustom.cpp:
2266 (WebCore::navigateIfAllowed):
2267 (WebCore::JSLocation::setHref):
2268 (WebCore::JSLocation::replace):
2269 (WebCore::JSLocation::reload):
2270 (WebCore::JSLocation::assign):
2271 * bindings/js/JSSQLTransactionCustom.cpp:
2272 (WebCore::JSSQLTransaction::executeSql):
2273 * bindings/js/JSXMLHttpRequestCustom.cpp:
2274 (WebCore::JSXMLHttpRequest::open):
2275 * page/JavaScriptDebugServer.cpp:
2278 2008-05-01 Anatoli Papirovski <apapirovski@mac.com>
2280 Reviewed by Dave Hyatt.
2282 - fix https://bugs.webkit.org/show_bug.cgi?id=18347
2283 Absolutely positioned image percentage width does not respect container's padding
2285 Test: fast/replaced/absolute-position-percentage-width.html
2287 * rendering/RenderBox.cpp:
2288 (WebCore::RenderBox::calcReplacedWidthUsing):
2290 2008-05-01 Dan Bernstein <mitz@apple.com>
2294 * platform/graphics/win/FontCGWin.cpp:
2295 (WebCore::Font::drawGlyphs):
2297 2008-05-01 Dan Bernstein <mitz@apple.com>
2299 Reviewed by Darin Adler.
2301 - make synthetic bold and synthetic italics work in GDI text
2302 - account for synthetic bold in complex text on Windows
2304 * platform/graphics/win/FontCGWin.cpp:
2305 (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates
2306 to fit italics. Added a skew transform for synthetic italics and a
2307 second paint pass for synthetic bold.
2308 * platform/graphics/win/SimpleFontDataWin.cpp:
2309 (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold
2311 * platform/graphics/win/UniscribeController.cpp:
2312 (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
2315 2008-05-01 Alp Toker <alp@nuanti.com>
2317 Qt/Win build fix attempt following plugin changes. Add missing return
2320 Also fixes some newly introduced coding style issues in the Qt port.
2322 * platform/qt/FileSystemQt.cpp:
2323 (WebCore::openTemporaryFile):
2324 (WebCore::closeFile):
2325 (WebCore::writeToFile):
2326 (WebCore::unloadModule):
2328 2008-05-01 Anders Carlsson <andersca@apple.com>
2332 Export methods needed to subclass Widget. (See r32770.)
2336 2008-05-01 Marc Ordinas i Llopis <marc.ordinasillopis@collabora.co.uk>
2338 Reviewed by Alp Toker.
2339 Qt parts OK'ed by Simon Hausmann.
2341 https://bugs.webkit.org/show_bug.cgi?id=14750
2342 Added support for NPAPI plugins on Gtk and Qt-x11 ports.
2344 * GNUmakefile.am: Added Gtk plugin files.
2345 * WebCore.pro: Added Qt plugins files, defined XP_UNIX and
2346 ENABLE_NETSCAPE_PLUGIN_API
2347 * bridge/npruntime_internal.h: Additional undefs that conflict
2349 * page/gtk/FrameGtk.cpp: Create js bindings for PluginView.
2350 (WebCore::Frame::createScriptInstanceForWidget):
2351 * page/qt/FrameQt.cpp: Create js bindings for PluginView.
2352 (WebCore::Frame::createScriptInstanceForWidget):
2353 (WebCore::Frame::clearPlatformScriptObjects):
2354 (WebCore::Frame::disconnectPlatformScriptObjects):
2355 * platform/FileSystem.h: Qt FileSystem implementation.
2356 * platform/Widget.h: Members to differentiate between Qt plugins and
2358 * platform/gtk/ScrollViewGtk.cpp:
2359 (WebCore::ScrollView::addChild): Set containing window before calling setParent.
2360 * platform/gtk/TemporaryLinkStubs.cpp: Removed implemented functions.
2361 (PluginView::invalidateRegion):
2362 * platform/qt/FileSystemQt.cpp: Implemented functions necessary for
2364 (WebCore::openTemporaryFile):
2365 (WebCore::closeFile):
2366 (WebCore::writeToFile):
2367 (WebCore::unloadModule): Delete module if unloaded.
2368 * platform/qt/TemporaryLinkStubs.cpp: Removed implemented functions.
2369 * platform/qt/WidgetQt.cpp: Differentiate between Qt plugins and
2371 (WebCore::WidgetPrivate::WidgetPrivate):
2372 (WebCore::Widget::isNPAPIPlugin):
2373 (WebCore::Widget::setIsNPAPIPlugin):
2374 * plugins/PluginPackage.cpp:
2375 (WebCore::PluginPackage::~PluginPackage): Unload the module before
2377 (WebCore::PluginPackage::compare): Moved here as it's platform
2379 * plugins/PluginView.cpp: Moved platform-independent functions here.
2380 (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
2382 (WebCore::PluginView::freeStringArray):
2383 (WebCore::startsWithBlankLine):
2384 (WebCore::locationAfterFirstBlankLine):
2386 (WebCore::capitalizeRFC822HeaderFieldName):
2387 (WebCore::parseRFC822HeaderFields):
2388 (WebCore::PluginView::handlePost):
2389 * plugins/PluginView.h: Moved platform-independent functions here.
2390 Added member to signal plugin needs XEmbed extension.
2391 * plugins/gtk/PluginDataGtk.cpp: Added.
2392 (WebCore::PluginData::initPlugins):
2393 (WebCore::PluginData::refresh):
2394 * plugins/gtk/PluginDatabaseGtk.cpp:
2395 (WebCore::PluginDatabase::defaultPluginDirectories):
2396 (WebCore::PluginDatabase::isPreferredPluginDirectory):
2397 * plugins/gtk/PluginPackageGtk.cpp: Added.
2398 (WebCore::PluginPackage::determineQuirks):
2399 (WebCore::PluginPackage::fetchInfo):
2400 (WebCore::PluginPackage::load):
2401 (WebCore::PluginPackage::hash):
2402 (WebCore::PluginPackage::equal):
2403 (WebCore::PluginPackage::compareFileVersion):
2404 * plugins/gtk/PluginViewGtk.cpp: Added.
2405 (WebCore::PluginView::updateWindow):
2406 (WebCore::PluginView::setFocus):
2407 (WebCore::PluginView::show):
2408 (WebCore::PluginView::hide):
2409 (WebCore::PluginView::paint):
2410 (WebCore::PluginView::handleKeyboardEvent):
2411 (WebCore::PluginView::handleMouseEvent):
2412 (WebCore::PluginView::setParent):
2413 (WebCore::PluginView::setNPWindowRect):
2414 (WebCore::PluginView::attachToWindow):
2415 (WebCore::PluginView::detachFromWindow):
2416 (WebCore::PluginView::stop):
2417 (WebCore::PluginView::userAgent):
2418 (WebCore::PluginView::handlePostReadFile):
2419 (WebCore::PluginView::getValue):
2420 (WebCore::PluginView::invalidateRect):
2421 (WebCore::PluginView::forceRedraw):
2422 (WebCore::PluginView::~PluginView):
2423 (WebCore::plug_removed_cb): Added callback to handle plug removal.
2424 (WebCore::PluginView::init):
2425 * plugins/gtk/xembed.h: Added.
2426 * plugins/npapi.cpp:
2427 (NPN_GetValue): Return error if no view present.
2428 * plugins/qt/PluginDataQt.cpp:
2429 (WebCore::PluginData::initPlugins):
2430 (WebCore::PluginData::refresh):
2431 * plugins/qt/PluginDatabaseQt.cpp: Added.
2432 (WebCore::PluginDatabase::getPluginPathsInDirectories):
2433 (WebCore::addQtWebKitPluginDirectories):
2434 (WebCore::addMozillaPluginDirectories):
2435 (WebCore::PluginDatabase::defaultPluginDirectories):
2436 (WebCore::PluginDatabase::isPreferredPluginDirectory):
2437 * plugins/qt/PluginPackageQt.cpp: Added.
2438 (WebCore::PluginPackage::determineQuirks):
2439 (WebCore::PluginPackage::fetchInfo):
2440 (WebCore::PluginPackage::load):
2441 (WebCore::PluginPackage::hash):
2442 (WebCore::PluginPackage::equal):
2443 (WebCore::PluginPackage::compareFileVersion):
2444 * plugins/qt/PluginViewQt.cpp: Added.
2445 (WebCore::PluginView::updateWindow):
2446 (WebCore::PluginView::setFocus):
2447 (WebCore::PluginView::show):
2448 (WebCore::PluginView::hide):
2449 (WebCore::PluginView::paint):
2450 (WebCore::PluginView::handleKeyboardEvent):
2451 (WebCore::PluginView::handleMouseEvent):
2452 (WebCore::PluginView::setParent):
2453 (WebCore::PluginView::setNPWindowRect):
2454 (WebCore::PluginView::attachToWindow):
2455 (WebCore::PluginView::detachFromWindow):
2456 (WebCore::PluginView::stop):
2457 (WebCore::PluginView::userAgent):
2458 (WebCore::PluginView::handlePostReadFile):
2459 (WebCore::PluginView::getValue):
2460 (WebCore::PluginView::invalidateRect):
2461 (WebCore::PluginView::invalidateRegion):
2462 (WebCore::PluginView::forceRedraw):
2463 (WebCore::PluginView::~PluginView):
2464 (WebCore::PluginView::init):
2465 * plugins/win/PluginPackageWin.cpp: Moved platform-independent code
2466 to plugins/PluginPackage.cpp
2467 * plugins/win/PluginViewWin.cpp: Moved platform-independent code to
2468 plugins/PluginView.cpp
2469 (WebCore::PluginView::stop):
2470 (WebCore::PluginView::handlePostReadFile):
2471 (WebCore::PluginView::getValue): Moved this function to each platform.
2473 2008-05-01 Sam Weinig <sam@webkit.org>
2477 * ForwardingHeaders/wtf/StrHash.h: Added.
2479 2008-05-01 Anders Carlsson <andersca@apple.com>
2483 Move management of cache groups to ApplicationCacheStorage. Also,
2484 application caches now start out with a null group and will have their group set
2485 when the cache has finished loading.
2487 * loader/appcache/ApplicationCache.cpp:
2488 (WebCore::ApplicationCache::ApplicationCache):
2489 Initialize m_group to 0.
2491 (WebCore::ApplicationCache::~ApplicationCache):
2492 Null check the group.
2494 (WebCore::ApplicationCache::setGroup):
2495 New method for setting the group.
2497 * loader/appcache/ApplicationCache.h:
2498 (WebCore::ApplicationCache::create):
2499 Remove the group argument.
2501 * loader/appcache/ApplicationCacheGroup.cpp:
2502 (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
2503 Let the storage know that the cache group has been destroyed.
2505 (WebCore::ApplicationCacheGroup::cacheForMainRequest):
2506 Call into the storage.
2508 (WebCore::ApplicationCacheGroup::selectCache):
2509 Call into the storage.
2511 (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
2512 When there are no document loaders associated with the cache group,
2513 set the newest cache to 0.
2515 (WebCore::ApplicationCacheGroup::cacheDestroyed):
2516 Delete the group if there are no associated caches.
2518 (WebCore::ApplicationCacheGroup::setNewestCache):
2519 New method that will set the newest cache and associate the group with the cache.
2521 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
2522 Call setNewestCache instead.
2524 * loader/appcache/ApplicationCacheStorage.cpp:
2525 (WebCore::urlHostHash):
2526 Move host hash method here.
2528 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
2529 New method that finds a cache group with a given manifest URL or creates a new one.
2531 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
2532 New method that returns a cache group for a given URL.
2534 (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
2535 When the cache group has been destroyed, remove it from the hash map.
2537 * loader/appcache/ApplicationCacheStorage.h:
2540 2008-05-01 Dan Winship <danw@gnome.org>
2542 Reviewed by Alp Toker.
2544 http://bugs.webkit.org/show_bug.cgi?id=18490
2545 Add mostly-working file: support and mostly-broken ftp: support to
2548 * platform/network/soup/ResourceHandleSoup.cpp (start): after
2549 doing basic checks, delegate to one of three submethods
2550 (startData): handles data: URLs
2551 (startHttp): handles http: and https: URLs, via libsoup
2552 (startGio, etc): handles file: and ftp: URLs, via gio. Lots of
2553 FIXMEs detailing the parts that don't fully work yet.
2555 * platform/network/ResourceHandle.h:
2556 * platform/network/ResourceHandleInternal.h: add new member
2557 variables for gio-based loading
2559 2008-05-01 Alp Toker <alp@nuanti.com>
2561 Rubber-stamped by Anders.
2563 GTK+ build fix for changes in r32752. Use int32, not int32_t types in
2566 Additional fix to use same signedness in npapi.h and Mac for the
2571 2008-04-30 Anders Carlsson <andersca@apple.com>
2575 Add new Cocoa event model type declarations.
2579 2008-04-30 Beth Dakin <bdakin@apple.com>
2581 Reviewed by Sam Weinig.
2583 This patch does three things:
2584 1. Adds support for the "img" ARIA role
2585 2. Switches over to a HashMap for converting ARIA role attributes
2586 to WebCore's AccessibilityRole type.
2587 3. Fixes a crash in the new ARIA code that I ran into while
2588 browsing with VoiceOver enabled.
2590 * page/AccessibilityObject.cpp:
2591 (WebCore::AccessibilityObject::headingLevel): This is the crash
2592 fix. Make sure the node's renderer is not null before looking up
2593 its corresponding AccessibilityObject in the cache.
2594 (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for
2596 (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to
2598 (WebCore::RoleEntry::): Same.
2599 (WebCore::ariaRoleToWebCoreRole): Same.
2600 (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
2602 2008-04-30 Rob Buis <buis@kde.org>
2604 Reviewed by Nikolas.
2606 https://bugs.webkit.org/show_bug.cgi?id=16447
2607 onload called too many times for <svg:image>
2608 https://bugs.webkit.org/show_bug.cgi?id=12282
2609 SVG wastes time in malloc to send loadEvents to non-existent listeners
2611 Postpone load event dispatching for image when externalResourcesRequired
2612 is true, delaying parents but not siblings, and make sure the load event
2613 is sent once for image in all cases.
2615 * svg/SVGElement.cpp:
2616 (WebCore::hasLoadListener):
2617 (WebCore::SVGElement::sendSVGLoadEventIfPossible):
2618 * svg/SVGImageElement.cpp:
2619 (WebCore::SVGImageElement::haveLoadedRequiredResources):
2620 * svg/SVGImageLoader.cpp:
2621 (WebCore::SVGImageLoader::dispatchLoadEvent):
2623 2008-04-30 David Hyatt <hyatt@apple.com>
2625 Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts. This
2626 won't typically crash release builds because of arena recycling.
2628 Reviewed by Dan Bernstein
2630 * rendering/RenderLayer.cpp:
2631 (WebCore::RenderLayer::~RenderLayer):
2632 Make sure to remove the reflection's child layer from its parent.
2634 * rendering/RenderMedia.cpp:
2635 (WebCore::RenderMedia::~RenderMedia):
2636 (WebCore::RenderMedia::destroy):
2637 (WebCore::RenderMedia::removeChild):
2638 * rendering/RenderMedia.h:
2639 Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more
2640 like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia
2643 2008-04-30 Rémi Zara <remi_zara@mac.com>
2645 Reviewed by Dave Hyatt.
2647 fix https://bugs.webkit.org/show_bug.cgi?id=18618
2648 <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
2650 * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
2651 (WebCore::patternCallback): flip the y axis when drawing the tile
2653 2008-04-30 Timothy Hatcher <timothy@apple.com>
2655 Fixes an undefined type exception that fires when adding a resource to the inspector
2656 that has a MIME type warning.
2658 Reviewed by Adam Roben.
2660 * page/inspector/Resource.js:
2661 (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
2662 WebInspector.consolePanel.
2663 (WebInspector.Resource.prototype._checkWarning): Ditto.
2665 2008-04-30 Timothy Hatcher <timothy@apple.com>
2667 Fixes the bug where the selected resource would be deselected after
2668 changing the sort order in the Resources panel.
2670 Reviewed by Dan Bernstein.
2672 * page/inspector/ResourcesPanel.js:
2673 (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
2674 Rememebr if the tree element that we are sorting was selected, so
2675 the selection can be restored after it is re-inserted. The onSelect
2676 is suppressed since we don't need to show the resource again.
2678 2008-04-29 Timothy Hatcher <timothy@apple.com>
2680 Fixes the regression where error bubbles in source views always show
2681 "undefined" for the content because the message property on
2682 ConsoleMessage was removed. Adds support for a plain text formated
2683 message that is stored in the message proeprty.
2685 Reviewed by Adam Roben.
2687 * page/inspector/Console.js:
2688 (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
2690 (WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
2691 about needing to honor it if the textContent of the output doesn't make sense.
2692 (WebInspector.Console.prototype._formatvalue): Ditto.
2693 (WebInspector.Console.prototype._formatstring): Ditto.
2694 (WebInspector.Console.prototype._formatregexp): Ditto.
2695 (WebInspector.Console.prototype._formatarray): Ditto.
2696 (WebInspector.Console.prototype._formatnode): Ditto.
2697 (WebInspector.Console.prototype._formatobject): Ditto.
2698 (WebInspector.Console.prototype._formaterror): Ditto.
2699 (WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the
2700 textContnet of the result and assign to the message proeprty. This property is
2701 referenced from the SourceView.
2702 (WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the
2703 result element as a local and return it, instead of using formatedMessage directly.
2705 2008-04-30 Timothy Hatcher <timothy@apple.com>
2707 Adds a helper function to convert a JSValueRef to a String.
2709 Reviewed by Adam Roben.
2711 * page/InspectorController.cpp:
2712 (WebCore::toString): Converts a JSValueRef to a String.
2713 (WebCore::search): Use toString.
2714 (WebCore::InspectorController::handleException): Ditto.
2716 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2720 Build the Qt port with SVG Foreign Object support.
2724 2008-04-30 Simon Hausmann <hausmann@webkit.org>
2728 Fix null pointer deference triggered by
2729 LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
2731 * platform/network/qt/ResourceHandleQt.cpp:
2732 (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
2734 2008-04-29 David Hyatt <hyatt@apple.com>
2736 Improve the performance of masks by adding code to set more precise clips on the transparency layers
2737 used to paint the content under the mask, and then also avoid creating transparency layers for the masks
2738 themselves in common cases.
2740 Reviewed by Dan Bernstein
2742 * platform/graphics/GraphicsContext.cpp:
2743 (WebCore::GraphicsContext::drawTiledImage):
2744 Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece
2747 * rendering/InlineFlowBox.cpp:
2748 (WebCore::InlineFlowBox::paintFillLayers):
2749 (WebCore::InlineFlowBox::paintFillLayer):
2750 (WebCore::InlineFlowBox::paintMask):
2751 Optimize to only push a transparency layer for the mask if multiple images are combining. Add a new
2752 composite operator argument for use when painting fill layers to do direct destination-in compositing while
2756 * rendering/InlineFlowBox.h:
2757 * rendering/RenderBox.cpp:
2758 (WebCore::RenderBox::paintMask):
2759 (WebCore::RenderBox::paintMaskImages):
2760 Optimize to only push a transparency layer for the mask if multiple images are combining.
2762 (WebCore::RenderBox::maskClipRect):
2763 A new method that attempts to compute a precise clip rect for the mask images.
2765 (WebCore::RenderBox::paintFillLayers):
2766 (WebCore::RenderBox::paintFillLayer):
2767 (WebCore::RenderBox::paintFillLayerExtended):
2768 * rendering/RenderBox.h:
2769 Added the composite operator argument to the paintFillLayer methods.
2771 * rendering/RenderFieldset.cpp:
2772 (WebCore::RenderFieldset::paintMask):
2773 Call the new base class paintMaskImages method for optimized mask painting.
2775 * rendering/RenderLayer.cpp:
2776 (WebCore::transparencyClipBox):
2777 Fix a coordinate space issue with transparencyClipBox when masks were used. The border box was in the
2778 wrong coordinate space. Moved the code into the layer's boundingBox() method instead.
2780 (WebCore::RenderLayer::paintLayer):
2781 Removed the code that always pushed a transparency layer before painting masks.
2783 (WebCore::RenderLayer::boundingBox):
2784 Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
2786 * rendering/RenderObject.cpp:
2787 (WebCore::RenderObject::paintNinePieceImage):
2788 Added a composite operator argument for direct destination-in painting of nine piece images.
2790 * rendering/RenderObject.h:
2791 (WebCore::RenderObject::maskClipRect):
2792 (WebCore::RenderObject::paintFillLayerExtended):
2793 Base class stubs for RenderBox-implemented methods.
2795 * rendering/RenderTable.cpp:
2796 (WebCore::RenderTable::paintMask):
2797 * rendering/RenderTableCell.cpp:
2798 (WebCore::RenderTableCell::paintMask):
2799 Modified to call the new paintMaskImages function.
2801 * svg/graphics/SVGImage.cpp:
2802 (WebCore::SVGImage::draw):
2803 SVG images now respect composite modes by pushing a transparency layer when the composite mode
2804 is anything other than source-over.
2806 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2808 Rubber-stamped by Rob Buis.
2810 Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
2812 * svg/SVGUseElement.cpp:
2813 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2815 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2817 Rubber-stamped by Rob Buis.
2819 Fixed compile, due to API change in XMLSerializer
2821 * svg/SVGUseElement.cpp:
2822 (WebCore::SVGUseElement::buildPendingResource):
2824 2008-04-30 Rob Buis <buis@kde.org>
2828 https://bugs.webkit.org/show_bug.cgi?id=11939
2829 Quirksmode: Ignores media types in stylesheet PIs
2831 Transfer the xml-stylesheet pseudo attribute media to the css
2832 stylesheet created from the ProcessingInstruction.
2834 Tests: fast/css/xml-stylesheet-media-processing.xhtml
2836 * css/StyleSheet.cpp:
2837 (WebCore::StyleSheet::setMedia):
2839 * dom/ProcessingInstruction.cpp:
2840 (WebCore::ProcessingInstruction::checkStyleSheet):
2841 (WebCore::ProcessingInstruction::setCSSStyleSheet):
2842 * dom/ProcessingInstruction.h:
2844 2008-04-29 David D. Kilzer <ddkilzer@apple.com>
2846 BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
2848 On the buildbot, this is a fatal error:
2850 ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
2851 __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
2852 /usr/bin/libtool: internal link edit command failed
2854 Newer dev tools only produce a warning:
2856 ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
2858 * WebCore.base.exp: Remove hidden symbol from export list.
2860 2008-04-29 David Kilzer <ddkilzer@apple.com>
2862 Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
2864 * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
2866 2008-04-29 David Kilzer <ddkilzer@apple.com>
2868 BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
2870 * DerivedSources.make: Removed duplication of targets for
2871 generating CSSPropertyNames.h and CSSValueKeywords.h.
2872 * GNUmakefile.am: Ditto. Added support for ENABLE_DASHBOARD_SUPPORT.
2873 * WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT.
2874 Made both SVG and non-SVG variables of GENERATOR 6-A use new
2875 DASHBOARDSUPPORTCSSPROPERTIES variable.
2877 2008-04-29 Ada Chan <adachan@apple.com>
2879 Added missing return.
2881 * platform/win/COMPtr.h:
2884 2008-04-29 Alp Toker <alp@nuanti.com>
2886 GTK+ build fix attempt following breakage in r32700 which
2887 conditionalised dashboard support.
2891 2008-04-29 Adam Roben <aroben@apple.com>
2893 Restore the beloved COMPtr::operator&
2895 * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
2896 constructor and isHashTableDeletedValue and hashTableDeletedValue
2898 (WTF::): Changed constructDeletedValue to play nicely with
2901 2008-04-29 Adam Roben <aroben@apple.com>
2903 Fix assertion on launch on Windows
2905 * platform/graphics/win/FontPlatformData.h: Pass
2906 WTF::HashTableDeletedValue to the m_font constructor instead of a
2907 bogus -1 value. This is needed because m_font is a RefPtr.
2909 2008-04-29 Greg Bolsinga <bolsinga@apple.com>
2913 Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
2915 * DerivedSources.make:
2916 * WebCore.DashboardSupport.exp: Added.
2918 * WebCore.xcodeproj/project.pbxproj:
2919 * bindings/js/JSDOMWindowCustom.cpp:
2920 (WebCore::JSDOMWindow::setLocation):
2921 * css/CSSComputedStyleDeclaration.cpp:
2923 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2924 * css/CSSParser.cpp:
2925 (WebCore::CSSParser::parseValue):
2926 * css/CSSPrimitiveValue.cpp:
2927 (WebCore::CSSPrimitiveValue::cleanup):
2928 (WebCore::CSSPrimitiveValue::cssText):
2929 * css/CSSPropertyNames.in:
2930 * css/CSSStyleSelector.cpp:
2931 (WebCore::CSSStyleSelector::applyProperty):
2932 * css/DashboardRegion.h:
2933 * css/DashboardSupportCSSPropertyNames.in: Added.
2934 * dom/DOMImplementation.cpp:
2935 (WebCore::DOMImplementation::createDocument):
2937 (WebCore::Document::Document):
2938 (WebCore::Document::importNode):
2940 * html/CanvasRenderingContext2D.cpp:
2941 (WebCore::CanvasRenderingContext2D::fill):
2942 (WebCore::CanvasRenderingContext2D::stroke):
2943 (WebCore::CanvasRenderingContext2D::clip):
2944 * html/CanvasRenderingContext2D.h:
2945 * html/HTMLCanvasElement.cpp:
2946 * html/HTMLCanvasElement.h:
2948 * page/ChromeClient.h:
2950 (WebCore::Frame::paint):
2952 * page/FrameView.cpp:
2953 (WebCore::FrameView::layout):
2955 * page/Settings.cpp:
2956 (WebCore::Settings::Settings):
2958 * page/mac/EventHandlerMac.mm:
2959 (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
2960 * page/mac/FrameMac.mm:
2961 * page/mac/WebDashboardRegion.h:
2962 * page/mac/WebDashboardRegion.m:
2963 * rendering/RenderLayer.cpp:
2964 (WebCore::RenderLayer::scrollToOffset):
2965 (WebCore::RenderLayer::setHasHorizontalScrollbar):
2966 (WebCore::RenderLayer::setHasVerticalScrollbar):
2967 (WebCore::RenderLayer::updateScrollInfoAfterLayout):
2968 * rendering/RenderObject.cpp:
2969 (WebCore::RenderObject::setStyle):
2970 * rendering/RenderObject.h:
2971 * rendering/RenderStyle.cpp:
2972 (WebCore::StyleRareNonInheritedData::operator==):
2973 (WebCore::RenderStyle::diff):
2974 * rendering/RenderStyle.h:
2975 * xml/XMLHttpRequest.cpp:
2976 (WebCore::XMLHttpRequest::send):
2977 (WebCore::XMLHttpRequest::setRequestHeader):
2979 2008-04-29 Adam Roben <aroben@apple.com>
2983 This removes COMPtr::operator&, which didn't jive with HashTable. It
2984 is replaced by COMPtr::adoptionPointer.
2986 Discussed with Darin Adler and Anders Carlsson.
2988 * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
2990 2008-04-29 David Hyatt <hyatt@apple.com>
2992 Implement the new box-reflect property in CSS. This property enables real-time reflections on
2993 objects (yes you can reflect <video>!).
2995 Reviewed by Dan Bernstein
2997 Test cases added in fast/reflections/
3001 * WebCore.xcodeproj/project.pbxproj:
3002 * WebCoreSources.bkl:
3003 * css/CSSComputedStyleDeclaration.cpp:
3005 (WebCore::valueForReflection):
3006 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3007 * css/CSSParser.cpp:
3008 (WebCore::CSSParser::parseValue):
3009 (WebCore::CSSParser::parseReflect):
3010 (WebCore::BorderImageParseContext::commitBorderImage):
3011 (WebCore::CSSParser::parseBorderImage):
3012 (WebCore::parseGradientColorStop):
3013 (WebCore::CSSParser::parseTransform):
3015 * css/CSSPropertyNames.in:
3016 * css/CSSReflectValue.cpp: Added.
3017 (WebCore::CSSReflectValue::cssText):
3018 * css/CSSReflectValue.h: Added.
3020 (WebCore::CSSReflectValue::CSSReflectValue):
3021 (WebCore::CSSReflectValue::direction):
3022 (WebCore::CSSReflectValue::offset):
3023 (WebCore::CSSReflectValue::mask):
3024 (WebCore::CSSReflectValue::setDirection):
3025 (WebCore::CSSReflectValue::setOffset):
3026 (WebCore::CSSReflectValue::setMask):
3027 * css/CSSStyleSelector.cpp:
3028 (WebCore::CSSStyleSelector::adjustRenderStyle):
3029 (WebCore::CSSStyleSelector::applyProperty):
3030 (WebCore::CSSStyleSelector::mapNinePieceImage):
3031 * css/CSSStyleSelector.h:
3032 * rendering/InlineFlowBox.cpp:
3033 (WebCore::InlineFlowBox::placeBoxesVertically):
3034 (WebCore::InlineFlowBox::paintMask):
3035 * rendering/Length.h:
3036 (WebCore::Length::calcFloatValue):
3037 * rendering/RenderBlock.cpp:
3038 (WebCore::RenderBlock::overflowHeight):
3039 (WebCore::RenderBlock::overflowWidth):
3040 (WebCore::RenderBlock::overflowLeft):
3041 (WebCore::RenderBlock::overflowTop):
3042 (WebCore::RenderBlock::overflowRect):
3043 (WebCore::RenderBlock::layoutBlock):
3044 * rendering/RenderBox.cpp:
3045 (WebCore::RenderBox::setStyle):
3046 (WebCore::RenderBox::paintMask):
3047 (WebCore::RenderBox::imageChanged):
3048 (WebCore::RenderBox::computeAbsoluteRepaintRect):
3049 * rendering/RenderFlexibleBox.cpp:
3050 (WebCore::RenderFlexibleBox::layoutBlock):
3051 * rendering/RenderLayer.cpp:
3052 (WebCore::RenderLayer::RenderLayer):
3053 (WebCore::RenderLayer::~RenderLayer):
3054 (WebCore::RenderLayer::updateLayerPositions):
3055 (WebCore::RenderLayer::enclosingPositionedAncestor):
3056 (WebCore::RenderLayer::enclosingTransformedAncestor):
3057 (WebCore::RenderLayer::isTransparent):
3058 (WebCore::transparencyClipBox):
3059 (WebCore::RenderLayer::operator delete):
3060 (WebCore::RenderLayer::destroy):
3061 (WebCore::RenderLayer::removeOnlyThisLayer):
3062 (WebCore::RenderLayer::insertOnlyThisLayer):
3063 (WebCore::RenderLayer::paintLayer):
3064 (WebCore::RenderLayer::updateZOrderLists):
3065 (WebCore::RenderLayer::updateOverflowList):
3066 (WebCore::RenderLayer::collectLayers):
3067 (WebCore::RenderLayer::shouldBeOverflowOnly):
3068 (WebCore::RenderLayer::styleChanged):
3069 (WebCore::RenderLayer::reflectionLayer):
3070 (WebCore::RenderLayer::createReflection):
3071 (WebCore::RenderLayer::updateReflectionStyle):
3072 * rendering/RenderLayer.h:
3073 (WebCore::RenderLayer::hasReflection):
3074 (WebCore::RenderLayer::reflection):
3075 (WebCore::RenderLayer::paintingInsideReflection):
3076 * rendering/RenderObject.cpp:
3077 (WebCore::RenderObject::RenderObject):
3078 (WebCore::RenderObject::requiresLayer):
3079 (WebCore::RenderObject::setStyle):
3080 (WebCore::RenderObject::updateImage):
3081 (WebCore::RenderObject::reflectionBox):
3082 (WebCore::RenderObject::reflectionOffset):
3083 * rendering/RenderObject.h:
3084 (WebCore::RenderObject::hasTransform):
3085 (WebCore::RenderObject::setHasReflection):
3086 (WebCore::RenderObject::hasReflection):
3087 * rendering/RenderReplica.cpp: Added.
3088 (WebCore::RenderReplica::RenderReplica):
3089 (WebCore::RenderReplica::~RenderReplica):
3090 (WebCore::RenderReplica::layout):
3091 (WebCore::RenderReplica::calcPrefWidths):
3092 (WebCore::RenderReplica::paint):
3093 * rendering/RenderReplica.h: Added.
3094 (WebCore::RenderReplica::renderName):
3095 (WebCore::RenderReplica::requiresLayer):
3096 * rendering/RenderStyle.cpp:
3097 (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3098 (WebCore::StyleRareNonInheritedData::operator==):
3099 (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
3100 (WebCore::RenderStyle::diff):
3101 (WebCore::RenderStyle::applyTransform):
3102 * rendering/RenderStyle.h:
3103 (WebCore::TranslateTransformOperation::apply):
3104 (WebCore::StyleReflection::StyleReflection):
3105 (WebCore::StyleReflection::operator==):
3106 (WebCore::StyleReflection::operator!=):
3107 (WebCore::StyleReflection::direction):
3108 (WebCore::StyleReflection::offset):
3109 (WebCore::StyleReflection::mask):
3110 (WebCore::StyleReflection::setDirection):
3111 (WebCore::StyleReflection::setOffset):
3112 (WebCore::StyleReflection::setMask):
3113 (WebCore::RenderStyle::boxReflect):
3114 (WebCore::RenderStyle::setBoxReflect):
3115 (WebCore::RenderStyle::initialBoxReflect):
3116 * rendering/RenderTable.cpp:
3117 (WebCore::RenderTable::layout):
3118 (WebCore::RenderTable::paintMask):
3119 * rendering/RenderTableCell.cpp:
3120 (WebCore::RenderTableCell::requiresLayer):
3121 (WebCore::RenderTableCell::paintMask):
3123 2008-04-29 Beth Dakin <bdakin@apple.com>
3127 Initial implementation of the following ARIA roles: button,
3128 checkbox, heading, link, radio, textbox.
3130 * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
3132 * page/AccessibilityObject.cpp:
3133 When an ARIA role is set, the role overrides whatever the actual
3134 element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
3135 (WebCore::AccessibilityObject::isWebArea):
3136 (WebCore::AccessibilityObject::isImageButton):
3137 (WebCore::AccessibilityObject::isAnchor):
3138 (WebCore::AccessibilityObject::isTextControl):
3139 (WebCore::AccessibilityObject::isImage):
3140 (WebCore::AccessibilityObject::isAttachment):
3141 (WebCore::AccessibilityObject::isPasswordField):
3142 (WebCore::AccessibilityObject::isCheckboxOrRadio):
3143 (WebCore::AccessibilityObject::isHeading):
3144 (WebCore::AccessibilityObject::isLink):
3146 Check for ARIA information:
3147 (WebCore::AccessibilityObject::headingLevel):
3148 (WebCore::AccessibilityObject::anchorElement):
3149 (WebCore::AccessibilityObject::actionElement):
3150 (WebCore::AccessibilityObject::hasIntValue):
3151 (WebCore::AccessibilityObject::intValue):
3152 (WebCore::AccessibilityObject::stringValue):
3153 (WebCore::AccessibilityObject::title):
3154 (WebCore::AccessibilityObject::accessibilityIsIgnored):
3155 (WebCore::AccessibilityObject::roleValue):
3157 There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
3158 (WebCore::AccessibilityObject::isNativeImage):
3159 (WebCore::AccessibilityObject::isNativeTextControl):
3160 (WebCore::isARIAInput):
3161 (WebCore::isARIAControl):
3163 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.
3164 (WebCore::AccessibilityObject::text): Still calls into
3165 RenderTextControl's text() for native text controls. Uses Element's
3166 innerText() for ARIA textboxes.
3167 (WebCore::AccessibilityObject::textLength): Call
3168 AccessibilityObject's text() instead of RenderTextControl's.
3169 (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
3170 (WebCore::AccessibilityObject::selectedText):
3171 (WebCore::AccessibilityObject::selectedTextRange):
3172 (WebCore::AccessibilityObject::selectionStart):
3173 (WebCore::AccessibilityObject::selectionEnd):
3174 (WebCore::AccessibilityObject::setSelectedTextRange):
3175 (WebCore::AccessibilityObject::setValue):
3176 (WebCore::AccessibilityObject::visiblePositionForIndex):
3177 (WebCore::AccessibilityObject::indexForVisiblePosition):
3178 (WebCore::AccessibilityObject::textMarkerRangeForRange):
3179 (WebCore::AccessibilityObject::textMarkerForIndex):
3180 (WebCore::AccessibilityObject::indexForTextMarker):
3181 (WebCore::AccessibilityObject::doAXRangeForLine):
3182 (WebCore::AccessibilityObject::doAXRangeForIndex):
3183 (WebCore::AccessibilityObject::doAXStringForRange):
3184 (WebCore::AccessibilityObject::doAXBoundsForRange):
3186 Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
3187 (WebCore::AccessibilityObject::ariaRoleAttribute):
3189 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.
3190 * page/AccessibilityObject.h:
3192 Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
3193 * page/mac/AccessibilityObjectWrapper.mm:
3194 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
3195 (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
3197 2008-04-29 Timothy Hatcher <timothy@apple.com>
3199 Make the exceptions that the InspectorController catches log the
3200 original file and line number, if present on the exception object.
3202 Reviewed by Adam Roben.
3204 * page/InspectorController.cpp:
3205 (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
3206 (WebCore::InspectorController::~InspectorController): Ditto.
3207 (WebCore::InspectorController::scriptObjectReady): Ditto.
3208 (WebCore::InspectorController::addScriptResource): Ditto.
3209 (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
3210 (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
3211 (WebCore::InspectorController::updateScriptResource): Ditto.
3212 (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
3213 (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
3214 (WebCore::InspectorController::handleException): Take a context. Pull the line
3215 and sourceURL properties off the exception if it is an object.
3216 * page/InspectorController.h: Change handleException to take a context.
3218 2008-04-29 Timothy Hatcher <timothy@apple.com>
3220 Fixes a regression where the Page's debugger would not be reattached
3221 when a new JSDOMWindow is created.
3223 Reviewed by Sam Weinig.
3225 * bindings/js/kjs_proxy.cpp:
3226 (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
3227 * history/CachedPage.cpp:
3228 (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
3229 contain a window, reattach the debugger to the new JSDOMWindow by calling
3230 proxy->attachDebugger. Also restore the setPageGroupIdentifier.
3232 2008-04-29 Anatoli Papirovski <apapirovski@mac.com>
3234 Reviewed by Darin Adler.
3236 Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
3237 Fixed RGB and RGBA parsing to ignore the declaration when the value is not
3238 "either three integer values or three percentage values."
3240 * css/CSSParser.cpp:
3241 (WebCore::CSSParser::parseColorParameters):
3243 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3247 Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
3249 Ben found this crash in the demo browser.
3251 In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
3253 case PolicyDownload:
3254 frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
3255 receivedError(interruptionForPolicyChangeError());
3257 We are in a policy check, the download() call will call setHtml, which will start loading
3258 the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
3259 which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
3260 will use the m_frame->loader() but it is gone. Do not call into receivedError and
3261 interruptionForPolicyChangeError if we are gone anyway...
3263 * loader/MainResourceLoader.cpp:
3264 (WebCore::MainResourceLoader::continueAfterContentPolicy):
3266 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3270 Rely on auto-boxing of C++ for the QCursor c'tor
3272 * platform/qt/CursorQt.cpp:
3274 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3278 Add the remaining cursors that defaulted to PointerCursor
3280 * Resources/WebKitResources.qrc:
3281 * platform/qt/CursorQt.cpp:
3282 (WebCore::verticalTextCursor):
3283 (WebCore::cellCursor):
3284 (WebCore::contextMenuCursor):
3285 (WebCore::copyCursor):
3286 (WebCore::progressCursor):
3287 (WebCore::aliasCursor):
3289 2008-04-29 Alice Liu <alice.liu@apple.com>
3291 Reviewed by Beth Dakin.
3293 Comply with HTML5 spec about parsing tabindex property according to
3294 integer parsing rules
3296 Test: fast/parser/tabindex-parsing.html
3298 * html/HTMLElement.cpp:
3299 (WebCore::HTMLElement::parseMappedAttribute):
3301 2008-04-29 Tor Arne Vestbø <tavestbo@trolltech.com>
3305 Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
3307 https://bugs.webkit.org/show_bug.cgi?id=18482
3309 We need to repaint scrollbars after a geometry change, and also make sure
3310 the computed clipping rect for the corners between scrollbars is propagated
3311 to the chrome client without beeing intersected by the visible content rect
3314 * platform/ScrollView.h:
3315 * platform/qt/ScrollViewQt.cpp:
3316 (WebCore::ScrollView::geometryChanged):
3317 (WebCore::ScrollView::suppressScrollbars):
3318 (WebCore::ScrollView::invalidateScrollbars):
3320 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3324 Calling QWebView::setCursor will override the WebCore Cursor.
3325 Calling QWebView::setCursor will override the WebCore Cursor using
3326 QWidget::unsetCursor will revert to the WebCore Cursor.
3328 For detecting the unset we have to compare the shape of the
3329 cursor to the default arrow. Qt::WA_SetCursor can not be used
3330 as it is set unconditionally but conditionally removed.
3332 Calling QWidget::setCursor will immediately send the CursorChange
3333 event. We listen to this event to decide if we currently use a
3334 WebCore cursor, got a cursor from outside, or revert to the default.
3336 This should be race free and work reliable, the manual test for this
3337 is WebCore/manual-tests/cursor.html
3339 * platform/qt/WidgetQt.cpp:
3340 (WebCore::Widget::setCursor):
3342 2008-04-28 Dan Bernstein <mitz@apple.com>
3344 Reviewed by Maciej Stachowiak.
3346 - fix https://bugs.webkit.org/show_bug.cgi?id=18795
3347 REGRESSION (r32660): Text heavier with text-shadow
3349 * rendering/InlineTextBox.cpp:
3350 (WebCore::paintTextWithShadows): The loop was doing one extra pass
3351 without shadow even in cases where the last pass with a shadow was
3352 painting the text at the right position (rather than outside the clip).
3353 Fixed that. The only case where a separate pass without shadow is needed
3354 is when there is text-stroke, since in that case all shadow passes
3355 paint the text outside the clip.
3357 2008-04-28 Brady Eidson <beidson@apple.com>
3359 Reviewed by Sam Weinig
3361 Add Storage.clear(), per updates to HTML5
3363 Tests: storage/domstorage/localstorage/clear.html
3364 storage/domstorage/sessionstorage/clear.html
3366 * storage/LocalStorageArea.cpp:
3367 (WebCore::LocalStorageArea::areaCleared):
3368 * storage/LocalStorageArea.h:
3370 * storage/SessionStorageArea.cpp:
3371 (WebCore::SessionStorageArea::areaCleared):
3372 * storage/SessionStorageArea.h:
3374 * storage/Storage.cpp:
3375 (WebCore::Storage::clear):
3376 * storage/Storage.h:
3377 * storage/Storage.idl:
3379 * storage/StorageArea.cpp:
3380 (WebCore::StorageArea::internalClear):
3381 * storage/StorageArea.h:
3382 (WebCore::StorageArea::clear):
3384 2008-04-28 Adele Peterson <adele@apple.com>
3386 Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
3388 WebCore part of fix for <rdar://problem/3709505>
3389 Safari should have a way to upload bundles from the file upload control (as zip)
3391 * WebCore.base.exp: Added symbols.
3393 * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded.
3394 It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
3396 * loader/FrameLoader.cpp:
3397 (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts.
3398 (WebCore::FrameLoader::loadItem): ditto.
3399 * loader/ResourceLoader.cpp:
3400 (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to.
3401 (WebCore::ResourceLoader::didCancel): ditto.
3402 (WebCore::ResourceLoader::didFail): ditto.
3404 * platform/network/FormData.cpp:
3405 (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed.
3406 (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.
3407 (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement.
3408 (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to
3409 create any compressed files so the FormDataElements can store the paths.
3410 (WebCore::FormData::removeGeneratedFilesIfNeeded): Added. Removes generated files and their directories (if empty).
3411 * platform/network/FormData.h:
3412 (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated,
3413 and a string to hold the path of the generated file.
3415 * platform/network/mac/FormDataStreamMac.mm:
3416 (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file.
3417 (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
3419 * platform/FileSystem.h: Added directoryName.
3420 * platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
3421 * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
3422 * platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
3423 * platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
3424 * platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.
3426 Added new ChromeClient methods to give the application control over the file compression for uploading.
3428 (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
3429 (WebCore::ChromeClient::generateReplacementFile): ditto.
3430 * page/ChromeClient.h:
3432 2008-04-28 Anders Carlsson <andersca@apple.com>
3434 Reviewed by Sam, Mark, Adele and Darin.
3436 Add a (currently not called) method for opening the application cache database.
3439 * loader/appcache/ApplicationCacheStorage.cpp:
3440 (WebCore::ApplicationCacheStorage::setCacheDirectory):
3441 (WebCore::ApplicationCacheStorage::openDatabase):
3442 * loader/appcache/ApplicationCacheStorage.h:
3444 2008-04-28 Alice Liu <alice.liu@apple.com>
3448 Fix <rdar://problem/4911289> Add tabindex property to all children
3449 of HTMLElement (7138)
3450 http://bugs.webkit.org/show_bug.cgi?id=7138
3452 Test: fast/events/tabindex-focus-blur-all.html
3454 * WebCore.xcodeproj/project.pbxproj:
3455 * bindings/objc/DOMPrivate.h:
3456 -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
3459 * bindings/objc/PublicDOMInterfaces.h:
3460 -Moving focus, blur, tabindex to HTMLElement from its descendants.
3463 (WebCore::Node::Node):
3464 (WebCore::Node::isFocusable):
3465 (WebCore::Node::isKeyboardFocusable):
3466 -The concept of being focusable now needs to account for tabindex
3470 -Need to use a bit to keep track of whether tabindex was explicitly set
3471 to 0 or was just initialized to 0.
3472 (WebCore::Node::tabIndex):
3473 -Make this virtual so that Anchors and GenericFormElements can determine
3474 tabindex without accounting for focusability
3475 (WebCore::Node::setTabIndexExplicitly):
3476 -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide
3477 behind and/or be confused for HTMLElement::setTabIndex
3479 * html/HTMLAnchorElement.cpp:
3480 * html/HTMLAnchorElement.h:
3481 (WebCore::HTMLAnchorElement::tabIndex):
3482 * html/HTMLGenericFormElement.cpp:
3483 * html/HTMLGenericFormElement.h:
3484 (WebCore::HTMLGenericFormElement::tabIndex):
3485 -Anchors and form elements are normally focusable, and need to avert the
3486 check for focusability in HTMLElement::tabIndex
3487 because tabIndex could be queried before a first layout happens.
3489 * html/HTMLElement.cpp:
3490 (WebCore::HTMLElement::parseMappedAttribute):
3491 -Function Node::setTabIndex changed to Node::setTabIndexExplicitly
3492 (WebCore::HTMLElement::isFocusable):
3493 -The concept of being focusable now needs to account for tabindex
3495 (WebCore::HTMLElement::tabIndex):
3496 -HTML5 specifies that querying tabindex for elements that aren't
3497 focusable shall return -1
3498 (WebCore::HTMLElement::setTabIndex):
3499 -New default implementation
3500 * html/HTMLElement.h:
3502 * html/HTMLLegendElement.cpp:
3503 (WebCore::HTMLLegendElement::focus):
3504 -Now with HTML5's enhanced specification of tabindex, legend elements
3505 themselves shall focus (if they should), and not the first form element
3506 they encapsulate. This matches Firefox behavior. HTMLLabelElements
3507 still forward focus to the encapsulated element. This also matches
3510 * html/HTMLAreaElement.cpp:
3511 (WebCore::HTMLAreaElement::isFocusable):
3512 * html/HTMLAreaElement.h:
3513 -HTMLAreaElement isn't subject to the same focusability requirements as
3514 its parent, HTMLAnchorElement. Default HTMLElement implementation is
3517 * html/HTMLFieldSetElement.cpp:
3518 (WebCore::HTMLFieldSetElement::isFocusable):
3519 * html/HTMLLegendElement.cpp:
3520 (WebCore::HTMLLegendElement::isFocusable):
3521 * html/HTMLOptGroupElement.cpp:
3522 (WebCore::HTMLOptGroupElement::isFocusable):
3523 * html/HTMLOptionElement.cpp:
3524 (WebCore::HTMLOptionElement::isFocusable):
3525 -These elements aren't subject to the same focusability requirements as
3526 their parent, HTMLGenericFormElement. Default HTMLElement
3527 implementation is desired.
3529 * html/HTMLAnchorElement.idl:
3530 * html/HTMLAreaElement.idl:
3531 * html/HTMLButtonElement.idl:
3532 * html/HTMLElement.idl:
3533 * html/HTMLInputElement.idl:
3534 * html/HTMLLabelElement.idl:
3535 * html/HTMLLegendElement.idl:
3536 * html/HTMLObjectElement.idl:
3537 * html/HTMLSelectElement.idl:
3538 * html/HTMLTextAreaElement.idl:
3539 -Moving tabindex attribute, focus and blur methods from descendants of
3540 HTMLElement to HTMLElement
3542 2008-04-28 Dan Bernstein <mitz@apple.com>
3544 Reviewed by Dave Hyatt.
3546 - support multiple box- and text-shadows
3548 Tests: fast/css/shadow-multiple.html
3549 fast/repaint/shadow-multiple-horizontal.html
3550 fast/repaint/shadow-multiple-strict-horizontal.html
3551 fast/repaint/shadow-multiple-strict-vertical.html
3552 fast/repaint/shadow-multiple-vertical.html
3554 * css/CSSComputedStyleDeclaration.cpp:
3555 (WebCore::valueForShadow): Changed to account for reversing the order
3556 of the shadow values in the ShadowData list.
3558 * css/CSSValueList.cpp:
3559 (WebCore::CSSValueList::prepend): Added.
3560 * css/CSSValueList.h:
3562 * rendering/InlineFlowBox.cpp:
3563 (WebCore::InlineFlowBox::placeBoxesHorizontally): Changed to account for
3564 all shadows in overflow calculation.
3565 (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
3566 (WebCore::InlineFlowBox::paint): Changed to account for all shadows
3567 when testing for intersection with the damage rect.
3568 (WebCore::InlineFlowBox::paintTextDecorations): Changed to paint all
3571 * rendering/InlineTextBox.cpp:
3572 (WebCore::paintTextWithShadows): Factored out from paint() and changed
3573 to paint all shadows.
3574 (WebCore::InlineTextBox::paint): Moved the text painting code out to
3575 paintTextWithShadows(). Changed to not paint shadows for markers and
3576 composition underlines and in "force black text" mode.
3577 (WebCore::InlineTextBox::paintSelection):
3578 (WebCore::InlineTextBox::paintCompositionBackground):
3579 (WebCore::InlineTextBox::paintDecoration): Changed to paint all shadows.
3580 * rendering/InlineTextBox.h: Changed some public methods to private
3583 * rendering/RenderBlock.cpp:
3584 (WebCore::RenderBlock::overflowHeight): Changed to account for all
3586 (WebCore::RenderBlock::overflowWidth): Ditto.
3587 (WebCore::RenderBlock::overflowLeft): Ditto.
3588 (WebCore::RenderBlock::overflowTop): Ditto.