49da4fb81f4389d572150b522a954f77951b113f
[WebKit-https.git] / WebCore / ChangeLog
1 2008-05-13  Timothy Hatcher  <timothy@apple.com>
2
3         Add Widget::isPluginView so the JavaScriptDebugServer can identify
4         plugins that need to be paused during debugging. This will be used
5         in a upcoming commit.
6
7         Reviewed by Kevin McCullough.
8
9         * platform/Widget.h: Add isPluginView. Return false.
10         * plugins/PluginView.h: Add isPluginView. Return true.
11
12 2008-05-13  Timothy Hatcher  <timothy@apple.com>
13
14         Adds an event loop abstraction to platform. This abstraction will be
15         used by the JavaScriptDebugServer to implement pausing.
16
17         Reviewed by Kevin McCullough.
18
19         * platform/EventLoop.h: Added.
20         (WebCore::EventLoop::EventLoop):
21         (WebCore::EventLoop::ended): Return m_ended.
22         * platform/mac/EventLoopMac.mm: Added.
23         (WebCore::EventLoop::cycle): Call nextEventMatchingMask and then sendEvent.
24         * platform/win/EventLoopWin.cpp: Added.
25         (WebCore::EventLoop::cycle): Call GetMessage, TranslateMessage and DispatchMessage.
26         * WebCore.xcodeproj/project.pbxproj: Add new files.
27         * WebCore.vcproj/WebCore.vcproj: Ditto.
28
29 2008-05-13  Timothy Hatcher  <timothy@apple.com>
30
31         Breaks out ObjectPropertiesSection from PropertiesSidebarPane
32         so it can be used by the Scripts panel's Scope Chain pane.
33
34         Rubber-stamped by Adam Roben.
35
36         * page/inspector/ObjectPropertiesSection.js: Added.
37         * page/inspector/PropertiesSidebarPane.js: Moved ObjectPropertiesSection
38         to ObjectPropertiesSection.js.
39         * WebCore.vcproj/WebCore.vcproj: Add the new file.
40         * page/inspector/WebKit.qrc: Ditto.
41         * page/inspector/inspector.html: Ditto.
42
43 2008-05-13  Timothy Hatcher  <timothy@apple.com>
44
45         Add a helper function to the Inspector's Array prototype
46         that will remove any identical values/objects from the array.
47
48         Reviewed by Kevin McCullough.
49
50         * page/inspector/utilities.js:
51         (Array.prototype.remove): Iterate over the array and strict
52         compare to the passed in value. If they match, splice that index
53         out of the array. If onlyFirst is true, return after the first splice.
54
55 2008-05-13  Timothy Hatcher  <timothy@apple.com>
56
57         Adds a JavaScriptCallFrame object and JavaScript binding with an IDL.
58         This object will expose the stack to the Inspector's debugger.
59
60         Reviewed by Adam Roben.
61
62         * DerivedSources.make: Add JavaScriptCallFrame.
63         * bindings/js/JSJavaScriptCallFrameCustom.cpp: Added.
64         (WebCore::JSJavaScriptCallFrame::evaluate): Calls impl evaluate and returns the result.
65         (WebCore::JSJavaScriptCallFrame::scopeChain): Makes an array of the ScopeChain.
66         * page/JavaScriptCallFrame.cpp: Added.
67         (WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
68         (WebCore::JavaScriptCallFrame::caller): Returns m_caller.
69         (WebCore::JavaScriptCallFrame::functionName): Returns the function
70         name from the ExecState if this is not global code or anonymous.
71         (WebCore::JavaScriptCallFrame::evaluate): Evaluates a script string
72         in the scope of the call frame.
73         * page/JavaScriptCallFrame.h: Added.
74         (WebCore::JavaScriptCallFrame::create): Call the ctor can return in a PassRefPtr.
75         (WebCore::JavaScriptCallFrame::invalidate): Sets m_mexec to 0. This prevents a
76         stale ExecState from being accessed after the lifetime of the ExecState.
77         (WebCore::JavaScriptCallFrame::isValid): Checks if m_exec is 0.
78         (WebCore::JavaScriptCallFrame::execState): Returns m_exec.
79         (WebCore::JavaScriptCallFrame::sourceIdentifier): Returns m_sourceID.
80         (WebCore::JavaScriptCallFrame::line): Returns m_line.
81         (WebCore::JavaScriptCallFrame::setLine): Sets m_line.
82         (WebCore::JavaScriptCallFrame::scopeChain): Returns by reference m_exec->scopeChain().
83         * page/JavaScriptCallFrame.idl: Added.
84         * WebCore.xcodeproj/project.pbxproj: Add new files.
85         * WebCore.vcproj/WebCore.vcproj: Ditto.
86
87 2008-05-13  Timothy Hatcher  <timothy@apple.com>
88
89         Add a new WebInspector.Object base class that will be used for
90         a few objects in the Web Inspector to support listeners on any
91         object. This will help add more abstraction to the Inspector.
92
93         Reviewed by Adam Roben.
94
95         * page/inspector/Object.js: Added.
96         (WebInspector.Object): Does nothing.
97         (WebInspector.Object.prototype.addEventListener): Adds the listener to
98         the _listeners map by type. Supports a this object argument, for easy
99         addition of listeners without the need for bind.
100         (WebInspector.Object.prototype.removeEventListener): Remove the listener
101         from the _listeners map. If the listener is null and the thisObject was
102         passed, remove any listener for that thisObject.
103         (WebInspector.Object.prototype.dispatchEventToListeners): Sends an event
104         for a type to all listeners for that type. Mimics some of the DOMEvent
105         methods and properties for the event object passed to the listeners.
106         * WebCore.vcproj/WebCore.vcproj: Add new files.
107         * page/inspector/WebKit.qrc: Ditto.
108         * page/inspector/inspector.html: Ditto.
109
110 2008-05-13  Timothy Hatcher  <timothy@apple.com>
111
112         Update the view source CSS to better match the new Inspector mock-ups.
113
114         Reviewed by Kevin McCullough.
115
116         * css/view-source.css:
117
118 2008-05-13  John Sullivan  <sullivan@apple.com>
119
120         Reviewed by Dan Bernstein and Kevin Decker
121         
122         - fixed <rdar://problem/5879597> reproducible crash in HTMLSelectElement::typeAheadFind
123
124         Test: fast/forms/select-type-ahead-list-box-no-selection.html
125
126         * html/HTMLSelectElement.cpp:
127         (WebCore::HTMLSelectElement::typeAheadFind):
128         When there's no initially-selected element, we were accessing index -1. Check for this
129         case and start at 0.
130
131 2008-05-13  Sam Weinig  <sam@webkit.org>
132
133         Reviewed by Dan Bernstein.
134
135         Small cleanup to XMLHttpRequest in preparation for Access Control changes.
136
137         * xml/XMLHttpRequest.cpp:
138         (WebCore::XMLHttpRequest::XMLHttpRequest):
139         (WebCore::XMLHttpRequest::~XMLHttpRequest):
140         (WebCore::XMLHttpRequest::open):
141         (WebCore::XMLHttpRequest::send):
142         (WebCore::XMLHttpRequest::internalAbort):
143         (WebCore::XMLHttpRequest::processSyncLoadResults):
144         (WebCore::XMLHttpRequest::didFinishLoading):
145         (WebCore::XMLHttpRequest::didReceiveResponse):
146         (WebCore::XMLHttpRequest::didReceiveData):
147         * xml/XMLHttpRequest.h:
148
149 2008-05-13  chris fleizach  <cfleizach@apple.com>
150
151         Beth Dakin
152
153         <rdar://problem/5701210> VO: If image is missing, VoiceOver does not speak the alternative text.
154
155         * page/AccessibilityRenderObject.cpp:
156         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
157
158 2008-05-13  chris fleizach  <cfleizach@apple.com>
159
160         Beth Dakin
161
162         <rdar://problem/5908446> AX: webkit needs to return blockquote information for all AX objects, not just in AXTextMarker info
163
164         * page/mac/AccessibilityObjectWrapper.mm:
165         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
166         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
167
168 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
169
170         Reviewed by John Sullivan.
171
172         <rdar://problem/4852077> REGRESSION: The content of the HTML file which is saved as Thai
173         (ISO 8859-11) disappear.
174
175         <rdar://problem/5842597> Thai ISO-8859-11 should be upgraded to Windows-874
176
177         Test: fast/encoding/char-decoding.html
178
179         * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
180         Register ISO-8859-11, which doesn't have a standard IANA name, despite following
181         the usual 8859 naming scheme. Also, made TIS-620 map to windows-874-2000 explicitly.
182
183 2008-05-13  chris fleizach  <cfleizach@apple.com>
184
185         Reviewed by Beth Dakin
186
187         <rdar://problem/5471973> Some AXLinks are not getting AXTitles though there is title text
188
189         * page/AccessibilityRenderObject.cpp:
190         (WebCore::AccessibilityRenderObject::title):
191
192 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
193
194         Reviewed by Eric Seidel.
195
196         https://bugs.webkit.org/show_bug.cgi?id=18681
197         <rdar://problem/5888130> WebKit should not remove BOM characters from content.
198
199         We were only trying to match Firefox, and it doesn't do this any more.
200
201         Tests: fast/encoding/bom-in-content.html
202                fast/encoding/bom-in-content-utf16.html
203
204         * platform/text/TextDecoder.cpp: (WebCore::TextDecoder::checkForBOM): Skip the BOM if it's
205         at the start of input stream.
206
207         * platform/text/TextCodec.cpp:
208         * platform/text/TextCodec.h:
209         * platform/text/TextCodecICU.cpp:
210         (WebCore::TextCodecICU::decode):
211         * platform/text/TextCodecUTF16.cpp:
212         (WebCore::TextCodecUTF16::decode):
213         * platform/text/mac/TextCodecMac.cpp:
214         (WebCore::TextCodecMac::decode):
215         Don't remove the BOM.
216
217 2008-05-13  Anders Carlsson  <andersca@apple.com>
218
219         Reviewed by Darin.
220
221         Don't crash when a document loader is destroyed while an initial caching attempt
222         is in progress.
223
224         * loader/appcache/ApplicationCacheGroup.cpp:
225         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
226         Stop loading.
227         
228         (WebCore::ApplicationCacheGroup::stopLoading):
229         New method that stops a cache update.
230         
231         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
232         Delete ourselves here.
233         
234         * loader/appcache/ApplicationCacheGroup.h:
235
236 2008-05-13  Alexey Proskuryakov  <ap@webkit.org>
237
238         Reviewed by Darin.
239
240         <rdar://problem/5841351> Turkish ISO 8859-9 encoding should be treated as windows-1254
241
242         Match IE and upgrade ISO-8859-9 to windows-1254, which is its strict superset.
243
244         Test: fast/encoding/char-decoding.html
245
246         * platform/text/TextCodecICU.cpp:
247         (WebCore::TextCodecICU::registerExtendedEncodingNames): Register the standard name
248         unconditionally. Previously, we registered windows-949-2000 as a special case that lacked 
249         an IANA standard name, and got away with not registering GBK because it happened
250         to be reported by ICU normally earlier than any encoding upgraded to it.
251
252 2008-05-13  Tor Arne Vestbø  <tavestbo@trolltech.com>
253
254         Reviewed by Simon
255
256         Fix QtWebKit build on Qt embedded.
257
258         * WebCore.pro:
259         * platform/FileSystem.h:
260         * platform/qt/FileSystemQt.cpp:
261
262 2008-05-13  Ariya Hidayat  <ariya.hidayat@trolltech.com>
263
264         Reviewed by Simon.
265
266         For Gtk/X11 and Qt/X11, use a more extensive plug-ins scan directories set
267
268         * plugins/PluginDatabase.cpp:
269         (WebCore::addMozillaPluginDirectories):
270         (WebCore::PluginDatabase::isPreferredPluginDirectory):
271
272 2008-05-12  Adam Roben  <aroben@apple.com>
273
274         Turn on warnings as errors in WebCore.vcproj
275
276         Rubberstamped by Anders Carlsson.
277
278         * WebCore.vcproj/WebCore.vcproj: Also let VS reformat the file as it
279         saw fit. The important part is the removal of the WarnAsError="false"
280         lines.
281
282 2008-05-09  Sam Weinig  <sam@webkit.org>
283
284         Reviewed by Mark Rowe.
285
286         Fix for https://bugs.webkit.org/show_bug.cgi?id=18958
287         NULL pointer dereference in NamedAttrMap::setNamedItem
288
289         Test: fast/dom/NamedNodeMap-setNamedItem-crash.html
290
291         * dom/NamedAttrMap.cpp:
292         (WebCore::NamedAttrMap::setNamedItem): Null check the argument.
293
294 2008-05-09  Kevin McCullough  <kmccullough@apple.com>
295
296         Build fix.
297
298         * page/Console.cpp:
299         (WebCore::Console::profile):
300
301 2008-05-09  Sam Weinig  <sam@webkit.org>
302
303         Rubber-stamped by Mark Rowe.
304
305         Remove the ENABLE_CROSS_DOCUMENT_MESSAGING #ifdefs.
306
307         * Configurations/WebCore.xcconfig:
308         * WebCore.vcproj/WebCore.vcproj:
309         * WebCore.vcproj/build-generated-files.sh:
310         * bindings/js/JSDOMWindowCustom.cpp:
311         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
312         (WebCore::JSDOMWindow::postMessage):
313         * bindings/js/JSEventCustom.cpp:
314         (WebCore::toJS):
315         * bindings/objc/DOMEvents.mm:
316         (+[DOMEvent _wrapEvent:WebCore::]):
317         * dom/Document.cpp:
318         (WebCore::Document::createEvent):
319         * dom/Event.cpp:
320         (WebCore::Event::isMessageEvent):
321         * dom/Event.h:
322         * dom/MessageEvent.cpp:
323         * dom/MessageEvent.h:
324         * dom/MessageEvent.idl:
325         * page/DOMWindow.cpp:
326         (WebCore::DOMWindow::postMessageTimerFired):
327         * page/DOMWindow.h:
328         * page/DOMWindow.idl:
329
330 2008-05-09  Adam Barth  <abarth-webkit@adambarth.com>
331
332         Reviewed by Sam Weinig.
333
334         https://bugs.webkit.org/show_bug.cgi?id=18771
335
336         Make postMessage generate an event on the window instead of the
337         document.
338
339         Test: http/tests/messaging/cross-domain-message-event-dispatch.html
340
341         * dom/EventTargetNode.cpp:
342         (WebCore::EventTargetNode::dispatchWindowEvent):
343         * dom/EventTargetNode.h:
344         * page/DOMWindow.cpp:
345         (WebCore::DOMWindow::postMessageTimerFired):
346
347 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
348
349         Reviewed by Simon.
350
351         Replaced all instances of qDebug() with LOG(Media, ...)
352         in MediaPlayerPrivatePhonon.
353
354         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
355         (WebCore::MediaPlayerPrivate::updateStates):
356
357 2008-05-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
358
359         Reviewed by Simon
360
361         Fix the Qt/Mac build.
362
363         * platform/qt/FileSystemQt.cpp:
364
365 2008-05-08  Sam Weinig  <sam@webkit.org>
366
367         Reviewed by Anders Carlsson.
368
369         Rename the XMLHttpRequestState enum values to match the spec.
370
371         * xml/XMLHttpRequest.cpp:
372         (WebCore::XMLHttpRequest::responseXML):
373         (WebCore::XMLHttpRequest::XMLHttpRequest):
374         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
375         (WebCore::XMLHttpRequest::open):
376         (WebCore::XMLHttpRequest::send):
377         (WebCore::XMLHttpRequest::abort):
378         (WebCore::XMLHttpRequest::setRequestHeader):
379         (WebCore::XMLHttpRequest::getAllResponseHeaders):
380         (WebCore::XMLHttpRequest::getResponseHeader):
381         (WebCore::XMLHttpRequest::status):
382         (WebCore::XMLHttpRequest::statusText):
383         (WebCore::XMLHttpRequest::processSyncLoadResults):
384         (WebCore::XMLHttpRequest::didFinishLoading):
385         (WebCore::XMLHttpRequest::didReceiveData):
386         * xml/XMLHttpRequest.h:
387         (WebCore::):
388
389 2008-05-08  Dan Bernstein  <mitz@apple.com>
390
391         Reviewed by Mark Rowe.
392
393         - fix https://bugs.webkit.org/show_bug.cgi?id=18818
394           <rdar://problem/5901544> REGRESSION (3.1.1-TOT): Character order (float:left ordered after the first letter)
395
396         Test: fast/css/first-letter-float-after-float.html
397
398         * rendering/RenderBlock.cpp:
399         (WebCore::RenderBlock::updateFirstLetter): Changed to add the first
400         letter container right before the rest of the text it is taken from,
401         instead of at the beginning of the block.
402
403 2008-05-08  Chris Fleizach  <cfleizach@apple.com>
404
405         Reviewed by Darin Adler.
406
407         <rdar://problem/5921046> AX: list box options have wrong AXPosition
408
409         * page/AccessibilityObject.cpp:
410         (WebCore::AccessibilityObject::documentFrameView):
411         * page/AccessibilityObject.h:
412
413 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
414
415         Reviewed by Eric.
416
417         Bug 18916: make_names.pl --factory needs to support custom c++ guard
418
419         Add --guardFactoryWith to handle the cpp guard around generated factories.
420
421         * DerivedSources.make: Set the guardFactoryWith variable for SVG factory.
422         * GNUmakefile.am: Ditto.
423         * WebCore.pro: Ditto.
424         * dom/make_names.pl: Add guardFactoryWith option.
425
426 2008-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
427
428         Reviewed by Adam Roben.
429
430         wx & Gtk build fix.
431
432         Should also fix the cURL backend for the Windows port.
433
434         * WebCore.vcproj/WebCore.vcproj: Add FormDataStreamCurl information.
435         * platform/network/curl/FormDataStreamCurl.h: Include stdio.h which
436         fixes the build on some machine.
437
438         * webcore-wx.bkl: Add FormDataStreamCurl.cpp.
439
440 2008-05-08  Timothy Hatcher  <timothy@apple.com>
441
442         Fixes the bug where the Web Inspector could not
443         find any localization strings.
444
445         Reviewed by Mark Rowe.
446
447         * WebCore.xcodeproj/project.pbxproj: Add the localizedStrings.js
448         file to the WebCore Copy Resources phase. Also removes an idl from
449         the Copy Resources phase.
450
451 2008-05-08  Dan Bernstein  <mitz@apple.com>
452
453         Reviewed by Adam Roben.
454
455         - fix <rdar://problem/5697957> "No recent searches" label in a narrow search field's history popup is truncated
456
457         * platform/win/PopupMenuWin.cpp:
458         (WebCore::PopupMenu::calculatePositionAndSize): Changed to use a bold
459         font for measuring labels.
460
461 2008-05-08  Dan Bernstein  <mitz@apple.com>
462
463         Reviewed by Geoffrey Garen.
464
465         - cross-platform fix for http://bugs.webkit.org/show_bug.cgi?id=17590 
466           ASSERTION FAILED: subject in jsRegExpExecute()
467
468         * page/Frame.cpp:
469         (WebCore::Frame::matchLabelsAgainstElement):
470
471 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
472
473         Reviewed by Simon.
474
475         Simple ImageBuffer::image implementation.
476
477         In contrast to cg and cairo we do not use a special BitmapImage because
478         the ownership of the FrameData inside the BitmapImage is a bit backward
479         (actually owned by the ImageDecoderQt...). Further work is needed for image
480         and pixmap handling in the qt port...
481
482         * WebCore.pro:
483         * platform/graphics/ImageBuffer.h:
484         * platform/graphics/qt/ImageBufferQt.cpp:
485         (WebCore::ImageBuffer::image):
486         * platform/graphics/qt/ImageQt.cpp:
487         * platform/graphics/qt/StillImageQt.cpp: Added.
488         (WebCore::StillImage::StillImage):
489         (WebCore::StillImage::size):
490         (WebCore::StillImage::getPixmap):
491         (WebCore::StillImage::draw):
492         * platform/graphics/qt/StillImageQt.h: Added.
493
494 2008-05-08  Holger Hans Peter Freyther  <zecke@selfish.org>
495
496         Reviewed by Simon.
497
498         Update the WebKit.qrc of the inspector to be functional again
499
500         * page/inspector/WebKit.qrc:
501
502 2008-05-08  Tor Arne Vestbø  <tavestbo@trolltech.com>
503
504         Reviewed by Simon
505
506         Fix the Qt/Mac build.
507
508         * platform/FileSystem.h:
509
510 2008-05-08  Ariya Hidayat  <ariya.hidayat@trolltech.com>
511
512         Reviewed by Simon.
513
514         Use native Windows library handling (instead of QLibrary) 
515         for Qt/Win32's PlatformModule.
516
517         * platform/FileSystem.h:
518         (WebCore::PlatformModuleVersion::PlatformModuleVersion):
519         * platform/qt/FileSystemQt.cpp:
520         (WebCore::unloadModule):
521
522 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
523
524         Reviewed and found by Holger.
525
526         Include .css in the list of extensions for text/css. Fixes
527         fast/loader/local-css-allowed-in-strict-mode.html.
528
529         * platform/qt/MIMETypeRegistryQt.cpp:
530
531 2008-05-08  Simon Hausmann  <hausmann@webkit.org>
532
533         Fix the Qt and Wx build when compiling without offline app support.
534
535         * loader/FrameLoader.cpp:
536         (WebCore::FrameLoader::canCachePage):
537
538 2008-05-07  Sam Weinig  <sam@webkit.org>
539
540         Reviewed by Adele Peterson
541
542         Update MessageEvent to match the latest version of the HTML5 spec,
543         adding the lastEventId attribute.
544
545         * dom/MessageEvent.cpp:
546         (WebCore::MessageEvent::MessageEvent):
547         (WebCore::MessageEvent::initMessageEvent):
548         * dom/MessageEvent.h:
549         (WebCore::MessageEvent::lastEventId):
550         * dom/MessageEvent.idl:
551         * page/DOMWindow.cpp:
552         (WebCore::DOMWindow::postMessage):
553
554 2008-05-07  Stephanie Lewis <slewis@apple.com>
555
556         Reviewed by Maciej.
557
558         remove non-functioning code.  If onunload should be fired from these nodes then
559         a WindowEventListener needs to be set.  However, Firefox and IE also do not
560         fire onunload events for these cases.
561
562         Test: fast/events/onunload-not-on-body.html 
563         
564         * html/HTMLFrameElementBase.cpp:
565         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
566         * html/HTMLObjectElement.cpp
567         (WebCore::HTMLObjectElement::parseMappedAttribute):
568
569 2008-05-07  Dan Bernstein  <mitz@apple.com>
570
571         Reviewed by John Sullivan.
572
573         - fix https://bugs.webkit.org/show_bug.cgi?id=18909
574           <rdar://problem/5914165> REGRESSION (r31872-r31878): Viewed photos not closing completely at indycar.com
575
576         Test: fast/dynamic/positioned-movement-with-positioned-children.html
577
578         * rendering/RenderBlock.cpp:
579         (WebCore::RenderBlock::layoutOnlyPositionedObjects): Cover the case of
580         a positioned object that has only moved and has only positioned children
581         that have changed.
582         * rendering/RenderObject.h:
583         (WebCore::RenderObject::needsPositionedMovementLayout): Added this
584         accessor.
585
586 2008-05-07  Anders Carlsson  <andersca@apple.com>
587
588         Reviewed by John.
589
590         When no document loaders are associated with an application cache group,
591         release the reference to the newest cache group. This prevents reference cycles.
592         
593         * loader/appcache/ApplicationCacheGroup.cpp:
594         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
595         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
596         (WebCore::ApplicationCacheGroup::cacheDestroyed):
597         * loader/appcache/ApplicationCacheGroup.h:
598         
599         * loader/appcache/ApplicationCacheStorage.cpp:
600         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
601         Return early if the datbase wasn't open.
602         
603         (WebCore::ApplicationCacheStorage::loadCache):
604         Add error.
605
606 2008-05-07  Anders Carlsson  <andersca@apple.com>
607
608         Reviewed by Adam.
609
610         Don't put pages with an application cache in the BF cache.
611         
612         * loader/FrameLoader.cpp:
613         (WebCore::FrameLoader::canCachePage):
614
615 2008-05-07  Justin Garcia  <justin.garcia@apple.com>
616
617         Reviewed by John Sullivan.
618
619         <rdar://problem/5666354> Crashes in Mail at WebCore::RemoveNodeCommand::doApply
620         
621         When a single tab or series of tabs was copied, we weren't putting them into a 
622         tab span.  On Paste, we would be given a text node with a single tab or series
623         of tabs in it, and we would crash when inserting it at the start of a block
624         (where that kind of text becomes completely unrendered).
625
626         * editing/ReplaceSelectionCommand.cpp:
627         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Clean
628         up correctly and early return if we removed everything that was inserted.
629         * editing/markup.cpp:
630         (WebCore::createMarkup):  Include the tab span when the only thing copied
631         was a tab or a series of tabs.
632
633 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
634
635         Reviewed by Adam Roben.
636
637         wx & Gtk build fix.
638
639         * platform/network/curl/FormDataStreamCurl.cpp: Added stdint.h include. We need to define
640         __STDC_LIMIT_MACROS to have SIZE_MAX exported.
641         * platform/network/curl/FormDataStreamCurl.h: Removed cstdint include (replaced by stdint.h)
642         as it is not present on the build bots.
643         * plugins/gtk/PluginDatabaseGtk.cpp: Added missing #endif.
644
645 2008-05-07  David Kilzer  <ddkilzer@apple.com>
646
647         Bug 18900: Password field has focus but can't type text (i.rememberthemilk.com)
648         <https://bugs.webkit.org/show_bug.cgi?id=18900>
649         <rdar://problem/5912383>
650
651         Original patch by Aaron Golden and Tim Omernick.  Reviewed by Adele.
652
653         Test: fast/forms/textfield-to-password-on-focus.html
654
655         * html/HTMLInputElement.cpp:
656         (WebCore::HTMLInputElement::setInputType): If the current node has
657         focus, call updateFocusAppearance() to make sure its state is correct
658         after changing its type.
659
660 2008-05-07  Chris Fleizach  <cfleizach@apple.com>
661
662         Reviewed by Alice Liu
663
664         <rdar://problem/4867889> REGRESSION: "Choose File.." buttons are exposed as AXGroup instead of AXButton
665
666         * page/AccessibilityObject.h:
667         (WebCore::AccessibilityObject::isFileUploadButton):
668         * page/AccessibilityRenderObject.cpp:
669         (WebCore::AccessibilityRenderObject::isFileUploadButton):
670         (WebCore::AccessibilityRenderObject::actionElement):
671         (WebCore::AccessibilityRenderObject::textUnderElement):
672         (WebCore::AccessibilityRenderObject::stringValue):
673         (WebCore::AccessibilityRenderObject::roleValue):
674         * page/AccessibilityRenderObject.h:
675         * rendering/RenderFileUploadControl.cpp:
676         (WebCore::RenderFileUploadControl::buttonValue):
677         (WebCore::RenderFileUploadControl::fileTextValue):
678         * rendering/RenderFileUploadControl.h:
679
680 2008-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
681
682         Reviewed by Eric.
683
684         Bug 17971: [Curl] FormData processing should be moved to its own class
685
686         Move FormData treatment into FormDataStream. The aim is to have FormDataStream behave like a stream that cURL
687         could manipulate.
688
689         First step into having complete file uploading facility in cURL.
690
691         No test case as it is only code refactoring.
692
693         * GNUmakefile.am: Add FormDataStreamCurl.cpp
694         * platform/network/ResourceHandleInternal.h: Move code to FormStreamDataCurl.h
695         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
696         * platform/network/curl/FormDataStreamCurl.cpp: Added.
697         (WebCore::FormDataStream::~FormDataStream):
698         (WebCore::FormDataStream::read):
699         * platform/network/curl/FormDataStreamCurl.h: Added.
700         (WebCore::FormDataStream::FormDataStream):
701         * platform/network/curl/ResourceHandleCurl.cpp:
702         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
703         * platform/network/curl/ResourceHandleManager.cpp:
704         (WebCore::readCallback): Move code to FormDataStreamCurl.cpp
705
706 2008-05-07  Adam Treat  <treat@kde.org>
707
708         Reviewed by Simon.
709
710         https://bugs.webkit.org/show_bug.cgi?id=18898
711
712         Fixed wrong transform being used for creating the pixmap for a new
713         transparency layer. This fixes the popup menus on dell.com.
714
715         * platform/graphics/qt/GraphicsContextQt.cpp:
716         (WebCore::GraphicsContext::beginTransparencyLayer):
717
718 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
719
720         Reviewed by Simon.
721
722         Share the plug-in directories between Gtk and Qt/X11 port.
723
724         * platform/qt/FileSystemQt.cpp:
725         (WebCore::homeDirectoryPath): Implement it for Qt.
726         * plugins/PluginDatabase.cpp:
727         (WebCore::addMozillaPluginDirectories): Shared code.
728         (WebCore::PluginDatabase::defaultPluginDirectories):
729         (WebCore::PluginDatabase::isPreferredPluginDirectory): Shared code.
730         * plugins/gtk/PluginDatabaseGtk.cpp:
731         (WebCore::PluginDatabase::isPreferredPluginDirectory): Refactored.
732         * plugins/qt/PluginDatabaseQt.cpp: Refactored.
733
734 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
735
736         Reviewed by Simon
737
738         Fix build issues on Mac and refeactor the .pro file a bit.
739
740         * WebCore.pro:
741         * platform/qt/TemporaryLinkStubs.cpp:
742         (PluginPackage::fetchInfo):
743
744 2008-05-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
745
746         Reviewed by Simon
747
748         Draw scrollview corners (between scrollbars) using the Qt style.
749
750         https://bugs.webkit.org/show_bug.cgi?id=18894
751
752         * platform/qt/ScrollViewQt.cpp:
753         (WebCore::drawScrollbarCorner):
754         (WebCore::ScrollView::paint):
755
756 2008-05-07  Simon Hausmann  <hausmann@webkit.org>
757
758         Fix the Qt build, added AccessibilityListBox and ListBoxOption.cpp to
759         the build.
760
761         * WebCore.pro:
762
763 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
764
765         Rubber-stamped by Holger.
766
767         Fix building without storage support.
768
769         * page/PageGroup.cpp:
770         (WebCore::PageGroup::closeLocalStorage): proper #if
771
772 2008-05-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
773
774         Rubber-stamped by Oliver Hunt.
775
776         Fix building without accessibility.
777
778         * page/AXObjectCache.cpp:
779         (WebCore::AXObjectCache::selectedChildrenChanged): proper #if
780
781 2008-05-06  Dan Bernstein  <mitz@apple.com>
782
783         Reviewed by Darin Adler.
784
785         - fix <rdar://problem/5914544> Crash in layoutInlineChildren()
786
787         Test: fast/block/float/float-on-zero-height-line.html
788
789         * rendering/RenderBlock.cpp:
790         (WebCore::RenderBlock::markLinesDirtyInVerticalRange):
791
792 2008-05-06  Alice Liu  <alice.liu@apple.com>
793
794         Reviewed by Adele Peterson and John Sullivan.
795
796         changes needed to build on Windows after r32911 and r32927
797
798         * WebCore.vcproj/WebCore.vcproj:
799         * page/AXObjectCache.cpp:
800         (WebCore::AXObjectCache::selectedChildrenChanged):
801         * page/AccessibilityObject.h:
802         (WebCore::AccessibilityObject::document):
803         (WebCore::AccessibilityObject::topDocumentFrameView):
804         (WebCore::AccessibilityObject::documentFrameView):
805         * page/AccessibilityRenderObject.cpp:
806         (WebCore::AccessibilityRenderObject::document):
807         (WebCore::AccessibilityRenderObject::topDocumentFrameView):
808         (WebCore::AccessibilityRenderObject::documentFrameView):
809         * page/AccessibilityRenderObject.h:
810         * page/mac/AXObjectCacheMac.mm:
811         * page/mac/AccessibilityObjectWrapper.mm:
812         (-[AccessibilityObjectWrapper position]):
813         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
814
815 2008-05-06  Brady Eidson  <beidson@apple.com>
816
817         Reviewed by Sam Weinig
818
819         Fix a few bugs with the final sync'ing of LocalStorageAreas when the thread is shut down.
820         1 - A sync task actually needs to be scheduled for each LocalStorageArea when the shut down occurs.
821         2 - Pending sync timers all need to be cancelled.
822
823         * storage/LocalStorage.cpp:
824         (WebCore::LocalStorage::storageArea):
825         (WebCore::LocalStorage::close): Tell each LocalStorageArea to schedule it's final sync before scheduling
826           thread termination.
827         * storage/LocalStorage.h:  Change the map to be of LocalStorageAreas instead of StorageAreas
828
829         * storage/LocalStorageArea.cpp:
830         (WebCore::LocalStorageArea::LocalStorageArea):
831         (WebCore::LocalStorageArea::~LocalStorageArea): ASSERT the timer has been cancelled, but make SURE it is
832           in release builds.
833         (WebCore::LocalStorageArea::scheduleFinalSync): Cancel the sync timer, schedule the final sync, and set the
834           "final sync scheduled" flag
835         (WebCore::LocalStorageArea::scheduleItemForSync): ASSERT that the final sync hasn't already been scheduled
836         (WebCore::LocalStorageArea::scheduleClear): Ditto
837         * storage/LocalStorageArea.h:
838
839 2008-05-06  Kevin Ollivier  <kevino@theolliviers.com>
840
841         wx build fix. Adding files added in  r32925 to the bakefiles.
842
843         * WebCoreSources.bkl:
844
845 2008-05-06  Alp Toker  <alp@nuanti.com>
846
847         GTK+ build fix. Add empty stub to keep non-accessible ports building.
848
849         * page/AXObjectCache.h:
850         (WebCore::AXObjectCache::selectedChildrenChanged):
851
852 2008-05-06  Beth Dakin  <bdakin@apple.com>
853
854         Reviewed by Darin.
855
856         Fix for <rdar://problem/5907916> Implement 'aria-labeledby' and 
857         'aria-describedby' attributes.
858
859         * html/HTMLAttributeNames.in: Added new attributes. Added both the 
860         British spelling (since that is what is specified in the spec), and 
861         the American spelling (since the bug filer and I are two Americans 
862         who keep spelling it the American way by accident). 
863         * page/AccessibilityObject.cpp: Added empty wrappers. These 
864         functions can't do anything meaningful without a renderer.
865         (WebCore::AccessibilityObject::ariaAccessiblityName):
866         (WebCore::AccessibilityObject::ariaLabeledByAttribute):
867         (WebCore::AccessibilityObject::ariaDescribedByAttribute):
868         * page/AccessibilityObject.h:
869
870         Here is where the real work is done.
871         * page/AccessibilityRenderObject.h:
872         * page/AccessibilityRenderObject.cpp:
873         (WebCore::accessibleNameForNode): Takes a node and finds its 
874         contribution to the accessible name, as defined by the Mozilla ARIA 
875         Implementer's Guide. 
876         (WebCore::AccessibilityRenderObject::ariaAccessiblityName): Takes a 
877         string of space-separated IDs, fetches the corresponding element 
878         for each ID, and concatenates an accessible name based on the 
879         elements.
880         (WebCore::AccessibilityRenderObject::ariaLabeledByAttribute): 
881         Retrieve the labeledby attribute and send its contents to 
882         ariaAccessibilityName().
883         (WebCore::AccessibilityRenderObject::title): Return the ARIA 
884         labeledby value if one exists.
885         (WebCore::AccessibilityRenderObject::ariaDescribedByAttribute): 
886         Retrieve the describedby attribute and send its contents to 
887         ariaAccessibilityName().
888         (WebCore::AccessibilityRenderObject::accessibilityDescription): 
889         Return the ARIA describedby attribute if one exists. 
890
891         These are two bugs I spotted. 
892         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Don't 
893         ignore anything with an ARIA role.
894         (WebCore::AccessibilityRenderObject::roleValue): Button tags maps 
895         to ButtonRole.
896
897 2008-05-06  Anders Carlsson  <andersca@apple.com>
898
899         Reviewed by Brady.
900
901         Support reading back app caches from the database.
902     
903         * loader/appcache/ApplicationCache.cpp:
904         (WebCore::ApplicationCache::ApplicationCache):
905         Initialize m_storageID to 0.
906         
907         * loader/appcache/ApplicationCacheGroup.cpp:
908         (WebCore::ApplicationCacheGroup::cacheDestroyed):
909         If the cache being destroyed is not the newest cache, it should no longer be 
910         stored in the database. Remove it.
911         
912         (WebCore::ApplicationCacheGroup::setNewestCache):
913         Don't store the cache here.
914         
915         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
916         Store it here instead.
917         
918         * loader/appcache/ApplicationCacheStorage.cpp:
919         (WebCore::ApplicationCacheStorage::loadCacheGroup):
920         New method that loads a cache group with a given manifest URL (or returns 0 if the load fails).
921         
922         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
923         Search for the group in the database.
924         
925         (WebCore::ApplicationCacheStorage::loadManifestHostHashes):
926         New method that loads the host hashes from the database.
927         
928         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
929         Search in the database for a cache that contains the resource.
930         
931         (WebCore::ApplicationCacheStorage::loadCache):
932         New method that loads a cache with a given ID.
933         
934         (WebCore::ApplicationCacheStorage::remove):
935         New method that removes a cache.
936         
937         * loader/appcache/ApplicationCacheStorage.h:
938         Add definitions.
939
940 2008-05-06  Alp Toker  <alp@nuanti.com>
941
942         Partial GTK+ build fix. Add files from r32925 to the build and replace
943         'nil' return with 0.
944
945         * GNUmakefile.am:
946         * page/AccessibilityListBoxOption.cpp:
947         (WebCore::AccessibilityListBoxOption::parentObject):
948
949 2008-05-06  Brady Eidson  <beidson@apple.com>
950
951         Reviewed by Anders
952
953         Make LocalStorage persistent using a SQLite database.
954
955         There's a few things going on here.  Whenever an item is changed, we add it to a set of
956         "items to be sync'ed."  Instead of immediately scheduling the sync'ing on the background
957         thread, we set a "sync timer" instead.  This is to shield against a series of rapid changes
958         to avoid thread churn.
959
960         When the sync timer fires, we move the "items to be sync'ed" set to a background thread set
961         and schedule the sync task which is where the items are actually committed to disk.
962
963         Current design for reading items back in from disk is to be as aggressive as possible.
964         When a page first accesses it's LocalStorage area, we begin to import all items in from disk so
965         they are immediately available.  A future enhancement will be to being this pre-fetching the
966         moment we start loading a page when we know that page has LocalStorage.
967
968         * storage/LocalStorageArea.cpp:
969         (WebCore::LocalStorageArea::LocalStorageArea):
970         (WebCore::LocalStorageArea::length): Return the length, or wait for the import to complete then return it.
971         (WebCore::LocalStorageArea::key): Return the key, or wait for the import to complete then return it.
972         (WebCore::LocalStorageArea::getItem): Return the item, or wait for the import to complete then return it.
973         (WebCore::LocalStorageArea::setItem): Set the item, or hold the import lock and set it.  The second case is
974           because if the item is set while the import is still in progress, the new value should override whatever
975           the imported value is.
976         (WebCore::LocalStorageArea::removeItem): Remove the item, or hold the import lock and remove it.  See the 
977           explanation for setItem()
978         (WebCore::LocalStorageArea::contains): Return whether or not the item is contained.  Do the same dance with
979           the import flag, import lock, and import condition that the above methods do.
980
981         (WebCore::LocalStorageArea::itemChanged): Schedule the item for sync'ing
982         (WebCore::LocalStorageArea::itemRemoved): Schedule the removal of the item for sync'ing
983         (WebCore::LocalStorageArea::areaCleared): Schedule the clear for sync'ing, and clear all previously 
984           scheduled items.
985
986         (WebCore::LocalStorageArea::scheduleItemForSync): Add an item to the sync set.
987         (WebCore::LocalStorageArea::scheduleClear): Set a bool flag denoting "All items removed."  If any
988           items are later set before the actual removal takes place, they will be written *after* the removal.
989         (WebCore::LocalStorageArea::syncTimerFired): Move the current sync-set to the background thread sync set, then 
990           schedule a sync task.  Also transfer the "items cleared" flag to the "background thread items cleared" flag
991         (WebCore::LocalStorageArea::performImport): Import all items from disk, then signal the import complete.
992         (WebCore::LocalStorageArea::markImported): Set the imported flag and signal the import complete
993         (WebCore::LocalStorageArea::performSync): If the clear flag is set then drop all items.  Then update or delete 
994           each item waiting to be sync'ed
995         * storage/LocalStorageArea.h:
996
997 2008-05-06  Brady Eidson  <beidson@apple.com>
998
999         Rubberstamped by Mitz Pettel RTL
1000
1001         * storage/LocalStorage.cpp:
1002         (WebCore::LocalStorage::fullDatabaseFilename): Filename extensions for localstorage = all lowercase
1003
1004 2008-05-06  Brady Eidson  <beidson@apple.com>
1005
1006         Reviewed by Darin, Sam Weinig, and Anders
1007
1008         Preparation for upcoming work making LocalStorage persistent.
1009
1010         The final step before code that actually does storage and retrieval of LocalStorage items.
1011
1012         The LocalStorage set is responsible for controlling the path and filenames that individual
1013         LocalStorageAreas will use for their persistent store.  This adds the ability to return that
1014         filename.
1015
1016         Also, add the scheduling methods that LocalStorageArea will use for importing and syncing 
1017         it's persistent items.
1018
1019         * storage/LocalStorage.cpp:
1020         (WebCore::LocalStorage::storageArea):  Add some comments re: the future direction of this
1021           method once we actually do quota tracking.
1022         (WebCore::LocalStorage::fullDatabaseFilename):
1023         (WebCore::LocalStorage::scheduleImport):
1024         (WebCore::LocalStorage::scheduleSync):
1025         * storage/LocalStorage.h:
1026
1027 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
1028
1029         Reviewed by Beth Dakin.
1030
1031         rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
1032
1033         * WebCore.xcodeproj/project.pbxproj:
1034         * html/HTMLOptGroupElement.cpp:
1035         (WebCore::HTMLOptGroupElement::ownerSelectElement):
1036         (WebCore::HTMLOptGroupElement::accessKeyAction):
1037         * html/HTMLOptGroupElement.h:
1038         * html/HTMLOptionElement.cpp:
1039         (WebCore::HTMLOptionElement::accessKeyAction):
1040         (WebCore::HTMLOptionElement::index):
1041         (WebCore::HTMLOptionElement::setSelected):
1042         (WebCore::HTMLOptionElement::childrenChanged):
1043         (WebCore::HTMLOptionElement::ownerSelectElement):
1044         (WebCore::HTMLOptionElement::insertedIntoDocument):
1045         * html/HTMLOptionElement.h:
1046         * html/HTMLSelectElement.cpp:
1047         (WebCore::HTMLSelectElement::childrenChanged):
1048         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
1049         * html/HTMLSelectElement.h:
1050         * page/AXObjectCache.cpp:
1051         (WebCore::AXObjectCache::get):
1052         * page/AccessibilityListBox.cpp: Added.
1053         (WebCore::AccessibilityListBox::AccessibilityListBox):
1054         (WebCore::AccessibilityListBox::~AccessibilityListBox):
1055         (WebCore::AccessibilityListBox::create):
1056         (WebCore::AccessibilityListBox::addChildren):
1057         (WebCore::AccessibilityListBox::selectedChildren):
1058         (WebCore::AccessibilityListBox::visibleChildren):
1059         (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
1060         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
1061         * page/AccessibilityListBox.h: Added.
1062         (WebCore::AccessibilityListBox::accessibilityShouldUseUniqueId):
1063         (WebCore::AccessibilityListBox::isListBox):
1064         (WebCore::AccessibilityListBox::canSetFocusAttribute):
1065         (WebCore::AccessibilityListBox::roleValue):
1066         (WebCore::AccessibilityListBox::accessibilityIsIgnored):
1067         * page/AccessibilityListBoxOption.cpp: Added.
1068         (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
1069         (WebCore::AccessibilityListBoxOption::~AccessibilityListBoxOption):
1070         (WebCore::AccessibilityListBoxOption::create):
1071         (WebCore::AccessibilityListBoxOption::isEnabled):
1072         (WebCore::AccessibilityListBoxOption::isSelected):
1073         (WebCore::AccessibilityListBoxOption::elementRect):
1074         (WebCore::AccessibilityListBoxOption::title):
1075         (WebCore::AccessibilityListBoxOption::size):
1076         (WebCore::AccessibilityListBoxOption::actionElement):
1077         (WebCore::AccessibilityListBoxOption::parentObject):
1078         (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
1079         (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
1080         * page/AccessibilityListBoxOption.h: Added.
1081         (WebCore::AccessibilityListBoxOption::setHTMLElement):
1082         (WebCore::AccessibilityListBoxOption::roleValue):
1083         (WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
1084         (WebCore::AccessibilityListBoxOption::isListBoxOption):
1085         * page/AccessibilityObject.h:
1086         (WebCore::AccessibilityObject::isListBox):
1087         * page/AccessibilityRenderObject.cpp:
1088         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1089         * page/mac/AccessibilityObjectWrapper.mm:
1090         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1091         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1092         * rendering/RenderListBox.cpp:
1093         (WebCore::RenderListBox::selectionChanged):
1094         * rendering/RenderListBox.h:
1095
1096 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
1097
1098         Reviewed by Beth Dakin.
1099
1100          <rdar://problem/5455287> AXWebArea should include AXURL
1101
1102         * page/AccessibilityRenderObject.cpp:
1103         (WebCore::AccessibilityRenderObject::url):
1104         * page/mac/AccessibilityObjectWrapper.mm:
1105         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1106
1107 2008-05-06  Alice Liu  <alice.liu@apple.com>
1108
1109         Rubber-stamped by Beth
1110         
1111         stab-in-the-dark attempt at fixing non-mac builds.
1112
1113         * GNUmakefile.am:
1114         * WebCore.pro:
1115         * WebCore.vcproj/WebCore.vcproj:
1116         * WebCoreSources.bkl:
1117
1118 2008-05-06  Anders Carlsson  <andersca@apple.com>
1119
1120         Reviewed by Adam.
1121
1122         Only use the toplevel application cache when loading subframes.
1123
1124         * loader/MainResourceLoader.cpp:
1125         (WebCore::MainResourceLoader::load):
1126
1127 2008-05-06  Adam Barth  <abarth-webkit@adambarth.com>
1128
1129         Reviewed by Sam Weinig.
1130
1131         https://bugs.webkit.org/show_bug.cgi?id=18725
1132         Implement asynchronous postMessage.
1133         MessageEvent no longer bubbles as per r1237 in the HTML 5 working draft.
1134
1135         Collin Jackson <collinj-webkit@collinjackson.com> also contributed to this patch.
1136
1137         Test: http/tests/security/postMessage/delivery-order.html
1138
1139         * dom/MessageEvent.cpp:
1140         (WebCore::MessageEvent::MessageEvent):
1141         * page/DOMWindow.cpp:
1142         (WebCore::PostMessageTimer::PostMessageTimer):
1143         (WebCore::PostMessageTimer::event):
1144         (WebCore::PostMessageTimer::targetOrigin):
1145         (WebCore::PostMessageTimer::fired):
1146         (WebCore::DOMWindow::postMessage):
1147         (WebCore::DOMWindow::postMessageTimerFired):
1148         * page/DOMWindow.h:
1149         * page/DOMWindow.idl:
1150         
1151 2008-05-06  Anders Carlsson  <andersca@apple.com>
1152
1153         Reviewed by Brady.
1154
1155         Store cache to the database.
1156
1157         * loader/appcache/ApplicationCache.cpp:
1158         (WebCore::ApplicationCache::addResource):
1159         If the cache has been saved to disk, save the resource as well.
1160         
1161         * loader/appcache/ApplicationCache.h:
1162         (WebCore::ApplicationCache::onlineWhitelist):
1163         New method which returns the online whitelist.
1164
1165         (WebCore::ApplicationCache::setStorageId):
1166         (WebCore::ApplicationCache::storageId):
1167         Setter/getter for the application cache storage ID.
1168
1169         * loader/appcache/ApplicationCacheGroup.cpp:
1170         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
1171         Save the cache/group to disk.
1172         
1173         * loader/appcache/ApplicationCacheGroup.h:
1174         (WebCore::ApplicationCacheGroup::setStorageID):
1175         (WebCore::ApplicationCacheGroup::storageID):
1176         Setter/getter for the application cache group storage ID.
1177         
1178         * loader/appcache/ApplicationCacheResource.cpp:
1179         (WebCore::ApplicationCacheResource::addType):
1180         We can't add a new type if the resource has been saved to disk.
1181         
1182         * loader/appcache/ApplicationCacheResource.h:
1183         (WebCore::ApplicationCacheResource::setStorageID):
1184         (WebCore::ApplicationCacheResource::storageID):
1185         Setter/getter for the application cache resource storage ID.
1186
1187         * loader/appcache/ApplicationCacheStorage.cpp:
1188         * loader/appcache/ApplicationCacheStorage.cpp:
1189         (WebCore::ApplicationCacheStorage::executeSQLCommand):
1190         New method for executing SQL and logging any errors.
1191         
1192         (WebCore::ApplicationCacheStorage::openDatabase):
1193         Create new tables.
1194         
1195         (WebCore::ApplicationCacheStorage::executeStatement):
1196         New method for executing an SQL statement and logging any errors.
1197         
1198         (WebCore::ApplicationCacheStorage::store):
1199         New methods for storing a cache group, cache and cache resource to the store.
1200
1201         (WebCore::ApplicationCacheStorage::storeNewestCache):
1202         New method which stores the newest cache and updates the newest cache field in the cache group.
1203         
1204         * loader/appcache/ApplicationCacheStorage.h:
1205         Add new methods.
1206         
1207         * platform/sql/SQLiteStatement.h:
1208         (WebCore::SQLiteStatement::query):
1209         Getter for the SQL query.
1210
1211 2008-05-06  Brady Eidson  <beidson@apple.com>
1212
1213         Reviewed by Darin Adler
1214
1215         Preparation for upcoming work making LocalStorage persistent.
1216
1217         Writing persistent values for LocalStorage will take place on a background thread.
1218         Here is that background thread, as well as most of the hooks that will be utilized to
1219         make the whole song and dance work.
1220
1221         The thread itself is very simple and MessageQueue based.  LocalStorageTasks are what 
1222         mark the work that needs to be done and come in 5 flavors:  Import and Sync a LocalStorage set,
1223         Import and Sync a LocalStorageArea, and terminate the thread.
1224
1225         This patch accomplished 2 things:
1226         
1227         1 - Each PageGroup has its own LocalStorage set.  Upon its creation its LocalStorageThread is 
1228             created and started.
1229
1230         2 - At application shutdown, each thread is synchronously terminated.
1231
1232         What happens between steps 1 and 2 will come later.
1233
1234         * GNUmakefile.am:
1235         * WebCore.pro:
1236         * WebCore.vcproj/WebCore.vcproj:
1237         * WebCore.xcodeproj/project.pbxproj:
1238         * WebCoreSources.bkl:
1239
1240         * storage/LocalStorage.cpp: Add some threading ASSERTs to make it clear which thread each
1241           method is meant to be called from.
1242         (WebCore::LocalStorage::LocalStorage):
1243         (WebCore::LocalStorage::storageArea):
1244         (WebCore::LocalStorage::performImport): Placeholder for importing known origins and quotas
1245         (WebCore::LocalStorage::performSync): Placeholder for writing out updated origins and quotas
1246         (WebCore::LocalStorage::close): Synchronously terminate the thread.
1247         * storage/LocalStorage.h:
1248
1249         * storage/LocalStorageArea.cpp: Add some threading ASSERTs to make it clear which thread each
1250           method is meant to be called from.
1251         (WebCore::LocalStorageArea::itemChanged):
1252         (WebCore::LocalStorageArea::itemRemoved):
1253         (WebCore::LocalStorageArea::areaCleared):
1254         (WebCore::LocalStorageArea::dispatchStorageEvent):
1255         (WebCore::LocalStorageArea::performImport): Placeholder for importing all items for this 
1256           LocalStorageArea to prime the page before the items are needed
1257         (WebCore::LocalStorageArea::performSync): Placeholder for writing out dirty items to disk
1258         * storage/LocalStorageArea.h:
1259
1260         * storage/LocalStorageTask.cpp: Added.
1261         (WebCore::LocalStorageTask::LocalStorageTask):
1262         (WebCore::LocalStorageTask::performTask):
1263         * storage/LocalStorageTask.h: Added.
1264         (WebCore::LocalStorageTask::):
1265         (WebCore::LocalStorageTask::createImport):
1266         (WebCore::LocalStorageTask::createSync):
1267         (WebCore::LocalStorageTask::createTerminate):
1268
1269         * storage/LocalStorageThread.cpp: Added.
1270         (WebCore::LocalStorageThread::create):
1271         (WebCore::LocalStorageThread::LocalStorageThread):
1272         (WebCore::LocalStorageThread::start):
1273         (WebCore::LocalStorageThread::localStorageThreadStart):
1274         (WebCore::LocalStorageThread::localStorageThread):
1275         (WebCore::LocalStorageThread::scheduleImport):
1276         (WebCore::LocalStorageThread::scheduleSync):
1277         (WebCore::LocalStorageThread::terminate): 
1278         (WebCore::LocalStorageThread::performTerminate):
1279         * storage/LocalStorageThread.h: Added.
1280
1281 2008-05-06  Anders Carlsson  <andersca@apple.com>
1282
1283         Reviewed by Darin.
1284
1285         Add NPN_PopUpContextMenu.
1286         
1287         * bridge/npapi.h:
1288         * plugins/npfunctions.h:
1289
1290 2008-05-06  Alp Toker  <alp@nuanti.com>
1291
1292         GTK+ build fix. Add file from r32911 to the build.
1293
1294         * GNUmakefile.am:
1295
1296 2008-05-06  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
1297
1298         Reviewed by Alp Toker.
1299
1300         http://bugs.webkit.org/show_bug.cgi?id=18906
1301         [GTK] Fix varargs terminator in g_build_filename()
1302
1303         * plugins/gtk/PluginDatabaseGtk.cpp:
1304         (WebCore::PluginDatabase::isPreferredPluginDirectory): Fix varargs
1305         terminator.
1306
1307 2008-05-06  Kevin McCullough  <kmccullough@apple.com>
1308
1309         - Forgot to update localized Strings from previous checkin.
1310
1311         * English.lproj/localizedStrings.js:
1312
1313 2008-05-06  Chris Fleizach  <cfleizach@apple.com>
1314
1315         Reviewed by Beth Dakin
1316
1317         <rdar://problem/5408464> REGRESSION: Unable to use Voiceover on combo boxes (disneyjobs.com)
1318         <rdar://problem/5895634> AX: AccessibilityObjectWrapper is being leaked all over the place
1319         <rdar://problem/5893907> CrashTracer: [REGRESSION] 44 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityObject::clearChildren + 9
1320         
1321         Initial prep work to support accessibility objects that do not have renderers. 
1322
1323         * WebCore.xcodeproj/project.pbxproj:
1324         * page/AXObjectCache.cpp:
1325         (WebCore::AXObjectCache::~AXObjectCache):
1326         (WebCore::AXObjectCache::get):
1327         (WebCore::AXObjectCache::remove):
1328         (WebCore::AXObjectCache::getAXID):
1329         (WebCore::AXObjectCache::removeAXID):
1330         (WebCore::AXObjectCache::childrenChanged):
1331         * page/AXObjectCache.h:
1332         (WebCore::AXObjectCache::isIDinUse):
1333         * page/AccessibilityObject.cpp:
1334         (WebCore::AccessibilityObject::AccessibilityObject):
1335         (WebCore::AccessibilityObject::create):
1336         (WebCore::AccessibilityObject::detach):
1337         (WebCore::AccessibilityObject::firstChild):
1338         (WebCore::AccessibilityObject::lastChild):
1339         (WebCore::AccessibilityObject::previousSibling):
1340         (WebCore::AccessibilityObject::nextSibling):
1341         (WebCore::AccessibilityObject::parentObject):
1342         (WebCore::AccessibilityObject::layoutCount):
1343         (WebCore::AccessibilityObject::text):
1344         (WebCore::AccessibilityObject::helpText):
1345         (WebCore::AccessibilityObject::textUnderElement):
1346         (WebCore::AccessibilityObject::isARIAInput):
1347         (WebCore::AccessibilityObject::isARIAControl):
1348         (WebCore::AccessibilityObject::intValue):
1349         (WebCore::AccessibilityObject::stringValue):
1350         (WebCore::AccessibilityObject::title):
1351         (WebCore::AccessibilityObject::accessibilityDescription):
1352         (WebCore::AccessibilityObject::boundingBoxRect):
1353         (WebCore::AccessibilityObject::elementRect):
1354         (WebCore::AccessibilityObject::size):
1355         (WebCore::AccessibilityObject::linkedUIElement):
1356         (WebCore::AccessibilityObject::textLength):
1357         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
1358         (WebCore::AccessibilityObject::selectedText):
1359         (WebCore::AccessibilityObject::accessKey):
1360         (WebCore::AccessibilityObject::selection):
1361         (WebCore::AccessibilityObject::selectedTextRange):
1362         (WebCore::AccessibilityObject::setSelectedTextRange):
1363         (WebCore::AccessibilityObject::url):
1364         (WebCore::AccessibilityObject::setFocused):
1365         (WebCore::AccessibilityObject::setValue):
1366         (WebCore::AccessibilityObject::axObjectCache):
1367         (WebCore::AccessibilityObject::getDocumentLinks):
1368         (WebCore::AccessibilityObject::widget):
1369         (WebCore::AccessibilityObject::widgetForAttachmentView):
1370         (WebCore::AccessibilityObject::anchorElement):
1371         (WebCore::AccessibilityObject::actionElement):
1372         (WebCore::AccessibilityObject::visiblePositionRange):
1373         (WebCore::AccessibilityObject::doAXTextMarkerRangeForLine):
1374         (WebCore::AccessibilityObject::visiblePositionForIndex):
1375         (WebCore::AccessibilityObject::indexForVisiblePosition):
1376         (WebCore::AccessibilityObject::doAXBoundsForTextMarkerRange):
1377         (WebCore::AccessibilityObject::doSetAXSelectedTextMarkerRange):
1378         (WebCore::AccessibilityObject::doAXTextMarkerForPosition):
1379         (WebCore::AccessibilityObject::textMarkerForIndex):
1380         (WebCore::AccessibilityObject::rangeForTextMarkerRange):
1381         (WebCore::AccessibilityObject::indexForTextMarker):
1382         (WebCore::AccessibilityObject::doAXRangeForLine):
1383         (WebCore::AccessibilityObject::doAXRangeForPosition):
1384         (WebCore::AccessibilityObject::doAXRangeForIndex):
1385         (WebCore::AccessibilityObject::doAXStyleRangeForIndex):
1386         (WebCore::AccessibilityObject::doAXStringForRange):
1387         (WebCore::AccessibilityObject::doAXBoundsForRange):
1388         (WebCore::AccessibilityObject::doAccessibilityHitTest):
1389         (WebCore::AccessibilityObject::focusedUIElement):
1390         (WebCore::AccessibilityObject::observableObject):
1391         (WebCore::AccessibilityObject::roleValue):
1392         (WebCore::AccessibilityObject::ariaRoleAttribute):
1393         (WebCore::AccessibilityObject::childrenChanged):
1394         (WebCore::AccessibilityObject::addChildren):
1395         (WebCore::AccessibilityObject::removeAXObjectID):
1396         * page/AccessibilityObject.h:
1397         (WebCore::):
1398         (WebCore::PlainTextRange::PlainTextRange):
1399         (WebCore::PlainTextRange::isNull):
1400         (WebCore::AccessibilityObject::isAccessibilityRenderObject):
1401         (WebCore::AccessibilityObject::isAnchor):
1402         (WebCore::AccessibilityObject::isAttachment):
1403         (WebCore::AccessibilityObject::isHeading):
1404         (WebCore::AccessibilityObject::isLink):
1405         (WebCore::AccessibilityObject::isImage):
1406         (WebCore::AccessibilityObject::isNativeImage):
1407         (WebCore::AccessibilityObject::isImageButton):
1408         (WebCore::AccessibilityObject::isPasswordField):
1409         (WebCore::AccessibilityObject::isTextControl):
1410         (WebCore::AccessibilityObject::isNativeTextControl):
1411         (WebCore::AccessibilityObject::isWebArea):
1412         (WebCore::AccessibilityObject::isCheckboxOrRadio):
1413         (WebCore::AccessibilityObject::isChecked):
1414         (WebCore::AccessibilityObject::isEnabled):
1415         (WebCore::AccessibilityObject::isSelected):
1416         (WebCore::AccessibilityObject::isFocused):
1417         (WebCore::AccessibilityObject::isHovered):
1418         (WebCore::AccessibilityObject::isIndeterminate):
1419         (WebCore::AccessibilityObject::isLoaded):
1420         (WebCore::AccessibilityObject::isMultiSelect):
1421         (WebCore::AccessibilityObject::isOffScreen):
1422         (WebCore::AccessibilityObject::isPressed):
1423         (WebCore::AccessibilityObject::isReadOnly):
1424         (WebCore::AccessibilityObject::isVisited):
1425         (WebCore::AccessibilityObject::canSetFocusAttribute):
1426         (WebCore::AccessibilityObject::canSetTextRangeAttributes):
1427         (WebCore::AccessibilityObject::canSetValueAttribute):
1428         (WebCore::AccessibilityObject::hasIntValue):
1429         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
1430         (WebCore::AccessibilityObject::accessibilityIsIgnored):
1431         (WebCore::AccessibilityObject::children):
1432         (WebCore::AccessibilityObject::hasChildren):
1433         (WebCore::AccessibilityObject::setWrapper):
1434         (WebCore::AccessibilityObject::isDetached):
1435         * page/AccessibilityRenderObject.cpp: Added.
1436         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1437         (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
1438         (WebCore::AccessibilityRenderObject::create):
1439         (WebCore::AccessibilityRenderObject::detach):
1440         (WebCore::AccessibilityRenderObject::firstChild):
1441         (WebCore::AccessibilityRenderObject::lastChild):
1442         (WebCore::AccessibilityRenderObject::previousSibling):
1443         (WebCore::AccessibilityRenderObject::nextSibling):
1444         (WebCore::AccessibilityRenderObject::parentObject):
1445         (WebCore::AccessibilityRenderObject::isWebArea):
1446         (WebCore::AccessibilityRenderObject::isImageButton):
1447         (WebCore::AccessibilityRenderObject::isAnchor):
1448         (WebCore::AccessibilityRenderObject::isNativeTextControl):
1449         (WebCore::AccessibilityRenderObject::isTextControl):
1450         (WebCore::AccessibilityRenderObject::isNativeImage):
1451         (WebCore::AccessibilityRenderObject::isImage):
1452         (WebCore::AccessibilityRenderObject::isAttachment):
1453         (WebCore::AccessibilityRenderObject::isPasswordField):
1454         (WebCore::AccessibilityRenderObject::isCheckboxOrRadio):
1455         (WebCore::AccessibilityRenderObject::isPressed):
1456         (WebCore::AccessibilityRenderObject::isIndeterminate):
1457         (WebCore::AccessibilityRenderObject::isChecked):
1458         (WebCore::AccessibilityRenderObject::isHovered):
1459         (WebCore::AccessibilityRenderObject::isMultiSelect):
1460         (WebCore::AccessibilityRenderObject::isReadOnly):
1461         (WebCore::AccessibilityRenderObject::isOffScreen):
1462         (WebCore::AccessibilityRenderObject::headingLevel):
1463         (WebCore::AccessibilityRenderObject::isHeading):
1464         (WebCore::AccessibilityRenderObject::isLink):
1465         (WebCore::AccessibilityRenderObject::anchorElement):
1466         (WebCore::AccessibilityRenderObject::actionElement):
1467         (WebCore::AccessibilityRenderObject::mouseButtonListener):
1468         (WebCore::AccessibilityRenderObject::helpText):
1469         (WebCore::AccessibilityRenderObject::textUnderElement):
1470         (WebCore::AccessibilityRenderObject::hasIntValue):
1471         (WebCore::AccessibilityRenderObject::intValue):
1472         (WebCore::AccessibilityRenderObject::stringValue):
1473         (WebCore::labelForElement):
1474         (WebCore::AccessibilityRenderObject::title):
1475         (WebCore::AccessibilityRenderObject::accessibilityDescription):
1476         (WebCore::AccessibilityRenderObject::boundingBoxRect):
1477         (WebCore::AccessibilityRenderObject::elementRect):
1478         (WebCore::AccessibilityRenderObject::size):
1479         (WebCore::AccessibilityRenderObject::linkedUIElement):
1480         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
1481         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1482         (WebCore::AccessibilityRenderObject::isLoaded):
1483         (WebCore::AccessibilityRenderObject::layoutCount):
1484         (WebCore::AccessibilityRenderObject::text):
1485         (WebCore::AccessibilityRenderObject::textLength):
1486         (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
1487         (WebCore::AccessibilityRenderObject::selectedText):
1488         (WebCore::AccessibilityRenderObject::accessKey):
1489         (WebCore::AccessibilityRenderObject::selection):
1490         (WebCore::AccessibilityRenderObject::selectedTextRange):
1491         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
1492         (WebCore::AccessibilityRenderObject::url):
1493         (WebCore::AccessibilityRenderObject::isVisited):
1494         (WebCore::AccessibilityRenderObject::isSelected):
1495         (WebCore::AccessibilityRenderObject::isFocused):
1496         (WebCore::AccessibilityRenderObject::setFocused):
1497         (WebCore::AccessibilityRenderObject::setValue):
1498         (WebCore::AccessibilityRenderObject::isEnabled):
1499         (WebCore::AccessibilityRenderObject::topRenderer):
1500         (WebCore::AccessibilityRenderObject::widget):
1501         (WebCore::AccessibilityRenderObject::axObjectCache):
1502         (WebCore::AccessibilityRenderObject::getDocumentLinks):
1503         (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
1504         (WebCore::AccessibilityRenderObject::frameViewIfRenderView):
1505         (WebCore::AccessibilityRenderObject::visiblePositionRange):
1506         (WebCore::AccessibilityRenderObject::doAXTextMarkerRangeForLine):
1507         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
1508         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
1509         (WebCore::AccessibilityRenderObject::doAXBoundsForTextMarkerRange):
1510         (WebCore::AccessibilityRenderObject::doSetAXSelectedTextMarkerRange):
1511         (WebCore::AccessibilityRenderObject::doAXTextMarkerForPosition):
1512         (WebCore::AccessibilityRenderObject::textMarkerForIndex):
1513         (WebCore::AccessibilityRenderObject::indexForTextMarker):
1514         (WebCore::AccessibilityRenderObject::doAXRangeForLine):
1515         (WebCore::AccessibilityRenderObject::doAXRangeForIndex):
1516         (WebCore::AccessibilityRenderObject::doAXStringForRange):
1517         (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
1518         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
1519         (WebCore::AccessibilityRenderObject::focusedUIElement):
1520         (WebCore::AccessibilityRenderObject::observableObject):
1521         (WebCore::createARIARoleMap):
1522         (WebCore::RoleEntry::):
1523         (WebCore::ariaRoleToWebCoreRole):
1524         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
1525         (WebCore::AccessibilityRenderObject::roleValue):
1526         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
1527         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
1528         (WebCore::AccessibilityRenderObject::canSetTextRangeAttributes):
1529         (WebCore::AccessibilityRenderObject::childrenChanged):
1530         (WebCore::AccessibilityRenderObject::children):
1531         (WebCore::AccessibilityRenderObject::addChildren):
1532         (WebCore::AccessibilityRenderObject::removeAXObjectID):
1533         (WebCore::AccessibilityRenderObject::actionVerb):
1534         * page/AccessibilityRenderObject.h: Added.
1535         (WebCore::AccessibilityRenderObject::isAccessibilityRenderObject):
1536         (WebCore::AccessibilityRenderObject::areaElement):
1537         (WebCore::AccessibilityRenderObject::setRenderer):
1538         (WebCore::AccessibilityRenderObject::renderer):
1539         (WebCore::AccessibilityRenderObject::setRenderObject):
1540         (WebCore::AccessibilityRenderObject::isDetached):
1541         * page/mac/AXObjectCacheMac.mm:
1542         (WebCore::AXObjectCache::detachWrapper):
1543         (WebCore::AXObjectCache::selectedChildrenChanged):
1544         (WebCore::AXObjectCache::postNotification):
1545         * page/mac/AccessibilityObjectWrapper.mm:
1546         (textMarkerForVisiblePosition):
1547         (CreateCGColorIfDifferent):
1548         (AXAttributeStringSetHeadingLevel):
1549         (AXLinkElementForNode):
1550         (AXAttributeStringSetElement):
1551         (AXAttributedStringAppendText):
1552         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1553         (-[AccessibilityObjectWrapper documentFrameView:]):
1554         (-[AccessibilityObjectWrapper position]):
1555         (RoleEntry::):
1556         (-[AccessibilityObjectWrapper roleDescription]):
1557         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1558         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
1559         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1560         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
1561         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
1562         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
1563         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
1564
1565 2008-05-06  Jonathan Haas  <myrdred@gmail.com>
1566
1567         Reviewed by Rob Buis.
1568
1569         https://bugs.webkit.org/show_bug.cgi?id=18859\
1570         Prevented SVGRootInlineBox from static_casting a
1571         node to a class it doesn't inherit
1572         
1573         * rendering/SVGRootInlineBox.cpp:
1574         (WebCore::SVGRootInlineBox::buildTextChunks):
1575
1576 2008-05-06  Brady Eidson  <beidson@apple.com>
1577
1578         Reviewed by Darin Adler
1579
1580         Preparation for upcoming work making LocalStorage persistent.
1581
1582         When the application terminates, all pending local storage writes need to be
1583         sync'ed out to disk.
1584         This works n combination with platform specific code in WebKit that calls it.
1585
1586         * WebCore.base.exp:
1587
1588         * page/PageGroup.cpp:
1589         (WebCore::PageGroup::closeLocalStorage): Close all open LocalStorage objects
1590         * page/PageGroup.h:
1591
1592         * storage/LocalStorage.cpp:
1593         (WebCore::LocalStorage::close): Placeholder for what will sync and terminate the
1594           local storage thread in the future.
1595         * storage/LocalStorage.h:
1596
1597 2008-05-06  Brady Eidson  <beidson@apple.com>
1598
1599         Rubberstamped by David Kilzer
1600
1601         * WebCore.base.exp:  Sort this mess!
1602
1603 2008-05-05  Mark Rowe  <mrowe@apple.com>
1604
1605         Reviewed by Dan Bernstein.
1606
1607         Fix 60 crashes seen on the buildbots that were misreported as hangs.
1608
1609         * dom/Document.cpp:
1610         (WebCore::Document::detachNodeIterator): Null-check page() before dereferencing it.
1611         (WebCore::Document::nodeWillBeRemoved): Ditto.
1612         (WebCore::Document::textInserted): Ditto.
1613         (WebCore::Document::textNodesMerged): Ditto.
1614         (WebCore::Document::textRemoved): Ditto.
1615
1616 2008-05-05  Brady Eidson  <beidson@apple.com>
1617
1618         Reviewed by Mitz Pettel RTL
1619
1620         Preparation for upcoming work making LocalStorage persistent.
1621
1622         The other half of the StorageMap::importItem() addition.
1623
1624         * storage/StorageArea.cpp:
1625         (WebCore::StorageArea::importItem):
1626         * storage/StorageArea.h:
1627
1628 2008-05-05  Brady Eidson  <beidson@apple.com>
1629
1630         Reviewed by Mitz Pettel RTL
1631
1632         Preparation for upcoming work making LocalStorage persistent.
1633
1634         - Create the LocalStorage object for a PageGroup the moment the first Page is added to it
1635           The Settings of the first Page define what persistent path the LocalStorage will use
1636         - Add a Frame argument for the LocalStorageArea request - this will allow a client object
1637           to be queried before the LocalStorageArea is established
1638
1639         * page/DOMWindow.cpp:
1640         (WebCore::DOMWindow::localStorage):
1641
1642         * page/PageGroup.cpp:
1643         (WebCore::PageGroup::addPage):
1644         (WebCore::PageGroup::localStorage):
1645
1646         * storage/LocalStorage.cpp:
1647         (WebCore::LocalStorage::LocalStorage): Take the path as a constructor argument.  Deep copy
1648           the path as it will be used from another thread.
1649         (WebCore::LocalStorage::storageArea):
1650         * storage/LocalStorage.h:
1651         (WebCore::LocalStorage::create):
1652
1653 2008-05-05  Brady Eidson  <beidson@apple.com>
1654
1655         Reviewed by Mitz Pettel RTL
1656
1657         Preparation for upcoming work making LocalStorage persistent.
1658
1659         StorageMaps normally have copy-on-write semantics to help support SessionStorage.
1660         For LocalStorage, we never want this behavior.  When we forcefully import items into 
1661         a StorageMap from the LocalStorage background thread, this new import method will be used.
1662
1663         * storage/StorageMap.cpp:
1664         (WebCore::StorageMap::importItem): Add a deep-copy of the item to the map without worrying
1665           about copy-on-write.
1666         * storage/StorageMap.h:
1667
1668 2008-05-05  Kevin McCullough  <kmccullough@apple.com>
1669
1670         Reviewed by Tim.
1671
1672         -<rdar://problem/5770054> JavaScript profiler (10928)
1673         -Begininings of a UI for the Profiler in the WebInspector.
1674
1675         * English.lproj/InspectorLocalizedStrings.js: Add new strings to be
1676         localized.
1677         * page/inspector/DatabasesPanel.js: Changed the name of the Databae's
1678         results table to be more generic as it is now also used by the profiler.
1679         * page/inspector/Images/glossySelected.png: Added.
1680         * page/inspector/Images/profilesIcon.png: Added.
1681         * page/inspector/Images/treeUpTriangleBlack.png: Added.
1682         * page/inspector/Images/treeUpTriangleWhite.png: Added.
1683         * page/inspector/ProfileView.js: Added. Sets up the header of the table.
1684         * page/inspector/ProfilesPanel.js: Added.
1685         * page/inspector/ProfilesPanel.js: Added. Sets up the containers of the
1686         profiler's content.
1687         * page/inspector/inspector.css: Change database-result-table to be more
1688         generic as well as add the styles needed by the profiler.
1689         * page/inspector/inspector.html: Add profiler support.
1690
1691 2008-05-05  Brady Eidson  <beidson@apple.com>
1692
1693         Change by Darin, reviewed by Brady
1694
1695         Small efficiency improvement Darin just spotted
1696
1697         * storage/StorageMap.cpp:
1698         (WebCore::StorageMap::setItem):
1699
1700 2008-05-05  Antti Koivisto  <antti@apple.com>
1701
1702         Reviewed by Anders.
1703
1704         Fix https://bugs.webkit.org/show_bug.cgi?id=18899
1705         Bug 18899: REGRESSION (r32871): Non-Safari crash in WTF::HashTable on startup
1706
1707         * loader/loader.cpp:
1708         (WebCore::Loader::Loader):
1709
1710 2008-05-05  Brady Eidson  <beidson@apple.com>
1711
1712         Reviewed by Sam Weinig
1713
1714         Fix a bug in StorageMap iterator tracking where the iterator was not successfully
1715         invalidated at an appropriate time.
1716
1717         * storage/StorageMap.cpp:
1718         (WebCore::StorageMap::setItem): ALWAYS invalidate it here
1719
1720 2008-05-05  Justin Garcia  <justin.garcia@apple.com>
1721
1722         Reviewed by Darin.
1723
1724         <rdar://problem/5865171> REGRESSION: Creating a new quote places caret at beginning of quote instead of the end
1725         
1726         Disable Range mutation on document modifications in Tiger and Leopard Mail,
1727         since they do their own mutation which interferes with ours.
1728
1729         * WebCore.base.exp:
1730         * dom/Document.cpp:
1731         (WebCore::Document::nodeChildrenChanged):
1732         (WebCore::Document::nodeWillBeRemoved):
1733         (WebCore::Document::textInserted):
1734         (WebCore::Document::textRemoved):
1735         (WebCore::Document::textNodesMerged):
1736         (WebCore::Document::textNodeSplit):
1737         * page/Settings.cpp:
1738         (WebCore::Settings::Settings):
1739         (WebCore::Settings::disableRangeMutationForOldAppleMail):
1740         * page/Settings.h:
1741         (WebCore::Settings::rangeMutationDisabledForOldAppleMail):
1742
1743 2008-05-05  Sam Weinig  <sam@webkit.org>
1744
1745         Reviewed by Tim Hatcher.
1746
1747         Make the Inspector's localizable strings file match the format used by Dashboard widgets.
1748
1749         * English.lproj/InspectorLocalizedStrings.js: Removed.
1750         * English.lproj/localizedStrings.js: Added.
1751         * WebCore.vcproj/WebCore.vcproj:
1752         * WebCore.xcodeproj/project.pbxproj:
1753         * page/inspector/inspector.js:
1754
1755 2008-05-05  Steve Falkenburg  <sfalken@apple.com>
1756
1757         Add support for default button appearance.
1758         Add WebCore setting for app chrome mode.
1759         
1760         Reviewed by Dave Hyatt.
1761
1762         * css/CSSPrimitiveValueMappings.h:
1763         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1764         * css/CSSValueKeywords.in: Added default-button value keyword.
1765         * page/Settings.cpp:
1766         (WebCore::Settings::Settings):
1767         (WebCore::Settings::setApplicationChromeMode):
1768         * page/Settings.h:
1769         (WebCore::Settings::inApplicationChromeMode):
1770         * rendering/RenderButton.cpp:
1771         (WebCore::RenderButton::RenderButton):
1772         (WebCore::RenderButton::setStyle):
1773         (WebCore::RenderButton::timerFired):
1774         * rendering/RenderButton.h:
1775         * rendering/RenderStyle.h:
1776         (WebCore::):
1777         * rendering/RenderTheme.cpp:
1778         (WebCore::RenderTheme::adjustStyle):
1779         (WebCore::RenderTheme::paint):
1780         (WebCore::RenderTheme::paintBorderOnly):
1781         (WebCore::RenderTheme::paintDecorations):
1782         (WebCore::RenderTheme::isControlStyled):
1783         (WebCore::RenderTheme::isDefault):
1784         * rendering/RenderTheme.h:
1785         (WebCore::):
1786         * rendering/RenderThemeSafari.cpp:
1787         (WebCore::RenderThemeSafari::determineState):
1788         (WebCore::RenderThemeSafari::adjustRepaintRect):
1789         (WebCore::RenderThemeSafari::adjustButtonStyle):
1790         * rendering/RenderThemeWin.cpp:
1791         (WebCore::RenderThemeWin::supportsFocus):
1792
1793 2008-05-05  Alexey Proskuryakov  <ap@webkit.org>
1794
1795         Reviewed by Darin.
1796
1797         https://bugs.webkit.org/show_bug.cgi?id=11947
1798         nbsps should be converted to entities in innerHTML
1799
1800         https://bugs.webkit.org/show_bug.cgi?id=18769
1801         replacing &nbsp; with spaces using regexp creates inconsistent result
1802
1803         Tests: fast/dom/innerHTML-nbsp.html
1804                fast/dom/innerHTML-escaping-attribute.html
1805
1806         * editing/markup.cpp:
1807         (WebCore::appendAttributeValue):
1808         (WebCore::escapeContentText):
1809         (WebCore::appendEscapedContent):
1810         Added U+00a0/nbsp to the list of characters to escape.
1811
1812 2008-05-05  David Hyatt  <hyatt@apple.com>
1813
1814         Fix for https://bugs.webkit.org/show_bug.cgi?id=18821.  Fix some bugs in both get/PutImageData of <canvas>.
1815
1816         Reviewed by Eric
1817
1818         New tests added in fast/canvas/
1819
1820         * platform/graphics/cg/ImageBufferCG.cpp:
1821         (WebCore::ImageBuffer::getImageData):
1822         (WebCore::ImageBuffer::putImageData):
1823
1824 2008-05-05  Dan Bernstein  <mitz@apple.com>
1825
1826         Reviewed by Dave Hyatt.
1827
1828         - fix https://bugs.webkit.org/show_bug.cgi?id=18809
1829           Forms with block level generated content and absolutely positioned labels break inline layout (fixed on reflow)
1830
1831         Test: fast/block/basic/adding-near-anonymous-block.html
1832
1833         * rendering/RenderBlock.cpp:
1834         (WebCore::RenderBlock::addChildToFlow): When adding a floating or
1835         positioned object, if it follows an anonymous block, put it
1836         inside the anonymous block. When adding an inline, check if it comes
1837         after an anonymous block and put it in the anonymous block.
1838
1839 2008-05-05  Antti Koivisto  <antti@apple.com>
1840
1841         Reviewed by Darin.
1842
1843         Speculative fix for <rdar://problem/5906790> 
1844         Crash in Loader::servePendingRequests() due to hash table being modified during iteration
1845         
1846         I don't know how to reproduce this. It would require the load to fail (or succeed)
1847         synchronously, something that should not usually happen.
1848
1849         * loader/loader.cpp:
1850         (WebCore::Loader::Loader):
1851         (WebCore::Loader::load):
1852         (WebCore::Loader::servePendingRequests):
1853         (WebCore::Loader::cancelRequests):
1854         (WebCore::Loader::Host::Host):
1855         * loader/loader.h:
1856         (WebCore::Loader::Host::name):
1857
1858 2008-05-05  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1859
1860         Reviewed by Simon.
1861
1862         Disable SVG As Image support in the Qt port again, as it
1863         requires more work. Right now the chrome client is
1864         assumed to be a ChromeClientQt, which the SVG Image support
1865         changes.
1866
1867         * WebCore.pro:
1868
1869 2008-05-02  Antti Koivisto  <antti@apple.com>
1870
1871         Reviewed by Mitz.
1872
1873         Fix <rdar://problem/5840475>
1874         CrashTracer: [USER] 2 crashes in Safari at com.apple.WebCore: WebCore::RenderBlock::insertPositionedObject
1875         
1876         Non-block objects can have transforms so containingBlock() could end up returning null. 
1877         RenderObject::container() needs to match.
1878
1879         Test: fast/transforms/container-transform-crash.html
1880
1881         * rendering/RenderObject.cpp:
1882         (WebCore::RenderObject::containingBlock):
1883         (WebCore::RenderObject::container):
1884
1885 2008-05-04  Sam Weinig  <sam@webkit.org>
1886
1887         Roll out r32851.  It broke tiger builds.
1888
1889         * bindings/objc/DOMUtility.mm:
1890         (KJS::createDOMWrapper):
1891         (WebCore::createDOMWrapper):
1892
1893 2008-05-04  Dan Bernstein  <mitz@apple.com>
1894
1895         Reviewed by Sam Weinig.
1896
1897         - fix https://bugs.webkit.org/show_bug.cgi?id=18879
1898           <rdar://problem/5909481> Reproducible crash when removing a gradient
1899
1900         Test: fast/gradients/crash-on-remove.html
1901
1902         * css/CSSImageGeneratorValue.cpp:
1903         (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
1904         (WebCore::CSSImageGeneratorValue::addClient): Added a call to ref() the
1905         value.
1906         (WebCore::CSSImageGeneratorValue::removeClient): Added code to deref()
1907         the value.
1908
1909 2008-05-03  Sam Weinig  <sam@webkit.org>
1910
1911         Reviewed by Mark Rowe.
1912
1913         Move createDOMWrapper(JSObject* object) out of the KJS namespace and into
1914         the WebCore namespace now that the required compilers don't freak out about
1915         this anymore.
1916
1917         * bindings/objc/DOMUtility.mm:
1918         (WebCore::createDOMWrapper):
1919
1920 2008-05-03  Rob Buis  <buis@kde.org>
1921
1922         Reviewed by Sam.
1923
1924         https://bugs.webkit.org/show_bug.cgi?id=18652
1925         onchange events don't seem to fire for input[type=range] controls.
1926
1927         Fire changeEvent when clicking the slider outside the current
1928         thumb position.
1929
1930         * rendering/RenderSlider.cpp:
1931         (WebCore::RenderSlider::setValueForPosition):
1932
1933 2008-05-03  Sam Weinig  <sam@webkit.org>
1934
1935         Reviewed by Mark Rowe.
1936
1937         Remove unused enums from JSDOMWindowBase.
1938
1939         * bindings/js/JSDOMWindowBase.h:
1940         (WebCore::JSDOMWindowBase::):
1941
1942 2008-05-03  Sam Weinig  <sam@webkit.org>
1943
1944         Real build fix.
1945
1946         * WebCore.xcodeproj/project.pbxproj:
1947
1948 2008-05-03  Sam Weinig  <sam@webkit.org>
1949
1950         Build fix.
1951
1952         * bindings/js/kjs_events.cpp:
1953         (WebCore::JSAbstractEventListener::handleEvent):
1954
1955 2008-05-03  Sam Weinig  <sam@webkit.org>
1956
1957         Rubber-stamped by Geoffrey Garen.
1958
1959         Rename JSDOMWindowWrapper to JSDOMWindowShell.
1960
1961 2008-05-01  Rob Buis  <buis@kde.org>
1962
1963         Reviewed by Eric.
1964
1965         https://bugs.webkit.org/show_bug.cgi?id=18568
1966         background: currentColor fails
1967
1968         Implement currentColor from CSS3 color module.
1969
1970         Tests: fast/css/background-currentcolor.html
1971
1972         * css/CSSParser.cpp:
1973         (WebCore::CSSParser::parseValue):
1974         (WebCore::CSSParser::parseBackgroundColor):
1975         * css/CSSStyleSelector.cpp:
1976         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
1977         * css/CSSValueKeywords.in:
1978         * css/SVGCSSValueKeywords.in:
1979
1980 2008-05-02  Anders Carlsson  <andersca@apple.com>
1981
1982         Reviewed by Mark.
1983
1984         Turns out calling locationInWindow on keyboard events will not throw an exception,
1985         but the point returned is completely bogus, so remove coordinates from the keyboard event struct.
1986         
1987         * bridge/npapi.h:
1988         (_NPCocoaEvent::):
1989
1990 2008-05-02  Benjamin Otte  <otte@gnome.org>
1991
1992         Reviewed by Alp Toker.
1993
1994         http://bugs.webkit.org/show_bug.cgi?id=18856
1995         [GTK] variable initialization missing
1996
1997         Not initializing the m_needsXEmbed variable could have very funny
1998         results. Most often those results would be crashes.
1999
2000         * plugins/PluginView.cpp:
2001         (WebCore::PluginView::PluginView):
2002
2003 2008-05-02  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
2004
2005         Reviewed by Eric.
2006
2007         https://bugs.webkit.org/show_bug.cgi?id=18811
2008         Enable dashboard and offline web apps in autotools
2009
2010         * GNUmakefile.am:
2011
2012 2008-05-02  Anders Carlsson  <andersca@apple.com>
2013
2014         Reviewed by Sam.
2015
2016         Name the event union so it will work in plain C.
2017
2018         * bridge/npapi.h:
2019         (_NPCocoaEvent::):
2020
2021 2008-05-02  Dan Bernstein  <mitz@apple.com>
2022
2023         Reviewed by John Sullivan.
2024
2025         - render text shadows with zero offset, as the shadow can be seen behind
2026           the text if the text is translucent
2027
2028         Test: fast/text/shadow-no-blur.html
2029
2030         * platform/graphics/mac/FontMac.mm:
2031         (WebCore::Font::drawComplexText): Removed the isEmpty() condition on the
2032         shadow offset. Since isEmpty() is also true for sizes that have one or
2033         more non-positive components, this also ensures that subpixel
2034         antialiasing of the text is maintained with shadows in all directions.
2035         (WebCore::Font::drawGlyphs): Ditto.
2036         * platform/graphics/win/FontCGWin.cpp:
2037         (WebCore::Font::drawGlyphs): Ditto.
2038
2039 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2040
2041         Reviewed by Simon.
2042
2043         Build the Qt port with SVG Use and As Image support.
2044
2045         * WebCore.pro:
2046
2047 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2048
2049         Reviewed by Simon.
2050
2051         Fixed potential crash on SVG animation (added more checks to the assert).
2052
2053         * svg/SVGUseElement.cpp:
2054         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2055
2056 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
2057
2058         Rubber-stamped by John Sullivan.
2059
2060         Fix a debug-only crash in layout tests.
2061
2062         * loader/CachedResource.cpp:
2063         (WebCore::CachedResource::~CachedResource): Don't call resourceForURL() for null URLs.
2064
2065 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
2066
2067         Fix the Qt build on Windows when Phonon is enabled for Audio/Video support
2068
2069         * WebCore.pro: Don't use QT += phonon as it prepends the phonon
2070         includes to the include paths. Instead add it manually and make sure
2071         phonon comes last, to avoid the conflict of phonon's path.h with
2072         WebCore's Path.h on case-insensitive filesystems.
2073
2074 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
2075
2076         Fix the Qt build. Add ExecState where necessary.
2077
2078         * bridge/qt/qt_class.cpp:
2079         (KJS::Bindings::QtClass::fallbackObject):
2080         * bridge/qt/qt_instance.cpp:
2081         (KJS::Bindings::QtRuntimeObjectImp::construct):
2082         (KJS::Bindings::QtInstance::getRuntimeObject):
2083         (KJS::Bindings::QtInstance::invokeDefaultMethod):
2084         (KJS::Bindings::QtInstance::defaultValue):
2085         (KJS::Bindings::QtInstance::stringValue):
2086         * bridge/qt/qt_instance.h:
2087         (KJS::Bindings::QtInstance::getObject):
2088         * bridge/qt/qt_runtime.cpp:
2089         (KJS::Bindings::convertValueToQVariant):
2090         (KJS::Bindings::convertQVariantToValue):
2091         (KJS::Bindings::QtRuntimeMetaMethod::lengthGetter):
2092         (KJS::Bindings::QtRuntimeMetaMethod::connectGetter):
2093         (KJS::Bindings::QtRuntimeMetaMethod::disconnectGetter):
2094         (KJS::Bindings::QtRuntimeConnectionMethod::lengthGetter):
2095         (KJS::Bindings::QtConnectionObject::execute):
2096         * bridge/runtime.cpp:
2097         (KJS::Bindings::Instance::createRuntimeObject):
2098
2099 2008-05-02  Simon Hausmann  <shausman@trolltech.com>
2100
2101         Fix the Qt/Win build.
2102
2103         * WebCore.pro:
2104         * platform/qt/TemporaryLinkStubs.cpp:
2105         (PluginDatabase::getPluginPathsInDirectories):
2106         (PluginDatabase::defaultPluginDirectories):
2107         (PluginDatabase::isPreferredPluginDirectory):
2108         (PluginView::setNPWindowRect):
2109         (PluginView::userAgent):
2110         (PluginView::invalidateRect):
2111         (PluginView::invalidateRegion):
2112         (PluginView::forceRedraw):
2113         (PluginView::setFocus):
2114         (PluginView::show):
2115         (PluginView::hide):
2116         (PluginView::paint):
2117         (PluginView::setParent):
2118         (PluginView::attachToWindow):
2119         (PluginView::detachFromWindow):
2120         (PluginView::updateWindow):
2121         (PluginView::handleKeyboardEvent):
2122         (PluginView::handleMouseEvent):
2123         (PluginView::handlePostReadFile):
2124         (PluginView::getValue):
2125         * plugins/qt/PluginPackageQt.cpp:
2126         (WebCore::PluginPackage::load):
2127
2128 2008-05-02  Alexey Proskuryakov  <ap@webkit.org>
2129
2130         Reviewed by Geoffrey Garen.
2131
2132         https://bugs.webkit.org/show_bug.cgi?id=18826
2133         Make JavaScript heap per-thread
2134
2135         This is mostly adaptation for JSC changes. The most prominent one is that JSObject
2136         allocator now takes ExecState, e.g. "new (exec) JSXMLHttpRequestConstructor(...)". It is
2137         OK to pass either the current or global one, whichever is faster to get hold of, as both
2138         have the same reference to a per-thread JS heap.
2139
2140         * bindings/scripts/CodeGeneratorJS.pm: Pass ExecState to functions that now need it.
2141         JSDOMWindow, JSDOMWindowPrototype and JSDOMWindowWrapper are special, because they are
2142         constructed before any ExecState comes into existence, so they use Heap::threadHeap()
2143         directly for allocation.
2144
2145         * bindings/js/JSDOMWindowWrapper.cpp:
2146         (WebCore::JSDOMWindowWrapper::operator new):
2147         * bindings/js/JSDOMWindowWrapper.h:
2148         Added a custom operator new to use per-thread heap when there's no ExecState around.
2149
2150         * bindings/js/JSAudioConstructor.cpp:
2151         (WebCore::JSAudioConstructor::JSAudioConstructor):
2152         * bindings/js/JSCSSRuleCustom.cpp:
2153         (WebCore::toJS):
2154         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2155         (WebCore::JSCSSStyleDeclaration::nameGetter):
2156         * bindings/js/JSCSSValueCustom.cpp:
2157         (WebCore::toJS):
2158         * bindings/js/JSCanvasPixelArrayCustom.cpp:
2159         (WebCore::JSCanvasPixelArray::indexGetter):
2160         (WebCore::toJS):
2161         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2162         (WebCore::toJS):
2163         * bindings/js/JSClipboardCustom.cpp:
2164         (WebCore::JSClipboard::types):
2165         (WebCore::JSClipboard::getData):
2166         * bindings/js/JSCustomXPathNSResolver.cpp:
2167         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2168         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2169         (WebCore::JSDOMApplicationCache::addEventListener):
2170         (WebCore::JSDOMApplicationCache::removeEventListener):
2171         (WebCore::JSDOMApplicationCache::setOnchecking):
2172         (WebCore::JSDOMApplicationCache::setOnerror):
2173         (WebCore::JSDOMApplicationCache::setOnnoupdate):
2174         (WebCore::JSDOMApplicationCache::setOndownloading):
2175         (WebCore::JSDOMApplicationCache::setOnprogress):
2176         (WebCore::JSDOMApplicationCache::setOnupdateready):
2177         (WebCore::JSDOMApplicationCache::setOncached):
2178         * bindings/js/JSDOMWindowBase.cpp:
2179         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
2180         (WebCore::JSDOMWindowBase::getValueProperty):
2181         (WebCore::JSDOMWindowBase::setListener):
2182         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
2183         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
2184         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
2185         (WebCore::windowProtoFuncAToB):
2186         (WebCore::windowProtoFuncBToA):
2187         (WebCore::windowProtoFuncSetTimeout):
2188         (WebCore::windowProtoFuncSetInterval):
2189         (WebCore::windowProtoFuncAddEventListener):
2190         * bindings/js/JSDOMWindowBase.h:
2191         * bindings/js/JSDocumentCustom.cpp:
2192         (WebCore::toJS):
2193         * bindings/js/JSEventCustom.cpp:
2194         (WebCore::toJS):
2195         * bindings/js/JSEventTargetBase.cpp:
2196         (WebCore::jsEventTargetAddEventListener):
2197         * bindings/js/JSEventTargetBase.h:
2198         (WebCore::JSEventTargetPrototype::self):
2199         * bindings/js/JSEventTargetNode.cpp:
2200         (WebCore::JSEventTargetNode::setListener):
2201         * bindings/js/JSHTMLCollectionCustom.cpp:
2202         (WebCore::getNamedItems):
2203         (WebCore::toJS):
2204         * bindings/js/JSHTMLElementWrapperFactory.cpp:
2205         (WebCore::createJSHTMLWrapper):
2206         * bindings/js/JSHTMLFormElementCustom.cpp:
2207         (WebCore::JSHTMLFormElement::nameGetter):
2208         * bindings/js/JSHTMLInputElementBase.cpp:
2209         (WebCore::JSHTMLInputElementBase::getValueProperty):
2210         * bindings/js/JSHTMLOptionElementConstructor.cpp:
2211         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
2212         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2213         (WebCore::JSHTMLOptionsCollection::length):
2214         * bindings/js/JSInspectedObjectWrapper.cpp:
2215         (WebCore::JSInspectedObjectWrapper::wrap):
2216         * bindings/js/JSInspectorCallbackWrapper.cpp:
2217         (WebCore::JSInspectorCallbackWrapper::wrap):
2218         * bindings/js/JSLocationCustom.cpp:
2219         (WebCore::JSLocation::toString):
2220         * bindings/js/JSNamedNodesCollection.cpp:
2221         (WebCore::JSNamedNodesCollection::lengthGetter):
2222         * bindings/js/JSNavigatorCustom.cpp:
2223         (WebCore::JSNavigator::appVersion):
2224         * bindings/js/JSNodeCustom.cpp:
2225         (WebCore::toJS):
2226         * bindings/js/JSNodeFilterCustom.cpp:
2227         (WebCore::JSNodeFilter::acceptNode):
2228         * bindings/js/JSRGBColor.cpp:
2229         (WebCore::getJSRGBColor):
2230         * bindings/js/JSSQLResultSetRowListCustom.cpp:
2231         (WebCore::JSSQLResultSetRowList::item):
2232         * bindings/js/JSSVGElementWrapperFactory.cpp:
2233         (WebCore::createJSSVGWrapper):
2234         * bindings/js/JSSVGLazyEventListener.cpp:
2235         (WebCore::JSSVGLazyEventListener::eventParameterName):
2236         * bindings/js/JSStorageCustom.cpp:
2237         (WebCore::JSStorage::nameGetter):
2238         * bindings/js/JSStyleSheetCustom.cpp:
2239         (WebCore::toJS):
2240         * bindings/js/JSXMLHttpRequestConstructor.cpp:
2241         (WebCore::JSXMLHttpRequestConstructor::construct):
2242         * bindings/js/JSXMLHttpRequestCustom.cpp:
2243         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
2244         (WebCore::JSXMLHttpRequest::setOnload):
2245         (WebCore::JSXMLHttpRequest::setOnprogress):
2246         (WebCore::JSXMLHttpRequest::getResponseHeader):
2247         (WebCore::JSXMLHttpRequest::addEventListener):
2248         (WebCore::JSXMLHttpRequest::removeEventListener):
2249         * bindings/js/JSXSLTProcessor.cpp:
2250         (WebCore::jsXSLTProcessorPrototypeFunctionGetParameter):
2251         (WebCore::JSXSLTProcessorConstructor::construct):
2252         * bindings/js/kjs_binding.cpp:
2253         (WebCore::jsStringOrNull):
2254         (WebCore::jsOwnedStringOrNull):
2255         (WebCore::jsStringOrUndefined):
2256         (WebCore::jsStringOrFalse):
2257         (WebCore::nonCachingStaticFunctionGetter):
2258         (WebCore::objectToStringFunctionGetter):
2259         * bindings/js/kjs_binding.h:
2260         (WebCore::DOMObject::DOMObject):
2261         (WebCore::cacheDOMObject):
2262         (WebCore::cacheSVGDOMObject):
2263         * bindings/js/kjs_events.cpp:
2264         (WebCore::JSLazyEventListener::eventParameterName):
2265         (WebCore::JSLazyEventListener::parseCode):
2266         * bindings/js/kjs_html.cpp:
2267         (WebCore::getRuntimeObject):
2268         * bridge/c/c_instance.cpp:
2269         (KJS::Bindings::CInstance::defaultValue):
2270         (KJS::Bindings::CInstance::stringValue):
2271         (KJS::Bindings::CInstance::numberValue):
2272         (KJS::Bindings::CInstance::valueOf):
2273         * bridge/c/c_instance.h:
2274         * bridge/c/c_utility.cpp:
2275         (KJS::Bindings::convertNPVariantToValue):
2276         * bridge/jni/jni_instance.cpp:
2277         (JavaInstance::stringValue):
2278         (JavaInstance::numberValue):
2279         (JavaInstance::invokeMethod):
2280         (JavaInstance::defaultValue):
2281         (JavaInstance::valueOf):
2282         * bridge/jni/jni_instance.h:
2283         * bridge/jni/jni_jsobject.h:
2284         * bridge/jni/jni_jsobject.mm:
2285         (JavaJSObject::call):
2286         (JavaJSObject::setMember):
2287         (JavaJSObject::setSlot):
2288         (JavaJSObject::convertJObjectToValue):
2289         (JavaJSObject::getListFromJArray):
2290         * bridge/jni/jni_objc.mm:
2291         (KJS::Bindings::dispatchJNICall):
2292         * bridge/jni/jni_runtime.cpp:
2293         (JavaArray::convertJObjectToArray):
2294         (JavaField::dispatchValueFromInstance):
2295         (JavaField::valueFromInstance):
2296         (JavaField::dispatchSetValueToInstance):
2297         (JavaArray::valueAt):
2298         * bridge/jni/jni_utility.h:
2299         * bridge/objc/objc_class.mm:
2300         (KJS::Bindings::ObjcClass::fallbackObject):
2301         * bridge/objc/objc_instance.h:
2302         * bridge/objc/objc_instance.mm:
2303         (ObjcInstance::defaultValue):
2304         (ObjcInstance::stringValue):
2305         (ObjcInstance::numberValue):
2306         (ObjcInstance::valueOf):
2307         * bridge/objc/objc_utility.h:
2308         * bridge/objc/objc_utility.mm:
2309         (KJS::Bindings::convertNSStringToString):
2310         (KJS::Bindings::convertObjcValueToValue):
2311         * bridge/runtime.cpp:
2312         (KJS::Bindings::Instance::createRuntimeObject):
2313         * bridge/runtime.h:
2314         (KJS::Bindings::Instance::valueOf):
2315         * bridge/runtime_array.cpp:
2316         (RuntimeArray::lengthGetter):
2317         * bridge/runtime_method.cpp:
2318         (RuntimeMethod::lengthGetter):
2319         * bridge/runtime_object.cpp:
2320         (RuntimeObjectImp::RuntimeObjectImp):
2321         (RuntimeObjectImp::methodGetter):
2322         (RuntimeObjectImp::defaultValue):
2323         * xml/XMLHttpRequest.cpp:
2324         (WebCore::XMLHttpRequest::dropProtection):
2325         * bindings/js/GCController.cpp:
2326         (WebCore::GCController::gcTimerFired):
2327         (WebCore::GCController::garbageCollectNow):
2328         Adapted to JSC changes. Pass ExecState to functions that now need it. Removed
2329         collectOnMainThreadOnly, as this is the only way to collect now. Replaced calls to static
2330         Collector methods with calls to per-thread Heap ones.
2331
2332 2008-05-02  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2333
2334         Reviewed by Simon.
2335
2336         Build the Qt port with SVG Animation support.
2337
2338         * WebCore.pro:
2339
2340 2008-05-02  Simon Hausmann  <hausmann@webkit.org>
2341
2342         Build fix for Qt/Gtk. Don't declare NP_InitializeFuncPtr twice
2343         with different signatures.
2344
2345         * plugins/npfunctions.h:
2346
2347 2008-05-01  Robin Dunn  <robin@alldunn.com>
2348
2349         Reviewed by Kevin Ollivier.
2350
2351         Explicitly set the pen style in wx port to keep pen style changes from 
2352         affecting URL underline or text field drawing.
2353         
2354         https://bugs.webkit.org/show_bug.cgi?id=18775
2355
2356         * platform/graphics/wx/GraphicsContextWx.cpp:
2357         (WebCore::GraphicsContext::fillRect):
2358         (WebCore::GraphicsContext::drawLineForText):
2359         * platform/wx/RenderThemeWx.cpp:
2360         (WebCore::RenderThemeWx::paintTextField):
2361
2362 2008-05-01  Robin Dunn  <robin@alldunn.com>
2363
2364         Reviewed by Kevin Ollivier.
2365
2366         Implement popup menu support for wx port.
2367         
2368         https://bugs.webkit.org/show_bug.cgi?id=18776
2369
2370         * platform/PopupMenu.h:
2371         * platform/wx/PopupMenuWx.cpp: Added.
2372         (WebCore::PopupMenu::PopupMenu):
2373         (WebCore::PopupMenu::~PopupMenu):
2374         (WebCore::PopupMenu::show):
2375         (WebCore::PopupMenu::OnMenuItemSelected):
2376         (WebCore::PopupMenu::hide):
2377         (WebCore::PopupMenu::updateFromElement):
2378         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
2379         * platform/wx/TemporaryLinkStubs.cpp:
2380         * webcore-wx.bkl:
2381
2382 2008-05-01  Kevin Ollivier  <kevino@theolliviers.com>
2383
2384         Reviewed by Eric Seidel.
2385
2386         Make sure we properly set the button for all mouse events,
2387         not just mouse down, set the click count to 0
2388         for non-click events, and finally set the timestamp.
2389         
2390         https://bugs.webkit.org/show_bug.cgi?id=18464
2391
2392         * platform/wx/MouseEventWx.cpp:
2393         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
2394
2395 2008-05-01  Sam Weinig  <sam@webkit.org>
2396
2397         Reviewed by Mark Rowe (in his infinite wisdom).
2398
2399         Auto-generate the JSXSLTProcessor binding.
2400
2401         * DerivedSources.make:
2402         * GNUmakefile.am:
2403         * WebCore.pro:
2404         * WebCore.vcproj/WebCore.vcproj:
2405         * WebCore.xcodeproj/project.pbxproj:
2406         * WebCoreSources.bkl:
2407         * bindings/js/JSDOMWindowBase.cpp:
2408         (WebCore::JSDOMWindowBase::getValueProperty):
2409         * bindings/js/JSDOMWindowBase.h:
2410         (WebCore::JSDOMWindowBase::):
2411         * bindings/js/JSXSLTProcessor.cpp: Removed.
2412         * bindings/js/JSXSLTProcessor.h: Removed.
2413         * xml/XSLTProcessor.h:
2414
2415 2008-05-01  Sam Weinig  <sam@webkit.org>
2416
2417         Reviewed by Geoffrey Garen.
2418
2419         Fixes:
2420           - https://bugs.webkit.org/show_bug.cgi?id=17249
2421             Incorrect lexical scope after navigation leads to UXSS
2422             <rdar://problem/5738497>
2423
2424           - https://bugs.webkit.org/show_bug.cgi?id=16824
2425             Script authorization should follow lexical (not dynamic) scope
2426             <rdar://problem/5683032>
2427
2428         This patch changes us to perform same-origin checks based on the lexical global object) 
2429         rather than dynamic global object, which is now possible we don't re-use the window on 
2430         navigations, but rather switch in a new one and re-use the outer shell.  This is both
2431         more secure and conforms with the HTML5 specification.  Now that all the checks are
2432         done based on the lexical global object, we can remove the SecurityOrigin::Reason
2433         concept, as it was only around to work around an ebay.com bug that required the check to
2434         be done that way.
2435
2436         An important thing to note is that we currently implement a stricter than necessary policy
2437         and perform the same-origin check based on the currently active global object to avoid leaking
2438         the document in cases when the target frame is navigated before access.  This will be fixed in
2439         an upcoming patch.
2440
2441         * bindings/js/JSDOMWindowBase.cpp:
2442         (WebCore::JSDOMWindowBase::allowsAccessFrom):
2443         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
2444         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
2445         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
2446         (WebCore::JSDOMWindowBase::printErrorMessage):
2447         (WebCore::asJSDOMWindow):
2448         * bindings/js/JSDOMWindowBase.h:
2449         * html/CanvasRenderingContext2D.cpp:
2450         (WebCore::CanvasRenderingContext2D::checkOrigin):
2451         (WebCore::CanvasRenderingContext2D::createPattern):
2452         * loader/FrameLoader.cpp:
2453         (WebCore::FrameLoader::begin):
2454         (WebCore::FrameLoader::write):
2455         (WebCore::FrameLoader::setOpener):
2456         (WebCore::FrameLoader::shouldAllowNavigation):
2457         * page/DOMWindow.h:
2458         (WebCore::DOMWindow::setSecurityOrigin):
2459         (WebCore::DOMWindow::securityOrigin):
2460         (WebCore::DOMWindow::setURL):
2461         (WebCore::DOMWindow::url):
2462         * platform/SecurityOrigin.cpp:
2463         (WebCore::SecurityOrigin::canAccess):
2464         (WebCore::SecurityOrigin::isSecureTransitionTo):
2465         * platform/SecurityOrigin.h:
2466
2467 2008-05-01  Anders Carlsson  <andersca@apple.com>
2468
2469         Reviewed by Mark.
2470
2471         Enable 64-bit NPAPI plugins.
2472         
2473         * WebCore.xcodeproj/project.pbxproj:
2474         Don't remove NPAPI related symbols from the 64-bit .exp file.
2475         
2476         * bridge/npruntime.h:
2477         Remove now unnecessary #error.
2478
2479 2008-05-01  Maciej Stachowiak  <mjs@apple.com>
2480
2481         Reviewed by Oliver (a while ago)
2482
2483         - just a wee bit more bindings speedup
2484         
2485         Store the per-document Node --> JS wrapper cache in the document
2486         instead of an external hashtable.
2487
2488         * bindings/js/kjs_binding.cpp:
2489         (WebCore::ScriptInterpreter::getDOMNodeForDocument):
2490         (WebCore::ScriptInterpreter::forgetDOMNodeForDocument):
2491         (WebCore::ScriptInterpreter::putDOMNodeForDocument):
2492         (WebCore::ScriptInterpreter::forgetAllDOMNodesForDocument):
2493         (WebCore::ScriptInterpreter::markDOMNodesForDocument):
2494         * dom/Document.h:
2495         (WebCore::Document::wrapperCache):
2496
2497 2008-05-01  Anders Carlsson  <andersca@apple.com>
2498
2499         Reviewed by Tim.
2500
2501         Remove duplicate npfunctions.h header from WebKit.
2502         
2503         * WebCore.xcodeproj/project.pbxproj:
2504         Add npfunctions.h and set its role to private.
2505         
2506         * plugins/npfunctions.h:
2507         Merge Mac specific changes.
2508
2509 2008-05-01  Sam Weinig  <sam@webkit.org>
2510
2511         Reviewed by Geoffrey Garen.
2512
2513         Rename toJSDOMWindow(KJS::JSGlobalObject) to asJSDOMWindow, as all it does is
2514         cast.
2515
2516         * bindings/js/JSCustomVoidCallback.cpp:
2517         (WebCore::toVoidCallback):
2518         * bindings/js/JSCustomXPathNSResolver.cpp:
2519         (WebCore::JSCustomXPathNSResolver::create):
2520         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2521         (WebCore::JSDOMApplicationCache::add):
2522         (WebCore::JSDOMApplicationCache::remove):
2523         * bindings/js/JSDOMWindowBase.cpp:
2524         (WebCore::allowPopUp):
2525         (WebCore::createWindow):
2526         (WebCore::windowProtoFuncOpen):
2527         (WebCore::asJSDOMWindow):
2528         * bindings/js/JSDOMWindowBase.h:
2529         * bindings/js/JSDOMWindowCustom.cpp:
2530         (WebCore::JSDOMWindow::setLocation):
2531         (WebCore::JSDOMWindow::postMessage):
2532         * bindings/js/JSDatabaseCustom.cpp:
2533         (WebCore::JSDatabase::changeVersion):
2534         (WebCore::JSDatabase::transaction):
2535         * bindings/js/JSDocumentCustom.cpp:
2536         (WebCore::JSDocument::setLocation):
2537         * bindings/js/JSLocationCustom.cpp:
2538         (WebCore::navigateIfAllowed):
2539         (WebCore::JSLocation::setHref):
2540         (WebCore::JSLocation::replace):
2541         (WebCore::JSLocation::reload):
2542         (WebCore::JSLocation::assign):
2543         * bindings/js/JSSQLTransactionCustom.cpp:
2544         (WebCore::JSSQLTransaction::executeSql):
2545         * bindings/js/JSXMLHttpRequestCustom.cpp:
2546         (WebCore::JSXMLHttpRequest::open):
2547         * page/JavaScriptDebugServer.cpp:
2548         (WebCore::toPage):
2549
2550 2008-05-01  Anatoli Papirovski  <apapirovski@mac.com>
2551
2552         Reviewed by Dave Hyatt.
2553
2554         - fix https://bugs.webkit.org/show_bug.cgi?id=18347
2555           Absolutely positioned image percentage width does not respect container's padding
2556
2557         Test: fast/replaced/absolute-position-percentage-width.html
2558
2559         * rendering/RenderBox.cpp:
2560         (WebCore::RenderBox::calcReplacedWidthUsing):
2561
2562 2008-05-01  Dan Bernstein  <mitz@apple.com>
2563
2564         - Windows build fix
2565
2566         * platform/graphics/win/FontCGWin.cpp:
2567         (WebCore::Font::drawGlyphs):
2568
2569 2008-05-01  Dan Bernstein  <mitz@apple.com>
2570
2571         Reviewed by Darin Adler.
2572
2573         - make synthetic bold and synthetic italics work in GDI text
2574         - account for synthetic bold in complex text on Windows
2575
2576         * platform/graphics/win/FontCGWin.cpp:
2577         (WebCore::Font::drawGlyphs): Adjusted the text rectangle's x coordinates
2578         to fit italics. Added a skew transform for synthetic italics and a
2579         second paint pass for synthetic bold.
2580         * platform/graphics/win/SimpleFontDataWin.cpp:
2581         (WebCore::SimpleFontData::widthForGDIGlyph): Added the synthetic bold
2582         offset.
2583         * platform/graphics/win/UniscribeController.cpp:
2584         (WebCore::UniscribeController::shapeAndPlaceItem): Added the synthetic
2585         bold offset.
2586
2587 2008-05-01  Alp Toker  <alp@nuanti.com>
2588
2589         Qt/Win build fix attempt following plugin changes. Add missing return
2590         statements.
2591
2592         Also fixes some newly introduced coding style issues in the Qt port.
2593
2594         * platform/qt/FileSystemQt.cpp:
2595         (WebCore::openTemporaryFile):
2596         (WebCore::closeFile):
2597         (WebCore::writeToFile):
2598         (WebCore::unloadModule):
2599
2600 2008-05-01  Anders Carlsson  <andersca@apple.com>
2601
2602         Reviewed by Adam.
2603
2604         Export methods needed to subclass Widget.  (See r32770.)
2605
2606         * WebCore.base.exp:
2607
2608 2008-05-01  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
2609
2610         Reviewed by Alp Toker.
2611         Qt parts OK'ed by Simon Hausmann.
2612
2613         https://bugs.webkit.org/show_bug.cgi?id=14750
2614         Added support for NPAPI plugins on Gtk and Qt-x11 ports.
2615
2616         * GNUmakefile.am: Added Gtk plugin files.
2617         * WebCore.pro: Added Qt plugins files, defined XP_UNIX and
2618         ENABLE_NETSCAPE_PLUGIN_API
2619         * bridge/npruntime_internal.h: Additional undefs that conflict
2620         with Qt headers.
2621         * page/gtk/FrameGtk.cpp: Create js bindings for PluginView.
2622         (WebCore::Frame::createScriptInstanceForWidget):
2623         * page/qt/FrameQt.cpp: Create js bindings for PluginView.
2624         (WebCore::Frame::createScriptInstanceForWidget):
2625         (WebCore::Frame::clearPlatformScriptObjects):
2626         (WebCore::Frame::disconnectPlatformScriptObjects):
2627         * platform/FileSystem.h: Qt FileSystem implementation.
2628         * platform/Widget.h: Members to differentiate between Qt plugins and
2629         NPAPI ones.
2630         * platform/gtk/ScrollViewGtk.cpp:
2631         (WebCore::ScrollView::addChild): Set containing window before calling setParent.
2632         * platform/gtk/TemporaryLinkStubs.cpp: Removed implemented functions.
2633         (PluginView::invalidateRegion):
2634         * platform/qt/FileSystemQt.cpp: Implemented functions necessary for
2635         NPAPI plugins.
2636         (WebCore::openTemporaryFile):
2637         (WebCore::closeFile):
2638         (WebCore::writeToFile):
2639         (WebCore::unloadModule): Delete module if unloaded.
2640         * platform/qt/TemporaryLinkStubs.cpp: Removed implemented functions.
2641         * platform/qt/WidgetQt.cpp: Differentiate between Qt plugins and
2642         NPAPI ones.
2643         (WebCore::WidgetPrivate::WidgetPrivate):
2644         (WebCore::Widget::isNPAPIPlugin):
2645         (WebCore::Widget::setIsNPAPIPlugin):
2646         * plugins/PluginPackage.cpp:
2647         (WebCore::PluginPackage::~PluginPackage): Unload the module before
2648         destruction.
2649         (WebCore::PluginPackage::compare): Moved here as it's platform
2650         independent.
2651         * plugins/PluginView.cpp: Moved platform-independent functions here.
2652         (WebCore::PluginView::PluginView): Initialize m_npWindow.ws_info on
2653         Unix platforms.
2654         (WebCore::PluginView::freeStringArray):
2655         (WebCore::startsWithBlankLine):
2656         (WebCore::locationAfterFirstBlankLine):
2657         (WebCore::findEOL):
2658         (WebCore::capitalizeRFC822HeaderFieldName):
2659         (WebCore::parseRFC822HeaderFields):
2660         (WebCore::PluginView::handlePost):
2661         * plugins/PluginView.h: Moved platform-independent functions here.
2662         Added member to signal plugin needs XEmbed extension.
2663         * plugins/gtk/PluginDataGtk.cpp: Added.
2664         (WebCore::PluginData::initPlugins):
2665         (WebCore::PluginData::refresh):
2666         * plugins/gtk/PluginDatabaseGtk.cpp:
2667         (WebCore::PluginDatabase::defaultPluginDirectories):
2668         (WebCore::PluginDatabase::isPreferredPluginDirectory):
2669         * plugins/gtk/PluginPackageGtk.cpp: Added.
2670         (WebCore::PluginPackage::determineQuirks):
2671         (WebCore::PluginPackage::fetchInfo):
2672         (WebCore::PluginPackage::load):
2673         (WebCore::PluginPackage::hash):
2674         (WebCore::PluginPackage::equal):
2675         (WebCore::PluginPackage::compareFileVersion):
2676         * plugins/gtk/PluginViewGtk.cpp: Added.
2677         (WebCore::PluginView::updateWindow):
2678         (WebCore::PluginView::setFocus):
2679         (WebCore::PluginView::show):
2680         (WebCore::PluginView::hide):
2681         (WebCore::PluginView::paint):
2682         (WebCore::PluginView::handleKeyboardEvent):
2683         (WebCore::PluginView::handleMouseEvent):
2684         (WebCore::PluginView::setParent):
2685         (WebCore::PluginView::setNPWindowRect):
2686         (WebCore::PluginView::attachToWindow):
2687         (WebCore::PluginView::detachFromWindow):
2688         (WebCore::PluginView::stop):
2689         (WebCore::PluginView::userAgent):
2690         (WebCore::PluginView::handlePostReadFile):
2691         (WebCore::PluginView::getValue):
2692         (WebCore::PluginView::invalidateRect):
2693         (WebCore::PluginView::forceRedraw):
2694         (WebCore::PluginView::~PluginView):
2695         (WebCore::plug_removed_cb): Added callback to handle plug removal.
2696         (WebCore::PluginView::init):
2697         * plugins/gtk/xembed.h: Added.
2698         * plugins/npapi.cpp:
2699         (NPN_GetValue): Return error if no view present.
2700         * plugins/qt/PluginDataQt.cpp:
2701         (WebCore::PluginData::initPlugins):
2702         (WebCore::PluginData::refresh):
2703         * plugins/qt/PluginDatabaseQt.cpp: Added.
2704         (WebCore::PluginDatabase::getPluginPathsInDirectories):
2705         (WebCore::addQtWebKitPluginDirectories):
2706         (WebCore::addMozillaPluginDirectories):
2707         (WebCore::PluginDatabase::defaultPluginDirectories):
2708         (WebCore::PluginDatabase::isPreferredPluginDirectory):
2709         * plugins/qt/PluginPackageQt.cpp: Added.
2710         (WebCore::PluginPackage::determineQuirks):
2711         (WebCore::PluginPackage::fetchInfo):
2712         (WebCore::PluginPackage::load):
2713         (WebCore::PluginPackage::hash):
2714         (WebCore::PluginPackage::equal):
2715         (WebCore::PluginPackage::compareFileVersion):
2716         * plugins/qt/PluginViewQt.cpp: Added.
2717         (WebCore::PluginView::updateWindow):
2718         (WebCore::PluginView::setFocus):
2719         (WebCore::PluginView::show):
2720         (WebCore::PluginView::hide):
2721         (WebCore::PluginView::paint):
2722         (WebCore::PluginView::handleKeyboardEvent):
2723         (WebCore::PluginView::handleMouseEvent):
2724         (WebCore::PluginView::setParent):
2725         (WebCore::PluginView::setNPWindowRect):
2726         (WebCore::PluginView::attachToWindow):
2727         (WebCore::PluginView::detachFromWindow):
2728         (WebCore::PluginView::stop):
2729         (WebCore::PluginView::userAgent):
2730         (WebCore::PluginView::handlePostReadFile):
2731         (WebCore::PluginView::getValue):
2732         (WebCore::PluginView::invalidateRect):
2733         (WebCore::PluginView::invalidateRegion):
2734         (WebCore::PluginView::forceRedraw):
2735         (WebCore::PluginView::~PluginView):
2736         (WebCore::PluginView::init):
2737         * plugins/win/PluginPackageWin.cpp: Moved platform-independent code
2738         to plugins/PluginPackage.cpp
2739         * plugins/win/PluginViewWin.cpp: Moved platform-independent code to
2740         plugins/PluginView.cpp
2741         (WebCore::PluginView::stop):
2742         (WebCore::PluginView::handlePostReadFile):
2743         (WebCore::PluginView::getValue): Moved this function to each platform.
2744
2745 2008-05-01  Sam Weinig  <sam@webkit.org>
2746
2747         Fix build.
2748
2749         * ForwardingHeaders/wtf/StrHash.h: Added.
2750
2751 2008-05-01  Anders Carlsson  <andersca@apple.com>
2752
2753         Reviewed by Darin.
2754
2755         Move management of cache groups to ApplicationCacheStorage. Also,
2756         application caches now start out with a null group and will have their group set
2757         when the cache has finished loading. 
2758
2759         * loader/appcache/ApplicationCache.cpp:
2760         (WebCore::ApplicationCache::ApplicationCache):
2761         Initialize m_group to 0.
2762         
2763         (WebCore::ApplicationCache::~ApplicationCache):
2764         Null check the group.
2765         
2766         (WebCore::ApplicationCache::setGroup):
2767         New method for setting the group.
2768         
2769         * loader/appcache/ApplicationCache.h:        
2770         (WebCore::ApplicationCache::create):
2771         Remove the group argument.
2772         
2773         * loader/appcache/ApplicationCacheGroup.cpp:
2774         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
2775         Let the storage know that the cache group has been destroyed.
2776         
2777         (WebCore::ApplicationCacheGroup::cacheForMainRequest):
2778         Call into the storage.
2779         
2780         (WebCore::ApplicationCacheGroup::selectCache):
2781         Call into the storage.
2782         
2783         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed):
2784         When there are no document loaders associated with the cache group,
2785         set the newest cache to 0.
2786         
2787         (WebCore::ApplicationCacheGroup::cacheDestroyed):
2788         Delete the group if there are no associated caches.
2789         
2790         (WebCore::ApplicationCacheGroup::setNewestCache):
2791         New method that will set the newest cache and associate the group with the cache.
2792         
2793         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
2794         Call setNewestCache instead.
2795         
2796         * loader/appcache/ApplicationCacheStorage.cpp:
2797         (WebCore::urlHostHash):
2798         Move host hash method here.
2799         
2800         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
2801         New method that finds a cache group with a given manifest URL or creates a new one.
2802
2803         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
2804         New method that returns a cache group for a given URL.
2805         
2806         (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
2807         When the cache group has been destroyed, remove it from the hash map.
2808         
2809         * loader/appcache/ApplicationCacheStorage.h:
2810         Add new methods.I b
2811
2812 2008-05-01  Dan Winship  <danw@gnome.org>
2813
2814         Reviewed by Alp Toker.
2815
2816         http://bugs.webkit.org/show_bug.cgi?id=18490
2817         Add mostly-working file: support and mostly-broken ftp: support to
2818         the soup backend.
2819
2820         * platform/network/soup/ResourceHandleSoup.cpp (start): after
2821         doing basic checks, delegate to one of three submethods
2822         (startData): handles data: URLs
2823         (startHttp): handles http: and https: URLs, via libsoup
2824         (startGio, etc): handles file: and ftp: URLs, via gio. Lots of
2825         FIXMEs detailing the parts that don't fully work yet.
2826
2827         * platform/network/ResourceHandle.h:
2828         * platform/network/ResourceHandleInternal.h: add new member
2829         variables for gio-based loading
2830
2831 2008-05-01  Alp Toker  <alp@nuanti.com>
2832
2833         Rubber-stamped by Anders.
2834
2835         GTK+ build fix for changes in r32752. Use int32, not int32_t types in
2836         npapi.h.
2837
2838         Additional fix to use same signedness in npapi.h and Mac for the
2839         interval parameter.
2840
2841         * bridge/npapi.h:
2842
2843 2008-04-30  Anders Carlsson  <andersca@apple.com>
2844
2845         Reviewed by Adam.
2846
2847         Add new Cocoa event model type declarations.
2848         
2849         * bridge/npapi.h:
2850
2851 2008-04-30  Beth Dakin  <bdakin@apple.com>
2852
2853         Reviewed by Sam Weinig.
2854
2855         This patch does three things:
2856         1. Adds support for the "img" ARIA role
2857         2. Switches over to a HashMap for converting ARIA role attributes 
2858         to WebCore's AccessibilityRole type. 
2859         3. Fixes a crash in the new ARIA code that I ran into while 
2860         browsing with VoiceOver enabled.
2861
2862         * page/AccessibilityObject.cpp:
2863         (WebCore::AccessibilityObject::headingLevel): This is the crash 
2864         fix. Make sure the node's renderer is not null before looking up 
2865         its corresponding AccessibilityObject in the cache.
2866         (WebCore::AccessibilityObject::accessibilityIsIgnored): Account for 
2867         ARIA images.
2868         (WebCore::createARIARoleMap): Switch to HashMap, and add "img" to 
2869         the Map.
2870         (WebCore::RoleEntry::): Same.
2871         (WebCore::ariaRoleToWebCoreRole): Same.
2872         (WebCore::AccessibilityObject::ariaRoleAttribute): Same.
2873
2874 2008-04-30  Rob Buis  <buis@kde.org>
2875
2876         Reviewed by Nikolas.
2877
2878         https://bugs.webkit.org/show_bug.cgi?id=16447
2879         onload called too many times for <svg:image>
2880         https://bugs.webkit.org/show_bug.cgi?id=12282
2881         SVG wastes time in malloc to send loadEvents to non-existent listeners
2882
2883         Postpone load event dispatching for image when externalResourcesRequired
2884         is true, delaying parents but not siblings, and make sure the load event
2885         is sent once for image in all cases.
2886
2887         * svg/SVGElement.cpp:
2888         (WebCore::hasLoadListener):
2889         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
2890         * svg/SVGImageElement.cpp:
2891         (WebCore::SVGImageElement::haveLoadedRequiredResources):
2892         * svg/SVGImageLoader.cpp:
2893         (WebCore::SVGImageLoader::dispatchLoadEvent):
2894
2895 2008-04-30  David Hyatt  <hyatt@apple.com>
2896
2897         Fix crashes when dynamically removing <video> elements with layers that establish stacking contexts.  This
2898         won't typically crash release builds because of arena recycling.
2899
2900         Reviewed by Dan Bernstein
2901         
2902         * rendering/RenderLayer.cpp:
2903         (WebCore::RenderLayer::~RenderLayer):
2904         Make sure to remove the reflection's child layer from its parent.
2905
2906         * rendering/RenderMedia.cpp:
2907         (WebCore::RenderMedia::~RenderMedia):
2908         (WebCore::RenderMedia::destroy):
2909         (WebCore::RenderMedia::removeChild):
2910         * rendering/RenderMedia.h:
2911         Adjust the teardown of RenderMedia so that it does all of its teardown inside destroy() (this makes it more
2912         like other renderers and doesn't leave you staring at a trashed layer hierarchy in the RenderMedia
2913         destructor).
2914
2915 2008-04-30  Rémi Zara  <remi_zara@mac.com>
2916
2917         Reviewed by Dave Hyatt.
2918
2919         fix https://bugs.webkit.org/show_bug.cgi?id=18618
2920         <rdar://problem/5876063> REGRESSION (r31823-r31847): Patterns are upside down
2921
2922         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
2923         (WebCore::patternCallback): flip the y axis when drawing the tile
2924
2925 2008-04-30  Timothy Hatcher  <timothy@apple.com>
2926
2927         Fixes an undefined type exception that fires when adding a resource to the inspector
2928         that has a MIME type warning.
2929
2930         Reviewed by Adam Roben.
2931
2932         * page/inspector/Resource.js:
2933         (WebInspector.Resource.prototype._addTip): Call WebInspector.console instead of
2934         WebInspector.consolePanel.
2935         (WebInspector.Resource.prototype._checkWarning): Ditto.
2936
2937 2008-04-30  Timothy Hatcher  <timothy@apple.com>
2938
2939         Fixes the bug where the selected resource would be deselected after
2940         changing the sort order in the Resources panel.
2941
2942         Reviewed by Dan Bernstein.
2943
2944         * page/inspector/ResourcesPanel.js:
2945         (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded):
2946         Rememebr if the tree element that we are sorting was selected, so
2947         the selection can be restored after it is re-inserted. The onSelect
2948         is suppressed since we don't need to show the resource again.
2949
2950 2008-04-29  Timothy Hatcher  <timothy@apple.com>
2951
2952         Fixes the regression where error bubbles in source views always show
2953         "undefined" for the content because the message property on
2954         ConsoleMessage was removed. Adds support for a plain text formated
2955         message that is stored in the message proeprty.
2956
2957         Reviewed by Adam Roben.
2958
2959         * page/inspector/Console.js:
2960         (WebInspector.Console.prototype._format): Add a plainText argument that is passed to
2961         the formatters.
2962         (WebInspector.Console.prototype._formatvalue): Add a plainText argument, and a comment
2963         about needing to honor it if the textContent of the output doesn't make sense.
2964         (WebInspector.Console.prototype._formatvalue): Ditto.
2965         (WebInspector.Console.prototype._formatstring): Ditto.
2966         (WebInspector.Console.prototype._formatregexp): Ditto.
2967         (WebInspector.Console.prototype._formatarray): Ditto.
2968         (WebInspector.Console.prototype._formatnode): Ditto.
2969         (WebInspector.Console.prototype._formatobject): Ditto.
2970         (WebInspector.Console.prototype._formaterror): Ditto.
2971         (WebInspector.ConsoleMessage): Call _format passing true for plainText. Get the 
2972         textContnet of the result and assign to the message proeprty. This property is 
2973         referenced from the SourceView.
2974         (WebInspector.ConsoleMessage.prototype._format): Add a plainText argument. Build the 
2975         result element as a local and return it, instead of using formatedMessage directly.
2976
2977 2008-04-30  Timothy Hatcher  <timothy@apple.com>
2978
2979         Adds a helper function to convert a JSValueRef to a String.
2980
2981         Reviewed by Adam Roben.
2982
2983         * page/InspectorController.cpp:
2984         (WebCore::toString): Converts a JSValueRef to a String.
2985         (WebCore::search): Use toString.
2986         (WebCore::InspectorController::handleException): Ditto.
2987
2988 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2989
2990         Reviewed by Simon.
2991         
2992         Build the Qt port with SVG Foreign Object support.
2993
2994         * WebCore.pro:
2995
2996 2008-04-30  Simon Hausmann  <hausmann@webkit.org>
2997
2998         Reviewed by Holger.
2999
3000         Fix null pointer deference triggered by
3001         LayoutTests/fast/loader/cancel-load-during-port-block-timer.html
3002
3003         * platform/network/qt/ResourceHandleQt.cpp:
3004         (WebCore::ResourceHandle::cancel): Check m_job before dereferencing.
3005
3006 2008-04-29  David Hyatt  <hyatt@apple.com>
3007
3008         Improve the performance of masks by adding code to set more precise clips on the transparency layers
3009         used to paint the content under the mask, and then also avoid creating transparency layers for the masks
3010         themselves in common cases.
3011
3012         Reviewed by Dan Bernstein
3013
3014         * platform/graphics/GraphicsContext.cpp:
3015         (WebCore::GraphicsContext::drawTiledImage):
3016         Fix a bug in drawTiledImage where the composite mode got lost in the double stretch case for nine piece
3017         images.
3018
3019         * rendering/InlineFlowBox.cpp:
3020         (WebCore::InlineFlowBox::paintFillLayers):
3021         (WebCore::InlineFlowBox::paintFillLayer):
3022         (WebCore::InlineFlowBox::paintMask):
3023         Optimize to only push a transparency layer for the mask if multiple images are combining.  Add a new
3024         composite operator argument for use when painting fill layers to do direct destination-in compositing while
3025         painting images.
3026
3027
3028         * rendering/InlineFlowBox.h:
3029         * rendering/RenderBox.cpp:
3030         (WebCore::RenderBox::paintMask):
3031         (WebCore::RenderBox::paintMaskImages):
3032         Optimize to only push a transparency layer for the mask if multiple images are combining.
3033
3034         (WebCore::RenderBox::maskClipRect):
3035         A new method that attempts to compute a precise clip rect for the mask images.
3036
3037         (WebCore::RenderBox::paintFillLayers):
3038         (WebCore::RenderBox::paintFillLayer):
3039         (WebCore::RenderBox::paintFillLayerExtended):
3040         * rendering/RenderBox.h:
3041         Added the composite operator argument to the paintFillLayer methods.
3042
3043         * rendering/RenderFieldset.cpp:
3044         (WebCore::RenderFieldset::paintMask):
3045         Call the new base class paintMaskImages method for optimized mask painting.
3046
3047         * rendering/RenderLayer.cpp:
3048         (WebCore::transparencyClipBox):
3049         Fix a coordinate space issue with transparencyClipBox when masks were used.  The border box was in the
3050         wrong coordinate space.  Moved the code into the layer's boundingBox() method instead.
3051
3052         (WebCore::RenderLayer::paintLayer):
3053         Removed the code that always pushed a transparency layer before painting masks.
3054
3055         (WebCore::RenderLayer::boundingBox):
3056         Call maskClipRect to shrink the bounding box of the layer to fit the mask clip.
3057
3058         * rendering/RenderObject.cpp:
3059         (WebCore::RenderObject::paintNinePieceImage):
3060         Added a composite operator argument for direct destination-in painting of nine piece images.
3061
3062         * rendering/RenderObject.h:
3063         (WebCore::RenderObject::maskClipRect):
3064         (WebCore::RenderObject::paintFillLayerExtended):
3065         Base class stubs for RenderBox-implemented methods.
3066
3067         * rendering/RenderTable.cpp:
3068         (WebCore::RenderTable::paintMask):
3069         * rendering/RenderTableCell.cpp:
3070         (WebCore::RenderTableCell::paintMask):
3071         Modified to call the new paintMaskImages function.
3072
3073         * svg/graphics/SVGImage.cpp:
3074         (WebCore::SVGImage::draw):
3075         SVG images now respect composite modes by pushing a transparency layer when the composite mode
3076         is anything other than source-over.
3077
3078 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3079
3080         Rubber-stamped by Rob Buis.
3081
3082         Fixed crash or assertion if SVG_FOREIGN_OBJECT is not enabled
3083
3084         * svg/SVGUseElement.cpp:
3085         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
3086
3087 2008-04-30  Ariya Hidayat  <ariya.hidayat@trolltech.com>
3088
3089         Rubber-stamped by Rob Buis.
3090
3091         Fixed compile, due to API change in XMLSerializer
3092
3093         * svg/SVGUseElement.cpp:
3094         (WebCore::SVGUseElement::buildPendingResource):
3095
3096 2008-04-30  Rob Buis  <buis@kde.org>
3097
3098         Reviewed by Eric.
3099
3100         https://bugs.webkit.org/show_bug.cgi?id=11939
3101         Quirksmode: Ignores media types in stylesheet PIs
3102
3103         Transfer the xml-stylesheet pseudo attribute media to the css
3104         stylesheet created from the ProcessingInstruction.
3105
3106         Tests: fast/css/xml-stylesheet-media-processing.xhtml
3107
3108         * css/StyleSheet.cpp:
3109         (WebCore::StyleSheet::setMedia):
3110         * css/StyleSheet.h:
3111         * dom/ProcessingInstruction.cpp:
3112         (WebCore::ProcessingInstruction::checkStyleSheet):
3113         (WebCore::ProcessingInstruction::setCSSStyleSheet):
3114         * dom/ProcessingInstruction.h:
3115
3116 2008-04-29  David D. Kilzer  <ddkilzer@apple.com>
3117
3118         BUILD FIX for export of WTF::RefCounted<WebCore::FormData>::deref()
3119
3120         On the buildbot, this is a fatal error:
3121
3122         ld: symbols names listed in -exported_symbols_list: WebKitBuild/Release/DerivedSources/WebCore/WebCore.exp not in linked objects
3123         __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv
3124         /usr/bin/libtool: internal link edit command failed
3125
3126         Newer dev tools only produce a warning:
3127
3128         ld warning: cannot export hidden symbol __ZN3WTF10RefCountedIN7WebCore8FormDataEE5derefEv from WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/i386/DocumentLoader.o
3129
3130         * WebCore.base.exp: Remove hidden symbol from export list.
3131
3132 2008-04-29  David Kilzer  <ddkilzer@apple.com>
3133
3134         Another BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
3135
3136         * dom/make_names.pl: Added #if ENABLE(DASHBOARD_SUPPORT) to Dashboard code.
3137
3138 2008-04-29  David Kilzer  <ddkilzer@apple.com>
3139
3140         BUILD FIX for ENABLE(DASHBOARD_SUPPORT)
3141
3142         * DerivedSources.make: Removed duplication of targets for
3143         generating CSSPropertyNames.h and CSSValueKeywords.h.
3144         * GNUmakefile.am: Ditto.  Added support for ENABLE_DASHBOARD_SUPPORT.
3145         * WebCore.pro: Added support for ENABLE_DASHBOARD_SUPPORT.
3146         Made both SVG and non-SVG variables of GENERATOR 6-A use new
3147         DASHBOARDSUPPORTCSSPROPERTIES variable.
3148
3149 2008-04-29  Ada Chan  <adachan@apple.com>
3150
3151         Added missing return.        
3152
3153         * platform/win/COMPtr.h:
3154         (WTF::):
3155
3156 2008-04-29  Alp Toker  <alp@nuanti.com>
3157
3158         GTK+ build fix attempt following breakage in r32700 which
3159         conditionalised dashboard support.
3160
3161         * GNUmakefile.am:
3162
3163 2008-04-29  Adam Roben  <aroben@apple.com>
3164
3165         Restore the beloved COMPtr::operator&
3166
3167         * platform/win/COMPtr.h: Removed the HashTableDeletedValueType
3168         constructor and isHashTableDeletedValue and hashTableDeletedValue
3169         functions.
3170         (WTF::): Changed constructDeletedValue to play nicely with
3171         COMPtr::operator&.
3172
3173 2008-04-29  Adam Roben  <aroben@apple.com>
3174
3175         Fix assertion on launch on Windows
3176
3177         * platform/graphics/win/FontPlatformData.h: Pass
3178         WTF::HashTableDeletedValue to the m_font constructor instead of a
3179         bogus -1 value. This is needed because m_font is a RefPtr.
3180
3181 2008-04-29  Greg Bolsinga  <bolsinga@apple.com>
3182
3183         Reviewed by Darin.
3184
3185         Wrapped Dashboard code with ENABLE(DASHBOARD_SUPPORT)
3186
3187         * DerivedSources.make:
3188         * WebCore.DashboardSupport.exp: Added.
3189         * WebCore.base.exp:
3190         * WebCore.xcodeproj/project.pbxproj:
3191         * bindings/js/JSDOMWindowCustom.cpp:
3192         (WebCore::JSDOMWindow::setLocation):
3193         * css/CSSComputedStyleDeclaration.cpp:
3194         (WebCore::):
3195         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3196         * css/CSSParser.cpp:
3197         (WebCore::CSSParser::parseValue):
3198         * css/CSSPrimitiveValue.cpp:
3199         (WebCore::CSSPrimitiveValue::cleanup):
3200         (WebCore::CSSPrimitiveValue::cssText):
3201         * css/CSSPropertyNames.in:
3202         * css/CSSStyleSelector.cpp:
3203         (WebCore::CSSStyleSelector::applyProperty):
3204         * css/DashboardRegion.h:
3205         * css/DashboardSupportCSSPropertyNames.in: Added.
3206         * dom/DOMImplementation.cpp:
3207         (WebCore::DOMImplementation::createDocument):
3208         * dom/Document.cpp:
3209         (WebCore::Document::Document):
3210         (WebCore::Document::importNode):
3211         * dom/Document.h:
3212         * html/CanvasRenderingContext2D.cpp:
3213         (WebCore::CanvasRenderingContext2D::fill):
3214         (WebCore::CanvasRenderingContext2D::stroke):
3215         (WebCore::CanvasRenderingContext2D::clip):
3216         * html/CanvasRenderingContext2D.h:
3217         * html/HTMLCanvasElement.cpp:
3218         * html/HTMLCanvasElement.h:
3219         * page/Chrome.cpp:
3220         * page/ChromeClient.h:
3221         * page/Frame.cpp:
3222         (WebCore::Frame::paint):
3223         * page/Frame.h:
3224         * page/FrameView.cpp:
3225         (WebCore::FrameView::layout):
3226         * page/FrameView.h:
3227         * page/Settings.cpp:
3228         (WebCore::Settings::Settings):
3229         * page/Settings.h:
3230         * page/mac/EventHandlerMac.mm:
3231         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
3232         * page/mac/FrameMac.mm:
3233         * page/mac/WebDashboardRegion.h:
3234         * page/mac/WebDashboardRegion.m:
3235         * rendering/RenderLayer.cpp:
3236         (WebCore::RenderLayer::scrollToOffset):
3237         (WebCore::RenderLayer::setHasHorizontalScrollbar):
3238         (WebCore::RenderLayer::setHasVerticalScrollbar):
3239         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
3240         * rendering/RenderObject.cpp:
3241         (WebCore::RenderObject::setStyle):
3242         * rendering/RenderObject.h:
3243         * rendering/RenderStyle.cpp:
3244         (WebCore::StyleRareNonInheritedData::operator==):
3245         (WebCore::RenderStyle::diff):
3246         * rendering/RenderStyle.h:
3247         * xml/XMLHttpRequest.cpp:
3248         (WebCore::XMLHttpRequest::send):
3249         (WebCore::XMLHttpRequest::setRequestHeader):
3250
3251 2008-04-29  Adam Roben  <aroben@apple.com>
3252
3253         Windows build fix
3254
3255         This removes COMPtr::operator&, which didn't jive with HashTable. It
3256         is replaced by COMPtr::adoptionPointer.
3257
3258         Discussed with Darin Adler and Anders Carlsson.
3259
3260         * platform/win/COMPtr.h: Replaced operator& with adoptionPointer.
3261
3262 2008-04-29  David Hyatt  <hyatt@apple.com>
3263
3264         Implement the new box-reflect property in CSS.  This property enables real-time reflections on
3265         objects (yes you can reflect <video>!).
3266
3267         Reviewed by Dan Bernstein
3268
3269         Test cases added in fast/reflections/
3270
3271         * GNUmakefile.am:
3272         * WebCore.pro:
3273         * WebCore.xcodeproj/project.pbxproj:
3274         * WebCoreSources.bkl:
3275         * css/CSSComputedStyleDeclaration.cpp:
3276         (WebCore::):
3277         (WebCore::valueForReflection):
3278         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3279         * css/CSSParser.cpp:
3280         (WebCore::CSSParser::parseValue):
3281         (WebCore::CSSParser::parseReflect):
3282         (WebCore::BorderImageParseContext::commitBorderImage):
3283         (WebCore::CSSParser::parseBorderImage):
3284         (WebCore::parseGradientColorStop):
3285         (WebCore::CSSParser::parseTransform):
3286         * css/CSSParser.h:
3287         * css/CSSPropertyNames.in:
3288         * css/CSSReflectValue.cpp: Added.
3289         (WebCore::CSSReflectValue::cssText):
3290         * css/CSSReflectValue.h: Added.
3291         (WebCore::):
3292         (WebCore::CSSReflectValue::CSSReflectValue):
3293         (WebCore::CSSReflectValue::direction):
3294         (WebCore::CSSReflectValue::offset):
3295         (WebCore::CSSReflectValue::mask):
3296         (WebCore::CSSReflectValue::setDirection):
3297         (WebCore::CSSReflectValue::setOffset):
3298         (WebCore::CSSReflectValue::setMask):
3299         * css/CSSStyleSelector.cpp:
3300         (WebCore::CSSStyleSelector::adjustRenderStyle):
3301         (WebCore::CSSStyleSelector::applyProperty):
3302         (WebCore::CSSStyleSelector::mapNinePieceImage):
3303         * css/CSSStyleSelector.h:
3304         * rendering/InlineFlowBox.cpp:
3305         (WebCore::InlineFlowBox::placeBoxesVertically):
3306         (WebCore::InlineFlowBox::paintMask):
3307         * rendering/Length.h:
3308         (WebCore::Length::calcFloatValue):
3309         * rendering/RenderBlock.cpp:
3310         (WebCore::RenderBlock::overflowHeight):
3311         (WebCore::RenderBlock::overflowWidth):
3312         (WebCore::RenderBlock::overflowLeft):
3313         (WebCore::RenderBlock::overflowTop):
3314         (WebCore::RenderBlock::overflowRect):
3315         (WebCore::RenderBlock::layoutBlock):
3316         * rendering/RenderBox.cpp:
3317         (WebCore::RenderBox::setStyle):
3318         (WebCore::RenderBox::paintMask):
3319         (WebCore::RenderBox::imageChanged):
3320         (WebCore::RenderBox::computeAbsoluteRepaintRect):
3321         * rendering/RenderFlexibleBox.cpp:
3322         (WebCore::RenderFlexibleBox::layoutBlock):
3323         * rendering/RenderLayer.cpp:
3324         (WebCore::RenderLayer::RenderLayer):
3325         (WebCore::RenderLayer::~RenderLayer):
3326         (WebCore::RenderLayer::updateLayerPositions):
3327         (WebCore::RenderLayer::enclosingPositionedAncestor):
3328         (WebCore::RenderLayer::enclosingTransformedAncestor):
3329         (WebCore::RenderLayer::isTransparent):
3330         (WebCore::transparencyClipBox):
3331         (WebCore::RenderLayer::operator delete):
3332         (WebCore::RenderLayer::destroy):
3333         (WebCore::RenderLayer::removeOnlyThisLayer):
3334         (WebCore::RenderLayer::insertOnlyThisLayer):
3335         (WebCore::RenderLayer::paintLayer):
3336         (WebCore::RenderLayer::updateZOrderLists):
3337         (WebCore::RenderLayer::updateOverflowList):
3338         (WebCore::RenderLayer::collectLayers):
3339         (WebCore::RenderLayer::shouldBeOverflowOnly):
3340         (WebCore::RenderLayer::styleChanged):
3341         (WebCore::RenderLayer::reflectionLayer):
3342         (WebCore::RenderLayer::createReflection):
3343         (WebCore::RenderLayer::updateReflectionStyle):
3344         * rendering/RenderLayer.h:
3345         (WebCore::RenderLayer::hasReflection):
3346         (WebCore::RenderLayer::reflection):
3347         (WebCore::RenderLayer::paintingInsideReflection):
3348         * rendering/RenderObject.cpp:
3349         (WebCore::RenderObject::RenderObject):
3350         (WebCore::RenderObject::requiresLayer):
3351         (WebCore::RenderObject::setStyle):
3352         (WebCore::RenderObject::updateImage):
3353         (WebCore::RenderObject::reflectionBox):
3354         (WebCore::RenderObject::reflectionOffset):
3355         * rendering/RenderObject.h:
3356         (WebCore::RenderObject::hasTransform):
3357         (WebCore::RenderObject::setHasReflection):
3358         (WebCore::RenderObject::hasReflection):
3359         * rendering/RenderReplica.cpp: Added.
3360         (WebCore::RenderReplica::RenderReplica):
3361         (WebCore::RenderReplica::~RenderReplica):
3362         (WebCore::RenderReplica::layout):
3363         (WebCore::RenderReplica::calcPrefWidths):
3364         (WebCore::RenderReplica::paint):
3365         * rendering/RenderReplica.h: Added.
3366         (WebCore::RenderReplica::renderName):
3367         (WebCore::RenderReplica::requiresLayer):
3368         * rendering/RenderStyle.cpp:
3369         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
3370         (WebCore::StyleRareNonInheritedData::operator==):
3371         (WebCore::StyleRareNonInheritedData::reflectionDataEquivalent):
3372         (WebCore::RenderStyle::diff):
3373         (WebCore::RenderStyle::applyTransform):
3374         * rendering/RenderStyle.h:
3375         (WebCore::TranslateTransformOperation::apply):
3376         (WebCore::StyleReflection::StyleReflection):
3377         (WebCore::StyleReflection::operator==):
3378         (WebCore::StyleReflection::operator!=):
3379         (WebCore::StyleReflection::direction):
3380         (WebCore::StyleReflection::offset):
3381         (WebCore::StyleReflection::mask):
3382         (WebCore::StyleReflection::setDirection):
3383         (WebCore::StyleReflection::setOffset):
3384         (WebCore::StyleReflection::setMask):
3385         (WebCore::RenderStyle::boxReflect):
3386         (WebCore::RenderStyle::setBoxReflect):
3387         (WebCore::RenderStyle::initialBoxReflect):
3388         * rendering/RenderTable.cpp:
3389         (WebCore::RenderTable::layout):
3390         (WebCore::RenderTable::paintMask):
3391         * rendering/RenderTableCell.cpp:
3392         (WebCore::RenderTableCell::requiresLayer):
3393         (WebCore::RenderTableCell::paintMask):
3394
3395 2008-04-29  Beth Dakin  <bdakin@apple.com>
3396
3397         Reviewed by Alice.
3398
3399         Initial implementation of the following ARIA roles: button, 
3400         checkbox, heading, link, radio, textbox.
3401
3402         * html/HTMLAttributeNames.in: Add 'role' to list of attributes.
3403
3404         * page/AccessibilityObject.cpp:
3405          When an ARIA role is set, the role overrides whatever the actual 
3406 element is when the element reports itself to the screen reader. So all of these isBlah functions report based on their roleValue now.
3407         (WebCore::AccessibilityObject::isWebArea):
3408         (WebCore::AccessibilityObject::isImageButton):
3409         (WebCore::AccessibilityObject::isAnchor):
3410         (WebCore::AccessibilityObject::isTextControl):
3411         (WebCore::AccessibilityObject::isImage):
3412         (WebCore::AccessibilityObject::isAttachment):
3413         (WebCore::AccessibilityObject::isPasswordField):
3414         (WebCore::AccessibilityObject::isCheckboxOrRadio):
3415         (WebCore::AccessibilityObject::isHeading):
3416         (WebCore::AccessibilityObject::isLink):
3417
3418         Check for ARIA information:
3419         (WebCore::AccessibilityObject::headingLevel):
3420         (WebCore::AccessibilityObject::anchorElement):
3421         (WebCore::AccessibilityObject::actionElement):
3422         (WebCore::AccessibilityObject::hasIntValue):
3423         (WebCore::AccessibilityObject::intValue):
3424         (WebCore::AccessibilityObject::stringValue):
3425         (WebCore::AccessibilityObject::title):
3426         (WebCore::AccessibilityObject::accessibilityIsIgnored):
3427         (WebCore::AccessibilityObject::roleValue):
3428
3429         There are a few places in the code where it is important to identify the difference between ARIA and non-ARIA.
3430         (WebCore::AccessibilityObject::isNativeImage):
3431         (WebCore::AccessibilityObject::isNativeTextControl):
3432         (WebCore::isARIAInput):
3433         (WebCore::isARIAControl):
3434
3435         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. 
3436         (WebCore::AccessibilityObject::text): Still calls into 
3437         RenderTextControl's text() for native text controls. Uses Element's 
3438         innerText() for ARIA textboxes.
3439         (WebCore::AccessibilityObject::textLength): Call 
3440         AccessibilityObject's text() instead of RenderTextControl's.
3441         (WebCore::AccessibilityObject::ariaSelectedTextDOMRange):
3442         (WebCore::AccessibilityObject::selectedText):
3443         (WebCore::AccessibilityObject::selectedTextRange):
3444         (WebCore::AccessibilityObject::selectionStart):
3445         (WebCore::AccessibilityObject::selectionEnd):
3446         (WebCore::AccessibilityObject::setSelectedTextRange):
3447         (WebCore::AccessibilityObject::setValue):
3448         (WebCore::AccessibilityObject::visiblePositionForIndex):
3449         (WebCore::AccessibilityObject::indexForVisiblePosition):
3450         (WebCore::AccessibilityObject::textMarkerRangeForRange):
3451         (WebCore::AccessibilityObject::textMarkerForIndex):
3452         (WebCore::AccessibilityObject::indexForTextMarker):
3453         (WebCore::AccessibilityObject::doAXRangeForLine):
3454         (WebCore::AccessibilityObject::doAXRangeForIndex):
3455         (WebCore::AccessibilityObject::doAXStringForRange):
3456         (WebCore::AccessibilityObject::doAXBoundsForRange):
3457         
3458         Reports ARIA role. If the role is not valid or simply not set, return UnknownRole.
3459         (WebCore::AccessibilityObject::ariaRoleAttribute):
3460         
3461         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.
3462         * page/AccessibilityObject.h:
3463
3464         Eliminated dependency on RenderTextControl cast. The information is generalized now and available directly through the AccessibilityObject.
3465         * page/mac/AccessibilityObjectWrapper.mm:
3466         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
3467         (-[AccessibilityObjectWrapper doAXAttributedStringForRange:]):
3468
3469 2008-04-29  Timothy Hatcher  <timothy@apple.com>
3470
3471         Make the exceptions that the InspectorController catches log the
3472         original file and line number, if present on the exception object.
3473
3474         Reviewed by Adam Roben.
3475
3476         * page/InspectorController.cpp:
3477         (WebCore::InspectorController::callFunction): Pass the context to HANDLE_EXCEPTION.
3478         (WebCore::InspectorController::~InspectorController): Ditto.
3479         (WebCore::InspectorController::scriptObjectReady): Ditto.
3480         (WebCore::InspectorController::addScriptResource): Ditto.
3481         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
3482         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
3483         (WebCore::InspectorController::updateScriptResource): Ditto.
3484         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
3485         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
3486         (WebCore::InspectorController::handleException): Take a context. Pull the line
3487         and sourceURL properties off the exception if it is an object.
3488         * page/InspectorController.h: Change handleException to take a context.
3489
3490 2008-04-29  Timothy Hatcher  <timothy@apple.com>
3491
3492         Fixes a regression where the Page's debugger would not be reattached
3493         when a new JSDOMWindow is created.
3494
3495         Reviewed by Sam Weinig.
3496
3497         * bindings/js/kjs_proxy.cpp:
3498         (WebCore::KJSProxy::clear): Call attachDebugger after creating the JSDOMWindow.
3499         * history/CachedPage.cpp:
3500         (WebCore::CachedPage::restore): For the case where the CachedPage doesn't
3501         contain a window, reattach the debugger to the new JSDOMWindow by calling
3502         proxy->attachDebugger. Also restore the setPageGroupIdentifier.
3503
3504 2008-04-29  Anatoli Papirovski  <apapirovski@mac.com>
3505
3506         Reviewed by Darin Adler.
3507
3508         Fix for https://bugs.webkit.org/show_bug.cgi?id=18355
3509         Fixed RGB and RGBA parsing to ignore the declaration when the value is not
3510         "either three integer values or three percentage values."
3511
3512         * css/CSSParser.cpp:
3513         (WebCore::CSSParser::parseColorParameters):
3514
3515 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3516
3517         Reviewed by Simon.
3518
3519         Fix crash when setHtml gets called from slots connected to QWebPage::unsupportedContent
3520
3521         Ben found this crash in the demo browser.
3522
3523         In void MainResourceLoader::continueAfterContentPolicy(PolicyAction contentPolicy,
3524
3525         case PolicyDownload:
3526         frameLoader()->client()->download(m_handle.get(), request(), m_handle.get()->request(), r);
3527         receivedError(interruptionForPolicyChangeError());
3528
3529         We are in a policy check, the download() call will call setHtml, which will start loading
3530         the data into a frame. The loading will cancel all policy checks and call ResourceLoader::releaseResources
3531         which will set m_frame to 0. Then we return and invoke interruptionForPolicyChangeError() which
3532         will use the m_frame->loader() but it is gone. Do not call into receivedError and
3533         interruptionForPolicyChangeError if we are gone anyway...
3534
3535         * loader/MainResourceLoader.cpp:
3536         (WebCore::MainResourceLoader::continueAfterContentPolicy):
3537
3538 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3539
3540         Reviewed by Simon.
3541
3542         Rely on auto-boxing of C++ for the QCursor c'tor
3543
3544         * platform/qt/CursorQt.cpp:
3545
3546 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3547
3548         Reviewed by Simon.
3549
3550         Add the remaining cursors that defaulted to PointerCursor
3551
3552         * Resources/WebKitResources.qrc:
3553         * platform/qt/CursorQt.cpp:
3554         (WebCore::verticalTextCursor):
3555         (WebCore::cellCursor):
3556         (WebCore::contextMenuCursor):
3557         (WebCore::copyCursor):
3558         (WebCore::progressCursor):
3559         (WebCore::aliasCursor):
3560
3561 2008-04-29  Alice Liu  <alice.liu@apple.com>
3562
3563         Reviewed by Beth Dakin.
3564
3565         Comply with HTML5 spec about parsing tabindex property according to
3566         integer parsing rules
3567
3568         Test: fast/parser/tabindex-parsing.html
3569
3570         * html/HTMLElement.cpp:
3571         (WebCore::HTMLElement::parseMappedAttribute):
3572
3573 2008-04-29  Tor Arne Vestbø  <tavestbo@trolltech.com>
3574
3575         Reviewed by Simon.
3576
3577         Fixes: Fix timing problem where scrollbars in subframes were sometimes not property repainted.
3578
3579         https://bugs.webkit.org/show_bug.cgi?id=18482
3580
3581         We need to repaint scrollbars after a geometry change, and also make sure
3582         the computed clipping rect for the corners between scrollbars is propagated
3583         to the chrome client without beeing intersected by the visible content rect
3584         of the frame.
3585
3586         * platform/ScrollView.h:
3587         * platform/qt/ScrollViewQt.cpp:
3588         (WebCore::ScrollView::geometryChanged):
3589         (WebCore::ScrollView::suppressScrollbars):
3590         (WebCore::ScrollView::invalidateScrollbars):
3591
3592 2008-04-29  Holger Hans Peter Freyther  <zecke@selfish.org>
3593
3594         Reviewed by Simon.
3595
3596         Calling QWebView::setCursor will override the WebCore Cursor.
3597         Calling QWebView::setCursor will override the WebCore Cursor using
3598         QWidget::unsetCursor will revert to the WebCore Cursor.
3599
3600         For detecting the unset we have to compare the shape of the
3601         cursor to the default arrow. Qt::WA_SetCursor can not be used
3602         as it is set unconditionally but conditionally removed.
3603
3604         Calling QWidget::setCursor will immediately send the CursorChange
3605         event. We listen to this event to decide if we currently use a
3606         WebCore cursor, got a cursor from outside, or revert to the default.
3607
3608         This should be race free and work reliable, the manual test for this
3609         is WebCore/manual-tests/cursor.html
3610
3611         * platform/qt/WidgetQt.cpp:
3612         (WebCore::Widget::setCursor):
3613
3614 2008-04-28  Dan Bernstein  <mitz@apple.com>
3615
3616         Reviewed by Maciej Stachowiak.
3617
3618         - fix https://bugs.webkit.org/show_bug.cgi?id=18795
3619           REGRESSION (r32660): Text heavier with text-shadow
3620
3621         * rendering/InlineTextBox.cpp:
3622         (WebCore::paintTextWithShadows): The loop was doing one extra pass
3623         without shadow even in cases where the last pass with a shadow was
3624         painting the text at the right position (rather than outside the clip).
3625         Fixed that. The only case where a separate pass without shadow is needed
3626         is when there is text-stroke, since in that case all shadow passes
3627         paint the text outside the clip.
3628
3629 2008-04-28  Brady Eidson <beidson@apple.com>
3630
3631         Reviewed by Sam Weinig
3632
3633         Add Storage.clear(), per updates to HTML5
3634
3635         Tests: storage/domstorage/localstorage/clear.html
3636                storage/domstorage/sessionstorage/clear.html
3637
3638         * storage/LocalStorageArea.cpp:
3639         (WebCore::LocalStorageArea::areaCleared):
3640         * storage/LocalStorageArea.h:
3641
3642         * storage/SessionStorageArea.cpp:
3643         (WebCore::SessionStorageArea::areaCleared):
3644         * storage/SessionStorageArea.h:
3645
3646         * storage/Storage.cpp:
3647         (WebCore::Storage::clear):
3648         * storage/Storage.h:
3649         * storage/Storage.idl:
3650
3651         * storage/StorageArea.cpp:
3652         (WebCore::StorageArea::internalClear):
3653         * storage/StorageArea.h:
3654         (WebCore::StorageArea::clear):
3655
3656 2008-04-28  Adele Peterson  <adele@apple.com>
3657
3658         Reviewed by Dan Bernstein, Tim Hatcher, Anders Carlsson, and Darin Adler.
3659
3660         WebCore part of fix for <rdar://problem/3709505>
3661         Safari should have a way to upload bundles from the file upload control (as zip)
3662
3663         * WebCore.base.exp: Added symbols.
3664
3665         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData): Ask the application if a file will need to be replaced before it's uploaded.
3666           It will also give the replacement filename which is used to determine the correct mime-type and to construct the correct header.
3667
3668         * loader/FrameLoader.cpp:
3669         (WebCore::FrameLoader::submitForm): Asks the application to generate any files for the form data before a form submission starts.
3670         (WebCore::FrameLoader::loadItem): ditto.
3671         * loader/ResourceLoader.cpp:
3672         (WebCore::ResourceLoader::didReceiveResponse): Tells the FormData from the request to remove any generated files if it needs to.
3673         (WebCore::ResourceLoader::didCancel): ditto.
3674         (WebCore::ResourceLoader::didFail): ditto.
3675
3676         * platform/network/FormData.cpp:
3677         (WebCore::FormData::FormData): Initializes m_hasGeneratedFiles, which keeps track of whether there are files that will need to be removed.
3678         (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.
3679         (WebCore::FormData::appendFile): Passes along a shouldGenerateFile flag to the FormDataElement.
3680         (WebCore::FormData::generateFiles): Added. Iterates through the FormDataElements, and using the ChromeClient pointer, asks the application to
3681          create any compressed files so the FormDataElements can store the paths.
3682         (WebCore::FormData::removeGeneratedFilesIfNeeded): Added.  Removes generated files and their directories (if empty).
3683         * platform/network/FormData.h:
3684         (WebCore::FormDataElement::FormDataElement): Added a boolean to track whether the file will need to be generated,
3685          and a string to hold the path of the generated file.
3686
3687         * platform/network/mac/FormDataStreamMac.mm:
3688         (WebCore::advanceCurrentStream): Uses the generated file path instead of the original file path when streaming the file.
3689         (WebCore::setHTTPBody): Uses the generated file path when determining the size of the file to be uploaded.
3690
3691         * platform/FileSystem.h: Added directoryName.
3692         * platform/posix/FileSystemPOSIX.cpp: (WebCore::directoryName): Added.
3693         * platform/gtk/FileSystemGtk.cpp: (WebCore::directoryName): Added empty implementation.
3694         * platform/qt/FileSystemQt.cpp: (WebCore::directoryName): ditto.
3695         * platform/win/FileSystemWin.cpp: (WebCore::directoryName): ditto.
3696         * platform/wx/FileSystemWx.cpp: (WebCore::directoryName): ditto.
3697
3698         Added new ChromeClient methods to give the application control over the file compression for uploading.
3699         * page/Chrome.cpp:
3700         (WebCore::ChromeClient::shouldReplaceWithGeneratedFileForUpload): Added a default implementation.
3701         (WebCore::ChromeClient::generateReplacementFile): ditto.
3702         * page/ChromeClient.h:
3703
3704 2008-04-28  Anders Carlsson  <andersca@apple.com>
3705
3706         Reviewed by Sam, Mark, Adele and Darin.
3707
3708         Add a (currently not called) method for opening the application cache database.
3709         
3710         * WebCore.base.exp:
3711         * loader/appcache/ApplicationCacheStorage.cpp:
3712         (WebCore::ApplicationCacheStorage::setCacheDirectory):
3713         (WebCore::ApplicationCacheStorage::openDatabase):
3714         * loader/appcache/ApplicationCacheStorage.h:
3715
3716 2008-04-28  Alice Liu  <alice.liu@apple.com>
3717
3718         Reviewed by Darin.
3719
3720         Fix <rdar://problem/4911289> Add tabindex property to all children 
3721         of HTMLElement (7138)
3722         http://bugs.webkit.org/show_bug.cgi?id=7138
3723
3724         Test: fast/events/tabindex-focus-blur-all.html
3725
3726         * WebCore.xcodeproj/project.pbxproj:
3727         * bindings/objc/DOMPrivate.h:
3728         -DOMHTMLLabelElementPrivate.h and DOMHTMLLegendElementPrivate.h are no
3729          longer needed
3730
3731         * bindings/objc/PublicDOMInterfaces.h:
3732         -Moving focus, blur, tabindex to HTMLElement from its descendants.
3733
3734         * dom/Node.cpp:
3735         (WebCore::Node::Node):
3736         (WebCore::Node::isFocusable):
3737         (WebCore::Node::isKeyboardFocusable):
3738         -The concept of being focusable now needs to account for tabindex
3739         attribute.
3740
3741         * dom/Node.h:
3742         -Need to use a bit to keep track of whether tabindex was explicitly set
3743          to 0 or was just initialized to 0.
3744         (WebCore::Node::tabIndex):
3745         -Make this virtual so that Anchors and GenericFormElements can determine
3746          tabindex without accounting for focusability
3747         (WebCore::Node::setTabIndexExplicitly):
3748         -Renamed setTabIndex() to setTabIndexExplicitly() so as not to hide
3749          behind and/or be confused for HTMLElement::setTabIndex
3750
3751         * html/HTMLAnchorElement.cpp:
3752         * html/HTMLAnchorElement.h:
3753         (WebCore::HTMLAnchorElement::tabIndex):
3754         * html/HTMLGenericFormElement.cpp:
3755         * html/HTMLGenericFormElement.h:
3756         (WebCore::HTMLGenericFormElement::tabIndex):
3757         -Anchors and form elements are normally focusable, and need to avert the
3758          check for focusability in HTMLElement::tabIndex
3759          because tabIndex could be queried before a first layout happens.
3760
3761         * html/HTMLElement.cpp:
3762         (WebCore::HTMLElement::parseMappedAttribute):
3763         -Function Node::setTabIndex changed to Node::setTabIndexExplicitly
3764         (WebCore::HTMLElement::isFocusable):
3765         -The concept of being focusable now needs to account for tabindex
3766          attribute.
3767         (WebCore::HTMLElement::tabIndex):
3768         -HTML5 specifies that querying tabindex for elements that aren't
3769          focusable shall return -1
3770         (WebCore::HTMLElement::setTabIndex):
3771         -New default implementation
3772         * html/HTMLElement.h:
3773
3774         * html/HTMLLegendElement.cpp:
3775         (WebCore::HTMLLegendElement::focus):
3776         -Now with HTML5's enhanced specification of tabindex, legend elements
3777          themselves shall focus (if they should), and not the first form element 
3778          they encapsulate.  This matches Firefox behavior.  HTMLLabelElements
3779          still forward focus to the encapsulated element.  This also matches
3780          other browsers. 
3781
3782         * html/HTMLAreaElement.cpp:
3783         (WebCore::HTMLAreaElement::isFocusable):
3784         * html/HTMLAreaElement.h:
3785         -HTMLAreaElement isn't subject to the same focusability requirements as
3786          its parent, HTMLAnchorElement. Default HTMLElement implementation is
3787          desired.  
3788
3789         * html/HTMLFieldSetElement.cpp:
3790         (WebCore::HTMLFieldSetElement::isFocusable):
3791         * html/HTMLLegendElement.cpp:
3792         (WebCore::HTMLLegendElement::isFocusable):
3793         * html/HTMLOptGroupElement.cpp:
3794         (WebCore::HTMLOptGroupElement::isFocusable):
3795         * html/HTMLOptionElement.cpp:
3796         (WebCore::HTMLOptionElement::isFocusable):
3797         -These elements aren't subject to the same focusability requirements as
3798          their parent, HTMLGenericFormElement. Default HTMLElement 
3799          implementation is desired.  
3800
3801         * html/HTMLAnchorElement.idl:
3802         * html/HTMLAreaElement.idl:
3803         * html/HTMLButtonElement.idl:
3804         * html/HTMLElement.idl:
3805         * html/HTMLInputElement.idl:
3806         * html/HTMLLabelElement.idl:
3807         * html/HTMLLegendElement.idl:
3808         * html/HTMLObjectElement.idl:
3809         * html/HTMLSelectElement.idl:
3810         * html/HTMLTextAreaElement.idl:
3811         -Moving tabindex attribute, focus and blur methods from descendants of
3812          HTMLElement to HTMLElement
3813
3814 2008-04-28  Dan Bernstein  <mitz@apple.com>
3815
3816         Reviewed by Dave Hyatt.
3817
3818         - support multiple box- and text-shadows
3819
3820         Tests: fast/css/shadow-multiple.html
3821                fast/repaint/shadow-multiple-horizontal.html
3822                fast/repaint/shadow-multiple-strict-horizontal.html
3823                fast/repaint/shadow-multiple-strict-vertical.html
3824                fast/repaint/shadow-multiple-vertical.html
3825
3826         * css/CSSComputedStyleDeclaration.cpp:
3827         (WebCore::valueForShadow): Changed to account for reversing the order
3828         of the shadow values in the ShadowData list.
3829
3830         * css/CSSValueList.cpp:
3831         (WebCore::CSSValueList::prepend): Added.
3832         * css/CSSValueList.h:
3833
3834         * rendering/InlineFlowBox.cpp:
3835         (WebCore::InlineFlowBox::placeBoxesHorizontally): Changed to account for
3836         all shadows in overflow calculation.
3837         (WebCore::InlineFlowBox::placeBoxesVertically): Ditto.
3838         (WebCore::InlineFlowBox::paint): Changed to account for all shadows
3839         when testing for intersection with the damage rect.
3840         (WebCore::InlineFlowBox::paintTextDecorations): Changed to paint all
3841         shadows.
3842
3843         * rendering/InlineTextBox.cpp:
3844         (WebCore::paintTextWithShadows): Factored out from paint() and changed
3845         to paint all shadows.
3846         (WebCore::InlineTextBox::paint): Moved the text painting code out to
3847         paintTextWithShadows(). Changed to not paint shadows for markers and
3848         composition underlines and in "force black text" mode.
3849         (WebCore::InlineTextBox::paintSelection):
3850         (WebCore::InlineTextBox::paintCompositionBackground):
3851         (WebCore::InlineTextBox::paintDecoration): Changed to paint all shadows.
3852         * rendering/InlineTextBox.h: Changed some public methods to private
3853         or protected.
3854
3855         * rendering/RenderBlock.cpp:
3856         (WebCore::RenderBlock::overflowHeight): Changed to account for all
3857         shadows.
3858         (WebCore::RenderBlock::overflowWidth): Ditto.
3859         (WebCore::RenderBlock::overflowLeft): Ditto.
3860         (WebCore::RenderBlock::overflowTop): Ditto.
3861         (WebCore::RenderBlock::overflowRect): Ditto.
3862         (WebCore::RenderBlock::layoutBlock): Ditto.
3863
3864         * rendering/RenderFlexibleBox.cpp:
3865         (WebCore::RenderFlexibleBox::layoutBlock): Ditto.
3866
3867         * rendering/RenderLayer.cpp:
3868         (WebCore::RenderLayer::calculateRects): Ditto.
3869
3870         * rendering/RenderObject.cpp:
3871         (WebCore::RenderObject::paintBoxShadow): Changed to paint all shadows.
3872         Changed to avoid clipping out the box if it has a fully opaque
3873         background.
3874         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Changed to account
3875         for all shadows.
3876         (WebCore::RenderObject::selectionForegroundColor): Cleaned up.
3877         (WebCore::RenderObject::adjustRectForOutlineAndShadow): Changed to
3878         account for all shadows.
3879
3880         * rendering/RenderReplaced.cpp:
3881         (WebCore::RenderReplaced::adjustOverflowForBoxShadow): Ditto.
3882
3883         * rendering/RenderStyle.cpp:
3884         (WebCore::RenderStyle::setTextShadow): Changed to prepend when adding
3885         so that the stacking order of shadows when painting will be "first o
3886         top".
3887         (WebCore::RenderStyle::setBoxShadow): Ditto.
3888
3889         * rendering/RenderTable.cpp:
3890         (WebCore::RenderTable::layout): Changed to account for all shadows.
3891
3892 2008-04-28  Adam Roben  <aroben@apple.com>
3893
3894         Fix some more Windows build errors in COMPtr
3895
3896         * platform/win/COMPtr.h:
3897         (WTF::): Define DefaultHash<COMPtr<P> > by using PtrHash<COMPtr<P> >,
3898         which is just a copy of PtrHash<RefPtr<P> >.
3899
3900 2008-04-28  Adam Roben  <aroben@apple.com>
3901
3902         Fix some Windows build errors in COMPtr
3903
3904         * platform/win/COMPtr.h: Explicitly name the WTF namespace when using
3905         HashTableDeletedValueType.
3906
3907 2008-04-28  Adam Roben  <aroben@apple.com>
3908
3909         Fix some Windows build errors in FontPlatfomrData
3910
3911         * platform/graphics/win/FontPlatformData.h: Removed the Deleted
3912         constructor and replaced it with a HashTableDeletedValueType
3913         constructor. Also added isHashTableDeletedValue() and
3914         hashTableDeletedFontValue().
3915
3916 2008-04-28  David Hyatt  <hyatt@apple.com>
3917
3918         https://bugs.webkit.org/show_bug.cgi?id=18780
3919
3920         Canvas can't draw itself into its own buffer.  Make sure the dirtying call comes after the image()
3921         has been accessed.  Technically willDraw should be renamed to didDraw and all calls should be moved
3922         to after draws have occurred (since if the draw op itself wants to reference the image it shouldn't get
3923         a dirty copy either), but I'll take that up with olliej when he wakes up. :)
3924
3925         Reviewed by Dan Bernstein
3926
3927         Added fast/canvas/canvasDrawsIntoSelf.html
3928
3929         * html/CanvasRenderingContext2D.cpp:
3930         (WebCore::CanvasRenderingContext2D::drawImage):
3931
3932 2008-04-28  Alexey Proskuryakov  <ap@webkit.org>
3933
3934         Reviewed by Geoff Garen.
3935
3936         <rdar://problem/5825192> Replace use of Gestalt with BSD sysctl
3937
3938         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3939         (WebCore::MediaPlayerPrivate::isAvailable): There is no need to check QuickTime version post-Tiger,
3940         as it will never be below 7.3 again. This change may make library loading happen earlier in
3941         some cases, hopefully, that's not a big deal.
3942
3943 2008-04-25  Alexey Proskuryakov  <ap@webkit.org>
3944
3945         Reviewed by Darin.
3946
3947         Fix run-webkit-tests --threading
3948         and provisionally fix <https://bugs.webkit.org/show_bug.cgi?id=18661>
3949         Proxy server issue in Sunday's Nightly
3950
3951         Adjusted for JavaScriptCore changes: added a new member to ClassInfo objects, turned
3952         ClassInfo::propHashTable into a function, made getPropertyAttributes() take an ExecState pointer.
3953
3954         * bindings/js/JSAudioConstructor.cpp:
3955         (WebCore::):
3956         * bindings/js/JSDOMWindowBase.cpp:
3957         (WebCore::):
3958         * bindings/js/JSDOMWindowCustom.cpp:
3959         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
3960         * bindings/js/JSDOMWindowWrapper.cpp:
3961         (WebCore::):
3962         (WebCore::JSDOMWindowWrapper::getPropertyAttributes):
3963         * bindings/js/JSDOMWindowWrapper.h:
3964         * bindings/js/JSEventTargetBase.h:
3965         (WebCore::JSEventTargetPrototype::classInfo):
3966         * bindings/js/JSHTMLInputElementBase.cpp:
3967         (WebCore::):
3968         * bindings/js/JSHTMLOptionElementConstructor.cpp:
3969         (WebCore::):
3970         * bindings/js/JSHistoryCustom.cpp:
3971         (WebCore::JSHistory::customGetOwnPropertySlot):
3972         * bindings/js/JSImageConstructor.cpp:
3973         (WebCore::):
3974         * bindings/js/JSInspectedObjectWrapper.cpp:
3975         (WebCore::):
3976         * bindings/js/JSInspectorCallbackWrapper.cpp:
3977         (WebCore::):
3978         * bindings/js/JSLocationCustom.cpp:
3979         (WebCore::JSLocation::customGetOwnPropertySlot):
3980         (WebCore::JSLocation::customPut):
3981         * bindings/js/JSNamedNodesCollection.cpp:
3982         (WebCore::):
3983         * bindings/js/JSQuarantinedObjectWrapper.cpp:
3984         (WebCore::):
3985         * bindings/js/JSRGBColor.cpp:
3986         (WebCore::):
3987         * bindings/js/JSStorageCustom.cpp:
3988         (WebCore::JSStorage::customPut):
3989         * bindings/js/JSXMLHttpRequestConstructor.cpp:
3990         (WebCore::):
3991         * bindings/js/JSXSLTProcessor.cpp:
3992         (WebCore::):
3993         * bindings/scripts/CodeGeneratorJS.pm:
3994         * bridge/objc/objc_runtime.mm:
3995         * bridge/runtime_array.cpp:
3996         * bridge/runtime_object.cpp:
3997
3998 2008-04-28  David Hyatt  <hyatt@apple.com>
3999
4000         https://bugs.webkit.org/show_bug.cgi?id=18779
4001
4002         The arguments in drawImage were reversed when I switched away from the image buffer method.
4003
4004         Reviewed by Tim Hatcher
4005
4006         Added fast/canvas/drawImage.html
4007
4008         * html/CanvasRenderingContext2D.cpp:
4009         (WebCore::CanvasRenderingContext2D::drawImage):
4010
4011 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
4012
4013         Reviewed by Simon.
4014
4015         Fix the crash on http://www.orad.pl. We called end too early.
4016
4017         1. we need a ::write that will pause the parser due a pending
4018         script
4019         2. we need a second write to queue data (tricky part)
4020         3. we need to get a finish call (document loaded)
4021         4. we resume the script and parse, schedule loading of a new script
4022         and have called end
4023         5. we resume the new script and we get a crash
4024
4025         This bug is hard to trigger, e.g. if the web server is only allowing
4026         one connection per client/IP. This is why we need to sleep in the scripts. We
4027         want to make sure that the page is first fully received before serving the
4028         scripts.
4029
4030         Test: http/tests/misc/xmltokenizer-do-not-crash.pl
4031
4032         * dom/XMLTokenizer.cpp:
4033
4034 2008-04-28  Ariya Hidayat  <ahidayat@trolltech.com>
4035
4036         Reviewed by Simon.
4037
4038         Fix rounded corner on combo box with CSS border
4039
4040         * platform/qt/RenderThemeQt.cpp:
4041         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
4042
4043 2008-04-28  Ariya Hidayat  <ahidayat@trolltech.com>
4044
4045         Reviewed by Simon.
4046
4047         Fix CSS border does not show up for combo boxes
4048
4049         Do not clear the border when painting the combo box for 'select' form element
4050
4051         * platform/qt/RenderThemeQt.cpp:
4052
4053 2008-04-28  Olivier Goffart  <ogoffart@trolltech.com>
4054
4055         Reviewed by Simon.
4056
4057         Avoid comparing to 0 in qFuzzyCompare for increased
4058         numeric stability.
4059
4060         * platform/graphics/qt/PathQt.cpp:
4061         (WebCore::Path::addArc):
4062
4063 2008-04-28  Benjamin Meyer  <bmeyer@trolltech.com>
4064
4065         Reviewed by Simon.
4066
4067         Fixes: Pages returning 404 with content are not displayed.
4068
4069         A web page that returns 404 can still have content.
4070
4071         * platform/network/qt/QNetworkReplyHandler.cpp:
4072         (WebCore::QNetworkReplyHandler::finish):
4073
4074 2008-04-28  Paul Olav Tvete  <paul@trolltech.com>
4075
4076         Reviewed by Simon.
4077
4078         Fix compiler warning; Avoid the implicity QString(const char *)
4079         constructor
4080
4081         * platform/qt/RenderThemeQt.cpp:
4082         (WebCore::RenderThemeQt::fallbackStyle):
4083
4084 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4085
4086         Reviewed by Simon.
4087
4088         Prevent middle-click from triggering open URL from clipboard when the event has already been accepted.
4089
4090         * platform/qt/PlatformScrollBarQt.cpp:
4091         (WebCore::PlatformScrollbar::handleMousePressEvent):
4092
4093 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4094
4095         Reviewed by Simon.
4096
4097         Fix scrollbar behavior in QtWebKit to match QScrollBar.
4098
4099         Right click context menu is now supported, along with
4100         middle click to center slider thumb over mouse cursor.
4101
4102         * platform/qt/PlatformScrollBar.h:
4103         * platform/qt/PlatformScrollBarQt.cpp:
4104         (tr):
4105         (WebCore::PlatformScrollbar::pixelPosToRangeValue):
4106         (WebCore::PlatformScrollbar::handleMousePressEvent):
4107         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
4108         (WebCore::PlatformScrollbar::handleContextMenuEvent):
4109
4110 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4111
4112         Reviewed by Simon.
4113
4114         Implemented channel-based logging for QtWebKit.
4115
4116         Comma-separated log channels are read from the QT_WEBKIT_LOG environment variable.
4117         Warnings for notImplemented() is still output by default, but can be disabled
4118         by setting DISABLE_NI_WARNINGS=1.
4119
4120         * WebCore.pro:
4121         * platform/NotImplemented.h:
4122         * platform/qt/LoggingQt.cpp: Added.
4123         (WebCore::getChannelFromName):
4124         (WebCore::InitializeLoggingChannelsIfNecessary):
4125
4126 2008-04-28  Simon Hausmann  <shausman@trolltech.com>
4127
4128         Reviewed by Holger.
4129
4130         Fixes: Popups/Context menu in WebKit appearing at the wrong location when embedded in the graphics view or using multiple screens
4131
4132         Give the popups the right parent widget and the right coordinates relative within the parent.
4133
4134         * platform/qt/PopupMenuQt.cpp:
4135         (WebCore::PopupMenu::show):
4136
4137 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4138
4139         Reviewed by Simon.
4140
4141         Fixes: Tabbing to a checkbox/button doesn't work on Win/X11
4142
4143         Respect platform settings for tabbing to all controls.
4144
4145         * page/qt/EventHandlerQt.cpp:
4146
4147 2008-04-28  Tor Arne Vestbø  <tavestbo@trolltech.com>
4148
4149         Reviewed by Simon.
4150
4151         First part of the fix for tabbing to a checkbox/button doesn't work on Win/X11
4152
4153         Draw controls instead of pimitive elements, to get focus rects for free.
4154
4155         * platform/qt/RenderThemeQt.cpp:
4156         (WebCore::RenderThemeQt::paintButton):
4157
4158 2008-04-28  Lincoln Ramsay  <lincoln.ramsay@trolltech.com>
4159
4160         Reviewed by Simon.
4161
4162         Compile when QT_NO_CLIPBOARD is defined.
4163
4164         * platform/qt/ClipboardQt.cpp:
4165         (WebCore::ClipboardQt::ClipboardQt):
4166         (WebCore::ClipboardQt::clearData):
4167         (WebCore::ClipboardQt::clearAllData):
4168         (WebCore::ClipboardQt::setData):
4169         (WebCore::ClipboardQt::declareAndWriteDragImage):
4170         (WebCore::ClipboardQt::writeURL):
4171         (WebCore::ClipboardQt::writeRange):
4172         * platform/qt/PasteboardQt.cpp:
4173         (WebCore::Pasteboard::writeSelection):
4174         (WebCore::Pasteboard::plainText):
4175         (WebCore::Pasteboard::documentFragment):
4176         (WebCore::Pasteboard::writeURL):
4177         (WebCore::Pasteboard::writeImage):
4178
4179 2008-04-28  Ariya Hidayat  <ariya.hidayat@trolltech.com>
4180
4181         Reviewed by Simon.
4182
4183         Draw the arrow button on the styled combo box using the fallback ("Windows") style
4184
4185         * platform/qt/RenderThemeQt.cpp:
4186         (WebCore::RenderThemeQt::RenderThemeQt):
4187         (WebCore::RenderThemeQt::~RenderThemeQt):
4188         (WebCore::RenderThemeQt::fallbackStyle):
4189         (WebCore::RenderThemeQt::paintMenuListButton):
4190         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
4191         * platform/qt/RenderThemeQt.h:
4192
4193 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
4194
4195         Reviewed by Holger.
4196
4197         Fix positioning of native widgets (plugins).
4198
4199         Correctly convert the coordinates of the Widget in Widget::setFrameGeometry()
4200         to be relative to the containing toplevel QWidget using convertToContainingWindow().
4201
4202         Note: convertToContainingWindow() takes child coordinates.
4203
4204         * platform/qt/WidgetQt.cpp:
4205         (WebCore::Widget::frameGeometry):
4206         (WebCore::Widget::setFrameGeometry):
4207
4208 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
4209
4210         Reviewed by Simon.
4211
4212         plugins: fix scrolling issues
4213
4214         When scrolling you can see artefacts that remain on the screen, they
4215         seem to originate from the backingstore handling. I'm not entirely sure
4216         where they come from, my workarounds involved a
4217         data->m_widget->parentWidget()->update() call in Widget::geometryChanged or
4218         handling widgets with a native QWidget embedded like web pages with a
4219         static background. This needs more investigations, I think the ScrollView
4220         change is cleaner than the brute force in Widget::geometryChanged
4221
4222         Focus handling seems to be broken as well and needs further work, we don't
4223         clip plugin QWidgets and they can draw out of their bounds, e.g. on the ScrollBar,
4224         the z-order is likely not honored as well.
4225
4226         * platform/ScrollView.h:
4227         * platform/qt/ScrollViewQt.cpp:
4228         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
4229         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
4230         (WebCore::ScrollView::addChild):
4231         (WebCore::ScrollView::removeChild):
4232         (WebCore::ScrollView::incrementNativeWidgetCount):
4233         (WebCore::ScrollView::decrementNativeWidgetCount):
4234         (WebCore::ScrollView::hasNativeWidgets):
4235
4236 2008-04-28  Holger Hans Peter Freyther  <zecke@selfish.org>
4237
4238         Reviewed by Simon.
4239
4240         Add manual test to test placement of QWidgets in iframe's
4241
4242         * manual-tests/qt/main.html: Added.
4243         * manual-tests/qt/qtplugin.html: Added.
4244
4245 2008-04-28  Simon Hausmann  <hausmann@webkit.org>
4246