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