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