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