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