1 2008-05-08 Dan Bernstein <mitz@apple.com>
5 - fix https://bugs.webkit.org/show_bug.cgi?id=18818
6 <rdar://problem/5901544> REGRESSION (3.1.1-TOT): Character order (float:left ordered after the first letter)
8 Test: fast/css/first-letter-float-after-float.html
10 * rendering/RenderBlock.cpp:
11 (WebCore::RenderBlock::updateFirstLetter): Changed to add the first
12 letter container right before the rest of the text it is taken from,
13 instead of at the beginning of the block.
15 2008-05-08 Chris Fleizach <cfleizach@apple.com>
17 Reviewed by Darin Adler.
19 <rdar://problem/5921046> AX: list box options have wrong AXPosition
21 * page/AccessibilityObject.cpp:
22 (WebCore::AccessibilityObject::documentFrameView):
23 * page/AccessibilityObject.h:
25 2008-05-08 Julien Chaffraix <jchaffraix@webkit.org>
29 Bug 18916: make_names.pl --factory needs to support custom c++ guard
31 Add --guardFactoryWith to handle the cpp guard around generated factories.
33 * DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
34 * GNUmakefile.am: Ditto.
36 * dom/make_names.pl: Add guardFactoryWith option.
38 2008-05-08 Julien Chaffraix <jchaffraix@webkit.org>
40 Reviewed by Adam Roben.
44 Should also fix the cURL backend for the Windows port.
46 * WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
47 * platform/network/curl/FormDataStreamCurl.h: Include stdio.h which
48 fixes the build on some machine.
50 * webcore-wx.bkl: Add FormDataStreamCurl.cpp.
52 2008-05-08 Timothy Hatcher <timothy@apple.com>
54 Fixes the bug where the Web Inspector could not
55 find any localization strings.
57 Reviewed by Mark Rowe.
59 * WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js
60 file to the WebCore Copy Resources phase. Also removes an idl from
61 the Copy Resources phase.
63 2008-05-08 Dan Bernstein <mitz@apple.com>
65 Reviewed by Adam Roben.
67 - fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
69 * platform/win/PopupMenuWin.cpp:
70 (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold
71 font for measuring labels.
73 2008-05-08 Dan Bernstein <mitz@apple.com>
75 Reviewed by Geoffrey Garen.
77 - cross-platform fix for http://bugs.webkit.org/show_bug.cgi?id=17590
78 ASSERTION FAILED: subject in jsRegExpExecute()
81 (WebCore::Frame::matchLabelsAgainstElement):
83 2008-05-08 Holger Hans Peter Freyther <zecke@selfish.org>
87 Simple ImageBuffer::image implementation.
89 In contrast to cg and cairo we do not use a special BitmapImage because
90 the ownership of the FrameData inside the BitmapImage is a bit backward
91 (actually owned by the ImageDecoderQt...). Further work is needed for image
92 and pixmap handling in the qt port...
95 * platform/graphics/ImageBuffer.h:
96 * platform/graphics/qt/ImageBufferQt.cpp:
97 (WebCore::ImageBuffer::image):
98 * platform/graphics/qt/ImageQt.cpp:
99 * platform/graphics/qt/StillImageQt.cpp: Added.
100 (WebCore::StillImage::StillImage):
101 (WebCore::StillImage::size):
102 (WebCore::StillImage::getPixmap):
103 (WebCore::StillImage::draw):
104 * platform/graphics/qt/StillImageQt.h: Added.
106 2008-05-08 Holger Hans Peter Freyther <zecke@selfish.org>
110 Update the WebKit.qrc of the inspector to be functional again
112 * page/inspector/WebKit.qrc:
114 2008-05-08 Tor Arne Vestbø <tavestbo@trolltech.com>
118 Fix the Qt/Mac build.
120 * platform/FileSystem.h:
122 2008-05-08 Ariya Hidayat <ariya.hidayat@trolltech.com>
126 Use native Windows library handling (instead of QLibrary)
127 for Qt/Win32's PlatformModule.
129 * platform/FileSystem.h:
130 (WebCore::PlatformModuleVersion::PlatformModuleVersion):
131 * platform/qt/FileSystemQt.cpp:
132 (WebCore::unloadModule):
134 2008-05-08 Simon Hausmann <hausmann@webkit.org>
136 Reviewed and found by Holger.
138 Include .css in the list of extensions for text/css. Fixes
139 fast/loader/local-css-allowed-in-strict-mode.html.
141 * platform/qt/MIMETypeRegistryQt.cpp:
143 2008-05-08 Simon Hausmann <hausmann@webkit.org>
145 Fix the Qt and Wx build when compiling without offline app support.
147 * loader/FrameLoader.cpp:
148 (WebCore::FrameLoader::canCachePage):
150 2008-05-07 Sam Weinig <sam@webkit.org>
152 Reviewed by Adele Peterson
154 Update MessageEvent to match the latest version of the HTML5 spec,
155 adding the lastEventId attribute.
157 * dom/MessageEvent.cpp:
158 (WebCore::MessageEvent::MessageEvent):
159 (WebCore::MessageEvent::initMessageEvent):
160 * dom/MessageEvent.h:
161 (WebCore::MessageEvent::lastEventId):
162 * dom/MessageEvent.idl:
163 * page/DOMWindow.cpp:
164 (WebCore::DOMWindow::postMessage):
166 2008-05-07 Stephanie Lewis <slewis@apple.com>
170 remove non-functioning code. If onunload should be fired from these nodes then
171 a WindowEventListener needs to be set. However, Firefox and IE also do not
172 fire onunload events for these cases.
174 Test: fast/events/onunload-not-on-body.html
176 * html/HTMLFrameElementBase.cpp:
177 (WebCore::HTMLFrameElementBase::parseMappedAttribute):
178 * html/HTMLObjectElement.cpp
179 (WebCore::HTMLObjectElement::parseMappedAttribute):
181 2008-05-07 Dan Bernstein <mitz@apple.com>
183 Reviewed by John Sullivan.
185 - fix https://bugs.webkit.org/show_bug.cgi?id=18909
186 <rdar://problem/5914165> REGRESSION (r31872-r31878): Viewed photos not closing completely at indycar.com
188 Test: fast/dynamic/positioned-movement-with-positioned-children.html
190 * rendering/RenderBlock.cpp:
191 (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of
192 a positioned object that has only moved and has only positioned children
194 * rendering/RenderObject.h:
195 (WebCore::RenderObject::needsPositionedMovementLayout): Added this
198 2008-05-07 Anders Carlsson <andersca@apple.com>
202 When no document loaders are associated with an application cache group,
203 release the reference to the newest cache group. This prevents reference cycles.
205 * loader/appcache/ApplicationCacheGroup.cpp:
206 (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
207 (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
208 (WebCore::ApplicationCacheGroup::cacheDestroyed):
209 * loader/appcache/ApplicationCacheGroup.h:
211 * loader/appcache/ApplicationCacheStorage.cpp:
212 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
213 Return early if the datbase wasn't open.
215 (WebCore::ApplicationCacheStorage::loadCache):
218 2008-05-07 Anders Carlsson <andersca@apple.com>
222 Don't put pages with an application cache in the BF cache.
224 * loader/FrameLoader.cpp:
225 (WebCore::FrameLoader::canCachePage):
227 2008-05-07 Justin Garcia <justin.garcia@apple.com>
229 Reviewed by John Sullivan.
231 <rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply
233 When a single tab or series of tabs was copied, we weren't putting them into a
234 tab span. On Paste, we would be given a text node with a single tab or series
235 of tabs in it, and we would crash when inserting it at the start of a block
236 (where that kind of text becomes completely unrendered).
238 * editing/ReplaceSelectionCommand.cpp:
239 (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean
240 up correctly and early return if we removed everything that was inserted.
241 * editing/markup.cpp:
242 (WebCore::createMarkup): Include the tab span when the only thing copied
243 was a tab or a series of tabs.
245 2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>
247 Reviewed by Adam Roben.
251 * platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define
252 __STDC_LIMIT_MACROS to have SIZE_MAX exported.
253 * platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h)
254 as it is not present on the build bots.
255 * plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
257 2008-05-07 David Kilzer <ddkilzer@apple.com>
259 Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
260 <https://bugs.webkit.org/show_bug.cgi?id=18900>
261 <rdar://problem/5912383>
263 Original patch by Aaron Golden and Tim Omernick. Reviewed by Adele.
265 Test: fast/forms/textfield-to-password-on-focus.html
267 * html/HTMLInputElement.cpp:
268 (WebCore::HTMLInputElement::setInputType): If the current node has
269 focus, call updateFocusAppearance() to make sure its state is correct
270 after changing its type.
272 2008-05-07 Chris Fleizach <cfleizach@apple.com>
274 Reviewed by Alice Liu
276 <rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton
278 * page/AccessibilityObject.h:
279 (WebCore::AccessibilityObject::isFileUploadButton):
280 * page/AccessibilityRenderObject.cpp:
281 (WebCore::AccessibilityRenderObject::isFileUploadButton):
282 (WebCore::AccessibilityRenderObject::actionElement):
283 (WebCore::AccessibilityRenderObject::textUnderElement):
284 (WebCore::AccessibilityRenderObject::stringValue):
285 (WebCore::AccessibilityRenderObject::roleValue):
286 * page/AccessibilityRenderObject.h:
287 * rendering/RenderFileUploadControl.cpp:
288 (WebCore::RenderFileUploadControl::buttonValue):
289 (WebCore::RenderFileUploadControl::fileTextValue):
290 * rendering/RenderFileUploadControl.h:
292 2008-05-07 Julien Chaffraix <jchaffraix@webkit.org>
296 Bug 17971: [Curl] FormData processing should be moved to its own class
298 Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
301 First step into having complete file uploading facility in cURL.
303 No test case as it is only code refactoring.
305 * GNUmakefile.am: Add FormDataStreamCurl.cpp
306 * platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h
307 (WebCore::ResourceHandleInternal::ResourceHandleInternal):
308 * platform/network/curl/FormDataStreamCurl.cpp: Added.
309 (WebCore::FormDataStream::~FormDataStream):
310 (WebCore::FormDataStream::read):
311 * platform/network/curl/FormDataStreamCurl.h: Added.
312 (WebCore::FormDataStream::FormDataStream):
313 * platform/network/curl/ResourceHandleCurl.cpp:
314 (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
315 * platform/network/curl/ResourceHandleManager.cpp:
316 (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
318 2008-05-07 Adam Treat <treat@kde.org>
322 https://bugs.webkit.org/show_bug.cgi?id=18898
324 Fixed wrong transform being used for creating the pixmap for a new
325 transparency layer. This fixes the popup menus on dell.com.
327 * platform/graphics/qt/GraphicsContextQt.cpp:
328 (WebCore::GraphicsContext::beginTransparencyLayer):
330 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
334 Share the plug-in directories between Gtk and Qt/X11 port.
336 * platform/qt/FileSystemQt.cpp:
337 (WebCore::homeDirectoryPath): Implement it for Qt.
338 * plugins/PluginDatabase.cpp:
339 (WebCore::addMozillaPluginDirectories): Shared code.
340 (WebCore::PluginDatabase::defaultPluginDirectories):
341 (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
342 * plugins/gtk/PluginDatabaseGtk.cpp:
343 (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
344 * plugins/qt/PluginDatabaseQt.cpp: Refactored.
346 2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>
350 Fix build issues on Mac and refeactor the .pro file a bit.
353 * platform/qt/TemporaryLinkStubs.cpp:
354 (PluginPackage::fetchInfo):
356 2008-05-07 Tor Arne Vestbø <tavestbo@trolltech.com>
360 Draw scrollview corners (between scrollbars) using the Qt style.
362 https://bugs.webkit.org/show_bug.cgi?id=18894
364 * platform/qt/ScrollViewQt.cpp:
365 (WebCore::drawScrollbarCorner):
366 (WebCore::ScrollView::paint):
368 2008-05-07 Simon Hausmann <hausmann@webkit.org>
370 Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
375 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
377 Rubber-stamped by Holger.
379 Fix building without storage support.
381 * page/PageGroup.cpp:
382 (WebCore::PageGroup::closeLocalStorage): proper #if
384 2008-05-07 Ariya Hidayat <ariya.hidayat@trolltech.com>
386 Rubber-stamped by Oliver Hunt.
388 Fix building without accessibility.
390 * page/AXObjectCache.cpp:
391 (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
393 2008-05-06 Dan Bernstein <mitz@apple.com>
395 Reviewed by Darin Adler.
397 - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
399 Test: fast/block/float/float-on-zero-height-line.html
401 * rendering/RenderBlock.cpp:
402 (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
404 2008-05-06 Alice Liu <alice.liu@apple.com>
406 Reviewed by Adele Peterson and John Sullivan.
408 changes needed to build on Windows after r32911 and r32927
410 * WebCore.vcproj/WebCore.vcproj:
411 * page/AXObjectCache.cpp:
412 (WebCore::AXObjectCache::selectedChildrenChanged):
413 * page/AccessibilityObject.h:
414 (WebCore::AccessibilityObject::document):
415 (WebCore::AccessibilityObject::topDocumentFrameView):
416 (WebCore::AccessibilityObject::documentFrameView):
417 * page/AccessibilityRenderObject.cpp:
418 (WebCore::AccessibilityRenderObject::document):
419 (WebCore::AccessibilityRenderObject::topDocumentFrameView):
420 (WebCore::AccessibilityRenderObject::documentFrameView):
421 * page/AccessibilityRenderObject.h:
422 * page/mac/AXObjectCacheMac.mm:
423 * page/mac/AccessibilityObjectWrapper.mm:
424 (-[AccessibilityObjectWrapper position]):
425 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
427 2008-05-06 Brady Eidson <beidson@apple.com>
429 Reviewed by Sam Weinig
431 Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
432 1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
433 2 - Pending sync timers all need to be cancelled.
435 * storage/LocalStorage.cpp:
436 (WebCore::LocalStorage::storageArea):
437 (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
439 * storage/LocalStorage.h: Change the map to be of LocalStorageAreas instead of StorageAreas
441 * storage/LocalStorageArea.cpp:
442 (WebCore::LocalStorageArea::LocalStorageArea):
443 (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
445 (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
446 "final sync scheduled" flag
447 (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
448 (WebCore::LocalStorageArea::scheduleClear): Ditto
449 * storage/LocalStorageArea.h:
451 2008-05-06 Kevin Ollivier <kevino@theolliviers.com>
453 wx build fix. Adding files added in r32925 to the bakefiles.
455 * WebCoreSources.bkl:
457 2008-05-06 Alp Toker <alp@nuanti.com>
459 GTK+ build fix. Add empty stub to keep non-accessible ports building.
461 * page/AXObjectCache.h:
462 (WebCore::AXObjectCache::selectedChildrenChanged):
464 2008-05-06 Beth Dakin <bdakin@apple.com>
468 Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and
469 'aria-describedby' attributes.
471 * html/HTMLAttributeNames.in: Added new attributes. Added both the
472 British spelling (since that is what is specified in the spec), and
473 the American spelling (since the bug filer and I are two Americans
474 who keep spelling it the American way by accident).
475 * page/AccessibilityObject.cpp: Added empty wrappers. These
476 functions can't do anything meaningful without a renderer.
477 (WebCore::AccessibilityObject::ariaAccessiblityName):
478 (WebCore::AccessibilityObject::ariaLabeledByAttribute):
479 (WebCore::AccessibilityObject::ariaDescribedByAttribute):
480 * page/AccessibilityObject.h:
482 Here is where the real work is done.
483 * page/AccessibilityRenderObject.h:
484 * page/AccessibilityRenderObject.cpp:
485 (WebCore::accessibleNameForNode): Takes a node and finds its
486 contribution to the accessible name, as defined by the Mozilla ARIA
488 (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a
489 string of space-separated IDs, fetches the corresponding element
490 for each ID, and concatenates an accessible name based on the
492 (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute):
493 Retrieve the labeledby attribute and send its contents to
494 ariaAccessibilityName().
495 (WebCore::AccessibilityRenderObject::title): Return the ARIA
496 labeledby value if one exists.
497 (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute):
498 Retrieve the describedby attribute and send its contents to
499 ariaAccessibilityName().
500 (WebCore::AccessibilityRenderObject::accessibilityDescription):
501 Return the ARIA describedby attribute if one exists.
503 These are two bugs I spotted.
504 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't
505 ignore anything with an ARIA role.
506 (WebCore::AccessibilityRenderObject::roleValue): Button tags maps
509 2008-05-06 Anders Carlsson <andersca@apple.com>
513 Support reading back app caches from the database.
515 * loader/appcache/ApplicationCache.cpp:
516 (WebCore::ApplicationCache::ApplicationCache):
517 Initialize m_storageID to 0.
519 * loader/appcache/ApplicationCacheGroup.cpp:
520 (WebCore::ApplicationCacheGroup::cacheDestroyed):
521 If the cache being destroyed is not the newest cache, it should no longer be
522 stored in the database. Remove it.
524 (WebCore::ApplicationCacheGroup::setNewestCache):
525 Don't store the cache here.
527 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
528 Store it here instead.
530 * loader/appcache/ApplicationCacheStorage.cpp:
531 (WebCore::ApplicationCacheStorage::loadCacheGroup):
532 New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).
534 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
535 Search for the group in the database.
537 (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
538 New method that loads the host hashes from the database.
540 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
541 Search in the database for a cache that contains the resource.
543 (WebCore::ApplicationCacheStorage::loadCache):
544 New method that loads a cache with a given ID.
546 (WebCore::ApplicationCacheStorage::remove):
547 New method that removes a cache.
549 * loader/appcache/ApplicationCacheStorage.h:
552 2008-05-06 Alp Toker <alp@nuanti.com>
554 Partial GTK+ build fix. Add files from r32925 to the build and replace
558 * page/AccessibilityListBoxOption.cpp:
559 (WebCore::AccessibilityListBoxOption::parentObject):
561 2008-05-06 Brady Eidson <beidson@apple.com>
565 Make LocalStorage persistent using a SQLite database.
567 There's a few things going on here. Whenever an item is changed, we add it to a set of
568 "items to be sync'ed." Instead of immediately scheduling the sync'ing on the background
569 thread, we set a "sync timer" instead. This is to shield against a series of rapid changes
570 to avoid thread churn.
572 When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
573 and schedule the sync task which is where the items are actually committed to disk.
575 Current design for reading items back in from disk is to be as aggressive as possible.
576 When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
577 they are immediately available. A future enhancement will be to being this pre-fetching the
578 moment we start loading a page when we know that page has LocalStorage.
580 * storage/LocalStorageArea.cpp:
581 (WebCore::LocalStorageArea::LocalStorageArea):
582 (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it.
583 (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it.
584 (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it.
585 (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it. The second case is
586 because if the item is set while the import is still in progress, the new value should override whatever
587 the imported value is.
588 (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it. See the
589 explanation for setItem()
590 (WebCore::LocalStorageArea::contains): Return whether or not the item is contained. Do the same dance with
591 the import flag, import lock, and import condition that the above methods do.
593 (WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
594 (WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
595 (WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously
598 (WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
599 (WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed." If any
600 items are later set before the actual removal takes place, they will be written *after* the removal.
601 (WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then
602 schedule a sync task. Also transfer the "items cleared" flag to the "background thread items cleared" flag
603 (WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
604 (WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
605 (WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items. Then update or delete
606 each item waiting to be sync'ed
607 * storage/LocalStorageArea.h:
609 2008-05-06 Brady Eidson <beidson@apple.com>
611 Rubberstamped by Mitz Pettel RTL
613 * storage/LocalStorage.cpp:
614 (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
616 2008-05-06 Brady Eidson <beidson@apple.com>
618 Reviewed by Darin, Sam Weinig, and Anders
620 Preparation for upcoming work making LocalStorage persistent.
622 The final step before code that actually does storage and retrieval of LocalStorage items.
624 The LocalStorage set is responsible for controlling the path and filenames that individual
625 LocalStorageAreas will use for their persistent store. This adds the ability to return that
628 Also, add the scheduling methods that LocalStorageArea will use for importing and syncing
629 it's persistent items.
631 * storage/LocalStorage.cpp:
632 (WebCore::LocalStorage::storageArea): Add some comments re: the future direction of this
633 method once we actually do quota tracking.
634 (WebCore::LocalStorage::fullDatabaseFilename):
635 (WebCore::LocalStorage::scheduleImport):
636 (WebCore::LocalStorage::scheduleSync):
637 * storage/LocalStorage.h:
639 2008-05-06 Chris Fleizach <cfleizach@apple.com>
641 Reviewed by Beth Dakin.
643 rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
645 * WebCore.xcodeproj/project.pbxproj:
646 * html/HTMLOptGroupElement.cpp:
647 (WebCore::HTMLOptGroupElement::ownerSelectElement):
648 (WebCore::HTMLOptGroupElement::accessKeyAction):
649 * html/HTMLOptGroupElement.h:
650 * html/HTMLOptionElement.cpp:
651 (WebCore::HTMLOptionElement::accessKeyAction):
652 (WebCore::HTMLOptionElement::index):
653 (WebCore::HTMLOptionElement::setSelected):
654 (WebCore::HTMLOptionElement::childrenChanged):
655 (WebCore::HTMLOptionElement::ownerSelectElement):
656 (WebCore::HTMLOptionElement::insertedIntoDocument):
657 * html/HTMLOptionElement.h:
658 * html/HTMLSelectElement.cpp:
659 (WebCore::HTMLSelectElement::childrenChanged):
660 (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
661 * html/HTMLSelectElement.h:
662 * page/AXObjectCache.cpp:
663 (WebCore::AXObjectCache::get):
664 * page/AccessibilityListBox.cpp: Added.
665 (WebCore::AccessibilityListBox::AccessibilityListBox):
666 (WebCore::AccessibilityListBox::~AccessibilityListBox):
667 (WebCore::AccessibilityListBox::create):
668 (WebCore::AccessibilityListBox::addChildren):
669 (WebCore::AccessibilityListBox::selectedChildren):
670 (WebCore::AccessibilityListBox::visibleChildren):
671 (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
672 (WebCore::AccessibilityListBox::doAccessibilityHitTest):
673 * page/AccessibilityListBox.h: Added.
674 (WebCore::AccessibilityListBox::accessibilityShouldUseUniqueId):
675 (WebCore::AccessibilityListBox::isListBox):
676 (WebCore::AccessibilityListBox::canSetFocusAttribute):
677 (WebCore::AccessibilityListBox::roleValue):
678 (WebCore::AccessibilityListBox::accessibilityIsIgnored):
679 * page/AccessibilityListBoxOption.cpp: Added.
680 (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
681 (WebCore::AccessibilityListBoxOption::~AccessibilityListBoxOption):
682 (WebCore::AccessibilityListBoxOption::create):
683 (WebCore::AccessibilityListBoxOption::isEnabled):
684 (WebCore::AccessibilityListBoxOption::isSelected):
685 (WebCore::AccessibilityListBoxOption::elementRect):
686 (WebCore::AccessibilityListBoxOption::title):
687 (WebCore::AccessibilityListBoxOption::size):
688 (WebCore::AccessibilityListBoxOption::actionElement):
689 (WebCore::AccessibilityListBoxOption::parentObject):
690 (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
691 (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
692 * page/AccessibilityListBoxOption.h: Added.
693 (WebCore::AccessibilityListBoxOption::setHTMLElement):
694 (WebCore::AccessibilityListBoxOption::roleValue):
695 (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
696 (WebCore::AccessibilityListBoxOption::isListBoxOption):
697 * page/AccessibilityObject.h:
698 (WebCore::AccessibilityObject::isListBox):
699 * page/AccessibilityRenderObject.cpp:
700 (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
701 * page/mac/AccessibilityObjectWrapper.mm:
702 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
703 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
704 * rendering/RenderListBox.cpp:
705 (WebCore::RenderListBox::selectionChanged):
706 * rendering/RenderListBox.h:
708 2008-05-06 Chris Fleizach <cfleizach@apple.com>
710 Reviewed by Beth Dakin.
712 <rdar://problem/5455287> AXWebArea should include AXURL
714 * page/AccessibilityRenderObject.cpp:
715 (WebCore::AccessibilityRenderObject::url):
716 * page/mac/AccessibilityObjectWrapper.mm:
717 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
719 2008-05-06 Alice Liu <alice.liu@apple.com>
721 Rubber-stamped by Beth
723 stab-in-the-dark attempt at fixing non-mac builds.
727 * WebCore.vcproj/WebCore.vcproj:
728 * WebCoreSources.bkl:
730 2008-05-06 Anders Carlsson <andersca@apple.com>
734 Only use the toplevel application cache when loading subframes.
736 * loader/MainResourceLoader.cpp:
737 (WebCore::MainResourceLoader::load):
739 2008-05-06 Adam Barth <abarth-webkit@adambarth.com>
741 Reviewed by Sam Weinig.
743 https://bugs.webkit.org/show_bug.cgi?id=18725
744 Implement asynchronous postMessage.
745 MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.
747 Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
749 Test: http/tests/security/postMessage/delivery-order.html
751 * dom/MessageEvent.cpp:
752 (WebCore::MessageEvent::MessageEvent):
753 * page/DOMWindow.cpp:
754 (WebCore::PostMessageTimer::PostMessageTimer):
755 (WebCore::PostMessageTimer::event):
756 (WebCore::PostMessageTimer::targetOrigin):
757 (WebCore::PostMessageTimer::fired):
758 (WebCore::DOMWindow::postMessage):
759 (WebCore::DOMWindow::postMessageTimerFired):
761 * page/DOMWindow.idl:
763 2008-05-06 Anders Carlsson <andersca@apple.com>
767 Store cache to the database.
769 * loader/appcache/ApplicationCache.cpp:
770 (WebCore::ApplicationCache::addResource):
771 If the cache has been saved to disk, save the resource as well.
773 * loader/appcache/ApplicationCache.h:
774 (WebCore::ApplicationCache::onlineWhitelist):
775 New method which returns the online whitelist.
777 (WebCore::ApplicationCache::setStorageId):
778 (WebCore::ApplicationCache::storageId):
779 Setter/getter for the application cache storage ID.
781 * loader/appcache/ApplicationCacheGroup.cpp:
782 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
783 Save the cache/group to disk.
785 * loader/appcache/ApplicationCacheGroup.h:
786 (WebCore::ApplicationCacheGroup::setStorageID):
787 (WebCore::ApplicationCacheGroup::storageID):
788 Setter/getter for the application cache group storage ID.
790 * loader/appcache/ApplicationCacheResource.cpp:
791 (WebCore::ApplicationCacheResource::addType):
792 We can't add a new type if the resource has been saved to disk.
794 * loader/appcache/ApplicationCacheResource.h:
795 (WebCore::ApplicationCacheResource::setStorageID):
796 (WebCore::ApplicationCacheResource::storageID):
797 Setter/getter for the application cache resource storage ID.
799 * loader/appcache/ApplicationCacheStorage.cpp:
800 * loader/appcache/ApplicationCacheStorage.cpp:
801 (WebCore::ApplicationCacheStorage::executeSQLCommand):
802 New method for executing SQL and logging any errors.
804 (WebCore::ApplicationCacheStorage::openDatabase):
807 (WebCore::ApplicationCacheStorage::executeStatement):
808 New method for executing an SQL statement and logging any errors.
810 (WebCore::ApplicationCacheStorage::store):
811 New methods for storing a cache group, cache and cache resource to the store.
813 (WebCore::ApplicationCacheStorage::storeNewestCache):
814 New method which stores the newest cache and updates the newest cache field in the cache group.
816 * loader/appcache/ApplicationCacheStorage.h:
819 * platform/sql/SQLiteStatement.h:
820 (WebCore::SQLiteStatement::query):
821 Getter for the SQL query.
823 2008-05-06 Brady Eidson <beidson@apple.com>
825 Reviewed by Darin Adler
827 Preparation for upcoming work making LocalStorage persistent.
829 Writing persistent values for LocalStorage will take place on a background thread.
830 Here is that background thread, as well as most of the hooks that will be utilized to
831 make the whole song and dance work.
833 The thread itself is very simple and MessageQueue based. LocalStorageTasks are what
834 mark the work that needs to be done and come in 5 flavors: Import and Sync a LocalStorage set,
835 Import and Sync a LocalStorageArea, and terminate the thread.
837 This patch accomplished 2 things:
839 1 - Each PageGroup has its own LocalStorage set. Upon its creation its LocalStorageThread is
842 2 - At application shutdown, each thread is synchronously terminated.
844 What happens between steps 1 and 2 will come later.
848 * WebCore.vcproj/WebCore.vcproj:
849 * WebCore.xcodeproj/project.pbxproj:
850 * WebCoreSources.bkl:
852 * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
853 method is meant to be called from.
854 (WebCore::LocalStorage::LocalStorage):
855 (WebCore::LocalStorage::storageArea):
856 (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
857 (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
858 (WebCore::LocalStorage::close): Synchronously terminate the thread.
859 * storage/LocalStorage.h:
861 * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
862 method is meant to be called from.
863 (WebCore::LocalStorageArea::itemChanged):
864 (WebCore::LocalStorageArea::itemRemoved):
865 (WebCore::LocalStorageArea::areaCleared):
866 (WebCore::LocalStorageArea::dispatchStorageEvent):
867 (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this
868 LocalStorageArea to prime the page before the items are needed
869 (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
870 * storage/LocalStorageArea.h:
872 * storage/LocalStorageTask.cpp: Added.
873 (WebCore::LocalStorageTask::LocalStorageTask):
874 (WebCore::LocalStorageTask::performTask):
875 * storage/LocalStorageTask.h: Added.
876 (WebCore::LocalStorageTask::):
877 (WebCore::LocalStorageTask::createImport):
878 (WebCore::LocalStorageTask::createSync):
879 (WebCore::LocalStorageTask::createTerminate):
881 * storage/LocalStorageThread.cpp: Added.
882 (WebCore::LocalStorageThread::create):
883 (WebCore::LocalStorageThread::LocalStorageThread):
884 (WebCore::LocalStorageThread::start):
885 (WebCore::LocalStorageThread::localStorageThreadStart):
886 (WebCore::LocalStorageThread::localStorageThread):
887 (WebCore::LocalStorageThread::scheduleImport):
888 (WebCore::LocalStorageThread::scheduleSync):
889 (WebCore::LocalStorageThread::terminate):
890 (WebCore::LocalStorageThread::performTerminate):
891 * storage/LocalStorageThread.h: Added.
893 2008-05-06 Anders Carlsson <andersca@apple.com>
897 Add NPN_PopUpContextMenu.
900 * plugins/npfunctions.h:
902 2008-05-06 Alp Toker <alp@nuanti.com>
904 GTK+ build fix. Add file from r32911 to the build.
908 2008-05-06 Gwenole Beauchesne <gbeauchesne@splitted-desktop.org>
910 Reviewed by Alp Toker.
912 http://bugs.webkit.org/show_bug.cgi?id=18906
913 [GTK] Fix varargs terminator in g_build_filename()
915 * plugins/gtk/PluginDatabaseGtk.cpp:
916 (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
919 2008-05-06 Kevin McCullough <kmccullough@apple.com>
921 - Forgot to update localized Strings from previous checkin.
923 * English.lproj/localizedStrings.js:
925 2008-05-06 Chris Fleizach <cfleizach@apple.com>
927 Reviewed by Beth Dakin
929 <rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
930 <rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
931 <rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9
933 Initial prep work to support accessibility objects that do not have renderers.
935 * WebCore.xcodeproj/project.pbxproj:
936 * page/AXObjectCache.cpp:
937 (WebCore::AXObjectCache::~AXObjectCache):
938 (WebCore::AXObjectCache::get):
939 (WebCore::AXObjectCache::remove):
940 (WebCore::AXObjectCache::getAXID):
941 (WebCore::AXObjectCache::removeAXID):
942 (WebCore::AXObjectCache::childrenChanged):
943 * page/AXObjectCache.h:
944 (WebCore::AXObjectCache::isIDinUse):
945 * page/AccessibilityObject.cpp:
946 (WebCore::AccessibilityObject::AccessibilityObject):
947 (WebCore::AccessibilityObject::create):
948 (WebCore::AccessibilityObject::detach):
949 (WebCore::AccessibilityObject::firstChild):
950 (WebCore::AccessibilityObject::lastChild):
951 (WebCore::AccessibilityObject::previousSibling):
952 (WebCore::AccessibilityObject::nextSibling):
953 (WebCore::AccessibilityObject::parentObject):
954 (WebCore::AccessibilityObject::layoutCount):
955 (WebCore::AccessibilityObject::text):
956 (WebCore::AccessibilityObject::helpText):
957 (WebCore::AccessibilityObject::textUnderElement):
958 (WebCore::AccessibilityObject::isARIAInput):
959 (WebCore::AccessibilityObject::isARIAControl):
960 (WebCore::AccessibilityObject::intValue):
961 (WebCore::AccessibilityObject::stringValue):
962 (WebCore::AccessibilityObject::title):
963 (WebCore::AccessibilityObject::accessibilityDescription):
964 (WebCore::AccessibilityObject::boundingBoxRect):
965 (WebCore::AccessibilityObject::elementRect):
966 (WebCore::AccessibilityObject::size):
967 (WebCore::AccessibilityObject::linkedUIElement):
968 (WebCore::AccessibilityObject::textLength):
969 (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
970 (WebCore::AccessibilityObject::selectedText):
971 (WebCore::AccessibilityObject::accessKey):
972 (WebCore::AccessibilityObject::selection):
973 (WebCore::AccessibilityObject::selectedTextRange):
974 (WebCore::AccessibilityObject::setSelectedTextRange):
975 (WebCore::AccessibilityObject::url):
976 (WebCore::AccessibilityObject::setFocused):
977 (WebCore::AccessibilityObject::setValue):
978 (WebCore::AccessibilityObject::axObjectCache):
979 (WebCore::AccessibilityObject::getDocumentLinks):
980 (WebCore::AccessibilityObject::widget):
981 (WebCore::AccessibilityObject::widgetForAttachmentView):
982 (WebCore::AccessibilityObject::anchorElement):
983 (WebCore::AccessibilityObject::actionElement):
984 (WebCore::AccessibilityObject::visiblePositionRange):
985 (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
986 (WebCore::AccessibilityObject::visiblePositionForIndex):
987 (WebCore::AccessibilityObject::indexForVisiblePosition):
988 (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
989 (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
990 (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
991 (WebCore::AccessibilityObject::textMarkerForIndex):
992 (WebCore::AccessibilityObject::rangeForTextMarkerRange):
993 (WebCore::AccessibilityObject::indexForTextMarker):
994 (WebCore::AccessibilityObject::doAXRangeForLine):
995 (WebCore::AccessibilityObject::doAXRangeForPosition):
996 (WebCore::AccessibilityObject::doAXRangeForIndex):
997 (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
998 (WebCore::AccessibilityObject::doAXStringForRange):
999 (WebCore::AccessibilityObject::doAXBoundsForRange):
1000 (WebCore::AccessibilityObject::doAccessibilityHitTest):
1001 (WebCore::AccessibilityObject::focusedUIElement):
1002 (WebCore::AccessibilityObject::observableObject):
1003 (WebCore::AccessibilityObject::roleValue):
1004 (WebCore::AccessibilityObject::ariaRoleAttribute):
1005 (WebCore::AccessibilityObject::childrenChanged):
1006 (WebCore::AccessibilityObject::addChildren):
1007 (WebCore::AccessibilityObject::removeAXObjectID):
1008 * page/AccessibilityObject.h:
1010 (WebCore::PlainTextRange::PlainTextRange):
1011 (WebCore::PlainTextRange::isNull):
1012 (WebCore::AccessibilityObject::isAccessibilityRenderObject):
1013 (WebCore::AccessibilityObject::isAnchor):
1014 (WebCore::AccessibilityObject::isAttachment):
1015 (WebCore::AccessibilityObject::isHeading):
1016 (WebCore::AccessibilityObject::isLink):
1017 (WebCore::AccessibilityObject::isImage):
1018 (WebCore::AccessibilityObject::isNativeImage):
1019 (WebCore::AccessibilityObject::isImageButton):
1020 (WebCore::AccessibilityObject::isPasswordField):
1021 (WebCore::AccessibilityObject::isTextControl):
1022 (WebCore::AccessibilityObject::isNativeTextControl):
1023 (WebCore::AccessibilityObject::isWebArea):
1024 (WebCore::AccessibilityObject::isCheckboxOrRadio):
1025 (WebCore::AccessibilityObject::isChecked):
1026 (WebCore::AccessibilityObject::isEnabled):
1027 (WebCore::AccessibilityObject::isSelected):
1028 (WebCore::AccessibilityObject::isFocused):
1029 (WebCore::AccessibilityObject::isHovered):
1030 (WebCore::AccessibilityObject::isIndeterminate):
1031 (WebCore::AccessibilityObject::isLoaded):
1032 (WebCore::AccessibilityObject::isMultiSelect):
1033 (WebCore::AccessibilityObject::isOffScreen):
1034 (WebCore::AccessibilityObject::isPressed):
1035 (WebCore::AccessibilityObject::isReadOnly):
1036 (WebCore::AccessibilityObject::isVisited):
1037 (WebCore::AccessibilityObject::canSetFocusAttribute):
1038 (WebCore::AccessibilityObject::canSetTextRangeAttributes):
1039 (WebCore::AccessibilityObject::canSetValueAttribute):
1040 (WebCore::AccessibilityObject::hasIntValue):
1041 (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
1042 (WebCore::AccessibilityObject::accessibilityIsIgnored):
1043 (WebCore::AccessibilityObject::children):
1044 (WebCore::AccessibilityObject::hasChildren):
1045 (WebCore::AccessibilityObject::setWrapper):
1046 (WebCore::AccessibilityObject::isDetached):
1047 * page/AccessibilityRenderObject.cpp: Added.
1048 (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1049 (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
1050 (WebCore::AccessibilityRenderObject::create):
1051 (WebCore::AccessibilityRenderObject::detach):
1052 (WebCore::AccessibilityRenderObject::firstChild):
1053 (WebCore::AccessibilityRenderObject::lastChild):
1054 (WebCore::AccessibilityRenderObject::previousSibling):
1055 (WebCore::AccessibilityRenderObject::nextSibling):
1056 (WebCore::AccessibilityRenderObject::parentObject):
1057 (WebCore::AccessibilityRenderObject::isWebArea):
1058 (WebCore::AccessibilityRenderObject::isImageButton):
1059 (WebCore::AccessibilityRenderObject::isAnchor):
1060 (WebCore::AccessibilityRenderObject::isNativeTextControl):
1061 (WebCore::AccessibilityRenderObject::isTextControl):
1062 (WebCore::AccessibilityRenderObject::isNativeImage):
1063 (WebCore::AccessibilityRenderObject::isImage):
1064 (WebCore::AccessibilityRenderObject::isAttachment):
1065 (WebCore::AccessibilityRenderObject::isPasswordField):
1066 (WebCore::AccessibilityRenderObject::isCheckboxOrRadio):
1067 (WebCore::AccessibilityRenderObject::isPressed):
1068 (WebCore::AccessibilityRenderObject::isIndeterminate):
1069 (WebCore::AccessibilityRenderObject::isChecked):
1070 (WebCore::AccessibilityRenderObject::isHovered):
1071 (WebCore::AccessibilityRenderObject::isMultiSelect):
1072 (WebCore::AccessibilityRenderObject::isReadOnly):
1073 (WebCore::AccessibilityRenderObject::isOffScreen):
1074 (WebCore::AccessibilityRenderObject::headingLevel):
1075 (WebCore::AccessibilityRenderObject::isHeading):
1076 (WebCore::AccessibilityRenderObject::isLink):
1077 (WebCore::AccessibilityRenderObject::anchorElement):
1078 (WebCore::AccessibilityRenderObject::actionElement):
1079 (WebCore::AccessibilityRenderObject::mouseButtonListener):
1080 (WebCore::AccessibilityRenderObject::helpText):
1081 (WebCore::AccessibilityRenderObject::textUnderElement):
1082 (WebCore::AccessibilityRenderObject::hasIntValue):
1083 (WebCore::AccessibilityRenderObject::intValue):
1084 (WebCore::AccessibilityRenderObject::stringValue):
1085 (WebCore::labelForElement):
1086 (WebCore::AccessibilityRenderObject::title):
1087 (WebCore::AccessibilityRenderObject::accessibilityDescription):
1088 (WebCore::AccessibilityRenderObject::boundingBoxRect):
1089 (WebCore::AccessibilityRenderObject::elementRect):
1090 (WebCore::AccessibilityRenderObject::size):
1091 (WebCore::AccessibilityRenderObject::linkedUIElement):
1092 (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
1093 (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1094 (WebCore::AccessibilityRenderObject::isLoaded):
1095 (WebCore::AccessibilityRenderObject::layoutCount):
1096 (WebCore::AccessibilityRenderObject::text):
1097 (WebCore::AccessibilityRenderObject::textLength):
1098 (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
1099 (WebCore::AccessibilityRenderObject::selectedText):
1100 (WebCore::AccessibilityRenderObject::accessKey):
1101 (WebCore::AccessibilityRenderObject::selection):
1102 (WebCore::AccessibilityRenderObject::selectedTextRange):
1103 (WebCore::AccessibilityRenderObject::setSelectedTextRange):
1104 (WebCore::AccessibilityRenderObject::url):
1105 (WebCore::AccessibilityRenderObject::isVisited):
1106 (WebCore::AccessibilityRenderObject::isSelected):
1107 (WebCore::AccessibilityRenderObject::isFocused):
1108 (WebCore::AccessibilityRenderObject::setFocused):
1109 (WebCore::AccessibilityRenderObject::setValue):
1110 (WebCore::AccessibilityRenderObject::isEnabled):
1111 (WebCore::AccessibilityRenderObject::topRenderer):
1112 (WebCore::AccessibilityRenderObject::widget):
1113 (WebCore::AccessibilityRenderObject::axObjectCache):
1114 (WebCore::AccessibilityRenderObject::getDocumentLinks):
1115 (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
1116 (WebCore::AccessibilityRenderObject::frameViewIfRenderView):
1117 (WebCore::AccessibilityRenderObject::visiblePositionRange):
1118 (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
1119 (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
1120 (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
1121 (WebCore::AccessibilityRenderObject::doAXBoundsForTextMarkerRange):
1122 (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
1123 (WebCore::AccessibilityRenderObject::doAXTextMarkerForPosition):
1124 (WebCore::AccessibilityRenderObject::textMarkerForIndex):
1125 (WebCore::AccessibilityRenderObject::indexForTextMarker):
1126 (WebCore::AccessibilityRenderObject::doAXRangeForLine):
1127 (WebCore::AccessibilityRenderObject::doAXRangeForIndex):
1128 (WebCore::AccessibilityRenderObject::doAXStringForRange):
1129 (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
1130 (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1131 (WebCore::AccessibilityRenderObject::focusedUIElement):
1132 (WebCore::AccessibilityRenderObject::observableObject):
1133 (WebCore::createARIARoleMap):
1134 (WebCore::RoleEntry::):
1135 (WebCore::ariaRoleToWebCoreRole):
1136 (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
1137 (WebCore::AccessibilityRenderObject::roleValue):
1138 (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
1139 (WebCore::AccessibilityRenderObject::canSetValueAttribute):
1140 (WebCore::AccessibilityRenderObject::canSetTextRangeAttributes):
1141 (WebCore::AccessibilityRenderObject::childrenChanged):
1142 (WebCore::AccessibilityRenderObject::children):
1143 (WebCore::AccessibilityRenderObject::addChildren):
1144 (WebCore::AccessibilityRenderObject::removeAXObjectID):
1145 (WebCore::AccessibilityRenderObject::actionVerb):
1146 * page/AccessibilityRenderObject.h: Added.
1147 (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject):
1148 (WebCore::AccessibilityRenderObject::areaElement):
1149 (WebCore::AccessibilityRenderObject::setRenderer):
1150 (WebCore::AccessibilityRenderObject::renderer):
1151 (WebCore::AccessibilityRenderObject::setRenderObject):
1152 (WebCore::AccessibilityRenderObject::isDetached):
1153 * page/mac/AXObjectCacheMac.mm:
1154 (WebCore::AXObjectCache::detachWrapper):
1155 (WebCore::AXObjectCache::selectedChildrenChanged):
1156 (WebCore::AXObjectCache::postNotification):
1157 * page/mac/AccessibilityObjectWrapper.mm:
1158 (textMarkerForVisiblePosition):
1159 (CreateCGColorIfDifferent):
1160 (AXAttributeStringSetHeadingLevel):
1161 (AXLinkElementForNode):
1162 (AXAttributeStringSetElement):
1163 (AXAttributedStringAppendText):
1164 (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1165 (-[AccessibilityObjectWrapper documentFrameView:]):
1166 (-[AccessibilityObjectWrapper position]):
1168 (-[AccessibilityObjectWrapper roleDescription]):
1169 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1170 (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
1171 (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1172 (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
1173 (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
1174 (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
1175 (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1177 2008-05-06 Jonathan Haas <myrdred@gmail.com>
1179 Reviewed by Rob Buis.
1181 https://bugs.webkit.org/show_bug.cgi?id=18859\
1182 Prevented SVGRootInlineBox from static_casting a
1183 node to a class it doesn't inherit
1185 * rendering/SVGRootInlineBox.cpp:
1186 (WebCore::SVGRootInlineBox::buildTextChunks):
1188 2008-05-06 Brady Eidson <beidson@apple.com>
1190 Reviewed by Darin Adler
1192 Preparation for upcoming work making LocalStorage persistent.
1194 When the application terminates, all pending local storage writes need to be
1195 sync'ed out to disk.
1196 This works n combination with platform specific code in WebKit that calls it.
1200 * page/PageGroup.cpp:
1201 (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
1204 * storage/LocalStorage.cpp:
1205 (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
1206 local storage thread in the future.
1207 * storage/LocalStorage.h:
1209 2008-05-06 Brady Eidson <beidson@apple.com>
1211 Rubberstamped by David Kilzer
1213 * WebCore.base.exp: Sort this mess!
1215 2008-05-05 Mark Rowe <mrowe@apple.com>
1217 Reviewed by Dan Bernstein.
1219 Fix 60 crashes seen on the buildbots that were misreported as hangs.
1222 (WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
1223 (WebCore::Document::nodeWillBeRemoved): Ditto.
1224 (WebCore::Document::textInserted): Ditto.
1225 (WebCore::Document::textNodesMerged): Ditto.
1226 (WebCore::Document::textRemoved): Ditto.
1228 2008-05-05 Brady Eidson <beidson@apple.com>
1230 Reviewed by Mitz Pettel RTL
1232 Preparation for upcoming work making LocalStorage persistent.
1234 The other half of the StorageMap::importItem() addition.
1236 * storage/StorageArea.cpp:
1237 (WebCore::StorageArea::importItem):
1238 * storage/StorageArea.h:
1240 2008-05-05 Brady Eidson <beidson@apple.com>
1242 Reviewed by Mitz Pettel RTL
1244 Preparation for upcoming work making LocalStorage persistent.
1246 - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
1247 The Settings of the first Page define what persistent path the LocalStorage will use
1248 - Add a Frame argument for the LocalStorageArea request - this will allow a client object
1249 to be queried before the LocalStorageArea is established
1251 * page/DOMWindow.cpp:
1252 (WebCore::DOMWindow::localStorage):
1254 * page/PageGroup.cpp:
1255 (WebCore::PageGroup::addPage):
1256 (WebCore::PageGroup::localStorage):
1258 * storage/LocalStorage.cpp:
1259 (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument. Deep copy
1260 the path as it will be used from another thread.
1261 (WebCore::LocalStorage::storageArea):
1262 * storage/LocalStorage.h:
1263 (WebCore::LocalStorage::create):
1265 2008-05-05 Brady Eidson <beidson@apple.com>
1267 Reviewed by Mitz Pettel RTL
1269 Preparation for upcoming work making LocalStorage persistent.
1271 StorageMaps normally have copy-on-write semantics to help support SessionStorage.
1272 For LocalStorage, we never want this behavior. When we forcefully import items into
1273 a StorageMap from the LocalStorage background thread, this new import method will be used.
1275 * storage/StorageMap.cpp:
1276 (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
1277 about copy-on-write.
1278 * storage/StorageMap.h:
1280 2008-05-05 Kevin McCullough <kmccullough@apple.com>
1284 -<rdar://problem/5770054> JavaScript profiler (10928)
1285 -Begininings of a UI for the Profiler in the WebInspector.
1287 * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
1289 * page/inspector/DatabasesPanel.js: Changed the name of the Databae's
1290 results table to be more generic as it is now also used by the profiler.
1291 * page/inspector/Images/glossySelected.png: Added.
1292 * page/inspector/Images/profilesIcon.png: Added.
1293 * page/inspector/Images/treeUpTriangleBlack.png: Added.
1294 * page/inspector/Images/treeUpTriangleWhite.png: Added.
1295 * page/inspector/ProfileView.js: Added. Sets up the header of the table.
1296 * page/inspector/ProfilesPanel.js: Added.
1297 * page/inspector/ProfilesPanel.js: Added. Sets up the containers of the
1299 * page/inspector/inspector.css: Change database-result-table to be more
1300 generic as well as add the styles needed by the profiler.
1301 * page/inspector/inspector.html: Add profiler support.
1303 2008-05-05 Brady Eidson <beidson@apple.com>
1305 Change by Darin, reviewed by Brady
1307 Small efficiency improvement Darin just spotted
1309 * storage/StorageMap.cpp:
1310 (WebCore::StorageMap::setItem):
1312 2008-05-05 Antti Koivisto <antti@apple.com>
1316 Fix https://bugs.webkit.org/show_bug.cgi?id=18899
1317 Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
1319 * loader/loader.cpp:
1320 (WebCore::Loader::Loader):
1322 2008-05-05 Brady Eidson <beidson@apple.com>
1324 Reviewed by Sam Weinig
1326 Fix a bug in StorageMap iterator tracking where the iterator was not successfully
1327 invalidated at an appropriate time.
1329 * storage/StorageMap.cpp:
1330 (WebCore::StorageMap::setItem): ALWAYS invalidate it here
1332 2008-05-05 Justin Garcia <justin.garcia@apple.com>
1336 <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
1338 Disable Range mutation on document modifications in Tiger and Leopard Mail,
1339 since they do their own mutation which interferes with ours.
1343 (WebCore::Document::nodeChildrenChanged):
1344 (WebCore::Document::nodeWillBeRemoved):
1345 (WebCore::Document::textInserted):
1346 (WebCore::Document::textRemoved):
1347 (WebCore::Document::textNodesMerged):
1348 (WebCore::Document::textNodeSplit):
1349 * page/Settings.cpp:
1350 (WebCore::Settings::Settings):
1351 (WebCore::Settings::disableRangeMutationForOldAppleMail):
1353 (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
1355 2008-05-05 Sam Weinig <sam@webkit.org>
1357 Reviewed by Tim Hatcher.
1359 Make the Inspector's localizable strings file match the format used by Dashboard widgets.
1361 * English.lproj/InspectorLocalizedStrings.js: Removed.
1362 * English.lproj/localizedStrings.js: Added.
1363 * WebCore.vcproj/WebCore.vcproj:
1364 * WebCore.xcodeproj/project.pbxproj:
1365 * page/inspector/inspector.js:
1367 2008-05-05 Steve Falkenburg <sfalken@apple.com>
1369 Add support for default button appearance.
1370 Add WebCore setting for app chrome mode.
1372 Reviewed by Dave Hyatt.
1374 * css/CSSPrimitiveValueMappings.h:
1375 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1376 * css/CSSValueKeywords.in: Added default-button value keyword.
1377 * page/Settings.cpp:
1378 (WebCore::Settings::Settings):
1379 (WebCore::Settings::setApplicationChromeMode):
1381 (WebCore::Settings::inApplicationChromeMode):
1382 * rendering/RenderButton.cpp:
1383 (WebCore::RenderButton::RenderButton):
1384 (WebCore::RenderButton::setStyle):
1385 (WebCore::RenderButton::timerFired):
1386 * rendering/RenderButton.h:
1387 * rendering/RenderStyle.h:
1389 * rendering/RenderTheme.cpp:
1390 (WebCore::RenderTheme::adjustStyle):
1391 (WebCore::RenderTheme::paint):
1392 (WebCore::RenderTheme::paintBorderOnly):
1393 (WebCore::RenderTheme::paintDecorations):
1394 (WebCore::RenderTheme::isControlStyled):
1395 (WebCore::RenderTheme::isDefault):
1396 * rendering/RenderTheme.h:
1398 * rendering/RenderThemeSafari.cpp:
1399 (WebCore::RenderThemeSafari::determineState):
1400 (WebCore::RenderThemeSafari::adjustRepaintRect):
1401 (WebCore::RenderThemeSafari::adjustButtonStyle):
1402 * rendering/RenderThemeWin.cpp:
1403 (WebCore::RenderThemeWin::supportsFocus):
1405 2008-05-05 Alexey Proskuryakov <ap@webkit.org>
1409 https://bugs.webkit.org/show_bug.cgi?id=11947
1410 nbsps should be converted to entities in innerHTML
1412 https://bugs.webkit.org/show_bug.cgi?id=18769
1413 replacing with spaces using regexp creates inconsistent result
1415 Tests: fast/dom/innerHTML-nbsp.html
1416 fast/dom/innerHTML-escaping-attribute.html
1418 * editing/markup.cpp:
1419 (WebCore::appendAttributeValue):
1420 (WebCore::escapeContentText):
1421 (WebCore::appendEscapedContent):
1422 Added U+00a0/nbsp to the list of characters to escape.
1424 2008-05-05 David Hyatt <hyatt@apple.com>
1426 Fix for https://bugs.webkit.org/show_bug.cgi?id=18821. Fix some bugs in both get/PutImageData of <canvas>.
1430 New tests added in fast/canvas/
1432 * platform/graphics/cg/ImageBufferCG.cpp:
1433 (WebCore::ImageBuffer::getImageData):
1434 (WebCore::ImageBuffer::putImageData):
1436 2008-05-05 Dan Bernstein <mitz@apple.com>
1438 Reviewed by Dave Hyatt.
1440 - fix https://bugs.webkit.org/show_bug.cgi?id=18809
1441 Forms with block level generated content and absolutely positioned labels break inline layout (fixed on reflow)
1443 Test: fast/block/basic/adding-near-anonymous-block.html
1445 * rendering/RenderBlock.cpp:
1446 (WebCore::RenderBlock::addChildToFlow): When adding a floating or
1447 positioned object, if it follows an anonymous block, put it
1448 inside the anonymous block. When adding an inline, check if it comes
1449 after an anonymous block and put it in the anonymous block.
1451 2008-05-05 Antti Koivisto <antti@apple.com>
1455 Speculative fix for <rdar://problem/5906790>
1456 Crash in Loader::servePendingRequests() due to hash table being modified during iteration
1458 I don't know how to reproduce this. It would require the load to fail (or succeed)
1459 synchronously, something that should not usually happen.
1461 * loader/loader.cpp:
1462 (WebCore::Loader::Loader):
1463 (WebCore::Loader::load):
1464 (WebCore::Loader::servePendingRequests):
1465 (WebCore::Loader::cancelRequests):
1466 (WebCore::Loader::Host::Host):
1468 (WebCore::Loader::Host::name):
1470 2008-05-05 Ariya Hidayat <ariya.hidayat@trolltech.com>
1474 Disable SVG As Image support in the Qt port again, as it
1475 requires more work. Right now the chrome client is
1476 assumed to be a ChromeClientQt, which the SVG Image support
1481 2008-05-02 Antti Koivisto <antti@apple.com>
1485 Fix <rdar://problem/5840475>
1486 CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
1488 Non-block objects can have transforms so containingBlock() could end up returning null.
1489 RenderObject::container() needs to match.
1491 Test: fast/transforms/container-transform-crash.html
1493 * rendering/RenderObject.cpp:
1494 (WebCore::RenderObject::containingBlock):
1495 (WebCore::RenderObject::container):
1497 2008-05-04 Sam Weinig <sam@webkit.org>
1499 Roll out r32851. It broke tiger builds.
1501 * bindings/objc/DOMUtility.mm:
1502 (KJS::createDOMWrapper):
1503 (WebCore::createDOMWrapper):
1505 2008-05-04 Dan Bernstein <mitz@apple.com>
1507 Reviewed by Sam Weinig.
1509 - fix https://bugs.webkit.org/show_bug.cgi?id=18879
1510 <rdar://problem/5909481> Reproducible crash when removing a gradient
1512 Test: fast/gradients/crash-on-remove.html
1514 * css/CSSImageGeneratorValue.cpp:
1515 (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
1516 (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
1518 (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
1521 2008-05-03 Sam Weinig <sam@webkit.org>
1523 Reviewed by Mark Rowe.
1525 Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
1526 the WebCore namespace now that the required compilers don't freak out about
1529 * bindings/objc/DOMUtility.mm:
1530 (WebCore::createDOMWrapper):
1532 2008-05-03 Rob Buis <buis@kde.org>
1536 https://bugs.webkit.org/show_bug.cgi?id=18652
1537 onchange events don't seem to fire for input[type=range] controls.
1539 Fire changeEvent when clicking the slider outside the current
1542 * rendering/RenderSlider.cpp:
1543 (WebCore::RenderSlider::setValueForPosition):
1545 2008-05-03 Sam Weinig <sam@webkit.org>
1547 Reviewed by Mark Rowe.
1549 Remove unused enums from JSDOMWindowBase.
1551 * bindings/js/JSDOMWindowBase.h:
1552 (WebCore::JSDOMWindowBase::):
1554 2008-05-03 Sam Weinig <sam@webkit.org>
1558 * WebCore.xcodeproj/project.pbxproj:
1560 2008-05-03 Sam Weinig <sam@webkit.org>
1564 * bindings/js/kjs_events.cpp:
1565 (WebCore::JSAbstractEventListener::handleEvent):
1567 2008-05-03 Sam Weinig <sam@webkit.org>
1569 Rubber-stamped by Geoffrey Garen.
1571 Rename JSDOMWindowWrapper to JSDOMWindowShell.
1573 2008-05-01 Rob Buis <buis@kde.org>
1577 https://bugs.webkit.org/show_bug.cgi?id=18568
1578 background: currentColor fails
1580 Implement currentColor from CSS3 color module.
1582 Tests: fast/css/background-currentcolor.html
1584 * css/CSSParser.cpp:
1585 (WebCore::CSSParser::parseValue):
1586 (WebCore::CSSParser::parseBackgroundColor):
1587 * css/CSSStyleSelector.cpp:
1588 (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
1589 * css/CSSValueKeywords.in:
1590 * css/SVGCSSValueKeywords.in:
1592 2008-05-02 Anders Carlsson <andersca@apple.com>
1596 Turns out calling locationInWindow on keyboard events will not throw an exception,
1597 but the point returned is completely bogus, so remove coordinates from the keyboard event struct.
1602 2008-05-02 Benjamin Otte <otte@gnome.org>
1604 Reviewed by Alp Toker.
1606 http://bugs.webkit.org/show_bug.cgi?id=18856
1607 [GTK] variable initialization missing
1609 Not initializing the m_needsXEmbed variable could have very funny
1610 results. Most often those results would be crashes.
1612 * plugins/PluginView.cpp:
1613 (WebCore::PluginView::PluginView):
1615 2008-05-02 Jan Michael Alonzo <jmalonzo@unpluggable.com>
1619 https://bugs.webkit.org/show_bug.cgi?id=18811
1620 Enable dashboard and offline web apps in autotools
1624 2008-05-02 Anders Carlsson <andersca@apple.com>
1628 Name the event union so it will work in plain C.
1633 2008-05-02 Dan Bernstein <mitz@apple.com>
1635 Reviewed by John Sullivan.
1637 - render text shadows with zero offset, as the shadow can be seen behind
1638 the text if the text is translucent
1640 Test: fast/text/shadow-no-blur.html
1642 * platform/graphics/mac/FontMac.mm:
1643 (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the
1644 shadow offset. Since isEmpty() is also true for sizes that have one or
1645 more non-positive components, this also ensures that subpixel
1646 antialiasing of the text is maintained with shadows in all directions.
1647 (WebCore::Font::drawGlyphs): Ditto.
1648 * platform/graphics/win/FontCGWin.cpp:
1649 (WebCore::Font::drawGlyphs): Ditto.
1651 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1655 Build the Qt port with SVG Use and As Image support.
1659 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1663 Fixed potential crash on SVG animation (added more checks to the assert).
1665 * svg/SVGUseElement.cpp:
1666 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
1668 2008-05-02 Alexey Proskuryakov <ap@webkit.org>
1670 Rubber-stamped by John Sullivan.
1672 Fix a debug-only crash in layout tests.
1674 * loader/CachedResource.cpp:
1675 (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
1677 2008-05-02 Simon Hausmann <shausman@trolltech.com>
1679 Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
1681 * WebCore.pro: Don't use QT += phonon as it prepends the phonon
1682 includes to the include paths. Instead add it manually and make sure
1683 phonon comes last, to avoid the conflict of phonon's path.h with
1684 WebCore's Path.h on case-insensitive filesystems.
1686 2008-05-02 Simon Hausmann <hausmann@webkit.org>
1688 Fix the Qt build. Add ExecState where necessary.
1690 * bridge/qt/qt_class.cpp:
1691 (KJS::Bindings::QtClass::fallbackObject):
1692 * bridge/qt/qt_instance.cpp:
1693 (KJS::Bindings::QtRuntimeObjectImp::construct):
1694 (KJS::Bindings::QtInstance::getRuntimeObject):
1695 (KJS::Bindings::QtInstance::invokeDefaultMethod):
1696 (KJS::Bindings::QtInstance::defaultValue):
1697 (KJS::Bindings::QtInstance::stringValue):
1698 * bridge/qt/qt_instance.h:
1699 (KJS::Bindings::QtInstance::getObject):
1700 * bridge/qt/qt_runtime.cpp:
1701 (KJS::Bindings::convertValueToQVariant):
1702 (KJS::Bindings::convertQVariantToValue):
1703 (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
1704 (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
1705 (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
1706 (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
1707 (KJS::Bindings::QtConnectionObject::execute):
1708 * bridge/runtime.cpp:
1709 (KJS::Bindings::Instance::createRuntimeObject):
1711 2008-05-02 Simon Hausmann <shausman@trolltech.com>
1713 Fix the Qt/Win build.
1716 * platform/qt/TemporaryLinkStubs.cpp:
1717 (PluginDatabase::getPluginPathsInDirectories):
1718 (PluginDatabase::defaultPluginDirectories):
1719 (PluginDatabase::isPreferredPluginDirectory):
1720 (PluginView::setNPWindowRect):
1721 (PluginView::userAgent):
1722 (PluginView::invalidateRect):
1723 (PluginView::invalidateRegion):
1724 (PluginView::forceRedraw):
1725 (PluginView::setFocus):
1728 (PluginView::paint):
1729 (PluginView::setParent):
1730 (PluginView::attachToWindow):
1731 (PluginView::detachFromWindow):
1732 (PluginView::updateWindow):
1733 (PluginView::handleKeyboardEvent):
1734 (PluginView::handleMouseEvent):
1735 (PluginView::handlePostReadFile):
1736 (PluginView::getValue):
1737 * plugins/qt/PluginPackageQt.cpp:
1738 (WebCore::PluginPackage::load):
1740 2008-05-02 Alexey Proskuryakov <ap@webkit.org>
1742 Reviewed by Geoffrey Garen.
1744 https://bugs.webkit.org/show_bug.cgi?id=18826
1745 Make JavaScript heap per-thread
1747 This is mostly adaptation for JSC changes. The most prominent one is that JSObject
1748 allocator now takes ExecState, e.g. "new (exec) JSXMLHttpRequestConstructor(...)". It is
1749 OK to pass either the current or global one, whichever is faster to get hold of, as both
1750 have the same reference to a per-thread JS heap.
1752 * bindings/scripts/CodeGeneratorJS.pm: Pass ExecState to functions that now need it.
1753 JSDOMWindow, JSDOMWindowPrototype and JSDOMWindowWrapper are special, because they are
1754 constructed before any ExecState comes into existence, so they use Heap::threadHeap()
1755 directly for allocation.
1757 * bindings/js/JSDOMWindowWrapper.cpp:
1758 (WebCore::JSDOMWindowWrapper::operator new):
1759 * bindings/js/JSDOMWindowWrapper.h:
1760 Added a custom operator new to use per-thread heap when there's no ExecState around.
1762 * bindings/js/JSAudioConstructor.cpp:
1763 (WebCore::JSAudioConstructor::JSAudioConstructor):
1764 * bindings/js/JSCSSRuleCustom.cpp:
1766 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1767 (WebCore::JSCSSStyleDeclaration::nameGetter):
1768 * bindings/js/JSCSSValueCustom.cpp:
1770 * bindings/js/JSCanvasPixelArrayCustom.cpp:
1771 (WebCore::JSCanvasPixelArray::indexGetter):
1773 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
1775 * bindings/js/JSClipboardCustom.cpp:
1776 (WebCore::JSClipboard::types):
1777 (WebCore::JSClipboard::getData):
1778 * bindings/js/JSCustomXPathNSResolver.cpp:
1779 (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1780 * bindings/js/JSDOMApplicationCacheCustom.cpp:
1781 (WebCore::JSDOMApplicationCache::addEventListener):
1782 (WebCore::JSDOMApplicationCache::removeEventListener):
1783 (WebCore::JSDOMApplicationCache::setOnchecking):
1784 (WebCore::JSDOMApplicationCache::setOnerror):
1785 (WebCore::JSDOMApplicationCache::setOnnoupdate):
1786 (WebCore::JSDOMApplicationCache::setOndownloading):
1787 (WebCore::JSDOMApplicationCache::setOnprogress):
1788 (WebCore::JSDOMApplicationCache::setOnupdateready):
1789 (WebCore::JSDOMApplicationCache::setOncached):
1790 * bindings/js/JSDOMWindowBase.cpp:
1791 (WebCore::JSDOMWindowBase::JSDOMWindowBase):
1792 (WebCore::JSDOMWindowBase::getValueProperty):
1793 (WebCore::JSDOMWindowBase::setListener):
1794 (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
1795 (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
1796 (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
1797 (WebCore::windowProtoFuncAToB):
1798 (WebCore::windowProtoFuncBToA):
1799 (WebCore::windowProtoFuncSetTimeout):
1800 (WebCore::windowProtoFuncSetInterval):
1801 (WebCore::windowProtoFuncAddEventListener):
1802 * bindings/js/JSDOMWindowBase.h:
1803 * bindings/js/JSDocumentCustom.cpp:
1805 * bindings/js/JSEventCustom.cpp:
1807 * bindings/js/JSEventTargetBase.cpp:
1808 (WebCore::jsEventTargetAddEventListener):
1809 * bindings/js/JSEventTargetBase.h:
1810 (WebCore::JSEventTargetPrototype::self):
1811 * bindings/js/JSEventTargetNode.cpp:
1812 (WebCore::JSEventTargetNode::setListener):
1813 * bindings/js/JSHTMLCollectionCustom.cpp:
1814 (WebCore::getNamedItems):
1816 * bindings/js/JSHTMLElementWrapperFactory.cpp:
1817 (WebCore::createJSHTMLWrapper):
1818 * bindings/js/JSHTMLFormElementCustom.cpp:
1819 (WebCore::JSHTMLFormElement::nameGetter):
1820 * bindings/js/JSHTMLInputElementBase.cpp:
1821 (WebCore::JSHTMLInputElementBase::getValueProperty):
1822 * bindings/js/JSHTMLOptionElementConstructor.cpp:
1823 (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
1824 * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
1825 (WebCore::JSHTMLOptionsCollection::length):
1826 * bindings/js/JSInspectedObjectWrapper.cpp:
1827 (WebCore::JSInspectedObjectWrapper::wrap):
1828 * bindings/js/JSInspectorCallbackWrapper.cpp:
1829 (WebCore::JSInspectorCallbackWrapper::wrap):
1830 * bindings/js/JSLocationCustom.cpp:
1831 (WebCore::JSLocation::toString):
1832 * bindings/js/JSNamedNodesCollection.cpp:
1833 (WebCore::JSNamedNodesCollection::lengthGetter):
1834 * bindings/js/JSNavigatorCustom.cpp:
1835 (WebCore::JSNavigator::appVersion):
1836 * bindings/js/JSNodeCustom.cpp:
1838 * bindings/js/JSNodeFilterCustom.cpp:
1839 (WebCore::JSNodeFilter::acceptNode):
1840 * bindings/js/JSRGBColor.cpp:
1841 (WebCore::getJSRGBColor):
1842 * bindings/js/JSSQLResultSetRowListCustom.cpp:
1843 (WebCore::JSSQLResultSetRowList::item):
1844 * bindings/js/JSSVGElementWrapperFactory.cpp:
1845 (WebCore::createJSSVGWrapper):
1846 * bindings/js/JSSVGLazyEventListener.cpp:
1847 (WebCore::JSSVGLazyEventListener::eventParameterName):
1848 * bindings/js/JSStorageCustom.cpp:
1849 (WebCore::JSStorage::nameGetter):
1850 * bindings/js/JSStyleSheetCustom.cpp:
1852 * bindings/js/JSXMLHttpRequestConstructor.cpp:
1853 (WebCore::JSXMLHttpRequestConstructor::construct):
1854 * bindings/js/JSXMLHttpRequestCustom.cpp:
1855 (WebCore::JSXMLHttpRequest::setOnreadystatechange):
1856 (WebCore::JSXMLHttpRequest::setOnload):
1857 (WebCore::JSXMLHttpRequest::setOnprogress):
1858 (WebCore::JSXMLHttpRequest::getResponseHeader):
1859 (WebCore::JSXMLHttpRequest::addEventListener):
1860 (WebCore::JSXMLHttpRequest::removeEventListener):
1861 * bindings/js/JSXSLTProcessor.cpp:
1862 (WebCore::jsXSLTProcessorPrototypeFunctionGetParameter):
1863 (WebCore::JSXSLTProcessorConstructor::construct):
1864 * bindings/js/kjs_binding.cpp:
1865 (WebCore::jsStringOrNull):
1866 (WebCore::jsOwnedStringOrNull):
1867 (WebCore::jsStringOrUndefined):
1868 (WebCore::jsStringOrFalse):
1869 (WebCore::nonCachingStaticFunctionGetter):
1870 (WebCore::objectToStringFunctionGetter):
1871 * bindings/js/kjs_binding.h:
1872 (WebCore::DOMObject::DOMObject):
1873 (WebCore::cacheDOMObject):
1874 (WebCore::cacheSVGDOMObject):
1875 * bindings/js/kjs_events.cpp:
1876 (WebCore::JSLazyEventListener::eventParameterName):
1877 (WebCore::JSLazyEventListener::parseCode):
1878 * bindings/js/kjs_html.cpp:
1879 (WebCore::getRuntimeObject):
1880 * bridge/c/c_instance.cpp:
1881 (KJS::Bindings::CInstance::defaultValue):
1882 (KJS::Bindings::CInstance::stringValue):
1883 (KJS::Bindings::CInstance::numberValue):
1884 (KJS::Bindings::CInstance::valueOf):
1885 * bridge/c/c_instance.h:
1886 * bridge/c/c_utility.cpp:
1887 (KJS::Bindings::convertNPVariantToValue):
1888 * bridge/jni/jni_instance.cpp:
1889 (JavaInstance::stringValue):
1890 (JavaInstance::numberValue):
1891 (JavaInstance::invokeMethod):
1892 (JavaInstance::defaultValue):
1893 (JavaInstance::valueOf):
1894 * bridge/jni/jni_instance.h:
1895 * bridge/jni/jni_jsobject.h:
1896 * bridge/jni/jni_jsobject.mm:
1897 (JavaJSObject::call):
1898 (JavaJSObject::setMember):
1899 (JavaJSObject::setSlot):
1900 (JavaJSObject::convertJObjectToValue):
1901 (JavaJSObject::getListFromJArray):
1902 * bridge/jni/jni_objc.mm:
1903 (KJS::Bindings::dispatchJNICall):
1904 * bridge/jni/jni_runtime.cpp:
1905 (JavaArray::convertJObjectToArray):
1906 (JavaField::dispatchValueFromInstance):
1907 (JavaField::valueFromInstance):
1908 (JavaField::dispatchSetValueToInstance):
1909 (JavaArray::valueAt):
1910 * bridge/jni/jni_utility.h:
1911 * bridge/objc/objc_class.mm:
1912 (KJS::Bindings::ObjcClass::fallbackObject):
1913 * bridge/objc/objc_instance.h:
1914 * bridge/objc/objc_instance.mm:
1915 (ObjcInstance::defaultValue):
1916 (ObjcInstance::stringValue):
1917 (ObjcInstance::numberValue):
1918 (ObjcInstance::valueOf):
1919 * bridge/objc/objc_utility.h:
1920 * bridge/objc/objc_utility.mm:
1921 (KJS::Bindings::convertNSStringToString):
1922 (KJS::Bindings::convertObjcValueToValue):
1923 * bridge/runtime.cpp:
1924 (KJS::Bindings::Instance::createRuntimeObject):
1926 (KJS::Bindings::Instance::valueOf):
1927 * bridge/runtime_array.cpp:
1928 (RuntimeArray::lengthGetter):
1929 * bridge/runtime_method.cpp:
1930 (RuntimeMethod::lengthGetter):
1931 * bridge/runtime_object.cpp:
1932 (RuntimeObjectImp::RuntimeObjectImp):
1933 (RuntimeObjectImp::methodGetter):
1934 (RuntimeObjectImp::defaultValue):
1935 * xml/XMLHttpRequest.cpp:
1936 (WebCore::XMLHttpRequest::dropProtection):
1937 * bindings/js/GCController.cpp:
1938 (WebCore::GCController::gcTimerFired):
1939 (WebCore::GCController::garbageCollectNow):
1940 Adapted to JSC changes. Pass ExecState to functions that now need it. Removed
1941 collectOnMainThreadOnly, as this is the only way to collect now. Replaced calls to static
1942 Collector methods with calls to per-thread Heap ones.
1944 2008-05-02 Ariya Hidayat <ariya.hidayat@trolltech.com>
1948 Build the Qt port with SVG Animation support.
1952 2008-05-02 Simon Hausmann <hausmann@webkit.org>
1954 Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
1955 with different signatures.
1957 * plugins/npfunctions.h:
1959 2008-05-01 Robin Dunn <robin@alldunn.com>
1961 Reviewed by Kevin Ollivier.
1963 Explicitly set the pen style in wx port to keep pen style changes from
1964 affecting URL underline or text field drawing.
1966 https://bugs.webkit.org/show_bug.cgi?id=18775
1968 * platform/graphics/wx/GraphicsContextWx.cpp:
1969 (WebCore::GraphicsContext::fillRect):
1970 (WebCore::GraphicsContext::drawLineForText):
1971 * platform/wx/RenderThemeWx.cpp:
1972 (WebCore::RenderThemeWx::paintTextField):
1974 2008-05-01 Robin Dunn <robin@alldunn.com>
1976 Reviewed by Kevin Ollivier.
1978 Implement popup menu support for wx port.
1980 https://bugs.webkit.org/show_bug.cgi?id=18776
1982 * platform/PopupMenu.h:
1983 * platform/wx/PopupMenuWx.cpp: Added.
1984 (WebCore::PopupMenu::PopupMenu):
1985 (WebCore::PopupMenu::~PopupMenu):
1986 (WebCore::PopupMenu::show):
1987 (WebCore::PopupMenu::OnMenuItemSelected):
1988 (WebCore::PopupMenu::hide):
1989 (WebCore::PopupMenu::updateFromElement):
1990 (WebCore::PopupMenu::itemWritingDirectionIsNatural):
1991 * platform/wx/TemporaryLinkStubs.cpp:
1994 2008-05-01 Kevin Ollivier <kevino@theolliviers.com>
1996 Reviewed by Eric Seidel.
1998 Make sure we properly set the button for all mouse events,
1999 not just mouse down, set the click count to 0
2000 for non-click events, and finally set the timestamp.
2002 https://bugs.webkit.org/show_bug.cgi?id=18464
2004 * platform/wx/MouseEventWx.cpp:
2005 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2007 2008-05-01 Sam Weinig <sam@webkit.org>
2009 Reviewed by Mark Rowe (in his infinite wisdom).
2011 Auto-generate the JSXSLTProcessor binding.
2013 * DerivedSources.make:
2016 * WebCore.vcproj/WebCore.vcproj:
2017 * WebCore.xcodeproj/project.pbxproj:
2018 * WebCoreSources.bkl:
2019 * bindings/js/JSDOMWindowBase.cpp:
2020 (WebCore::JSDOMWindowBase::getValueProperty):
2021 * bindings/js/JSDOMWindowBase.h:
2022 (WebCore::JSDOMWindowBase::):
2023 * bindings/js/JSXSLTProcessor.cpp: Removed.
2024 * bindings/js/JSXSLTProcessor.h: Removed.
2025 * xml/XSLTProcessor.h:
2027 2008-05-01 Sam Weinig <sam@webkit.org>
2029 Reviewed by Geoffrey Garen.
2032 - https://bugs.webkit.org/show_bug.cgi?id=17249
2033 Incorrect lexical scope after navigation leads to UXSS
2034 <rdar://problem/5738497>
2036 - https://bugs.webkit.org/show_bug.cgi?id=16824
2037 Script authorization should follow lexical (not dynamic) scope
2038 <rdar://problem/5683032>
2040 This patch changes us to perform same-origin checks based on the lexical global object)
2041 rather than dynamic global object, which is now possible we don't re-use the window on
2042 navigations, but rather switch in a new one and re-use the outer shell. This is both
2043 more secure and conforms with the HTML5 specification. Now that all the checks are
2044 done based on the lexical global object, we can remove the SecurityOrigin::Reason
2045 concept, as it was only around to work around an ebay.com bug that required the check to
2048 An important thing to note is that we currently implement a stricter than necessary policy
2049 and perform the same-origin check based on the currently active global object to avoid leaking
2050 the document in cases when the target frame is navigated before access. This will be fixed in
2053 * bindings/js/JSDOMWindowBase.cpp:
2054 (WebCore::JSDOMWindowBase::allowsAccessFrom):
2055 (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
2056 (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
2057 (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
2058 (WebCore::JSDOMWindowBase::printErrorMessage):
2059 (WebCore::asJSDOMWindow):
2060 * bindings/js/JSDOMWindowBase.h:
2061 * html/CanvasRenderingContext2D.cpp:
2062 (WebCore::CanvasRenderingContext2D::checkOrigin):
2063 (WebCore::CanvasRenderingContext2D::createPattern):
2064 * loader/FrameLoader.cpp:
2065 (WebCore::FrameLoader::begin):
2066 (WebCore::FrameLoader::write):
2067 (WebCore::FrameLoader::setOpener):
2068 (WebCore::FrameLoader::shouldAllowNavigation):
2070 (WebCore::DOMWindow::setSecurityOrigin):
2071 (WebCore::DOMWindow::securityOrigin):
2072 (WebCore::DOMWindow::setURL):
2073 (WebCore::DOMWindow::url):
2074 * platform/SecurityOrigin.cpp:
2075 (WebCore::SecurityOrigin::canAccess):
2076 (WebCore::SecurityOrigin::isSecureTransitionTo):
2077 * platform/SecurityOrigin.h:
2079 2008-05-01 Anders Carlsson <andersca@apple.com>
2083 Enable 64-bit NPAPI plugins.
2085 * WebCore.xcodeproj/project.pbxproj:
2086 Don't remove NPAPI related symbols from the 64-bit .exp file.
2088 * bridge/npruntime.h:
2089 Remove now unnecessary #error.
2091 2008-05-01 Maciej Stachowiak <mjs@apple.com>
2093 Reviewed by Oliver (a while ago)
2095 - just a wee bit more bindings speedup
2097 Store the per-document Node --> JS wrapper cache in the document
2098 instead of an external hashtable.
2100 * bindings/js/kjs_binding.cpp:
2101 (WebCore::ScriptInterpreter::getDOMNodeForDocument):
2102 (WebCore::ScriptInterpreter::forgetDOMNodeForDocument):
2103 (WebCore::ScriptInterpreter::putDOMNodeForDocument):
2104 (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument):
2105 (WebCore::ScriptInterpreter::markDOMNodesForDocument):
2107 (WebCore::Document::wrapperCache):
2109 2008-05-01 Anders Carlsson <andersca@apple.com>
2113 Remove duplicate npfunctions.h header from WebKit.
2115 * WebCore.xcodeproj/project.pbxproj:
2116 Add npfunctions.h and set its role to private.
2118 * plugins/npfunctions.h:
2119 Merge Mac specific changes.
2121 2008-05-01 Sam Weinig <sam@webkit.org>
2123 Reviewed by Geoffrey Garen.
2125 Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
2128 * bindings/js/JSCustomVoidCallback.cpp:
2129 (WebCore::toVoidCallback):
2130 * bindings/js/JSCustomXPathNSResolver.cpp:
2131 (WebCore::JSCustomXPathNSResolver::create):
2132 * bindings/js/JSDOMApplicationCacheCustom.cpp:
2133 (WebCore::JSDOMApplicationCache::add):
2134 (WebCore::JSDOMApplicationCache::remove):
2135 * bindings/js/JSDOMWindowBase.cpp:
2136 (WebCore::allowPopUp):
2137 (WebCore::createWindow):
2138 (WebCore::windowProtoFuncOpen):
2139 (WebCore::asJSDOMWindow):
2140 * bindings/js/JSDOMWindowBase.h:
2141 * bindings/js/JSDOMWindowCustom.cpp:
2142 (WebCore::JSDOMWindow::setLocation):
2143 (WebCore::JSDOMWindow::postMessage):
2144 * bindings/js/JSDatabaseCustom.cpp:
2145 (WebCore::JSDatabase::changeVersion):
2146 (WebCore::JSDatabase::transaction):
2147 * bindings/js/JSDocumentCustom.cpp:
2148 (WebCore::JSDocument::setLocation):
2149 * bindings/js/JSLocationCustom.cpp:
2150 (WebCore::navigateIfAllowed):
2151 (WebCore::JSLocation::setHref):
2152 (WebCore::JSLocation::replace):
2153 (WebCore::JSLocation::reload):
2154 (WebCore::JSLocation::assign):
2155 * bindings/js/JSSQLTransactionCustom.cpp:
2156 (WebCore::JSSQLTransaction::executeSql):
2157 * bindings/js/JSXMLHttpRequestCustom.cpp:
2158 (WebCore::JSXMLHttpRequest::open):
2159 * page/JavaScriptDebugServer.cpp:
2162 2008-05-01 Anatoli Papirovski <apapirovski@mac.com>
2164 Reviewed by Dave Hyatt.
2166 - fix https://bugs.webkit.org/show_bug.cgi?id=18347
2167 Absolutely positioned image percentage width does not respect container's padding
2169 Test: fast/replaced/absolute-position-percentage-width.html
2171 * rendering/RenderBox.cpp:
2172 (WebCore::RenderBox::calcReplacedWidthUsing):
2174 2008-05-01 Dan Bernstein <mitz@apple.com>
2178 * platform/graphics/win/FontCGWin.cpp:
2179 (WebCore::Font::drawGlyphs):
2181 2008-05-01 Dan Bernstein <mitz@apple.com>
2183 Reviewed by Darin Adler.
2185 - make synthetic bold and synthetic italics work in GDI text
2186 - account for synthetic bold in complex text on Windows
2188 * platform/graphics/win/FontCGWin.cpp:
2189 (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates
2190 to fit italics. Added a skew transform for synthetic italics and a
2191 second paint pass for synthetic bold.
2192 * platform/graphics/win/SimpleFontDataWin.cpp:
2193 (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold
2195 * platform/graphics/win/UniscribeController.cpp:
2196 (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
2199 2008-05-01 Alp Toker <alp@nuanti.com>
2201 Qt/Win build fix attempt following plugin changes. Add missing return
2204 Also fixes some newly introduced coding style issues in the Qt port.
2206 * platform/qt/FileSystemQt.cpp:
2207 (WebCore::openTemporaryFile):
2208 (WebCore::closeFile):
2209 (WebCore::writeToFile):
2210 (WebCore::unloadModule):
2212 2008-05-01 Anders Carlsson <andersca@apple.com>
2216 Export methods needed to subclass Widget. (See r32770.)
2220 2008-05-01 Marc Ordinas i Llopis <marc.ordinasillopis@collabora.co.uk>
2222 Reviewed by Alp Toker.
2223 Qt parts OK'ed by Simon Hausmann.
2225 https://bugs.webkit.org/show_bug.cgi?id=14750
2226 Added support for NPAPI plugins on Gtk and Qt-x11 ports.
2228 * GNUmakefile.am: Added Gtk plugin files.
2229 * WebCore.pro: Added Qt plugins files, defined XP_UNIX and
2230 ENABLE_NETSCAPE_PLUGIN_API
2231 * bridge/npruntime_internal.h: Additional undefs that conflict
2233 * page/gtk/FrameGtk.cpp: Create js bindings for PluginView.
2234 (WebCore::Frame::createScriptInstanceForWidget):
2235 * page/qt/FrameQt.cpp: Create js bindings for PluginView.
2236 (WebCore::Frame::createScriptInstanceForWidget):
2237 (WebCore::Frame::clearPlatformScriptObjects):
2238 (WebCore::Frame::disconnectPlatformScriptObjects):
2239 * platform/FileSystem.h: Qt FileSystem implementation.
2240 * platform/Widget.h: Members to differentiate between Qt plugins and
2242 * platform/gtk/ScrollViewGtk.cpp:
2243 (WebCore::ScrollView::addChild): Set containing window before calling setParent.
2244 * platform/gtk/TemporaryLinkStubs.cpp: Removed implemented functions.
2245 (PluginView::invalidateRegion):
2246 * platform/qt/FileSystemQt.cpp: Implemented functions necessary for
2248 (WebCore::openTemporaryFile):
2249 (WebCore::closeFile):
2250 (WebCore::writeToFile):
2251 (WebCore::unloadModule): Delete module if unloaded.
2252 * platform/qt/TemporaryLinkStubs.cpp: Removed implemented functions.
2253 * platform/qt/WidgetQt.cpp: Differentiate between Qt plugins and
2255 (WebCore::WidgetPrivate::WidgetPrivate):
2256 (WebCore::Widget::isNPAPIPlugin):
2257 (WebCore::Widget::setIsNPAPIPlugin):
2258 * plugins/PluginPackage.cpp:
2259 (WebCore::PluginPackage::~PluginPackage): Unload the module before
2261 (WebCore::PluginPackage::compare): Moved here as it's platform
2263 * plugins/PluginView.cpp: Moved platform-independent functions here.
2264 (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
2266 (WebCore::PluginView::freeStringArray):
2267 (WebCore::startsWithBlankLine):
2268 (WebCore::locationAfterFirstBlankLine):
2270 (WebCore::capitalizeRFC822HeaderFieldName):
2271 (WebCore::parseRFC822HeaderFields):
2272 (WebCore::PluginView::handlePost):
2273 * plugins/PluginView.h: Moved platform-independent functions here.
2274 Added member to signal plugin needs XEmbed extension.
2275 * plugins/gtk/PluginDataGtk.cpp: Added.
2276 (WebCore::PluginData::initPlugins):
2277 (WebCore::PluginData::refresh):
2278 * plugins/gtk/PluginDatabaseGtk.cpp:
2279 (WebCore::PluginDatabase::defaultPluginDirectories):
2280 (WebCore::PluginDatabase::isPreferredPluginDirectory):
2281 * plugins/gtk/PluginPackageGtk.cpp: Added.
2282 (WebCore::PluginPackage::determineQuirks):
2283 (WebCore::PluginPackage::fetchInfo):
2284 (WebCore::PluginPackage::load):
2285 (WebCore::PluginPackage::hash):
2286 (WebCore::PluginPackage::equal):
2287 (WebCore::PluginPackage::compareFileVersion):
2288 * plugins/gtk/PluginViewGtk.cpp: Added.
2289 (WebCore::PluginView::updateWindow):
2290 (WebCore::PluginView::setFocus):
2291 (WebCore::PluginView::show):
2292 (WebCore::PluginView::hide):
2293 (WebCore::PluginView::paint):
2294 (WebCore::PluginView::handleKeyboardEvent):
2295 (WebCore::PluginView::handleMouseEvent):
2296 (WebCore::PluginView::setParent):
2297 (WebCore::PluginView::setNPWindowRect):
2298 (WebCore::PluginView::attachToWindow):
2299 (WebCore::PluginView::detachFromWindow):
2300 (WebCore::PluginView::stop):
2301 (WebCore::PluginView::userAgent):
2302 (WebCore::PluginView::handlePostReadFile):
2303 (WebCore::PluginView::getValue):
2304 (WebCore::PluginView::invalidateRect):
2305 (WebCore::PluginView::forceRedraw):
2306 (WebCore::PluginView::~PluginView):
2307 (WebCore::plug_removed_cb): Added callback to handle plug removal.
2308 (WebCore::PluginView::init):
2309 * plugins/gtk/xembed.h: Added.
2310 * plugins/npapi.cpp:
2311 (NPN_GetValue): Return error if no view present.
2312 * plugins/qt/PluginDataQt.cpp:
2313 (WebCore::PluginData::initPlugins):
2314 (WebCore::PluginData::refresh):
2315 * plugins/qt/PluginDatabaseQt.cpp: Added.
2316 (WebCore::PluginDatabase::getPluginPathsInDirectories):
2317 (WebCore::addQtWebKitPluginDirectories):
2318 (WebCore::addMozillaPluginDirectories):
2319 (WebCore::PluginDatabase::defaultPluginDirectories):
2320 (WebCore::PluginDatabase::isPreferredPluginDirectory):
2321 * plugins/qt/PluginPackageQt.cpp: Added.
2322 (WebCore::PluginPackage::determineQuirks):
2323 (WebCore::PluginPackage::fetchInfo):
2324 (WebCore::PluginPackage::load):
2325 (WebCore::PluginPackage::hash):
2326 (WebCore::PluginPackage::equal):
2327 (WebCore::PluginPackage::compareFileVersion):
2328 * plugins/qt/PluginViewQt.cpp: Added.
2329 (WebCore::PluginView::updateWindow):
2330 (WebCore::PluginView::setFocus):
2331 (WebCore::PluginView::show):
2332 (WebCore::PluginView::hide):
2333 (WebCore::PluginView::paint):
2334 (WebCore::PluginView::handleKeyboardEvent):
2335 (WebCore::PluginView::handleMouseEvent):
2336 (WebCore::PluginView::setParent):
2337 (WebCore::PluginView::setNPWindowRect):
2338 (WebCore::PluginView::attachToWindow):
2339 (WebCore::PluginView::detachFromWindow):
2340 (WebCore::PluginView::stop):
2341 (WebCore::PluginView::userAgent):
2342 (WebCore::PluginView::handlePostReadFile):
2343 (WebCore::PluginView::getValue):
2344 (WebCore::PluginView::invalidateRect):
2345 (WebCore::PluginView::invalidateRegion):
2346 (WebCore::PluginView::forceRedraw):
2347 (WebCore::PluginView::~PluginView):
2348 (WebCore::PluginView::init):
2349 * plugins/win/PluginPackageWin.cpp: Moved platform-independent code
2350 to plugins/PluginPackage.cpp
2351 * plugins/win/PluginViewWin.cpp: Moved platform-independent code to
2352 plugins/PluginView.cpp
2353 (WebCore::PluginView::stop):
2354 (WebCore::PluginView::handlePostReadFile):
2355 (WebCore::PluginView::getValue): Moved this function to each platform.
2357 2008-05-01 Sam Weinig <sam@webkit.org>
2361 * ForwardingHeaders/wtf/StrHash.h: Added.
2363 2008-05-01 Anders Carlsson <andersca@apple.com>
2367 Move management of cache groups to ApplicationCacheStorage. Also,
2368 application caches now start out with a null group and will have their group set
2369 when the cache has finished loading.
2371 * loader/appcache/ApplicationCache.cpp:
2372 (WebCore::ApplicationCache::ApplicationCache):
2373 Initialize m_group to 0.
2375 (WebCore::ApplicationCache::~ApplicationCache):
2376 Null check the group.
2378 (WebCore::ApplicationCache::setGroup):
2379 New method for setting the group.
2381 * loader/appcache/ApplicationCache.h:
2382 (WebCore::ApplicationCache::create):
2383 Remove the group argument.
2385 * loader/appcache/ApplicationCacheGroup.cpp:
2386 (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
2387 Let the storage know that the cache group has been destroyed.
2389 (WebCore::ApplicationCacheGroup::cacheForMainRequest):
2390 Call into the storage.
2392 (WebCore::ApplicationCacheGroup::selectCache):
2393 Call into the storage.
2395 (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
2396 When there are no document loaders associated with the cache group,
2397 set the newest cache to 0.
2399 (WebCore::ApplicationCacheGroup::cacheDestroyed):
2400 Delete the group if there are no associated caches.
2402 (WebCore::ApplicationCacheGroup::setNewestCache):
2403 New method that will set the newest cache and associate the group with the cache.
2405 (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
2406 Call setNewestCache instead.
2408 * loader/appcache/ApplicationCacheStorage.cpp:
2409 (WebCore::urlHostHash):
2410 Move host hash method here.
2412 (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
2413 New method that finds a cache group with a given manifest URL or creates a new one.
2415 (WebCore::ApplicationCacheStorage::cacheGroupForURL):
2416 New method that returns a cache group for a given URL.
2418 (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
2419 When the cache group has been destroyed, remove it from the hash map.
2421 * loader/appcache/ApplicationCacheStorage.h:
2424 2008-05-01 Dan Winship <danw@gnome.org>
2426 Reviewed by Alp Toker.
2428 http://bugs.webkit.org/show_bug.cgi?id=18490
2429 Add mostly-working file: support and mostly-broken ftp: support to
2432 * platform/network/soup/ResourceHandleSoup.cpp (start): after
2433 doing basic checks, delegate to one of three submethods
2434 (startData): handles data: URLs
2435 (startHttp): handles http: and https: URLs, via libsoup
2436 (startGio, etc): handles file: and ftp: URLs, via gio. Lots of
2437 FIXMEs detailing the parts that don't fully work yet.
2439 * platform/network/ResourceHandle.h:
2440 * platform/network/ResourceHandleInternal.h: add new member
2441 variables for gio-based loading
2443 2008-05-01 Alp Toker <alp@nuanti.com>
2445 Rubber-stamped by Anders.
2447 GTK+ build fix for changes in r32752. Use int32, not int32_t types in
2450 Additional fix to use same signedness in npapi.h and Mac for the
2455 2008-04-30 Anders Carlsson <andersca@apple.com>
2459 Add new Cocoa event model type declarations.
2463 2008-04-30 Beth Dakin <bdakin@apple.com>
2465 Reviewed by Sam Weinig.
2467 This patch does three things:
2468 1. Adds support for the "img" ARIA role
2469 2. Switches over to a HashMap for converting ARIA role attributes
2470 to WebCore's AccessibilityRole type.
2471 3. Fixes a crash in the new ARIA code that I ran into while
2472 browsing with VoiceOver enabled.
2474 * page/AccessibilityObject.cpp:
2475 (WebCore::AccessibilityObject::headingLevel): This is the crash
2476 fix. Make sure the node's renderer is not null before looking up
2477 its corresponding AccessibilityObject in the cache.
2478 (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for
2480 (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to
2482 (WebCore::RoleEntry::): Same.
2483 (WebCore::ariaRoleToWebCoreRole): Same.
2484 (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
2486 2008-04-30 Rob Buis <buis@kde.org>
2488 Reviewed by Nikolas.
2490 https://bugs.webkit.org/show_bug.cgi?id=16447
2491 onload called too many times for <svg:image>
2492 https://bugs.webkit.org/show_bug.cgi?id=12282
2493 SVG wastes time in malloc to send loadEvents to non-existent listeners
2495 Postpone load event dispatching for image when externalResourcesRequired
2496 is true, delaying parents but not siblings, and make sure the load event
2497 is sent once for image in all cases.
2499 * svg/SVGElement.cpp:
2500 (WebCore::hasLoadListener):
2501 (WebCore::SVGElement::sendSVGLoadEventIfPossible):
2502 * svg/SVGImageElement.cpp:
2503 (WebCore::SVGImageElement::haveLoadedRequiredResources):
2504 * svg/SVGImageLoader.cpp:
2505 (WebCore::SVGImageLoader::dispatchLoadEvent):
2507 2008-04-30 David Hyatt <hyatt@apple.com>
2509 Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts. This
2510 won't typically crash release builds because of arena recycling.
2512 Reviewed by Dan Bernstein
2514 * rendering/RenderLayer.cpp:
2515 (WebCore::RenderLayer::~RenderLayer):
2516 Make sure to remove the reflection's child layer from its parent.
2518 * rendering/RenderMedia.cpp:
2519 (WebCore::RenderMedia::~RenderMedia):
2520 (WebCore::RenderMedia::destroy):
2521 (WebCore::RenderMedia::removeChild):
2522 * rendering/RenderMedia.h:
2523 Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more
2524 like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia
2527 2008-04-30 Rémi Zara <remi_zara@mac.com>
2529 Reviewed by Dave Hyatt.
2531 fix https://bugs.webkit.org/show_bug.cgi?id=18618
2532 <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
2534 * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
2535 (WebCore::patternCallback): flip the y axis when drawing the tile
2537 2008-04-30 Timothy Hatcher <timothy@apple.com>
2539 Fixes an undefined type exception that fires when adding a resource to the inspector
2540 that has a MIME type warning.
2542 Reviewed by Adam Roben.
2544 * page/inspector/Resource.js:
2545 (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
2546 WebInspector.consolePanel.
2547 (WebInspector.Resource.prototype._checkWarning): Ditto.
2549 2008-04-30 Timothy Hatcher <timothy@apple.com>
2551 Fixes the bug where the selected resource would be deselected after
2552 changing the sort order in the Resources panel.
2554 Reviewed by Dan Bernstein.
2556 * page/inspector/ResourcesPanel.js:
2557 (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
2558 Rememebr if the tree element that we are sorting was selected, so
2559 the selection can be restored after it is re-inserted. The onSelect
2560 is suppressed since we don't need to show the resource again.
2562 2008-04-29 Timothy Hatcher <timothy@apple.com>
2564 Fixes the regression where error bubbles in source views always show
2565 "undefined" for the content because the message property on
2566 ConsoleMessage was removed. Adds support for a plain text formated
2567 message that is stored in the message proeprty.
2569 Reviewed by Adam Roben.
2571 * page/inspector/Console.js:
2572 (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
2574 (WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
2575 about needing to honor it if the textContent of the output doesn't make sense.
2576 (WebInspector.Console.prototype._formatvalue): Ditto.
2577 (WebInspector.Console.prototype._formatstring): Ditto.
2578 (WebInspector.Console.prototype._formatregexp): Ditto.
2579 (WebInspector.Console.prototype._formatarray): Ditto.
2580 (WebInspector.Console.prototype._formatnode): Ditto.
2581 (WebInspector.Console.prototype._formatobject): Ditto.
2582 (WebInspector.Console.prototype._formaterror): Ditto.
2583 (WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the
2584 textContnet of the result and assign to the message proeprty. This property is
2585 referenced from the SourceView.
2586 (WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the
2587 result element as a local and return it, instead of using formatedMessage directly.
2589 2008-04-30 Timothy Hatcher <timothy@apple.com>
2591 Adds a helper function to convert a JSValueRef to a String.
2593 Reviewed by Adam Roben.
2595 * page/InspectorController.cpp:
2596 (WebCore::toString): Converts a JSValueRef to a String.
2597 (WebCore::search): Use toString.
2598 (WebCore::InspectorController::handleException): Ditto.
2600 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2604 Build the Qt port with SVG Foreign Object support.
2608 2008-04-30 Simon Hausmann <hausmann@webkit.org>
2612 Fix null pointer deference triggered by
2613 LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
2615 * platform/network/qt/ResourceHandleQt.cpp:
2616 (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
2618 2008-04-29 David Hyatt <hyatt@apple.com>
2620 Improve the performance of masks by adding code to set more precise clips on the transparency layers
2621 used to paint the content under the mask, and then also avoid creating transparency layers for the masks
2622 themselves in common cases.
2624 Reviewed by Dan Bernstein
2626 * platform/graphics/GraphicsContext.cpp:
2627 (WebCore::GraphicsContext::drawTiledImage):
2628 Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece
2631 * rendering/InlineFlowBox.cpp:
2632 (WebCore::InlineFlowBox::paintFillLayers):
2633 (WebCore::InlineFlowBox::paintFillLayer):
2634 (WebCore::InlineFlowBox::paintMask):
2635 Optimize to only push a transparency layer for the mask if multiple images are combining. Add a new
2636 composite operator argument for use when painting fill layers to do direct destination-in compositing while
2640 * rendering/InlineFlowBox.h:
2641 * rendering/RenderBox.cpp:
2642 (WebCore::RenderBox::paintMask):
2643 (WebCore::RenderBox::paintMaskImages):
2644 Optimize to only push a transparency layer for the mask if multiple images are combining.
2646 (WebCore::RenderBox::maskClipRect):
2647 A new method that attempts to compute a precise clip rect for the mask images.
2649 (WebCore::RenderBox::paintFillLayers):
2650 (WebCore::RenderBox::paintFillLayer):
2651 (WebCore::RenderBox::paintFillLayerExtended):
2652 * rendering/RenderBox.h:
2653 Added the composite operator argument to the paintFillLayer methods.
2655 * rendering/RenderFieldset.cpp:
2656 (WebCore::RenderFieldset::paintMask):
2657 Call the new base class paintMaskImages method for optimized mask painting.
2659 * rendering/RenderLayer.cpp:
2660 (WebCore::transparencyClipBox):
2661 Fix a coordinate space issue with transparencyClipBox when masks were used. The border box was in the
2662 wrong coordinate space. Moved the code into the layer's boundingBox() method instead.
2664 (WebCore::RenderLayer::paintLayer):
2665 Removed the code that always pushed a transparency layer before painting masks.
2667 (WebCore::RenderLayer::boundingBox):
2668 Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
2670 * rendering/RenderObject.cpp:
2671 (WebCore::RenderObject::paintNinePieceImage):
2672 Added a composite operator argument for direct destination-in painting of nine piece images.
2674 * rendering/RenderObject.h:
2675 (WebCore::RenderObject::maskClipRect):
2676 (WebCore::RenderObject::paintFillLayerExtended):
2677 Base class stubs for RenderBox-implemented methods.
2679 * rendering/RenderTable.cpp:
2680 (WebCore::RenderTable::paintMask):
2681 * rendering/RenderTableCell.cpp:
2682 (WebCore::RenderTableCell::paintMask):
2683 Modified to call the new paintMaskImages function.
2685 * svg/graphics/SVGImage.cpp:
2686 (WebCore::SVGImage::draw):
2687 SVG images now respect composite modes by pushing a transparency layer when the composite mode
2688 is anything other than source-over.
2690 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2692 Rubber-stamped by Rob Buis.
2694 Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
2696 * svg/SVGUseElement.cpp:
2697 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2699 2008-04-30 Ariya Hidayat <ariya.hidayat@trolltech.com>
2701 Rubber-stamped by Rob Buis.
2703 Fixed compile, due to API change in XMLSerializer
2705 * svg/SVGUseElement.cpp:
2706 (WebCore::SVGUseElement::buildPendingResource):
2708 2008-04-30 Rob Buis <buis@kde.org>
2712 https://bugs.webkit.org/show_bug.cgi?id=11939
2713 Quirksmode: Ignores media types in stylesheet PIs
2715 Transfer the xml-stylesheet pseudo attribute media to the css
2716 stylesheet created from the ProcessingInstruction.
2718 Tests: fast/css/xml-stylesheet-media-processing.xhtml
2720 * css/StyleSheet.cpp:
2721 (WebCore::StyleSheet::setMedia):
2723 * dom/ProcessingInstruction.cpp:
2724 (WebCore::ProcessingInstruction::checkStyleSheet):
2725 (WebCore::ProcessingInstruction::setCSSStyleSheet):
2726 * dom/ProcessingInstruction.h:
2728 2008-04-29 David D. Kilzer <ddkilzer@apple.com>
2730 BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
2732 On the buildbot, this is a fatal error:
2734 ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
2735 __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
2736 /usr/bin/libtool: internal link edit command failed
2738 Newer dev tools only produce a warning:
2740 ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
2742 * WebCore.base.exp: Remove hidden symbol from export list.
2744 2008-04-29 David Kilzer <ddkilzer@apple.com>
2746 Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
2748 * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
2750 2008-04-29 David Kilzer <ddkilzer@apple.com>
2752 BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
2754 * DerivedSources.make: Removed duplication of targets for
2755 generating CSSPropertyNames.h and CSSValueKeywords.h.
2756 * GNUmakefile.am: Ditto. Added support for ENABLE_DASHBOARD_SUPPORT.
2757 * WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT.
2758 Made both SVG and non-SVG variables of GENERATOR 6-A use new
2759 DASHBOARDSUPPORTCSSPROPERTIES variable.
2761 2008-04-29 Ada Chan <adachan@apple.com>
2763 Added missing return.
2765 * platform/win/COMPtr.h:
2768 2008-04-29 Alp Toker <alp@nuanti.com>
2770 GTK+ build fix attempt following breakage in r32700 which
2771 conditionalised dashboard support.
2775 2008-04-29 Adam Roben <aroben@apple.com>
2777 Restore the beloved COMPtr::operator&
2779 * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
2780 constructor and isHashTableDeletedValue and hashTableDeletedValue
2782 (WTF::): Changed constructDeletedValue to play nicely with
2785 2008-04-29 Adam Roben <aroben@apple.com>
2787 Fix assertion on launch on Windows
2789 * platform/graphics/win/FontPlatformData.h: Pass
2790 WTF::HashTableDeletedValue to the m_font constructor instead of a
2791 bogus -1 value. This is needed because m_font is a RefPtr.
2793 2008-04-29 Greg Bolsinga <bolsinga@apple.com>
2797 Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
2799 * DerivedSources.make:
2800 * WebCore.DashboardSupport.exp: Added.
2802 * WebCore.xcodeproj/project.pbxproj:
2803 * bindings/js/JSDOMWindowCustom.cpp:
2804 (WebCore::JSDOMWindow::setLocation):
2805 * css/CSSComputedStyleDeclaration.cpp:
2807 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2808 * css/CSSParser.cpp:
2809 (WebCore::CSSParser::parseValue):
2810 * css/CSSPrimitiveValue.cpp:
2811 (WebCore::CSSPrimitiveValue::cleanup):
2812 (WebCore::CSSPrimitiveValue::cssText):
2813 * css/CSSPropertyNames.in:
2814 * css/CSSStyleSelector.cpp:
2815 (WebCore::CSSStyleSelector::applyProperty):
2816 * css/DashboardRegion.h:
2817 * css/DashboardSupportCSSPropertyNames.in: Added.
2818 * dom/DOMImplementation.cpp:
2819 (WebCore::DOMImplementation::createDocument):
2821 (WebCore::Document::Document):
2822 (WebCore::Document::importNode):
2824 * html/CanvasRenderingContext2D.cpp:
2825 (WebCore::CanvasRenderingContext2D::fill):
2826 (WebCore::CanvasRenderingContext2D::stroke):
2827 (WebCore::CanvasRenderingContext2D::clip):
2828 * html/CanvasRenderingContext2D.h:
2829 * html/HTMLCanvasElement.cpp:
2830 * html/HTMLCanvasElement.h:
2832 * page/ChromeClient.h:
2834 (WebCore::Frame::paint):
2836 * page/FrameView.cpp:
2837 (WebCore::FrameView::layout):
2839 * page/Settings.cpp:
2840 (WebCore::Settings::Settings):
2842 * page/mac/EventHandlerMac.mm:
2843 (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
2844 * page/mac/FrameMac.mm:
2845 * page/mac/WebDashboardRegion.h:
2846 * page/mac/WebDashboardRegion.m:
2847 * rendering/RenderLayer.cpp:
2848 (WebCore::RenderLayer::scrollToOffset):
2849 (WebCore::RenderLayer::setHasHorizontalScrollbar):
2850 (WebCore::RenderLayer::setHasVerticalScrollbar):
2851 (WebCore::RenderLayer::updateScrollInfoAfterLayout):
2852 * rendering/RenderObject.cpp:
2853 (WebCore::RenderObject::setStyle):
2854 * rendering/RenderObject.h:
2855 * rendering/RenderStyle.cpp:
2856 (WebCore::StyleRareNonInheritedData::operator==):
2857 (WebCore::RenderStyle::diff):
2858 * rendering/RenderStyle.h:
2859 * xml/XMLHttpRequest.cpp:
2860 (WebCore::XMLHttpRequest::send):
2861 (WebCore::XMLHttpRequest::setRequestHeader):
2863 2008-04-29 Adam Roben <aroben@apple.com>
2867 This removes COMPtr::operator&, which didn't jive with HashTable. It
2868 is replaced by COMPtr::adoptionPointer.
2870 Discussed with Darin Adler and Anders Carlsson.
2872 * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
2874 2008-04-29 David Hyatt <hyatt@apple.com>
2876 Implement the new box-reflect property in CSS. This property enables real-time reflections on
2877 objects (yes you can reflect <video>!).
2879 Reviewed by Dan Bernstein
2881 Test cases added in fast/reflections/
2885 * WebCore.xcodeproj/project.pbxproj:
2886 * WebCoreSources.bkl:
2887 * css/CSSComputedStyleDeclaration.cpp:
2889 (WebCore::valueForReflection):
2890 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2891 * css/CSSParser.cpp:
2892 (WebCore::CSSParser::parseValue):
2893 (WebCore::CSSParser::parseReflect):
2894 (WebCore::BorderImageParseContext::commitBorderImage):
2895 (WebCore::CSSParser::parseBorderImage):
2896 (WebCore::parseGradientColorStop):
2897 (WebCore::CSSParser::parseTransform):
2899 * css/CSSPropertyNames.in:
2900 * css/CSSReflectValue.cpp: Added.
2901 (WebCore::CSSReflectValue::cssText):
2902 * css/CSSReflectValue.h: Added.
2904 (WebCore::CSSReflectValue::CSSReflectValue):
2905 (WebCore::CSSReflectValue::direction):
2906 (WebCore::CSSReflectValue::offset):
2907 (WebCore::CSSReflectValue::mask):
2908 (WebCore::CSSReflectValue::setDirection):
2909 (WebCore::CSSReflectValue::setOffset):
2910 (WebCore::CSSReflectValue::setMask):
2911 * css/CSSStyleSelector.cpp:
2912 (WebCore::CSSStyleSelector::adjustRenderStyle):
2913 (WebCore::CSSStyleSelector::applyProperty):
2914 (WebCore::CSSStyleSelector::mapNinePieceImage):
2915 * css/CSSStyleSelector.h:
2916 * rendering/InlineFlowBox.cpp:
2917 (WebCore::InlineFlowBox::placeBoxesVertically):
2918 (WebCore::InlineFlowBox::paintMask):
2919 * rendering/Length.h:
2920 (WebCore::Length::calcFloatValue):
2921 * rendering/RenderBlock.cpp:
2922 (WebCore::RenderBlock::overflowHeight):
2923 (WebCore::RenderBlock::overflowWidth):
2924 (WebCore::RenderBlock::overflowLeft):
2925 (WebCore::RenderBlock::overflowTop):
2926 (WebCore::RenderBlock::overflowRect):
2927 (WebCore::RenderBlock::layoutBlock):
2928 * rendering/RenderBox.cpp:
2929 (WebCore::RenderBox::setStyle):
2930 (WebCore::RenderBox::paintMask):
2931 (WebCore::RenderBox::imageChanged):
2932 (WebCore::RenderBox::computeAbsoluteRepaintRect):
2933 * rendering/RenderFlexibleBox.cpp:
2934 (WebCore::RenderFlexibleBox::layoutBlock):
2935 * rendering/RenderLayer.cpp:
2936 (WebCore::RenderLayer::RenderLayer):
2937 (WebCore::RenderLayer::~RenderLayer):
2938 (WebCore::RenderLayer::updateLayerPositions):
2939 (WebCore::RenderLayer::enclosingPositionedAncestor):
2940 (WebCore::RenderLayer::enclosingTransformedAncestor):
2941 (WebCore::RenderLayer::isTransparent):
2942 (WebCore::transparencyClipBox):
2943 (WebCore::RenderLayer::operator delete):
2944 (WebCore::RenderLayer::destroy):
2945 (WebCore::RenderLayer::removeOnlyThisLayer):
2946 (WebCore::RenderLayer::insertOnlyThisLayer):
2947 (WebCore::RenderLayer::paintLayer):
2948 (WebCore::RenderLayer::updateZOrderLists):
2949 (WebCore::RenderLayer::updateOverflowList):
2950 (WebCore::RenderLayer::collectLayers):
2951 (WebCore::RenderLayer::shouldBeOverflowOnly):
2952 (WebCore::RenderLayer::styleChanged):
2953 (WebCore::RenderLayer::reflectionLayer):
2954 (WebCore::RenderLayer::createReflection):
2955 (WebCore::RenderLayer::updateReflectionStyle):
2956 * rendering/RenderLayer.h:
2957 (WebCore::RenderLayer::hasReflection):
2958 (WebCore::RenderLayer::reflection):
2959 (WebCore::RenderLayer::paintingInsideReflection):
2960 * rendering/RenderObject.cpp:
2961 (WebCore::RenderObject::RenderObject):
2962 (WebCore::RenderObject::requiresLayer):
2963 (WebCore::RenderObject::setStyle):
2964 (WebCore::RenderObject::updateImage):
2965 (WebCore::RenderObject::reflectionBox):
2966 (WebCore::RenderObject::reflectionOffset):
2967 * rendering/RenderObject.h:
2968 (WebCore::RenderObject::hasTransform):
2969 (WebCore::RenderObject::setHasReflection):
2970 (WebCore::RenderObject::hasReflection):
2971 * rendering/RenderReplica.cpp: Added.
2972 (WebCore::RenderReplica::RenderReplica):
2973 (WebCore::RenderReplica::~RenderReplica):
2974 (WebCore::RenderReplica::layout):
2975 (WebCore::RenderReplica::calcPrefWidths):
2976 (WebCore::RenderReplica::paint):
2977 * rendering/RenderReplica.h: Added.
2978 (WebCore::RenderReplica::renderName):
2979 (WebCore::RenderReplica::requiresLayer):
2980 * rendering/RenderStyle.cpp:
2981 (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2982 (WebCore::StyleRareNonInheritedData::operator==):
2983 (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
2984 (WebCore::RenderStyle::diff):
2985 (WebCore::RenderStyle::applyTransform):
2986 * rendering/RenderStyle.h:
2987 (WebCore::TranslateTransformOperation::apply):
2988 (WebCore::StyleReflection::StyleReflection):
2989 (WebCore::StyleReflection::operator==):
2990 (WebCore::StyleReflection::operator!=):
2991 (WebCore::StyleReflection::direction):
2992 (WebCore::StyleReflection::offset):
2993 (WebCore::StyleReflection::mask):
2994 (WebCore::StyleReflection::setDirection):
2995 (WebCore::StyleReflection::setOffset):
2996 (WebCore::StyleReflection::setMask):
2997 (WebCore::RenderStyle::boxReflect):
2998 (WebCore::RenderStyle::setBoxReflect):
2999 (WebCore::RenderStyle::initialBoxReflect):
3000 * rendering/RenderTable.cpp:
3001 (WebCore::RenderTable::layout):
3002 (WebCore::RenderTable::paintMask):
3003 * rendering/RenderTableCell.cpp:
3004 (WebCore::RenderTableCell::requiresLayer):
3005 (WebCore::RenderTableCell::paintMask):
3007 2008-04-29 Beth Dakin <bdakin@apple.com>
3011 Initial implementation of the following ARIA roles: button,
3012 checkbox, heading, link, radio, textbox.
3014 * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
3016 * page/AccessibilityObject.cpp:
3017 When an ARIA role is set, the role overrides whatever the actual
3018 element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
3019 (WebCore::AccessibilityObject::isWebArea):
3020 (WebCore::AccessibilityObject::isImageButton):
3021 (WebCore::AccessibilityObject::isAnchor):
3022 (WebCore::AccessibilityObject::isTextControl):
3023 (WebCore::AccessibilityObject::isImage):
3024 (WebCore::AccessibilityObject::isAttachment):
3025 (WebCore::AccessibilityObject::isPasswordField):
3026 (WebCore::AccessibilityObject::isCheckboxOrRadio):
3027 (WebCore::AccessibilityObject::isHeading):
3028 (WebCore::AccessibilityObject::isLink):
3030 Check for ARIA information:
3031 (WebCore::AccessibilityObject::headingLevel):
3032 (WebCore::AccessibilityObject::anchorElement):
3033 (WebCore::AccessibilityObject::actionElement):
3034 (WebCore::AccessibilityObject::hasIntValue):
3035 (WebCore::AccessibilityObject::intValue):
3036 (WebCore::AccessibilityObject::stringValue):
3037 (WebCore::AccessibilityObject::title):
3038 (WebCore::AccessibilityObject::accessibilityIsIgnored):
3039 (WebCore::AccessibilityObject::roleValue):
3041 There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
3042 (WebCore::AccessibilityObject::isNativeImage):
3043 (WebCore::AccessibilityObject::isNativeTextControl):
3044 (WebCore::isARIAInput):
3045 (WebCore::isARIAControl):
3047 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.
3048 (WebCore::AccessibilityObject::text): Still calls into
3049 RenderTextControl's text() for native text controls. Uses Element's
3050 innerText() for ARIA textboxes.
3051 (WebCore::AccessibilityObject::textLength): Call
3052 AccessibilityObject's text() instead of RenderTextControl's.
3053 (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
3054 (WebCore::AccessibilityObject::selectedText):
3055 (WebCore::AccessibilityObject::selectedTextRange):
3056 (WebCore::AccessibilityObject::selectionStart):
3057 (WebCore::AccessibilityObject::selectionEnd):
3058 (WebCore::AccessibilityObject::setSelectedTextRange):
3059 (WebCore::AccessibilityObject::setValue):
3060 (WebCore::AccessibilityObject::visiblePositionForIndex):
3061 (WebCore::AccessibilityObject::indexForVisiblePosition):
3062 (WebCore::AccessibilityObject::textMarkerRangeForRange):
3063 (WebCore::AccessibilityObject::textMarkerForIndex):
3064 (WebCore::AccessibilityObject::indexForTextMarker):
3065 (WebCore::AccessibilityObject::doAXRangeForLine):
3066 (WebCore::AccessibilityObject::doAXRangeForIndex):
3067 (WebCore::AccessibilityObject::doAXStringForRange):
3068 (WebCore::AccessibilityObject::doAXBoundsForRange):
3070 Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
3071 (WebCore::AccessibilityObject::ariaRoleAttribute):
3073 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.
3074 * page/AccessibilityObject.h:
3076 Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
3077 * page/mac/AccessibilityObjectWrapper.mm:
3078 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
3079 (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
3081 2008-04-29 Timothy Hatcher <timothy@apple.com>
3083 Make the exceptions that the InspectorController catches log the
3084 original file and line number, if present on the exception object.
3086 Reviewed by Adam Roben.
3088 * page/InspectorController.cpp:
3089 (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
3090 (WebCore::InspectorController::~InspectorController): Ditto.
3091 (WebCore::InspectorController::scriptObjectReady): Ditto.
3092 (WebCore::InspectorController::addScriptResource): Ditto.
3093 (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
3094 (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
3095 (WebCore::InspectorController::updateScriptResource): Ditto.
3096 (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
3097 (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
3098 (WebCore::InspectorController::handleException): Take a context. Pull the line
3099 and sourceURL properties off the exception if it is an object.
3100 * page/InspectorController.h: Change handleException to take a context.
3102 2008-04-29 Timothy Hatcher <timothy@apple.com>
3104 Fixes a regression where the Page's debugger would not be reattached
3105 when a new JSDOMWindow is created.
3107 Reviewed by Sam Weinig.
3109 * bindings/js/kjs_proxy.cpp:
3110 (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
3111 * history/CachedPage.cpp:
3112 (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
3113 contain a window, reattach the debugger to the new JSDOMWindow by calling
3114 proxy->attachDebugger. Also restore the setPageGroupIdentifier.
3116 2008-04-29 Anatoli Papirovski <apapirovski@mac.com>
3118 Reviewed by Darin Adler.
3120 Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
3121 Fixed RGB and RGBA parsing to ignore the declaration when the value is not
3122 "either three integer values or three percentage values."
3124 * css/CSSParser.cpp:
3125 (WebCore::CSSParser::parseColorParameters):
3127 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3131 Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
3133 Ben found this crash in the demo browser.
3135 In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
3137 case PolicyDownload:
3138 frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
3139 receivedError(interruptionForPolicyChangeError());
3141 We are in a policy check, the download() call will call setHtml, which will start loading
3142 the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
3143 which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
3144 will use the m_frame->loader() but it is gone. Do not call into receivedError and
3145 interruptionForPolicyChangeError if we are gone anyway...
3147 * loader/MainResourceLoader.cpp:
3148 (WebCore::MainResourceLoader::continueAfterContentPolicy):
3150 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3154 Rely on auto-boxing of C++ for the QCursor c'tor
3156 * platform/qt/CursorQt.cpp:
3158 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3162 Add the remaining cursors that defaulted to PointerCursor
3164 * Resources/WebKitResources.qrc:
3165 * platform/qt/CursorQt.cpp:
3166 (WebCore::verticalTextCursor):
3167 (WebCore::cellCursor):
3168 (WebCore::contextMenuCursor):
3169 (WebCore::copyCursor):
3170 (WebCore::progressCursor):
3171 (WebCore::aliasCursor):
3173 2008-04-29 Alice Liu <alice.liu@apple.com>
3175 Reviewed by Beth Dakin.
3177 Comply with HTML5 spec about parsing tabindex property according to
3178 integer parsing rules
3180 Test: fast/parser/tabindex-parsing.html
3182 * html/HTMLElement.cpp:
3183 (WebCore::HTMLElement::parseMappedAttribute):
3185 2008-04-29 Tor Arne Vestbø <tavestbo@trolltech.com>
3189 Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
3191 https://bugs.webkit.org/show_bug.cgi?id=18482
3193 We need to repaint scrollbars after a geometry change, and also make sure
3194 the computed clipping rect for the corners between scrollbars is propagated
3195 to the chrome client without beeing intersected by the visible content rect
3198 * platform/ScrollView.h:
3199 * platform/qt/ScrollViewQt.cpp:
3200 (WebCore::ScrollView::geometryChanged):
3201 (WebCore::ScrollView::suppressScrollbars):
3202 (WebCore::ScrollView::invalidateScrollbars):
3204 2008-04-29 Holger Hans Peter Freyther <zecke@selfish.org>
3208 Calling QWebView::setCursor will override the WebCore Cursor.
3209 Calling QWebView::setCursor will override the WebCore Cursor using
3210 QWidget::unsetCursor will revert to the WebCore Cursor.
3212 For detecting the unset we have to compare the shape of the
3213 cursor to the default arrow. Qt::WA_SetCursor can not be used
3214 as it is set unconditionally but conditionally removed.
3216 Calling QWidget::setCursor will immediately send the CursorChange
3217 event. We listen to this event to decide if we currently use a
3218 WebCore cursor, got a cursor from outside, or revert to the default.
3220 This should be race free and work reliable, the manual test for this
3221 is WebCore/manual-tests/cursor.html
3223 * platform/qt/WidgetQt.cpp:
3224 (WebCore::Widget::setCursor):
3226 2008-04-28 Dan Bernstein <mitz@apple.com>
3228 Reviewed by Maciej Stachowiak.
3230 - fix https://bugs.webkit.org/show_bug.cgi?id=18795
3231 REGRESSION (r32660): Text heavier with text-shadow
3233 * rendering/InlineTextBox.cpp:
3234 (WebCore::paintTextWithShadows): The loop was doing one extra pass
3235 without shadow even in cases where the last pass with a shadow was
3236 painting the text at the right position (rather than outside the clip).
3237 Fixed that. The only case where a separate pass without shadow is needed
3238 is when there is text-stroke, since in that case all shadow passes
3239 paint the text outside the clip.
3241 2008-04-28 Brady Eidson <beidson@apple.com>
3243 Reviewed by Sam Weinig
3245 Add Storage.clear(), per updates to HTML5
3247 Tests: storage/domstorage/localstorage/clear.html
3248 storage/domstorage/sessionstorage/clear.html
3250 * storage/LocalStorageArea.cpp:
3251 (WebCore::LocalStorageArea::areaCleared):
3252 * storage/LocalStorageArea.h:
3254 * storage/SessionStorageArea.cpp:
3255 (WebCore::SessionStorageArea::areaCleared):
3256 * storage/SessionStorageArea.h:
3258 * storage/Storage.cpp:
3259 (WebCore::Storage::clear):
3260 * storage/Storage.h:
3261 * storage/Storage.idl:
3263 * storage/StorageArea.cpp:
3264 (WebCore::StorageArea::internalClear):
3265 * storage/StorageArea.h:
3266 (WebCore::StorageArea::clear):
3268 2008-04-28 Adele Peterson <adele@apple.com>
3270 Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
3272 WebCore part of fix for <rdar://problem/3709505>
3273 Safari should have a way to upload bundles from the file upload control (as zip)
3275 * WebCore.base.exp: Added symbols.
3277 * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded.
3278 It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
3280 * loader/FrameLoader.cpp:
3281 (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts.
3282 (WebCore::FrameLoader::loadItem): ditto.
3283 * loader/ResourceLoader.cpp:
3284 (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to.
3285 (WebCore::ResourceLoader::didCancel): ditto.
3286 (WebCore::ResourceLoader::didFail): ditto.
3288 * platform/network/FormData.cpp:
3289 (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed.
3290 (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.
3291 (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement.
3292 (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to
3293 create any compressed files so the FormDataElements can store the paths.
3294 (WebCore::FormData::removeGeneratedFilesIfNeeded): Added. Removes generated files and their directories (if empty).
3295 * platform/network/FormData.h:
3296 (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated,
3297 and a string to hold the path of the generated file.
3299 * platform/network/mac/FormDataStreamMac.mm:
3300 (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file.
3301 (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
3303 * platform/FileSystem.h: Added directoryName.
3304 * platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
3305 * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
3306 * platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
3307 * platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
3308 * platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.
3310 Added new ChromeClient methods to give the application control over the file compression for uploading.
3312 (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
3313 (WebCore::ChromeClient::generateReplacementFile): ditto.
3314 * page/ChromeClient.h:
3316 2008-04-28 Anders Carlsson <andersca@apple.com>
3318 Reviewed by Sam, Mark, Adele and Darin.
3320 Add a (currently not called) method for opening the application cache database.
3323 * loader/appcache/ApplicationCacheStorage.cpp:
3324 (WebCore::ApplicationCacheStorage::setCacheDirectory):
3325 (WebCore::ApplicationCacheStorage::openDatabase):
3326 * loader/appcache/ApplicationCacheStorage.h:
3328 2008-04-28 Alice Liu <alice.liu@apple.com>
3332 Fix <rdar://problem/4911289> Add tabindex property to all children
3333 of HTMLElement (7138)
3334 http://bugs.webkit.org/show_bug.cgi?id=7138
3336 Test: fast/events/tabindex-focus-blur-all.html
3338 * WebCore.xcodeproj/project.pbxproj:
3339 * bindings/objc/DOMPrivate.h:
3340 -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
3343 * bindings/objc/PublicDOMInterfaces.h:
3344 -Moving focus, blur, tabindex to HTMLElement from its descendants.
3347 (WebCore::Node::Node):
3348 (WebCore::Node::isFocusable):
3349 (WebCore::Node::isKeyboardFocusable):
3350 -The concept of being focusable now needs to account for tabindex
3354 -Need to use a bit to keep track of whether tabindex was explicitly set
3355 to 0 or was just initialized to 0.
3356 (WebCore::Node::tabIndex):
3357 -Make this virtual so that Anchors and GenericFormElements can determine
3358 tabindex without accounting for focusability
3359 (WebCore::Node::setTabIndexExplicitly):
3360 -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide
3361 behind and/or be confused for HTMLElement::setTabIndex
3363 * html/HTMLAnchorElement.cpp:
3364 * html/HTMLAnchorElement.h:
3365 (WebCore::HTMLAnchorElement::tabIndex):
3366 * html/HTMLGenericFormElement.cpp:
3367 * html/HTMLGenericFormElement.h:
3368 (WebCore::HTMLGenericFormElement::tabIndex):
3369 -Anchors and form elements are normally focusable, and need to avert the
3370 check for focusability in HTMLElement::tabIndex
3371 because tabIndex could be queried before a first layout happens.
3373 * html/HTMLElement.cpp:
3374 (WebCore::HTMLElement::parseMappedAttribute):
3375 -Function Node::setTabIndex changed to Node::setTabIndexExplicitly
3376 (WebCore::HTMLElement::isFocusable):
3377 -The concept of being focusable now needs to account for tabindex
3379 (WebCore::HTMLElement::tabIndex):
3380 -HTML5 specifies that querying tabindex for elements that aren't
3381 focusable shall return -1
3382 (WebCore::HTMLElement::setTabIndex):
3383 -New default implementation
3384 * html/HTMLElement.h:
3386 * html/HTMLLegendElement.cpp:
3387 (WebCore::HTMLLegendElement::focus):
3388 -Now with HTML5's enhanced specification of tabindex, legend elements
3389 themselves shall focus (if they should), and not the first form element
3390 they encapsulate. This matches Firefox behavior. HTMLLabelElements
3391 still forward focus to the encapsulated element. This also matches
3394 * html/HTMLAreaElement.cpp:
3395 (WebCore::HTMLAreaElement::isFocusable):
3396 * html/HTMLAreaElement.h:
3397 -HTMLAreaElement isn't subject to the same focusability requirements as
3398 its parent, HTMLAnchorElement. Default HTMLElement implementation is
3401 * html/HTMLFieldSetElement.cpp:
3402 (WebCore::HTMLFieldSetElement::isFocusable):
3403 * html/HTMLLegendElement.cpp:
3404 (WebCore::HTMLLegendElement::isFocusable):
3405 * html/HTMLOptGroupElement.cpp:
3406 (WebCore::HTMLOptGroupElement::isFocusable):
3407 * html/HTMLOptionElement.cpp:
3408 (WebCore::HTMLOptionElement::isFocusable):
3409 -These elements aren't subject to the same focusability requirements as
3410 their parent, HTMLGenericFormElement. Default HTMLElement
3411 implementation is desired.
3413 * html/HTMLAnchorElement.idl:
3414 * html/HTMLAreaElement.idl:
3415 * html/HTMLButtonElement.idl:
3416 * html/HTMLElement.idl:
3417 * html/HTMLInputElement.idl:
3418 * html/HTMLLabelElement.idl:
3419 * html/HTMLLegendElement.idl:
3420 * html/HTMLObjectElement.idl:
3421 * html/HTMLSelectElement.idl:
3422 * html/HTMLTextAreaElement.idl:
3423 -Moving tabindex attribute, focus and blur methods from descendants of
3424 HTMLElement to HTMLElement
3426 2008-04-28 Dan Bernstein <mitz@apple.com>
3428 Reviewed by Dave Hyatt.
3430 - support multiple box- and text-shadows
3432 Tests: fast/css/shadow-multiple.html
3433 fast/repaint/shadow-multiple-horizontal.html
3434 fast/repaint/shadow-multiple-strict-horizontal.html
3435 fast/repaint/shadow-multiple-strict-vertical.html
3436 fast/repaint/shadow-multiple-vertical.html
3438 * css/CSSComputedStyleDeclaration.cpp:
3439 (WebCore::valueForShadow): Changed to account for reversing the order
3440 of the shadow values in the ShadowData list.
3442 * css/CSSValueList.cpp:
3443 (WebCore::CSSValueList::prepend): Added.
3444 * css/CSSValueList.h:
3446 * rendering/InlineFlowBox.cpp:
3447 (WebCore::InlineFlowBox::placeBoxesHorizontally): Changed to account for
3448 all shadows in overflow calculation.
3449 (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
3450 (WebCore::InlineFlowBox::paint): Changed to account for all shadows
3451 when testing for intersection with the damage rect.
3452 (WebCore::InlineFlowBox::paintTextDecorations): Changed to paint all
3455 * rendering/InlineTextBox.cpp:
3456 (WebCore::paintTextWithShadows): Factored out from paint() and changed
3457 to paint all shadows.
3458 (WebCore::InlineTextBox::paint): Moved the text painting code out to
3459 paintTextWithShadows(). Changed to not paint shadows for markers and
3460 composition underlines and in "force black text" mode.
3461 (WebCore::InlineTextBox::paintSelection):
3462 (WebCore::InlineTextBox::paintCompositionBackground):
3463 (WebCore::InlineTextBox::paintDecoration): Changed to paint all shadows.
3464 * rendering/InlineTextBox.h: Changed some public methods to private
3467 * rendering/RenderBlock.cpp:
3468 (WebCore::RenderBlock::overflowHeight): Changed to account for all
3470 (WebCore::RenderBlock::overflowWidth): Ditto.
3471 (WebCore::RenderBlock::overflowLeft): Ditto.
3472 (WebCore::RenderBlock::overflowTop): Ditto.
3473 (WebCore::RenderBlock::overflowRect): Ditto.
3474 (WebCore::RenderBlock::layoutBlock): Ditto.
3476 * rendering/RenderFlexibleBox.cpp:
3477 (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
3479 * rendering/RenderLayer.cpp:
3480 (WebCore::RenderLayer::calculateRects): Ditto.
3482 * rendering/RenderObject.cpp:
3483 (WebCore::RenderObject::paintBoxShadow): Changed to paint all shadows.
3484 Changed to avoid clipping out the box if it has a fully opaque
3486 (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Changed to account
3488 (WebCore::RenderObject::selectionForegroundColor): Cleaned up.
3489 (WebCore::RenderObject::adjustRectForOutlineAndShadow): Changed to
3490 account for all shadows.
3492 * rendering/RenderReplaced.cpp:
3493 (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Ditto.
3495 * rendering/RenderStyle.cpp:
3496 (WebCore::RenderStyle::setTextShadow): Changed to prepend when adding
3497 so that the stacking order of shadows when painting will be "first o
3499 (WebCore::RenderStyle::setBoxShadow): Ditto.
3501 * rendering/RenderTable.cpp:
3502 (WebCore::RenderTable::layout): Changed to account for all shadows.
3504 2008-04-28 Adam Roben <aroben@apple.com>
3506 Fix some more Windows build errors in COMPtr
3508 * platform/win/COMPtr.h:
3509 (WTF::): Define DefaultHash<COMPtr<P> > by using PtrHash<COMPtr<P> >,
3510 which is just a copy of PtrHash<RefPtr<P> >.
3512 2008-04-28 Adam Roben <aroben@apple.com>
3514 Fix some Windows build errors in COMPtr
3516 * platform/win/COMPtr.h: Explicitly name the WTF namespace when using
3517 HashTableDeletedValueType.
3519 2008-04-28 Adam Roben <aroben@apple.com>
3521 Fix some Windows build errors in FontPlatfomrData
3523 * platform/graphics/win/FontPlatformData.h: Removed the Deleted
3524 constructor and replaced it with a HashTableDeletedValueType
3525 constructor. Also added isHashTableDeletedValue() and
3526 hashTableDeletedFontValue().
3528 2008-04-28 David Hyatt <hyatt@apple.com>
3530 https://bugs.webkit.org/show_bug.cgi?id=18780
3532 Canvas can't draw itself into its own buffer. Make sure the dirtying call comes after the image()
3533 has been accessed. Technically willDraw should be renamed to didDraw and all calls should be moved
3534 to after draws have occurred (since if the draw op itself wants to reference the image it shouldn't get
3535 a dirty copy either), but I'll take that up with olliej when he wakes up. :)
3537 Reviewed by Dan Bernstein
3539 Added fast/canvas/canvasDrawsIntoSelf.html
3541 * html/CanvasRenderingContext2D.cpp:
3542 (WebCore::CanvasRenderingContext2D::drawImage):
3544 2008-04-28 Alexey Proskuryakov <ap@webkit.org>
3546 Reviewed by Geoff Garen.
3548 <rdar://problem/5825192> Replace use of Gestalt with BSD sysctl
3550 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3551 (WebCore::MediaPlayerPrivate::isAvailable): There is no need to check QuickTime version post-Tiger,
3552 as it will never be below 7.3 again. This change may make library loading happen earlier in
3553 some cases, hopefully, that's not a big deal.
3555 2008-04-25 Alexey Proskuryakov <ap@webkit.org>
3559 Fix run-webkit-tests --threading
3560 and provisionally fix <https://bugs.webkit.org/show_bug.cgi?id=18661>
3561 Proxy server issue in Sunday's Nightly
3563 Adjusted for JavaScriptCore changes: added a new member to ClassInfo objects, turned
3564 ClassInfo::propHashTable into a function, made getPropertyAttributes() take an ExecState pointer.
3566 * bindings/js/JSAudioConstructor.cpp:
3568 * bindings/js/JSDOMWindowBase.cpp:
3570 * bindings/js/JSDOMWindowCustom.cpp:
3571 (WebCore::JSDOMWindow::customGetOwnPropertySlot):
3572 * bindings/js/JSDOMWindowWrapper.cpp:
3574 (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
3575 * bindings/js/JSDOMWindowWrapper.h:
3576 * bindings/js/JSEventTargetBase.h:
3577 (WebCore::JSEventTargetPrototype::classInfo):
3578 * bindings/js/JSHTMLInputElementBase.cpp:
3580 * bindings/js/JSHTMLOptionElementConstructor.cpp:
3582 * bindings/js/JSHistoryCustom.cpp: