2008-05-31 Maciej Stachowiak <mjs@apple.com>
[WebKit.git] / WebCore / ChangeLog
1 2008-05-31  Maciej Stachowiak  <mjs@apple.com>
2
3         Reviewed by Sam.
4
5         - avoid assertion in updateDocument() when running debug
6
7         * bindings/js/kjs_proxy.cpp:
8         (WebCore::KJSProxy::updateDocument): Exit early if the document is null. We
9         don't need to update in this case.
10
11 2008-05-30  Dan Bernstein  <mitz@apple.com>
12
13         Reviewed by Darin Adler.
14
15         - fix https://bugs.webkit.org/show_bug.cgi?id=19278
16           <rdar://problem/5968621> REGRESSION (r31114-r31132): image float disappears on refresh
17
18         Test: fast/dynamic/float-in-trailing-whitespace-after-last-line-break.html
19
20         * rendering/bidi.cpp:
21         (WebCore::RenderBlock::layoutInlineChildren): Ensured that floats
22         occurring in trailing whitespace after a line break are added to the
23         last line's floats vector.
24
25 2008-05-30  Timothy Hatcher  <timothy@apple.com>
26
27         Implements the back and forward buttons in the Scripts panel.
28
29         Reviewed by Adam Roben.
30
31         * page/inspector/ScriptsPanel.js:
32         (WebInspector.ScriptsPanel): Add the back and forward button elements
33         and remove the FIXMEs.
34         (WebInspector.ScriptsPanel.prototype.reset): Reset _backForwardList
35         and _currentBackForwardIndex. Then call _updateBackAndForwardButtons().
36         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
37         Added a fromBackForwardAction argument. If fromBackForwardAction is false
38         then update the _currentBackForwardIndex and _backForwardList.
39         (WebInspector.ScriptsPanel.prototype._updateBackAndForwardButtons):
40         Update the disabled state of the buttons.
41         (WebInspector.ScriptsPanel.prototype._goBack): Update the _currentBackForwardIndex
42         and call _showScriptOrResource() and _updateBackAndForwardButtons().
43         (WebInspector.ScriptsPanel.prototype._goForward): Ditto.
44
45 2008-05-30  Timothy Hatcher  <timothy@apple.com>
46
47         Made clicking a Console message URL originating from a JavaScript
48         source show the Resource in the Scripts panel. This only happens
49         when the debugger is attached.
50
51         Reviewed by Adam Roben.
52
53         * page/inspector/Console.js:
54         (WebInspector.Console.prototype._formaterror):
55         Add a preferredPanel of "scripts".
56         (WebInspector.ConsoleMessage.prototype.toMessageElement):
57         Add a preferredPanel of "scripts" when the source is JS.
58         * page/inspector/ScriptView.js:
59         (WebInspector.ScriptView.prototype.highlightLine): Added.
60         Calls through to the sourceFrame. Matches SourceView.
61         * page/inspector/ScriptsPanel.js:
62         (WebInspector.ScriptsPanel.prototype.canShowResource): Added.
63         Returns true if the debugger is attached and the resource has scripts.
64         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Call
65         highlightLine on the view.
66         * page/inspector/inspector.js:
67         (WebInspector.documentClick): Pass the preferredPanel to showResourceForURL.
68         (WebInspector.showResourceForURL): Resolve the preferredPanel from the string
69         passed in. Checks if the panel implements showResource and canShowResource.
70         Reverts to the Resources panel if any of that is false or not implemented.
71
72 2008-05-30  Timothy Hatcher  <timothy@apple.com>
73
74         Fixed an "undefined type" exception that was being thrown when
75         selecting a eval script from the file menu in the Scripts panel.
76         This would also happen when stepping into an eval which would
77         break other parts of the Inspector interface.
78
79         Reviewed by Adam Roben.
80
81         * page/inspector/ScriptsPanel.js:
82         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
83         Use the scriptOrResource variable instead of the undefined script variable.
84
85 2008-05-30  Timothy Hatcher  <timothy@apple.com>
86
87         Made the starting line number of scripts be 1-based throughout the engine.
88         This cleans up script line numbers so they are all consistent now and fixes
89         some cases where script execution was shown as off by one line in the debugger.
90
91         Doing this also exposed a bug where JSLazyEventListener created in XHML or SVG
92         documents would always have a line number of 0. So this change fixed that bug
93         to pass all the SVG and XHTML tests.
94
95         All layout tests pass.
96
97         Reviewed by Oliver Hunt.
98
99         * bindings/js/kjs_events.cpp:
100         (WebCore::JSLazyEventListener::JSLazyEventListener): Set the line number to 1
101         if it was passed in as 0. This can happen when listeners are created with
102         a setAttribute call from JavaScript.
103         (WebCore::JSLazyEventListener::parseCode): Add a FIXME about the URL being
104         incorrect when listeners are created with a setAttribute call from JavaScript.
105         * bindings/js/kjs_events.h: Remove the default value for lineNumber, since no
106         callers need it.
107         * bindings/objc/WebScriptObject.mm:
108         (-[WebScriptObject evaluateWebScript:]): Pass a line number of 1 instead of 0
109         to Interpreter::evaluate().
110         * bridge/NP_jsobject.cpp:
111         (_NPN_Evaluate): Ditto.
112         * bridge/jni/jni_jsobject.mm:
113         (JavaJSObject::eval): Ditto.
114         * dom/XMLTokenizer.cpp:
115         (WebCore::XMLTokenizer::startElementNs): Call KJSProxy::setEventHandlerLineno()
116         around the call to handleElementAttributes, so any JSLazyEventListener created
117         from those attributes have line numbers.
118         (WebCore::XMLTokenizer::endElementNs): Remove a minus 1 of the line number.
119         (WebCore::XMLTokenizer::notifyFinished): Pass a line number of 1 instead of 0.
120         (WebCore::XMLTokenizer::parseEndElement): Remove a minus 1 of the line number.
121         * html/HTMLScriptElement.cpp:
122         (WebCore::HTMLScriptElement::evaluateScript): Add a FIXME about the starting
123         line number being incorrect in some cases when this function is called.
124         * html/HTMLTokenizer.cpp:
125         (WebCore::HTMLTokenizer::parseSpecial): Add a plus 1 to the line number when
126         setting scriptStartLineno so it is 1-based. Same for calling setEventHandlerLineno().
127         (WebCore::HTMLTokenizer::processToken): Ditto.
128         * html/HTMLTokenizer.h: Change the default line number on scriptExecution() to 1 from 0.
129         * loader/FrameLoader.cpp:
130         (FrameLoader::executeIfJavaScriptURL): Pass a line number of 1 instead of 0 to executeScript().
131
132 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
133
134         Reviewed by Oliver (earlier version reviewed by Alexey).
135
136         - speculative fix for "REGRESSION(r34143?): Frequent crash while browsing"
137         https://bugs.webkit.org/show_bug.cgi?id=19285
138         
139         ("This Time for Sure" Edition)
140
141         I'm pretty sure this fixes it but I have not been able to
142         reproduce and am unsure if my theory of the bug is right.
143
144         I belive the bug was because JSDOMWindowBase accessed
145         JSDOMWindowShell in its destructor to remove itself from a
146         hashtable, but GC destructor order is not guaranteed, so the
147         hashtable may have been freed already. This patch changes things
148         so that a non-GC object (the KJSProxy) does the tracking of live
149         window objects for a frame. JSDOMWindowBase can null check the frame
150         pointer to verify if it is still good.
151         
152         In addition, we must create a similar setup between DOMWindow and
153         Frame; since the DOMWindow of a given frame can now change over
154         time, we must ensure that the Frame disconnects every live
155         DOMWindow when destroyed, not just the last.
156
157         * bindings/js/JSDOMWindowBase.cpp:
158         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
159         * bindings/js/JSDOMWindowShell.cpp:
160         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
161         * bindings/js/JSDOMWindowShell.h:
162         (WebCore::JSDOMWindowShell::setWindow):
163         * bindings/js/kjs_proxy.cpp:
164         (WebCore::KJSProxy::clear):
165         (WebCore::KJSProxy::initScript):
166         (WebCore::KJSProxy::updateDocument):
167         * bindings/js/kjs_proxy.h:
168         (WebCore::KJSProxy::clearFormerWindow):
169         * page/DOMWindow.cpp:
170         (WebCore::DOMWindow::~DOMWindow):
171         * page/Frame.cpp:
172         (WebCore::Frame::~Frame):
173         (WebCore::Frame::setDocument):
174         (WebCore::Frame::clearDOMWindow):
175         (WebCore::Frame::clearFormerDOMWindow):
176         * page/Frame.h:
177         * page/FramePrivate.h:
178
179 2008-05-30  Dan Bernstein  <mitz@apple.com>
180
181         Reviewed by Darin Adler and Dave Hyatt.
182
183         - eliminate excessive repainting when an object's final position
184           after layout is unchanged
185
186         * rendering/RenderBlock.cpp:
187         (WebCore::RenderBlock::layoutBlockChildren): Removed the full repaint
188         for the case that the final position is unchanged but the position at
189         which an intermediate layout occurred was different. Any repainting
190         done during the intermediate layout would have happened at the object's
191         initial (and also final) coordinates, since layoutDelta is factored
192         into repaint rect calculations.
193
194 2008-05-30  Chris Fleizach  <cfleizach@apple.com>
195
196         Reviewed by Beth Dakin.
197
198         <rdar://problem/5959478> r34079: AX: crash at stringForReplacedNode
199
200         * page/AccessibilityObject.cpp:
201         (WebCore::stringForReplacedNode):
202
203 2008-05-30  Tor Arne Vestbø  <tavestbo@trolltech.com>
204
205         Reviewed by Simon.
206
207         Fix the build dependencies for the Qt build. Don't generate
208         SVGCSSPropertyNames.cpp for every build.
209
210         * WebCore.pro: The output file was renamed, so the compiler rule needs
211         to be adjusted in order for qmake to generate correct depdencies.
212
213 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
214
215         Revert fix for 19285, it just caused more crashes and I need time
216         to fix it properly.
217
218         * bindings/js/JSDOMWindowBase.cpp:
219         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
220         * bindings/js/JSDOMWindowShell.cpp:
221         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
222         (WebCore::JSDOMWindowShell::updateDocument):
223         * bindings/js/JSDOMWindowShell.h:
224         (WebCore::JSDOMWindowShell::setWindow):
225         (WebCore::JSDOMWindowShell::clearFormerWindow):
226         * bindings/js/kjs_proxy.cpp:
227         (WebCore::KJSProxy::clear):
228         (WebCore::KJSProxy::initScript):
229         * bindings/js/kjs_proxy.h:
230         * page/Frame.cpp:
231         (WebCore::Frame::setDocument):
232
233 2008-05-30  Adam Treat  <treat@kde.org>
234
235         Reviewed by Simon.
236
237         Fix a huge memory leak by ensuring that on application shutdown
238         the shared timer is fired one last time if it is active. This
239         ensures that the GCController timer is fired at the end to free
240         references to JavaScript objects.
241
242         * platform/qt/SharedTimerQt.h:
243         (WebCore::SharedTimerQt::cleanup):
244         (WebCore::SharedTimerQt::inst):
245
246 2008-05-30  Alexey Proskuryakov  <ap@webkit.org>
247
248         Reviewed by Darin.
249
250         http://bugs.webkit.org/show_bug.cgi?id=7466
251         <rdar://problem/4657563> Use of Ctrl as access key modifier conflicts with Mac OS X
252         emacs-style keybindings
253
254         * page/EventHandler.cpp:
255         (WebCore::EventHandler::handleAccessKey): Use Ctrl+Option for access keys on Mac OS X.
256
257 2008-05-30  Maciej Stachowiak  <mjs@apple.com>
258
259         Reviewed by Alexey.
260         
261         - speculative fix for "REGRESSION(r34143?): Frequent crash while browsing"
262         https://bugs.webkit.org/show_bug.cgi?id=19285
263
264         I'm pretty sure this fixes it but I have not been able to
265         reproduce and am unsure if my theory of the bug is right.
266
267         I belive the bug was because JSDOMWindowBase accessed
268         JSDOMWindowShell in its destructor to remove itself from a
269         hashtable, but GC destructor order is not guaranteed, so the
270         hashtable may have been freed already. This patch changes things
271         so that a non-GC object (the KJSProxy) does the tracking of live
272         window objects for a frame. JSDOMWindowBase can null check the frame
273         pointer to verify if it is still good.
274         
275         * bindings/js/JSDOMWindowBase.cpp:
276         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
277         * bindings/js/JSDOMWindowShell.cpp:
278         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
279         * bindings/js/JSDOMWindowShell.h:
280         (WebCore::JSDOMWindowShell::setWindow):
281         * bindings/js/kjs_proxy.cpp:
282         (WebCore::KJSProxy::clear):
283         (WebCore::KJSProxy::initScript):
284         (WebCore::KJSProxy::updateDocument):
285         * bindings/js/kjs_proxy.h:
286         (WebCore::KJSProxy::clearFormerWindow):
287         * page/Frame.cpp:
288         (WebCore::Frame::setDocument):
289
290 2008-05-29  Chris Fleizach  <cfleizach@apple.com>
291
292         Reviewed by Darin Adler.
293
294         <rdar://problem/4783102> Radio button/checkbox embedded with <label> tag should combine the text and the label as a single element
295         <rdar://problem/5091386> Seed: VO reads form labels twice in Safari
296
297         * page/AccessibilityObject.cpp:
298         (WebCore::AccessibilityObject::titleUIElement):
299         * page/AccessibilityObject.h:
300         (WebCore::AccessibilityObject::isControl):
301         * page/AccessibilityRenderObject.cpp:
302         (WebCore::AccessibilityRenderObject::isControl):
303         (WebCore::AccessibilityRenderObject::labelElementContainer):
304         (WebCore::AccessibilityRenderObject::title):
305         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
306         (WebCore::AccessibilityRenderObject::elementRect):
307         (WebCore::AccessibilityRenderObject::titleUIElement):
308         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
309         (WebCore::AccessibilityRenderObject::roleValue):
310         * page/AccessibilityRenderObject.h:
311         * page/mac/AccessibilityObjectWrapper.mm:
312         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
313         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
314
315 2008-05-29  Timothy Hatcher  <timothy@apple.com>
316
317         Fixes the regression where image resources don't have a preview icon.
318
319         https://bugs.webkit.org/show_bug.cgi?id=18500
320
321         Reviewed by Adam Roben.
322
323         * page/inspector/ResourcesPanel.js:
324         (WebInspector.ResourceSidebarTreeElement): Call createIconElement before
325         calling the superclass.
326         (WebInspector.ResourceSidebarTreeElement.prototype.createIconElement):
327         Create an iconElement, if the category is images then make a div that
328         contains a preview image. Otherwise just make an img element. If there
329         was a previous iconElement, then replace it.
330         (WebInspector.ResourceSidebarTreeElement.prototype.refresh): Call
331         createIconElement if the category changed.
332         * page/inspector/SidebarTreeElement.js:
333         (WebInspector.SidebarTreeElement): Create an iconElement if one hasn't
334         been made already by a subclass.
335         (WebInspector.SidebarTreeElement.prototype.onattach): Append the iconElement
336         instead of creating one each time.
337         * page/inspector/inspector.css: New and updated style rules.
338
339 2008-05-29  Timothy Hatcher  <timothy@apple.com>
340
341         Removes a use of the internal _childrenListNode property by adding
342         a getter/setter for smallChildren to SidebarSectionTreeElement.
343
344         Reviewed by Adam Roben.
345
346         * page/inspector/ResourcesPanel.js:
347         (WebInspector.ResourcesPanel.prototype._toggleLargerResources):
348         Toggle smallChildren on the resourcesTreeElement instead of setting
349         the style class directly.
350         * page/inspector/SidebarTreeElement.js:
351         (WebInspector.SidebarSectionTreeElement.prototype.smallChildren):
352         Sets or removes the small class on the _childrenListNode.
353
354 2008-05-29  Timothy Hatcher  <timothy@apple.com>
355
356         Fixes a bug where the className would be reset for Resource
357         tree elements and the selected state would be lost. This could
358         happen when sorting the resources.
359
360         https://bugs.webkit.org/show_bug.cgi?id=19211
361
362         Reviewed by Adam Roben.
363
364         * page/inspector/ResourcesPanel.js:
365         (WebInspector.ResourceSidebarTreeElement.prototype.refresh): Call
366         removeMatchingStyleClasses to remove previous category classes instead
367         of setting the whole className directly.
368         * page/inspector/utilities.js:
369         (Element.prototype.removeStyleClass): Moved code to
370         removeMatchingStyleClasses and call removeMatchingStyleClasses.
371         (Element.prototype.removeMatchingStyleClasses): Added. Code moved from
372         removeStyleClass and don't escape the string.
373
374 2008-05-29  David Hyatt  <hyatt@apple.com>
375
376         Improve the performance of the GUIMark benchmark by 2x in the CoreGraphics code path.
377
378         Whenever a foreground image changes size rapidly, we will now dynamically shift into rendering it
379         using low quality scaling.  Once the animation completes, the image will repaint at high quality.
380         Scaled images will still render at high quality by default, only shifting into low quality if
381         the scale factor is rapidly changing.  This change raises GUIMark from 21fps to 34fps on my machine.
382
383         Rewrite the Image draw method to avoid the use of throwaway CG subimages.  Instead the entire image is
384         always drawn (with the appropriate clip and scale set up to make sure the correct subimage portion shows up
385         in the destination rect).  This change raises GUIMark from 34fps to 43fps on my machine.
386
387         Reviewed by Darin
388
389         * platform/graphics/GraphicsContext.cpp:
390         (WebCore::GraphicsContext::drawImage):
391         * platform/graphics/cg/ImageCG.cpp:
392         (WebCore::BitmapImage::draw):
393         * rendering/RenderImage.cpp:
394         (WebCore::RenderImageScaleData::RenderImageScaleData):
395         (WebCore::RenderImageScaleData::~RenderImageScaleData):
396         (WebCore::RenderImageScaleData::size):
397         (WebCore::RenderImageScaleData::time):
398         (WebCore::RenderImageScaleData::useLowQualityScale):
399         (WebCore::RenderImageScaleData::hiqhQualityRepaintTimer):
400         (WebCore::RenderImageScaleData::setSize):
401         (WebCore::RenderImageScaleData::setTime):
402         (WebCore::RenderImageScaleData::setUseLowQualityScale):
403         (WebCore::RenderImageScaleObserver::shouldImagePaintAtLowQuality):
404         (WebCore::RenderImageScaleObserver::imageDestroyed):
405         (WebCore::RenderImageScaleObserver::highQualityRepaintTimerFired):
406         (WebCore::RenderImage::highQualityRepaintTimerFired):
407         (WebCore::RenderImage::~RenderImage):
408         (WebCore::RenderImage::paintReplaced):
409         * rendering/RenderImage.h:
410
411 2008-05-29  Justin Garcia  <justin.garcia@apple.com>
412
413         Reviewed by Eric.
414
415         <rdar://problem/5847330> REGRESSION CrashTracer: [USER] 536 crashes at WebCore::highestAncestor
416
417         * editing/CompositeEditCommand.cpp:
418         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Don't break out of an empty
419         list item if its parent is non-editable, since doing so will move into non-editable content.
420         * editing/DeleteSelectionCommand.cpp:
421         (WebCore::DeleteSelectionCommand::initializePositionData): We want to prevent merges from
422         table cells even if those table cells are non-editable.
423         * editing/htmlediting.cpp:
424         (WebCore::enclosingNodeOfType): Can now return non-editable nodes, for cases where the caller 
425         isn't going to do editing in the returned node.
426         * editing/htmlediting.h:
427
428 2008-05-29  Anders Carlsson  <andersca@apple.com>
429
430         Reviewed by Mitz.
431
432         <rdar://problem/5971845>
433         https://bugs.webkit.org/show_bug.cgi?id=19313
434         Add version member to NPCocoaEvent
435         
436         * bridge/npapi.h:
437
438 2008-05-29  Alexey Proskuryakov  <ap@webkit.org>
439
440         Reviewed by Adam Roben.
441
442         <rdar://problem/5960682> REGRESSION(r30535): Crashes on iExploder in checkForHeadCharset().
443
444         I don't see how to make a reliable test, but iExploder catches this quickly.
445
446         * loader/TextResourceDecoder.cpp:
447         (WebCore::TextResourceDecoder::checkForHeadCharset): Correct the length passed to
448         findIgnoringCase().
449
450 2008-05-29  Peter Kasting  <zerodpx@gmail.com>
451
452         Reviewed by Dave Hyatt.
453
454         https://bugs.webkit.org/show_bug.cgi?id=19273
455         Handle looping GIFs correctly (at least in the open source GIF decoder) even when
456         the loop count doesn't appear in the initial data packets.
457
458         * platform/graphics/BitmapImage.cpp:
459         (WebCore::BitmapImage::cacheFrame):
460         (WebCore::BitmapImage::startAnimation):
461         (WebCore::BitmapImage::advanceAnimation):
462         * platform/image-decoders/gif/GIFImageDecoder.cpp:
463         (WebCore::GIFImageDecoder::GIFImageDecoder):
464         (WebCore::GIFImageDecoder::repetitionCount):
465         (WebCore::GIFImageDecoder::gifComplete):
466         * platform/image-decoders/gif/GIFImageDecoder.h:
467
468 2008-05-29  Brent Fulgham  <bfulgham@gmail.com>
469
470         Reviewed by Alp Toker.
471
472         http://bugs.webkit.org/show_bug.cgi?id=19284
473         Correct Windows (Cairo) Build Regressions
474
475         Correct small Windows (Cairo) build regressions in recent updates.
476
477         * platform/graphics/SimpleFontData.h:  Correct build regression due
478           to r32781 (additional use of m_syntheticBoldOffset in GDI code).
479         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
480           Correct build regression due to r31830 (change of clip signature
481           to use FloatRect rather than IntRect).
482         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
483         (WebCore::SimpleFontData::platformInit):  Initialize
484         m_syntheticBoldOffset
485         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
486         (WebCore::JPEGImageReader::JPEGImageReader):  Work around build
487           error due to warnings about _setjmp treated as errors.
488         * platform/image-decoders/png/PNGImageDecoder.cpp:  Work around
489           build error due to warnings about _setjmp treated as errors.
490         * platform/network/curl/ResourceHandleCurl.cpp:  Correct build error
491           due to different order (and content) of include files when building
492           with CoreFoundation (but not CoreGraphics).
493         * platform/network/curl/ResourceHandleManager.cpp:
494         (WebCore::ResourceHandleManager::setupPOST):  Correct build error
495           due to Visual Studio compiler bug.
496
497 2008-05-29  Alexey Proskuryakov  <ap@webkit.org>
498
499         Reviewed by Darin.
500
501         https://bugs.webkit.org/show_bug.cgi?id=19215
502         REGRESSION: transformToDocument fails when xsl includes &#160;
503
504         Test: fast/xsl/nbsp-in-stylesheet.html
505
506         * editing/markup.cpp:
507         (WebCore::appendAttributeValue):
508         (WebCore::appendEscapedContent):
509         (WebCore::escapeContentText):
510         (WebCore::appendQuotedURLAttributeValue):
511         (WebCore::appendNamespace):
512         (WebCore::appendStartMarkup):
513         (WebCore::appendDocumentType):
514         (WebCore::createMarkup):
515         Only escape non-breaking spaces in HTML documents. In Firefox, this behavior is also limited
516         to innerHTML, but we don't have a separate code path for it, and do not necessarily want to.
517
518         * page/Frame.cpp:
519         (WebCore::Frame::documentTypeString):
520         * dom/CDATASection.cpp:
521         * dom/CDATASection.h:
522         * dom/Comment.cpp:
523         * dom/Comment.h:
524         * dom/DocumentType.cpp:
525         * dom/DocumentType.h:
526         * dom/ProcessingInstruction.cpp:
527         * dom/ProcessingInstruction.h:
528         While at it, I also wanted to fix escaping for these nodes, but it turned out that FIXMEs were
529         incorrect. So, I just moved their serialization to markup.cpp for consistency.
530
531 2008-05-29  Maciej Stachowiak  <mjs@apple.com>
532
533         Reviewed by Dave Hyatt.
534
535         - speed up DHTML using lazy style resolution and renderer creation
536
537         This change introduces the concept of "lazy attach" - when a node
538         is lazy attached, then instead of resolving style and creating a
539         renderer right away, we just mark it as needing a style recalc.
540         
541         The patch makes use of this mechanism when inserting nodes directly
542         using DOM APIs from script. For now this is only done for the
543         JavaScript language binding but could also be done for other
544         bindings in the future.
545         
546         Lazy attach helps some common DHTML patterns - when a node is
547         added to the DOM, and then subsequently changed in a
548         style-affecting way, this causes an extra style recalc. This is a
549         fairly common pattern so it is better to be lazy.
550         
551         * bindings/js/JSNodeCustom.cpp:
552         (WebCore::JSNode::insertBefore): Request lazy attach.
553         (WebCore::JSNode::replaceChild): ditto
554         (WebCore::JSNode::appendChild): ditto
555         * dom/ContainerNode.cpp:
556         (WebCore::ContainerNode::insertBefore): Support lazy attach.
557         (WebCore::ContainerNode::replaceChild): ditto
558         (WebCore::ContainerNode::appendChild): ditto
559         (WebCore::ContainerNode::detach): Clear "changed child" bit if still set.
560         * dom/ContainerNode.h:
561         * dom/Element.cpp:
562         (WebCore::Element::recalcStyle): Adjusted to properly reattach a
563         lazy-attached node.
564         * dom/Node.cpp:
565         (WebCore::Node::insertBefore): Extra parameter for lazy attach
566         (still doesn't do anything).
567         (WebCore::Node::replaceChild): ditto
568         (WebCore::Node::appendChild): ditto
569         (WebCore::Node::setChanged): Unrelated but obvious optimization -
570         stop marking ancestor as having a changed child once we already reach
571         an ancestor so marked.
572         (WebCore::outermostLazyAttachedAncestor): Helper function for lazyAttach.
573         (WebCore::Node::lazyAttach): Implement lazy attach.
574         (WebCore::Node::canLazyAttach): Virtual method - true for most nodes.
575         * dom/Node.h:
576         * dom/Text.cpp:
577         (WebCore::Text::recalcStyle): Properly handle the case of a reattached node.
578         * html/HTMLEmbedElement.h:
579         (WebCore::HTMLEmbedElement::canLazyAttach): Refuse lazy attach, since
580         plugins and frames do important work at rederer creation time.
581         * html/HTMLFrameElementBase.h:
582         (WebCore::HTMLFrameElementBase::canLazyAttach): Refuse lazy attach, since
583         plugins and frames do important work at rederer creation time.
584         * html/HTMLFrameSetElement.cpp:
585         (WebCore::HTMLFrameSetElement::recalcStyle): Change order so that
586         reattach works properly.
587         * html/HTMLObjectElement.h:
588         (WebCore::HTMLObjectElement::canLazyAttach): Refuse lazy attach, since
589         plugins and frames do important work at rederer creation time.
590         * html/HTMLOptGroupElement.cpp:
591         (WebCore::HTMLOptGroupElement::insertBefore): Pass along extra param.
592         (WebCore::HTMLOptGroupElement::replaceChild): ditto
593         (WebCore::HTMLOptGroupElement::appendChild): ditto
594         * html/HTMLOptGroupElement.h:
595         * html/HTMLSelectElement.cpp:
596         (WebCore::HTMLSelectElement::insertBefore): Pass along extra param.
597         (WebCore::HTMLSelectElement::replaceChild): ditto
598         (WebCore::HTMLSelectElement::appendChild): ditto
599         * html/HTMLSelectElement.h:
600         * svg/SVGLocatable.cpp:
601         (WebCore::SVGLocatable::getBBox): Add missing updateLayout call.
602         * svg/SVGTextContentElement.cpp:
603         (WebCore::SVGTextContentElement::getNumberOfChars): ditto
604         (WebCore::SVGTextContentElement::getComputedTextLength): ditto
605         (WebCore::SVGTextContentElement::getSubStringLength): ditto
606         (WebCore::SVGTextContentElement::getStartPositionOfChar): ditto
607         (WebCore::SVGTextContentElement::getEndPositionOfChar): ditto
608         (WebCore::SVGTextContentElement::getExtentOfChar): ditto
609         (WebCore::SVGTextContentElement::getRotationOfChar): ditto
610         (WebCore::SVGTextContentElement::getCharNumAtPosition): ditto
611
612 2008-05-28  Ada Chan  <adachan@apple.com>
613
614         <rdar://problem/5957036> REGRESSION (r31960): 20-30% slowdown in i-Bench JavaScript test on XP Home
615         Conditionalize the timer latency change (r31960) only for vista since it does not
616         help xp anyway.
617
618         Reviewed by Steve Falkenburg.
619
620         * platform/win/SharedTimerWin.cpp:
621         (WebCore::isRunningOnVistaOrLater):
622         (WebCore::TimerWindowWndProc):
623         (WebCore::setSharedTimerFireTime):
624
625 2008-05-28  Anders Carlsson  <andersca@apple.com>
626
627         Build fix.
628         
629         * storage/LocalStorage.cpp:
630         (WebCore::LocalStorage::scheduleImport):
631
632 2008-05-28  Anders Carlsson  <andersca@apple.com>
633
634         Reviewed by Tim.
635
636         <rdar://problem/5965960>
637         CrashTracer: [USER] 4 crashes in Safari at libxml2.2.dylib: xmlGenericErrorDefaultFunc + 76
638         
639         Turns out that while libxml has two different error callbacks, they both use the same context, so we need to 
640         set both error callbacks to prevent one of the error callbacks from using the context as a FILE pointer.
641         
642         * xml/XSLStyleSheet.cpp:
643         (WebCore::XSLStyleSheet::parseString):
644         * xml/XSLTProcessor.cpp:
645         (WebCore::XSLTProcessor::genericErrorFunc):
646         (WebCore::docLoaderFunc):
647         * xml/XSLTProcessor.h:
648
649 2008-05-28  Brady Eidson  <beidson@apple.com>
650
651         Reviewed by Adam
652
653         Fix hang I introduced to WebKit clients without their LocalStorage paths set
654         Such as DRT...
655
656         * storage/LocalStorage.cpp:
657         (WebCore::LocalStorage::scheduleImport): Return a bool, namely to signify
658           whether or not there is a LocalStorageThread to schedule the import on.
659         * storage/LocalStorage.h:
660
661         * storage/LocalStorageArea.cpp:
662         (WebCore::LocalStorageArea::LocalStorageArea): If the scheduleImport failed,
663           mark the imported flag as true so the LocalStorageArea doesn't wait around
664           locking the main thread.
665
666 2008-05-28  Anthony Ricaud  <rik24d@gmail.com>
667
668         User stylesheets are now non-editable and displayed as user-stylesheets
669
670         <https://bugs.webkit.org/show_bug.cgi?id=17602>
671         <rdar://problem/5967637>
672
673         Reviewed by Tim Hatcher.
674
675         * English.lproj/localizedStrings.js: Added a string
676         * page/inspector/StylesSidebarPane.js:
677
678 2008-05-28  Anders Carlsson  <andersca@apple.com>
679
680         Reviewed by Mitz.
681
682         <rdar://problem/5819989> 
683         Crash in WebKit!KJS::Window::printErrorMessage quitting Safari after pop up window on uk.real.com was closed
684
685         Add null check for Frame::settings().
686         
687         * bindings/js/JSDOMWindowBase.cpp:
688         (WebCore::JSDOMWindowBase::printErrorMessage):
689
690 2008-05-27  Geoffrey Garen  <ggaren@apple.com>
691
692         Reviewed by Tim Hatcher.
693
694         Fixed https://bugs.webkit.org/show_bug.cgi?id=19183
695         REGRESSION (r33979): Crash in DebuggerCallFrame::functionName when
696         clicking button in returnEvent-crash.html
697         
698         Added implementations for willExecuteProgram and didExecuteProgram. They
699         take care to update our call frame when entering and exiting programs,
700         preventing us from keeping around a stale global frame after executing
701         a program.
702         
703         eval programs now show up as "anonymous function" in a new scope. This
704         is slightly better than what they used to do -- overwriting the current
705         scope -- but obviously we can do better.
706
707 2008-05-28  Brady Eidson  <beidson@apple.com>
708
709         Reviewed by Dan Bernstein
710
711         <rdar://problem/5946834> - LocalStorage threads appearing in apps that don't want them.
712
713         Decided to fix this bug from a few different avenues to make sure we only create LocalStorage resources
714         when we *really* want them.
715
716         * page/DOMWindow.cpp:
717         (WebCore::DOMWindow::localStorage): Account for the possibility that the LocalStorage object might be null.
718
719         * storage/LocalStorage.cpp:
720         (WebCore::LocalStorage::LocalStorage): Don't create the thread if there is no path name - we know we'll never
721           be needing it when there is no file backing us on disk.
722         (WebCore::LocalStorage::scheduleImport): Null check the thread, as it might not exist.
723         (WebCore::LocalStorage::scheduleSync): Ditto
724
725         * storage/LocalStorageThread.cpp:
726         (WebCore::LocalStorageThread::localStorageThread): Clear the threadID after termination - clear way to signify
727           that this thread is truly done.
728         (WebCore::LocalStorageThread::scheduleImport): ASSERT that the queue is live, and the threadID exists
729         (WebCore::LocalStorageThread::scheduleSync): Ditto
730         (WebCore::LocalStorageThread::terminate): Don't schedule termination and wait for it to complete if the thread 
731           isn't live.
732
733 2008-05-28  Alexander Vassilev  <avasilev@voipgate.com>
734
735         Reviewed by Kevin Ollivier.
736
737         Rescale image to fit the destination rect so that we don't get a crash when drawing
738         in a destination rect that's bigger than the image rect. Also adds an optimization for
739         drawing an image that is a solid color.
740         
741         https://bugs.webkit.org/show_bug.cgi?id=18465
742
743         * platform/graphics/wx/ImageWx.cpp:
744         (WebCore::BitmapImage::draw):
745
746 2008-05-27  Tor Arne Vestbø  <tavestbo@trolltech.com>
747
748         Reviewed by Simon
749
750         Close the video widget explicitly so we don't hang
751         when exiting the application.
752
753         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
754         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
755
756 2008-05-27  Justin Garcia  <justin.garcia@apple.com>
757
758         Reviewed by Oliver.
759
760         <rdar://problem/5803706> Pressing return at the end of a header doesn't break out of header (17460)
761         
762         It wasn't enough to break out of the header, to match other browsers we 
763         also need to not preserve the typing style.
764
765         * editing/InsertParagraphSeparatorCommand.cpp:
766         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion):
767         (WebCore::InsertParagraphSeparatorCommand::doApply):
768         * editing/InsertParagraphSeparatorCommand.h:
769
770 2008-05-27  Timothy Hatcher  <timothy@apple.com>
771
772         <rdar://problem/5966961> REGRESSION: Font previews in the Web
773         Inspector always show in Lucida Grande (not the real font)
774
775         Reviewed by Adam Roben.
776
777         * page/inspector/FontView.js: Add a style element that loads the
778         @font-face rule that is excepted by the preview element.
779
780 2008-05-27  Timothy Hatcher  <timothy@apple.com>
781
782         Fixes a regression where the Image and Font preview views do not
783         size correctly.
784
785         <rdar://problem/5966723> REGRESSION (r33991): Image and font previews
786         are shrunken and can't be made larger (19281)
787
788         Reviewed by Adam Roben.
789
790         * page/inspector/FontView.js: Adjust the font size based only on the
791         container width minus padding.
792         * page/inspector/inspector.css: Updated styles for the image and
793         font views.
794
795 2008-05-27  Adam Roben  <aroben@apple.com>
796
797         Fix Bug 19276: XHR resources are classified as "Other" until Inspector
798         is closed and reopened
799
800         <https://bugs.webkit.org/show_bug.cgi?id=19276>
801         <rdar://problem/5965742>
802
803         Reviewed by Tim Hatcher.
804
805         * page/InspectorController.cpp:
806         (WebCore::InspectorController::updateScriptResourceResponse): Moved
807         code that updates the resource's type from here...
808         (WebCore::InspectorController::updateScriptResourceType): ...to here.
809         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
810         Call updateScriptResourceType now that we know this resource was
811         retrieved via an XHR.
812         * page/InspectorController.h:
813
814 2008-05-27  Timothy Hatcher  <timothy@apple.com>
815
816         Removes a redundant call to InspectorController::stopDebugging().
817
818         Rubber-stamped by Adam Roben.
819
820         * page/InspectorController.cpp:
821         (WebCore::InspectorController::showWindow):
822
823 2008-05-27  Kevin McCullough  <kmccullough@apple.com>
824
825         Reviewed by Tim.
826
827         - Added and updated some manual test for the profiler.
828
829         * manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html:
830         * manual-tests/inspector/profiler-test-apply.html:
831         * manual-tests/inspector/profiler-test-call.html:
832         * manual-tests/inspector/profiler-test-deep-recursion.html: Added.
833         * manual-tests/inspector/profiler-test-simple-event-call.html: Added.
834
835 2008-05-27  Kevin Ollivier  <kevino@theolliviers.com>
836
837         wx build fix. Accidently left a couple fixes out of the previous commit.
838
839         * webcore-base.bkl:
840
841 2008-05-27  Kevin Ollivier  <kevino@theolliviers.com>
842
843         wx build fix. Adding JSHTMLElementWrapperFactory.cpp.
844         
845         * WebCoreSources.bkl:
846
847 2008-05-27  Ariya Hidayat  <ariya.hidayat@trolltech.com>
848
849         Reviewed by Simon.
850
851         Fix linking error (missing gdi32 and user32 libraries).
852
853         * WebCore.pro:
854
855 2008-05-27  Ariya Hidayat  <ariya.hidayat@trolltech.com>
856
857         Reviewed by Simon.
858
859         Update the WebKit.qrc so that Web Inspector is functional again.
860
861         * page/inspector/WebKit.qrc:
862
863 2008-05-26  Alp Toker  <alp@nuanti.com>
864
865         Reviewed by Anders.
866
867         http://bugs.webkit.org/show_bug.cgi?id=16495
868         [GTK] Accessibility support with ATK/AT-SPI
869
870         Implement basic action, text and editable text accessibility.
871
872         Provide utility functions to simplify const string return and casting
873         and add some more stubs.
874
875         It's now possible to navigate and manipulate forms and text using
876         assistive technologies.
877
878         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
879         (returnString):
880         (core):
881         * platform/gtk/LocalizedStringsGtk.cpp:
882         (WebCore::AXButtonActionVerb):
883         (WebCore::AXRadioButtonActionVerb):
884         (WebCore::AXTextFieldActionVerb):
885         (WebCore::AXCheckedCheckBoxActionVerb):
886         (WebCore::AXUncheckedCheckBoxActionVerb):
887         (WebCore::AXLinkActionVerb):
888         (WebCore::imageTitle):
889
890 2008-05-25  Maciej Stachowiak  <mjs@apple.com>
891
892         Reviewed by Anders.
893
894         - bind the window's "document" and "window" properties to static slots
895         1.7% speedup on Acid3 test 26
896         
897         Only the "document" part matters for Acid3, but since I was doing
898         this anyway, "window" also seemed like a good one to optimize.
899
900         * bindings/js/JSDOMWindowBase.cpp:
901         (WebCore::JSDOMWindowBase::JSDOMWindowBase): Allocate variable
902         slots for document and window; but just put null in the document
903         slot for now.
904         (WebCore::JSDOMWindowBase::updateDocument): Fill in the document
905         slot.        
906         (WebCore::JSDOMWindowBase::~JSDOMWindowBase): Make our shell stop
907         tracking us.
908         * bindings/js/JSDOMWindowBase.h:
909         * bindings/js/JSDOMWindowShell.cpp:
910         (WebCore::JSDOMWindowShell::JSDOMWindowShell): Allocate HashSet
911         for our still-not-dead inner windows.
912         (WebCore::JSDOMWindowShell::updateDocument): Update all our
913         inner windows ever (to make sure the update to the document
914         property shows up everywhere).
915         * bindings/js/JSDOMWindowShell.h:
916         (WebCore::JSDOMWindowShell::setWindow): Update our hash.
917         (WebCore::JSDOMWindowShell::clearFormerWindow): Ditto.
918         * bindings/js/JSDocumentCustom.cpp:
919         (WebCore::toJS): Don't set self as a property map property of
920         the window, this is no longer necessary.
921         * bindings/js/kjs_proxy.cpp:
922         (WebCore::KJSProxy::initScript): Update document for the
923         newly created window.
924         * bindings/js/kjs_proxy.h:
925         * page/Frame.cpp:
926         (WebCore::Frame::setDocument): If the document is not null,
927         update our window.
928
929 2008-05-26  Anders Carlsson  <andersca@apple.com>
930
931         Reviewed by Sam.
932
933         This patch does two things:
934         
935         * It adds a toJSNewlyCreated function for creating JS wrappers for nodes where we know
936         that the node doesn't have a wrapper. This avoids a hash lookup.
937         
938         * It adds toJSNewlyCreated methods for JSElement and JSText. 
939         
940         All in all this is a 4.3% speedup on Acid 3 test 26.
941         
942         * WebCore.vcproj/WebCore.vcproj:
943         * WebCore.xcodeproj/project.pbxproj:
944         * bindings/js/JSElementCustom.cpp:
945         (WebCore::toJSNewlyCreated):
946         * bindings/js/JSNodeCustom.cpp:
947         (WebCore::createWrapper):
948         (WebCore::toJSNewlyCreated):
949         (WebCore::toJS):
950         * bindings/js/JSTextCustom.cpp: Added.
951         (WebCore::toJSNewlyCreated):
952         * bindings/scripts/CodeGeneratorJS.pm:
953         * dom/Document.idl:
954
955 2008-05-26  Sam Weinig  <sam@webkit.org>
956
957         Reviewed by Anders Carlsson.
958
959         Inline the getOwnPropertySlot for JSNode, JSEventTargetNode, JSElement,
960         and JSDocument for a 1-2% speedup on Acid 3 test 26.
961
962         * bindings/js/JSEventTargetNode.cpp:
963         * bindings/js/JSEventTargetNode.h:
964         (WebCore::JSEventTargetNode::getOwnPropertySlot):
965         (WebCore::JSEventTargetNode::getValueProperty):
966         (WebCore::JSEventTargetNode::put):
967         (WebCore::JSEventTargetNode::putValueProperty):
968         * bindings/scripts/CodeGeneratorJS.pm:
969         * dom/Document.idl:
970         * dom/Element.idl:
971         * dom/Node.idl:
972
973 2008-05-26  Darin Adler  <darin@apple.com>
974
975         Reviewed by Maciej.
976
977         - https://bugs.webkit.org/show_bug.cgi?id=19239
978
979         Removed code that would only useful if if there was any way to create an Entity
980         node or if we populated EntityReference nodes. It's likely that we'll remove
981         these node types entirely in some future version of WebKit, depending in part
982         on what happens with these in HTML 5.
983
984         1.8% speedup of Acid3 test 26.
985
986         The only read-only nodes we ever create are EntityReference nodes.
987         These are only created by explicit calls to the Document.createEntityReference
988         function. Since the created nodes are read-only, there can be no children of
989         these nodes, so no other types of nodes can be read-only despite the rule that
990         makes descendants of Entity and EntityReference nodes read-only.
991
992         * bindings/objc/DOM.mm: Removed unneeded include.
993
994         * dom/Attr.cpp:
995         (WebCore::Attr::setValue): Removed unnecessary isReadOnlyNode check.
996         (WebCore::Attr::setNodeValue): Ditto.
997         * dom/CharacterData.cpp:
998         (WebCore::CharacterData::setData): Removed unnecessary isReadOnlyNode check.
999         (WebCore::CharacterData::substringData): Don't initialize the ec variable before
1000         calling checkCharDataOperation, since that function already does it.
1001         (WebCore::CharacterData::appendData): Removed unnecessary isReadOnlyNode check.
1002         (WebCore::CharacterData::insertData): Don't initialize ec.
1003         (WebCore::CharacterData::deleteData): Ditto.
1004         (WebCore::CharacterData::replaceData): Ditto.
1005         (WebCore::CharacterData::setNodeValue): Removed now-misleading comment.
1006         (WebCore::CharacterData::checkCharDataOperation): Removed unnecessary
1007         isReadOnlyNode check.
1008         * dom/CharacterData.h: Made checkCharDataOperation private and non-virtual
1009         since it's never used or defined in any other class.
1010
1011         * dom/Element.cpp:
1012         (WebCore::Element::setAttribute): Removed unneeded isReadOnlyNode check.
1013
1014         * dom/Entity.cpp: Removed the entire contents of this file.
1015
1016         * dom/Entity.h: Replaced the class with a stub -- just enough to keep the
1017         public bindings (JavaScript and Objective-C compiling), but the class is
1018         abstract and can't be instantianted.
1019
1020         * dom/EntityReference.cpp: Removed unused constructor.
1021         (WebCore::EntityReference::cloneNode): Removed unneeded code and comments
1022         to clone nonexistent child nodes.
1023         * dom/EntityReference.h: Removed unused constructor and unnecessary override
1024         of childTypeAllowed, since no children are allowed at all.
1025
1026         * dom/NamedAttrMap.cpp:
1027         (WebCore::NamedAttrMap::setNamedItem): Removed unneeded isReadOnlyNode check.
1028         (WebCore::NamedAttrMap::removeNamedItem): Ditto.
1029         * dom/NamedAttrMap.h: Removed isReadOnlyNode function.
1030
1031         * dom/Node.cpp: Removed the old isReadOnlyNode function. It made lots of
1032         virtual nodeType function calls.
1033         * dom/Node.h:
1034         (WebCore::Node::isReadOnlyNode): Replaced the old virtual isReadOnlyNode
1035         function with a new simple non-virtual one.
1036
1037         * dom/ProcessingInstruction.cpp:
1038         (WebCore::ProcessingInstruction::setData): Removed unneeded isReadOnlyNode
1039         check.
1040
1041         * dom/Text.cpp:
1042         (WebCore::Text::splitText): Removed unneeded isReadOnlyNode check.
1043         (WebCore::Text::replaceWholeText): Removed unnecessary isReadOnlyNode assertion.
1044         There is no reason for this function to go out of its way to mention the
1045         read-only node issue when none of the other DOM mutation functions do.
1046
1047 2008-05-26  Adam Barth  <abarth@webkit.org>
1048
1049         Reviewed by Sam.
1050
1051         Cleanup SecurityOrigin::canAccess.  Removed comment referring to an
1052         old version of the code.  Removed some useless code.
1053
1054         * platform/SecurityOrigin.cpp:
1055         (WebCore::SecurityOrigin::canAccess):
1056
1057 2008-05-26  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
1058
1059         Reviewed by Alp Toker.
1060
1061         * platform/gtk/LocalizedStringsGtk.cpp:
1062         (WebCore::contextMenuItemTagSelectAll): Fix GTK+ version check.
1063
1064 2008-05-25  Chris Fleizach  <cfleizach@apple.com>
1065
1066         Reviewed by David Harrison
1067
1068         <rdar://problem/3582905> elements on separate pages need to be distinct
1069
1070         * page/AccessibilityListBox.h:
1071         * page/AccessibilityObject.h:
1072         (WebCore::AccessibilityObject::accessibilityShouldUseUniqueId):
1073         * page/AccessibilityRenderObject.cpp:
1074         * page/AccessibilityRenderObject.h:
1075
1076 2008-05-25  Maciej Stachowiak  <mjs@apple.com>
1077
1078         Reviewed by Darin.
1079
1080         - don't repaint nodes that are removed before layout
1081         4.3% speedup on Acid3 test 26
1082
1083         Mitz points out the new flag can also be used to optimize other
1084         cases of needless repaint such as
1085         <https://bugs.webkit.org/show_bug.cgi?id=15129>.
1086         
1087         * rendering/RenderContainer.cpp:
1088         (WebCore::RenderContainer::removeChildNode): If the child has never had a layout,
1089         don't bother to repaint it, since there's nothing to dirty.
1090         * rendering/RenderObject.cpp:
1091         (WebCore::RenderObject::RenderObject): Initialize m_everHadLayout to false.
1092         (WebCore::RenderObject::setNeedsLayout): Set m_everHadLayout to true if we
1093         are being marked as not needing layout.
1094         * rendering/RenderObject.h:
1095
1096 2008-05-25  Dan Bernstein  <mitz@apple.com>
1097
1098         Reviewed by Darin Adler.
1099
1100         - fix https://bugs.webkit.org/show_bug.cgi?id=19086
1101           <rdar://problem/5962254> REGRESSION (r28519-r28535): Caret doesn't paint past the right edge of a block
1102
1103         Test: fast/repaint/caret-outside-block.html
1104
1105         * editing/SelectionController.cpp:
1106         (WebCore::repaintRectForCaret): Restored this function which was removed
1107         in r28523, but changed it to inflate only the width.
1108         (WebCore::SelectionController::caretRepaintRect): Changed back to use
1109         repaintRectForCaret().
1110         (WebCore::SelectionController::recomputeCaretRect): Ditto.
1111
1112 2008-05-25  Marco Barisione  <marco.barisione@collabora.co.uk>
1113
1114         Reviewed by Alp Toker.
1115
1116         http://bugs.webkit.org/show_bug.cgi?id=18940
1117         [CURL] Allow \n as line terminator for headers
1118
1119         The line terminator for message-header fields should be CRLF. However,
1120         it is recommended to recognise as a line terminator also a single LF.
1121
1122         * platform/network/curl/ResourceHandleManager.cpp:
1123         (WebCore::headerCallback): Allow headers to be terminated by "\n" and
1124         not just by "\r\n".
1125
1126 2008-05-25  Jan Michael Alonzo  <jmalonzo@webkit.org>
1127
1128         Reviewed by Alp Toker.
1129
1130         WARNING: NO TEST CASES ADDED OR CHANGED
1131
1132         http://bugs.webkit.org/show_bug.cgi?id=19142
1133         [Gtk] Remove build options --svg-experimental and --cross-document-messaging
1134
1135         * GNUmakefile.am:
1136
1137 2008-05-24  Rob Buis  <buis@kde.org>
1138
1139         Reviewed by Eric.
1140
1141         https://bugs.webkit.org/show_bug.cgi?id=18927
1142         Unify path data debug output
1143
1144         Implement unified path data output for Mac svg tests.
1145
1146         * platform/graphics/cg/PathCG.cpp:
1147         (WebCore::CGPathToCFStringApplierFunction):
1148         (WebCore::CFStringFromCGPath):
1149
1150 2008-05-24  Timothy Hatcher  <timothy@apple.com>
1151
1152         Fixes a huge leak with the Inspector where it was protecting
1153         a large object that was not being unprotected.
1154
1155         <rdar://problem/5961999> Inspector protects a large JavaScript
1156         object and never unprotects it (large leak)
1157
1158         Reviewed by Darin Adler.
1159
1160         * page/InspectorController.cpp:
1161         (WebCore::InspectorController::inspectedPageDestroyed): Call close()
1162         and removed a call to stopDebugging() and moved it to close().
1163         (WebCore::InspectorController::close): Add stopDebugging() and
1164         stopUserInitiatedProfiling(). Removed an ASSERT and added an
1165         if statement before calling JSValueUnprotect. We don't always have
1166         a m_scriptContext and m_scriptObject.
1167
1168 2008-05-24  Alp Toker  <alp@nuanti.com>
1169
1170         Win32/gcc3 build fix in Pango font backend. UChar needs to be
1171         explicitly cast to gunichar2.
1172
1173         * platform/graphics/gtk/FontGtk.cpp:
1174         (WebCore::utf16_to_utf8):
1175
1176 2008-05-24  Timothy Hatcher  <timothy@apple.com>
1177
1178         Fixes a crash where a new Inspector would get an old
1179         JSInspectedObjectWrapper for a user agent CSSStyleDeclaration.
1180         Since these style objects shared between pages, the wrapper cache
1181         would have a wrapper for the object still. But the wrapper was
1182         for a previous global object and with a disconnected frame. This
1183         fixes the wrapper cache so wrappers are remembered per global object
1184         and the object they are wrapping.
1185
1186         <rdar://problem/5958567> repro crash in WebCore::Frame::keepAlive()
1187         opening inspector window after closing it
1188
1189         Reviewed by Darin Adler.
1190
1191         * bindings/js/JSInspectedObjectWrapper.cpp:
1192         (WebCore::wrappers): Return a GlobalObjectWrapperMap reference.
1193         (WebCore::JSInspectedObjectWrapper::wrap): Find the WrapperMap
1194         by the dynamicGlobalObject then find the wrapper for unwrappedObject.
1195         (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper): Changes
1196         how the wrapper is added to the wrapper cache.
1197         (WebCore::JSInspectedObjectWrapper::~JSInspectedObjectWrapper): Changes
1198         how the wrapper is removed from the wrapper cache.
1199         * bindings/js/JSQuarantinedObjectWrapper.h:
1200         (WebCore::JSQuarantinedObjectWrapper:unwrappedGlobalObject): Added.
1201
1202 2008-05-24  Alexey Proskuryakov  <ap@webkit.org>
1203
1204         Reviewed by Maciej.
1205
1206         Optimize Node::textContent() to avoid O(n^2) string appending behavior.
1207
1208         1.6% speedup at Acid3 test 26.
1209
1210         * WebCore.xcodeproj/project.pbxproj:
1211         * GNUmakefile.am:
1212         * WebCore.pro:
1213         * WebCoreSources.bkl:
1214         * WebCore.vcproj/WebCore.vcproj:
1215         * platform/text/StringBuilder.cpp: Added.
1216         (WebCore::StringBuilder::append):
1217         (WebCore::StringBuilder::toString):
1218         * platform/text/StringBuilder.h: Added.
1219         (WebCore::StringBuilder::StringBuilder):
1220         (WebCore::StringBuilder::isNull):
1221         Added a simple class to efficiently build a string by appending. Potentially, it can be
1222         extended to be more like java.lang.StringBuilder, but we don't need that much flexibility now.
1223
1224         * dom/Node.cpp:
1225         (WebCore::Node::appendTextContent):
1226         (WebCore::Node::textContent):
1227         * dom/Node.h:
1228         Changed to use StringBuilder.
1229
1230 2008-05-24  Julien Chaffraix  <jchaffraix@webkit.org>
1231
1232         Reviewed by Eric.
1233
1234         Bug 9191: JS*ElementWrapperFactory should be autogenerated
1235         https://bugs.webkit.org/show_bug.cgi?id=9191
1236
1237         This is a first pass for generation of JS*ElementWrapperFactory, in the long term we should move the make_names.pl
1238         intelligence to the *.in files.
1239
1240         - Add a new parameter to make_names.pl --wrapperFactory which works like --wrapper but generates the
1241         JS*ElementWrapperFactory files.
1242
1243         - Removed JS*ElementWrapperFactory files in WebCore/bindings/js, replaced by the generated ones.
1244
1245         - Updated the build systems to account for the previous changes.
1246
1247         * DerivedSources.make:
1248         * GNUmakefile.am:
1249         * WebCore.pro:
1250         * WebCore.vcproj/WebCore.vcproj:
1251         * WebCore.xcodeproj/project.pbxproj:
1252         * WebCoreSources.bkl:
1253         * bindings/js/JSHTMLElementWrapperFactory.cpp: Removed.
1254         * bindings/js/JSHTMLElementWrapperFactory.h: Removed.
1255         * bindings/js/JSSVGElementWrapperFactory.cpp: Removed.
1256         * bindings/js/JSSVGElementWrapperFactory.h: Removed.
1257         * dom/make_names.pl:
1258
1259 2008-05-24  Oleg Finkelshteyn <olegfink@gmail.com>
1260
1261         Rubber-stamped and landed by Alexey.
1262
1263         Build fix for gcc 4.3.
1264
1265         * WebCore/page/Console.cpp:
1266         Add missing standard includes.
1267
1268 2008-05-23  Timothy Hatcher  <timothy@apple.com>
1269
1270         Fixes a bug where a timer would keep firing after the Inspector
1271         was closed. It turns out this timer wasn't needed anymore now
1272         that we can add an event listener to the inspected page and have
1273         it get called in the Inspector's context.
1274
1275         https://bugs.webkit.org/show_bug.cgi?id=18577
1276
1277         Reviewed by Mark Rowe.
1278
1279         * page/inspector/ElementsPanel.js:
1280
1281 2008-05-23  Anthony Ricaud  <rik24d@gmail.com>
1282
1283         Changes the largerResourcesButton tooltip to toggle.
1284
1285         https://bugs.webkit.org/show_bug.cgi?id=19210
1286
1287         Reviewed by Tim Hatcher.
1288
1289         * WebCore/English.lproj/localizedStrings.js: New string and clean an
1290         double string "Dock to main window."
1291         * WebCore/page/inspector/ResourcesPanel.js: Toggle the tooltip and
1292         change the default tooltip
1293
1294 2008-05-23  Justin Garcia  <justin.garcia@apple.com>
1295
1296         Reviewed by Darin.
1297
1298         <rdar://problem/5939887> REGRESSION: With no selection, copy does not fire oncopy handler (affects CIFilterBrowser widget)
1299         
1300         Execute cut, copy and paste if they are invoked explicitly, via execCommand or -[WebView copy:], even
1301         if they are disabled.  This will fire oncopy, oncut and onpaste, but won't perform any other work, like
1302         writing to the pasteboard during cut/copy or deleting the selection during cut/paste.  This matches FF3,
1303         which actually goes further and fires oncopy on any Command-C.
1304         
1305         * editing/EditorCommand.cpp:
1306         (WebCore::CommandEntry::):
1307         (WebCore::Editor::Command::execute):
1308
1309 2008-05-23  Timothy Hatcher  <timothy@apple.com>
1310
1311         Adds a percentage toggle button the profile view status bar that
1312         changes the time columns between absolute and percents.
1313
1314         https://bugs.webkit.org/show_bug.cgi?id=19224
1315
1316         Reviewed by Kevin McCullough.
1317
1318         * English.lproj/localizedStrings.js: New strings.
1319         * page/inspector/Images/percentButtons.png: Added.
1320         * page/inspector/ProfileView.js: Make the button and add it to the
1321         status bar. Make clicking toggle the showAsPercent* properties.
1322         * page/inspector/inspector.css: New styles.
1323
1324 2008-05-23  Timothy Hatcher  <timothy@apple.com>
1325
1326         Fixes a bug where excluding nodes from the profile could
1327         show an empty parent node.
1328
1329         <rdar://problem/5959573> Excluding nodes from the profile could show
1330         an empty parent node
1331
1332         Reviewed by Kevin McCullough.
1333
1334         * page/inspector/ProfileView.js: Only say we have children if
1335         all of our children nodes are visible.
1336
1337 2008-05-23  Anders Carlsson  <andersca@apple.com>
1338
1339         Reviewed by Adam.
1340
1341         Add IconFetcher to project.
1342         
1343         * WebCore.vcproj/WebCore.vcproj:
1344
1345 2008-05-23  Timothy Hatcher  <timothy@apple.com>
1346
1347         Fixes a bug where the Web Insepctor would jump back to
1348         Elements each time it is opened instead of staying at the
1349         last selected panel.
1350
1351         <rdar://problem/5959475> Inspector jumps to the Elements panel
1352         each time it is opened, instead of staying at the previous panel
1353
1354         Reviewed by Adam Roben.
1355
1356         * page/InspectorController.cpp:
1357         (WebCore::InspectorController::setWindowVisible): Reset
1358         m_showAfterVisible to CurrentPanel, so the next time setWindowVisible
1359         is called it will use CurrentPanel unless showPanel was called again.
1360
1361 2008-05-23  chris fleizach  <cfleizach@apple.com>
1362
1363         Reviewed by Darin Adler.
1364
1365         <rdar://problem/5933759> REGRESSION: Frames don't appear as AX children of the top level web area
1366
1367         * page/AccessibilityRenderObject.cpp:
1368         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1369
1370 2008-05-23  Ariya Hidayat  <ariya.hidayat@trolltech.com>
1371
1372         Reviewed by Simon.
1373
1374         For Qt port, support painting to native Windows HDC.
1375
1376         * platform/graphics/GraphicsContext.h:
1377         * platform/graphics/qt/GraphicsContextQt.cpp:
1378         (WebCore::GraphicsContext::getWindowsContext):
1379         (WebCore::GraphicsContext::releaseWindowsContext):
1380
1381 2008-05-23  Timothy Hatcher  <timothy@apple.com>
1382
1383         Fixes a bug where the Inspector could have 0ms timers firing
1384         even after it is closed.
1385
1386         https://bugs.webkit.org/show_bug.cgi?id=18577
1387
1388         Reviewed by Oliver Hunt.
1389
1390         * page/inspector/DatabasesPanel.js: Removes setTimeouts that call
1391         the same function with a 0ms delay. These we not doing any good anyway,
1392         so they weren't needed and just caused problems.
1393         * page/inspector/ElementsPanel.js: Ditto.
1394         * page/inspector/ProfilesPanel.js: Ditto.
1395         * page/inspector/ResourcesPanel.js: Ditto.
1396
1397 2008-05-23  Timothy Hatcher  <timothy@apple.com>
1398
1399         Make the Inspector correctly populate the profiles when
1400         closed and re-opened.
1401
1402         Reviewed by Adam Roben.
1403
1404         * page/InspectorController.cpp:
1405         (WebCore::InspectorController::populateScriptObjects): Call populateInterface
1406         in inspector.js.
1407         * page/inspector/ProfilesPanel.js:
1408         (WebInspector.ProfilesPanel.prototype.populateInterface): If visible,
1409         call _populateProfiles. Else just set this._shouldPopulateProfiles to true.
1410         (WebInspector.ProfilesPanel.prototype.reset): Don't call _populateProfiles.
1411         Just set this._shouldPopulateProfiles to true.
1412         (WebInspector.ProfilesPanel.prototype._populateProfiles): Delete
1413         this._shouldPopulateProfiles.
1414         * page/inspector/inspector.js:
1415         (WebInspector.populateInterface): Added. Call populateInterface on all the
1416         panels if they implement it.
1417
1418 2008-05-23  Kevin McCullough  <kmccullough@apple.com>
1419
1420         RS = Adam.
1421
1422         Editorial changes
1423
1424         * manual-tests/inspector/profiler-test-apply.html:
1425         * manual-tests/inspector/profiler-test-document-dot-write.html:
1426         * manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html:
1427         * manual-tests/inspector/profiler-test-one-execution-context.html:
1428         * manual-tests/inspector/profiler-test-two-execution-contexts.html:
1429
1430 2008-05-23  Timothy Hatcher  <timothy@apple.com>
1431
1432         Fixes the bug where the profile was not added when finished.
1433
1434         <rdar://problem/5958851> Stop Profiling from the Develop menu does
1435         not add the Profile to the Inspector
1436
1437         Reviewed by Adam Roben.
1438
1439         * page/InspectorController.cpp:
1440         (WebCore::InspectorController::stopUserInitiatedProfiling): Call
1441         addProfile with the result of stopProfiling.
1442
1443 2008-05-23  Timothy Hatcher  <timothy@apple.com>
1444
1445         Tweak the Web Insector toolbar look to be smaller when attached to
1446         the inspected page.
1447
1448         Reviewed by Adam Roben.
1449
1450         * page/inspector/inspector.css:
1451
1452 2008-05-23  Simon Hausmann  <hausmann@webkit.org>
1453
1454         Fix compilation without accessibility by providing an empty stub for
1455         AXObjectCache::handleAriaRoleChanged.
1456
1457         * page/AXObjectCache.h:
1458
1459 2008-05-23  Alice Liu  <alice.liu@apple.com>
1460
1461         Reviewed by Mark Rowe.
1462
1463         Remove call to function whose body was commented out. Returning the
1464         children for a menu button by the normal calculation works just as well. 
1465
1466         * page/AccessibilityRenderObject.cpp:
1467         (WebCore::AccessibilityRenderObject::addChildren):
1468         * page/AccessibilityRenderObject.h:
1469
1470 2008-05-22  Timothy Hatcher  <timothy@apple.com>
1471
1472         Fixes the bug where resource would show up multiple times in the
1473         Inspector. This happened when a resource was used multiple times or
1474         when the preloader was scanning ahead to fetch resources.
1475
1476         <rdar://problem/5689373> Cached resources re-appear in Web Inspector
1477         for each access (18223)
1478
1479         Reviewed by Adam Roben.
1480
1481         * page/InspectorController.cpp:
1482         (WebCore::InspectorController::addResource): Add the URL to m_knownResources.
1483         (WebCore::InspectorController::removeResource): Remove the URL from m_knownResources
1484         (WebCore::InspectorController::didLoadResourceFromMemoryCache): If the URL
1485         is in m_knownResources, then early return.
1486         * page/InspectorController.h: Added m_knownResources.
1487
1488 2008-05-22  Alice Liu  <alice.liu@apple.com>
1489
1490         Reviewed by Adele, Dan Bernstein.
1491
1492         Fixed <rdar://problem/5943104> Need to implement ARIA role="menu" and related roles
1493         <rdar://problem/5943132> Need to implement ARIA role="menuitem"
1494         <rdar://problem/5943173> Need to implement ARIA role="menubar" 
1495
1496         These changes added a handler for determining the ARIA role when the
1497         attribute changes.  Before we were querying for the attribute over and
1498         over every time we queried for the role.
1499         * dom/Element.cpp:
1500         (WebCore::Element::attributeChanged):
1501         * page/AXObjectCache.cpp:
1502         (WebCore::AXObjectCache::handleAriaRoleChanged):
1503         * page/AXObjectCache.h:
1504
1505         The rest of these changes implement menu, menuitem, and menubar. the last 2 of those
1506         have to, for now, be represented as a Group and MenuButton instead, because AppKit 
1507         won't recognize menubar and menubaritems within apps. 
1508         * page/AccessibilityObject.h:
1509         (WebCore::AccessibilityObject::isMenuRelated):
1510         (WebCore::AccessibilityObject::isMenu):
1511         (WebCore::AccessibilityObject::isMenuBar):
1512         (WebCore::AccessibilityObject::isMenuButton):
1513         (WebCore::AccessibilityObject::isMenuItem):
1514         * page/AccessibilityRenderObject.cpp:
1515         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
1516         (WebCore::AccessibilityRenderObject::parentObject):
1517         (WebCore::AccessibilityRenderObject::isMenuRelated):
1518         (WebCore::AccessibilityRenderObject::isMenu):
1519         (WebCore::AccessibilityRenderObject::isMenuBar):
1520         (WebCore::AccessibilityRenderObject::isMenuButton):
1521         (WebCore::AccessibilityRenderObject::isMenuItem):
1522         (WebCore::siblingWithAriaRole):
1523         (WebCore::AccessibilityRenderObject::menuElementForMenuButton):
1524         (WebCore::AccessibilityRenderObject::menuForMenuButton):
1525         (WebCore::AccessibilityRenderObject::menuItemElementForMenu):
1526         (WebCore::AccessibilityRenderObject::menuButtonForMenu):
1527         (WebCore::AccessibilityRenderObject::title):
1528         (WebCore::AccessibilityRenderObject::accessibilityShouldUseUniqueId):
1529         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1530         (WebCore::RoleEntry::):
1531         (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
1532         (WebCore::AccessibilityRenderObject::setAriaRole):
1533         (WebCore::AccessibilityRenderObject::ariaRoleAttribute):
1534         (WebCore::AccessibilityRenderObject::addChildren):
1535         (WebCore::AccessibilityRenderObject::ariaMenuButtonChildren):
1536         * page/AccessibilityRenderObject.h:
1537         * page/mac/AccessibilityObjectWrapper.mm:
1538         (-[AccessibilityObjectWrapper accessibilityActionNames]):
1539         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
1540         (-[AccessibilityObjectWrapper roleDescription]):
1541         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1542         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
1543
1544 2008-05-22  Adam Roben  <aroben@apple.com>
1545
1546         Make top-level resources show their full URLs again instead of just
1547         "/"
1548
1549         Reviewed by Tim Hatcher.
1550
1551         * page/inspector/Resource.js:
1552         (WebInspector.Resource.prototype.displayName): If the title has gotten
1553         down to just "/", which will happen for, e.g., http://webkit.org/,
1554         just show the entire URL.
1555
1556 2008-05-22  Timothy Hatcher  <timothy@apple.com>
1557
1558         Shorten URLs shown in the Web Inspector to the file name. This makes
1559         finding files in the Console or the Scripts panel easier.
1560
1561         Reviewed by Adam Roben.
1562
1563         * page/inspector/Console.js:
1564         (WebInspector.ConsoleMessage.prototype.get shortURL): Removed dead code.
1565         (WebInspector.ConsoleMessage.prototype.toMessageElement): Call WebInspector.displayNameForURL
1566         for the URL before making the link element.
1567         * page/inspector/ProfileView.js:
1568         (WebInspector.ProfileDataGridNode.prototype.createCell): Use WebInspector.displayNameForURL.
1569         * page/inspector/Resource.js:
1570         (WebInspector.Resource.prototype.get displayName): Use trimURL to
1571         trim the URL with the main resource's domain.
1572         * page/inspector/ScriptsPanel.js:
1573         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use WebInspector.displayNameForURL.
1574         * page/inspector/StylesSidebarPane.js:
1575         (WebInspector.StylePropertiesSection): Ditto.
1576         * page/inspector/inspector.js:
1577         (WebInspector.displayNameForURL): Added.
1578         (WebInspector.resourceForURL): Check for a direct match in resourceURLMap first.
1579
1580 2008-05-22  Adam Roben  <aroben@apple.com>
1581
1582         Fix Bug 19204: Inspector should highlight source lines when following
1583         links to them
1584
1585         <https://bugs.webkit.org/show_bug.cgi?id=19204>
1586
1587         Reviewed by Tim Hatcher.
1588
1589         Test: manual-tests/inspector/highlight-source-line.html
1590
1591         * manual-tests/inspector/highlight-source-line.html: Added.
1592         * page/inspector/ResourcesPanel.js:
1593         (WebInspector.ResourcesPanel.prototype.showResource): Call
1594         highlightLine on the view if that function exists.
1595         * page/inspector/SourceFrame.js:
1596         (WebInspector.SourceFrame.prototype.highlightLine): Added. Adds the
1597         webkit-highlighted-line class to the relevant line, then removes it
1598         after a short delay.
1599         (WebInspector.SourceFrame.prototype._loaded): Added styles for the
1600         highlighted line(s).
1601         * page/inspector/SourceView.js:
1602         (WebInspector.SourceView.prototype.highlightLine): Added. Calls
1603         through to the SourceFrame.
1604
1605 2008-05-22  Rob Buis  <buis@kde.org>
1606
1607         Reviewed by Eric.
1608
1609         https://bugs.webkit.org/show_bug.cgi?id=12053
1610         SVGPathSeg*(Abs|Rel) classses should be combined to reduce code size
1611
1612         Reduce code size through shared base classes.
1613
1614         * svg/SVGPathSeg.h:
1615         (WebCore::SVGPathSegSingleCoord::SVGPathSegSingleCoord):
1616         (WebCore::SVGPathSegSingleCoord::setX):
1617         (WebCore::SVGPathSegSingleCoord::x):
1618         (WebCore::SVGPathSegSingleCoord::setY):
1619         (WebCore::SVGPathSegSingleCoord::y):
1620         (WebCore::SVGPathSegSingleCoord::toString):
1621         * svg/SVGPathSegArc.cpp:
1622         (WebCore::SVGPathSegArcAbs::SVGPathSegArcAbs):
1623         (WebCore::SVGPathSegArcRel::SVGPathSegArcRel):
1624         * svg/SVGPathSegArc.h:
1625         (WebCore::SVGPathSegArc::SVGPathSegArc):
1626         (WebCore::SVGPathSegArc::toString):
1627         (WebCore::SVGPathSegArc::setX):
1628         (WebCore::SVGPathSegArc::x):
1629         (WebCore::SVGPathSegArc::setY):
1630         (WebCore::SVGPathSegArc::y):
1631         (WebCore::SVGPathSegArc::setR1):
1632         (WebCore::SVGPathSegArc::r1):
1633         (WebCore::SVGPathSegArc::setR2):
1634         (WebCore::SVGPathSegArc::r2):
1635         (WebCore::SVGPathSegArc::setAngle):
1636         (WebCore::SVGPathSegArc::angle):
1637         (WebCore::SVGPathSegArc::setLargeArcFlag):
1638         (WebCore::SVGPathSegArc::largeArcFlag):
1639         (WebCore::SVGPathSegArc::setSweepFlag):
1640         (WebCore::SVGPathSegArc::sweepFlag):
1641         (WebCore::SVGPathSegArcAbs::create):
1642         (WebCore::SVGPathSegArcAbs::pathSegType):
1643         (WebCore::SVGPathSegArcAbs::pathSegTypeAsLetter):
1644         (WebCore::SVGPathSegArcRel::create):
1645         (WebCore::SVGPathSegArcRel::pathSegTypeAsLetter):
1646         * svg/SVGPathSegCurvetoCubic.cpp:
1647         (WebCore::SVGPathSegCurvetoCubicAbs::SVGPathSegCurvetoCubicAbs):
1648         (WebCore::SVGPathSegCurvetoCubicRel::SVGPathSegCurvetoCubicRel):
1649         * svg/SVGPathSegCurvetoCubic.h:
1650         (WebCore::SVGPathSegCurvetoCubic::SVGPathSegCurvetoCubic):
1651         (WebCore::SVGPathSegCurvetoCubic::toString):
1652         (WebCore::SVGPathSegCurvetoCubic::setX):
1653         (WebCore::SVGPathSegCurvetoCubic::x):
1654         (WebCore::SVGPathSegCurvetoCubic::setY):
1655         (WebCore::SVGPathSegCurvetoCubic::y):
1656         (WebCore::SVGPathSegCurvetoCubic::setX1):
1657         (WebCore::SVGPathSegCurvetoCubic::x1):
1658         (WebCore::SVGPathSegCurvetoCubic::setY1):
1659         (WebCore::SVGPathSegCurvetoCubic::y1):
1660         (WebCore::SVGPathSegCurvetoCubic::setX2):
1661         (WebCore::SVGPathSegCurvetoCubic::x2):
1662         (WebCore::SVGPathSegCurvetoCubic::setY2):
1663         (WebCore::SVGPathSegCurvetoCubic::y2):
1664         (WebCore::SVGPathSegCurvetoCubicAbs::create):
1665         (WebCore::SVGPathSegCurvetoCubicAbs::pathSegType):
1666         (WebCore::SVGPathSegCurvetoCubicAbs::pathSegTypeAsLetter):
1667         (WebCore::SVGPathSegCurvetoCubicRel::create):
1668         (WebCore::SVGPathSegCurvetoCubicRel::pathSegTypeAsLetter):
1669         * svg/SVGPathSegCurvetoCubicSmooth.cpp:
1670         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::SVGPathSegCurvetoCubicSmoothAbs):
1671         (WebCore::SVGPathSegCurvetoCubicSmoothRel::SVGPathSegCurvetoCubicSmoothRel):
1672         * svg/SVGPathSegCurvetoCubicSmooth.h:
1673         (WebCore::SVGPathSegCurvetoCubicSmooth::SVGPathSegCurvetoCubicSmooth):
1674         (WebCore::SVGPathSegCurvetoCubicSmooth::toString):
1675         (WebCore::SVGPathSegCurvetoCubicSmooth::setX):
1676         (WebCore::SVGPathSegCurvetoCubicSmooth::x):
1677         (WebCore::SVGPathSegCurvetoCubicSmooth::setY):
1678         (WebCore::SVGPathSegCurvetoCubicSmooth::y):
1679         (WebCore::SVGPathSegCurvetoCubicSmooth::setX2):
1680         (WebCore::SVGPathSegCurvetoCubicSmooth::x2):
1681         (WebCore::SVGPathSegCurvetoCubicSmooth::setY2):
1682         (WebCore::SVGPathSegCurvetoCubicSmooth::y2):
1683         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::create):
1684         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegType):
1685         (WebCore::SVGPathSegCurvetoCubicSmoothAbs::pathSegTypeAsLetter):
1686         (WebCore::SVGPathSegCurvetoCubicSmoothRel::create):
1687         (WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegType):
1688         (WebCore::SVGPathSegCurvetoCubicSmoothRel::pathSegTypeAsLetter):
1689         * svg/SVGPathSegCurvetoQuadratic.cpp:
1690         (WebCore::SVGPathSegCurvetoQuadraticAbs::SVGPathSegCurvetoQuadraticAbs):
1691         (WebCore::SVGPathSegCurvetoQuadraticRel::SVGPathSegCurvetoQuadraticRel):
1692         * svg/SVGPathSegCurvetoQuadratic.h:
1693         (WebCore::SVGPathSegCurvetoQuadratic::SVGPathSegCurvetoQuadratic):
1694         (WebCore::SVGPathSegCurvetoQuadratic::toString):
1695         (WebCore::SVGPathSegCurvetoQuadratic::setX):
1696         (WebCore::SVGPathSegCurvetoQuadratic::x):
1697         (WebCore::SVGPathSegCurvetoQuadratic::setY):
1698         (WebCore::SVGPathSegCurvetoQuadratic::y):
1699         (WebCore::SVGPathSegCurvetoQuadratic::setX1):
1700         (WebCore::SVGPathSegCurvetoQuadratic::x1):
1701         (WebCore::SVGPathSegCurvetoQuadratic::setY1):
1702         (WebCore::SVGPathSegCurvetoQuadratic::y1):
1703         (WebCore::SVGPathSegCurvetoQuadraticAbs::create):
1704         (WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegType):
1705         (WebCore::SVGPathSegCurvetoQuadraticAbs::pathSegTypeAsLetter):
1706         (WebCore::SVGPathSegCurvetoQuadraticRel::create):
1707         (WebCore::SVGPathSegCurvetoQuadraticRel::pathSegType):
1708         (WebCore::SVGPathSegCurvetoQuadraticRel::pathSegTypeAsLetter):
1709         * svg/SVGPathSegCurvetoQuadraticSmooth.cpp:
1710         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::SVGPathSegCurvetoQuadraticSmoothAbs):
1711         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::SVGPathSegCurvetoQuadraticSmoothRel):
1712         * svg/SVGPathSegCurvetoQuadraticSmooth.h:
1713         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::create):
1714         (WebCore::SVGPathSegCurvetoQuadraticSmoothAbs::pathSegTypeAsLetter):
1715         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::create):
1716         (WebCore::SVGPathSegCurvetoQuadraticSmoothRel::pathSegTypeAsLetter):
1717         * svg/SVGPathSegLineto.cpp:
1718         (WebCore::SVGPathSegLinetoAbs::SVGPathSegLinetoAbs):
1719         (WebCore::SVGPathSegLinetoRel::SVGPathSegLinetoRel):
1720         * svg/SVGPathSegLineto.h:
1721         (WebCore::SVGPathSegLinetoAbs::create):
1722         (WebCore::SVGPathSegLinetoAbs::pathSegTypeAsLetter):
1723         (WebCore::SVGPathSegLinetoRel::pathSegTypeAsLetter):
1724         * svg/SVGPathSegLinetoHorizontal.cpp:
1725         (WebCore::SVGPathSegLinetoHorizontalAbs::SVGPathSegLinetoHorizontalAbs):
1726         (WebCore::SVGPathSegLinetoHorizontalRel::SVGPathSegLinetoHorizontalRel):
1727         * svg/SVGPathSegLinetoHorizontal.h:
1728         (WebCore::SVGPathSegLinetoHorizontal::SVGPathSegLinetoHorizontal):
1729         (WebCore::SVGPathSegLinetoHorizontal::toString):
1730         (WebCore::SVGPathSegLinetoHorizontal::setX):
1731         (WebCore::SVGPathSegLinetoHorizontal::x):
1732         (WebCore::SVGPathSegLinetoHorizontalAbs::create):
1733         (WebCore::SVGPathSegLinetoHorizontalAbs::pathSegTypeAsLetter):
1734         (WebCore::SVGPathSegLinetoHorizontalRel::create):
1735         (WebCore::SVGPathSegLinetoHorizontalRel::pathSegTypeAsLetter):
1736         * svg/SVGPathSegLinetoVertical.cpp:
1737         (WebCore::SVGPathSegLinetoVerticalAbs::SVGPathSegLinetoVerticalAbs):
1738         (WebCore::SVGPathSegLinetoVerticalRel::SVGPathSegLinetoVerticalRel):
1739         * svg/SVGPathSegLinetoVertical.h:
1740         (WebCore::SVGPathSegLinetoVertical::SVGPathSegLinetoVertical):
1741         (WebCore::SVGPathSegLinetoVertical::toString):
1742         (WebCore::SVGPathSegLinetoVertical::setY):
1743         (WebCore::SVGPathSegLinetoVertical::y):
1744         (WebCore::SVGPathSegLinetoVerticalAbs::create):
1745         (WebCore::SVGPathSegLinetoVerticalAbs::pathSegTypeAsLetter):
1746         (WebCore::SVGPathSegLinetoVerticalRel::create):
1747         (WebCore::SVGPathSegLinetoVerticalRel::pathSegTypeAsLetter):
1748         * svg/SVGPathSegMoveto.cpp:
1749         (WebCore::SVGPathSegMovetoAbs::SVGPathSegMovetoAbs):
1750         (WebCore::SVGPathSegMovetoRel::SVGPathSegMovetoRel):
1751         * svg/SVGPathSegMoveto.h:
1752         (WebCore::SVGPathSegMovetoAbs::create):
1753         (WebCore::SVGPathSegMovetoAbs::pathSegTypeAsLetter):
1754         (WebCore::SVGPathSegMovetoRel::create):
1755         (WebCore::SVGPathSegMovetoRel::pathSegTypeAsLetter):
1756
1757 2008-05-22  Alp Toker  <alp@nuanti.com>
1758
1759         GTK+/DirectFB build fix attempt.
1760
1761         * plugins/PluginDatabase.cpp:
1762         (WebCore::PluginDatabase::isPreferredPluginDirectory):
1763         * plugins/gtk/PluginDatabaseGtk.cpp:
1764         (WebCore::PluginDatabase::isPreferredPluginDirectory):
1765
1766 2008-05-22  Timothy Hatcher  <timothy@apple.com>
1767
1768         Adds Focus, Exclude and Restore buttons to the Profile view
1769         Status bar. Also adds a Record button to create new profiles.
1770
1771         <rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a profile node.
1772         <rdar://problem/5951529> JSProfiler: Allow the profiler to "Exclude" a profile node.
1773
1774         Reviewed by Adam Roben.
1775
1776         * English.lproj/localizedStrings.js: Added new strings.
1777         * page/JavaScriptProfile.cpp:
1778         (WebCore::restoreAll): Call Profile::restoreAll.
1779         (WebCore::ProfileClass): Added restoreAll to the static functions.
1780         * page/inspector/Images/excludeButtons.png: Added.
1781         * page/inspector/Images/focusButtons.png: Added.
1782         * page/inspector/Images/recordButtons.png: Added.
1783         * page/inspector/Images/reloadButtons.png: Added.
1784         * page/inspector/ProfileView.js:
1785         (WebInspector.ProfileView): Create the buttons elements.
1786         (WebInspector.ProfileView.prototype.get statusBarItems): Return the three
1787         status bar buttons.
1788         (WebInspector.ProfileView.prototype.refresh): Only create ProfileDataGridNodes
1789         for ProfileNodes that are visible.
1790         (WebInspector.ProfileView.prototype.refreshShowAsPercents): Just call
1791         refresh on the children, now that they have access to the ProfileView's properties.
1792         (WebInspector.ProfileView.prototype._focusClicked): Call focus
1793         on the profile, refresh the ProfileView and show the reset button.
1794         (WebInspector.ProfileView.prototype._excludeClicked): Call exclude
1795         on the profile, refresh the ProfileView and show the reset button.
1796         (WebInspector.ProfileView.prototype._resetClicked): Call restoreAll
1797         on the profile, refresh the ProfileView and hide the reset button.
1798         (WebInspector.ProfileView.prototype._dataGridNodeSelected): Enable the 
1799         focus and exclude buttons.
1800         (WebInspector.ProfileView.prototype._dataGridNodeDeselected): Disable the
1801         focus and exclude buttons.
1802         (WebInspector.ProfileDataGridNode): Take a ProfileView, and remove the 
1803         showPercentAs* arguments.
1804         * page/inspector/ProfilesPanel.js: Add a record status bar button and
1805         th ability to have per-view status bar buttons.
1806         * page/inspector/inspector.css: New styles.
1807
1808 2008-05-22  Mark Rowe  <mrowe@apple.com>
1809
1810         Reviewed by Tim Hatcher.
1811
1812         <rdar://problem/5956612> ibtool crashes during build
1813
1814         SCDynamicStoreCreate will return null if it cannot create a dynamic store object.  We need
1815         to check for failure rather than continuing with a null store as this results in us
1816         passing a null CFRunLoopSourceRef to CFRunLoopAddSource, which promptly crashes.
1817
1818         * platform/network/mac/NetworkStateNotifierMac.cpp:
1819         (WebCore::NetworkStateNotifier::NetworkStateNotifier): Null check SCDynamicStoreCreate and
1820         SCDynamicStoreCreateRunLoopSource as it is possible for them to fail.
1821
1822 2008-05-22  Adam Roben  <aroben@apple.com>
1823
1824         Add a test for calling a NodeList as a function while profiling
1825
1826         Reviewed by Kevin McCullough.
1827
1828         * manual-tests/inspector/profiler-test-call-nodelist-as-function.html: Added.
1829
1830 2008-05-22  Kevin McCullough  <kmccullough@apple.com>
1831
1832         Rubber stamped by Adam.
1833
1834         -Added new profiler tests.
1835
1836         * manual-tests/inspector/profiler-test-calling-the-function-that-started-the-profiler-from-another-scope.html: Added.
1837         * manual-tests/inspector/profiler-test-constructor.html: Added.
1838         * manual-tests/inspector/profiler-test-document-dot-write.html: Added.
1839         * manual-tests/inspector/profiler-test-simple-no-level-change.html: Added.
1840         * manual-tests/inspector/profiler-test-throw-exception-from-eval.html: Added.
1841         * manual-tests/inspector/profiler-test-window-dot-eval.html: Added.
1842
1843 2008-05-22  Kevin McCullough  <kmccullough@apple.com>
1844
1845         Reviewed by Tim.
1846
1847         <rdar://problem/5951529> JSProfiler: Allow the profiler to "Exclude" a
1848         profile node.
1849         -Expose the 'exclude' function to the WebInspector.
1850         -Also fix a bug with 'focus' and expose whether or not a node is visible
1851
1852         * page/JavaScriptProfile.cpp: Renamed profileClass to have a capital P.
1853         (WebCore::getTitleCallback):
1854         (WebCore::getHeadCallback):
1855         (WebCore::focus): Now correctly compares against a ProfileNodeClass
1856         instead of ProfileClass.
1857         (WebCore::exclude): Expose 'exclude' function to the WebInspector.
1858         (WebCore::ProfileClass):
1859         (WebCore::toJS):
1860         * page/JavaScriptProfileNode.cpp: Declare the ProfileNodeClass in the
1861         header so that ProfileClass can use it.
1862         (WebCore::getVisible): Expose a node's visiblity to the WebInspector.
1863         (WebCore::ProfileNodeClass):
1864         * page/JavaScriptProfileNode.h:
1865
1866 2008-05-22  Sam Weinig  <sam@webkit.org>
1867
1868         Reviewed by Anders Carlsson.
1869
1870         <rdar://problem/5838772> Support cross-site XMLHttpRequest
1871
1872         - Implement support for cross-site non-GET requests using the HTTP header
1873           Access-control mechanism.
1874
1875         Tests: http/tests/xmlhttprequest/access-control-basic-allow-async.html
1876                http/tests/xmlhttprequest/access-control-basic-not-get-allow-async.html
1877                http/tests/xmlhttprequest/access-control-basic-not-get-allow.html
1878
1879         * xml/XMLHttpRequest.cpp:
1880         (WebCore::XMLHttpRequest::XMLHttpRequest):
1881         (WebCore::XMLHttpRequest::send):
1882         Don't continue send if inside the method check preflight (only happens for async).
1883         
1884         (WebCore::XMLHttpRequest::crossSiteAccessRequest):
1885         Add support for non-GET requests, starting off a method check preflight.
1886
1887         (WebCore::XMLHttpRequest::handleAsynchronousMethodCheckResult):
1888         Handler for finishing up after an asynchronous method check has completed.
1889
1890         (WebCore::XMLHttpRequest::didFinishLoading):
1891         (WebCore::XMLHttpRequest::didFinishLoadingMethodCheck):
1892         (WebCore::XMLHttpRequest::didReceiveResponse):
1893         (WebCore::XMLHttpRequest::didReceiveResponseMethodCheck):
1894         (WebCore::XMLHttpRequest::didReceiveData):
1895         Do a limited set of access control when in the method check preflight.
1896         * xml/XMLHttpRequest.h:
1897
1898 2008-05-22  Timothy Hatcher  <timothy@apple.com>
1899
1900         Make sure we don't call findTreeElement with the same representedObject
1901         again, to prevent infinite recursion. Added many comments to this
1902         code so it can be understood later.
1903
1904         https://bugs.webkit.org/show_bug.cgi?id=19164
1905
1906         Reviewed by Adam Roben.
1907
1908         * page/inspector/treeoutline.js:
1909
1910 2008-05-22  Timothy Hatcher  <timothy@apple.com>
1911
1912         Re-word the "Attach Debugger" overlay to never say "Attach". The new
1913         wording is "Start Debugging". This makes the overlay consistent with
1914         other wording used for starting the debugger. Also fixes the tooltips
1915         for the Pause on Exceptions button.
1916
1917         Reviewed by Adam Roben and Dan Bernstein.
1918
1919         * English.lproj/localizedStrings.js: Adds new strings.
1920         * page/inspector/ScriptsPanel.js: Changes the wording. Flips the
1921         tooltips for the Pause on Exceptions buttons so the tooltip says
1922         what will happen when the button is pressed.
1923
1924 2008-05-22  Timothy Hatcher  <timothy@apple.com>
1925
1926         Remove some non-functional elements from the Scripts panel
1927         so they don't confuse users why they aren't working.
1928
1929         Reviewed by Adam Roben.
1930
1931         * page/inspector/ScriptsPanel.js: Removes the back/forward buttons
1932         and the function menu.
1933         * page/inspector/inspector.css: Make the files menu wider since there
1934         is more room now.
1935
1936 2008-05-22  Timothy Hatcher  <timothy@apple.com>
1937
1938         <rdar://problem/5956403> Update the Develop menu to match the new Inspector items
1939
1940         Reviewed by Adam Roben.
1941
1942         * English.lproj/localizedStrings.js:
1943         * WebCore.base.exp:
1944         * page/InspectorController.cpp:
1945         (WebCore::InspectorController::InspectorController):
1946         (WebCore::InspectorController::inspect):
1947         (WebCore::InspectorController::setWindowVisible):
1948         (WebCore::InspectorController::showPanel):
1949         (WebCore::InspectorController::startUserInitiatedProfiling):
1950         (WebCore::InspectorController::stopUserInitiatedProfiling):
1951         (WebCore::InspectorController::startDebuggingAndReloadInspectedPage):
1952         (WebCore::InspectorController::stopDebugging):
1953         * page/InspectorController.h:
1954         (WebCore::InspectorController::):
1955         (WebCore::InspectorController::isRecordingUserInitiatedProfile):
1956         * page/inspector/ProfilesPanel.js:
1957         * page/inspector/ScriptsPanel.js:
1958         * page/inspector/inspector.js:
1959
1960 2008-05-22  Josh Aas  <joshmoz@gmail.com>
1961
1962         Reviewed by Anders.
1963
1964         <rdar://problem/5956429> 
1965         https://bugs.webkit.org/show_bug.cgi?id=19192
1966         remove NPNVpluginEventModel, fix example plugin
1967         
1968         Remove NPNVpluginEventModel enum variable.
1969         
1970         * bridge/npapi.h:
1971
1972 2008-05-22  Stephanie Lewis  <slewis@apple.com>
1973
1974         Reviewed by Dan.
1975
1976         Fix <rdar://problem/5952405>.  The unbeforeunload count cannot be cleared when it is dispatched because it is possible to be called again.  Clear it after the unload event is dispatched.
1977
1978         Test: fast/events/onunload-clears-onbeforeunload.html
1979
1980         * loader/FrameLoader.cpp:
1981         (WebCore::FrameLoader::stopLoading):
1982         * page/Frame.cpp:
1983         (WebCore::Frame::shouldClose):
1984
1985 2008-05-22  Simon Hausmann  <hausmann@webkit.org>
1986
1987         Reviewed by Oliver.
1988
1989         Qt build fix.
1990
1991         * bindings/js/StringSourceProvider.h: Remove text at end of
1992         preprocessor statement.
1993         * bridge/qt/qt_instance.cpp:
1994         (KJS::Bindings::QtRuntimeObjectImp::getConstructData): Replaced
1995         implementsConstruct() with getConstructData().
1996         (KJS::Bindings::QtInstance::getCallData): Replaced implementsCall with
1997         getCallData().
1998         (KJS::Bindings::QtInstance::invokeDefaultMethod): Use getCallData()
1999         instead of implementsCall().
2000         * bridge/qt/qt_instance.h:
2001
2002 2008-05-22  Adam Roben  <aroben@apple.com>
2003
2004         Massively speed up date-format-tofte with the debugger attached
2005
2006         On a debug Windows build (I know, hardly a good testcase) this patch
2007         makes this test run 57.25x as fast.
2008
2009         Reviewed by Mark Rowe.
2010
2011         * page/inspector/ScriptsPanel.js:
2012         (WebInspector.ScriptsPanel.prototype.reset): Clear the
2013         _scriptsForURLsInFilesSelect object.
2014         (WebInspector.ScriptsPanel.prototype._showScriptOrResource): Instead
2015         of looping over all the options in the select to find the option we
2016         want, get the script object from _scriptsForURLsInFilesSelect and get
2017         the option element from the script object.
2018         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Use
2019         _scriptsForURLsInFilesSelect to cache the script objects. Store the
2020         option element for each script on the script object so we can quickly
2021         retrieve it later.
2022
2023 2008-05-22  Adam Roben  <aroben@apple.com>
2024
2025         Remove some dead code from ScriptsPanel.js
2026
2027         Reviewed by Mark Rowe.
2028
2029         * page/inspector/ScriptsPanel.js:
2030
2031 2008-05-21  Adam Roben  <aroben@apple.com>
2032
2033         Fix Bug 19178: Inspector should support sorting resources by latency
2034
2035         <https://bugs.webkit.org/show_bug.cgi?id=19178>
2036
2037         I replaced "Sort by Time" with the following sorting options:
2038           - Sort by Start Time
2039           - Sort by Response Time
2040           - Sort by End Time
2041           - Sort by Duration
2042           - Sort by Latency
2043
2044         You can no longer sort by Size when looking at the Time graph, and you
2045         can't use any of the time-based sorting functions when looking at the
2046         Size graph.
2047
2048         Reviewed by Tim Hatcher.
2049
2050         * page/inspector/Resource.js:
2051         (WebInspector.Resource.prototype.get duration): Added.
2052         (WebInspector.Resource.prototype.get latency): Added.
2053         (WebInspector.Resource.CompareByStartTime): Added.
2054         (WebInspector.Resource.CompareByResponseReceivedTime): Added.
2055         (WebInspector.Resource.CompareByEndTime): Added.
2056         (WebInspector.Resource.CompareByDuration): Added.
2057         (WebInspector.Resource.CompareByLatency): Added.
2058         * page/inspector/ResourcesPanel.js:
2059         (WebInspector.ResourcesPanel):
2060           - Each graph sidebar item now holds a list of sorting options
2061           - Graph sidebar items no longer have a calculator property. This is
2062             stored on the sorting options instead, to allow each kind of
2063             sorting to have a different calculator.
2064           - The sortingSelectElement starts out empty, and is populated in
2065             _graphSelected
2066           - The sortingFunction starts out uninitialized and is set as a
2067             side-effect of _graphSelected.
2068         (WebInspector.ResourcesPanel.prototype.set calculator): Don't do
2069         anything if the calculator hasn't changed.
2070         (WebInspector.ResourcesPanel.prototype.closeVisibleResource): Use the
2071         _lastSelectedGraphTreeElement property instead of getting the graph
2072         element from the calculator.
2073         (WebInspector.ResourcesPanel.prototype._graphSelected):
2074           - Store the tree element in the _lastSelectedGraphTreeElement
2075             property
2076           - Popuplate sortingSelectElement with the sortingOptions and select
2077             the option that was last selected
2078         (WebInspector.ResourcesPanel.prototype._changeSortingFunction): Set
2079         our calculator from the sorting option.
2080         (WebInspector.ResourceTimeCalculator): Renamed from
2081         ResourceTransferTimeCalculator. Now takes a parameter to specify
2082         whether the bars should all start at zero.
2083         (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphPercentages):
2084         Take this.startAtZero into account.
2085         (WebInspector.ResourceTimeCalculator.prototype.updateBoundries):
2086         Abstracted the lower/upper bounds of a resource into methods.
2087         (WebInspector.ResourceTimeCalculator.prototype._lowerBound): Added.
2088         (WebInspector.ResourceTimeCalculator.prototype._upperBound): Added.
2089         (WebInspector.ResourceTransferTimeCalculator): Added. This is now a
2090         subclass of ResourceTimeCalculator
2091         (WebInspector.ResourceTransferDurationCalculator): Added.
2092         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingStartTime): Added.
2093         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingResponseReceivedTime): Added.
2094         (WebInspector.ResourceSidebarTreeElement.CompareByAscendingEndTime): Added.
2095         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingDuration): Added.
2096         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingLatency): Added.
2097         (WebInspector.ResourceSidebarTreeElement.CompareByDescendingSize):
2098         Changed to call CompareBySize.
2099
2100 2008-05-21  Adam Roben  <aroben@apple.com>
2101
2102         Fix Bug 19173: Tool tips for Inspector debugger status bar buttons are
2103         wrong/missing
2104
2105         <https://bugs.webkit.org/show_bug.cgi?id=19173>
2106
2107         Reviewed by Tim Hatcher.
2108
2109         * manual-tests/inspector/debugger-status-bar-buttons-state.html:
2110         Added.
2111         * page/inspector/ScriptsPanel.js:
2112         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Call
2113         _clearInterface (which updates the buttons' tool tips) after
2114         attaching/detaching the debugger so that the buttons will reflect the
2115         new state.
2116         (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
2117         Set the title of the pauseOnExceptionsButton, not the debuggingButton.
2118
2119 2008-05-20  Adam Roben  <aroben@apple.com>
2120
2121         Fix Bug 19153: Inspector should support console.debug
2122
2123         <https://bugs.webkit.org/show_bug.cgi?id=19153>
2124         <rdar://problem/5950856>
2125
2126         Reviewed by Tim Hatcher.
2127
2128         Test: manual-tests/inspector/console-log-formatting.html
2129
2130         * bindings/js/JSConsoleCustom.cpp:
2131         (WebCore::JSConsole::debug): Added.
2132         * manual-tests/inspector/console-log-formatting.html: Changed to test
2133         console.debug as well.
2134         * page/Console.cpp:
2135         (WebCore::Console::debug): Added. Just calls through to log().
2136         * page/Console.h:
2137         * page/Console.idl: Added debug() declaration.
2138
2139 2008-05-21  Kevin McCullough  <kmccullough@apple.com>
2140
2141         Reviewed by Adam.
2142
2143         <rdar://problem/5950867> JSProfiler: Allow the profiler to "Focus" a
2144         profile node.
2145         - Expose the Profile's 'focus' ability to WebCore and the WebInspector.
2146
2147         * page/JavaScriptProfile.cpp:
2148         (WebCore::focus):
2149         (WebCore::profileClass):
2150
2151 2008-05-21  Timothy Hatcher  <timothy@apple.com>
2152
2153         Remove the rest of the debug code inside DEBUG_DEBUGGER_CALLBACKS
2154         since the parts the remain aren't useful.
2155
2156         * page/JavaScriptDebugServer.cpp:
2157         (WebCore::JavaScriptDebugServer::sourceParsed):
2158
2159 2008-05-21  Beth Dakin  <bdakin@apple.com>
2160
2161         Reviewed by Anders.
2162
2163         Fix for <rdar://problem/5848161> REGRESSION (r31438?): Crash 
2164         beneath ResourceHandle::setDefersLoading while running fast/loader/
2165         simultaneous-reloads-assert.html (null CFURLConnection)
2166
2167         * platform/network/cf/ResourceHandleCFNet.cpp:
2168         (WebCore::ResourceHandle::setDefersLoading): Added simple null-
2169         check.
2170
2171 2008-05-21  Timothy Hatcher  <timothy@apple.com>
2172
2173         Adds the Request and Response headers to the Resource view.
2174
2175         <rdar://problem/5940782> REGRESSION: Resource Request and Response
2176         headers aren't shown (18451)
2177
2178         Reviewed by Adam Roben.
2179
2180         * English.lproj/localizedStrings.js: Added new strings.
2181         * css/view-source.css: Add comments to make sure a couple of
2182         style rules stay in sync with inspector.css.
2183         * page/inspector/Resource.js:
2184         (WebInspector.Resource.prototype.set url): Dispatch an event when
2185         this property changes.
2186         (WebInspector.Resource.prototype.set requestHeaders): Ditto.
2187         (WebInspector.Resource.prototype.set responseHeaders): Ditto.
2188         * page/inspector/ResourceView.js:
2189         (WebInspector.ResourceView): Add new elements for the headers
2190         and a headers TreeOutline. Add event listeners for resource
2191         property changes. Calls the three new refresh functions.
2192         (WebInspector.ResourceView.prototype.set headersVisible): Implemented.
2193         Toggles the headers-visible class name.
2194         (WebInspector.ResourceView.prototype._refreshURL): Update the URL
2195         tree element.
2196         (WebInspector.ResourceView.prototype._refreshRequestHeaders): Call _refreshHeaders.
2197         (WebInspector.ResourceView.prototype._refreshResponseHeaders): Ditto.
2198         (WebInspector.ResourceView.prototype._refreshHeaders): Remove the previous
2199         headers fromm the tree element. Loop throuh the headers and create new
2200         tree elements and append them.
2201         * page/inspector/ResourcesPanel.js:
2202         (WebInspector.ResourcesPanel.prototype._updateSidebarWidth): Call resize
2203         on the visible view if it is implemented.
2204         * page/inspector/SourceFrame.js:
2205         (WebInspector.SourceFrame.prototype.get autoSizesToFitContentHeight):
2206         (WebInspector.SourceFrame.prototype.set autoSizesToFitContentHeight):
2207         (WebInspector.SourceFrame.prototype.sizeToFitContentHeight):
2208         (WebInspector.SourceFrame.prototype._loaded): 
2209         (WebInspector.SourceFrame.prototype._windowResized): 
2210         * page/inspector/SourceView.js:
2211         (WebInspector.SourceView): Move the SourceFrame creation so it is
2212         available when headersVisible is set. Add a gutter element to fill
2213         the vertical space no covered by the SourceFrame now.
2214         (WebInspector.SourceView.prototype.set headersVisible): Set the
2215         SourceFrame.autoSizesToFitContentHeight when this property changes.
2216         (WebInspector.SourceView.prototype.resize): Call SourceFrame.sizeToFitContentHeight
2217         when autoSizesToFitContentHeight is true. This happens when resizing the 
2218         Resources sidebar.
2219         * page/inspector/inspector.css: Add a copy of webkit-line-gutter-backdrop
2220         and a comment to keep in sync with view-source.css. Adds other styles
2221         for the headers area of resource-view.
2222
2223 2008-05-21  Sam Weinig  <sam@webkit.org>
2224
2225         Reviewed by Anders Carlsson.
2226
2227         <rdar://problem/5838772> Support cross-site XMLHttpRequest
2228
2229         - Implement support for cross-site GET requests using the HTTP header
2230           Access-control mechanism.
2231
2232         Tests: http/tests/xmlhttprequest/access-control-basic-allow-headers.html
2233                http/tests/xmlhttprequest/access-control-basic-allow.html
2234                http/tests/xmlhttprequest/access-control-basic-denied.html
2235                http/tests/xmlhttprequest/access-control-basic-exclude.html
2236
2237         * xml/AccessControlList.cpp:
2238         (WebCore::AccessControlList::checkOrigin): Implement the list check algorithm.
2239         * xml/AccessControlList.h:
2240
2241         * xml/AccessItem.cpp:
2242         (WebCore::AccessItem::AccessItem):
2243         (WebCore::AccessItem::matches):
2244         * xml/AccessItem.h:
2245         Temporarily use a SecurityOrigin as the bases of AccessItem matching. Using
2246         the isSameSchemeHostPort test of the SecurityOrigin allows for a legal subset
2247         of the AccessItem match algorithm to be used, until the complete parsing of
2248         the wildcards and optional pieces is complete. 
2249
2250         * xml/AccessItemRule.cpp:
2251         (WebCore::matchesAny):
2252         (WebCore::AccessItemRule::allowListMatchesAny):
2253         (WebCore::AccessItemRule::excludeListMatchesAny):
2254         * xml/AccessItemRule.h:
2255         More of the implementation of the list check algorithm.  Check if any of the items
2256         in the rule match the control origin.
2257
2258         * xml/XMLHttpRequest.cpp:
2259         (WebCore::XMLHttpRequest::XMLHttpRequest):
2260         (WebCore::XMLHttpRequest::open): Don't throw a SECURITY_ERR for cross-domain requests anymore.
2261         (WebCore::XMLHttpRequest::send): Use different paths for same origin and cross-domain requests.
2262         (WebCore::XMLHttpRequest::crossSiteAccessRequest): Temporarily only support the GET method for
2263         cross-domain requests.  
2264         (WebCore::XMLHttpRequest::loadRequestSynchronously):
2265         (WebCore::XMLHttpRequest::processSyncLoadResults):
2266         This can now throw an exception if a cross-domain request is denied by the access control
2267         (WebCore::XMLHttpRequest::didFinishLoading):
2268         Add support for cross-domain GET request.  ASSERT temporarily that the method is GET, since we
2269         should have bailed out much earlier for non-GET methods.
2270         (WebCore::XMLHttpRequest::willSendRequest):
2271         (WebCore::XMLHttpRequest::didReceiveResponse):
2272         Do the HTTP header access-control check as soon as the headers arrive.
2273         * xml/XMLHttpRequest.h:
2274
2275 2008-05-21  Alp Toker  <alp@nuanti.com>
2276
2277         Rubber-stamped by Maciej.
2278
2279         Replace non-standard #pragma marks with comments to avoid compiler
2280         warnings.
2281
2282         * page/InspectorController.cpp:
2283
2284 === End merge of squirrelfish ===
2285
2286 2008-05-21  Geoffrey Garen  <ggaren@apple.com>
2287
2288         Reviewed by Tim Hatcher.
2289
2290         Merged with trunk WebCore's new debugger.
2291
2292         * page/InspectorController.cpp:
2293         (WebCore::currentCallFrame): Updated to use the DebuggerCallFrame API.
2294         (WebCore::InspectorController::pauseInDebugger): Updated for name change
2295         explained below.
2296         (WebCore::InspectorController::resumeDebugger): ditto
2297         (WebCore::InspectorController::didParseSource): Fixed a bug that would
2298         produce garbled text in some cases: Don't treat JS source as null-
2299         terminated UTF8; it's UTF16.
2300
2301         * page/JavaScriptCallFrame.cpp:
2302         * page/JavaScriptCallFrame.h: Changed this class to do all of its processing
2303         through a JavaScriptCore DebuggerCallFrame. We have to copy the DebuggerCallFrame
2304         because it's a temporary.
2305         (WebCore::JavaScriptCallFrame::update): Added an API for updating a call
2306         frame during execution: this is how we handle "with" and "eval".
2307
2308         * page/JavaScriptDebugServer.cpp: Separated "m_paused" from
2309         "m_doneProcessingDebuggerEvents", because they have different semantics:
2310         "m_paused" is the flag the debug server uses to indicate that new debugger
2311         callbacks should be ignored, because they come from the debugger's own
2312         JS code; "m_doneProcessingDebuggerEvents" is the flag the debugger UI
2313         uses to indicate that it's done processing events, and would like execution
2314         to continue. When these flags were one, the debugger would erroneously
2315         process callbacks that ocurred while unwinding from its own JS code.
2316
2317         (WebCore::toPage): Removed some unnecessary NULL checking. Added some
2318         missing NULL checking.
2319         
2320         (WebCore::JavaScriptDebugServer::pauseIfNeeded): Changed pause tracking
2321         to track a JavaScriptCallFrame instead of an ExecState, since ExecState
2322         is no longer a unique identifier for a call frame.
2323
2324         I removed the updateCurrentCallFrame scheme, and replaced it with
2325         individual tracking inside these callbacks:
2326         
2327         (WebCore::JavaScriptDebugServer::callEvent):
2328         (WebCore::JavaScriptDebugServer::atStatement):
2329         (WebCore::JavaScriptDebugServer::returnEvent):
2330         (WebCore::JavaScriptDebugServer::exception):
2331         
2332         The updateCurrentCallFrame scheme was just too incompatible with the
2333         squirrelfish execution model. Everything still works as before, except
2334         for eval, which no longer shows up as an independent call frame. We'll
2335         need to augment our debugger callbacks to bring back support for that.
2336
2337         * page/inspector/ScopeChainSidebarPane.js: Updated to use the activation
2338         class's new name.
2339
2340 2008-05-21  Maciej Stachowiak  <mjs@apple.com>
2341
2342         Reviewed by Oliver.
2343
2344         - write directly to the slot we used to check for override properties, when possible
2345         2.6% speedup on in-browser SunSpider
2346
2347         * bindings/js/JSDOMWindowCustom.h:
2348         (WebCore::JSDOMWindow::customPut):
2349
2350 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
2351
2352         Reviewed by Oliver.
2353
2354         - inline JSDOMWindow security checks
2355         0.9% speedup to SunSpider in-browser
2356
2357         * bindings/js/JSDOMWindowBase.cpp:
2358         * bindings/js/JSDOMWindowCustom.h:
2359         (WebCore::JSDOMWindowBasePrivate::JSDOMWindowBasePrivate):
2360         (WebCore::JSDOMWindowBase::allowsAccessFrom):
2361         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
2362         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
2363         * bindings/js/kjs_binding.cpp:
2364
2365 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
2366
2367         Reviewed by Adam.
2368
2369         - use ALWAYS_INLINE on customGetOwnPropertySlot since it wasn't inlining
2370         2% speedup to SunSpider in-browser
2371
2372         * bindings/js/JSDOMWindowCustom.h:
2373         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
2374
2375 2008-05-20  Maciej Stachowiak  <mjs@apple.com>
2376
2377         Reviewed by Adam.
2378
2379         - inline JSDOMWindow's customPut and customGetOwnPropertySlot methods
2380         1.2% speedup to SunSpider in-browser
2381         
2382         The approach here is to make the code generator include a
2383         JS{classname}Custom.h header in the autogenerated implementation,
2384         which we can use to provide inline versions.
2385
2386         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2387         * bindings/js/JSCSSStyleDeclarationCustom.h: Added.
2388         * bindings/js/JSDOMWindowCustom.cpp:
2389         * bindings/js/JSDOMWindowCustom.h:
2390         (WebCore::asJSDOMWindow):
2391         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
2392         (WebCore::JSDOMWindow::customPut):
2393         * bindings/js/JSHTMLAppletElementCustom.cpp:
2394         * bindings/js/JSHTMLAppletElementCustom.h: Added.
2395         * bindings/js/JSHTMLEmbedElementCustom.cpp:
2396         * bindings/js/JSHTMLEmbedElementCustom.h: Added.
2397         * bindings/js/JSHTMLObjectElementCustom.cpp:
2398         * bindings/js/JSHTMLObjectElementCustom.h: Added.
2399         * bindings/js/JSHistoryCustom.cpp:
2400         * bindings/js/JSHistoryCustom.h: Added.
2401         * bindings/js/JSLocationCustom.cpp:
2402         * bindings/js/JSLocationCustom.h: Added.
2403         * bindings/js/JSStorageCustom.cpp:
2404         * bindings/js/JSStorageCustom.h: Added.
2405         * bindings/scripts/CodeGeneratorJS.pm:
2406
2407 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
2408
2409         Reviewed by Anders.
2410
2411         - inline asDOMWindow (using a new JSDOMWindowCustom.h header) since it is just a cast
2412         1% speedup to SunSpider in-browser
2413
2414         * WebCore.vcproj/WebCore.vcproj:
2415         * WebCore.xcodeproj/project.pbxproj:
2416         * bindings/js/JSCustomVoidCallback.cpp:
2417         * bindings/js/JSCustomXPathNSResolver.cpp:
2418         * bindings/js/JSDOMApplicationCacheCustom.cpp:
2419         * bindings/js/JSDOMWindowBase.cpp:
2420         * bindings/js/JSDOMWindowBase.h:
2421         * bindings/js/JSDOMWindowCustom.cpp:
2422         * bindings/js/JSDOMWindowCustom.h: Added.
2423         (WebCore::asJSDOMWindow):
2424         * bindings/js/JSDatabaseCustom.cpp:
2425         * bindings/js/JSDocumentCustom.cpp:
2426         * bindings/js/JSLocationCustom.cpp:
2427         * bindings/js/JSSQLTransactionCustom.cpp:
2428         * bindings/js/JSXMLHttpRequestCustom.cpp:
2429         * page/JavaScriptDebugServer.cpp:
2430
2431 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
2432
2433         Reviewed by Oliver.
2434
2435         - obtain current inner window of outer window in a more efficient way
2436         1.6% speedup to SunSpider in-browser
2437
2438         * bindings/js/JSDOMWindowBase.cpp:
2439         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
2440
2441 2008-05-19  Maciej Stachowiak  <mjs@apple.com>
2442
2443         Reviewed by Adam.
2444
2445         - make impl() method for JSWindow inline
2446         0.6% speedup to SunSpider in-browser
2447
2448         * WebCore.base.exp: Remove now-inline symbol
2449         * bindings/scripts/CodeGeneratorJS.pm: Make the codegen script inline impl()
2450         even for classes with a parent class.
2451
2452 2008-05-17  Geoffrey Garen  <ggaren@apple.com>
2453
2454         Reviewed by Oliver Hunt.
2455
2456         Updated for API changes in KJS::Debugger.
2457
2458 2008-05-13  Geoffrey Garen  <ggaren@apple.com>
2459
2460         Reviewed by Oliver Hunt.
2461
2462         Updated for API changes in KJS::Debugger.
2463
2464         * page/JavaScriptDebugServer.cpp:
2465         (WebCore::JavaScriptDebugServer::callEvent):
2466         (WebCore::JavaScriptDebugServer::atStatement):
2467         (WebCore::JavaScriptDebugServer::returnEvent):
2468         (WebCore::JavaScriptDebugServer::exception):
2469         * page/JavaScriptDebugServer.h:
2470
2471 2008-05-13  Geoffrey Garen  <ggaren@apple.com>
2472
2473         Reviewed by Oliver Hunt.
2474         
2475         Updated JavaScriptDebugServer API to accept a SourceProvider instead
2476         of a UString, to avoid copying.
2477
2478         * page/JavaScriptDebugServer.cpp:
2479         (WebCore::JavaScriptDebugServer::sourceParsed): Updated this function
2480         not to return a value.
2481
2482 2008-05-10  Maciej Stachowiak  <mjs@apple.com>
2483
2484         Build fix.
2485         
2486         - add missing forwarding header
2487
2488         * ForwardingHeaders/kjs/SourceProvider.h: Added.
2489
2490 2008-05-10  Maciej Stachowiak  <mjs@apple.com>
2491
2492         Reviewed by Oliver.
2493
2494         - WebCore part of fix for: "SQUIRRELFISH: function toString broken after calling"
2495         https://bugs.webkit.org/show_bug.cgi?id=18869
2496
2497         * bindings/js/StringSourceProvider.h: Added. SourceProvider subclass backed by a WebCore::String.
2498         (WebCore::StringSourceProvider::create):
2499         (WebCore::StringSourceProvider::getRange):
2500         (WebCore::StringSourceProvider::data):
2501         (WebCore::StringSourceProvider::length):
2502         (WebCore::StringSourceProvider::StringSourceProvider):
2503         * bindings/js/kjs_proxy.cpp:
2504         (WebCore::KJSProxy::evaluate): Pass a StringSourceProvider to
2505         evaluate() instead of UChar* / length.
2506         * html/HTMLScriptElement.cpp:
2507         (WebCore::HTMLScriptElement::text): Modified to return the
2508         original string as-is when the script element contains only a
2509         single text node, to avoid excess memory use.
2510         
2511         * WebCore.vcproj/WebCore.vcproj: Add new file to build.
2512         * WebCore.xcodeproj/project.pbxproj: ditto
2513
2514 2008-05-09  Oliver Hunt  <oliver@apple.com>
2515
2516         Reviewed by Geoff.
2517
2518         Build fixes for SquirrelFish on windows.
2519
2520         * bindings/js/JSNavigatorCustom.cpp:
2521
2522 2008-05-08  Geoffrey Garen  <ggaren@apple.com>
2523
2524         Reviewed by Oliver Hunt.
2525
2526         Fixed platform/mac/plugins/bindings-test-objc.html.
2527         
2528         I've restored -[WebScriptObject setException] and
2529         +[WebScriptObject throwException].
2530         
2531         Instead of mucking around in the JavaScript engine's execution state,
2532         throwing an exception sets a global exception string, along with the
2533         environment in which to throw it. An ObjC callback checks the global
2534         exception string and, if it's non-nil and the environment matches the
2535         current exceution environment, throws the global exception string as a
2536         JS exception.
2537
2538         I also removed the old currentGlobalObject infrastructure: it's no longer
2539         used.
2540
2541 2008-05-06  Oliver Hunt  <oliver@apple.com>
2542
2543         Reviewed by Maciej.
2544
2545         Bug 18866: SQUIRRELFISH: JS/ObjC bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18866>
2546         Bug 18867: SQUIRRELFISH: JS/NPRuntime bridge is broken <https://bugs.webkit.org/show_bug.cgi?id=18867>
2547
2548         This fixes function binding logic for the ObjC and NPRuntime by
2549         replacing incorrect implementations of implementsCall (which is
2550         no longer virtual) with implementations of getCallData.
2551
2552         * bindings/js/JSQuarantinedObjectWrapper.cpp:
2553         (WebCore::JSQuarantinedObjectWrapper::getCallData):
2554         * bindings/js/JSQuarantinedObjectWrapper.h:
2555         * bridge/c/c_instance.cpp:
2556         * bridge/c/c_instance.h:
2557         * bridge/objc/objc_instance.h:
2558         * bridge/objc/objc_instance.mm:
2559         * bridge/objc/objc_runtime.h:
2560         * bridge/objc/objc_runtime.mm:
2561         (ObjcFallbackObjectImp::getCallData):
2562         * bridge/runtime.h:
2563         * bridge/runtime_object.cpp:
2564         (RuntimeObjectImp::getCallData):
2565         * bridge/runtime_object.h:
2566
2567 2008-04-30  Geoffrey Garen  <ggaren@apple.com>
2568
2569         Build fix: supply a parameter that used to be implicit to
2570         Interpreter::evaluate.
2571
2572 2008-04-30  Geoffrey Garen  <ggaren@apple.com>
2573
2574         Build fix: #ifdef'd out some code that doesn't work anymore.
2575
2576         * bindings/objc/WebScriptObject.mm:
2577         (+[WebScriptObject throwException:]):
2578         (-[WebScriptObject setException:]):
2579
2580 2008-04-14  Gabor Loki  <loki@inf.u-szeged.hu>
2581
2582         Reviewed by Geoffrey Garen.
2583
2584         Bug 18489: Squirrelfish doesn't build on linux
2585         <https://bugs.webkit.org/show_bug.cgi?id=18489>
2586
2587         * WebCore.pro: Add JavaScriptCore/VM into include path
2588
2589 2008-04-10  Sam Weinig  <sam@webkit.org>
2590
2591         Reviewed by Geoffrey Garen.
2592
2593         Adjusted WebCore JS functions to the new "getConstructData" calling convention.
2594
2595 2008-03-30  Geoffrey Garen  <ggaren@apple.com>
2596
2597         Reviewed by Oliver Hunt.
2598         
2599         Adjusted WebCore JS functions to the new "getCallData" calling convention.
2600
2601 === Start merge of squirrelfish ===
2602
2603 2008-05-21  Anders Carlsson  <andersca@apple.com>
2604
2605         Reviewed by Mitz.
2606
2607         Add IconFetcher implementation.
2608
2609         * WebCore.base.exp:
2610         * WebCore.xcodeproj/project.pbxproj:
2611         * html/HTMLLinkElement.h:
2612         (WebCore::HTMLLinkElement::isIcon):
2613         * loader/icon/IconFetcher.cpp: Added.
2614         (WebCore::IconLinkEntry::):
2615         (WebCore::IconLinkEntry::IconLinkEntry):
2616         (WebCore::IconLinkEntry::type):
2617         (WebCore::IconLinkEntry::url):
2618         (WebCore::IconLinkEntry::buffer):
2619         (WebCore::parseIconLink):
2620         (WebCore::IconFetcher::create):
2621         (WebCore::IconFetcher::IconFetcher):
2622         (WebCore::IconFetcher::~IconFetcher):
2623         (WebCore::IconFetcher::cancel):
2624         (WebCore::IconFetcher::createIcon):
2625         (WebCore::IconFetcher::loadEntry):
2626         (WebCore::IconFetcher::loadFailed):
2627         (WebCore::IconFetcher::didReceiveResponse):
2628         (WebCore::IconFetcher::didReceiveData):
2629         (WebCore::IconFetcher::didFinishLoading):
2630         (WebCore::IconFetcher::didFail):
2631         * loader/icon/IconFetcher.h: Added.
2632         (WebCore::IconFetcherClient::~IconFetcherClient):
2633
2634 2008-05-21  Dan Bernstein  <mitz@apple.com>
2635
2636         Reviewed by Dave Hyatt.
2637
2638         - fix https://bugs.webkit.org/show_bug.cgi?id=18352
2639           <rdar://problem/5854517> crash loading malicious font
2640
2641         * platform/graphics/mac/SimpleFontDataMac.mm:
2642         (WebCore::SimpleFontData::platformInit): In the case of a custom font,
2643         there is no NSFont to base the fallback font on, so get a font based on
2644         fallback family name alone.
2645
2646 2008-05-21  Timothy Hatcher  <timothy@apple.com>
2647
2648         Adds the files and line numbers to the Profile call tree.
2649
2650         <rdar://problem/5952924> Inspector needs to show file and line number
2651         in the Profile call tree
2652
2653         Reviewed by Geoff Garen.
2654
2655         * page/JavaScriptProfileNode.cpp:
2656         (WebCore::getFunctionName): Fixes a JSStringRef leak.
2657         (WebCore::getURL): Call ProfileNode::url.
2658         (WebCore::getLineNumber): Call ProfileNode::lineNumber.
2659         (WebCore::ProfileNodeClass): Add the url and lineNumber properties.
2660         * page/inspector/ProfileView.js:
2661         (WebInspector.ProfileDataGridNode.prototype.createCell): Overload the
2662         DataGridNode.createCell and add the file and lineNumber to the
2663         cell if the column is the function column.
2664         * page/inspector/inspector.css: New styles for the file and line.
2665
2666 2008-05-21  Timothy Hatcher  <timothy@apple.com>
2667
2668         Restores logging of console calls to the STDOUT
2669         when Interpreter::shouldPrintExceptions() is true.
2670
2671         <rdar://problem/5636442> REGRESSION: Console.log no longer logs to
2672         the system console or terminal
2673
2674         <rdar://problem/5146079> JavaScript exception logging should print
2675         accurate file and line info when called from WebScriptObject
2676
2677         Reviewed by Adam Roben.
2678
2679         * bindings/js/JSCustomSQLStatementCallback.cpp:
2680         (WebCore::JSCustomSQLStatementCallback::handleEvent): Remove existing
2681         printf and check for Interpreter::shouldPrintExceptions() since there is
2682         a call to Console::addMessage.
2683         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
2684         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent): Ditto.
2685         * bindings/js/JSCustomSQLTransactionCallback.cpp:
2686         (WebCore::JSCustomSQLTransactionCallback::handleEvent): Ditto.
2687         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
2688         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): Ditto.
2689         * bindings/js/JSCustomVoidCallback.cpp:
2690         (WebCore::JSCustomVoidCallback::handleEvent): Ditto.
2691         * bindings/js/JSCustomXPathNSResolver.cpp:
2692         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): Ditto.
2693         * bindings/js/JSDOMWindowBase.cpp:
2694         (WebCore::JSDOMWindowBase::printErrorMessage): Ditto.
2695         * bindings/js/ScheduledAction.cpp:
2696         (WebCore::ScheduledAction::execute): Ditto.
2697         * bindings/js/kjs_events.cpp:
2698         (WebCore::JSAbstractEventListener::handleEvent): Ditto.
2699         * loader/FrameLoader.cpp:
2700         (WebCore::FrameLoader::shouldAllowNavigation): Ditto.
2701         * bindings/objc/WebScriptObject.mm:
2702         (WebCore::addExceptionToConsole): Added helper static function that
2703         calls Console::addMessage.
2704         (-[WebScriptObject callWebScriptMethod:withArguments:]): Call addExceptionToConsole.
2705         (-[WebScriptObject evaluateWebScript:]): Ditto.
2706         (-[WebScriptObject setValue:forKey:]): Ditto.
2707         (-[WebScriptObject valueForKey:]): Ditto.
2708         (-[WebScriptObject removeWebScriptKey:]): Ditto.
2709         (-[WebScriptObject webScriptValueAtIndex:]): Ditto.
2710         (-[WebScriptObject setWebScriptValueAtIndex:value:]): Ditto.
2711         * page/Console.cpp:
2712         (WebCore::Console::addMessage): Print the level, message,
2713         URL and line number to STDOUT.
2714         (WebCore::printToStandardOut): Helper static function that
2715         takes a prefix string, ExecState, an argument List and URL.
2716         Prints the prefix and loops through the arguments calling
2717         toString on each and printing the string. Finally printing
2718         the URL and new line.
2719         (WebCore::Console::error): Call printToStandardOut.
2720         (WebCore::Console::info): Ditto.
2721         (WebCore::Console::log): Ditto.
2722         (WebCore::Console::assertCondition): Ditto.
2723         (WebCore::Console::warn): Ditto.
2724
2725 2008-05-20  Timothy Hatcher  <timothy@apple.com>
2726
2727         Changes to work with the new Profiler API. The Profile is now
2728         stored by the InspectorController when Console.profileEnd is called.
2729         This solves three issues with the previous design. First, we don't
2730         keep profiles around unless the Inspector is enabled. Second, we
2731         only show Profiles initiated by the Page in it's Inspector, not every
2732         Profile for the whole process. Third, we now show Profiles in the
2733         Inspector when they are created.
2734
2735         <rdar://problem/5951562> New profiles aren't added to the Inspector
2736         as they finish
2737
2738         Reviewed by Kevin McCullough.
2739
2740         * bindings/js/JSConsoleCustom.cpp:
2741         (WebCore::JSConsole::profileEnd): Added. Calls impl()->profileEnd()
2742         and passes the ExecState and arguments.
2743         * page/Console.cpp:
2744         (WebCore::Console::profile):
2745         (WebCore::Console::profileEnd): Accept the optional title argument
2746         and pass it to Profilier::stopProfiling along with the ExecState.
2747         Calls InspectorController::addProfile with the result Profile.
2748         * page/Console.h:
2749         * page/Console.idl: Made profileEnd Custom so we can get the ExecState.
2750         * page/InspectorController.cpp:
2751         (WebCore::profiles): Renamed from allProfiles. Uses the controller's
2752         profiles vector.
2753         (WebCore::InspectorController::addProfile): Appends to m_profiles.
2754         Calls addScriptProfile if the window is visible.
2755         (WebCore::InspectorController::windowScriptObjectAvailable): Renamed
2756         allProfiles to profiles.
2757         (WebCore::InspectorController::addScriptProfile): Calls addProfile on
2758         the JavaScript side.
2759         (WebCore::InspectorController::didCommitLoad): Clears m_profiles.
2760         * page/InspectorController.h:
2761         * page/inspector/ProfilesPanel.js: Populates the profiles sidebar the first
2762         time the panel is shown after a rest.
2763         * page/inspector/inspector.js: Added addProfile, calls ProfilesPanel's
2764         addProfile function.
2765
2766 2008-05-21  Alexey Proskuryakov  <ap@webkit.org>
2767
2768         Reviewed by Darin.
2769
2770         https://bugs.webkit.org/show_bug.cgi?id=19169
2771         <rdar://5952342> REGRESSION: nakarte.ru searches don't work
2772
2773         Test: http/tests/xmlhttprequest/encode-request-url.html
2774
2775         * platform/KURL.cpp: (WebCore::KURL::init): Don't allow UTF-8 encoded data to be implicitly
2776         converted to String, as it will be encoded again by parse().
2777
2778 2008-05-21  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2779
2780         Reviewed by Simon.
2781
2782         For the Qt port, fix building with Qt for Embedded Linux.
2783
2784         * WebCore.pro:
2785
2786 2008-05-21  Ariya Hidayat  <ariya.hidayat@trolltech.com>
2787
2788         Reviewed by Simon.
2789
2790         For the Qt port, allow building without NPAPI plugin support.
2791
2792         * WebCore.pro:
2793         * plugins/PluginView.h:
2794
2795 2008-05-20  Kevin McCullough  <kmccullough@apple.com>
2796
2797         Reviewed by Tim.
2798
2799         Added all of my personal manual tests for the profiler.
2800
2801         * manual-tests/inspector/profiler-test-anonymous-event-handler.html: Added.
2802         * manual-tests/inspector/profiler-test-anonymous-function-called-from-different-contexts.html: Added.
2803         * manual-tests/inspector/profiler-test-anonymous-function-calls-built-in-functions.html: Added.
2804         * manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html: Added.
2805         * manual-tests/inspector/profiler-test-apply.html: Added.
2806         * manual-tests/inspector/profiler-test-built-in-function-calls-anonymous.html: Added.
2807         * manual-tests/inspector/profiler-test-built-in-function-calls-user-defined-function.html: Added.
2808         * manual-tests/inspector/profiler-test-call.html: Added.
2809         * manual-tests/inspector/profiler-test-dead-time.html: Added.
2810         * manual-tests/inspector/profiler-test-event-handler.html: Added.
2811         * manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html: Added.
2812         * manual-tests/inspector/profiler-test-inline-event-handler.html: Added.
2813         * manual-tests/inspector/profiler-test-many-calls-in-the-same-scope.html: Added.
2814         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-anonymous-function-calls.html: Added.
2815         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-function-calls.html: Added.
2816         * manual-tests/inspector/profiler-test-multiple-frames.html: Added.
2817         * manual-tests/inspector/profiler-test-multiple-windows.html: Added.
2818         * manual-tests/inspector/profiler-test-nested-anonymous-functon.html: Added.
2819         * manual-tests/inspector/profiler-test-nested-start-and-stop-profiler.html: Added.
2820         * manual-tests/inspector/profiler-test-no-execution-context.html: Added.
2821         * manual-tests/inspector/profiler-test-one-execution-context.html: Added.
2822         * manual-tests/inspector/profiler-test-profile-calls-in-included-file.html: Added.
2823         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Added.
2824         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location.html: Added.
2825         * manual-tests/inspector/profiler-test-start-and-stop-profiler-multiple-times.html: Added.
2826         * manual-tests/inspector/profiler-test-two-execution-contexts.html: Added.
2827         * manual-tests/inspector/profiler-test-user-defined-function-calls-built-in-functions.html: Added.
2828         * manual-tests/inspector/resources: Added.
2829         * manual-tests/inspector/resources/other-frame.html: Added.
2830         * manual-tests/inspector/resources/other-window.html: Added.
2831         * manual-tests/inspector/resources/profiler-test-JS-resources.js: Added.
2832
2833 2008-05-20  Adam Roben  <aroben@apple.com>
2834
2835         Use KJS::List::getSlice instead of reimplementing it
2836
2837         Rubberstamped and suggested by Sam Weinig.
2838
2839         * bindings/js/JSConsoleCustom.cpp:
2840         (WebCore::JSConsole::assertCondition):
2841
2842 2008-05-20  Kevin Calhoun  <kcalhoun@apple.com>
2843
2844         Reviewed by Darin.
2845
2846         Fix <rdar://problem/5929010> Adopt new QTKit methods for <video> implementation
2847
2848         If the class QTVideoRendererWebKitOnly is present use it to render video,
2849         otherwise fall back to existing use of QTMovieView/QTMovieContentView.
2850
2851         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2852         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2853         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
2854         (WebCore::MediaPlayerPrivate::createQTMovie):
2855         (WebCore::QTVideoRendererClass):
2856         (WebCore::MediaPlayerPrivate::detachQTMovieView):
2857         (WebCore::MediaPlayerPrivate::createQTVideoRenderer):
2858         (WebCore::MediaPlayerPrivate::destroyQTVideoRenderer):
2859         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
2860         (WebCore::MediaPlayerPrivate::tearDownVideoRendering):
2861         (WebCore::MediaPlayerPrivate::load):
2862         (WebCore::MediaPlayerPrivate::cancelLoad):
2863         (WebCore::MediaPlayerPrivate::setVisible):
2864         (WebCore::MediaPlayerPrivate::paint):
2865         (-[WebCoreMovieObserver newImageAvailable:]):
2866
2867 2008-05-19  Adam Roben  <aroben@apple.com>
2868
2869         Fix Bug 19134: Inspector should support console.assert
2870
2871         <https://bugs.webkit.org/show_bug.cgi?id=19134>
2872
2873         Reviewed by Tim Hatcher.
2874
2875         Test: manual-tests/inspector/console-assert.html
2876
2877         * bindings/js/JSConsoleCustom.cpp:
2878         (WebCore::JSConsole::assertCondition): Added.
2879         * bindings/scripts/CodeGeneratorJS.pm: Added parsing of the
2880         ImplementationFunction extended attribute, which allows you to
2881         override the name of the C++ function used to implement this method.
2882         * manual-tests/inspector/console-assert.html: Added.
2883         * page/Console.cpp:
2884         (WebCore::Console::assertCondition): Added.
2885         * page/Console.h:
2886         * page/Console.idl: Added assert().
2887
2888 2008-05-20  Alice Liu  <alice.liu@apple.com>
2889
2890         Reviewed by Brady.
2891
2892         fix <rdar://problem/5908580> 10A58: Dictionary Panel hangs in WebCore::Cache::pruneDeadResources()
2893
2894         * loader/Cache.cpp:
2895         (WebCore::Cache::requestUserCSSStyleSheet):
2896         Add a call to resourceAccessed() to more closely mirror what is done in requestResource()
2897         (WebCore::Cache::insertInLRUList):
2898         Assert that any resource in the LRU list has been accessed.  This is early detection of a
2899         potential hang later when pruning resources, and also agrees with the early return in 
2900         removeFromLRUList().
2901
2902 2008-05-20  Dan Bernstein  <mitz@apple.com>
2903
2904         Reviewed by Darin Adler.
2905
2906         - fix https://bugs.webkit.org/show_bug.cgi?id=17655
2907           <rdar://problem/5778077> REGRESSION (3.1.1-TOT): Reproducible crash calling querySelector on viewless Document
2908
2909         Test: fast/dom/SelectorAPI/viewless-document.html
2910
2911         * css/CSSStyleSelector.cpp:
2912         (WebCore::CSSStyleSelector::CSSStyleSelector): Updated to initialize the
2913         selector checker.
2914         (WebCore::CSSStyleSelector::init): Removed initialization of
2915         m_collectRulesOnly, which is now part of the selector checker.
2916         (WebCore::CSSStyleSelector::matchRules): Updated for renames and data
2917         moved into the selector checker.
2918         (WebCore::CSSStyleSelector::matchRulesForList): Ditto.
2919         (WebCore::CSSStyleSelector::initForStyleResolve): Added a PseudoId
2920         argument, which is used to initialize a data member of the selector
2921         checker. Updated for renames. Removed initialization of m_isXMLDoc
2922         because this bit is now initialized only once in the selector checker's
2923         constructor.
2924         (WebCore::CSSStyleSelector::SelectorChecker::SelectorChecker): Added.
2925         (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): Changed
2926         into a SelectorChecker method.
2927         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector): Added. Used
2928         by querySelector() and querySelectorAll().
2929         (WebCore::CSSStyleSelector::canShareStyleWithElement): Updated for data
2930         moved into the selector checker.
2931         (WebCore::CSSStyleSelector::matchUARules): Ditto.
2932         (WebCore::CSSStyleSelector::styleForElement):
2933         (WebCore::CSSStyleSelector::pseudoStyleForElement): Ditto. Also removed
2934         code that set the parentStyle variable after the last place it is
2935         accessed, and changed to ensure that m_style is set early in this
2936         function.
2937         (WebCore::CSSStyleSelector::adjustRenderStyle): Updated for data moved
2938         into the selector checker.
2939         (WebCore::CSSStyleSelector::styleRulesForElement): Ditto.
2940         (WebCore::CSSStyleSelector::checkSelector): Ditto. Also changed to pass
2941         the element's style and the parent style to the selector checker, as
2942         well as the dynamic pseudo variable and the selector attributes vector.
2943         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Added
2944         arguments for the style of the base element and its parent. When the
2945         elementStyle argument is 0, the style is fetched from the element
2946         and its parent as needed. Also changed to take a reference to the
2947         dynamic pseudo ID and a pointer to the vector of attributes affecting
2948         the match.
2949         (WebCore::CSSStyleSelector::applyProperty): Updated for data moved
2950         into the selector checker.
2951         (WebCore::CSSStyleSelector::checkForGenericFamilyChange): Ditto.
2952         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): Ditto.
2953         (WebCore::CSSStyleSelector::fontSizeForKeyword): Ditto.
2954         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue): Ditto.
2955         (WebCore::CSSStyleSelector::SelectorChecker::allVisitedStateChanged):
2956         Changed into a SelectorChecker method.
2957         (WebCore::CSSStyleSelector::SelectorChecker::visitedStateChanged):
2958         Ditto.
2959
2960         * css/CSSStyleSelector.h:
2961         Added a SelectorChecker class and moved data and methods used in
2962         checking selectors into it.
2963         (WebCore::CSSStyleSelector::allVisitedStateChanged): Changed to call the
2964         SelectorChecker method.
2965         (WebCore::CSSStyleSelector::visitedStateChanged): Ditto.
2966         * dom/Node.cpp:
2967         (WebCore::Node::querySelector): Changed to use a SelectorChecker instead
2968         of the document's style selector.
2969         * dom/SelectorNodeList.cpp:
2970         (WebCore::SelectorNodeList::SelectorNodeList): Ditto.
2971
2972 2008-05-20  Timothy Hatcher  <timothy@apple.com>
2973
2974         Implements the Profiles panel and Profile view.
2975
2976         Reviewed by Kevin McCullough.
2977
2978         * English.lproj/localizedStrings.js: Added new strings.
2979         * page/inspector/Images/profileIcon.png: Added.
2980         * page/inspector/Images/profilesIcon.png: Changed. New icon design
2981         that fits in with the other toolbar icons.
2982         * page/inspector/ProfileView.js:
2983         (WebInspector.ProfileView): Remove custom table elements
2984         and create a DataGrid. Sorts the profile by descending total time,
2985         since the profiles aren't sorted by default.
2986         (WebInspector.ProfileView.prototype.refresh): Clears the DataGrid
2987         and recreates all the nodes. The selection is preserved.
2988         (WebInspector.ProfileView.prototype.refreshShowAsPercents): Traverse
2989         all the children and change showTotalTimeAsPercent and showSelfTimeAsPercent
2990         to match the ProfileView values. Then call refresh on the child.
2991         (WebInspector.ProfileView.prototype._sortData): Determine the sort
2992         function to call on the head profile node. Call it and then call
2993         refresh to rebuild the DataGrid.
2994         (WebInspector.ProfileView.prototype._mouseDownInDataGrid): Return early
2995         if the event is not a double-click. When it is a double-click, determine
2996         the column that was targeted and if it was total or self toggle the
2997         show as percent property. Call refreshShowAsPercents.
2998         (WebInspector.ProfileDataGridNode): 
2999         (WebInspector.ProfileDataGridNode.prototype.get data): 
3000         (WebInspector.ProfileDataGridNode.prototype.expand): 
3001         (WebInspector.ProfileDataGridNode.prototype.collapse): 
3002         (WebInspector.ProfileDataGridNode.prototype._populate): 
3003         * page/inspector/ProfilesPanel.js:
3004         (WebInspector.ProfilesPanel): 
3005         (WebInspector.ProfilesPanel.prototype.show): Populate the sidebar
3006         with all profiles. This is a workaround until the Inspector
3007         is told about new profiles.
3008         (WebInspector.ProfilesPanel.prototype.reset): Clear the sidebar and
3009         profile views.
3010         (WebInspector.ProfilesPanel.prototype.handleKeyEvent): Pass the key
3011         event to the sidebar.
3012         (WebInspector.ProfilesPanel.prototype.addProfile): Create a
3013         ProfileSidebarTreeElement object and add it to the sidebar.
3014         (WebInspector.ProfilesPanel.prototype.showProfile): Create a ProfileView
3015         and show it.
3016         (WebInspector.ProfilesPanel.prototype.closeVisibleView): Hide the
3017         visible view.
3018         (WebInspector.ProfilesPanel.prototype._startSidebarDragging): Call
3019         WebInspector.elementDragStart.
3020         (WebInspector.ProfilesPanel.prototype._sidebarDragging): Call _updateSidebarWidth.
3021         (WebInspector.ProfilesPanel.prototype._endSidebarDragging):
3022         Call WebInspector.elementDragEnd.
3023         (WebInspector.ProfilesPanel.prototype._updateSidebarWidth): Update the
3024         sidebar width based on the passed in value.
3025         (WebInspector.ProfileSidebarTreeElement): Subclass WebInspector.SidebarTreeElement.
3026         (WebInspector.ProfileSidebarTreeElement.prototype.onselect): Call ProfilesPanel.showProfile.
3027         (WebInspector.ProfileSidebarTreeElement.prototype.get mainTitle): Return profile.title.
3028         (WebInspector.ProfileSidebarTreeElement.prototype.set mainTitle): Do nothing.
3029         (WebInspector.ProfileSidebarTreeElement.prototype.get subtitle): Ditto.
3030         (WebInspector.ProfileSidebarTreeElement.prototype.set subtitle): Ditto.
3031         * page/inspector/inspector.css: New styles for the profile sidebar
3032         item and profile data grid columns.
3033         * page/inspector/inspector.js:
3034         * page/inspector/utilities.js:
3035         (Number.secondsToString): Added a higherResolution argument
3036         that returns fractional milliseconds.
3037
3038 2008-05-20  chris fleizach  <cfleizach@apple.com>
3039
3040         Reviewed by Darin Adler, Alice Liu
3041
3042         <rdar://problem/3438014> Might need accessibility solution for context menus in web pages
3043         <rdar://problem/5060458> Elements without AXActions should not return kAXErrorFailure
3044
3045         * page/AccessibilityObject.cpp:
3046         (WebCore::AccessibilityObject::clickPoint):
3047         * page/AccessibilityObject.h:
3048         * page/mac/AccessibilityObjectWrapper.mm:
3049         (-[AccessibilityObjectWrapper accessibilityActionNames]):
3050         (-[AccessibilityObjectWrapper accessibilityPerformPressAction]):
3051         (-[AccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
3052         (-[AccessibilityObjectWrapper accessibilityShowContextMenu]):
3053         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
3054
3055 2008-05-20  Timothy Hatcher  <timothy@apple.com>
3056
3057         Expose the ProfileNode functionName sorting functions on
3058         JavaScriptProfileNode.
3059
3060         Reviewed by Kevin McCullough.
3061
3062         * page/JavaScriptProfileNode.cpp:
3063         (WebCore::sortFunctionNameDescending): Call ProfileNode.
3064         (WebCore::sortFunctionNameAscending): Ditto.
3065         (WebCore::ProfileNodeClass): Add static functions.
3066
3067 2008-05-20  Darin Adler  <darin@apple.com>
3068
3069         Reviewed by Mitz.
3070
3071         - a first small step of CSS DOM refactoring -- the eventual goal is to
3072           reduce StyleBase and possibly eliminate it, since it has multiple
3073           purposes and unneccessarily ties many classes together
3074
3075         * css/CSSCursorImageValue.cpp:
3076         (WebCore::isSVGCursorIdentifier): Mark static so it has internal linkage.
3077         (WebCore::resourceReferencedByCursorElement): Ditto.
3078         (WebCore::CSSCursorImageValue::CSSCursorImageValue): Removed unused style
3079         argument.
3080         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Removed code to
3081         check if X and Y changed before changing them -- there's no reason to do
3082         that. Removed code that depended on the internals of CSSImageValue. The
3083         new code uses only protected functions rather than going right at the
3084         fields and uing internal knowledge of the base class.
3085         * css/CSSCursorImageValue.h: Added a create function, made constructor
3086         private, removed unused style argument.
3087
3088         * css/CSSImageValue.cpp:
3089         (WebCore::CSSImageValue::CSSImageValue): Removed unused style argument.
3090         (WebCore::CSSImageValue::cachedImageURL): Added. A protected function for
3091         use by CSSCursorImageValue that gives the URL.
3092         (WebCore::CSSImageValue::clearCachedImage): Added. A protected function for
3093         use by CSSCursorImageValue that clears the CachedImage.
3094         * css/CSSImageValue.h: Added create functions, made constructors protected
3095         and private, removed unused style argument, made data members private, added
3096         some protected functions for use by CSSCursorImageValue.
3097
3098         * css/CSSImportRule.cpp:
3099         (WebCore::CSSImportRule::setCSSStyleSheet): Changed to call checkLoaded on
3100         the parent. This is part of preparation to move the checkLoaded function from
3101         StyleBase to StyleSheet.
3102         (WebCore::CSSImportRule::insertedIntoParent): Changed code to check the URL
3103         of the style sheet to use the href function of the style sheet rather than
3104         the baseURL function. This eliminates an O(n^2) algorithm here and reduces
3105         the use of baseURL, part of preparation to move it from StyleBase
3106         to CSSStyleSheet.
3107
3108         * css/CSSMutableStyleDeclaration.cpp:
3109         (WebCore::CSSMutableStyleDeclaration::setImageProperty): Changed to use create
3110         function instead of a direct call to new for the CSSImageValue classes.
3111         * css/CSSParser.cpp:
3112         (WebCore::CSSParser::parseValue): Ditto.
3113         (WebCore::CSSParser::parseContent): Ditto.
3114         (WebCore::CSSParser::parseFillImage): Ditto.
3115         (WebCore::CSSParser::parseBorderImage): Ditto.
3116
3117         * css/CSSStyleSelector.cpp: Removed unneeded include of CSSImageValue.h.
3118         * rendering/style/RenderStyle.h: Removed unneeded include of
3119         CSSCursorImageValue.h, which was causing us to rebuild the world way too often.
3120
3121         * xml/XSLImportRule.cpp:
3122         (WebCore::XSLImportRule::setXSLStyleSheet): See change to CSSImportRule above.
3123         (WebCore::XSLImportRule::loadSheet): Ditto.
3124
3125 2008-05-20  Kevin McCullough  <kmccullough@apple.com>
3126
3127         Rubber stamped by Adam.
3128
3129         -Minor fix. Should not use a reference since the original may disappear.
3130
3131         * page/Console.cpp:
3132         (WebCore::Console::profile):
3133
3134 2008-05-20  Kevin Ollivier  <kevino@theolliviers.com>
3135
3136         wx build fix. userAgent should return a value.
3137
3138         * plugins/wx/PluginViewWx.cpp:
3139         (WebCore::PluginView::userAgent):
3140
3141 2008-05-19  Timothy Hatcher  <timothy@apple.com>
3142
3143         Expose the ProfileNode sorting functions on JavaScriptProfileNode.
3144
3145         Reviewed by Kevin McCullough.
3146
3147         * page/JavaScriptProfileNode.cpp:
3148         (WebCore::sortTotalTimeDescending): Call ProfileNode.
3149         (WebCore::sortTotalTimeAscending): Ditto.
3150         (WebCore::sortSelfTimeDescending): Ditto.
3151         (WebCore::sortSelfTimeAscending): Ditto.
3152         (WebCore::sortCallsDescending): Ditto.
3153         (WebCore::sortCallsAscending): Ditto.
3154         (WebCore::ProfileNodeClass): Add static functions.
3155
3156 2008-05-19  Timothy Hatcher  <timothy@apple.com>
3157
3158         * page/InspectorController.cpp: Change the include for
3159         JavaScriptProfile.h to sue double quotes instead of backets.
3160
3161 2008-05-19  Timothy Hatcher  <timothy@apple.com>
3162
3163         Adds a DataGrid object that is used for multi-column data
3164         and can contain hierarchical content with disclosure arrows.
3165         A lot of DataGrid was copied from treeoutline.js. This change
3166         makes the database views use the DataGrid. It will later be
3167         used by the ProfileView.
3168
3169         Reviewed by Adam Roben.
3170
3171         * page/inspector/DataGrid.js: Added. Most copied from treeoutline.js
3172         and modified to work with table elements.
3173         * page/inspector/DatabaseQueryView.js:
3174         (WebInspector.DatabaseQueryView.prototype._queryFinished):
3175         Call DatabasesPanel.dataGridForResult and adds the inline style to
3176         the DataGrid element.
3177         * page/inspector/DatabaseTableView.js:
3178         (WebInspector.DatabaseTableView.prototype._queryFinished):
3179         Call DatabasesPanel.dataGridForResult.
3180         * page/inspector/DatabasesPanel.js:
3181         (WebInspector.DatabasesPanel.prototype._tableForResult): Removed.
3182         (WebInspector.DatabasesPanel.prototype.dataGridForResult): Added.
3183         Similar to the previous _tableForResult function, but makes a DataGrid.
3184         * page/inspector/inspector.css: Changes to the data-grid
3185         style rules.
3186         * WebCore.vcproj/WebCore.vcproj: Add DataGrid.js.
3187         * page/inspector/WebKit.qrc: Ditto.
3188         * page/inspector/inspector.html: Ditto.
3189
3190 2008-05-19  Kevin McCullough  <kmccullough@apple.com>
3191
3192         Reviewed by Adam.
3193
3194         -build fix.
3195
3196         * bindings/js/JSConsoleCustom.cpp:
3197         (WebCore::JSConsole::profile):
3198         * page/Console.cpp:
3199         (WebCore::Console::profile):
3200         * page/Console.h:
3201         * page/Console.idl:
3202
3203 2008-05-19  Alp Toker  <alp@nuanti.com>
3204
3205         Reviewed by Maciej.
3206
3207         GTK+/soup fixes:
3208
3209         Remove the fragment part of the URL since the file backend doesn't
3210         deal with it.
3211
3212         Fix a typo in the cleanup function.
3213
3214         * platform/network/soup/ResourceHandleSoup.cpp:
3215         (WebCore::cleanupGioOperation):
3216         (WebCore::ResourceHandle::startGio):
3217
3218 2008-05-19  Kevin McCullough  <kmccullough@apple.com>
3219
3220         Reviewed by Adam.
3221
3222         <rdar://problem/5770054> JavaScript profiler (10928)
3223         - Send the executing context to the profiler so it can attribute time
3224         correctly to parent functions when calling profile() and profileEnd()
3225         while nested.
3226
3227         * page/Console.cpp:
3228         (WebCore::Console::profile):
3229         (WebCore::Console::profileEnd):
3230         * page/Console.h:
3231
3232 2008-05-19  Alp Toker  <alp@nuanti.com>
3233
3234         Reviewed by Anders and Beth.
3235
3236         http://bugs.webkit.org/show_bug.cgi?id=16495
3237         [GTK] Accessibility support with ATK/AT-SPI
3238
3239         Initial ATK/AT-SPI accessibility support for the GTK+ port.
3240
3241         * GNUmakefile.am:
3242         * page/AccessibilityObject.cpp:
3243         (WebCore::AccessibilityObject::AccessibilityObject):
3244         (WebCore::AccessibilityObject::detach):
3245         * page/AccessibilityObject.h:
3246         * page/gtk/AXObjectCacheAtk.cpp: Added.
3247         (WebCore::AXObjectCache::detachWrapper):
3248         (WebCore::AXObjectCache::attachWrapper):
3249         (WebCore::AXObjectCache::postNotification):
3250         (WebCore::AXObjectCache::postNotificationToElement):
3251         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
3252         * page/gtk/AccessibilityObjectWrapperAtk.cpp: Added.
3253         (WebCore::):
3254         (WebCore::AccessibilityObject::wrapper):
3255         (WebCore::AccessibilityObject::setWrapper):
3256         * page/gtk/AccessibilityObjectWrapperAtk.h: Added.
3257
3258 2008-05-19  Anders Carlsson  <andersca@apple.com>
3259
3260         Reviewed by Adam.
3261
3262         <rdar://problem/5946454>
3263         Support navigator.onLine from HTML5.
3264
3265         Add Windows NetworkStateNotifier implementation using the IP Helper API.
3266
3267         * WebCore.vcproj/WebCore.vcproj:
3268         * platform/network/NetworkStateNotifier.h:
3269         (WebCore::updateState):
3270         * platform/network/win/NetworkStateNotifierWin.cpp: Added.
3271         (WebCore::NetworkStateNotifier::updateState):
3272         (WebCore::NetworkStateNotifier::addressChanged):
3273         (WebCore::NetworkStateNotifier::callAddressChanged):
3274         (WebCore::NetworkStateNotifier::addrChangeCallback):
3275         (WebCore::NetworkStateNotifier::registerForAddressChange):
3276         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
3277
3278 2008-05-19  Steve Falkenburg  <sfalken@apple.com>
3279
3280         Disable C4273, C4565 for CSSGrammar.cpp, XPathGrammar.cpp to fix build.
3281         
3282         Reviewed by Adam Roben.
3283
3284         * WebCore.vcproj/WebCore.vcproj:
3285
3286 2008-05-19  Adam Roben  <aroben@apple.com>
3287
3288         Fix Bug 19065: Resources with a space in their URL don't get
3289         error/warning bubbles
3290
3291         <https://bugs.webkit.org/show_bug.cgi?id=19065>
3292
3293         Reviewed by Dan Bernstein.
3294
3295         Test: manual-tests/inspector/errors-with-space in-url.html
3296
3297         * manual-tests/inspector/errors-with-space in-url.html: Added.
3298         * page/Console.cpp:
3299         (WebCore::Console::error):
3300         (WebCore::Console::info):
3301         (WebCore::Console::log):
3302         (WebCore::Console::warn):
3303         Pass the raw URL to the Inspector, not the pretty URL, to match the
3304         URL that was used when initially telling the Inspector about this
3305         resource. We continue to pass the pretty URL to the ChromeClient for
3306         backwards compatibility.
3307
3308 2008-05-19  Stephanie Lewis  <slewis@apple.com>
3309
3310         Reviewed by Darin.
3311
3312         more fast teardown performance work, WebCore plumbing
3313
3314         * page/Chrome.cpp:
3315         (WebCore::Chrome::disableSuddenTermination):
3316         (WebCore::Chrome::enableSuddenTermination):
3317         (WebCore::ChromeClient::disableSuddenTermination):
3318         (WebCore::ChromeClient::enableSuddenTermination):
3319         * page/Chrome.h:
3320         * page/ChromeClient.h:
3321         * page/Page.cpp:
3322         (WebCore::Page::changePendingUnloadEventCount):
3323         (WebCore::Page::changePendingBeforeUnloadEventCount):
3324
3325 2008-05-19  Kuchhal  <kuchal@yahoo.com>
3326
3327         Reviewed by Justin.
3328
3329         <rdar://problem/5863412> Crash when Ctrl C is pressed after a series of specific mouse events (18506)
3330
3331         * editing/markup.cpp:
3332         (WebCore::createMarkup): Null check.
3333
3334 2008-05-19  Chris Fleizach  <cfleizach@apple.com>
3335
3336         Reviewed by Beth Dakin.
3337
3338         <rdar://problem/5912195> CrashTracer: [USER] 1 crash in Mail at -[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]
3339
3340         * page/mac/AccessibilityObjectWrapper.mm:
3341         (visiblePositionForTextMarker):
3342
3343 2008-05-19  Ada Chan  <adachan@apple.com>
3344
3345         Added CookieStorageWin.h/cpp, introducing methods to get/set the current CFHTTPCookieStorageRef.
3346         When setting cookies-related attributes in CFURLRequest, make sure we get them from the
3347         current CFHTTPCookieStorageRef.  Also, set the cookie storage in CFURLRequest.
3348
3349         Reviewed by Steve Falkenburg.
3350
3351         * WebCore.vcproj/WebCore.vcproj:
3352         * platform/network/cf/ResourceHandleCFNet.cpp:
3353         (WebCore::makeFinalRequest):
3354         * platform/network/cf/ResourceRequestCFNet.cpp:
3355         (WebCore::ResourceRequest::doUpdatePlatformRequest):
3356         * platform/network/win/CookieJarCFNetWin.cpp:
3357         (WebCore::setCookies):
3358         (WebCore::cookies):
3359         (WebCore::cookiesEnabled):
3360         * platform/network/win/CookieStorageWin.cpp: Added.
3361         (WebCore::currentCookieStorage):
3362         (WebCore::setCurrentCookieStorage):
3363         * platform/network/win/CookieStorageWin.h: Added.
3364
3365 2008-05-19  Alexey Proskuryakov  <ap@webkit.org>
3366
3367         Reviewed by Darin.
3368
3369         http://bugs.webkit.org/show_bug.cgi?id=18308
3370         SVG Encoding error with fill attribute
3371
3372         This is caused by problems with data: URL loading. Besides what is fixed by this patch,
3373         I filed <rdar://problem/5845875> for CFNetwork.
3374
3375         While at it, fixed a related javascript: URL issue.
3376
3377         Tests: fast/loader/data-url-encoding-html.html
3378                fast/loader/data-url-encoding-svg.html
3379                fast/loader/javascript-url-encoding.html
3380
3381         * platform/KURL.cpp:
3382         (WebCore::KURL::parse): Fix a FIXME, use UTF-8 instead of dropping high bytes. This fixes
3383         javascript: URL handling.
3384         (WebCore::encodeRelativeString): Like mailto: URLs, data: ones are all UTF-8. Restructured
3385         the code to not search for "#" if both parts are to be encoded as UTF-8 anyway.
3386
3387 2008-05-19  Alexey Proskuryakov  <ap@webkit.org>
3388
3389         Reviewed by Darin.
3390
3391         https://bugs.webkit.org/show_bug.cgi?id=18421
3392         <rdar://problem/5857369> XMLHttpRequest does not properly encode & and < in outgoing messages
3393
3394         Test: http/tests/xmlhttprequest/serialize-document.html
3395
3396         * bindings/js/JSXMLHttpRequestCustom.cpp:
3397         (WebCore::JSXMLHttpRequest::send): Use createMarkup() instead of Document::toString().
3398
3399         * dom/Attr.cpp:
3400         * dom/Attr.h:
3401         * dom/Document.cpp:
3402         * dom/Document.h:
3403         * dom/DocumentFragment.cpp:
3404         * dom/DocumentFragment.h:
3405         * dom/Element.cpp:
3406         * dom/Element.h:
3407         * dom/Entity.cpp:
3408         * dom/Entity.h:
3409         * dom/EntityReference.cpp:
3410         * dom/EntityReference.h:
3411         * dom/Node.h:
3412         * dom/Text.cpp:
3413         * dom/Text.h:
3414         * html/HTMLElement.cpp:
3415         * html/HTMLElement.h:
3416         Removed most Node::toString() methods, which were massively wrong, and only used for
3417         XMLHttpRequest::send(). The remanining ones are still used in markup.cpp, but should probably
3418         be folded into it for consistency.
3419
3420 2008-05-19  Anders Carlsson  <andersca@apple.com>
3421
3422         Fix Windows build.
3423         
3424         * plugins/win/PluginViewWin.cpp:
3425         (WebCore::PluginView::userAgentStatic):
3426         (WebCore::PluginView::getValueStatic):
3427         (WebCore::PluginView::getValue):
3428
3429 2008-05-19  Chris Fleizach  <cfleizach@apple.com>
3430
3431         Reviewed by Darin Adler.
3432
3433         <rdar://problem/5935694> AX: crash in text marker range
3434
3435         * page/mac/AccessibilityObjectWrapper.mm:
3436         (textMarkerRangeFromMarkers):
3437
3438 2008-05-19  Darin Adler  <darin@apple.com>
3439
3440         - fix WebKit build
3441
3442         * WebCore.xcodeproj/project.pbxproj: Make CSSReflectionDirection.h "private" instead of "project".
3443
3444 2008-05-19  chris fleizach  <cfleizach@apple.com>
3445
3446         Reviewed by Darin Adler
3447
3448         <rdar://problem/5700830> VO: VoiceOver should fall back to title attr if form element is not labeled
3449
3450         * page/AccessibilityRenderObject.cpp:
3451         (WebCore::AccessibilityRenderObject::title):
3452
3453 2008-05-19  Darin Adler  <darin@apple.com>
3454
3455         Reviewed by Mitz.
3456
3457         - tweak CSSReflectValue, possibly fixing the leaks seen on the buildbot
3458
3459         * WebCore.vcproj/WebCore.vcproj: Added CSSReflectionDirection.h. 
3460         * WebCore.xcodeproj/project.pbxproj: Ditto.
3461         * css/CSSReflectionDirection.h: Added.
3462
3463         * css/CSSComputedStyleDeclaration.cpp:
3464         (WebCore::valueForReflection): Changed to use CSSReflectValue::create.
3465         * css/CSSParser.cpp:
3466         (WebCore::CSSParser::parseReflect): Ditto.
3467
3468         * css/CSSReflectValue.h: Added a create function. Got rid of the setter
3469         functions, which had const PassRefPtr& arguments -- those probably caused
3470         the leaks although I'm not exactly sure why. Made the contructor and all
3471         the data members private.
3472
3473         * rendering/style/RenderStyle.h: Changed to include CSSReflectionDirection.h
3474         instead of CSSReflectValue.h so we can tweak CSSReflectValue without
3475         recompiling the world.
3476
3477 2008-05-19  Holger Hans Peter Freyther  <zecke@selfish.org>
3478
3479         Rubber Stamped by Simon.
3480
3481         Enforce the WebKit Coding Style.
3482
3483         * plugins/PluginView.cpp:
3484         (WebCore::PluginView::load):
3485         (WebCore::PluginView::setValue):
3486         * plugins/gtk/PluginViewGtk.cpp:
3487         (WebCore::PluginView::setFocus):
3488         (WebCore::PluginView::show):
3489         (WebCore::PluginView::hide):
3490         (WebCore::PluginView::attachToWindow):
3491         (WebCore::PluginView::detachFromWindow):
3492         (WebCore::PluginView::getValueStatic):
3493         (WebCore::PluginView::getValue):
3494         * plugins/qt/PluginViewQt.cpp:
3495         (WebCore::PluginView::updateWindow):
3496         (WebCore::PluginView::detachFromWindow):
3497         (WebCore::PluginView::handlePostReadFile):
3498         (WebCore::PluginView::getValueStatic):
3499         (WebCore::PluginView::getValue):
3500
3501 2008-05-14  Marc Ordinas i Llopis  <marc.ordinasillopis@collabora.co.uk>
3502
3503         Reviewed by Holger.
3504
3505         https://bugs.webkit.org/show_bug.cgi?id=18882
3506         https://bugs.webkit.org/show_bug.cgi?id=18892
3507         Based also on work by Chris Lord.
3508         
3509         Provides support for NPAPI plugins that pass NULL as their instance
3510         info. There are two kinds:
3511         - Some call NPN_UserAgent and NPN_GetValue before a PluginView has
3512         been created. For those we provide static versions of those functions.
3513         - Others call NPN_* functions with a NULL instance inside NPP_*
3514         calls, for those we've added extra currentPluginView guards.
3515
3516         * plugins/PluginView.cpp: Add additional currentPluginView guards and
3517         some small style changes.
3518         (WebCore::PluginView::start):
3519         (WebCore::PluginView::performRequest):
3520         (WebCore::PluginView::bindingInstance):
3521         (WebCore::PluginView::handlePost):
3522         * plugins/PluginView.h: Added static versions of NPN_UserAgent and
3523         NPN_GetValue.
3524         * plugins/gtk/PluginViewGtk.cpp: Add additional currentPluginView
3525         guards and some small style changes.
3526         (WebCore::PluginView::setNPWindowRect):
3527         (WebCore::PluginView::stop):
3528         (WebCore::PluginView::userAgentStatic): Added to deal with plugins
3529         that query this before having a PluginView.
3530         (WebCore::PluginView::getValueStatic): Added to deal with plugins
3531         that call this before we have created a PluginView.
3532         (WebCore::PluginView::getValue): Moved some code to getValueStatic.
3533         (WebCore::PluginView::init):
3534         * plugins/npapi.cpp: Call PluginView::userAgentStatic
3535         and PluginView::getValueStatic if no PluginView is
3536         present.
3537         (NPN_UserAgent):
3538         (NPN_GetValue):
3539         * plugins/qt/PluginPackageQt.cpp:
3540         (WebCore::PluginPackage::fetchInfo): Corrected split args because ignoring
3541         empty entries crashed.
3542         (WebCore::PluginPackage::load): Resolve all symbols when loading plugins
3543         to protect against XPCOM dependencies.
3544         * plugins/qt/PluginViewQt.cpp: Add additional currentPluginView guards and
3545         some small style changes.
3546         (WebCore::PluginView::updateWindow):
3547         (WebCore::PluginView::setNPWindowRect):
3548         (WebCore::PluginView::stop):
3549         (WebCore::PluginView::userAgentStatic): Added to deal with plugins
3550         that query this before having a PluginView.
3551         (WebCore::PluginView::handlePostReadFile):
3552         (WebCore::PluginView::getValueStatic): Added to deal with plugins
3553         that call this before we have created a PluginView.
3554         (WebCore::PluginView::getValue): Moved some code to getValueStatic.
3555         (WebCore::PluginView::init): m_needsXEmbed init was moved to constructor.
3556
3557 2008-05-19  Alp Toker  <alp@nuanti.com>
3558
3559         GTK+ build fix on Mac. Conditionalize XP_UNIX use.
3560
3561         * plugins/gtk/PluginPackageGtk.cpp:
3562         (WebCore::PluginPackage::fetchInfo):
3563         (WebCore::PluginPackage::load):
3564         * plugins/gtk/PluginViewGtk.cpp:
3565
3566 2008-05-18  Chris Fleizach  <cfleizach@apple.com>
3567
3568         Reviewed by Darin Adler
3569
3570         <rdar://problem/5942076> WebKit can no longer find URL links with VoiceOVer-U command (19100)
3571
3572         * page/AccessibilityObject.h:
3573
3574 2008-05-18  Darin Adler  <darin@apple.com>
3575
3576         Reviewed by Sam.
3577
3578         - fix <rdar://problem/5943569> crash due to stale ownerNode pointer
3579
3580         Test: fast/dom/StyleSheet/ownerNode-lifetime.html
3581
3582         * bindings/js/JSStyleSheetCustom.cpp:
3583         (WebCore::JSStyleSheet::mark): Added code to mark ownerNode. Includes a comment about how
3584         it would be even better to solve this in the DOM rather than just in the JavaScript binding.
3585
3586         * css/StyleSheet.idl: Added CustomMarkFunction attribute.
3587
3588 2008-05-18  Brady Eidson  <beidson@apple.com>
3589
3590         Reviewed by Sam Weinig
3591
3592         Fix for https://bugs.webkit.org/show_bug.cgi?id=19111
3593         Allow `delete storage.itemName` syntax as an alias for `storage.removeItem("itemName")`
3594
3595         Tests: storage/domstorage/localstorage/delete-removal.html
3596                storage/domstorage/sessionstorage/delete-removal.html
3597
3598         * bindings/js/JSStorageCustom.cpp:
3599         (WebCore::JSStorage::deleteProperty): Only do the delete for non-built in properties
3600         * storage/Storage.idl:
3601
3602 2008-05-17  Sam Weinig  <sam@webkit.org>
3603
3604         Reviewed by Mark Rowe.
3605
3606         Re-factor core setRequestHeader logic into setRequestHeaderInternal.
3607
3608         * xml/XMLHttpRequest.cpp:
3609         (WebCore::XMLHttpRequest::sameOriginRequest):
3610         (WebCore::XMLHttpRequest::setRequestHeader):
3611         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
3612