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