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