1 2008-05-11 Robin Dunn <robin@alldunn.com>
3 Reviewed by Kevin Ollivier.
5 Since wx popup menus dismiss themselves when an item is selected we need to
6 call hidePopup so webkit's internal state is correct.
8 https://bugs.webkit.org/show_bug.cgi?id=19000
10 * platform/wx/PopupMenuWx.cpp:
11 (WebCore::PopupMenu::OnMenuItemSelected):
12 (WebCore::PopupMenu::hide):
14 2008-05-11 Sam Weinig <sam@webkit.org>
16 Reviewed by Mark Rowe.
18 Move some generic parsing functions into a new ParserUtilities header so that
19 they can be used for non-SVG builds too.
21 * WebCore.vcproj/WebCore.vcproj:
22 * WebCore.xcodeproj/project.pbxproj:
23 * platform/text/ParserUtilities.h: Added.
24 (WebCore::skipString):
25 * svg/SVGParserUtilities.h:
26 (WebCore::isWhitespace):
27 (WebCore::skipOptionalSpaces):
28 (WebCore::skipOptionalSpacesOrDelimiter):
30 2008-05-11 Sam Weinig <sam@webkit.org>
32 Reviewed by Dan Bernstein.
34 Add scaffolding for the implementation of Access Control for Cross-site Requests.
38 * WebCore.vcproj/WebCore.vcproj:
39 * WebCore.xcodeproj/project.pbxproj:
41 * xml/AccessControlList.cpp: Added.
42 (WebCore::AccessControlList::AccessControlList):
43 (WebCore::AccessControlList::~AccessControlList):
44 (WebCore::AccessControlList::parseAccessControlHeader):
45 (WebCore::AccessControlList::checkOrigin):
46 * xml/AccessControlList.h: Added.
47 * xml/AccessItem.cpp: Added.
48 (WebCore::AccessItem::AccessItem):
49 (WebCore::AccessItem::parseAccessItem):
50 (WebCore::AccessItem::matches):
51 * xml/AccessItem.h: Added.
52 * xml/AccessItemRule.cpp: Added.
53 (WebCore::AccessItemRule::AccessItemRule):
54 (WebCore::AccessItemRule::parseAccessItemRule):
55 * xml/AccessItemRule.h: Added.
57 2008-05-11 Julien Chaffraix <jchaffraix@webkit.org>
61 * loader/appcache/ApplicationCache.cpp: Include stdio.h
62 as we are using printf in ApplicationCache::dump().
64 2008-05-10 Dan Bernstein <mitz@apple.com>
66 Reviewed by Jessica Kahn.
68 - add a copy assignment operator to FontPlatformData on Mac to properly
69 retain the m_font data member.
71 * platform/graphics/mac/FontPlatformData.h:
72 * platform/graphics/mac/FontPlatformDataMac.mm:
73 (WebCore::FontPlatformData::FontPlatformData):
74 (WebCore::~FontPlatformData):
75 (WebCore::FontPlatformData::operator=):
76 (WebCore::FontPlatformData::setFont):
78 2008-05-10 Adele Peterson <adele@apple.com>
80 Reviewed by Tim Hatcher.
82 Fix crash for WebKit clients that don't set a group name for the WebView/Page.
84 * page/PageGroup.cpp: (WebCore::PageGroup::PageGroup): Instead of adding the Page directly to the group,
85 call the addPage method, since it does extra work initializing m_localStorage.
87 2008-05-09 Sam Weinig <sam@webkit.org>
89 Reviewed by Mark Rowe.
91 Fix for https://bugs.webkit.org/show_bug.cgi?id=18958
92 NULL pointer dereference in NamedAttrMap::setNamedItem
94 Test: fast/dom/NamedNodeMap-setNamedItem-crash.html
96 * dom/NamedAttrMap.cpp:
97 (WebCore::NamedAttrMap::setNamedItem): Null check the argument.
99 2008-05-09 Kevin McCullough <kmccullough@apple.com>
104 (WebCore::Console::profile):
106 2008-05-09 Sam Weinig <sam@webkit.org>
108 Rubber-stamped by Mark Rowe.
110 Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.
112 * Configurations/WebCore.xcconfig:
113 * WebCore.vcproj/WebCore.vcproj:
114 * WebCore.vcproj/build-generated-files.sh:
115 * bindings/js/JSDOMWindowCustom.cpp:
116 (WebCore::JSDOMWindow::customGetOwnPropertySlot):
117 (WebCore::JSDOMWindow::postMessage):
118 * bindings/js/JSEventCustom.cpp:
120 * bindings/objc/DOMEvents.mm:
121 (+[DOMEvent _wrapEvent:WebCore::]):
123 (WebCore::Document::createEvent):
125 (WebCore::Event::isMessageEvent):
127 * dom/MessageEvent.cpp:
128 * dom/MessageEvent.h:
129 * dom/MessageEvent.idl:
130 * page/DOMWindow.cpp:
131 (WebCore::DOMWindow::postMessageTimerFired):
133 * page/DOMWindow.idl:
135 2008-05-09 Adam Barth <abarth-webkit@adambarth.com>
137 Reviewed by Sam Weinig.
139 https://bugs.webkit.org/show_bug.cgi?id=18771
141 Make postMessage generate an event on the window instead of the
144 Test: http/tests/messaging/cross-domain-message-event-dispatch.html
146 * dom/EventTargetNode.cpp:
147 (WebCore::EventTargetNode::dispatchWindowEvent):
148 * dom/EventTargetNode.h:
149 * page/DOMWindow.cpp:
150 (WebCore::DOMWindow::postMessageTimerFired):
152 2008-05-09 Tor Arne Vestbø <tavestbo@trolltech.com>
156 Replaced all instances of qDebug() with LOG(Media, ...)
157 in MediaPlayerPrivatePhonon.
159 * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
160 (WebCore::MediaPlayerPrivate::updateStates):
162 2008-05-09 Tor Arne Vestbø <tavestbo@trolltech.com>
166 Fix the Qt/Mac build.
168 * platform/qt/FileSystemQt.cpp:
170 2008-05-08 Sam Weinig <sam@webkit.org>
172 Reviewed by Anders Carlsson.
174 Rename the XMLHttpRequestState enum values to match the spec.
176 * xml/XMLHttpRequest.cpp:
177 (WebCore::XMLHttpRequest::responseXML):
178 (WebCore::XMLHttpRequest::XMLHttpRequest):
179 (WebCore::XMLHttpRequest::callReadyStateChangeListener):
180 (WebCore::XMLHttpRequest::open):
181 (WebCore::XMLHttpRequest::send):
182 (WebCore::XMLHttpRequest::abort):
183 (WebCore::XMLHttpRequest::setRequestHeader):
184 (WebCore::XMLHttpRequest::getAllResponseHeaders):
185 (WebCore::XMLHttpRequest::getResponseHeader):
186 (WebCore::XMLHttpRequest::status):
187 (WebCore::XMLHttpRequest::statusText):
188 (WebCore::XMLHttpRequest::processSyncLoadResults):
189 (WebCore::XMLHttpRequest::didFinishLoading):
190 (WebCore::XMLHttpRequest::didReceiveData):
191 * xml/XMLHttpRequest.h:
194 2008-05-08 Dan Bernstein <mitz@apple.com>
196 Reviewed by Mark Rowe.
198 - fix https://bugs.webkit.org/show_bug.cgi?id=18818
199 <rdar://problem/5901544> REGRESSION (3.1.1-TOT): Character order (float:left ordered after the first letter)
201 Test: fast/css/first-letter-float-after-float.html
203 * rendering/RenderBlock.cpp:
204 (WebCore::RenderBlock::updateFirstLetter): Changed to add the first
205 letter container right before the rest of the text it is taken from,
206 instead of at the beginning of the block.
208 2008-05-08 Chris Fleizach <cfleizach@apple.com>
210 Reviewed by Darin Adler.
212 <rdar://problem/5921046> AX: list box options have wrong AXPosition
214 * page/AccessibilityObject.cpp:
215 (WebCore::AccessibilityObject::documentFrameView):
216 * page/AccessibilityObject.h:
218 2008-05-08 Julien Chaffraix <jchaffraix@webkit.org>
222 Bug 18916: make_names.pl --factory needs to support custom c++ guard
224 Add --guardFactoryWith to handle the cpp guard around generated factories.
226 * DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
227 * GNUmakefile.am: Ditto.
228 * WebCore.pro: Ditto.
229 * dom/make_names.pl: Add guardFactoryWith option.
231 2008-05-08 Julien Chaffraix <jchaffraix@webkit.org>
233 Reviewed by Adam Roben.
237 Should also fix the cURL backend for the Windows port.
239 * WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
240 * platform/network/curl/FormDataStreamCurl.h: Include stdio.h which
241 fixes the build on some machine.
243 * webcore-wx.bkl: Add FormDataStreamCurl.cpp.
245 2008-05-08 Timothy Hatcher <timothy@apple.com>
247 Fixes the bug where the Web Inspector could not
248 find any localization strings.
250 Reviewed by Mark Rowe.
252 * WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js
253 file to the WebCore Copy Resources phase. Also removes an idl from
254 the Copy Resources phase.
256 2008-05-08 Dan Bernstein <mitz@apple.com>
258 Reviewed by Adam Roben.
260 - fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
262 * platform/win/PopupMenuWin.cpp:
263 (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold
264 font for measuring labels.
266 2008-05-08 Dan Bernstein <mitz@apple.com>
268 Reviewed by Geoffrey Garen.
270 - cross-platform fix for http://bugs.webkit.org/show_bug.cgi?id=17590
271 ASSERTION FAILED: subject in jsRegExpExecute()
274 (WebCore::Frame::matchLabelsAgainstElement):
276 2008-05-08 Holger Hans Peter Freyther <zecke@selfish.org>
280 Simple ImageBuffer::image implementation.
282 In contrast to cg and cairo we do not use a special BitmapImage because
283 the ownership of the FrameData inside the BitmapImage is a bit backward
284 (actually owned by the ImageDecoderQt...). Further work is needed for image
285 and pixmap handling in the qt port...
288 * platform/graphics/ImageBuffer.h:
289 * platform/graphics/qt/ImageBufferQt.cpp:
290 (WebCore::ImageBuffer::image):
291 * platform/graphics/qt/ImageQt.cpp:
292 * platform/graphics/qt/StillImageQt.cpp: Added.
293 (WebCore::StillImage::StillImage):
294 (WebCore::StillImage::size):
295 (WebCore::StillImage::getPixmap):
296 (WebCore::StillImage::draw):
297 * platform/graphics/qt/StillImageQt.h: Added.
299 2008-05-08 Holger Hans Peter Freyther <zecke@selfish.org>
303 Update the WebKit.qrc of the inspector to be functional again
305 * page/inspector/WebKit.qrc:
307 2008-05-08 Tor Arne Vestbø <tavestbo@trolltech.com>
311 Fix the Qt/Mac build.
313 * platform/FileSystem.h:
315 2008-05-08 Ariya Hidayat <ariya.hidayat@trolltech.com>
319 Use native Windows library handling (instead of QLibrary)
320 for Qt/Win32's PlatformModule.
322 * platform/FileSystem.h:
323 (WebCore::PlatformModuleVersion::PlatformModuleVersion):
324 * platform/qt/FileSystemQt.cpp:
325 (WebCore::unloadModule):
327 2008-05-08 Simon Hausmann <hausmann@webkit.org>
329 Reviewed and found by Holger.
331 Include .css in the list of extensions for text/css. Fixes
332 fast/loader/local-css-allowed-in-strict-mode.html.
334 * platform/qt/MIMETypeRegistryQt.cpp:
336 2008-05-08 Simon Hausmann <hausmann@webkit.org>
338 Fix the Qt and Wx build when compiling without offline app support.
340 * loader/FrameLoader.cpp:
341 (WebCore::FrameLoader::canCachePage):
343 2008-05-07 Sam Weinig <sam@webkit.org>
345 Reviewed by Adele Peterson
347 Update MessageEvent to match the latest version of the HTML5 spec,
348 adding the lastEventId attribute.
350 * dom/MessageEvent.cpp:
351 (WebCore::MessageEvent::MessageEvent):
352 (WebCore::MessageEvent::initMessageEvent):
353 * dom/MessageEvent.h:
354 (WebCore::MessageEvent::lastEventId):
355 * dom/MessageEvent.idl:
356 * page/DOMWindow.cpp:
357 (WebCore::DOMWindow::postMessage):
359 2008-05-07 Stephanie Lewis <slewis@apple.com>
363 remove non-functioning code. If onunload should be fired from these nodes then
364 a WindowEventListener needs to be set. However, Firefox and IE also do not
365 fire onunload events for these cases.
367 Test: fast/events/onunload-not-on-body.html
369 * html/HTMLFrameElementBase.cpp:
370 (WebCore::HTMLFrameElementBase::parseMappedAttribute):
371 * html/HTMLObjectElement.cpp
372 (WebCore::HTMLObjectElement::parseMappedAttribute):
374 2008-05-07 Dan Bernstein <mitz@apple.com>
376 Reviewed by John Sullivan.
378 - fix https://bugs.webkit.org/show_bug.cgi?id=18909
379 <rdar://problem/5914165> REGRESSION (r31872-r31878): Viewed photos not closing completely at indycar.com
381 Test: fast/dynamic/positioned-movement-with-positioned-children.html
383 * rendering/RenderBlock.cpp:
384 (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of
385 a positioned object that has only moved and has only positioned children
387 * rendering/RenderObject.h:
388 (WebCore::RenderObject::needsPositionedMovementLayout): Added this
391 2008-05-07 Anders Carlsson <andersca@apple.com>
395 When no document loaders are associated with an application cache group,
396 release the reference to the newest cache group. This prevents reference cycles.
398 * loader/appcache/ApplicationCacheGroup.cpp:
399 (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
400 (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
401 (WebCore::ApplicationCacheGroup::cacheDestroyed):
402 * loader/appcache/ApplicationCacheGroup.h:
404 * loader/appcache/ApplicationCacheStorage.cpp:
405 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
406 Return early if the datbase wasn't open.
408 (WebCore::ApplicationCacheStorage::loadCache):
411 2008-05-07 Anders Carlsson <andersca@apple.com>
415 Don't put pages with an application cache in the BF cache.
417 * loader/FrameLoader.cpp:
418 (WebCore::FrameLoader::canCachePage):
420 2008-05-07 Justin Garcia <justin.garcia@apple.com>
422 Reviewed by John Sullivan.
424 <rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply
426 When a single tab or series of tabs was copied, we weren't putting them into a
427 tab span. On Paste, we would be given a text node with a single tab or series
428 of tabs in it, and we would crash when inserting it at the start of a block
429 (where that kind of text becomes completely unrendered).
431 * editing/ReplaceSelectionCommand.cpp:
432 (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean
433 up correctly and early return if we removed everything that was inserted.
434 * editing/markup.cpp:
435 (WebCore::createMarkup): Include the tab span when the only thing copied
436 was a tab or a series of tabs.
438 2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>
440 Reviewed by Adam Roben.
444 * platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define
445 __STDC_LIMIT_MACROS to have SIZE_MAX exported.
446 * platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h)
447 as it is not present on the build bots.
448 * plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
450 2008-05-07 David Kilzer <ddkilzer@apple.com>
452 Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
453 <https://bugs.webkit.org/show_bug.cgi?id=18900>
454 <rdar://problem/5912383>
456 Original patch by Aaron Golden and Tim Omernick. Reviewed by Adele.
458 Test: fast/forms/textfield-to-password-on-focus.html
460 * html/HTMLInputElement.cpp:
461 (WebCore::HTMLInputElement::setInputType): If the current node has
462 focus, call updateFocusAppearance() to make sure its state is correct
463 after changing its type.
465 2008-05-07 Chris Fleizach <cfleizach@apple.com>
467 Reviewed by Alice Liu
469 <rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton
471 * page/AccessibilityObject.h:
472 (WebCore::AccessibilityObject::isFileUploadButton):
473 * page/AccessibilityRenderObject.cpp:
474 (WebCore::AccessibilityRenderObject::isFileUploadButton):
475 (WebCore::AccessibilityRenderObject::actionElement):
476 (WebCore::AccessibilityRenderObject::textUnderElement):
477 (WebCore::AccessibilityRenderObject::stringValue):
478 (WebCore::AccessibilityRenderObject::roleValue):
479 * page/AccessibilityRenderObject.h:
480 * rendering/RenderFileUploadControl.cpp:
481 (WebCore::RenderFileUploadControl::buttonValue):
482 (WebCore::RenderFileUploadControl::fileTextValue):
483 * rendering/RenderFileUploadControl.h:
485 2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>
489 Bug 17971: [Curl] FormData processing should be moved to its own class
491 Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
494 First step into having complete file uploading facility in cURL.
496 No test case as it is only code refactoring.
498 * GNUmakefile.am: Add FormDataStreamCurl.cpp
499 * platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h
500 (WebCore::ResourceHandleInternal::ResourceHandleInternal):
501 * platform/network/curl/FormDataStreamCurl.cpp: Added.
502 (WebCore::FormDataStream::~FormDataStream):
503 (WebCore::FormDataStream::read):
504 * platform/network/curl/FormDataStreamCurl.h: Added.
505 (WebCore::FormDataStream::FormDataStream):
506 * platform/network/curl/ResourceHandleCurl.cpp:
507 (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
508 * platform/network/curl/ResourceHandleManager.cpp:
509 (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
511 2008-05-07 Adam Treat <treat@kde.org>
515 https://bugs.webkit.org/show_bug.cgi?id=18898
517 Fixed wrong transform being used for creating the pixmap for a new
518 transparency layer. This fixes the popup menus on dell.com.
520 * platform/graphics/qt/GraphicsContextQt.cpp:
521 (WebCore::GraphicsContext::beginTransparencyLayer):
523 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
527 Share the plug-in directories between Gtk and Qt/X11 port.
529 * platform/qt/FileSystemQt.cpp:
530 (WebCore::homeDirectoryPath): Implement it for Qt.
531 * plugins/PluginDatabase.cpp:
532 (WebCore::addMozillaPluginDirectories): Shared code.
533 (WebCore::PluginDatabase::defaultPluginDirectories):
534 (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
535 * plugins/gtk/PluginDatabaseGtk.cpp:
536 (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
537 * plugins/qt/PluginDatabaseQt.cpp: Refactored.
539 2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>
543 Fix build issues on Mac and refeactor the .pro file a bit.
546 * platform/qt/TemporaryLinkStubs.cpp:
547 (PluginPackage::fetchInfo):
549 2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>
553 Draw scrollview corners (between scrollbars) using the Qt style.
555 https://bugs.webkit.org/show_bug.cgi?id=18894
557 * platform/qt/ScrollViewQt.cpp:
558 (WebCore::drawScrollbarCorner):
559 (WebCore::ScrollView::paint):
561 2008-05-07 Simon Hausmann <hausmann@webkit.org>
563 Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
568 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
570 Rubber-stamped by Holger.
572 Fix building without storage support.
574 * page/PageGroup.cpp:
575 (WebCore::PageGroup::closeLocalStorage): proper #if
577 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
579 Rubber-stamped by Oliver Hunt.
581 Fix building without accessibility.
583 * page/AXObjectCache.cpp:
584 (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
586 2008-05-06 Dan Bernstein <mitz@apple.com>
588 Reviewed by Darin Adler.
590 - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
592 Test: fast/block/float/float-on-zero-height-line.html
594 * rendering/RenderBlock.cpp:
595 (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
597 2008-05-06 Alice Liu <alice.liu@apple.com>
599 Reviewed by Adele Peterson and John Sullivan.
601 changes needed to build on Windows after r32911 and r32927
603 * WebCore.vcproj/WebCore.vcproj:
604 * page/AXObjectCache.cpp:
605 (WebCore::AXObjectCache::selectedChildrenChanged):
606 * page/AccessibilityObject.h:
607 (WebCore::AccessibilityObject::document):
608 (WebCore::AccessibilityObject::topDocumentFrameView):
609 (WebCore::AccessibilityObject::documentFrameView):
610 * page/AccessibilityRenderObject.cpp:
611 (WebCore::AccessibilityRenderObject::document):
612 (WebCore::AccessibilityRenderObject::topDocumentFrameView):
613 (WebCore::AccessibilityRenderObject::documentFrameView):
614 * page/AccessibilityRenderObject.h:
615 * page/mac/AXObjectCacheMac.mm:
616 * page/mac/AccessibilityObjectWrapper.mm:
617 (-[AccessibilityObjectWrapper position]):
618 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
620 2008-05-06 Brady Eidson <beidson@apple.com>
622 Reviewed by Sam Weinig
624 Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
625 1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
626 2 - Pending sync timers all need to be cancelled.
628 * storage/LocalStorage.cpp:
629 (WebCore::LocalStorage::storageArea):
630 (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
632 * storage/LocalStorage.h: Change the map to be of LocalStorageAreas instead of StorageAreas
634 * storage/LocalStorageArea.cpp:
635 (WebCore::LocalStorageArea::LocalStorageArea):
636 (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
638 (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
639 "final sync scheduled" flag
640 (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
641 (WebCore::LocalStorageArea::scheduleClear): Ditto
642 * storage/LocalStorageArea.h:
644 2008-05-06 Kevin Ollivier <kevino@theolliviers.com>
646 wx build fix. Adding files added in r32925 to the bakefiles.
648 * WebCoreSources.bkl:
650 2008-05-06 Alp Toker <alp@nuanti.com>
652 GTK+ build fix. Add empty stub to keep non-accessible ports building.
654 * page/AXObjectCache.h:
655 (WebCore::AXObjectCache::selectedChildrenChanged):
657 2008-05-06 Beth Dakin <bdakin@apple.com>
661 Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and
662 'aria-describedby' attributes.
664 * html/HTMLAttributeNames.in: Added new attributes. Added both the
665 British spelling (since that is what is specified in the spec), and
666 the American spelling (since the bug filer and I are two Americans
667 who keep spelling it the American way by accident).
668 * page/AccessibilityObject.cpp: Added empty wrappers. These
669 functions can't do anything meaningful without a renderer.
670 (WebCore::AccessibilityObject::ariaAccessiblityName):
671 (WebCore::AccessibilityObject::ariaLabeledByAttribute):
672 (WebCore::AccessibilityObject::ariaDescribedByAttribute):
673 * page/AccessibilityObject.h:
675 Here is where the real work is done.
676 * page/AccessibilityRenderObject.h:
677 * page/AccessibilityRenderObject.cpp:
678 (WebCore::accessibleNameForNode): Takes a node and finds its
679 contribution to the accessible name, as defined by the Mozilla ARIA
681 (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a
682 string of space-separated IDs, fetches the corresponding element
683 for each ID, and concatenates an accessible name based on the
685 (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute):
686 Retrieve the labeledby attribute and send its contents to
687 ariaAccessibilityName().
688 (WebCore::AccessibilityRenderObject::title): Return the ARIA
689 labeledby value if one exists.
690 (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute):
691 Retrieve the describedby attribute and send its contents to
692 ariaAccessibilityName().
693 (WebCore::AccessibilityRenderObject::accessibilityDescription):
694 Return the ARIA describedby attribute if one exists.
696 These are two bugs I spotted.
697 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't
698 ignore anything with an ARIA role.
699 (WebCore::AccessibilityRenderObject::roleValue): Button tags maps
702 2008-05-06 Anders Carlsson <andersca@apple.com>
706 Support reading back app caches from the database.
708 * loader/appcache/ApplicationCache.cpp:
709 (WebCore::ApplicationCache::ApplicationCache):
710 Initialize m_storageID to 0.
712 * loader/appcache/ApplicationCacheGroup.cpp:
713 (WebCore::ApplicationCacheGroup::cacheDestroyed):
714 If the cache being destroyed is not the newest cache, it should no longer be
715 stored in the database. Remove it.
717 (WebCore::ApplicationCacheGroup::setNewestCache):
718 Don't store the cache here.
720 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
721 Store it here instead.
723 * loader/appcache/ApplicationCacheStorage.cpp:
724 (WebCore::ApplicationCacheStorage::loadCacheGroup):
725 New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).
727 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
728 Search for the group in the database.
730 (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
731 New method that loads the host hashes from the database.
733 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
734 Search in the database for a cache that contains the resource.
736 (WebCore::ApplicationCacheStorage::loadCache):
737 New method that loads a cache with a given ID.
739 (WebCore::ApplicationCacheStorage::remove):
740 New method that removes a cache.
742 * loader/appcache/ApplicationCacheStorage.h:
745 2008-05-06 Alp Toker <alp@nuanti.com>
747 Partial GTK+ build fix. Add files from r32925 to the build and replace
751 * page/AccessibilityListBoxOption.cpp:
752 (WebCore::AccessibilityListBoxOption::parentObject):
754 2008-05-06 Brady Eidson <beidson@apple.com>
758 Make LocalStorage persistent using a SQLite database.
760 There's a few things going on here. Whenever an item is changed, we add it to a set of
761 "items to be sync'ed." Instead of immediately scheduling the sync'ing on the background
762 thread, we set a "sync timer" instead. This is to shield against a series of rapid changes
763 to avoid thread churn.
765 When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
766 and schedule the sync task which is where the items are actually committed to disk.
768 Current design for reading items back in from disk is to be as aggressive as possible.
769 When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
770 they are immediately available. A future enhancement will be to being this pre-fetching the
771 moment we start loading a page when we know that page has LocalStorage.
773 * storage/LocalStorageArea.cpp:
774 (WebCore::LocalStorageArea::LocalStorageArea):
775 (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it.
776 (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it.
777 (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it.
778 (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it. The second case is
779 because if the item is set while the import is still in progress, the new value should override whatever
780 the imported value is.
781 (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it. See the
782 explanation for setItem()
783 (WebCore::LocalStorageArea::contains): Return whether or not the item is contained. Do the same dance with
784 the import flag, import lock, and import condition that the above methods do.
786 (WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
787 (WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
788 (WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously
791 (WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
792 (WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed." If any
793 items are later set before the actual removal takes place, they will be written *after* the removal.
794 (WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then
795 schedule a sync task. Also transfer the "items cleared" flag to the "background thread items cleared" flag
796 (WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
797 (WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
798 (WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items. Then update or delete
799 each item waiting to be sync'ed
800 * storage/LocalStorageArea.h:
802 2008-05-06 Brady Eidson <beidson@apple.com>
804 Rubberstamped by Mitz Pettel RTL
806 * storage/LocalStorage.cpp:
807 (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
809 2008-05-06 Brady Eidson <beidson@apple.com>
811 Reviewed by Darin, Sam Weinig, and Anders
813 Preparation for upcoming work making LocalStorage persistent.
815 The final step before code that actually does storage and retrieval of LocalStorage items.
817 The LocalStorage set is responsible for controlling the path and filenames that individual
818 LocalStorageAreas will use for their persistent store. This adds the ability to return that
821 Also, add the scheduling methods that LocalStorageArea will use for importing and syncing
822 it's persistent items.
824 * storage/LocalStorage.cpp:
825 (WebCore::LocalStorage::storageArea): Add some comments re: the future direction of this
826 method once we actually do quota tracking.
827 (WebCore::LocalStorage::fullDatabaseFilename):
828 (WebCore::LocalStorage::scheduleImport):
829 (WebCore::LocalStorage::scheduleSync):
830 * storage/LocalStorage.h:
832 2008-05-06 Chris Fleizach <cfleizach@apple.com>
834 Reviewed by Beth Dakin.
836 rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
838 * WebCore.xcodeproj/project.pbxproj:
839 * html/HTMLOptGroupElement.cpp:
840 (WebCore::HTMLOptGroupElement::ownerSelectElement):
841 (WebCore::HTMLOptGroupElement::accessKeyAction):
842 * html/HTMLOptGroupElement.h:
843 * html/HTMLOptionElement.cpp:
844 (WebCore::HTMLOptionElement::accessKeyAction):
845 (WebCore::HTMLOptionElement::index):
846 (WebCore::HTMLOptionElement::setSelected):
847 (WebCore::HTMLOptionElement::childrenChanged):
848 (WebCore::HTMLOptionElement::ownerSelectElement):
849 (WebCore::HTMLOptionElement::insertedIntoDocument):
850 * html/HTMLOptionElement.h:
851 * html/HTMLSelectElement.cpp:
852 (WebCore::HTMLSelectElement::childrenChanged):
853 (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
854 * html/HTMLSelectElement.h:
855 * page/AXObjectCache.cpp:
856 (WebCore::AXObjectCache::get):
857 * page/AccessibilityListBox.cpp: Added.
858 (WebCore::AccessibilityListBox::AccessibilityListBox):
859 (WebCore::AccessibilityListBox::~AccessibilityListBox):
860 (WebCore::AccessibilityListBox::create):
861 (WebCore::AccessibilityListBox::addChildren):
862 (WebCore::AccessibilityListBox::selectedChildren):
863 (WebCore::AccessibilityListBox::visibleChildren):
864 (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
865 (WebCore::AccessibilityListBox::doAccessibilityHitTest):
866 * page/AccessibilityListBox.h: Added.
867 (WebCore::AccessibilityListBox::accessibilityShouldUseUniqueId):
868 (WebCore::AccessibilityListBox::isListBox):
869 (WebCore::AccessibilityListBox::canSetFocusAttribute):
870 (WebCore::AccessibilityListBox::roleValue):
871 (WebCore::AccessibilityListBox::accessibilityIsIgnored):
872 * page/AccessibilityListBoxOption.cpp: Added.
873 (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
874 (WebCore::AccessibilityListBoxOption::~AccessibilityListBoxOption):
875 (WebCore::AccessibilityListBoxOption::create):
876 (WebCore::AccessibilityListBoxOption::isEnabled):
877 (WebCore::AccessibilityListBoxOption::isSelected):
878 (WebCore::AccessibilityListBoxOption::elementRect):
879 (WebCore::AccessibilityListBoxOption::title):
880 (WebCore::AccessibilityListBoxOption::size):
881 (WebCore::AccessibilityListBoxOption::actionElement):
882 (WebCore::AccessibilityListBoxOption::parentObject):
883 (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
884 (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
885 * page/AccessibilityListBoxOption.h: Added.
886 (WebCore::AccessibilityListBoxOption::setHTMLElement):
887 (WebCore::AccessibilityListBoxOption::roleValue):
888 (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
889 (WebCore::AccessibilityListBoxOption::isListBoxOption):
890 * page/AccessibilityObject.h:
891 (WebCore::AccessibilityObject::isListBox):
892 * page/AccessibilityRenderObject.cpp:
893 (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
894 * page/mac/AccessibilityObjectWrapper.mm:
895 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
896 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
897 * rendering/RenderListBox.cpp:
898 (WebCore::RenderListBox::selectionChanged):
899 * rendering/RenderListBox.h:
901 2008-05-06 Chris Fleizach <cfleizach@apple.com>
903 Reviewed by Beth Dakin.
905 <rdar://problem/5455287> AXWebArea should include AXURL
907 * page/AccessibilityRenderObject.cpp:
908 (WebCore::AccessibilityRenderObject::url):
909 * page/mac/AccessibilityObjectWrapper.mm:
910 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
912 2008-05-06 Alice Liu <alice.liu@apple.com>
914 Rubber-stamped by Beth
916 stab-in-the-dark attempt at fixing non-mac builds.
920 * WebCore.vcproj/WebCore.vcproj:
921 * WebCoreSources.bkl:
923 2008-05-06 Anders Carlsson <andersca@apple.com>
927 Only use the toplevel application cache when loading subframes.
929 * loader/MainResourceLoader.cpp:
930 (WebCore::MainResourceLoader::load):
932 2008-05-06 Adam Barth <abarth-webkit@adambarth.com>
934 Reviewed by Sam Weinig.
936 https://bugs.webkit.org/show_bug.cgi?id=18725
937 Implement asynchronous postMessage.
938 MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.
940 Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
942 Test: http/tests/security/postMessage/delivery-order.html
944 * dom/MessageEvent.cpp:
945 (WebCore::MessageEvent::MessageEvent):
946 * page/DOMWindow.cpp:
947 (WebCore::PostMessageTimer::PostMessageTimer):
948 (WebCore::PostMessageTimer::event):
949 (WebCore::PostMessageTimer::targetOrigin):
950 (WebCore::PostMessageTimer::fired):
951 (WebCore::DOMWindow::postMessage):
952 (WebCore::DOMWindow::postMessageTimerFired):
954 * page/DOMWindow.idl:
956 2008-05-06 Anders Carlsson <andersca@apple.com>
960 Store cache to the database.
962 * loader/appcache/ApplicationCache.cpp:
963 (WebCore::ApplicationCache::addResource):
964 If the cache has been saved to disk, save the resource as well.
966 * loader/appcache/ApplicationCache.h:
967 (WebCore::ApplicationCache::onlineWhitelist):
968 New method which returns the online whitelist.
970 (WebCore::ApplicationCache::setStorageId):
971 (WebCore::ApplicationCache::storageId):
972 Setter/getter for the application cache storage ID.
974 * loader/appcache/ApplicationCacheGroup.cpp:
975 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
976 Save the cache/group to disk.
978 * loader/appcache/ApplicationCacheGroup.h:
979 (WebCore::ApplicationCacheGroup::setStorageID):
980 (WebCore::ApplicationCacheGroup::storageID):
981 Setter/getter for the application cache group storage ID.
983 * loader/appcache/ApplicationCacheResource.cpp:
984 (WebCore::ApplicationCacheResource::addType):
985 We can't add a new type if the resource has been saved to disk.
987 * loader/appcache/ApplicationCacheResource.h:
988 (WebCore::ApplicationCacheResource::setStorageID):
989 (WebCore::ApplicationCacheResource::storageID):
990 Setter/getter for the application cache resource storage ID.
992 * loader/appcache/ApplicationCacheStorage.cpp:
993 * loader/appcache/ApplicationCacheStorage.cpp:
994 (WebCore::ApplicationCacheStorage::executeSQLCommand):
995 New method for executing SQL and logging any errors.
997 (WebCore::ApplicationCacheStorage::openDatabase):
1000 (WebCore::ApplicationCacheStorage::executeStatement):
1001 New method for executing an SQL statement and logging any errors.
1003 (WebCore::ApplicationCacheStorage::store):
1004 New methods for storing a cache group, cache and cache resource to the store.
1006 (WebCore::ApplicationCacheStorage::storeNewestCache):
1007 New method which stores the newest cache and updates the newest cache field in the cache group.
1009 * loader/appcache/ApplicationCacheStorage.h:
1012 * platform/sql/SQLiteStatement.h:
1013 (WebCore::SQLiteStatement::query):
1014 Getter for the SQL query.
1016 2008-05-06 Brady Eidson <beidson@apple.com>
1018 Reviewed by Darin Adler
1020 Preparation for upcoming work making LocalStorage persistent.
1022 Writing persistent values for LocalStorage will take place on a background thread.
1023 Here is that background thread, as well as most of the hooks that will be utilized to
1024 make the whole song and dance work.
1026 The thread itself is very simple and MessageQueue based. LocalStorageTasks are what
1027 mark the work that needs to be done and come in 5 flavors: Import and Sync a LocalStorage set,
1028 Import and Sync a LocalStorageArea, and terminate the thread.
1030 This patch accomplished 2 things:
1032 1 - Each PageGroup has its own LocalStorage set. Upon its creation its LocalStorageThread is
1033 created and started.
1035 2 - At application shutdown, each thread is synchronously terminated.
1037 What happens between steps 1 and 2 will come later.
1041 * WebCore.vcproj/WebCore.vcproj:
1042 * WebCore.xcodeproj/project.pbxproj:
1043 * WebCoreSources.bkl:
1045 * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
1046 method is meant to be called from.
1047 (WebCore::LocalStorage::LocalStorage):
1048 (WebCore::LocalStorage::storageArea):
1049 (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
1050 (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
1051 (WebCore::LocalStorage::close): Synchronously terminate the thread.
1052 * storage/LocalStorage.h:
1054 * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
1055 method is meant to be called from.
1056 (WebCore::LocalStorageArea::itemChanged):
1057 (WebCore::LocalStorageArea::itemRemoved):
1058 (WebCore::LocalStorageArea::areaCleared):
1059 (WebCore::LocalStorageArea::dispatchStorageEvent):
1060 (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this
1061 LocalStorageArea to prime the page before the items are needed
1062 (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
1063 * storage/LocalStorageArea.h:
1065 * storage/LocalStorageTask.cpp: Added.
1066 (WebCore::LocalStorageTask::LocalStorageTask):
1067 (WebCore::LocalStorageTask::performTask):
1068 * storage/LocalStorageTask.h: Added.
1069 (WebCore::LocalStorageTask::):
1070 (WebCore::LocalStorageTask::createImport):
1071 (WebCore::LocalStorageTask::createSync):
1072 (WebCore::LocalStorageTask::createTerminate):
1074 * storage/LocalStorageThread.cpp: Added.
1075 (WebCore::LocalStorageThread::create):
1076 (WebCore::LocalStorageThread::LocalStorageThread):
1077 (WebCore::LocalStorageThread::start):
1078 (WebCore::LocalStorageThread::localStorageThreadStart):
1079 (WebCore::LocalStorageThread::localStorageThread):
1080 (WebCore::LocalStorageThread::scheduleImport):
1081 (WebCore::LocalStorageThread::scheduleSync):
1082 (WebCore::LocalStorageThread::terminate):
1083 (WebCore::LocalStorageThread::performTerminate):
1084 * storage/LocalStorageThread.h: Added.
1086 2008-05-06 Anders Carlsson <andersca@apple.com>
1090 Add NPN_PopUpContextMenu.
1093 * plugins/npfunctions.h:
1095 2008-05-06 Alp Toker <alp@nuanti.com>
1097 GTK+ build fix. Add file from r32911 to the build.
1101 2008-05-06 Gwenole Beauchesne <gbeauchesne@splitted-desktop.org>
1103 Reviewed by Alp Toker.
1105 http://bugs.webkit.org/show_bug.cgi?id=18906
1106 [GTK] Fix varargs terminator in g_build_filename()
1108 * plugins/gtk/PluginDatabaseGtk.cpp:
1109 (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
1112 2008-05-06 Kevin McCullough <kmccullough@apple.com>
1114 - Forgot to update localized Strings from previous checkin.
1116 * English.lproj/localizedStrings.js:
1118 2008-05-06 Chris Fleizach <cfleizach@apple.com>
1120 Reviewed by Beth Dakin
1122 <rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
1123 <rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
1124 <rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9
1126 Initial prep work to support accessibility objects that do not have renderers.
1128 * WebCore.xcodeproj/project.pbxproj:
1129 * page/AXObjectCache.cpp:
1130 (WebCore::AXObjectCache::~AXObjectCache):
1131 (WebCore::AXObjectCache::get):
1132 (WebCore::AXObjectCache::remove):
1133 (WebCore::AXObjectCache::getAXID):
1134 (WebCore::AXObjectCache::removeAXID):
1135 (WebCore::AXObjectCache::childrenChanged):
1136 * page/AXObjectCache.h:
1137 (WebCore::AXObjectCache::isIDinUse):
1138 * page/AccessibilityObject.cpp:
1139 (WebCore::AccessibilityObject::AccessibilityObject):
1140 (WebCore::AccessibilityObject::create):
1141 (WebCore::AccessibilityObject::detach):
1142 (WebCore::AccessibilityObject::firstChild):
1143 (WebCore::AccessibilityObject::lastChild):
1144 (WebCore::AccessibilityObject::previousSibling):
1145 (WebCore::AccessibilityObject::nextSibling):
1146 (WebCore::AccessibilityObject::parentObject):
1147 (WebCore::AccessibilityObject::layoutCount):
1148 (WebCore::AccessibilityObject::text):
1149 (WebCore::AccessibilityObject::helpText):
1150 (WebCore::AccessibilityObject::textUnderElement):
1151 (WebCore::AccessibilityObject::isARIAInput):
1152 (WebCore::AccessibilityObject::isARIAControl):
1153 (WebCore::AccessibilityObject::intValue):
1154 (WebCore::AccessibilityObject::stringValue):
1155 (WebCore::AccessibilityObject::title):
1156 (WebCore::AccessibilityObject::accessibilityDescription):
1157 (WebCore::AccessibilityObject::boundingBoxRect):
1158 (WebCore::AccessibilityObject::elementRect):
1159 (WebCore::AccessibilityObject::size):
1160 (WebCore::AccessibilityObject::linkedUIElement):
1161 (WebCore::AccessibilityObject::textLength):
1162 (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
1163 (WebCore::AccessibilityObject::selectedText):
1164 (WebCore::AccessibilityObject::accessKey):
1165 (WebCore::AccessibilityObject::selection):
1166 (WebCore::AccessibilityObject::selectedTextRange):
1167 (WebCore::AccessibilityObject::setSelectedTextRange):
1168 (WebCore::AccessibilityObject::url):
1169 (WebCore::AccessibilityObject::setFocused):
1170 (WebCore::AccessibilityObject::setValue):
1171 (WebCore::AccessibilityObject::axObjectCache):
1172 (WebCore::AccessibilityObject::getDocumentLinks):
1173 (WebCore::AccessibilityObject::widget):
1174 (WebCore::AccessibilityObject::widgetForAttachmentView):
1175 (WebCore::AccessibilityObject::anchorElement):
1176 (WebCore::AccessibilityObject::actionElement):
1177 (WebCore::AccessibilityObject::visiblePositionRange):
1178 (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
1179 (WebCore::AccessibilityObject::visiblePositionForIndex):
1180 (WebCore::AccessibilityObject::indexForVisiblePosition):
1181 (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
1182 (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
1183 (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
1184 (WebCore::AccessibilityObject::textMarkerForIndex):
1185 (WebCore::AccessibilityObject::rangeForTextMarkerRange):
1186 (WebCore::AccessibilityObject::indexForTextMarker):
1187 (WebCore::AccessibilityObject::doAXRangeForLine):
1188 (WebCore::AccessibilityObject::doAXRangeForPosition):
1189 (WebCore::AccessibilityObject::doAXRangeForIndex):
1190 (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
1191 (WebCore::AccessibilityObject::doAXStringForRange):
1192 (WebCore::AccessibilityObject::doAXBoundsForRange):
1193 (WebCore::AccessibilityObject::doAccessibilityHitTest):
1194 (WebCore::AccessibilityObject::focusedUIElement):
1195 (WebCore::AccessibilityObject::observableObject):
1196 (WebCore::AccessibilityObject::roleValue):
1197 (WebCore::AccessibilityObject::ariaRoleAttribute):
1198 (WebCore::AccessibilityObject::childrenChanged):
1199 (WebCore::AccessibilityObject::addChildren):
1200 (WebCore::AccessibilityObject::removeAXObjectID):
1201 * page/AccessibilityObject.h:
1203 (WebCore::PlainTextRange::PlainTextRange):
1204 (WebCore::PlainTextRange::isNull):
1205 (WebCore::AccessibilityObject::isAccessibilityRenderObject):
1206 (WebCore::AccessibilityObject::isAnchor):
1207 (WebCore::AccessibilityObject::isAttachment):
1208 (WebCore::AccessibilityObject::isHeading):
1209 (WebCore::AccessibilityObject::isLink):
1210 (WebCore::AccessibilityObject::isImage):
1211 (WebCore::AccessibilityObject::isNativeImage):
1212 (WebCore::AccessibilityObject::isImageButton):
1213 (WebCore::AccessibilityObject::isPasswordField):
1214 (WebCore::AccessibilityObject::isTextControl):
1215 (WebCore::AccessibilityObject::isNativeTextControl):
1216 (WebCore::AccessibilityObject::isWebArea):
1217 (WebCore::AccessibilityObject::isCheckboxOrRadio):
1218 (WebCore::AccessibilityObject::isChecked):
1219 (WebCore::AccessibilityObject::isEnabled):
1220 (WebCore::AccessibilityObject::isSelected):
1221 (WebCore::AccessibilityObject::isFocused):
1222 (WebCore::AccessibilityObject::isHovered):
1223 (WebCore::AccessibilityObject::isIndeterminate):
1224 (WebCore::AccessibilityObject::isLoaded):
1225 (WebCore::AccessibilityObject::isMultiSelect):
1226 (WebCore::AccessibilityObject::isOffScreen):
1227 (WebCore::AccessibilityObject::isPressed):
1228 (WebCore::AccessibilityObject::isReadOnly):
1229 (WebCore::AccessibilityObject::isVisited):
1230 (WebCore::AccessibilityObject::canSetFocusAttribute):
1231 (WebCore::AccessibilityObject::canSetTextRangeAttributes):
1232 (WebCore::AccessibilityObject::canSetValueAttribute):
1233 (WebCore::AccessibilityObject::hasIntValue):
1234 (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
1235 (WebCore::AccessibilityObject::accessibilityIsIgnored):
1236 (WebCore::AccessibilityObject::children):
1237 (WebCore::AccessibilityObject::hasChildren):
1238 (WebCore::AccessibilityObject::setWrapper):
1239 (WebCore::AccessibilityObject::isDetached):
1240 * page/AccessibilityRenderObject.cpp: Added.
1241 (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1242 (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
1243 (WebCore::AccessibilityRenderObject::create):
1244 (WebCore::AccessibilityRenderObject::detach):
1245 (WebCore::AccessibilityRenderObject::firstChild):
1246 (WebCore::AccessibilityRenderObject::lastChild):
1247 (WebCore::AccessibilityRenderObject::previousSibling):
1248 (WebCore::AccessibilityRenderObject::nextSibling):
1249 (WebCore::AccessibilityRenderObject::parentObject):
1250 (WebCore::AccessibilityRenderObject::isWebArea):
1251 (WebCore::AccessibilityRenderObject::isImageButton):
1252 (WebCore::AccessibilityRenderObject::isAnchor):
1253 (WebCore::AccessibilityRenderObject::isNativeTextControl):
1254 (WebCore::AccessibilityRenderObject::isTextControl):
1255 (WebCore::AccessibilityRenderObject::isNativeImage):
1256 (WebCore::AccessibilityRenderObject::isImage):
1257 (WebCore::AccessibilityRenderObject::isAttachment):
1258 (WebCore::AccessibilityRenderObject::isPasswordField):
1259 (WebCore::AccessibilityRenderObject::isCheckboxOrRadio):
1260 (WebCore::AccessibilityRenderObject::isPressed):
1261 (WebCore::AccessibilityRenderObject::isIndeterminate):
1262 (WebCore::AccessibilityRenderObject::isChecked):
1263 (WebCore::AccessibilityRenderObject::isHovered):
1264 (WebCore::AccessibilityRenderObject::isMultiSelect):
1265 (WebCore::AccessibilityRenderObject::isReadOnly):
1266 (WebCore::AccessibilityRenderObject::isOffScreen):
1267 (WebCore::AccessibilityRenderObject::headingLevel):
1268 (WebCore::AccessibilityRenderObject::isHeading):
1269 (WebCore::AccessibilityRenderObject::isLink):
1270 (WebCore::AccessibilityRenderObject::anchorElement):
1271 (WebCore::AccessibilityRenderObject::actionElement):
1272 (WebCore::AccessibilityRenderObject::mouseButtonListener):
1273 (WebCore::AccessibilityRenderObject::helpText):
1274 (WebCore::AccessibilityRenderObject::textUnderElement):
1275 (WebCore::AccessibilityRenderObject::hasIntValue):
1276 (WebCore::AccessibilityRenderObject::intValue):
1277 (WebCore::AccessibilityRenderObject::stringValue):
1278 (WebCore::labelForElement):
1279 (WebCore::AccessibilityRenderObject::title):
1280 (WebCore::AccessibilityRenderObject::accessibilityDescription):
1281 (WebCore::AccessibilityRenderObject::boundingBoxRect):
1282 (WebCore::AccessibilityRenderObject::elementRect):
1283 (WebCore::AccessibilityRenderObject::size):
1284 (WebCore::AccessibilityRenderObject::linkedUIElement):
1285 (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
1286 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1287 (WebCore::AccessibilityRenderObject::isLoaded):
1288 (WebCore::AccessibilityRenderObject::layoutCount):
1289 (WebCore::AccessibilityRenderObject::text):
1290 (WebCore::AccessibilityRenderObject::textLength):
1291 (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
1292 (WebCore::AccessibilityRenderObject::selectedText):
1293 (WebCore::AccessibilityRenderObject::accessKey):
1294 (WebCore::AccessibilityRenderObject::selection):
1295 (WebCore::AccessibilityRenderObject::selectedTextRange):
1296 (WebCore::AccessibilityRenderObject::setSelectedTextRange):
1297 (WebCore::AccessibilityRenderObject::url):
1298 (WebCore::AccessibilityRenderObject::isVisited):
1299 (WebCore::AccessibilityRenderObject::isSelected):
1300 (WebCore::AccessibilityRenderObject::isFocused):
1301 (WebCore::AccessibilityRenderObject::setFocused):
1302 (WebCore::AccessibilityRenderObject::setValue):
1303 (WebCore::AccessibilityRenderObject::isEnabled):
1304 (WebCore::AccessibilityRenderObject::topRenderer):
1305 (WebCore::AccessibilityRenderObject::widget):
1306 (WebCore::AccessibilityRenderObject::axObjectCache):
1307 (WebCore::AccessibilityRenderObject::getDocumentLinks):
1308 (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
1309 (WebCore::AccessibilityRenderObject::frameViewIfRenderView):
1310 (WebCore::AccessibilityRenderObject::visiblePositionRange):
1311 (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
1312 (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
1313 (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
1314 (WebCore::AccessibilityRenderObject::doAXBoundsForTextMarkerRange):
1315 (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
1316 (WebCore::AccessibilityRenderObject::doAXTextMarkerForPosition):
1317 (WebCore::AccessibilityRenderObject::textMarkerForIndex):
1318 (WebCore::AccessibilityRenderObject::indexForTextMarker):
1319 (WebCore::AccessibilityRenderObject::doAXRangeForLine):
1320 (WebCore::AccessibilityRenderObject::doAXRangeForIndex):
1321 (WebCore::AccessibilityRenderObject::doAXStringForRange):
1322 (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
1323 (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1324 (WebCore::AccessibilityRenderObject::focusedUIElement):
1325 (WebCore::AccessibilityRenderObject::observableObject):
1326 (WebCore::createARIARoleMap):
1327 (WebCore::RoleEntry::):
1328 (WebCore::ariaRoleToWebCoreRole):
1329 (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
1330 (WebCore::AccessibilityRenderObject::roleValue):
1331 (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
1332 (WebCore::AccessibilityRenderObject::canSetValueAttribute):
1333 (WebCore::AccessibilityRenderObject::canSetTextRangeAttributes):
1334 (WebCore::AccessibilityRenderObject::childrenChanged):
1335 (WebCore::AccessibilityRenderObject::children):
1336 (WebCore::AccessibilityRenderObject::addChildren):
1337 (WebCore::AccessibilityRenderObject::removeAXObjectID):
1338 (WebCore::AccessibilityRenderObject::actionVerb):
1339 * page/AccessibilityRenderObject.h: Added.
1340 (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject):
1341 (WebCore::AccessibilityRenderObject::areaElement):
1342 (WebCore::AccessibilityRenderObject::setRenderer):
1343 (WebCore::AccessibilityRenderObject::renderer):
1344 (WebCore::AccessibilityRenderObject::setRenderObject):
1345 (WebCore::AccessibilityRenderObject::isDetached):
1346 * page/mac/AXObjectCacheMac.mm:
1347 (WebCore::AXObjectCache::detachWrapper):
1348 (WebCore::AXObjectCache::selectedChildrenChanged):
1349 (WebCore::AXObjectCache::postNotification):
1350 * page/mac/AccessibilityObjectWrapper.mm:
1351 (textMarkerForVisiblePosition):
1352 (CreateCGColorIfDifferent):
1353 (AXAttributeStringSetHeadingLevel):
1354 (AXLinkElementForNode):
1355 (AXAttributeStringSetElement):
1356 (AXAttributedStringAppendText):
1357 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1358 (-[AccessibilityObjectWrapper documentFrameView:]):
1359 (-[AccessibilityObjectWrapper position]):
1361 (-[AccessibilityObjectWrapper roleDescription]):
1362 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1363 (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
1364 (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1365 (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
1366 (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
1367 (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
1368 (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1370 2008-05-06 Jonathan Haas <myrdred@gmail.com>
1372 Reviewed by Rob Buis.
1374 https://bugs.webkit.org/show_bug.cgi?id=18859\
1375 Prevented SVGRootInlineBox from static_casting a
1376 node to a class it doesn't inherit
1378 * rendering/SVGRootInlineBox.cpp:
1379 (WebCore::SVGRootInlineBox::buildTextChunks):
1381 2008-05-06 Brady Eidson <beidson@apple.com>
1383 Reviewed by Darin Adler
1385 Preparation for upcoming work making LocalStorage persistent.
1387 When the application terminates, all pending local storage writes need to be
1388 sync'ed out to disk.
1389 This works n combination with platform specific code in WebKit that calls it.
1393 * page/PageGroup.cpp:
1394 (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
1397 * storage/LocalStorage.cpp:
1398 (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
1399 local storage thread in the future.
1400 * storage/LocalStorage.h:
1402 2008-05-06 Brady Eidson <beidson@apple.com>
1404 Rubberstamped by David Kilzer
1406 * WebCore.base.exp: Sort this mess!
1408 2008-05-05 Mark Rowe <mrowe@apple.com>
1410 Reviewed by Dan Bernstein.
1412 Fix 60 crashes seen on the buildbots that were misreported as hangs.
1415 (WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
1416 (WebCore::Document::nodeWillBeRemoved): Ditto.
1417 (WebCore::Document::textInserted): Ditto.
1418 (WebCore::Document::textNodesMerged): Ditto.
1419 (WebCore::Document::textRemoved): Ditto.
1421 2008-05-05 Brady Eidson <beidson@apple.com>
1423 Reviewed by Mitz Pettel RTL
1425 Preparation for upcoming work making LocalStorage persistent.
1427 The other half of the StorageMap::importItem() addition.
1429 * storage/StorageArea.cpp:
1430 (WebCore::StorageArea::importItem):
1431 * storage/StorageArea.h:
1433 2008-05-05 Brady Eidson <beidson@apple.com>
1435 Reviewed by Mitz Pettel RTL
1437 Preparation for upcoming work making LocalStorage persistent.
1439 - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
1440 The Settings of the first Page define what persistent path the LocalStorage will use
1441 - Add a Frame argument for the LocalStorageArea request - this will allow a client object
1442 to be queried before the LocalStorageArea is established
1444 * page/DOMWindow.cpp:
1445 (WebCore::DOMWindow::localStorage):
1447 * page/PageGroup.cpp:
1448 (WebCore::PageGroup::addPage):
1449 (WebCore::PageGroup::localStorage):
1451 * storage/LocalStorage.cpp:
1452 (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument. Deep copy
1453 the path as it will be used from another thread.
1454 (WebCore::LocalStorage::storageArea):
1455 * storage/LocalStorage.h:
1456 (WebCore::LocalStorage::create):
1458 2008-05-05 Brady Eidson <beidson@apple.com>
1460 Reviewed by Mitz Pettel RTL
1462 Preparation for upcoming work making LocalStorage persistent.
1464 StorageMaps normally have copy-on-write semantics to help support SessionStorage.
1465 For LocalStorage, we never want this behavior. When we forcefully import items into
1466 a StorageMap from the LocalStorage background thread, this new import method will be used.
1468 * storage/StorageMap.cpp:
1469 (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
1470 about copy-on-write.
1471 * storage/StorageMap.h:
1473 2008-05-05 Kevin McCullough <kmccullough@apple.com>
1477 -<rdar://problem/5770054> JavaScript profiler (10928)
1478 -Begininings of a UI for the Profiler in the WebInspector.
1480 * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
1482 * page/inspector/DatabasesPanel.js: Changed the name of the Databae's
1483 results table to be more generic as it is now also used by the profiler.
1484 * page/inspector/Images/glossySelected.png: Added.
1485 * page/inspector/Images/profilesIcon.png: Added.
1486 * page/inspector/Images/treeUpTriangleBlack.png: Added.
1487 * page/inspector/Images/treeUpTriangleWhite.png: Added.
1488 * page/inspector/ProfileView.js: Added. Sets up the header of the table.
1489 * page/inspector/ProfilesPanel.js: Added.
1490 * page/inspector/ProfilesPanel.js: Added. Sets up the containers of the
1492 * page/inspector/inspector.css: Change database-result-table to be more
1493 generic as well as add the styles needed by the profiler.
1494 * page/inspector/inspector.html: Add profiler support.
1496 2008-05-05 Brady Eidson <beidson@apple.com>
1498 Change by Darin, reviewed by Brady
1500 Small efficiency improvement Darin just spotted
1502 * storage/StorageMap.cpp:
1503 (WebCore::StorageMap::setItem):
1505 2008-05-05 Antti Koivisto <antti@apple.com>
1509 Fix https://bugs.webkit.org/show_bug.cgi?id=18899
1510 Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
1512 * loader/loader.cpp:
1513 (WebCore::Loader::Loader):
1515 2008-05-05 Brady Eidson <beidson@apple.com>
1517 Reviewed by Sam Weinig
1519 Fix a bug in StorageMap iterator tracking where the iterator was not successfully
1520 invalidated at an appropriate time.
1522 * storage/StorageMap.cpp:
1523 (WebCore::StorageMap::setItem): ALWAYS invalidate it here
1525 2008-05-05 Justin Garcia <justin.garcia@apple.com>
1529 <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
1531 Disable Range mutation on document modifications in Tiger and Leopard Mail,
1532 since they do their own mutation which interferes with ours.
1536 (WebCore::Document::nodeChildrenChanged):
1537 (WebCore::Document::nodeWillBeRemoved):
1538 (WebCore::Document::textInserted):
1539 (WebCore::Document::textRemoved):
1540 (WebCore::Document::textNodesMerged):
1541 (WebCore::Document::textNodeSplit):
1542 * page/Settings.cpp:
1543 (WebCore::Settings::Settings):
1544 (WebCore::Settings::disableRangeMutationForOldAppleMail):
1546 (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
1548 2008-05-05 Sam Weinig <sam@webkit.org>
1550 Reviewed by Tim Hatcher.
1552 Make the Inspector's localizable strings file match the format used by Dashboard widgets.
1554 * English.lproj/InspectorLocalizedStrings.js: Removed.
1555 * English.lproj/localizedStrings.js: Added.
1556 * WebCore.vcproj/WebCore.vcproj:
1557 * WebCore.xcodeproj/project.pbxproj:
1558 * page/inspector/inspector.js:
1560 2008-05-05 Steve Falkenburg <sfalken@apple.com>
1562 Add support for default button appearance.
1563 Add WebCore setting for app chrome mode.
1565 Reviewed by Dave Hyatt.
1567 * css/CSSPrimitiveValueMappings.h:
1568 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1569 * css/CSSValueKeywords.in: Added default-button value keyword.
1570 * page/Settings.cpp:
1571 (WebCore::Settings::Settings):
1572 (WebCore::Settings::setApplicationChromeMode):
1574 (WebCore::Settings::inApplicationChromeMode):
1575 * rendering/RenderButton.cpp:
1576 (WebCore::RenderButton::RenderButton):
1577 (WebCore::RenderButton::setStyle):
1578 (WebCore::RenderButton::timerFired):
1579 * rendering/RenderButton.h:
1580 * rendering/RenderStyle.h:
1582 * rendering/RenderTheme.cpp:
1583 (WebCore::RenderTheme::adjustStyle):
1584 (WebCore::RenderTheme::paint):
1585 (WebCore::RenderTheme::paintBorderOnly):
1586 (WebCore::RenderTheme::paintDecorations):
1587 (WebCore::RenderTheme::isControlStyled):
1588 (WebCore::RenderTheme::isDefault):
1589 * rendering/RenderTheme.h:
1591 * rendering/RenderThemeSafari.cpp:
1592 (WebCore::RenderThemeSafari::determineState):
1593 (WebCore::RenderThemeSafari::adjustRepaintRect):
1594 (WebCore::RenderThemeSafari::adjustButtonStyle):
1595 * rendering/RenderThemeWin.cpp:
1596 (WebCore::RenderThemeWin::supportsFocus):
1598 2008-05-05 Alexey Proskuryakov <ap@webkit.org>
1602 https://bugs.webkit.org/show_bug.cgi?id=11947
1603 nbsps should be converted to entities in innerHTML
1605 https://bugs.webkit.org/show_bug.cgi?id=18769
1606 replacing with spaces using regexp creates inconsistent result
1608 Tests: fast/dom/innerHTML-nbsp.html
1609 fast/dom/innerHTML-escaping-attribute.html
1611 * editing/markup.cpp:
1612 (WebCore::appendAttributeValue):
1613 (WebCore::escapeContentText):
1614 (WebCore::appendEscapedContent):
1615 Added U+00a0/nbsp to the list of characters to escape.
1617 2008-05-05 David Hyatt <hyatt@apple.com>
1619 Fix for https://bugs.webkit.org/show_bug.cgi?id=18821. Fix some bugs in both get/PutImageData of <canvas>.
1623 New tests added in fast/canvas/
1625 * platform/graphics/cg/ImageBufferCG.cpp:
1626 (WebCore::ImageBuffer::getImageData):
1627 (WebCore::ImageBuffer::putImageData):
1629 2008-05-05 Dan Bernstein <mitz@apple.com>
1631 Reviewed by Dave Hyatt.
1633 - fix https://bugs.webkit.org/show_bug.cgi?id=18809
1634 Forms with block level generated content and absolutely positioned labels break inline layout (fixed on reflow)
1636 Test: fast/block/basic/adding-near-anonymous-block.html
1638 * rendering/RenderBlock.cpp:
1639 (WebCore::RenderBlock::addChildToFlow): When adding a floating or
1640 positioned object, if it follows an anonymous block, put it
1641 inside the anonymous block. When adding an inline, check if it comes
1642 after an anonymous block and put it in the anonymous block.
1644 2008-05-05 Antti Koivisto <antti@apple.com>
1648 Speculative fix for <rdar://problem/5906790>
1649 Crash in Loader::servePendingRequests() due to hash table being modified during iteration
1651 I don't know how to reproduce this. It would require the load to fail (or succeed)
1652 synchronously, something that should not usually happen.
1654 * loader/loader.cpp:
1655 (WebCore::Loader::Loader):
1656 (WebCore::Loader::load):
1657 (WebCore::Loader::servePendingRequests):
1658 (WebCore::Loader::cancelRequests):
1659 (WebCore::Loader::Host::Host):
1661 (WebCore::Loader::Host::name):
1663 2008-05-05 Ariya Hidayat <ariya.hidayat@trolltech.com>
1667 Disable SVG As Image support in the Qt port again, as it
1668 requires more work. Right now the chrome client is
1669 assumed to be a ChromeClientQt, which the SVG Image support
1674 2008-05-02 Antti Koivisto <antti@apple.com>
1678 Fix <rdar://problem/5840475>
1679 CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
1681 Non-block objects can have transforms so containingBlock() could end up returning null.
1682 RenderObject::container() needs to match.
1684 Test: fast/transforms/container-transform-crash.html
1686 * rendering/RenderObject.cpp:
1687 (WebCore::RenderObject::containingBlock):
1688 (WebCore::RenderObject::container):
1690 2008-05-04 Sam Weinig <sam@webkit.org>
1692 Roll out r32851. It broke tiger builds.
1694 * bindings/objc/DOMUtility.mm:
1695 (KJS::createDOMWrapper):
1696 (WebCore::createDOMWrapper):
1698 2008-05-04 Dan Bernstein <mitz@apple.com>
1700 Reviewed by Sam Weinig.
1702 - fix https://bugs.webkit.org/show_bug.cgi?id=18879
1703 <rdar://problem/5909481> Reproducible crash when removing a gradient
1705 Test: fast/gradients/crash-on-remove.html
1707 * css/CSSImageGeneratorValue.cpp:
1708 (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
1709 (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
1711 (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
1714 2008-05-03 Sam Weinig <sam@webkit.org>
1716 Reviewed by Mark Rowe.
1718 Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
1719 the WebCore namespace now that the required compilers don't freak out about
1722 * bindings/objc/DOMUtility.mm:
1723 (WebCore::createDOMWrapper):
1725 2008-05-03 Rob Buis <buis@kde.org>
1729 https://bugs.webkit.org/show_bug.cgi?id=18652
1730 onchange events don't seem to fire for input[type=range] controls.
1732 Fire changeEvent when clicking the slider outside the current
1735 * rendering/RenderSlider.cpp:
1736 (WebCore::RenderSlider::setValueForPosition):
1738 2008-05-03 Sam Weinig <sam@webkit.org>
1740 Reviewed by Mark Rowe.
1742 Remove unused enums from JSDOMWindowBase.
1744 * bindings/js/JSDOMWindowBase.h:
1745 (WebCore::JSDOMWindowBase::):
1747 2008-05-03 Sam Weinig <sam@webkit.org>
1751 * WebCore.xcodeproj/project.pbxproj:
1753 2008-05-03 Sam Weinig <sam@webkit.org>
1757 * bindings/js/kjs_events.cpp:
1758 (WebCore::JSAbstractEventListener::handleEvent):
1760 2008-05-03 Sam Weinig <sam@webkit.org>
1762 Rubber-stamped by Geoffrey Garen.
1764 Rename JSDOMWindowWrapper to JSDOMWindowShell.
1766 2008-05-01 Rob Buis <buis@kde.org>
1770 https://bugs.webkit.org/show_bug.cgi?id=18568
1771 background: currentColor fails
1773 Implement currentColor from CSS3 color module.
1775 Tests: fast/css/background-currentcolor.html
1777 * css/CSSParser.cpp:
1778 (WebCore::CSSParser::parseValue):
1779 (WebCore::CSSParser::parseBackgroundColor):
1780 * css/CSSStyleSelector.cpp:
1781 (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
1782 * css/CSSValueKeywords.in:
1783 * css/SVGCSSValueKeywords.in:
1785 2008-05-02 Anders Carlsson <andersca@apple.com>
1789 Turns out calling locationInWindow on keyboard events will not throw an exception,
1790 but the point returned is completely bogus, so remove coordinates from the keyboard event struct.
1795 2008-05-02 Benjamin Otte <otte@gnome.org>
1797 Reviewed by Alp Toker.
1799 http://bugs.webkit.org/show_bug.cgi?id=18856
1800 [GTK] variable initialization missing
1802 Not initializing the m_needsXEmbed variable could have very funny
1803 results. Most often those results would be crashes.
1805 * plugins/PluginView.cpp:
1806 (WebCore::PluginView::PluginView):
1808 2008-05-02 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1812 https://bugs.webkit.org/show_bug.cgi?id=18811
1813 Enable dashboard and offline web apps in autotools
1817 2008-05-02 Anders Carlsson <andersca@apple.com>
1821 Name the event union so it will work in plain C.
1826 2008-05-02 Dan Bernstein <mitz@apple.com>
1828 Reviewed by John Sullivan.
1830 - render text shadows with zero offset, as the shadow can be seen behind
1831 the text if the text is translucent
1833 Test: fast/text/shadow-no-blur.html
1835 * platform/graphics/mac/FontMac.mm:
1836 (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the
1837 shadow offset. Since isEmpty() is also true for sizes that have one or
1838 more non-positive components, this also ensures that subpixel
1839 antialiasing of the text is maintained with shadows in all directions.
1840 (WebCore::Font::drawGlyphs): Ditto.
1841 * platform/graphics/win/FontCGWin.cpp:
1842 (WebCore::Font::drawGlyphs): Ditto.
1844 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1848 Build the Qt port with SVG Use and As Image support.
1852 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1856 Fixed potential crash on SVG animation (added more checks to the assert).
1858 * svg/SVGUseElement.cpp:
1859 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
1861 2008-05-02 Alexey Proskuryakov <ap@webkit.org>
1863 Rubber-stamped by John Sullivan.
1865 Fix a debug-only crash in layout tests.
1867 * loader/CachedResource.cpp:
1868 (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
1870 2008-05-02 Simon Hausmann <shausman@trolltech.com>
1872 Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
1874 * WebCore.pro: Don't use QT += phonon as it prepends the phonon
1875 includes to the include paths. Instead add it manually and make sure
1876 phonon comes last, to avoid the conflict of phonon's path.h with
1877 WebCore's Path.h on case-insensitive filesystems.
1879 2008-05-02 Simon Hausmann <hausmann@webkit.org>
1881 Fix the Qt build. Add ExecState where necessary.
1883 * bridge/qt/qt_class.cpp:
1884 (KJS::Bindings::QtClass::fallbackObject):
1885 * bridge/qt/qt_instance.cpp:
1886 (KJS::Bindings::QtRuntimeObjectImp::construct):
1887 (KJS::Bindings::QtInstance::getRuntimeObject):
1888 (KJS::Bindings::QtInstance::invokeDefaultMethod):
1889 (KJS::Bindings::QtInstance::defaultValue):
1890 (KJS::Bindings::QtInstance::stringValue):
1891 * bridge/qt/qt_instance.h:
1892 (KJS::Bindings::QtInstance::getObject):
1893 * bridge/qt/qt_runtime.cpp:
1894 (KJS::Bindings::convertValueToQVariant):
1895 (KJS::Bindings::convertQVariantToValue):
1896 (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
1897 (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
1898 (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
1899 (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
1900 (KJS::Bindings::QtConnectionObject::execute):
1901 * bridge/runtime.cpp:
1902 (KJS::Bindings::Instance::createRuntimeObject):
1904 2008-05-02 Simon Hausmann <shausman@trolltech.com>
1906 Fix the Qt/Win build.
1909 * platform/qt/TemporaryLinkStubs.cpp:
1910 (PluginDatabase::getPluginPathsInDirectories):
1911 (PluginDatabase::defaultPluginDirectories):
1912 (PluginDatabase::isPreferredPluginDirectory):
1913 (PluginView::setNPWindowRect):
1914 (PluginView::userAgent):
1915 (PluginView::invalidateRect):
1916 (PluginView::invalidateRegion):
1917 (PluginView::forceRedraw):
1918 (PluginView::setFocus):
1921 (PluginView::paint):
1922 (PluginView::setParent):
1923 (PluginView::attachToWindow):
1924 (PluginView::detachFromWindow):
1925 (PluginView::updateWindow):
1926 (PluginView::handleKeyboardEvent):
1927 (PluginView::handleMouseEvent):
1928 (PluginView::handlePostReadFile):
1929 (PluginView::getValue):
1930 * plugins/qt/PluginPackageQt.cpp:
1931 (WebCore::PluginPackage::load):
1933 2008-05-02 Alexey Proskuryakov <ap@webkit.org>
1935 Reviewed by Geoffrey Garen.
1937 https://bugs.webkit.org/show_bug.cgi?id=18826
1938 Make JavaScript heap per-thread
1940 This is mostly adaptation for JSC changes. The most prominent one is that JSObject
1941 allocator now takes ExecState, e.g. "new (exec) JSXMLHttpRequestConstructor(...)". It is
1942 OK to pass either the current or global one, whichever is faster to get hold of, as both
1943 have the same reference to a per-thread JS heap.
1945 * bindings/scripts/CodeGeneratorJS.pm: Pass ExecState to functions that now need it.
1946 JSDOMWindow, JSDOMWindowPrototype and JSDOMWindowWrapper are special, because they are
1947 constructed before any ExecState comes into existence, so they use Heap::threadHeap()
1948 directly for allocation.
1950 * bindings/js/JSDOMWindowWrapper.cpp:
1951 (WebCore::JSDOMWindowWrapper::operator new):
1952 * bindings/js/JSDOMWindowWrapper.h:
1953 Added a custom operator new to use per-thread heap when there's no ExecState around.
1955 * bindings/js/JSAudioConstructor.cpp:
1956 (WebCore::JSAudioConstructor::JSAudioConstructor):
1957 * bindings/js/JSCSSRuleCustom.cpp:
1959 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1960 (WebCore::JSCSSStyleDeclaration::nameGetter):
1961 * bindings/js/JSCSSValueCustom.cpp:
1963 * bindings/js/JSCanvasPixelArrayCustom.cpp:
1964 (WebCore::JSCanvasPixelArray::indexGetter):
1966 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
1968 * bindings/js/JSClipboardCustom.cpp:
1969 (WebCore::JSClipboard::types):
1970 (WebCore::JSClipboard::getData):
1971 * bindings/js/JSCustomXPathNSResolver.cpp:
1972 (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1973 * bindings/js/JSDOMApplicationCacheCustom.cpp:
1974 (WebCore::JSDOMApplicationCache::addEventListener):
1975 (WebCore::JSDOMApplicationCache::removeEventListener):
1976 (WebCore::JSDOMApplicationCache::setOnchecking):
1977 (WebCore::JSDOMApplicationCache::setOnerror):
1978 (WebCore::JSDOMApplicationCache::setOnnoupdate):
1979 (WebCore::JSDOMApplicationCache::setOndownloading):
1980 (WebCore::JSDOMApplicationCache::setOnprogress):
1981 (WebCore::JSDOMApplicationCache::setOnupdateready):
1982 (WebCore::JSDOMApplicationCache::setOncached):
1983 * bindings/js/JSDOMWindowBase.cpp:
1984 (WebCore::JSDOMWindowBase::JSDOMWindowBase):
1985 (WebCore::JSDOMWindowBase::getValueProperty):
1986 (WebCore::JSDOMWindowBase::setListener):
1987 (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
1988 (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
1989 (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
1990 (WebCore::windowProtoFuncAToB):
1991 (WebCore::windowProtoFuncBToA):
1992 (WebCore::windowProtoFuncSetTimeout):
1993 (WebCore::windowProtoFuncSetInterval):
1994 (WebCore::windowProtoFuncAddEventListener):
1995 * bindings/js/JSDOMWindowBase.h:
1996 * bindings/js/JSDocumentCustom.cpp:
1998 * bindings/js/JSEventCustom.cpp:
2000 * bindings/js/JSEventTargetBase.cpp:
2001 (WebCore::jsEventTargetAddEventListener):
2002 * bindings/js/JSEventTargetBase.h:
2003 (WebCore::JSEventTargetPrototype::self):
2004 * bindings/js/JSEventTargetNode.cpp:
2005 (WebCore::JSEventTargetNode::setListener):
2006 * bindings/js/JSHTMLCollectionCustom.cpp:
2007 (WebCore::getNamedItems):
2009 * bindings/js/JSHTMLElementWrapperFactory.cpp:
2010 (WebCore::createJSHTMLWrapper):
2011 * bindings/js/JSHTMLFormElementCustom.cpp:
2012 (WebCore::JSHTMLFormElement::nameGetter):
2013 * bindings/js/JSHTMLInputElementBase.cpp:
2014 (WebCore::JSHTMLInputElementBase::getValueProperty):
2015 * bindings/js/JSHTMLOptionElementConstructor.cpp:
2016 (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
2017 * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2018 (WebCore::JSHTMLOptionsCollection::length):
2019 * bindings/js/JSInspectedObjectWrapper.cpp:
2020 (WebCore::JSInspectedObjectWrapper::wrap):
2021 * bindings/js/JSInspectorCallbackWrapper.cpp:
2022 (WebCore::JSInspectorCallbackWrapper::wrap):
2023 * bindings/js/JSLocationCustom.cpp:
2024 (WebCore::JSLocation::toString):
2025 * bindings/js/JSNamedNodesCollection.cpp:
2026 (WebCore::JSNamedNodesCollection::lengthGetter):
2027 * bindings/js/JSNavigatorCustom.cpp:
2028 (WebCore::JSNavigator::appVersion):
2029 * bindings/js/JSNodeCustom.cpp:
2031 * bindings/js/JSNodeFilterCustom.cpp:
2032 (WebCore::JSNodeFilter::acceptNode):
2033 * bindings/js/JSRGBColor.cpp:
2034 (WebCore::getJSRGBColor):
2035 * bindings/js/JSSQLResultSetRowListCustom.cpp:
2036 (WebCore::JSSQLResultSetRowList::item):
2037 * bindings/js/JSSVGElementWrapperFactory.cpp:
2038 (WebCore::createJSSVGWrapper):
2039 * bindings/js/JSSVGLazyEventListener.cpp:
2040 (WebCore::JSSVGLazyEventListener::eventParameterName):
2041 * bindings/js/JSStorageCustom.cpp:
2042 (WebCore::JSStorage::nameGetter):
2043 * bindings/js/JSStyleSheetCustom.cpp:
2045 * bindings/js/JSXMLHttpRequestConstructor.cpp:
2046 (WebCore::JSXMLHttpRequestConstructor::construct):
2047 * bindings/js/JSXMLHttpRequestCustom.cpp:
2048 (WebCore::JSXMLHttpRequest::setOnreadystatechange):
2049 (WebCore::JSXMLHttpRequest::setOnload):
2050 (WebCore::JSXMLHttpRequest::setOnprogress):
2051 (WebCore::JSXMLHttpRequest::getResponseHeader):
2052 (WebCore::JSXMLHttpRequest::addEventListener):
2053 (WebCore::JSXMLHttpRequest::removeEventListener):
2054 * bindings/js/JSXSLTProcessor.cpp:
2055 (WebCore::jsXSLTProcessorPrototypeFunctionGetParameter):
2056 (WebCore::JSXSLTProcessorConstructor::construct):
2057 * bindings/js/kjs_binding.cpp:
2058 (WebCore::jsStringOrNull):
2059 (WebCore::jsOwnedStringOrNull):
2060 (WebCore::jsStringOrUndefined):
2061 (WebCore::jsStringOrFalse):
2062 (WebCore::nonCachingStaticFunctionGetter):
2063 (WebCore::objectToStringFunctionGetter):
2064 * bindings/js/kjs_binding.h:
2065 (WebCore::DOMObject::DOMObject):
2066 (WebCore::cacheDOMObject):
2067 (WebCore::cacheSVGDOMObject):
2068 * bindings/js/kjs_events.cpp:
2069 (WebCore::JSLazyEventListener::eventParameterName):
2070 (WebCore::JSLazyEventListener::parseCode):
2071 * bindings/js/kjs_html.cpp:
2072 (WebCore::getRuntimeObject):
2073 * bridge/c/c_instance.cpp:
2074 (KJS::Bindings::CInstance::defaultValue):
2075 (KJS::Bindings::CInstance::stringValue):
2076 (KJS::Bindings::CInstance::numberValue):
2077 (KJS::Bindings::CInstance::valueOf):
2078 * bridge/c/c_instance.h:
2079 * bridge/c/c_utility.cpp:
2080 (KJS::Bindings::convertNPVariantToValue):
2081 * bridge/jni/jni_instance.cpp:
2082 (JavaInstance::stringValue):
2083 (JavaInstance::numberValue):
2084 (JavaInstance::invokeMethod):
2085 (JavaInstance::defaultValue):
2086 (JavaInstance::valueOf):
2087 * bridge/jni/jni_instance.h:
2088 * bridge/jni/jni_jsobject.h:
2089 * bridge/jni/jni_jsobject.mm:
2090 (JavaJSObject::call):
2091 (JavaJSObject::setMember):
2092 (JavaJSObject::setSlot):
2093 (JavaJSObject::convertJObjectToValue):
2094 (JavaJSObject::getListFromJArray):
2095 * bridge/jni/jni_objc.mm:
2096 (KJS::Bindings::dispatchJNICall):
2097 * bridge/jni/jni_runtime.cpp:
2098 (JavaArray::convertJObjectToArray):
2099 (JavaField::dispatchValueFromInstance):
2100 (JavaField::valueFromInstance):
2101 (JavaField::dispatchSetValueToInstance):
2102 (JavaArray::valueAt):
2103 * bridge/jni/jni_utility.h:
2104 * bridge/objc/objc_class.mm:
2105 (KJS::Bindings::ObjcClass::fallbackObject):
2106 * bridge/objc/objc_instance.h:
2107 * bridge/objc/objc_instance.mm:
2108 (ObjcInstance::defaultValue):
2109 (ObjcInstance::stringValue):
2110 (ObjcInstance::numberValue):
2111 (ObjcInstance::valueOf):
2112 * bridge/objc/objc_utility.h:
2113 * bridge/objc/objc_utility.mm:
2114 (KJS::Bindings::convertNSStringToString):
2115 (KJS::Bindings::convertObjcValueToValue):
2116 * bridge/runtime.cpp:
2117 (KJS::Bindings::Instance::createRuntimeObject):
2119 (KJS::Bindings::Instance::valueOf):
2120 * bridge/runtime_array.cpp:
2121 (RuntimeArray::lengthGetter):
2122 * bridge/runtime_method.cpp:
2123 (RuntimeMethod::lengthGetter):
2124 * bridge/runtime_object.cpp:
2125 (RuntimeObjectImp::RuntimeObjectImp):
2126 (RuntimeObjectImp::methodGetter):
2127 (RuntimeObjectImp::defaultValue):
2128 * xml/XMLHttpRequest.cpp:
2129 (WebCore::XMLHttpRequest::dropProtection):
2130 * bindings/js/GCController.cpp:
2131 (WebCore::GCController::gcTimerFired):
2132 (WebCore::GCController::garbageCollectNow):
2133 Adapted to JSC changes. Pass ExecState to functions that now need it. Removed
2134 collectOnMainThreadOnly, as this is the only way to collect now. Replaced calls to static
2135 Collector methods with calls to per-thread Heap ones.
2137 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
2141 Build the Qt port with SVG Animation support.
2145 2008-05-02 Simon Hausmann <hausmann@webkit.org>
2147 Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
2148 with different signatures.
2150 * plugins/npfunctions.h:
2152 2008-05-01 Robin Dunn <robin@alldunn.com>
2154 Reviewed by Kevin Ollivier.
2156 Explicitly set the pen style in wx port to keep pen style changes from
2157 affecting URL underline or text field drawing.
2159 https://bugs.webkit.org/show_bug.cgi?id=18775
2161 * platform/graphics/wx/GraphicsContextWx.cpp:
2162 (WebCore::GraphicsContext::fillRect):
2163 (WebCore::GraphicsContext::drawLineForText):
2164 * platform/wx/RenderThemeWx.cpp:
2165 (WebCore::RenderThemeWx::paintTextField):
2167 2008-05-01 Robin Dunn <robin@alldunn.com>
2169 Reviewed by Kevin Ollivier.
2171 Implement popup menu support for wx port.
2173 https://bugs.webkit.org/show_bug.cgi?id=18776
2175 * platform/PopupMenu.h:
2176 * platform/wx/PopupMenuWx.cpp: Added.
2177 (WebCore::PopupMenu::PopupMenu):
2178 (WebCore::PopupMenu::~PopupMenu):
2179 (WebCore::PopupMenu::show):
2180 (WebCore::PopupMenu::OnMenuItemSelected):
2181 (WebCore::PopupMenu::hide):
2182 (WebCore::PopupMenu::updateFromElement):
2183 (WebCore::PopupMenu::itemWritingDirectionIsNatural):
2184 * platform/wx/TemporaryLinkStubs.cpp:
2187 2008-05-01 Kevin Ollivier <kevino@theolliviers.com>
2189 Reviewed by Eric Seidel.
2191 Make sure we properly set the button for all mouse events,
2192 not just mouse down, set the click count to 0
2193 for non-click events, and finally set the timestamp.
2195 https://bugs.webkit.org/show_bug.cgi?id=18464
2197 * platform/wx/MouseEventWx.cpp:
2198 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2200 2008-05-01 Sam Weinig <sam@webkit.org>
2202 Reviewed by Mark Rowe (in his infinite wisdom).
2204 Auto-generate the JSXSLTProcessor binding.
2206 * DerivedSources.make:
2209 * WebCore.vcproj/WebCore.vcproj:
2210 * WebCore.xcodeproj/project.pbxproj:
2211 * WebCoreSources.bkl:
2212 * bindings/js/JSDOMWindowBase.cpp:
2213 (WebCore::JSDOMWindowBase::getValueProperty):
2214 * bindings/js/JSDOMWindowBase.h:
2215 (WebCore::JSDOMWindowBase::):
2216 * bindings/js/JSXSLTProcessor.cpp: Removed.
2217 * bindings/js/JSXSLTProcessor.h: Removed.
2218 * xml/XSLTProcessor.h:
2220 2008-05-01 Sam Weinig <sam@webkit.org>
2222 Reviewed by Geoffrey Garen.
2225 - https://bugs.webkit.org/show_bug.cgi?id=17249
2226 Incorrect lexical scope after navigation leads to UXSS
2227 <rdar://problem/5738497>
2229 - https://bugs.webkit.org/show_bug.cgi?id=16824
2230 Script authorization should follow lexical (not dynamic) scope
2231 <rdar://problem/5683032>
2233 This patch changes us to perform same-origin checks based on the lexical global object)
2234 rather than dynamic global object, which is now possible we don't re-use the window on
2235 navigations, but rather switch in a new one and re-use the outer shell. This is both
2236 more secure and conforms with the HTML5 specification. Now that all the checks are
2237 done based on the lexical global object, we can remove the SecurityOrigin::Reason
2238 concept, as it was only around to work around an ebay.com bug that required the check to
2241 An important thing to note is that we currently implement a stricter than necessary policy
2242 and perform the same-origin check based on the currently active global object to avoid leaking
2243 the document in cases when the target frame is navigated before access. This will be fixed in
2246 * bindings/js/JSDOMWindowBase.cpp:
2247 (WebCore::JSDOMWindowBase::allowsAccessFrom):
2248 (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
2249 (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
2250 (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
2251 (WebCore::JSDOMWindowBase::printErrorMessage):
2252 (WebCore::asJSDOMWindow):
2253 * bindings/js/JSDOMWindowBase.h:
2254 * html/CanvasRenderingContext2D.cpp:
2255 (WebCore::CanvasRenderingContext2D::checkOrigin):
2256 (WebCore::CanvasRenderingContext2D::createPattern):
2257 * loader/FrameLoader.cpp:
2258 (WebCore::FrameLoader::begin):
2259 (WebCore::FrameLoader::write):
2260 (WebCore::FrameLoader::setOpener):
2261 (WebCore::FrameLoader::shouldAllowNavigation):
2263 (WebCore::DOMWindow::setSecurityOrigin):
2264 (WebCore::DOMWindow::securityOrigin):
2265 (WebCore::DOMWindow::setURL):
2266 (WebCore::DOMWindow::url):
2267 * platform/SecurityOrigin.cpp:
2268 (WebCore::SecurityOrigin::canAccess):
2269 (WebCore::SecurityOrigin::isSecureTransitionTo):
2270 * platform/SecurityOrigin.h:
2272 2008-05-01 Anders Carlsson <andersca@apple.com>
2276 Enable 64-bit NPAPI plugins.
2278 * WebCore.xcodeproj/project.pbxproj:
2279 Don't remove NPAPI related symbols from the 64-bit .exp file.
2281 * bridge/npruntime.h:
2282 Remove now unnecessary #error.
2284 2008-05-01 Maciej Stachowiak <mjs@apple.com>
2286 Reviewed by Oliver (a while ago)
2288 - just a wee bit more bindings speedup
2290 Store the per-document Node --> JS wrapper cache in the document
2291 instead of an external hashtable.
2293 * bindings/js/kjs_binding.cpp:
2294 (WebCore::ScriptInterpreter::getDOMNodeForDocument):
2295 (WebCore::ScriptInterpreter::forgetDOMNodeForDocument):
2296 (WebCore::ScriptInterpreter::putDOMNodeForDocument):
2297 (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument):
2298 (WebCore::ScriptInterpreter::markDOMNodesForDocument):
2300 (WebCore::Document::wrapperCache):
2302 2008-05-01 Anders Carlsson <andersca@apple.com>
2306 Remove duplicate npfunctions.h header from WebKit.
2308 * WebCore.xcodeproj/project.pbxproj:
2309 Add npfunctions.h and set its role to private.
2311 * plugins/npfunctions.h:
2312 Merge Mac specific changes.
2314 2008-05-01 Sam Weinig <sam@webkit.org>
2316 Reviewed by Geoffrey Garen.
2318 Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
2321 * bindings/js/JSCustomVoidCallback.cpp:
2322 (WebCore::toVoidCallback):
2323 * bindings/js/JSCustomXPathNSResolver.cpp:
2324 (WebCore::JSCustomXPathNSResolver::create):
2325 * bindings/js/JSDOMApplicationCacheCustom.cpp:
2326 (WebCore::JSDOMApplicationCache::add):
2327 (WebCore::JSDOMApplicationCache::remove):
2328 * bindings/js/JSDOMWindowBase.cpp:
2329 (WebCore::allowPopUp):
2330 (WebCore::createWindow):
2331 (WebCore::windowProtoFuncOpen):
2332 (WebCore::asJSDOMWindow):
2333 * bindings/js/JSDOMWindowBase.h:
2334 * bindings/js/JSDOMWindowCustom.cpp:
2335 (WebCore::JSDOMWindow::setLocation):
2336 (WebCore::JSDOMWindow::postMessage):
2337 * bindings/js/JSDatabaseCustom.cpp:
2338 (WebCore::JSDatabase::changeVersion):
2339 (WebCore::JSDatabase::transaction):
2340 * bindings/js/JSDocumentCustom.cpp:
2341 (WebCore::JSDocument::setLocation):
2342 * bindings/js/JSLocationCustom.cpp:
2343 (WebCore::navigateIfAllowed):
2344 (WebCore::JSLocation::setHref):
2345 (WebCore::JSLocation::replace):
2346 (WebCore::JSLocation::reload):
2347 (WebCore::JSLocation::assign):
2348 * bindings/js/JSSQLTransactionCustom.cpp:
2349 (WebCore::JSSQLTransaction::executeSql):
2350 * bindings/js/JSXMLHttpRequestCustom.cpp:
2351 (WebCore::JSXMLHttpRequest::open):
2352 * page/JavaScriptDebugServer.cpp:
2355 2008-05-01 Anatoli Papirovski <apapirovski@mac.com>
2357 Reviewed by Dave Hyatt.
2359 - fix https://bugs.webkit.org/show_bug.cgi?id=18347
2360 Absolutely positioned image percentage width does not respect container's padding
2362 Test: fast/replaced/absolute-position-percentage-width.html
2364 * rendering/RenderBox.cpp:
2365 (WebCore::RenderBox::calcReplacedWidthUsing):
2367 2008-05-01 Dan Bernstein <mitz@apple.com>
2371 * platform/graphics/win/FontCGWin.cpp:
2372 (WebCore::Font::drawGlyphs):
2374 2008-05-01 Dan Bernstein <mitz@apple.com>
2376 Reviewed by Darin Adler.
2378 - make synthetic bold and synthetic italics work in GDI text
2379 - account for synthetic bold in complex text on Windows
2381 * platform/graphics/win/FontCGWin.cpp:
2382 (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates
2383 to fit italics. Added a skew transform for synthetic italics and a
2384 second paint pass for synthetic bold.
2385 * platform/graphics/win/SimpleFontDataWin.cpp:
2386 (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold
2388 * platform/graphics/win/UniscribeController.cpp:
2389 (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
2392 2008-05-01 Alp Toker <alp@nuanti.com>
2394 Qt/Win build fix attempt following plugin changes. Add missing return
2397 Also fixes some newly introduced coding style issues in the Qt port.
2399 * platform/qt/FileSystemQt.cpp:
2400 (WebCore::openTemporaryFile):
2401 (WebCore::closeFile):
2402 (WebCore::writeToFile):
2403 (WebCore::unloadModule):
2405 2008-05-01 Anders Carlsson <andersca@apple.com>
2409 Export methods needed to subclass Widget. (See r32770.)
2413 2008-05-01 Marc Ordinas i Llopis <marc.ordinasillopis@collabora.co.uk>
2415 Reviewed by Alp Toker.
2416 Qt parts OK'ed by Simon Hausmann.
2418 https://bugs.webkit.org/show_bug.cgi?id=14750
2419 Added support for NPAPI plugins on Gtk and Qt-x11 ports.
2421 * GNUmakefile.am: Added Gtk plugin files.
2422 * WebCore.pro: Added Qt plugins files, defined XP_UNIX and
2423 ENABLE_NETSCAPE_PLUGIN_API
2424 * bridge/npruntime_internal.h: Additional undefs that conflict
2426 * page/gtk/FrameGtk.cpp: Create js bindings for PluginView.
2427 (WebCore::Frame::createScriptInstanceForWidget):
2428 * page/qt/FrameQt.cpp: Create js bindings for PluginView.
2429 (WebCore::Frame::createScriptInstanceForWidget):
2430 (WebCore::Frame::clearPlatformScriptObjects):
2431 (WebCore::Frame::disconnectPlatformScriptObjects):
2432 * platform/FileSystem.h: Qt FileSystem implementation.
2433 * platform/Widget.h: Members to differentiate between Qt plugins and
2435 * platform/gtk/ScrollViewGtk.cpp:
2436 (WebCore::ScrollView::addChild): Set containing window before calling setParent.
2437 * platform/gtk/TemporaryLinkStubs.cpp: Removed implemented functions.
2438 (PluginView::invalidateRegion):
2439 * platform/qt/FileSystemQt.cpp: Implemented functions necessary for
2441 (WebCore::openTemporaryFile):
2442 (WebCore::closeFile):
2443 (WebCore::writeToFile):
2444 (WebCore::unloadModule): Delete module if unloaded.
2445 * platform/qt/TemporaryLinkStubs.cpp: Removed implemented functions.
2446 * platform/qt/WidgetQt.cpp: Differentiate between Qt plugins and
2448 (WebCore::WidgetPrivate::WidgetPrivate):
2449 (WebCore::Widget::isNPAPIPlugin):
2450 (WebCore::Widget::setIsNPAPIPlugin):
2451 * plugins/PluginPackage.cpp:
2452 (WebCore::PluginPackage::~PluginPackage): Unload the module before
2454 (WebCore::PluginPackage::compare): Moved here as it's platform
2456 * plugins/PluginView.cpp: Moved platform-independent functions here.
2457 (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
2459 (WebCore::PluginView::freeStringArray):
2460 (WebCore::startsWithBlankLine):
2461 (WebCore::locationAfterFirstBlankLine):
2463 (WebCore::capitalizeRFC822HeaderFieldName):
2464 (WebCore::parseRFC822HeaderFields):
2465 (WebCore::PluginView::handlePost):
2466 * plugins/PluginView.h: Moved platform-independent functions here.
2467 Added member to signal plugin needs XEmbed extension.
2468 * plugins/gtk/PluginDataGtk.cpp: Added.
2469 (WebCore::PluginData::initPlugins):
2470 (WebCore::PluginData::refresh):
2471 * plugins/gtk/PluginDatabaseGtk.cpp:
2472 (WebCore::PluginDatabase::defaultPluginDirectories):
2473 (WebCore::PluginDatabase::isPreferredPluginDirectory):
2474 * plugins/gtk/PluginPackageGtk.cpp: Added.
2475 (WebCore::PluginPackage::determineQuirks):
2476 (WebCore::PluginPackage::fetchInfo):
2477 (WebCore::PluginPackage::load):
2478 (WebCore::PluginPackage::hash):
2479 (WebCore::PluginPackage::equal):
2480 (WebCore::PluginPackage::compareFileVersion):
2481 * plugins/gtk/PluginViewGtk.cpp: Added.
2482 (WebCore::PluginView::updateWindow):
2483 (WebCore::PluginView::setFocus):
2484 (WebCore::PluginView::show):
2485 (WebCore::PluginView::hide):
2486 (WebCore::PluginView::paint):
2487 (WebCore::PluginView::handleKeyboardEvent):
2488 (WebCore::PluginView::handleMouseEvent):
2489 (WebCore::PluginView::setParent):
2490 (WebCore::PluginView::setNPWindowRect):
2491 (WebCore::PluginView::attachToWindow):
2492 (WebCore::PluginView::detachFromWindow):
2493 (WebCore::PluginView::stop):
2494 (WebCore::PluginView::userAgent):
2495 (WebCore::PluginView::handlePostReadFile):
2496 (WebCore::PluginView::getValue):
2497 (WebCore::PluginView::invalidateRect):
2498 (WebCore::PluginView::forceRedraw):
2499 (WebCore::PluginView::~PluginView):
2500 (WebCore::plug_removed_cb): Added callback to handle plug removal.
2501 (WebCore::PluginView::init):
2502 * plugins/gtk/xembed.h: Added.
2503 * plugins/npapi.cpp:
2504 (NPN_GetValue): Return error if no view present.
2505 * plugins/qt/PluginDataQt.cpp:
2506 (WebCore::PluginData::initPlugins):
2507 (WebCore::PluginData::refresh):
2508 * plugins/qt/PluginDatabaseQt.cpp: Added.
2509 (WebCore::PluginDatabase::getPluginPathsInDirectories):
2510 (WebCore::addQtWebKitPluginDirectories):
2511 (WebCore::addMozillaPluginDirectories):
2512 (WebCore::PluginDatabase::defaultPluginDirectories):
2513 (WebCore::PluginDatabase::isPreferredPluginDirectory):
2514 * plugins/qt/PluginPackageQt.cpp: Added.
2515 (WebCore::PluginPackage::determineQuirks):
2516 (WebCore::PluginPackage::fetchInfo):
2517 (WebCore::PluginPackage::load):
2518 (WebCore::PluginPackage::hash):
2519 (WebCore::PluginPackage::equal):
2520 (WebCore::PluginPackage::compareFileVersion):
2521 * plugins/qt/PluginViewQt.cpp: Added.
2522 (WebCore::PluginView::updateWindow):
2523 (WebCore::PluginView::setFocus):
2524 (WebCore::PluginView::show):
2525 (WebCore::PluginView::hide):
2526 (WebCore::PluginView::paint):
2527 (WebCore::PluginView::handleKeyboardEvent):
2528 (WebCore::PluginView::handleMouseEvent):
2529 (WebCore::PluginView::setParent):
2530 (WebCore::PluginView::setNPWindowRect):
2531 (WebCore::PluginView::attachToWindow):
2532 (WebCore::PluginView::detachFromWindow):
2533 (WebCore::PluginView::stop):
2534 (WebCore::PluginView::userAgent):
2535 (WebCore::PluginView::handlePostReadFile):
2536 (WebCore::PluginView::getValue):
2537 (WebCore::PluginView::invalidateRect):
2538 (WebCore::PluginView::invalidateRegion):
2539 (WebCore::PluginView::forceRedraw):
2540 (WebCore::PluginView::~PluginView):
2541 (WebCore::PluginView::init):
2542 * plugins/win/PluginPackageWin.cpp: Moved platform-independent code
2543 to plugins/PluginPackage.cpp
2544 * plugins/win/PluginViewWin.cpp: Moved platform-independent code to
2545 plugins/PluginView.cpp
2546 (WebCore::PluginView::stop):
2547 (WebCore::PluginView::handlePostReadFile):
2548 (WebCore::PluginView::getValue): Moved this function to each platform.
2550 2008-05-01 Sam Weinig <sam@webkit.org>
2554 * ForwardingHeaders/wtf/StrHash.h: Added.
2556 2008-05-01 Anders Carlsson <andersca@apple.com>
2560 Move management of cache groups to ApplicationCacheStorage. Also,
2561 application caches now start out with a null group and will have their group set
2562 when the cache has finished loading.
2564 * loader/appcache/ApplicationCache.cpp:
2565 (WebCore::ApplicationCache::ApplicationCache):
2566 Initialize m_group to 0.
2568 (WebCore::ApplicationCache::~ApplicationCache):
2569 Null check the group.
2571 (WebCore::ApplicationCache::setGroup):
2572 New method for setting the group.
2574 * loader/appcache/ApplicationCache.h:
2575 (WebCore::ApplicationCache::create):
2576 Remove the group argument.
2578 * loader/appcache/ApplicationCacheGroup.cpp:
2579 (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
2580 Let the storage know that the cache group has been destroyed.
2582 (WebCore::ApplicationCacheGroup::cacheForMainRequest):
2583 Call into the storage.
2585 (WebCore::ApplicationCacheGroup::selectCache):
2586 Call into the storage.
2588 (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
2589 When there are no document loaders associated with the cache group,
2590 set the newest cache to 0.
2592 (WebCore::ApplicationCacheGroup::cacheDestroyed):
2593 Delete the group if there are no associated caches.
2595 (WebCore::ApplicationCacheGroup::setNewestCache):
2596 New method that will set the newest cache and associate the group with the cache.
2598 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
2599 Call setNewestCache instead.
2601 * loader/appcache/ApplicationCacheStorage.cpp:
2602 (WebCore::urlHostHash):
2603 Move host hash method here.
2605 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
2606 New method that finds a cache group with a given manifest URL or creates a new one.
2608 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
2609 New method that returns a cache group for a given URL.
2611 (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
2612 When the cache group has been destroyed, remove it from the hash map.
2614 * loader/appcache/ApplicationCacheStorage.h:
2617 2008-05-01 Dan Winship <danw@gnome.org>
2619 Reviewed by Alp Toker.
2621 http://bugs.webkit.org/show_bug.cgi?id=18490
2622 Add mostly-working file: support and mostly-broken ftp: support to
2625 * platform/network/soup/ResourceHandleSoup.cpp (start): after
2626 doing basic checks, delegate to one of three submethods
2627 (startData): handles data: URLs
2628 (startHttp): handles http: and https: URLs, via libsoup
2629 (startGio, etc): handles file: and ftp: URLs, via gio. Lots of
2630 FIXMEs detailing the parts that don't fully work yet.
2632 * platform/network/ResourceHandle.h:
2633 * platform/network/ResourceHandleInternal.h: add new member
2634 variables for gio-based loading
2636 2008-05-01 Alp Toker <alp@nuanti.com>
2638 Rubber-stamped by Anders.
2640 GTK+ build fix for changes in r32752. Use int32, not int32_t types in
2643 Additional fix to use same signedness in npapi.h and Mac for the
2648 2008-04-30 Anders Carlsson <andersca@apple.com>
2652 Add new Cocoa event model type declarations.
2656 2008-04-30 Beth Dakin <bdakin@apple.com>
2658 Reviewed by Sam Weinig.
2660 This patch does three things:
2661 1. Adds support for the "img" ARIA role
2662 2. Switches over to a HashMap for converting ARIA role attributes
2663 to WebCore's AccessibilityRole type.
2664 3. Fixes a crash in the new ARIA code that I ran into while
2665 browsing with VoiceOver enabled.
2667 * page/AccessibilityObject.cpp:
2668 (WebCore::AccessibilityObject::headingLevel): This is the crash
2669 fix. Make sure the node's renderer is not null before looking up
2670 its corresponding AccessibilityObject in the cache.
2671 (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for
2673 (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to
2675 (WebCore::RoleEntry::): Same.
2676 (WebCore::ariaRoleToWebCoreRole): Same.
2677 (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
2679 2008-04-30 Rob Buis <buis@kde.org>
2681 Reviewed by Nikolas.
2683 https://bugs.webkit.org/show_bug.cgi?id=16447
2684 onload called too many times for <svg:image>
2685 https://bugs.webkit.org/show_bug.cgi?id=12282
2686 SVG wastes time in malloc to send loadEvents to non-existent listeners
2688 Postpone load event dispatching for image when externalResourcesRequired
2689 is true, delaying parents but not siblings, and make sure the load event
2690 is sent once for image in all cases.
2692 * svg/SVGElement.cpp:
2693 (WebCore::hasLoadListener):
2694 (WebCore::SVGElement::sendSVGLoadEventIfPossible):
2695 * svg/SVGImageElement.cpp:
2696 (WebCore::SVGImageElement::haveLoadedRequiredResources):
2697 * svg/SVGImageLoader.cpp:
2698 (WebCore::SVGImageLoader::dispatchLoadEvent):
2700 2008-04-30 David Hyatt <hyatt@apple.com>
2702 Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts. This
2703 won't typically crash release builds because of arena recycling.
2705 Reviewed by Dan Bernstein
2707 * rendering/RenderLayer.cpp:
2708 (WebCore::RenderLayer::~RenderLayer):
2709 Make sure to remove the reflection's child layer from its parent.
2711 * rendering/RenderMedia.cpp:
2712 (WebCore::RenderMedia::~RenderMedia):
2713 (WebCore::RenderMedia::destroy):
2714 (WebCore::RenderMedia::removeChild):
2715 * rendering/RenderMedia.h:
2716 Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more
2717 like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia
2720 2008-04-30 Rémi Zara <remi_zara@mac.com>
2722 Reviewed by Dave Hyatt.
2724 fix https://bugs.webkit.org/show_bug.cgi?id=18618
2725 <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
2727 * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
2728 (WebCore::patternCallback): flip the y axis when drawing the tile
2730 2008-04-30 Timothy Hatcher <timothy@apple.com>
2732 Fixes an undefined type exception that fires when adding a resource to the inspector
2733 that has a MIME type warning.
2735 Reviewed by Adam Roben.
2737 * page/inspector/Resource.js:
2738 (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
2739 WebInspector.consolePanel.
2740 (WebInspector.Resource.prototype._checkWarning): Ditto.
2742 2008-04-30 Timothy Hatcher <timothy@apple.com>
2744 Fixes the bug where the selected resource would be deselected after
2745 changing the sort order in the Resources panel.
2747 Reviewed by Dan Bernstein.
2749 * page/inspector/ResourcesPanel.js:
2750 (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
2751 Rememebr if the tree element that we are sorting was selected, so
2752 the selection can be restored after it is re-inserted. The onSelect
2753 is suppressed since we don't need to show the resource again.
2755 2008-04-29 Timothy Hatcher <timothy@apple.com>
2757 Fixes the regression where error bubbles in source views always show
2758 "undefined" for the content because the message property on
2759 ConsoleMessage was removed. Adds support for a plain text formated
2760 message that is stored in the message proeprty.
2762 Reviewed by Adam Roben.
2764 * page/inspector/Console.js:
2765 (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
2767 (WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
2768 about needing to honor it if the textContent of the output doesn't make sense.
2769 (WebInspector.Console.prototype._formatvalue): Ditto.
2770 (WebInspector.Console.prototype._formatstring): Ditto.
2771 (WebInspector.Console.prototype._formatregexp): Ditto.
2772 (WebInspector.Console.prototype._formatarray): Ditto.
2773 (WebInspector.Console.prototype._formatnode): Ditto.
2774 (WebInspector.Console.prototype._formatobject): Ditto.
2775 (WebInspector.Console.prototype._formaterror): Ditto.
2776 (WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the
2777 textContnet of the result and assign to the message proeprty. This property is
2778 referenced from the SourceView.
2779 (WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the
2780 result element as a local and return it, instead of using formatedMessage directly.
2782 2008-04-30 Timothy Hatcher <timothy@apple.com>
2784 Adds a helper function to convert a JSValueRef to a String.
2786 Reviewed by Adam Roben.
2788 * page/InspectorController.cpp:
2789 (WebCore::toString): Converts a JSValueRef to a String.
2790 (WebCore::search): Use toString.
2791 (WebCore::InspectorController::handleException): Ditto.
2793 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2797 Build the Qt port with SVG Foreign Object support.
2801 2008-04-30 Simon Hausmann <hausmann@webkit.org>
2805 Fix null pointer deference triggered by
2806 LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
2808 * platform/network/qt/ResourceHandleQt.cpp:
2809 (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
2811 2008-04-29 David Hyatt <hyatt@apple.com>
2813 Improve the performance of masks by adding code to set more precise clips on the transparency layers
2814 used to paint the content under the mask, and then also avoid creating transparency layers for the masks
2815 themselves in common cases.
2817 Reviewed by Dan Bernstein
2819 * platform/graphics/GraphicsContext.cpp:
2820 (WebCore::GraphicsContext::drawTiledImage):
2821 Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece
2824 * rendering/InlineFlowBox.cpp:
2825 (WebCore::InlineFlowBox::paintFillLayers):
2826 (WebCore::InlineFlowBox::paintFillLayer):
2827 (WebCore::InlineFlowBox::paintMask):
2828 Optimize to only push a transparency layer for the mask if multiple images are combining. Add a new
2829 composite operator argument for use when painting fill layers to do direct destination-in compositing while
2833 * rendering/InlineFlowBox.h:
2834 * rendering/RenderBox.cpp:
2835 (WebCore::RenderBox::paintMask):
2836 (WebCore::RenderBox::paintMaskImages):
2837 Optimize to only push a transparency layer for the mask if multiple images are combining.
2839 (WebCore::RenderBox::maskClipRect):
2840 A new method that attempts to compute a precise clip rect for the mask images.
2842 (WebCore::RenderBox::paintFillLayers):
2843 (WebCore::RenderBox::paintFillLayer):
2844 (WebCore::RenderBox::paintFillLayerExtended):
2845 * rendering/RenderBox.h:
2846 Added the composite operator argument to the paintFillLayer methods.
2848 * rendering/RenderFieldset.cpp:
2849 (WebCore::RenderFieldset::paintMask):
2850 Call the new base class paintMaskImages method for optimized mask painting.
2852 * rendering/RenderLayer.cpp:
2853 (WebCore::transparencyClipBox):
2854 Fix a coordinate space issue with transparencyClipBox when masks were used. The border box was in the
2855 wrong coordinate space. Moved the code into the layer's boundingBox() method instead.
2857 (WebCore::RenderLayer::paintLayer):
2858 Removed the code that always pushed a transparency layer before painting masks.
2860 (WebCore::RenderLayer::boundingBox):
2861 Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
2863 * rendering/RenderObject.cpp:
2864 (WebCore::RenderObject::paintNinePieceImage):
2865 Added a composite operator argument for direct destination-in painting of nine piece images.
2867 * rendering/RenderObject.h:
2868 (WebCore::RenderObject::maskClipRect):
2869 (WebCore::RenderObject::paintFillLayerExtended):
2870 Base class stubs for RenderBox-implemented methods.
2872 * rendering/RenderTable.cpp:
2873 (WebCore::RenderTable::paintMask):
2874 * rendering/RenderTableCell.cpp:
2875 (WebCore::RenderTableCell::paintMask):
2876 Modified to call the new paintMaskImages function.
2878 * svg/graphics/SVGImage.cpp:
2879 (WebCore::SVGImage::draw):
2880 SVG images now respect composite modes by pushing a transparency layer when the composite mode
2881 is anything other than source-over.
2883 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2885 Rubber-stamped by Rob Buis.
2887 Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
2889 * svg/SVGUseElement.cpp:
2890 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2892 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2894 Rubber-stamped by Rob Buis.
2896 Fixed compile, due to API change in XMLSerializer
2898 * svg/SVGUseElement.cpp:
2899 (WebCore::SVGUseElement::buildPendingResource):
2901 2008-04-30 Rob Buis <buis@kde.org>
2905 https://bugs.webkit.org/show_bug.cgi?id=11939
2906 Quirksmode: Ignores media types in stylesheet PIs
2908 Transfer the xml-stylesheet pseudo attribute media to the css
2909 stylesheet created from the ProcessingInstruction.
2911 Tests: fast/css/xml-stylesheet-media-processing.xhtml
2913 * css/StyleSheet.cpp:
2914 (WebCore::StyleSheet::setMedia):
2916 * dom/ProcessingInstruction.cpp:
2917 (WebCore::ProcessingInstruction::checkStyleSheet):
2918 (WebCore::ProcessingInstruction::setCSSStyleSheet):
2919 * dom/ProcessingInstruction.h:
2921 2008-04-29 David D. Kilzer <ddkilzer@apple.com>
2923 BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
2925 On the buildbot, this is a fatal error:
2927 ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
2928 __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
2929 /usr/bin/libtool: internal link edit command failed
2931 Newer dev tools only produce a warning:
2933 ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
2935 * WebCore.base.exp: Remove hidden symbol from export list.
2937 2008-04-29 David Kilzer <ddkilzer@apple.com>
2939 Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
2941 * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
2943 2008-04-29 David Kilzer <ddkilzer@apple.com>
2945 BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
2947 * DerivedSources.make: Removed duplication of targets for
2948 generating CSSPropertyNames.h and CSSValueKeywords.h.
2949 * GNUmakefile.am: Ditto. Added support for ENABLE_DASHBOARD_SUPPORT.
2950 * WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT.
2951 Made both SVG and non-SVG variables of GENERATOR 6-A use new
2952 DASHBOARDSUPPORTCSSPROPERTIES variable.
2954 2008-04-29 Ada Chan <adachan@apple.com>
2956 Added missing return.
2958 * platform/win/COMPtr.h:
2961 2008-04-29 Alp Toker <alp@nuanti.com>
2963 GTK+ build fix attempt following breakage in r32700 which
2964 conditionalised dashboard support.
2968 2008-04-29 Adam Roben <aroben@apple.com>
2970 Restore the beloved COMPtr::operator&
2972 * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
2973 constructor and isHashTableDeletedValue and hashTableDeletedValue
2975 (WTF::): Changed constructDeletedValue to play nicely with
2978 2008-04-29 Adam Roben <aroben@apple.com>
2980 Fix assertion on launch on Windows
2982 * platform/graphics/win/FontPlatformData.h: Pass
2983 WTF::HashTableDeletedValue to the m_font constructor instead of a
2984 bogus -1 value. This is needed because m_font is a RefPtr.
2986 2008-04-29 Greg Bolsinga <bolsinga@apple.com>
2990 Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
2992 * DerivedSources.make:
2993 * WebCore.DashboardSupport.exp: Added.
2995 * WebCore.xcodeproj/project.pbxproj:
2996 * bindings/js/JSDOMWindowCustom.cpp:
2997 (WebCore::JSDOMWindow::setLocation):
2998 * css/CSSComputedStyleDeclaration.cpp:
3000 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3001 * css/CSSParser.cpp:
3002 (WebCore::CSSParser::parseValue):
3003 * css/CSSPrimitiveValue.cpp:
3004 (WebCore::CSSPrimitiveValue::cleanup):
3005 (WebCore::CSSPrimitiveValue::cssText):
3006 * css/CSSPropertyNames.in:
3007 * css/CSSStyleSelector.cpp:
3008 (WebCore::CSSStyleSelector::applyProperty):
3009 * css/DashboardRegion.h:
3010 * css/DashboardSupportCSSPropertyNames.in: Added.
3011 * dom/DOMImplementation.cpp:
3012 (WebCore::DOMImplementation::createDocument):
3014 (WebCore::Document::Document):
3015 (WebCore::Document::importNode):
3017 * html/CanvasRenderingContext2D.cpp:
3018 (WebCore::CanvasRenderingContext2D::fill):
3019 (WebCore::CanvasRenderingContext2D::stroke):
3020 (WebCore::CanvasRenderingContext2D::clip):
3021 * html/CanvasRenderingContext2D.h:
3022 * html/HTMLCanvasElement.cpp:
3023 * html/HTMLCanvasElement.h:
3025 * page/ChromeClient.h:
3027 (WebCore::Frame::paint):
3029 * page/FrameView.cpp:
3030 (WebCore::FrameView::layout):
3032 * page/Settings.cpp:
3033 (WebCore::Settings::Settings):
3035 * page/mac/EventHandlerMac.mm:
3036 (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
3037 * page/mac/FrameMac.mm:
3038 * page/mac/WebDashboardRegion.h:
3039 * page/mac/WebDashboardRegion.m:
3040 * rendering/RenderLayer.cpp:
3041 (WebCore::RenderLayer::scrollToOffset):
3042 (WebCore::RenderLayer::setHasHorizontalScrollbar):
3043 (WebCore::RenderLayer::setHasVerticalScrollbar):
3044 (WebCore::RenderLayer::updateScrollInfoAfterLayout):
3045 * rendering/RenderObject.cpp:
3046 (WebCore::RenderObject::setStyle):
3047 * rendering/RenderObject.h:
3048 * rendering/RenderStyle.cpp:
3049 (WebCore::StyleRareNonInheritedData::operator==):
3050 (WebCore::RenderStyle::diff):
3051 * rendering/RenderStyle.h:
3052 * xml/XMLHttpRequest.cpp:
3053 (WebCore::XMLHttpRequest::send):
3054 (WebCore::XMLHttpRequest::setRequestHeader):
3056 2008-04-29 Adam Roben <aroben@apple.com>
3060 This removes COMPtr::operator&, which didn't jive with HashTable. It
3061 is replaced by COMPtr::adoptionPointer.
3063 Discussed with Darin Adler and Anders Carlsson.
3065 * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
3067 2008-04-29 David Hyatt <hyatt@apple.com>
3069 Implement the new box-reflect property in CSS. This property enables real-time reflections on
3070 objects (yes you can reflect <video>!).
3072 Reviewed by Dan Bernstein
3074 Test cases added in fast/reflections/
3078 * WebCore.xcodeproj/project.pbxproj:
3079 * WebCoreSources.bkl:
3080 * css/CSSComputedStyleDeclaration.cpp:
3082 (WebCore::valueForReflection):
3083 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3084 * css/CSSParser.cpp:
3085 (WebCore::CSSParser::parseValue):
3086 (WebCore::CSSParser::parseReflect):
3087 (WebCore::BorderImageParseContext::commitBorderImage):
3088 (WebCore::CSSParser::parseBorderImage):
3089 (WebCore::parseGradientColorStop):
3090 (WebCore::CSSParser::parseTransform):
3092 * css/CSSPropertyNames.in:
3093 * css/CSSReflectValue.cpp: Added.
3094 (WebCore::CSSReflectValue::cssText):
3095 * css/CSSReflectValue.h: Added.
3097 (WebCore::CSSReflectValue::CSSReflectValue):
3098 (WebCore::CSSReflectValue::direction):
3099 (WebCore::CSSReflectValue::offset):
3100 (WebCore::CSSReflectValue::mask):
3101 (WebCore::CSSReflectValue::setDirection):
3102 (WebCore::CSSReflectValue::setOffset):
3103 (WebCore::CSSReflectValue::setMask):
3104 * css/CSSStyleSelector.cpp:
3105 (WebCore::CSSStyleSelector::adjustRenderStyle):
3106 (WebCore::CSSStyleSelector::applyProperty):
3107 (WebCore::CSSStyleSelector::mapNinePieceImage):
3108 * css/CSSStyleSelector.h:
3109 * rendering/InlineFlowBox.cpp:
3110 (WebCore::InlineFlowBox::placeBoxesVertically):
3111 (WebCore::InlineFlowBox::paintMask):
3112 * rendering/Length.h:
3113 (WebCore::Length::calcFloatValue):
3114 * rendering/RenderBlock.cpp:
3115 (WebCore::RenderBlock::overflowHeight):
3116 (WebCore::RenderBlock::overflowWidth):
3117 (WebCore::RenderBlock::overflowLeft):
3118 (WebCore::RenderBlock::overflowTop):
3119 (WebCore::RenderBlock::overflowRect):
3120 (WebCore::RenderBlock::layoutBlock):
3121 * rendering/RenderBox.cpp:
3122 (WebCore::RenderBox::setStyle):
3123 (WebCore::RenderBox::paintMask):
3124 (WebCore::RenderBox::imageChanged):
3125 (WebCore::RenderBox::computeAbsoluteRepaintRect):
3126 * rendering/RenderFlexibleBox.cpp:
3127 (WebCore::RenderFlexibleBox::layoutBlock):
3128 * rendering/RenderLayer.cpp:
3129 (WebCore::RenderLayer::RenderLayer):
3130 (WebCore::RenderLayer::~RenderLayer):
3131 (WebCore::RenderLayer::updateLayerPositions):
3132 (WebCore::RenderLayer::enclosingPositionedAncestor):
3133 (WebCore::RenderLayer::enclosingTransformedAncestor):
3134 (WebCore::RenderLayer::isTransparent):
3135 (WebCore::transparencyClipBox):
3136 (WebCore::RenderLayer::operator delete):
3137 (WebCore::RenderLayer::destroy):
3138 (WebCore::RenderLayer::removeOnlyThisLayer):
3139 (WebCore::RenderLayer::insertOnlyThisLayer):
3140 (WebCore::RenderLayer::paintLayer):
3141 (WebCore::RenderLayer::updateZOrderLists):
3142 (WebCore::RenderLayer::updateOverflowList):
3143 (WebCore::RenderLayer::collectLayers):
3144 (WebCore::RenderLayer::shouldBeOverflowOnly):
3145 (WebCore::RenderLayer::styleChanged):
3146 (WebCore::RenderLayer::reflectionLayer):
3147 (WebCore::RenderLayer::createReflection):
3148 (WebCore::RenderLayer::updateReflectionStyle):
3149 * rendering/RenderLayer.h:
3150 (WebCore::RenderLayer::hasReflection):
3151 (WebCore::RenderLayer::reflection):
3152 (WebCore::RenderLayer::paintingInsideReflection):
3153 * rendering/RenderObject.cpp:
3154 (WebCore::RenderObject::RenderObject):
3155 (WebCore::RenderObject::requiresLayer):
3156 (WebCore::RenderObject::setStyle):
3157 (WebCore::RenderObject::updateImage):
3158 (WebCore::RenderObject::reflectionBox):
3159 (WebCore::RenderObject::reflectionOffset):
3160 * rendering/RenderObject.h:
3161 (WebCore::RenderObject::hasTransform):
3162 (WebCore::RenderObject::setHasReflection):
3163 (WebCore::RenderObject::hasReflection):
3164 * rendering/RenderReplica.cpp: Added.
3165 (WebCore::RenderReplica::RenderReplica):
3166 (WebCore::RenderReplica::~RenderReplica):
3167 (WebCore::RenderReplica::layout):
3168 (WebCore::RenderReplica::calcPrefWidths):
3169 (WebCore::RenderReplica::paint):
3170 * rendering/RenderReplica.h: Added.
3171 (WebCore::RenderReplica::renderName):
3172 (WebCore::RenderReplica::requiresLayer):
3173 * rendering/RenderStyle.cpp:
3174 (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3175 (WebCore::StyleRareNonInheritedData::operator==):
3176 (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
3177 (WebCore::RenderStyle::diff):
3178 (WebCore::RenderStyle::applyTransform):
3179 * rendering/RenderStyle.h:
3180 (WebCore::TranslateTransformOperation::apply):
3181 (WebCore::StyleReflection::StyleReflection):
3182 (WebCore::StyleReflection::operator==):
3183 (WebCore::StyleReflection::operator!=):
3184 (WebCore::StyleReflection::direction):
3185 (WebCore::StyleReflection::offset):
3186 (WebCore::StyleReflection::mask):
3187 (WebCore::StyleReflection::setDirection):
3188 (WebCore::StyleReflection::setOffset):
3189 (WebCore::StyleReflection::setMask):
3190 (WebCore::RenderStyle::boxReflect):
3191 (WebCore::RenderStyle::setBoxReflect):
3192 (WebCore::RenderStyle::initialBoxReflect):
3193 * rendering/RenderTable.cpp:
3194 (WebCore::RenderTable::layout):
3195 (WebCore::RenderTable::paintMask):
3196 * rendering/RenderTableCell.cpp:
3197 (WebCore::RenderTableCell::requiresLayer):
3198 (WebCore::RenderTableCell::paintMask):
3200 2008-04-29 Beth Dakin <bdakin@apple.com>
3204 Initial implementation of the following ARIA roles: button,
3205 checkbox, heading, link, radio, textbox.
3207 * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
3209 * page/AccessibilityObject.cpp:
3210 When an ARIA role is set, the role overrides whatever the actual
3211 element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
3212 (WebCore::AccessibilityObject::isWebArea):
3213 (WebCore::AccessibilityObject::isImageButton):
3214 (WebCore::AccessibilityObject::isAnchor):
3215 (WebCore::AccessibilityObject::isTextControl):
3216 (WebCore::AccessibilityObject::isImage):
3217 (WebCore::AccessibilityObject::isAttachment):
3218 (WebCore::AccessibilityObject::isPasswordField):
3219 (WebCore::AccessibilityObject::isCheckboxOrRadio):
3220 (WebCore::AccessibilityObject::isHeading):
3221 (WebCore::AccessibilityObject::isLink):
3223 Check for ARIA information:
3224 (WebCore::AccessibilityObject::headingLevel):
3225 (WebCore::AccessibilityObject::anchorElement):
3226 (WebCore::AccessibilityObject::actionElement):
3227 (WebCore::AccessibilityObject::hasIntValue):
3228 (WebCore::AccessibilityObject::intValue):
3229 (WebCore::AccessibilityObject::stringValue):
3230 (WebCore::AccessibilityObject::title):
3231 (WebCore::AccessibilityObject::accessibilityIsIgnored):
3232 (WebCore::AccessibilityObject::roleValue):
3234 There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
3235 (WebCore::AccessibilityObject::isNativeImage):
3236 (WebCore::AccessibilityObject::isNativeTextControl):
3237 (WebCore::isARIAInput):
3238 (WebCore::isARIAControl):
3240 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.
3241 (WebCore::AccessibilityObject::text): Still calls into
3242 RenderTextControl's text() for native text controls. Uses Element's
3243 innerText() for ARIA textboxes.
3244 (WebCore::AccessibilityObject::textLength): Call
3245 AccessibilityObject's text() instead of RenderTextControl's.
3246 (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
3247 (WebCore::AccessibilityObject::selectedText):
3248 (WebCore::AccessibilityObject::selectedTextRange):
3249 (WebCore::AccessibilityObject::selectionStart):
3250 (WebCore::AccessibilityObject::selectionEnd):
3251 (WebCore::AccessibilityObject::setSelectedTextRange):
3252 (WebCore::AccessibilityObject::setValue):
3253 (WebCore::AccessibilityObject::visiblePositionForIndex):
3254 (WebCore::AccessibilityObject::indexForVisiblePosition):
3255 (WebCore::AccessibilityObject::textMarkerRangeForRange):
3256 (WebCore::AccessibilityObject::textMarkerForIndex):
3257 (WebCore::AccessibilityObject::indexForTextMarker):
3258 (WebCore::AccessibilityObject::doAXRangeForLine):
3259 (WebCore::AccessibilityObject::doAXRangeForIndex):
3260 (WebCore::AccessibilityObject::doAXStringForRange):
3261 (WebCore::AccessibilityObject::doAXBoundsForRange):
3263 Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
3264 (WebCore::AccessibilityObject::ariaRoleAttribute):
3266 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.
3267 * page/AccessibilityObject.h:
3269 Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
3270 * page/mac/AccessibilityObjectWrapper.mm:
3271 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
3272 (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
3274 2008-04-29 Timothy Hatcher <timothy@apple.com>
3276 Make the exceptions that the InspectorController catches log the
3277 original file and line number, if present on the exception object.
3279 Reviewed by Adam Roben.
3281 * page/InspectorController.cpp:
3282 (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
3283 (WebCore::InspectorController::~InspectorController): Ditto.
3284 (WebCore::InspectorController::scriptObjectReady): Ditto.
3285 (WebCore::InspectorController::addScriptResource): Ditto.
3286 (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
3287 (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
3288 (WebCore::InspectorController::updateScriptResource): Ditto.
3289 (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
3290 (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
3291 (WebCore::InspectorController::handleException): Take a context. Pull the line
3292 and sourceURL properties off the exception if it is an object.
3293 * page/InspectorController.h: Change handleException to take a context.
3295 2008-04-29 Timothy Hatcher <timothy@apple.com>
3297 Fixes a regression where the Page's debugger would not be reattached
3298 when a new JSDOMWindow is created.
3300 Reviewed by Sam Weinig.
3302 * bindings/js/kjs_proxy.cpp:
3303 (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
3304 * history/CachedPage.cpp:
3305 (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
3306 contain a window, reattach the debugger to the new JSDOMWindow by calling
3307 proxy->attachDebugger. Also restore the setPageGroupIdentifier.
3309 2008-04-29 Anatoli Papirovski <apapirovski@mac.com>
3311 Reviewed by Darin Adler.
3313 Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
3314 Fixed RGB and RGBA parsing to ignore the declaration when the value is not
3315 "either three integer values or three percentage values."
3317 * css/CSSParser.cpp:
3318 (WebCore::CSSParser::parseColorParameters):
3320 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3324 Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
3326 Ben found this crash in the demo browser.
3328 In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
3330 case PolicyDownload:
3331 frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
3332 receivedError(interruptionForPolicyChangeError());
3334 We are in a policy check, the download() call will call setHtml, which will start loading
3335 the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
3336 which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
3337 will use the m_frame->loader() but it is gone. Do not call into receivedError and
3338 interruptionForPolicyChangeError if we are gone anyway...
3340 * loader/MainResourceLoader.cpp:
3341 (WebCore::MainResourceLoader::continueAfterContentPolicy):
3343 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3347 Rely on auto-boxing of C++ for the QCursor c'tor
3349 * platform/qt/CursorQt.cpp:
3351 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3355 Add the remaining cursors that defaulted to PointerCursor
3357 * Resources/WebKitResources.qrc:
3358 * platform/qt/CursorQt.cpp:
3359 (WebCore::verticalTextCursor):
3360 (WebCore::cellCursor):
3361 (WebCore::contextMenuCursor):
3362 (WebCore::copyCursor):
3363 (WebCore::progressCursor):
3364 (WebCore::aliasCursor):
3366 2008-04-29 Alice Liu <alice.liu@apple.com>
3368 Reviewed by Beth Dakin.
3370 Comply with HTML5 spec about parsing tabindex property according to
3371 integer parsing rules
3373 Test: fast/parser/tabindex-parsing.html
3375 * html/HTMLElement.cpp:
3376 (WebCore::HTMLElement::parseMappedAttribute):
3378 2008-04-29 Tor Arne Vestbø <tavestbo@trolltech.com>
3382 Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
3384 https://bugs.webkit.org/show_bug.cgi?id=18482
3386 We need to repaint scrollbars after a geometry change, and also make sure
3387 the computed clipping rect for the corners between scrollbars is propagated
3388 to the chrome client without beeing intersected by the visible content rect
3391 * platform/ScrollView.h:
3392 * platform/qt/ScrollViewQt.cpp:
3393 (WebCore::ScrollView::geometryChanged):
3394 (WebCore::ScrollView::suppressScrollbars):
3395 (WebCore::ScrollView::invalidateScrollbars):
3397 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3401 Calling QWebView::setCursor will override the WebCore Cursor.
3402 Calling QWebView::setCursor will override the WebCore Cursor using
3403 QWidget::unsetCursor will revert to the WebCore Cursor.
3405 For detecting the unset we have to compare the shape of the
3406 cursor to the default arrow. Qt::WA_SetCursor can not be used
3407 as it is set unconditionally but conditionally removed.
3409 Calling QWidget::setCursor will immediately send the CursorChange
3410 event. We listen to this event to decide if we currently use a
3411 WebCore cursor, got a cursor from outside, or revert to the default.
3413 This should be race free and work reliable, the manual test for this
3414 is WebCore/manual-tests/cursor.html
3416 * platform/qt/WidgetQt.cpp:
3417 (WebCore::Widget::setCursor):
3419 2008-04-28 Dan Bernstein <mitz@apple.com>
3421 Reviewed by Maciej Stachowiak.
3423 - fix https://bugs.webkit.org/show_bug.cgi?id=18795
3424 REGRESSION (r32660): Text heavier with text-shadow
3426 * rendering/InlineTextBox.cpp:
3427 (WebCore::paintTextWithShadows): The loop was doing one extra pass
3428 without shadow even in cases where the last pass with a shadow was
3429 painting the text at the right position (rather than outside the clip).
3430 Fixed that. The only case where a separate pass without shadow is needed
3431 is when there is text-stroke, since in that case all shadow passes
3432 paint the text outside the clip.
3434 2008-04-28 Brady Eidson <beidson@apple.com>
3436 Reviewed by Sam Weinig
3438 Add Storage.clear(), per updates to HTML5
3440 Tests: storage/domstorage/localstorage/clear.html
3441 storage/domstorage/sessionstorage/clear.html
3443 * storage/LocalStorageArea.cpp:
3444 (WebCore::LocalStorageArea::areaCleared):
3445 * storage/LocalStorageArea.h:
3447 * storage/SessionStorageArea.cpp:
3448 (WebCore::SessionStorageArea::areaCleared):
3449 * storage/SessionStorageArea.h:
3451 * storage/Storage.cpp:
3452 (WebCore::Storage::clear):
3453 * storage/Storage.h:
3454 * storage/Storage.idl:
3456 * storage/StorageArea.cpp:
3457 (WebCore::StorageArea::internalClear):
3458 * storage/StorageArea.h:
3459 (WebCore::StorageArea::clear):
3461 2008-04-28 Adele Peterson <adele@apple.com>
3463 Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
3465 WebCore part of fix for <rdar://problem/3709505>
3466 Safari should have a way to upload bundles from the file upload control (as zip)
3468 * WebCore.base.exp: Added symbols.
3470 * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded.
3471 It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
3473 * loader/FrameLoader.cpp:
3474 (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts.
3475 (WebCore::FrameLoader::loadItem): ditto.
3476 * loader/ResourceLoader.cpp:
3477 (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to.
3478 (WebCore::ResourceLoader::didCancel): ditto.
3479 (WebCore::ResourceLoader::didFail): ditto.
3481 * platform/network/FormData.cpp:
3482 (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed.
3483 (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.
3484 (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement.
3485 (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to
3486 create any compressed files so the FormDataElements can store the paths.
3487 (WebCore::FormData::removeGeneratedFilesIfNeeded): Added. Removes generated files and their directories (if empty).
3488 * platform/network/FormData.h:
3489 (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated,
3490 and a string to hold the path of the generated file.
3492 * platform/network/mac/FormDataStreamMac.mm:
3493 (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file.
3494 (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
3496 * platform/FileSystem.h: Added directoryName.
3497 * platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
3498 * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
3499 * platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
3500 * platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
3501 * platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.
3503 Added new ChromeClient methods to give the application control over the file compression for uploading.
3505 (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
3506 (WebCore::ChromeClient::generateReplacementFile): ditto.
3507 * page/ChromeClient.h:
3509 2008-04-28 Anders Carlsson <andersca@apple.com>
3511 Reviewed by Sam, Mark, Adele and Darin.
3513 Add a (currently not called) method for opening the application cache database.
3516 * loader/appcache/ApplicationCacheStorage.cpp:
3517 (WebCore::ApplicationCacheStorage::setCacheDirectory):
3518 (WebCore::ApplicationCacheStorage::openDatabase):
3519 * loader/appcache/ApplicationCacheStorage.h:
3521 2008-04-28 Alice Liu <alice.liu@apple.com>
3525 Fix <rdar://problem/4911289> Add tabindex property to all children
3526 of HTMLElement (7138)
3527 http://bugs.webkit.org/show_bug.cgi?id=7138
3529 Test: fast/events/tabindex-focus-blur-all.html
3531 * WebCore.xcodeproj/project.pbxproj:
3532 * bindings/objc/DOMPrivate.h:
3533 -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
3536 * bindings/objc/PublicDOMInterfaces.h:
3537 -Moving focus, blur, tabindex to HTMLElement from its descendants.
3540 (WebCore::Node::Node):
3541 (WebCore::Node::isFocusable):
3542 (WebCore::Node::isKeyboardFocusable):
3543 -The concept of being focusable now needs to account for tabindex
3547 -Need to use a bit to keep track of whether tabindex was explicitly set
3548 to 0 or was just initialized to 0.
3549 (WebCore::Node::tabIndex):
3550 -Make this virtual so that Anchors and GenericFormElements can determine
3551 tabindex without accounting for focusability
3552 (WebCore::Node::setTabIndexExplicitly):
3553 -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide
3554 behind and/or be confused for HTMLElement::setTabIndex
3556 * html/HTMLAnchorElement.cpp:
3557 * html/HTMLAnchorElement.h:
3558 (WebCore::HTMLAnchorElement::tabIndex):
3559 * html/HTMLGenericFormElement.cpp:
3560 * html/HTMLGenericFormElement.h:
3561 (WebCore::HTMLGenericFormElement::tabIndex):
3562 -Anchors and form elements are normally focusable, and need to avert the
3563 check for focusability in HTMLElement::tabIndex
3564 because tabIndex could be queried before a first layout happens.
3566 * html/HTMLElement.cpp:
3567 (WebCore::HTMLElement::parseMappedAttribute):
3568 -Function Node::setTabIndex changed to Node::setTabIndexExplicitly
3569 (WebCore::HTMLElement::isFocusable):
3570 -The concept of being focusable now needs to account for tabindex
3572 (WebCore::HTMLElement::tabIndex):
3573 -HTML5 specifies that querying tabindex for elements that aren't
3574 focusable shall return -1
3575 (WebCore::HTMLElement::setTabIndex):
3576 -New default implementation
3577 * html/HTMLElement.h:
3579 * html/HTMLLegendElement.cpp:
3580 (WebCore::HTMLLegendElement::focus):
3581 -Now with HTML5's enhanced specification of tabindex, legend elements
3582 themselves shall focus (if they should), and not the first form element
3583 they encapsulate. This matches Firefox behavior. HTMLLabelElements
3584 still forward focus to the encapsulated element. This also matches
3587 * html/HTMLAreaElement.cpp:
3588 (WebCore::HTMLAreaElement::isFocusable):
3589 * html/HTMLAreaElement.h:
3590 -HTMLAreaElement isn't subject to the same focusability requirements as
3591 its parent, HTMLAnchorElement. Default HTMLElement implementation is