WebCore:
[WebKit-https.git] / WebCore / ChangeLog
1 2007-11-26  Timothy Hatcher  <timothy@apple.com>
2
3         Reviewed by Adam Roben.
4
5         Bug 16137: Web Inspector window on Leopard should have a unified toolbar and window title
6         http://bugs.webkit.org/show_bug.cgi?id=16137
7
8         On Leopard the toolbar background will be transparent, to allow the
9         window background to show through the transparent WebView. The 
10         search results divs needed to move inside the "main" div, so they
11         would be clipped and not show where the toolbar is.
12
13         * page/InspectorController.cpp:
14         (WebCore::platform): Return a string for which platform we are.
15         (WebCore::InspectorController::windowScriptObjectAvailable):
16         Define the platform function on the JavaScript class.
17         * page/inspector/Panel.js: Add panels to the panels div.
18         * page/inspector/inspector.css: On the Leopard platform make
19         the toolbar background transparent so the window background shows.
20         * page/inspector/inspector.html: Add a panels div and move search
21         result divs inside the main div.
22         * page/inspector/inspector.js: Tweak the resize code to acount for
23         the search results divs moving inside the main div.
24
25 2007-11-25  Rodney Dawes  <dobey@wayofthemonkey.com>
26
27         Reviewed by Maciej Stachowiak.
28
29         Remove the unneeded CFNETWORK #ifdefs.
30
31         * loader/NetscapePlugInStreamLoader.h:
32
33 2007-11-24  Laszlo Gombos  <laszlo.gombos@gmail.com>
34
35         Reviewed by Sam Weinig.
36
37         Add printf format attribute to several functions. Use the the new WTF_ATTRIBUTE_PRINTF define.
38
39         * dom/XMLTokenizer.cpp:
40         * dom/XMLTokenizer.h:
41         * platform/DeprecatedString.h:
42         * platform/PlatformString.h:
43
44 2007-11-25  Dan Bernstein  <mitz@apple.com>
45
46         Reviewed by Adam Roben.
47
48         - fix off-center error images
49
50         Covered by many pixel tests with missing images
51
52         * rendering/RenderImage.cpp:
53         (WebCore::RenderImage::paint): Account for the 1 pixel outline when
54         positioning the error image.
55
56 2007-11-25  Kevin Ollivier  <kevino@theolliviers.com>
57
58         wx build fix. Fix filename case for case-sensitive filesystems.
59
60         * WebCoreSources.bkl:
61
62 2007-11-22  Nikolas Zimmermann  <zimmermann@kde.org>
63
64         Reviewed by Adam Roben.
65
66         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15564
67
68         Fix problems with hidden glyphs. They were taken into account for quite
69         some operations (hit testing, length calulcations etc..) except painting.
70         Especially fixes boundaries of <textPath> (see using Web Inspector) if
71         text-anchor isn't equal to 'start'.
72
73         Added testcase:
74         svg/text/textPathBoundsBug.svg
75
76         Fixed testcase: (all showed text selection problems on text paths)
77         svg/batik/text/textGlyphOrientationHorizontal.svg
78         svg/batik/text/textOnPath.svg
79         svg/batik/text/textOnPath3.svg
80         svg/batik/text/verticalTextOnPath.svg
81         svg/text/text-align-04-b.svg
82         svg/W3C-SVG-1.1/text-align-04-b.svg
83
84         * rendering/SVGCharacterLayoutInfo.cpp:
85         (WebCore::SVGChar::isHidden):
86         * rendering/SVGCharacterLayoutInfo.h:
87         (WebCore::SVGCharOnPath::SVGCharOnPath):
88         * rendering/SVGInlineTextBox.cpp:
89         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
90         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
91         * rendering/SVGRootInlineBox.cpp:
92         (WebCore::topLeftPositionOfCharacterRange):
93         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
94         (WebCore::cummulatedWidthOrHeightOfTextChunk):
95         (WebCore::applyTextAnchorToTextChunk):
96         (WebCore::applyTextLengthCorrectionToTextChunk):
97         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
98         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
99         (WebCore::SVGRootInlineBox::buildTextChunks):
100
101 2007-11-25  Alexey Proskuryakov  <ap@webkit.org>
102
103         Reviewed by Maciej.
104
105         http://bugs.webkit.org/show_bug.cgi?id=15919
106         XSLTProcessor.transformToFragment creates an extra not defined TEXT_NODE at the end
107
108         Test: fast/xsl/extra-lf-at-end.html
109
110         * xml/XSLTProcessor.cpp:
111         (WebCore::writeToVector): Changed to use Vector to avoid slow String::apend().
112         (WebCore::saveResultToString): Remove trailing line feed if present.
113
114 2007-11-24  Mark Rowe  <mrowe@apple.com>
115
116         Reviewed by Tim Hatcher.
117
118         Fix <rdar://problem/5432686> 333MB RPRVT seems to leak @ www.43folders.com (1hr plug-in stream).
119         http://bugs.webkit.org/show_bug.cgi?id=13705
120
121         Don't buffer the entire stream contents in memory in the ResourceLoader.
122
123         * loader/mac/NetscapePlugInStreamLoaderMac.mm:
124         (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
125         (WebCore::NetscapePlugInStreamLoader::didFinishLoading):
126         * loader/mac/WebPlugInStreamLoaderDelegate.h:
127
128 2007-11-23  Adam Roben  <aroben@apple.com>
129
130         Get rid of WebCoreSystemInterface on Windows
131
132         The one function defined in that file is now in WebKitSystemInterface.
133
134         Reviewed by Tim.
135
136         * WebCore.vcproj/WebCore.vcproj: Removed
137         WebCoreSystemInterface.{cpp,h}.
138         * platform/graphics/cg/ImageCG.cpp: Made #include of
139         WebCoreSystemInterface.h Mac-only.
140         * platform/win/GraphicsContextWin.cpp: Ditto.
141         * platform/win/WebCoreSystemInterface.cpp: Removed.
142         * platform/win/WebCoreSystemInterface.h: Removed.
143
144 2007-11-24  Adam Roben  <aroben@apple.com>
145
146         Replace uses of %@ with %s in the inspector
147
148         Rubberstamped by Tim.
149
150         * English.lproj/InspectorLocalizedStrings.js: Changed %@ to %s.
151         * page/inspector/DatabasePanel.js: Ditto.
152         * page/inspector/StylesSidebarPane.js: Ditto.
153         * page/inspector/inspector.js: Ditto.
154         * page/inspector/utilities.js:
155         (String.vsprintf): Removed @ as a format specifier.
156
157 2007-11-24  Adam Roben  <aroben@apple.com>
158
159         Windows build fix
160
161         Turn off the change made in r27984 on Windows for now.
162
163         * xml/XSLTProcessor.cpp:
164         (WebCore::XSLTProcessor::transformToString):
165         * xml/XSLTUnicodeSort.cpp:
166
167 2007-11-24  Timothy Hatcher  <timothy@apple.com>
168
169         Reviewed by Adam Roben.
170
171         Bug 16121: Web Inspector needs helper functions that pass a 'this' object to
172         addEventListener and setTimeout
173         http://bugs.webkit.org/show_bug.cgi?id=16121
174
175         Add Function.prototype.bind. This helper will return a wrapper function
176         that will call the original function with the supplied arguments
177         and using the supplied 'this' object.
178
179         * page/inspector/Database.js: Remove a use of setTimeout by
180           inheriting some common functions from Resource.
181         * page/inspector/DatabasePanel.js: Use the new bind function.
182         * page/inspector/ConsolePanel.js: Ditto.
183         * page/inspector/DocumentPanel.js: Ditto.
184         * page/inspector/NetworkPanel.js: Ditto.
185         * page/inspector/PropertiesSection.js: Ditto.
186         * page/inspector/Resource.js: Ditto.
187         * page/inspector/SidebarPane.js: Ditto.
188         * page/inspector/inspector.html: Moved Database.js after Resource.js,
189           now that Database.js uses it.
190         * page/inspector/inspector.js: Use the new bind function. Also
191           removed a setTimeout used for the localized strings code. There is
192           now a load event listener added to the localized strings script
193           element that will call WebInspector.loaded.
194         * page/inspector/utilities.js: Add Function.prototype.bind.
195
196 2007-11-24  Timothy Hatcher  <timothy@apple.com>
197
198         Reviewed by Adam Roben.
199
200         Bug 16112: Some Web Inspector UI elements use offsetWidth and offsetHeight before the stylesheet loads
201         http://bugs.webkit.org/show_bug.cgi?id=16112
202
203         In the places where we use offsetWidth and offsetHeight before
204         the stylesheet loads there is now a check. If the body's
205         offsetWidth is not greater than zero, then set a timeout
206         to do the updates requiring the stylesheet later.
207
208         The three places this happened:
209         - DOM tree selection highlight would show up at the wrong height
210           when using Inspect Element to open the inspector.
211         - DOM tree breadcrumbs would not collapse when using Inspect Element
212           to open the inspector.
213         - Network Timeline divider lines would not show when opening directly
214           into the timeline.
215
216         * page/inspector/DocumentPanel.js: Check if the stylesheet loaded.
217         * page/inspector/NetworkPanel.js: Ditto.
218         * page/inspector/inspector.html: Include the stylesheet before
219           any scripts, this will help get it loaded sooner.
220
221 2007-11-24  Kevin Ollivier  <kevino@theolliviers.com>
222
223         Add wx implementation for pathGetFilename
224
225         Reviewed by David D. Kilzer.
226
227         * html/HTMLFormElement.cpp:
228         (WebCore::pathGetFilename):
229
230 2007-11-23  Timothy Hatcher  <timothy@apple.com>
231
232         Reviewed by Adam Roben.
233
234         Bug 16110: Clicking inside the resource headers in the network timeline collapses them
235         http://bugs.webkit.org/show_bug.cgi?id=16110
236
237         Toggle the resource headers only if the click happens on the
238         resource row, not within the headers area.
239
240         * WebCore.xcodeproj/project.pbxproj:
241         * page/inspector/NetworkPanel.js:
242
243 2007-11-23  Kevin Ollivier  <kevino@theolliviers.com>
244
245         Win build fixes. CURL needs winsock, so don't disable it, and
246         include pthreads.h to get the threadsafe *_r functions.
247
248         Reviewed by Adam Roben.
249
250         * config.h:
251         * loader/FTPDirectoryDocument.cpp:
252         * loader/FTPDirectoryParser.cpp:
253
254 2007-11-23  Kevin Ollivier  <kevino@theolliviers.com>
255
256         wx build fix. Move wx settings to project build settings,
257         remove some old settings that were masking a build problem,
258         and fix include ordering to ensure proper config.h and
259         unicode/utf8.h headers are used. 
260
261         * webcore-base.bkl:
262         * webcore-wx.bkl:
263
264 2007-11-23  Simon Hausmann  <hausmann@webkit.org>
265
266         Reviewed by George Staikos <staikos@kde.org>.
267
268         Another build fix specific to trunk (instead of the stable branch) to fix make clean (which the buildbots call).
269
270         * WebCore.pro:
271
272 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
273
274         Not reviewed, trivial leak fix.
275
276         Fix xsltUnicodeSortFunction() memory leaks.
277
278         * xml/XSLTUnicodeSort.cpp:
279         (WebCore::xsltUnicodeSortFunction):
280
281 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
282
283         Reviewed by Maciej.
284
285         <rdar://problem/5539306> REGRESSION: redirect fails when subframe's document is opened but
286         not closed (affects digg.com)
287
288         Tests: fast/loader/meta-refresh-vs-open.html
289                fast/loader/redirect-with-open-subframe-2.html
290                fast/loader/redirect-with-open-subframe.html
291                http/tests/loading/onload-vs-immediate-refresh.pl
292
293         * loader/FrameLoader.cpp:
294         (WebCore::FrameLoader::scheduleRedirection): Only check whether the load is complete for
295         HTTP redirects - JavaScript-initiated ones are effective immediately.
296
297 2007-11-23  Dan Bernstein  <mitz@apple.com>
298
299         Reviewed by Alexey Proskuryakov.
300
301         - apply matrix transforms on the correct side of the transformation
302           matrix (not on the side where the vector is multiplied).
303
304         Test: fast/transforms/matrix-02.html
305
306         * rendering/RenderStyle.h:
307         (WebCore::MatrixTransformOperation::apply):
308
309 2007-11-23  Alexey Proskuryakov  <ap@webkit.org>
310
311         Reviewed by Maciej.
312
313         http://bugs.webkit.org/show_bug.cgi?id=16077
314         <rdar://problem/5609785> XSLT processor <xsl:sort> algorithm is incompatible with other
315         browser implementations
316
317         Test: fast/xsl/sort-unicode.xml
318
319         * xml/XSLTProcessor.cpp:
320         (WebCore::XSLTProcessor::transformToString): Set a custom sort function.
321
322         * xml/XSLTUnicodeSort.cpp: Added.
323         (init_xsltTransformError):
324         (xsltTransformError):
325         (WebCore::xsltUnicodeSortFunction):
326         * xml/XSLTUnicodeSort.h: Added.
327         ICU-based implementation of xsl:sort, using an example from libxslt distribution.
328         Only minimal coding style fixes to ease synchronization with upstream in the future.
329
330         * icu/unicode/ucol.h: Added.
331         * icu/unicode/uset.h: Added.
332         Taken from ICU 3.2
333
334         * WebCore.pro:
335         * WebCore.vcproj/WebCore.vcproj:
336         * WebCore.xcodeproj/project.pbxproj:
337         * WebCoreSources.bkl:
338         Added XSLTUnicodeSort.cpp.
339
340 2007-11-22  Alexey Proskuryakov  <ap@webkit.org>
341
342         Reviewed by Maciej.
343
344         http://bugs.webkit.org/show_bug.cgi?id=14977
345         Hixie's DOM Core performance test shows insert >10x slower than append
346
347         Each invocation of Element.childNodes[n] was creating and registering a new ChildNodeList,
348         which persisted and listened to notifications until GC.
349
350         A fix is to avoid registering child node lists for notifications - they don't need them, as
351         they share a common cache in Node.
352
353         * dom/Node.cpp:
354         (WebCore::Node::registerNodeList):
355         (WebCore::Node::unregisterNodeList):
356         (WebCore::Node::notifyLocalNodeListsAttributeChanged):
357         (WebCore::Node::notifyLocalNodeListsChildrenChanged):
358         * dom/NodeList.h:
359         (WebCore::NodeList::needsNotifications):
360
361 2007-11-22  Dan Bernstein  <mitz@apple.com>
362
363         Reviewed by Antti Koivisto.
364
365         - fix http://bugs.webkit.org/show_bug.cgi?id=15811
366           WebKit plug-ins can re-enter WebKit under attach()
367           <rdar://problem/5577978>
368
369         Defer plug-in loading until after attach and recalcStyle using the
370         post-attach callback mechanism. Netscape plug-ins are still loaded only
371         after layout.
372
373         * dom/ContainerNode.cpp:
374         Made NodeCallbackQueue elements retain the Node because callbacks might
375         delete nodes that are in the callback queue.
376         (WebCore::ContainerNode::suspendPostAttachCallbacks): Added. Needed to
377         prevent post-attach callbacks from being dispatched under recalcStyle().
378         (WebCore::ContainerNode::resumePostAttachCallbacks): Ditto.
379         (WebCore::ContainerNode::dispatchPostAttachCallbacks): Factored out from
380         attach().
381         (WebCore::ContainerNode::attach):
382         * dom/ContainerNode.h:
383         * dom/Document.cpp:
384         (WebCore::Document::recalcStyle): Added calls to
385         suspendPostAttachCallbacks() and resumePostAttachCallbacks().
386         * html/HTMLEmbedElement.cpp:
387         (WebCore::HTMLEmbedElement::HTMLEmbedElement):
388         (WebCore::HTMLEmbedElement::attach): Changed to queue the widget update
389         for post-attach.
390         (WebCore::HTMLEmbedElement::updateWidget): Added. Called by the
391         post-attach callback.
392         * html/HTMLEmbedElement.h: Added an m_needWidgetUpdate member needed to
393         prevent a double update if another plug-in's post-attach updateWidget()
394         triggers a layout which updates the widget before this plug-in's
395         post-attach callback is invoked.
396         (WebCore::HTMLEmbedElement::setNeedWidgetUpdate): Added a setter for
397         m_needWidgetUpdate.
398         * html/HTMLObjectElement.cpp:
399         (WebCore::HTMLObjectElement::attach): Changed to queue the widget update
400         for post-attach.
401         (WebCore::HTMLObjectElement::updateWidget): Added. Called by the
402         post-attach callback.
403         * html/HTMLObjectElement.h:
404         (WebCore::HTMLObjectElement::setNeedWidgetUpdate): Added a setter for
405         m_needWidgetUpdate.
406         * html/HTMLPlugInElement.cpp:
407         (WebCore::HTMLPlugInElement::updateWidgetCallback): Added.
408         * html/HTMLPlugInElement.h:
409         (WebCore::HTMLPlugInElement::updateWidget):
410         * rendering/RenderPartObject.cpp:
411         (WebCore::RenderPartObject::updateWidget): Added calls to
412         setNeedWidgetUpdate(false) so that if this method is called from
413         FrameView::layout() during post-attach dispatch of another plug-in,
414         it will not be called again when this plug-in's post-attach callback
415         is dispatched.
416         * rendering/RenderPartObject.h:
417         (WebCore::RenderPartObject::updateWidget) Renamed argument to match
418         the method definition.
419
420 2007-11-22  Timothy Hatcher  <timothy@apple.com>
421
422         Reviewed by Dan Bernstein.
423
424         Fix the Element.hasStyleClass and Element.removeStyleClass helpers
425         to not find and replace substrings, but whole class names at the
426         beginning or end of the string or surrounded by whitespace.
427
428         * page/inspector/utilities.js:
429
430 2007-11-22  Timothy Hatcher  <timothy@apple.com>
431
432         Revert part of my r27935 change that made the Tip balloons
433         animate with CSS transitions. The balloon was only opacity 0,
434         so it would cause its row to highlight when hovering over
435         another row.
436
437         * page/inspector/NetworkPanel.js:
438         * page/inspector/inspector.css:
439
440 2007-11-22  Dan Bernstein  <mitz@apple.com>
441
442         Reviewed by Maciej Stachowiak.
443
444         - fix http://bugs.webkit.org/show_bug.cgi?id=15943
445           -webkit-transform matrix does not work
446
447         Test: fast/transforms/matrix-01.html
448
449         Parse all six matrix entries as numbers.
450
451         * css/CSSParser.cpp:
452         (WebCore::TransformOperationInfo::TransformOperationInfo):
453         (WebCore::CSSParser::parseTransform):
454         * css/CSSStyleSelector.cpp:
455         (WebCore::CSSStyleSelector::applyProperty):
456         * rendering/RenderStyle.cpp:
457         (WebCore::MatrixTransformOperation::blend):
458         * rendering/RenderStyle.h:
459         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
460         (WebCore::MatrixTransformOperation::apply):
461
462 2007-11-22  Laszlo Gombos  <laszlo.gombos@gmail.com>
463
464         Reviewed by Alp Toker.
465
466         Fix some compilation warnings.  Do not reference undefined (platform) specific type (WebCore::CachedFont::m_fontData)
467
468         * loader/CachedFont.cpp:
469         (WebCore::CachedFont::~CachedFont):
470         (WebCore::CachedFont::allReferencesRemoved):
471
472 2007-11-22  Alp Toker  <alp@atoker.com>
473
474         Reviewed by Mark Rowe.
475
476         GTK+ drawing fix.
477
478         Add a check to avoid crashing when the GraphicsContext is not
479         associated with a GdkEventExpose. This was noticed when adding
480         printing support but might be triggered in other situations too.
481
482         * platform/gtk/WidgetGtk.cpp:
483         (WebCore::Widget::paint):
484
485 2007-11-22  Julien Chaffraix  <julien.chaffraix@gmail.com>
486
487         Reviewed by Alexey.
488
489         Bug 15530: XMLHttpRequest should not support certain methods
490
491         Test: http/tests/xmlhttprequest/xmlhttprequest-forbidden-methods-exception.html
492
493         * xml/XMLHttpRequest.cpp:
494         (WebCore::XMLHttpRequest::open):
495
496 2007-11-22  Simon Hausmann  <hausmann@kde.org>
497
498         Reviewed by George.
499
500         For the build inside Qt include qbase.pri and don't duplicate what qbase.pri otherwise does (install targets, etc.)
501
502         * WebCore.pro:
503
504 2007-11-22  Simon Hausmann  <hausmann@kde.org>
505
506         Reviewed by George.
507
508         Don't set OBJECTS_DIR when building inside Qt
509
510         * WebCore.pro:
511
512 2007-11-22  Simon Hausmann  <hausmann@kde.org>
513
514         Reviewed by George.
515
516         Use ../generated as path for the generated sources for builds inside Qt
517
518         * WebCore.pro:
519
520 2007-11-22  Simon Hausmann  <hausmann@kde.org>
521
522         Reviewed by George.
523
524         Make the directory of where to put the generated sources configurable through the GENERATED_SOURCE_DIR variable
525
526         * WebCore.pro:
527
528 2007-11-22  Simon Hausmann  <hausmann@kde.org>
529
530         Reviewed by George.
531
532         Centralize the setup for all the extra compilers in a addExtraCompiler function.
533         
534         This allows adding a "generated_files" target that builds all generated files using "make generated_files".
535         For the build inside Qt we do not generate actual rules for the extra compilers but instead
536         do the variable substitution of compiler.output manually and add the generated sources to SOURCES.
537
538         * WebCore.pro:
539
540 2007-11-21  Timothy Hatcher  <timothy@apple.com>
541
542         Reviewed by Eric Seidel.
543
544         Show Fonts as Yellow in the network timeline.
545
546         * page/inspector/NetworkPanel.js:
547         * page/inspector/inspector.css:
548
549 2007-11-21  Dan Bernstein  <mitz@apple.com>
550
551         Reviewed by Eric Seidel.
552
553         - fix <rdar://problem/5607037> REGRESSION (r27351): Departure date does not repaint when changed on Google Maps public transit planner (16034)
554
555         Test: fast/repaint/subtree-root-skipped.html
556
557         * page/FrameView.cpp:
558         (WebCore::FrameViewPrivate::FrameViewPrivate): Initialize the layout
559         root to 0.
560         (WebCore::FrameView::layoutRoot): Changed to return a RenderObject
561         instead of a Node.
562         (WebCore::FrameView::layout): Changed for layout root being a renderer
563         rather than a DOM node. Also replaced clearing the repaint rects
564         set with asserting that it is empty if this is the top-level call to
565         layout(). If it is not, the set may contain rects from enclosing
566         layout() and those should not be removed.
567         (WebCore::FrameView::scheduleRelayout): Changed for layout root being
568         a renderer rather than a DOM node.
569         (WebCore::isObjectAncestorContainerOf): Added this helper function that
570         tests whether one object will be marked by calling
571         markContainingBlocksForLayout() on the other.
572         (WebCore::FrameView::scheduleRelayoutOfSubtree): Changed for layout
573         root being a renderer rather than a DOM node. Changed the check if new
574         and current layout roots are on the same path from the root to use
575         the subgraph of the render tree defined by container()hood instead of
576         the DOM tree and parenthood.
577         * page/FrameView.h:
578         * rendering/RenderBox.cpp: 
579         (WebCore::RenderBox::calcWidth): Changed for layout root being a
580         renderer rather than a DOM node.
581         * rendering/RenderObject.cpp:
582         (WebCore::RenderObject::~RenderObject): Added an assertion that the
583         object being deleted is not currently the layout root.
584         (WebCore::RenderObject::scheduleRelayout): Changed for layout root being
585         a renderer rather than a DOM node.
586
587 2007-11-21  Mark Rowe  <mrowe@apple.com>
588
589         Reviewed by Eric.
590
591         Fix WebCore to build without warnings under GCC 4.2.
592
593         * Configurations/Base.xcconfig:
594         * css/CSSRuleList.cpp:
595         (WebCore::CSSRuleList::deleteRule):
596         * css/CSSStyleSelector.cpp:
597         (WebCore::CSSStyleSelector::locateSharedStyle):
598         * html/HTMLParser.cpp:
599         (WebCore::HTMLParser::allowNestedRedundantTag):
600         * rendering/RenderBlock.cpp:
601         (WebCore::RenderBlock::fillInlineSelectionGaps):
602         (WebCore::RenderBlock::fillBlockSelectionGaps):
603         * rendering/RenderLayer.cpp:
604         (WebCore::RenderLayer::stackingContext):
605         (WebCore::RenderLayer::enclosingPositionedAncestor):
606         (WebCore::RenderLayer::transparentAncestor):
607         * rendering/RenderStyle.cpp:
608         (WebCore::BackgroundLayer::fillUnsetProperties):
609         (WebCore::Transition::fillUnsetProperties):
610         * rendering/RenderText.cpp:
611         (WebCore::RenderText::containsOnlyWhitespace):
612         * rendering/bidi.cpp:
613         (WebCore::RenderBlock::determineStartPosition):
614
615 2007-11-21  Alp Toker  <alp@atoker.com>
616
617         Reviewed by Mark Rowe.
618
619         http://bugs.webkit.org/show_bug.cgi?id=16071
620         Curl backend handles EINTR incorrectly
621
622         Defer timers during select() to avoid interruption by timer signals.
623
624         * platform/network/curl/ResourceHandleManager.cpp:
625         (WebCore::ResourceHandleManager::downloadTimerCallback):
626
627 2007-11-21  Mark Rowe  <mrowe@apple.com>
628
629         Reviewed by Tim Hatcher.
630
631         Changes due to <rdar://problem/5602936> Need to resolve new GCC 4.2 warnings
632
633         Update format strings to use format specifiers that match the argument types.
634
635         * loader/icon/IconDatabase.cpp:
636         (WebCore::IconDatabase::performURLImport):
637         (WebCore::IconDatabase::writeToDatabase):
638         * platform/mac/TextCodecMac.cpp:
639         (WebCore::TextCodecMac::decode):
640         * storage/Database.cpp:
641         (WebCore::Database::deliverAllPendingCallbacks):
642
643 2007-11-21  Xan Lopez  <xan@gnome.org>
644
645         Reviewed by Alp Toker.
646
647         Clarify scroll event processing with a comment.
648
649         * platform/gtk/PlatformScrollBarGtk.cpp:
650         (gtkScrollEventCallback):
651
652 2007-11-21  Timothy Hatcher  <timothy@apple.com>
653
654         Reviewed by Adam Roben.
655
656         Bug 16085: Web Inspector's Network Timeline graph code clean up and misc. fixes
657         http://bugs.webkit.org/show_bug.cgi?id=16085
658         
659         Changes include:
660         - Refactor the drawing code as nested functions instead of global functions.
661         - Compute the segment percentages only once per call to drawSummaryGraph.
662         - Account for percentages that rounded down to total less-than 100%.
663         - Draw the pill shadow better using the canvas shadow drawing properties.
664         - Removes a couple canvas context saves and restores.
665
666         * page/inspector/NetworkPanel.js:
667
668 2007-11-21  Alexey Proskuryakov  <ap@webkit.org>
669
670         Reviewed by Adam Roben.
671
672         http://bugs.webkit.org/show_bug.cgi?id=16056
673         Unicode not being interpreted correctly in Web Inspector source view
674
675         Cannot be tested automatically.
676
677         * loader/CachedCSSStyleSheet.cpp:
678         (WebCore::CachedCSSStyleSheet::encoding):
679         * loader/CachedCSSStyleSheet.h:
680         * loader/CachedResource.h:
681         (WebCore::CachedResource::encoding):
682         * loader/CachedScript.cpp:
683         (WebCore::CachedScript::encoding):
684         * loader/CachedScript.h:
685         * loader/CachedXBLDocument.cpp:
686         (WebCore::CachedXBLDocument::encoding):
687         * loader/CachedXBLDocument.h:
688         * loader/CachedXSLStyleSheet.cpp:
689         (WebCore::CachedXSLStyleSheet::encoding):
690         * loader/CachedXSLStyleSheet.h:
691         Teach textual CachedResources to report their encodings.
692
693         * page/InspectorController.cpp:
694         (WebCore::addSourceToFrame):
695         (WebCore::updateResourceResponse):
696         Use the actual encoding - the network layer has little idea about it.
697
698 2007-11-20  Mark Rowe  <mrowe@apple.com>
699
700         Reviewed by Maciej Stachowiak.
701
702         Fix <rdar://problem/5609579> (DOMParser().parseFromString() freezes Safari when parsing large nodes with XML entities)
703         http://bugs.webkit.org/show_bug.cgi?id=16076
704
705         XMLTokenizer was calling CharacterData::appendData twice per entity in the fragment of XML being
706         parsed (once for text before the entity, once for the entity itself).  This triggered O(n^2) copying
707         of the CharacterData's string due to resizing.  We now prevent this happening by buffering all the
708         content for a given Text node in the XMLTokenizer before sending it out to the node in a single go.
709
710         * dom/XMLTokenizer.cpp:
711         (WebCore::XMLTokenizer::characters): Append the characters to the buffer.
712         (WebCore::XMLTokenizer::endDocument): Ensure the buffer is flushed when the document has ended.
713         (WebCore::endDocumentHandler):
714         (WebCore::XMLTokenizer::enterText):
715         (WebCore::XMLTokenizer::exitText): Append the contents of the buffer to the node.
716         (WebCore::XMLTokenizer::initializeParserContext): Add the endDocument handler.
717         (WebCore::parseXMLDocumentFragment): Force endDocument to be called when parsing a fragment to ensure
718         that the buffer gets flushed to the node.
719         * dom/XMLTokenizer.h:
720
721 2007-11-20  Timothy Hatcher  <timothy@apple.com>
722
723         Reviewed by Mark Rowe.
724
725         Animate the status area and tip balloons in the Web Inspector
726         with CSS animations.
727
728         * page/inspector/NetworkPanel.js:
729         * page/inspector/inspector.css:
730         * page/inspector/inspector.js:
731
732 2007-11-20  Kevin Ollivier  <kevino@theolliviers.com>
733
734         wx build fix for Windows. Don't use WebCore/move-js-headers.sh as
735         it indiscriminately copies any headers inside JavaScriptCore,
736         which includes Tiger ICU headers. 
737
738         * webcore-base.bkl:
739         Remove references to the WebCore/include dir generated by
740         move-js-headers.sh, and also get headers from JavaScriptCore
741         directly rather than from WebCore/ForwardingHeaders. 
742
743 2007-11-20  Alp Toker  <alp@atoker.com>
744
745         Reviewed by Mark Rowe.
746
747         Avoid pointlessly mallocing and freeing this transform matrix.
748
749         * platform/gtk/FontPlatformDataGtk.cpp:
750         (WebCore::FontPlatformData::FontPlatformData):
751
752 2007-11-20  Naiem Shaik  <naiem.shaik@gmail.com>
753
754         Reviewed by Alp Toker.
755
756         http://bugs.webkit.org/show_bug.cgi?id=15763
757         [GTK] Enter key does not take to the link highlighted.
758
759         Add missing keycode cases.
760
761         * platform/gtk/KeyEventGtk.cpp:
762         (WebCore::keyIdentifierForGdkKeyCode):
763         (WebCore::windowsKeyCodeForKeyEvent):
764         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
765
766 2007-11-20  Mark Rowe  <mrowe@apple.com>
767
768         Reviewed by Sam Weinig.
769
770         Fix http://bugs.webkit.org/show_bug.cgi?id=16074
771         Bug 16074: execCommand("InsertHorizontalRule", false, "") results in id="" being inserted
772
773         For consistency with InsertOrderedList and InsertUnorderedList a value parameter of "" should
774         not result in an id being set.
775
776         * editing/JSEditor.cpp: Don't set the id attribute if value is empty.
777
778 2007-11-20  Dan Bernstein  <mitz@apple.com>
779
780         Reviewed by Adam Roben.
781
782         - fix <rdar://problem/5090708> Textareas render broken-looking scrollbars when too short to show full scrollbar
783
784         * platform/win/PlatformScrollBar.h:
785         * platform/win/PlatformScrollBarSafari.cpp:
786         Added the "hit inset" constants (representing how far the track eats
787         into the button).
788         (WebCore::PlatformScrollbar::paint): Changed to paint the buttons and
789         the thumb only if they should be showing.
790         (WebCore::PlatformScrollbar::hasButtons): Added. Returns whether the
791         arrows should be drawn.
792         (WebCore::PlatformScrollbar::hasThumb): Added. Returns whether the thumb
793         should be drawn.
794         (WebCore::PlatformScrollbar::forwardButtonRect):
795         (WebCore::PlatformScrollbar::trackRect): Changed to return the entire
796         bounds of the scrollbar if the scrollbar has no buttons.
797         (WebCore::PlatformScrollbar::paintTrack): Changed to paint a disabled
798         track along the entire scrollbar if it has not buttons.
799         (WebCore::PlatformScrollbar::hitTest): Changed to hit test only the
800         parts that the scrollbar has in its current dimensions.
801
802 2007-11-20  Mark Rowe  <mrowe@apple.com>
803
804         Reviewed by Alp Toker.
805
806         * config.h: Change #if to #ifdef to silence warnings on non-Apple platforms.
807
808 2007-11-20  Simon Hausmann  <hausmann@kde.org>
809
810         Reviewed by Adam Treat <treat@kde.org>.
811
812         Remove static linkage of QtWebKit against the ICO image format plugin.
813         Instead build the support for the ICO image format as a proper standalone qt image format plugin and install it.
814
815         * WebCore.pro:
816         * platform/graphics/qt/ImageDecoderQt.cpp:
817
818 2007-11-20  David D. Kilzer  <ddkilzer@webkit.org>
819
820         no-svg build broken after r27278
821         <http://bugs.webkit.org/show_bug.cgi?id=16061>
822
823         Reviewed by Eric.
824
825         * bindings/scripts/CodeGeneratorObjC.pm: Always generate DOMHTMLEmbedElementPrivate.h
826         and DOMHTMLObjectElementPrivate.h for no-svg build.
827
828 2007-11-20  Adam Treat  <treat@kde.org>
829
830         Reviewed by Simon.
831
832         * Don't use so much heap memory.
833
834         * platform/graphics/qt/ImageDecoderQt.cpp:
835         * platform/graphics/qt/ImageDecoderQt.h:
836         * platform/graphics/qt/ImageSourceQt.cpp:
837         (WebCore::ImageSource::createFrameAtIndex):
838
839 2007-11-20  Lars Knoll  <lars@trolltech.com>
840
841         Reviewed by Simon.
842
843         Fix text break interators.
844         
845         The break iterators where trying to be smart about the input
846         string and caching their results. Unfortunately a pointer/string length
847         comparison is not good enough in all cases (since some input is stack based
848         temp strings). Removed the caching but at the same time started to use a more
849         efficient constructor of QTextBoundaryFinder that doesn't need to malloc for
850         most strings.
851         
852         Fixes two test cases that test "text-transform: capitalize".
853
854         * platform/qt/TextBreakIteratorQt.cpp:
855         (WebCore::wordBreakIterator):
856         (WebCore::characterBreakIterator):
857         (WebCore::lineBreakIterator):
858         (WebCore::sentenceBreakIterator):
859
860 2007-11-20  Adam Treat  <treat@kde.org>
861
862         Reviewed by George.
863
864         * Make gif animations work for instance.
865
866         * platform/graphics/qt/ImageDecoderQt.cpp:
867         (WebCore::ImageDecoderQt::reset):
868         (WebCore::ImageDecoderQt::setData):
869         (WebCore::ImageDecoderQt::frameCount):
870         (WebCore::ImageDecoderQt::repetitionCount):
871         * platform/graphics/qt/ImageDecoderQt.h:
872
873 2007-11-20  Adam Treat  <treat@kde.org>
874
875         * Build in release mode
876
877         * platform/NotImplemented.h:
878
879 2007-11-20  Adam Treat  <treat@kde.org>
880
881         Reviewed by Simon and George.
882
883         * Be quiet and allow suppression of NotImplemented calls at runtime.
884
885         * platform/NotImplemented.h:
886
887 2007-11-19  Doug Turner  <dougt@meer.net>
888
889         Reviewed by Alp Toker.
890
891         http://bugs.webkit.org/show_bug.cgi?id=16054
892         Crash when GlyphPage::fill is called with more than 256 bytes of data
893
894         http://bugs.webkit.org/show_bug.cgi?id=14446
895         [GDK] Crash on http://www.wikipedia.org/
896
897         setGlyphDataForIndex() uses a fixed array of size 256 which we can't
898         exceed. We need to return failure if the buffer has Unicode
899         supplementary characters for now.
900
901         This strategy matches the Win port, which also doesn't support this
902         case yet.
903
904         Add an assertion so nobody makes this mistake again.
905
906         * platform/GlyphPageTreeNode.h:
907         (WebCore::GlyphPage::setGlyphDataForIndex):
908         * platform/gtk/GlyphPageTreeNodeGtk.cpp:
909         (WebCore::GlyphPage::fill):
910
911 2007-11-19  Doug Turner  <dougt@meer.net>
912
913         Reviewed by Timothy Hatcher.
914
915         http://bugs.webkit.org/show_bug.cgi?id=16050
916         sqlite3_prepare16_v2 build bustage.
917
918         Using the correct SQLITE_VERSION_NUMBER around sqlite_prepare16_v2
919         to fix build bustage.
920
921         * platform/sql/SQLiteStatement.cpp:
922         (WebCore::SQLiteStatement::prepare):
923
924 2007-11-19  Mark Rowe  <mrowe@apple.com>
925
926         Build fix.  Don't over-qualify the constructor name.
927
928         * storage/DatabaseDetails.h:
929
930 2007-11-19  Brady Eidson <beidson@apple.com>
931
932         Reviewed by Maciej
933
934         Stub out the WebCore parts of the WebKit API
935
936         * WebCore.base.exp:
937         * WebCore.xcodeproj/project.pbxproj:
938
939         * storage/DatabaseDetails.h: Added.  Simple container for vitals on a specific database
940         (WebCore::DatabaseDetails::DatabaseDetails::DatabaseDetails):
941         (WebCore::DatabaseDetails::DatabaseDetails):
942         (WebCore::DatabaseDetails::isValid):
943         (WebCore::DatabaseDetails::name):
944         (WebCore::DatabaseDetails::version):
945         (WebCore::DatabaseDetails::displayName):
946         (WebCore::DatabaseDetails::expectedUsage):
947         (WebCore::DatabaseDetails::currentUsage):
948
949         * storage/DatabaseTracker.cpp:  Added various methods for API usage
950         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
951         (WebCore::DatabaseTracker::usageForOrigin):
952         (WebCore::DatabaseTracker::quotaForOrigin):
953         (WebCore::DatabaseTracker::setQuota):
954         * storage/DatabaseTracker.h:
955
956 2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>
957
958         wx port build fix.
959
960         * platform/graphics/wx/AffineTransformWx.cpp:
961         (WebCore::AffineTransform::operator== ):
962         m_transform is only available when using wxGraphicsContext.
963
964 2007-11-19  Alp Toker  <alp@atoker.com>
965
966         Reviewed by Mark Rowe.
967
968         GTK+ drawing fixes.
969
970         Add a check to avoid crashing when the GraphicsContext is not
971         associated with a GdkDrawable. This was noticed when adding printing
972         support but might be triggered in other situations too.
973
974         Do not render themes when painting is disabled. This is an
975         optimisation for cases where GraphicsContext is used to calculate page
976         dimensions etc. without actually rendering.
977
978         * platform/graphics/cairo/GraphicsContextCairo.cpp:
979         (WebCore::GraphicsContext::gdkDrawable):
980         * platform/gtk/RenderThemeGtk.cpp:
981         (WebCore::paintMozWidget):
982
983 2007-11-13  Rahul Abrol  <ra5ul@comcast.net>
984
985         Reviewed by Tim Hatcher.
986
987         http://bugs.webkit.org/show_bug.cgi?id=15977
988         Resizing images preference now toggles default image state.
989
990         * loader/ImageDocument.cpp:
991         (WebCore::ImageDocument::ImageDocument):
992         (WebCore::ImageDocument::createDocumentStructure):
993         (WebCore::ImageDocument::imageChanged):
994
995 2007-11-19  Kevin Ollivier  <kevino@theolliviers.com>
996
997         Update wx port build sources with recent changes, update
998         wx FontPlatformData to be a class (MSVC7 gets confused
999         otherwise...) and implement its hash() method.
1000
1001         Reviewed by Adam.
1002
1003         * WebCoreSources.bkl:
1004         * platform/wx/FontPlatformData.h:
1005         (WebCore::FontPlatformData::hash):
1006
1007 2007-11-19  Julien Chaffraix  <julien.chaffraix@gmail.com>
1008
1009         Reviewed by Darin.
1010
1011         http://bugs.webkit.org/show_bug.cgi?id=12194
1012         Bug 12194: Trying to access XMLHttpRequest.responseText or responseXML when they 
1013         are not available should raise an exception
1014
1015         Tests: http/tests/xmlhttprequest/xmlhttprequest-responseText-exception.html
1016                http/tests/xmlhttprequest/xmlhttprequest-responseXML-exception.html
1017
1018         * bindings/js/JSXMLHttpRequest.cpp:
1019         (KJS::JSXMLHttpRequest::getValueProperty):
1020         * xml/XMLHttpRequest.cpp:
1021         (WebCore::XMLHttpRequest::getResponseText):
1022         (WebCore::XMLHttpRequest::getResponseXML):
1023         * xml/XMLHttpRequest.h:
1024
1025 2007-11-19  Peter Kasting  <zerodpx@gmail.com>
1026
1027         Reviewed by Darin Adler.
1028
1029         http://bugs.webkit.org/show_bug.cgi?id=15971
1030         The GIF decoder should not fail decoding if the caller asks it to
1031         decode again when no new data has arrived since the last call.
1032
1033         * platform/image-decoders/gif/GIFImageReader.cpp:
1034         (GIFImageReader::read):
1035
1036 2007-11-18  Brady Eidson <beidson@apple.com>
1037
1038         Reviewed by Eric
1039
1040         Fix a crash hashing a default SecurityOriginData object 
1041
1042         * storage/DatabaseTracker.cpp:
1043         (WebCore::SecurityOriginDataHash::hash): The default object has some default strings with NULL
1044           StringImpls - don't try to hash those!
1045
1046 2007-11-18  Timothy Hatcher  <timothy@apple.com>
1047
1048         Reviewed by Sam Weinig.
1049
1050         Bug 16043: Remove InspectorController.log now that console.log works
1051         http://bugs.webkit.org/show_bug.cgi?id=16043
1052
1053         Remove the last uses of InspectorController.log. Once use was no longer needed,
1054         checking an erro case that can't happen anymore. The other case now uses console.error.
1055
1056         * page/InspectorController.cpp: Remove the log function.
1057         (WebCore::InspectorController::windowScriptObjectAvailable): Remove the log function from
1058         InspectorController script class.
1059         * page/inspector/DocumentPanel.js: Remove a use of InspectorController.log that isn't needed.
1060         * page/inspector/Panel.js: Change InspectorController.log to console.log and early return.
1061
1062 2007-11-18  Timothy Hatcher  <timothy@apple.com>
1063
1064         Reviewed by Brady.
1065
1066         Bug 16041: REGRESSION: the Database panel in the Inspector stopped showing errors
1067         http://bugs.webkit.org/show_bug.cgi?id=16041
1068
1069         * page/inspector/DatabasePanel.js: Implement error callbacks to pass to executeSql()
1070           and transaction(). Refactored some code for the success and error callbacks to use.
1071
1072 2007-11-18  Alexey Proskuryakov  <ap@webkit.org>
1073
1074         Reviewed by Maciej.
1075
1076         <rdar://problem/5546393> Whitespace handling doesn't match HTML5.
1077
1078         HTML5 definition is the same as MSIE's, with the exception that the latter strips null
1079         characters. Firefox also treats U+0008 as whitespace, but not U+000B or U+000C.
1080
1081         Test: fast/parser/html-whitespace.html
1082
1083         * html/HTMLTokenizer.cpp:
1084         (WebCore::HTMLTokenizer::parseSpecial):
1085         (WebCore::HTMLTokenizer::parseTag):
1086         Use isASCIISpace, which matches HTML5 definition of whitespace, and also what we use to
1087         check for whitespace almost everywhere.
1088
1089 2007-11-17  Mark Rowe  <mrowe@apple.com>
1090
1091         Reviewed by Darin Adler.
1092
1093         Fix: <rdar://problem/5607032> REGRESSION: testapi exits with assertion failure in debug build
1094              <rdar://problem/5440659> JSGlobalContextCreate throws away globalObjectClass's prototype
1095              http://bugs.webkit.org/show_bug.cgi?id=16033
1096
1097         Update for changes in Interpreter method signatures.
1098
1099         * bindings/js/kjs_binding.cpp:
1100         (KJS::ScriptInterpreter::ScriptInterpreter):
1101         * bindings/js/kjs_window.cpp:
1102         (KJS::Window::clear):
1103
1104 2007-11-17  Timothy Hatcher  <timothy@apple.com>
1105
1106         Reviewed by Mark Rowe.
1107
1108         Bug 13470: i18n: The Web Inspector is not localizable
1109         http://bugs.webkit.org/show_bug.cgi?id=13470
1110
1111         Add support for localization to the Web Inspector. Clients need to
1112         implement localizedStringsURL() to return the URL of the
1113         InspectorLocalizedStrings.js that best matches the user's language.
1114
1115         * English.lproj: Added.
1116         * English.lproj/InspectorLocalizedStrings.js: Added.
1117         * WebCore.xcodeproj/project.pbxproj: Add InspectorLocalizedStrings.js.
1118         * page/InspectorClient.h: Add localizedStringsURL.
1119         * page/InspectorController.cpp: Add localizedStringsURL that calls
1120           the client. Also added a version exposed to JavaScript.
1121         * page/InspectorController.h: Add localizedStringsURL.
1122         * page/inspector/ConsolePanel.js: Call WebInspector.UIString
1123           for user visible strings.
1124         * page/inspector/DatabasePanel.js: Ditto.
1125         * page/inspector/DocumentPanel.js: Ditto.
1126         * page/inspector/ImagePanel.js: Ditto.
1127         * page/inspector/MetricsSidebarPane.js: Ditto.
1128         * page/inspector/NetworkPanel.js: Ditto.
1129         * page/inspector/Panel.js: Ditto.
1130         * page/inspector/PropertiesSidebarPane.js: Ditto.
1131         * page/inspector/Resource.js: Ditto.
1132         * page/inspector/ResourceCategory.js: Ditto.
1133         * page/inspector/SourcePanel.js: Ditto.
1134         * page/inspector/StylesSidebarPane.js: Ditto.
1135         * page/inspector/inspector.css: Use pre-wrap so database errors can use \n.
1136         * page/inspector/inspector.html: Remove some user visible strings.
1137         * page/inspector/inspector.js: Added WebInspector.UIString and call
1138           WebInspector.UIString for user visible strings. Some code needed to be 
1139           moved to WebInspector.loaded to use UIString after the localized strings
1140           get loaded.
1141         * platform/graphics/svg/SVGImageEmptyClients.h:
1142         (WebCore::SVGEmptyFrameLoaderClient::redirectDataToPlugin): Remove WebCore:: prefix.
1143         (WebCore::SVGEmptyInspectorClient::createPage): Ditto.
1144         (WebCore::SVGEmptyInspectorClient::localizedStringsURL): Add empty stub.
1145         (WebCore::SVGEmptyInspectorClient::highlight): Remove WebCore:: prefix.
1146         (WebCore::SVGEmptyInspectorClient::inspectedURLChanged): Ditto.
1147
1148 2007-11-17  Timothy Hatcher  <timothy@apple.com>
1149
1150         Reviewed by Adam.
1151
1152         Reworte String.sprintf to fix many bad bugs and to not use RegExp. Also added
1153         String.vsprintf so it can be used later for the localization function.
1154
1155         This version only supports argument reordering, precision for floats, and these
1156         format characters: d, f, s and @. Any unsupported format characters are logged
1157         and substituted like strings.
1158
1159         * page/inspector/utilities.js:
1160
1161 2007-11-17  Alexey Proskuryakov  <ap@webkit.org>
1162
1163         Windows build fix.
1164
1165         * editing/Editor.h: Made canSmartCopyOrDelete public, as Windows WebView still needs it.
1166
1167 2007-11-17  Alexey Proskuryakov  <ap@webkit.org>
1168
1169         Reviewed by Darin.
1170
1171         http://bugs.webkit.org/show_bug.cgi?id=15969
1172         Eliminate Editor::deleteRange()
1173
1174         No change in functionality.
1175
1176         * editing/CompositeEditCommand.h: Removed unimplemented deleteKeyPressed().
1177
1178         * editing/Editor.cpp:
1179         (WebCore::Editor::deleteWithDirection):
1180         (WebCore::Editor::cut):
1181         (WebCore::Editor::performDelete):
1182         * editing/Editor.h:
1183         Moved relevant Editor::deleteRange() functionality to its callers.
1184         Removed deleteSelectionWithSmartDelete(void), which was more confusing than helpful
1185         in my opinion.
1186
1187         * editing/mac/EditorMac.mm:
1188         (WebCore::initializeKillRingIfNeeded):
1189         (WebCore::Editor::addToKillRing):
1190         (WebCore::Editor::yank):
1191         (WebCore::Editor::yankAndSelect):
1192         (WebCore::Editor::setMark):
1193         (WebCore::unionDOMRanges):
1194         (WebCore::Editor::deleteToMark):
1195         (WebCore::Editor::selectToMark):
1196         (WebCore::Editor::swapWithMark):
1197         Pushed kill ring handling down from WebCore.
1198
1199         * page/mac/WebCoreFrameBridge.h:
1200         * page/mac/WebCoreFrameBridge.mm:
1201         Removed setMarkDOMRange (the corresponding getter is still needed).
1202
1203         * WebCore.base.exp: No longer need to export Editor::deleteRange() and Editor::insertTextWithoutSendingTextEvent().
1204         Export the new kill ring functions.
1205
1206 2007-11-16  Ryan Leavengood  <leavengood@gmail.com>
1207
1208         Reviewed by David Kilzer.
1209
1210         Build fix: the needed headers for POSIX file functions were not
1211         included.
1212
1213         * platform/posix/FileSystemPOSIX.cpp:
1214
1215 2007-11-16  Dan Bernstein  <mitz@apple.com>
1216
1217         Reviewed by Darin Adler.
1218
1219         - fix the common case of <http://bugs.webkit.org/show_bug.cgi?id=15994>
1220           REGRESSION: Incomplete repaint of CSS image substitution
1221
1222         Test: fast/repaint/clip-with-layout-delta.html
1223
1224         * rendering/LayoutState.cpp:
1225         (WebCore::LayoutState::LayoutState): Account for layout delta when
1226         pushing additional clip.
1227
1228 2007-11-16  Antti Koivisto  <antti@apple.com>
1229
1230         Reviewed by Adele.
1231         
1232         Seeking related fixes, updates to match the latest specification
1233         - rename loopCount of HTMLMediaElement to playCount
1234         - add explicit seeking attribute to HTMLMediaElement to get semantics right
1235         - implement the specification behavior that currentTime must immediately return seeked position in HTMLMediaElement 
1236           instead of MoviePrivateQTKit 
1237         - fix broken behavior when seeking past end of the media, add tests
1238         - replace Movie didEnd callback with broader timeChanged callback (which gets called in didEnd case too)
1239         - use setDelayCallbacks: in various MoviePrivateQTKit methods to avoid bug prone synchronous callbacks from QT, make
1240           HTMLMediaElement not depend on synchronous callbacks
1241         - do some cleanups and simplifications in MoviePrivateQTKit, get rid of m_rateBeforeSeek and m_blockStateUpdate variables
1242
1243         Tests: http/tests/media/video-seekable-stall.html
1244                media/video-seeking.html
1245                media/video-seek-past-end-paused.html
1246                media/video-seek-past-end-playing.html
1247
1248         * html/HTMLAttributeNames.in: 
1249         * html/HTMLMediaElement.cpp:
1250         (WebCore::HTMLMediaElement::HTMLMediaElement):
1251         (WebCore::HTMLMediaElement::load):
1252         (WebCore::HTMLMediaElement::movieNetworkStateChanged):
1253         (WebCore::HTMLMediaElement::setReadyState):
1254         (WebCore::HTMLMediaElement::seek):
1255         (WebCore::HTMLMediaElement::seeking):
1256         (WebCore::HTMLMediaElement::currentTime):
1257         (WebCore::HTMLMediaElement::ended):
1258         (WebCore::HTMLMediaElement::play):
1259         (WebCore::HTMLMediaElement::pause):
1260         (WebCore::HTMLMediaElement::playCount):
1261         (WebCore::HTMLMediaElement::setPlayCount):
1262         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
1263         (WebCore::HTMLMediaElement::movieTimeChanged):
1264         (WebCore::HTMLMediaElement::endedPlayback):
1265         (WebCore::HTMLMediaElement::updateMovie):
1266         * html/HTMLMediaElement.h:
1267         * html/HTMLMediaElement.idl:
1268         * platform/graphics/Movie.cpp:
1269         (WebCore::Movie::timeChanged):
1270         * platform/graphics/Movie.h:
1271         (WebCore::MovieClient::movieTimeChanged):
1272         * platform/graphics/mac/MoviePrivateQTKit.h:
1273         * platform/graphics/mac/MoviePrivateQTKit.mm:
1274         (WebCore::MoviePrivate::MoviePrivate):
1275         (WebCore::MoviePrivate::load):
1276         (WebCore::MoviePrivate::play):
1277         (WebCore::MoviePrivate::pause):
1278         (WebCore::MoviePrivate::currentTime):
1279         (WebCore::MoviePrivate::seek):
1280         (WebCore::MoviePrivate::doSeek):
1281         (WebCore::MoviePrivate::cancelSeek):
1282         (WebCore::MoviePrivate::seekTimerFired):
1283         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
1284         (WebCore::MoviePrivate::paused):
1285         (WebCore::MoviePrivate::updateStates):
1286         (WebCore::MoviePrivate::timeChanged):
1287         (WebCore::MoviePrivate::didEnd):
1288
1289 2007-11-16  Anders Carlsson  <andersca@apple.com>
1290
1291         Reviewed by Adam.
1292
1293         <rdar://problem/5603832>
1294         XMLHttpRequest readyState 3 & responseText buffer issues.
1295
1296         * platform/network/cf/ResourceHandleCFNet.cpp:
1297         (WebCore::makeFinalRequest):
1298         Add new parameter which controls whether content sniffing should be turned off.
1299         
1300         (WebCore::ResourceHandle::loadResourceSynchronously):
1301         Always content sniff sync loads.
1302         
1303         * platform/network/cf/ResourceRequestCFNet.cpp:
1304         (WebCore::ResourceRequest::doUpdatePlatformRequest):
1305         If the ResourceRequest already has a backing CFURLRequest, make a copy of it. This preserves
1306         any properties set on the CFURLRequest.
1307
1308 2007-11-16  Jon Honeycutt  <jhoneycutt@apple.com>
1309
1310         Reviewed by Ollie.
1311
1312         <rdar://problem/5605175> Crash closing or leaving window with ViewPoint 
1313         Media player plugin
1314
1315         ViewPoint plugin requires that we pass a valid NPSavedData* to
1316         NPP_Destroy.
1317
1318         * plugins/win/PluginViewWin.cpp: Pass a valid NPSavedData* to
1319         NPP_Destroy. If the plugin allocates data, discard it
1320
1321 2007-11-16  Mark Rowe  <mrowe@apple.com>
1322
1323         Reviewed by Tim Hatcher.
1324
1325         Build WebCore as a sub-framework of WebKit in all configurations.
1326
1327         * Configurations/WebCore.xcconfig:
1328         * WebCore.xcodeproj/project.pbxproj:
1329
1330 2007-11-16  Doug Turner  <dougt@meer.net>
1331
1332         Reviewed by Alp.
1333
1334         http://bugs.webkit.org/show_bug.cgi?id=16018
1335         build bustage when building on debian 4.0
1336
1337         Fix build bustage on GTK+ with older versions of Pango.
1338
1339         Don't cache the return value since the docs say it can change.
1340
1341         * platform/gtk/Language.cpp:
1342         (WebCore::defaultLanguage):
1343
1344 2007-11-16  Brady Eidson  <beidson@apple.com>
1345
1346         Build fix
1347
1348         * platform/SecurityOriginData.h:
1349         (WebCore::operator!=): Whoops!
1350
1351 2007-11-16  Brady Eidson  <beidson@apple.com>
1352
1353         Reviewed by Sam
1354
1355         Further purify DatabaseTracker to use SecurityOriginData instead of "a String"
1356
1357         * WebCore.base.exp:
1358         * WebCore.xcodeproj/project.pbxproj:
1359         * WebCore.vcproj/WebCore.vcproj
1360         * WebCore.pro
1361
1362         * platform/SecurityOriginData.cpp: Added.
1363         (WebCore::SecurityOriginData::SecurityOriginData): Add a constructor that takes a "stringIdentifier"-style string,
1364           since that form is what will be stored in the Databases.db on disk
1365         (WebCore::SecurityOriginData::stringIdentifier):
1366         * platform/SecurityOriginData.h:
1367         (WebCore::SecurityOriginData::protocol):
1368         (WebCore::SecurityOriginData::host):
1369         (WebCore::SecurityOriginData::port):
1370
1371         * storage/DatabaseTracker.cpp:
1372         (WebCore::SecurityOriginDataHash::hash): Follow the pattern Darin set in FontCache.cpp to make a decent hash for 
1373           a SecurityOriginData object
1374         (WebCore::SecurityOriginDataHash::equal):
1375         (WebCore::SecurityOriginDataTraits::deletedValue): "file::1" will never exist in normal operation
1376         (WebCore::SecurityOriginDataTraits::emptyValue): "file::2" will never exist in normal operation
1377         (WebCore::DatabaseTracker::fullPathForDatabase):
1378         (WebCore::DatabaseTracker::populateOrigins):
1379         (WebCore::DatabaseTracker::origins):
1380         (WebCore::DatabaseTracker::addDatabase):
1381         * storage/DatabaseTracker.h:
1382
1383 2007-11-16  Alexey Proskuryakov  <ap@webkit.org>
1384
1385         Windows build fix.
1386
1387         * WebCore.vcproj/WebCore.vcproj: Removed VoidCallback.cpp, added JSCustomVoidCallback.{h,cpp}.
1388
1389 2007-11-16  Nikolas Zimmermann  <zimmermann@kde.org>
1390
1391         Reviewed by Eric.
1392
1393         Fixes: http://bugs.webkit.org/show_bug.cgi?id=12290
1394
1395         Implement all SVGTextContentElement DOM methods.
1396         This is the last missing SVG text feature. SVG fonts is next.
1397
1398         Added testcase: svg/custom/text-dom-01-f.svg (tests all new methods)
1399
1400         * ksvg2/svg/SVGTextContentElement.cpp:
1401         (WebCore::cummulatedCharacterRangeLength):
1402         (WebCore::SVGInlineTextBoxQueryWalker::):
1403         (WebCore::SVGInlineTextBoxQueryWalker::SVGInlineTextBoxQueryWalker):
1404         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
1405         (WebCore::SVGInlineTextBoxQueryWalker::setQueryInputParameters):
1406         (WebCore::SVGInlineTextBoxQueryWalker::longResult):
1407         (WebCore::SVGInlineTextBoxQueryWalker::floatResult):
1408         (WebCore::SVGInlineTextBoxQueryWalker::pointResult):
1409         (WebCore::SVGInlineTextBoxQueryWalker::rectResult):
1410         (WebCore::SVGInlineTextBoxQueryWalker::stopProcessing):
1411         (WebCore::findInlineTextBoxInTextChunks):
1412         (WebCore::rootInlineBoxForTextContentElement):
1413         (WebCore::executeTextQuery):
1414         (WebCore::SVGTextContentElement::getNumberOfChars):
1415         (WebCore::SVGTextContentElement::getComputedTextLength):
1416         (WebCore::SVGTextContentElement::getSubStringLength):
1417         (WebCore::SVGTextContentElement::getStartPositionOfChar):
1418         (WebCore::SVGTextContentElement::getEndPositionOfChar):
1419         (WebCore::SVGTextContentElement::getExtentOfChar):
1420         (WebCore::SVGTextContentElement::getRotationOfChar):
1421         (WebCore::SVGTextContentElement::getCharNumAtPosition):
1422         (WebCore::SVGTextContentElement::selectSubString):
1423         * ksvg2/svg/SVGTextContentElement.h:
1424         * rendering/SVGInlineTextBox.h:
1425
1426 2007-11-15  Adele Peterson  <adele@apple.com>
1427
1428         Reviewed by Oliver.
1429
1430         Fix for <rdar://problem/5566652> CrashTracer: [USER] 3 crashes in Safari at HTMLSelectElement::menuListDefaultEventHandler (reproducible on mactc30.com)
1431
1432         Test: fast/forms/menulist-no-renderer-onmousedown.html
1433
1434         * html/HTMLSelectElement.cpp:
1435         (WebCore::HTMLSelectElement::defaultEventHandler): Nil check the renderer here.  None of the default behavior makes sense if there's no renderer.
1436         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Moved the nil check to the main defaultEventHandler.
1437
1438 2007-11-15  Antti Koivisto  <antti@apple.com>
1439
1440         Reviewed by Adele.
1441
1442         Fix <rdar://problem/5601598>
1443         The movie tag should do initialization on need and not during startup.
1444         
1445         Initialize Movie MIME type hash on demand
1446
1447         * platform/MIMETypeRegistry.cpp:
1448         (WebCore::initialiseSupportedMovieMIMETypes):
1449         (WebCore::initialiseMIMETypeRegistry):
1450         (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
1451         (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
1452
1453 2007-11-15  Mark Rowe  <mrowe@apple.com>
1454
1455         Build fix for Qt on Windows.
1456
1457         * xml/XPathStep.cpp:
1458         (WebCore::XPath::Step::nodesInAxis):
1459
1460 2007-11-15  Timothy Hatcher  <timothy@apple.com>
1461
1462         Reviewed by Mark Rowe.
1463
1464         Bug 14761: Web Inspector leaks JS objects and DOM nodes
1465         http://bugs.webkit.org/show_bug.cgi?id=14761
1466
1467         * page/InspectorController.cpp:
1468         (WebCore::InspectorController::~InspectorController):
1469         Change the tear down order so that inspectorDestroyed() is called before
1470         InspectorController private data is set to Zero. The inspectorDestroyed()
1471         call ends up closing the WebView and triggering InspectorController::close()
1472         which unprotects m_scriptObject. This didn't happen when the private data
1473         was cleared before calling inspectorDestroyed().
1474
1475 2007-11-15  Mark Rowe  <mrowe@apple.com>
1476
1477         Gtk build fix.
1478
1479         * WebCore.pro:
1480
1481 2007-11-15  Alexey Proskuryakov  <ap@webkit.org>
1482
1483         Reviewed by Darin.
1484
1485         http://bugs.webkit.org/show_bug.cgi?id=15989
1486         XPath queries with predicates incorrectly retains the current node across unions
1487
1488         Test: fast/xpath/union-context-node.xhtml
1489
1490         * xml/XPathPath.cpp:
1491         (WebCore::XPath::LocationPath::evaluate): Restore context after evaluation.
1492         * xml/XPathStep.cpp:
1493         (WebCore::XPath::Step::evaluate): Do not backup context, as we can easily re-create it.
1494
1495 2007-11-15  Alexey Proskuryakov  <ap@webkit.org>
1496
1497         Reviewed by Darin.
1498
1499         http://bugs.webkit.org/show_bug.cgi?id=15988
1500         REGRESSION: XPath preceding-axis query misses nested elements
1501
1502         Test: fast/xpath/preceding-axis.xhtml
1503
1504         * xml/XPathStep.cpp:
1505         (WebCore::XPath::Step::nodesInAxis): Hopefully correct this time.
1506
1507 2007-11-15  Timothy Hatcher  <timothy@apple.com>
1508
1509         Reviewed by Mark Rowe and Sam.
1510
1511         This corrects a couple of issues in the Web Inspector where selected search results
1512         would not have the right text color when the window is inactive or the results are focused.
1513
1514         * page/inspector/inspector.css:
1515
1516 2007-11-15  Timothy Hatcher  <timothy@apple.com>
1517
1518         Reviewed by Sam.
1519
1520         Bug 16007: REGRESSION: Disclosure triangle click zone for resource categories is off by 10 pixels
1521         http://bugs.webkit.org/show_bug.cgi?id=16007
1522
1523         Makes the click width an option on TreeElement and make ResourceCategoryTreeElement
1524         a true subclass of TreeElement. The click width for ResourceCategoryTreeElement is 
1525         20 pixels, and the default is 10 pixels.
1526
1527         * page/inspector/ResourceCategory.js:
1528         * page/inspector/treeoutline.js:
1529
1530 2007-11-15  Anders Carlsson  <andersca@apple.com>
1531
1532         Reviewed by Brady.
1533
1534         Pass a VoidCallback to Database::transaction and Database::changeVersion.
1535         This is not yet hooked up to the database machinery.
1536         
1537         * WebCore.vcproj/WebCore.vcproj:
1538         * bindings/js/JSDatabaseCustom.cpp:
1539         (WebCore::JSDatabase::changeVersion):
1540         (WebCore::JSDatabase::transaction):
1541         * storage/Database.cpp:
1542         (WebCore::Database::changeVersion):
1543         (WebCore::Database::transaction):
1544         * storage/Database.h:
1545
1546 2007-11-15  Timothy Hatcher  <timothy@apple.com>
1547
1548         Reviewed by Adam.
1549
1550         Bug 16005: Hovering in the breadcrumbs causes jumpy behavior
1551         http://bugs.webkit.org/show_bug.cgi?id=16005
1552
1553         Hovering over cumbs no longer exposes new crumbs. Clicking on a collapsed
1554         crumb will expose as many hidden crumbs as possible to the user. Also crumbs
1555         that have ID attributes will compact to the ID over the tag name.
1556
1557         * page/inspector/DocumentPanel.js:
1558
1559 2007-11-15  Anders Carlsson  <andersca@apple.com>
1560
1561         Reviewed by Sam.
1562
1563         Make the VoidCallback DOM interface behave more like our other DOM interfaces.
1564         
1565         * bindings/js/JSCustomVoidCallback.h: Added.
1566         * bindings/js/JSCustomVoidCallback.cpp: Added.
1567         (WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
1568         (WebCore::JSCustomVoidCallback::handleEvent):
1569         VoidCallback implementation that wraps a JS object.
1570         
1571         (WebCore::toVoidCallback):
1572         New method that creates a VoidCallback implementation given a JS object.
1573         
1574         * bindings/scripts/CodeGeneratorJS.pm:
1575         Specify that VoidCallback can fail conversion and add a custom conversion function.
1576         
1577         * html/HTMLMediaElement.cpp:
1578         (WebCore::HTMLMediaElement::movieCuePointReached):
1579         Call handleEvent on the callback.
1580         
1581         (WebCore::HTMLMediaElement::removeCuePoint):
1582         Comment out parts of this method, it has already been removed in the HTML5 spec and it relies
1583         on overriding VoidCallback equality.
1584         
1585         * html/VoidCallback.cpp: Removed.
1586         
1587         * html/VoidCallback.h:
1588         (WebCore::VoidCallback::VoidCallback):
1589         (WebCore::VoidCallback::~VoidCallback):
1590         Make this an abstract class with a pure virtual handleEvent method.
1591         
1592 2007-11-15  Adam Roben  <aroben@apple.com>
1593
1594         Fix <rdar://5485108> Type-select while a <select> menu is open doesn't work
1595
1596         There were two things broken here:
1597            - WebView now requires a WM_CHAR message to be sent before it will
1598              create a keyboard event with a charCode, but we were only sending
1599              a WM_KEYDOWN event.
1600            - The popup menu was not updating its focused index when the
1601              <select> element's selectedIndex changed.
1602
1603         Reviewed by Adele.
1604
1605         * platform/win/PopupMenuWin.cpp:
1606         (WebCore::PopupMenu::updateFromElement): Update the focused index from
1607         the client's selected index.
1608         (WebCore::PopupWndProc): When we receive a WM_CHAR message for a
1609         printable character, manufacture a WM_KEYDOWN message for it and post
1610         both that and the current WM_CHAR message to the WebView.
1611
1612 2007-11-15  Brady Eidson  <beidson@apple.com>
1613
1614         Build fix
1615
1616         * storage/DatabaseTracker.cpp:
1617         (WebCore::DatabaseTracker::fullPathForDatabase):
1618         (WebCore::DatabaseTracker::databaseNamesForOrigin):
1619
1620 2007-11-15  Brady Eidson  <beidson@apple.com>
1621
1622         Reviewed by John and Sam
1623
1624         Stubbing out everything required for a WebKit API for databases
1625
1626         Biggest change in WebCore is that we passed around SecurityOriginData as the representation
1627         of a SecurityOrigin, instead of a String or a SecurityOrigin itself (which is an opaque object
1628         that has a different purpose besides just hanging on to the data)
1629
1630         * WebCore.base.exp:
1631         * WebCore.xcodeproj/project.pbxproj:
1632
1633         * platform/SecurityOrigin.cpp:
1634         * platform/SecurityOrigin.h:
1635         * platform/SecurityOriginData.h: Added.  Simple object to encapsulate the 3
1636           pieces of data in the SecurityOrigin tuple
1637         (WebCore::SecurityOriginData::SecurityOriginData):
1638         (WebCore::SecurityOriginData::protocol):
1639         (WebCore::SecurityOriginData::host):
1640         (WebCore::SecurityOriginData::port):
1641         (WebCore::SecurityOriginData::toString): Simple concatenation of the 3 components,
1642           colon separated
1643
1644         * storage/Database.cpp:
1645         (WebCore::Database::Database): Use SecurityOriginData instead
1646
1647         * storage/DatabaseTracker.cpp:
1648         (WebCore::DatabaseTracker::fullPathForDatabase):
1649         (WebCore::DatabaseTracker::databaseNamesForOrigin):
1650         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
1651         (WebCore::DatabaseTracker::deleteDatabase):
1652         * storage/DatabaseTracker.h:
1653
1654         * storage/DatabaseTrackerClient.h: Added.  For dispatching notifications up to WebKit
1655         (WebCore::DatabaseTrackerClient::~DatabaseTrackerClient):2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>
1656
1657 2007-11-15  Jon Honeycutt  <jhoneycutt@apple.com>
1658
1659         Reviewed by Anders.
1660
1661         NP_ASFILEONLY streams should not buffer data in m_deliveryData.
1662
1663         * plugins/win/PluginStreamWin.cpp:
1664         (WebCore::PluginStreamWin::didReceiveData):
1665
1666 2007-11-15  Justin Garcia  <justin.garcia@apple.com>
1667
1668         Reviewed by Adele Peterson.
1669
1670         <rdar://problem/5497643> Crash at Node::isDescendantOf when switching out of Edit HTML Source mode
1671         
1672         A textarea that contained the selection was removed but the selection wasn't cleared,
1673         and we'd crash in code that assumed a valid, in-document selection.
1674
1675         * editing/SelectionController.cpp:
1676         (WebCore::removingNodeRemovesPosition): Clear the selection if the node being removed is the
1677         shadowAncestorNode of the node that contains the position, not just if the node being removed
1678         contains that shadowAncestorNode.
1679
1680 2007-11-15  Nikolas Zimmermann  <zimmermann@kde.org>
1681
1682         Reviewed by Maciej.
1683
1684         Fix logic error: calculateGlyphBoundaries takes RTL text into account itself, no need to adjust offsets before.
1685
1686         * rendering/SVGInlineTextBox.cpp:
1687         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
1688         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
1689
1690 2007-11-15  Anders Carlsson  <andersca@apple.com>
1691
1692         Reviewed by Brady.
1693
1694         <rdar://problem/5562470>
1695         openDatabase does not work when the version string is empty
1696
1697         If the string is empty, pass a real empty string to sqlite3_bind_text16.
1698         
1699         * platform/sql/SQLiteStatement.cpp:
1700         (WebCore::SQLiteStatement::bindText):
1701
1702 2007-11-15  Anders Carlsson  <andersca@apple.com>
1703
1704         Reviewed by Brady.
1705
1706         Get rid of SQLiteStatement::bindText and rename bindText16 to bindText.
1707         Remove the copy parameter from bindText and bindBlob and always copy passed in data instead.
1708
1709         * loader/icon/IconDatabase.cpp:
1710         (WebCore::IconDatabase::setIconIDForPageURLInSQLDatabase):
1711         (WebCore::IconDatabase::removePageURLFromSQLDatabase):
1712         (WebCore::IconDatabase::getIconIDForIconURLFromSQLDatabase):
1713         (WebCore::IconDatabase::addIconURLToSQLDatabase):
1714         (WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
1715         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase):
1716         * platform/sql/SQLiteStatement.cpp:
1717         (WebCore::SQLiteStatement::prepare):
1718         * platform/sql/SQLiteStatement.h:
1719         * storage/Database.cpp:
1720         (WebCore::setTextValueInDatabase):
1721         * storage/DatabaseTracker.cpp:
1722         (WebCore::DatabaseTracker::fullPathForDatabase):
1723         (WebCore::DatabaseTracker::databaseNamesForOrigin):
1724         (WebCore::DatabaseTracker::addDatabase):
1725
1726 2007-11-14  Brady Eidson <beidson@apple.com>
1727
1728         Rubberstamped by Sam
1729
1730         * platform/SecurityOrigin.h: Lets make this an unsigned short and *not* rule out half the possible ports?
1731
1732 2007-11-14  Alexey Proskuryakov  <ap@webkit.org>
1733
1734         Reviewed by Justin Garcia.
1735
1736         http://bugs.webkit.org/show_bug.cgi?id=15781
1737         REGRESSION: Ligatures fail to form when typing in Devanagari (because WebKit can't handle
1738         a marked range that covers half of a composed character sequence)
1739
1740         Test: platform/mac/editing/input/devanagari-ligature.html
1741
1742         This fix is somewhat of a hack, as it asks editing commands to work with invalid selections.
1743         However, this is not entirely new for them, as Roman accents are typed in a similar manner.
1744
1745         In the future, we probably want to make commands work with ranges (or Positions explicitly).
1746
1747         * editing/Editor.cpp:
1748         (WebCore::Editor::selectComposition): Force selection to composition range.
1749         * editing/InsertTextCommand.cpp:
1750         (WebCore::InsertTextCommand::input): Force ending selection to inserted text range.
1751
1752 2007-11-14  Beth Dakin  <bdakin@apple.com>
1753
1754         Reviewed by Hyatt.
1755
1756         Fix for <rdar://problem/5540855> REGRESSION: Combination of client-
1757         side image map and <a> tag is not working properly (15522)
1758
1759         * html/HTMLMapElement.cpp:
1760         (WebCore::HTMLMapElement::checkDTD): Allow <map> to have both block 
1761         and inline children rather than just block children. This matches 
1762         Firefox. 
1763
1764 2007-11-14  Justin Garcia  <justin.garcia@apple.com>
1765
1766         Reviewed by Alexey Proskuryakov.
1767
1768         <rdar://problem/5546763> CrashTracer: [USER] 362 crashes at WebCore::DeleteSelectionCommand::mergeParagraphs
1769
1770         * editing/DeleteSelectionCommand.cpp:
1771         (WebCore::DeleteSelectionCommand::handleGeneralDelete): 
1772         Removed an irrelevant FIXME.
1773         (WebCore::DeleteSelectionCommand::mergeParagraphs): If the block that contained the end of the selection
1774         hasn't been removed but has been emptied by deletion, we would to try and fail to create a VisiblePosition
1775         inside that block, which could lead to a crash.  If that happens, there's no content in the block to move,
1776         so just remove the block and return.
1777         Preserve m_needPlaceholder during the call to moveParagraphs, since it may change it and since it does
1778         its own placeholder insertion when necessary.
1779         (WebCore::DeleteSelectionCommand::doApply): No need to check m_needPlaceholder before calling mergeParagraphs,
1780         because it handles preserving m_needPlaceholder when it calls moveParagraphs.
1781         
1782 2007-11-14  Timothy Hatcher  <timothy@apple.com>
1783
1784         Reviewed by Adam.
1785
1786         Bug 14380: Long DOM ancestry breadcrumb lists get cut off
1787         http://bugs.webkit.org/show_bug.cgi?id=14380
1788
1789         The breadcumbs will now be compacted and collapsed if there isn't enough room
1790         to show everything. The collapsing algorithm always affects the crumbs that
1791         are farthest away from the selected or hovered crumb first.
1792
1793         * page/inspector/DocumentPanel.js:
1794         * page/inspector/inspector.css:
1795
1796 2007-11-14  Anders Carlsson  <andersca@apple.com>
1797
1798         Use the correct include path.
1799         
1800         * platform/Cursor.h:
1801         * plugins/win/PluginPackageWin.h:
1802         * plugins/win/PluginStreamWin.h:
1803
1804 2007-11-13  Brady Eidson  <beidson@apple.com>
1805
1806         Reviewed by Adam
1807
1808         http://bugs.webkit.org/show_bug.cgi?id=15976 - ASSERT/crash when SQLTransactionCallback throws an exception
1809
1810         * storage/SQLTransaction.cpp:
1811         (WebCore::SQLTransaction::deliverTransactionCallback): Make a transaction error for the case where the 
1812           SQLTransactionCallback fails
1813         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Don't assert on the error callback, but null check it
1814           and make the commit/rollback decision accordingly
1815
1816 2007-11-13  Oliver Hunt  <oliver@apple.com>
1817
1818         Reviewed by Anders.
1819
1820         <rdar://problem/5365030> calling dataWithPDFInsideRect on an SVG with a gradient crashes (14780)
1821
1822         When drawing directly to PDF CG may delay the use of the gradient function until outside our
1823         standard drawing path, which in turn could let us invalidate the caches before they were used.
1824
1825         To work around this we now store the cached stops in a RefCounted object, so that we can ensure
1826         that cache exists as long as required.
1827         
1828         * platform/graphics/svg/SVGPaintServerGradient.cpp:
1829         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
1830         * platform/graphics/svg/SVGPaintServerGradient.h:
1831         * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
1832         (WebCore::cgGradientCallback):
1833         (WebCore::CGShadingRefForLinearGradient):
1834         (WebCore::CGShadingRefForRadialGradient):
1835         (WebCore::SVGPaintServerGradient::updateQuartzGradientStopsCache):
1836
1837 2007-11-13  Anders Carlsson  <andersca@apple.com>
1838
1839         Fix Windows build.
1840         
1841         * platform/Cursor.h:
1842         * plugins/win/PluginPackageWin.h:
1843         * plugins/win/PluginStreamWin.h:
1844
1845 2007-11-13  Geoffrey Garen  <ggaren@apple.com>
1846
1847         Reviewed by Anders Carlsson.
1848
1849         Renamed Shared to RefCounted.
1850
1851         * ForwardingHeaders/wtf/RefCounted.h: Copied from WebCore/ForwardingHeaders/wtf/Shared.h.
1852         * ForwardingHeaders/wtf/Shared.h: Removed.
1853         * bindings/js/JSSVGPODTypeWrapper.h:
1854         * css/CSSFontFace.h:
1855         * css/CSSRuleList.h:
1856         * css/Counter.h:
1857         * css/Pair.h:
1858         * css/Rect.h:
1859         * css/StyleBase.h:
1860         * css/StyleSheetList.h:
1861         * dom/Attribute.h:
1862         * dom/Clipboard.h:
1863         * dom/DOMImplementation.h:
1864         * dom/Event.h:
1865         * dom/EventListener.h:
1866         * dom/NamedNodeMap.h:
1867         * dom/NodeFilter.h:
1868         * dom/NodeFilterCondition.h:
1869         * dom/NodeList.h:
1870         * dom/QualifiedName.h:
1871         * dom/Range.h:
1872         * dom/RangeException.h:
1873         * dom/RegisteredEventListener.h:
1874         * dom/Traversal.h:
1875         * editing/EditCommand.h:
1876         * history/BackForwardList.h:
1877         * history/CachedPage.h:
1878         * history/HistoryItem.cpp:
1879         (WebCore::HistoryItem::HistoryItem):
1880         * history/HistoryItem.h:
1881         * html/CanvasGradient.h:
1882         * html/CanvasPattern.h:
1883         * html/CanvasRenderingContext2D.h:
1884         * html/CanvasStyle.h:
1885         * html/HTMLCollection.h:
1886         * html/MediaError.h:
1887         * html/TimeRanges.h:
1888         * html/VoidCallback.h:
1889         * ksvg2/css/SVGRenderStyle.cpp:
1890         (WebCore::SVGRenderStyle::SVGRenderStyle):
1891         * ksvg2/css/SVGRenderStyle.h:
1892         * ksvg2/css/SVGRenderStyleDefs.cpp:
1893         (StyleFillData::StyleFillData):
1894         (StyleStrokeData::StyleStrokeData):
1895         (StyleStopData::StyleStopData):
1896         (StyleTextData::StyleTextData):
1897         (StyleClipData::StyleClipData):
1898         (StyleMaskData::StyleMaskData):
1899         (StyleMarkerData::StyleMarkerData):
1900         (StyleMiscData::StyleMiscData):
1901         * ksvg2/css/SVGRenderStyleDefs.h:
1902         * ksvg2/svg/SVGAngle.cpp:
1903         (WebCore::SVGAngle::SVGAngle):
1904         * ksvg2/svg/SVGAngle.h:
1905         * ksvg2/svg/SVGAnimatedTemplate.h:
1906         * ksvg2/svg/SVGElementInstanceList.h:
1907         * ksvg2/svg/SVGException.h:
1908         * ksvg2/svg/SVGList.h:
1909         * ksvg2/svg/SVGPathSeg.h:
1910         * ksvg2/svg/SVGPreserveAspectRatio.cpp:
1911         (WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio):
1912         * ksvg2/svg/SVGPreserveAspectRatio.h:
1913         * ksvg2/svg/SVGRenderingIntent.h:
1914         * ksvg2/svg/SVGTransform.h:
1915         * ksvg2/svg/SVGUnitTypes.h:
1916         * loader/DocumentLoader.h:
1917         * loader/FormState.h:
1918         * loader/ResourceLoader.h:
1919         * loader/TextResourceDecoder.h:
1920         * loader/icon/IconRecord.h:
1921         * page/BarInfo.h:
1922         * page/Console.h:
1923         * page/DOMSelection.h:
1924         * page/DOMWindow.h:
1925         * page/Frame.h:
1926         * page/History.h:
1927         * page/InspectorController.cpp:
1928         * page/Plugin.h:
1929         * page/Screen.h:
1930         * platform/ArrayImpl.h:
1931         * platform/CString.h:
1932         * platform/Cursor.h:
1933         * platform/DeprecatedValueListImpl.cpp:
1934         (WebCore::DeprecatedValueListImpl::Private::Private):
1935         * platform/FileChooser.h:
1936         * platform/FontFallbackList.h:
1937         * platform/FontFamily.cpp:
1938         (WebCore::FontFamily::FontFamily):
1939         * platform/FontFamily.h:
1940         * platform/FontSelector.h:
1941         * platform/GlyphPageTreeNode.h:
1942         * platform/PopupMenu.h:
1943         * platform/RegularExpression.cpp:
1944         * platform/ScrollBar.h:
1945         * platform/SharedBuffer.h:
1946         * platform/StringImpl.h:
1947         * platform/graphics/Icon.h:
1948         * platform/graphics/svg/SVGResource.h:
1949         * platform/network/FormData.cpp:
1950         (WebCore::FormData::FormData):
1951         * platform/network/FormData.h:
1952         * platform/network/ResourceHandle.h:
1953         * platform/network/ResourceHandleClient.h:
1954         * rendering/RenderStyle.cpp:
1955         (WebCore::StyleSurroundData::StyleSurroundData):
1956         (WebCore::StyleBoxData::StyleBoxData):
1957         (WebCore::StyleVisualData::StyleVisualData):
1958         (WebCore::StyleBackgroundData::StyleBackgroundData):
1959         (WebCore::StyleMarqueeData::StyleMarqueeData):
1960         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
1961         (WebCore::StyleMultiColData::StyleMultiColData):
1962         (WebCore::StyleTransformData::StyleTransformData):
1963         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
1964         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1965         (WebCore::StyleInheritedData::StyleInheritedData):
1966         * rendering/RenderStyle.h:
1967         * rendering/SVGCharacterLayoutInfo.h:
1968         (WebCore::SVGCharOnPath::SVGCharOnPath):
1969         * storage/SQLResultSetRowList.h:
1970         * xml/DOMParser.h:
1971         * xml/XMLHttpRequest.h:
1972         * xml/XMLSerializer.h:
1973         * xml/XPathEvaluator.h:
1974         * xml/XPathExpression.h:
1975         * xml/XPathNSResolver.h:
1976         * xml/XPathResult.h:
1977         * xml/XPathValue.h:
1978         * xml/XSLTProcessor.h:
1979
1980 2007-11-13  Brady Eidson  <beidson@apple.com>
1981
1982         Reviewed by Mark Rowe
1983
1984         Remove errantly added files, and fix the idl (for reference's sake)
1985
1986         * storage/JSCustomSQLStatementCallback.h: Removed.
1987         * storage/JSCustomSQLStatementErrorCallback.h: Removed.
1988         * storage/JSCustomSQLTransactionCallback.h: Removed.
1989         * storage/JSCustomSQLTransactionErrorCallback.h: Removed.
1990         * storage/SQLStatementCallback.idl:
1991
1992 2007-11-13  Adam Roben  <aroben@apple.com>
1993
1994         Fix a bug and improve upon Brady's fix
1995
1996         Reviewed by Anders.
1997
1998         * bindings/js/JSSQLTransactionCustom.cpp:
1999         (WebCore::JSSQLTransaction::executeSql): Made the code a little
2000         clearer and more correct.
2001         * loader/icon/IconDatabase.cpp: Put parentheses around the expansion
2002         of IS_ICON_SYNC_THREAD() so that ASSERT_NOT_SYNC_THREAD() does the
2003         comparison it meant to.
2004
2005 2007-11-13  Sam Weinig  <sam@webkit.org>
2006
2007         Fix Qt and Gtk builds.
2008
2009         * WebCore.pro: Remove non-generated idl files.
2010
2011 2007-11-13  Mark Rowe  <mrowe@apple.com>
2012
2013         Remove removed file from the project.
2014
2015         * WebCore.pro:
2016
2017 2007-11-13  Brady Eidson  <beidson@apple.com>
2018
2019         Release build fix
2020
2021         * bindings/js/JSSQLTransactionCustom.cpp:
2022         (WebCore::JSSQLTransaction::executeSql):
2023
2024 2007-11-13  Adam Roben  <aroben@apple.com>
2025
2026         Add WindowMessageBroadcaster
2027
2028         This class is used to listen in on messages sent to HWNDs. Multiple
2029         WindowMessageListeners can be notified about messages sent to a single
2030         HWND, and one WindowMessageListener can listen to messages from
2031         multiple HWNDs.
2032
2033         Reviewed by Ada.
2034
2035         * WebCore.vcproj/WebCore.vcproj: Added new files to project.
2036         * platform/win/WindowMessageBroadcaster.cpp: Added.
2037         (WebCore::instancesMap): Static helper.
2038         (WebCore::WindowMessageBroadcaster::addListener): Registers a listener
2039         for a particular HWND.
2040         (WebCore::WindowMessageBroadcaster::removeListener): Removes a
2041         listener for a particular HWND.
2042         (WebCore::WindowMessageBroadcaster::WindowMessageBroadcaster):
2043         (WebCore::WindowMessageBroadcaster::~WindowMessageBroadcaster):
2044         (WebCore::WindowMessageBroadcaster::destroy): Removes this broadcaster
2045         from the instancesMap, removes all of its listeners, unsubclasses the
2046         window, and deletes the broadcaster.
2047         (WebCore::WindowMessageBroadcaster::unsubclassWindow): Unsubclasses
2048         the window (which means that SubclassedWndProc won't be called again
2049         for this window).
2050         (WebCore::WindowMessageBroadcaster::SubclassedWndProc): Notifies all
2051         the listeners about every message sent to the HWND
2052         * platform/win/WindowMessageBroadcaster.h: Added.
2053         (WebCore::WindowMessageBroadcaster::listeners):
2054         (WebCore::WindowMessageBroadcaster::originalWndProc):
2055         * platform/win/WindowMessageListener.h: Added.
2056
2057 2007-11-13  Geoffrey Garen  <ggaren@apple.com>
2058
2059         Reviewed by Sam Weinig.
2060
2061         Moved Shared.h into wtf so it could be used in more places. Retained 
2062         TreeShared, but moved it to its own file, TreeShared.h.
2063
2064         * ForwardingHeaders/wtf/Shared.h: Added.
2065         * WebCore.xcodeproj/project.pbxproj:
2066         * bindings/js/JSSVGPODTypeWrapper.h:
2067         * css/CSSFontFace.h:
2068         * css/CSSRuleList.h:
2069         * css/Counter.h:
2070         * css/Pair.h:
2071         * css/Rect.h:
2072         * css/StyleBase.h:
2073         * css/StyleSheetList.h:
2074         * dom/Clipboard.h:
2075         * dom/DOMImplementation.h:
2076         * dom/Event.h:
2077         * dom/EventListener.h:
2078         * dom/NamedNodeMap.h:
2079         * dom/NodeFilterCondition.h:
2080         * dom/NodeList.h:
2081         * dom/Range.h:
2082         * dom/RangeException.h:
2083         * dom/RegisteredEventListener.h:
2084         * dom/Traversal.h:
2085         * history/BackForwardList.h:
2086         * history/CachedPage.h:
2087         * history/HistoryItem.h:
2088         * html/CanvasGradient.h:
2089         * html/CanvasPattern.h:
2090         * html/HTMLCollection.h:
2091         * html/MediaError.h:
2092         * html/TimeRanges.h:
2093         * html/VoidCallback.h:
2094         * ksvg2/css/SVGRenderStyleDefs.h:
2095         * ksvg2/svg/SVGAnimatedTemplate.h:
2096         * ksvg2/svg/SVGElementInstanceList.h:
2097         * ksvg2/svg/SVGList.h:
2098         * ksvg2/svg/SVGPathSeg.h:
2099         * ksvg2/svg/SVGPreserveAspectRatio.h:
2100         * ksvg2/svg/SVGRenderingIntent.h:
2101         * ksvg2/svg/SVGTransform.h:
2102         * ksvg2/svg/SVGUnitTypes.h:
2103         * loader/DocumentLoader.h:
2104         * loader/FormState.h:
2105         * loader/ResourceLoader.h:
2106         * loader/TextResourceDecoder.h:
2107         * loader/icon/IconRecord.h:
2108         * page/BarInfo.h:
2109         * page/Console.h:
2110         * page/DOMSelection.h:
2111         * page/DOMWindow.h:
2112         * page/History.h:
2113         * page/InspectorController.cpp:
2114         * page/Plugin.h:
2115         * page/Screen.h:
2116         * platform/ArrayImpl.h:
2117         * platform/CString.h:
2118         * platform/DeprecatedValueListImpl.cpp:
2119         * platform/FontFallbackList.h:
2120         * platform/FontFamily.h:
2121         * platform/FontSelector.h:
2122         * platform/GlyphPageTreeNode.h:
2123         * platform/PopupMenu.h:
2124         * platform/RegularExpression.cpp:
2125         * platform/ScrollBar.h:
2126         * platform/Shared.h: Removed.
2127         * platform/SharedBuffer.h:
2128         * platform/StringImpl.h:
2129         * platform/graphics/Icon.h:
2130         * platform/graphics/svg/SVGResource.h:
2131         * platform/network/FormData.h:
2132         * platform/network/ResourceHandleClient.h:
2133         * rendering/RenderStyle.h:
2134         * rendering/SVGCharacterLayoutInfo.h:
2135         * storage/SQLResultSetRowList.h:
2136         * xml/DOMParser.h:
2137         * xml/XMLSerializer.h:
2138         * xml/XPathEvaluator.h:
2139         * xml/XPathExpression.h:
2140         * xml/XPathNSResolver.h:
2141         * xml/XPathResult.h:
2142
2143 2007-11-13  Brady Eidson  <beidson@apple.com>
2144
2145         JS bindings by Anders, reviewed by Brady
2146         WebCore changes by Brady, reviewed by Anders and Tim
2147
2148         Adapt to the new iteration of the HTML5 client-side storage spec.
2149
2150         Based largely on implementation feedback we generated in landing our first version of this API and also
2151         on the input of others in the community, the database spec went through a large overhaul that addresses
2152         many concerns.  Amongst other changes/improvements:
2153         - SQLTransaction object is added and all transactions are explicit.  In addition, since the API manages
2154           transactions explicitly, transaction-related language in SQL statements is disallowed
2155         - executeSql() is now on a transaction object instead of the database object.
2156         - Database.changeVersion() now takes place within the context of a transaction.  Therefore the version 
2157           change can be atomic along with the statements that modify the DB schema
2158
2159         Most of the logic now takes place during the "transaction steps," which the specification clearly lays out
2160         as a chain of events on the SQLTransaction object where processing is handed off between being processed 
2161         asynchronously and calling back up to javascript.  To accomplish this voodoo, SQLTransaction has a series of 
2162         methods that roughly match up with the "transaction steps" and it keeps a pointer to the next step.
2163
2164         * DerivedSources.make:
2165         * WebCore.xcodeproj/project.pbxproj:
2166
2167         * bindings/js/JSDatabaseCustom.cpp:
2168         (WebCore::JSDatabase::changeVersion): Adapt to the new API
2169         (WebCore::JSDatabase::transaction): Added
2170
2171         * bindings/js/JSSQLTransactionCustom.cpp: Added.
2172         (WebCore::JSSQLTransaction::executeSql): Added
2173
2174         * page/DOMWindow.cpp:
2175         (WebCore::DOMWindow::openDatabase): Add the new arguments
2176         * page/DOMWindow.h:
2177         * page/DOMWindow.idl:
2178
2179         * page/inspector/DatabasePanel.js: Use the new API
2180
2181         * storage/ChangeVersionWrapper.cpp: Added.  Implementation of "SQLTransactionWrapper" that enforces
2182           changing the version of the database
2183         (WebCore::ChangeVersionWrapper::ChangeVersionWrapper):
2184         (WebCore::ChangeVersionWrapper::performPreflight):
2185         (WebCore::ChangeVersionWrapper::performPostflight):
2186         * storage/ChangeVersionWrapper.h: Added.
2187         (WebCore::ChangeVersionWrapper::sqlError):
2188
2189         * storage/Database.cpp: Removed the "main thread" and "background thread" sqlite handles as all sqlite operations can now
2190           happen solely on the background thread - most of these changes result from that change
2191         (WebCore::Database::Database): Removed an obsolete FIXME
2192         (WebCore::Database::openAndVerifyVersion): 
2193         (WebCore::Database::getVersionFromDatabase):
2194         (WebCore::Database::setVersionInDatabase):
2195         (WebCore::Database::versionMatchesExpected): Atomically guarantee that the current version and expected version are the same
2196         (WebCore::Database::performOpenAndVerify):
2197         (WebCore::Database::performTransactionStep): Added, as a hook for the DatabaseTransactionTask on the DatabaseThread
2198         (WebCore::Database::changeVersion): Changed for the new API from JS
2199         (WebCore::Database::transaction): Added, for the new API from JS
2200         (WebCore::Database::scheduleTransaction): Add a transaction to this Database's transaction queue
2201         (WebCore::Database::scheduleTransactionStep): Schedule the current transaction to be called on the background thread
2202         (WebCore::Database::scheduleTransactionCallback): Schedule the current transaction to perform a callback on the main thread
2203         (WebCore::Database::performGetTableNames):
2204         (WebCore::Database::deliverAllPendingCallbacks):
2205         (WebCore::Database::deliverPendingCallback):
2206         (WebCore::Database::setExpectedVersion):
2207         * storage/Database.h: 
2208         * storage/Database.idl:
2209
2210         * storage/DatabaseTask.cpp:  Changed DatabaseTask to create a mutex on demand, and use the existence of that mutex
2211           to replace the m_synchronous flag
2212         (WebCore::DatabaseTask::performTask):
2213         (WebCore::DatabaseTask::lockForSynchronousScheduling):
2214         (WebCore::DatabaseTask::waitForSynchronousCompletion):
2215         (WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
2216         * storage/DatabaseTask.h:
2217
2218         * storage/SQLError.h: New API object
2219
2220         * storage/SQLResultSet.cpp:
2221         (WebCore::SQLResultSet::SQLResultSet): Small changes to the API object
2222         * storage/SQLResultSet.h:
2223         * storage/SQLResultSet.idl:
2224
2225         * storage/SQLStatement.cpp: Added.
2226         (WebCore::SQLStatement::SQLStatement):
2227         (WebCore::SQLStatement::execute): Actually execute the sql statement on the SQLiteDatabase if it's still valid
2228         (WebCore::SQLStatement::setVersionMismatchedError): Flag this statement as bad before it even starts in case
2229           of an actual version vs. expected version mismatch
2230         (WebCore::SQLStatement::performCallback): Call the right callback (SQLStatement or SQLStatementError) for this statement
2231         * storage/SQLStatement.h: Added.
2232         (WebCore::SQLStatement::hasStatementCallback):
2233         (WebCore::SQLStatement::hasStatementErrorCallback):
2234         (WebCore::SQLStatement::sqlError): Get the error for this statement, if any
2235
2236         * storage/SQLTransaction.cpp: Added.
2237         (WebCore::SQLTransaction::SQLTransaction):
2238         (WebCore::SQLTransaction::executeSQL): Entry point for the API from JS
2239         (WebCore::SQLTransaction::enqueueStatement): Add a new statement onto the queue
2240         (WebCore::SQLTransaction::performNextStep): Call the method for the next step
2241         (WebCore::SQLTransaction::performPendingCallback): Call the method for the pending callback
2242         (WebCore::SQLTransaction::openTransactionAndPreflight): Open a transaction to the database and preflight 
2243           using the SQLTransactionWrapper, if any
2244         (WebCore::SQLTransaction::deliverTransactionCallback): Deliver the transaction callback to the javascript thread
2245         (WebCore::SQLTransaction::scheduleToRunStatements): Convinience to schedule this transaction on the database thread 
2246           and make runStatements() the next step
2247         (WebCore::SQLTransaction::runStatements): Start running the sql statements queued up for this transaction 
2248         (WebCore::SQLTransaction::getNextStatement): Bring the next statement off the queue
2249         (WebCore::SQLTransaction::runCurrentStatement): Execute the current statement
2250         (WebCore::SQLTransaction::deliverStatementCallback): Deliver the SQLStatementCallback for this statement
2251         (WebCore::SQLTransaction::postflightAndCommit): Postflight the transaction using SQLTransactionWrapper and commit it
2252         (WebCore::SQLTransaction::handleTransactionError): Make the right call for any error that occurred on the Transaction
2253         (WebCore::SQLTransaction::deliverTransactionErrorCallback): Deliver the SQLTransactionErrorCallback
2254         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): Either do a final commit or rollback to cleanup the
2255           transaction after it error'ed out
2256         * storage/SQLTransaction.h:
2257         (WebCore::SQLTransactionWrapper::~SQLTransactionWrapper): 
2258         (WebCore::SQLTransaction::database):
2259         * storage/SQLTransaction.idl:
2260
2261         The following were made obsolete by the new version of the API:
2262         * bindings/js/JSCustomSQLCallback.cpp: Removed.
2263         * bindings/js/JSCustomSQLCallback.h: Removed.
2264         * bindings/js/JSCustomVersionChangeCallback.cpp: Removed.
2265         * bindings/js/JSCustomVersionChangeCallback.h: Removed.
2266         * storage/DatabaseCallback.cpp: Removed.
2267         * storage/DatabaseCallback.h: Removed.
2268         * storage/SQLCallback.h: Removed.
2269         * storage/SQLCallback.idl: Removed.
2270         * storage/VersionChangeCallback.h: Removed.
2271         * storage/VersionChangeCallback.idl: Removed.
2272
2273 2007-11-13  Dan Bernstein  <mitz@apple.com>
2274
2275         Reviewed by Beth Dakin.
2276
2277         - fix <rdar://problem/5551163> REGRESSION: Cursor does not change to arrow on "X" button in google maps, making it hard to click
2278
2279         * css/html4.css: Added a 'cursor: auto' rule for links.
2280         * manual-tests/link-cursor-auto.html: Added.
2281
2282 2007-11-13  Dan Bernstein  <mitz@apple.com>
2283
2284         Reviewed by Beth Dakin.
2285
2286         - fix <rdar://problem/5516272> Reproducible crash in RenderObject::setStyle involving going Back from a non-HTML document (Bookmarks view, PDF view)
2287
2288         The root cause for the crash is that when a non-HTML view enters the
2289         frame, the frame's document pointer keeps pointing at the last HTML-type
2290         document it contained. This patch does not address the root cause, but
2291         makes changes to account for that condition.
2292
2293         * loader/FrameLoader.cpp:
2294         (WebCore::FrameLoader::receivedMainResourceError): Do not change the
2295         frame's current document's page cache state here.
2296         (WebCore::FrameLoader::invalidateCurrentItemCachedPage): If the frame's
2297         current document is in fact the history item being invalidated, then
2298         set its page cache state here.
2299
2300 2007-11-12  Antti Koivisto  <antti@apple.com>
2301
2302         Reviewed by Adele.
2303
2304         Fix that 'timeupdate' and 'waiting' events were never dispatched.
2305         
2306         Add explicit m_paused attribute instead of trying to derive paused state from
2307         underlying media. Call updatePlayState() to start/stop media playback
2308         when any attribute that affects active playback state changes. This matches 
2309         specification text.
2310         
2311         Test: http/tests/media/video-play-stall.html
2312
2313         * html/HTMLMediaElement.cpp:
2314         (WebCore::HTMLMediaElement::HTMLMediaElement):
2315         (WebCore::HTMLMediaElement::setReadyState):
2316         (WebCore::HTMLMediaElement::paused):
2317         (WebCore::HTMLMediaElement::play):
2318         (WebCore::HTMLMediaElement::pause):
2319         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
2320         (WebCore::HTMLMediaElement::movieDidEnd):
2321         (WebCore::HTMLMediaElement::updatePlayState):
2322         * html/HTMLMediaElement.h:
2323
2324 2007-11-13  John Sullivan  <sullivan@apple.com>
2325
2326         Reviewed by Darin.
2327
2328         removed recently-added PreferredType concept; we found a better way to do what
2329         ths was accomplishing
2330
2331         * bridge/WindowFeatures.h:
2332         (WebCore::WindowFeatures::WindowFeatures):
2333         removed definition of PreferredType
2334                         
2335         * page/ContextMenuController.cpp:
2336         (WebCore::openNewWindow):
2337         removed use of PreferredType
2338
2339 2007-11-12  Alexey Proskuryakov  <ap@webkit.org>
2340
2341         Reviewed by Darin.
2342
2343         http://bugs.webkit.org/show_bug.cgi?id=15954
2344         Move DOM Selection operations out of SelectionController
2345
2346         No change in functionality.
2347
2348         * editing/SelectionController.cpp:
2349         (WebCore::SelectionController::setSelectedRange):
2350         * editing/SelectionController.h:
2351         * page/DOMSelection.cpp:
2352         (WebCore::DOMSelection::anchorNode):
2353         (WebCore::DOMSelection::baseNode):
2354         (WebCore::DOMSelection::anchorOffset):
2355         (WebCore::DOMSelection::baseOffset):
2356         (WebCore::DOMSelection::focusNode):
2357         (WebCore::DOMSelection::extentNode):
2358         (WebCore::DOMSelection::focusOffset):
2359         (WebCore::DOMSelection::extentOffset):
2360         (WebCore::DOMSelection::isCollapsed):
2361         (WebCore::DOMSelection::type):
2362         (WebCore::DOMSelection::rangeCount):
2363         (WebCore::DOMSelection::collapse):
2364         (WebCore::DOMSelection::collapseToEnd):
2365         (WebCore::DOMSelection::collapseToStart):
2366         (WebCore::DOMSelection::empty):
2367         (WebCore::DOMSelection::setBaseAndExtent):
2368         (WebCore::DOMSelection::setPosition):
2369         (WebCore::DOMSelection::modify):
2370         (WebCore::DOMSelection::extend):
2371         (WebCore::DOMSelection::getRangeAt):
2372         (WebCore::DOMSelection::removeAllRanges):
2373         (WebCore::DOMSelection::addRange):
2374         (WebCore::DOMSelection::deleteFromDocument):
2375         (WebCore::DOMSelection::containsNode):
2376         (WebCore::DOMSelection::selectAllChildren):
2377         (WebCore::DOMSelection::toString):
2378         * page/DOMSelection.h:
2379         Moved all DOM API methods to DOMSelection; changed SelectionController::setSelectedRange()
2380         to return its result directly instead of via an ExceptionCode that no caller wanted.
2381
2382         * editing/Editor.cpp:
2383         (WebCore::Editor::deleteRange):
2384         (WebCore::Editor::removeFormattingAndStyle):
2385         (WebCore::Editor::selectComposition):
2386         (WebCore::Editor::setComposition):
2387         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::defaultEventHandler):
2388         Adapted for SelectionController::setSelectedRange() now returning a bool.
2389         SelectionController::toString() is no longer avasilable, use plainText() explicitly.
2390
2391         * WebCore.base.exp: Changed SelectionController::setSelectedRange() signature.
2392
2393 2007-11-12  Dan Bernstein  <mitz@apple.com>
2394
2395         Reviewed by Darin Adler.
2396
2397         - <http://bugs.webkit.org/show_bug.cgi?id=15890>
2398           Most of www.aol.com still redraws unnecessarily when headline/photo section changes
2399
2400         Test: fast/repaint/invisible-objects.html
2401
2402         Avoid repainting invisible blocks if they are enclosed in a layer that
2403         contains no visible objects.
2404
2405         * rendering/RenderBlock.cpp:
2406         (WebCore::RenderBlock::layoutBlock):
2407         * rendering/RenderBox.cpp:
2408         (WebCore::RenderBox::absoluteClippedOverflowRect):
2409
2410 2007-11-12  Timothy Hatcher  <timothy@apple.com>
2411
2412         Reviewed by Mark Rowe.
2413
2414         Prevent selecting a word in the breadcrumb or the styles section when double
2415         clicking on a DOM node in the outline tree.
2416
2417         * page/inspector/DocumentPanel.js: Call preventDefault() when a mousedown event
2418           with a detail of 2 or higher comes in. This prevents the selection.
2419         * page/inspector/inspector.css: Mark the breadcrumb as user-select: none.
2420
2421 2007-11-12  Oliver Hunt  <oliver@apple.com>
2422
2423         Reviewed by John S.
2424
2425         <rdar://problem/5537289> REGRESSION: Dragging a link or an image from an IFrame causes the page to not respond to clicks afterwards (15460)
2426         
2427         EventHandler needs to reset these fields when a drag terminates, otherwise
2428         EventHandler is left in an inconsistent state when a drag is initiated on a
2429         page with multiple frames.
2430
2431         * page/EventHandler.cpp:
2432         (WebCore::EventHandler::cancelDragAndDrop):
2433         (WebCore::EventHandler::performDragAndDrop):
2434         (WebCore::EventHandler::clearDragState):
2435         * page/EventHandler.h:
2436
2437 2007-11-12  Oliver Hunt  <oliver@apple.com>
2438
2439         Reviewed by Darin and Antti.
2440
2441         Return behaviour for 0 sized pattern back to what it was prior to r27704
2442
2443         This change in behaviour broke two layout tests in DRT, so correcting it
2444         corrects existing tests.
2445
2446         * platform/graphics/cg/ImageBufferCG.cpp:
2447
2448 2007-11-12  Timothy Hatcher  <timothy@apple.com>
2449
2450         Reviewed by John.
2451
2452         <rdar://problem/5268311> REGRESSION (Safari 2-3): Exception thrown when calling -[WebDataSource subresources]
2453
2454         * page/mac/WebCoreFrameBridge.mm:
2455         (-[WebCoreFrameBridge getAllResourceDatas:andResponses:]):
2456         If the SharedBuffer is null insert an empty NSData instead of nil.
2457
2458 2007-11-12  Darin Adler  <darin@apple.com>
2459
2460         Reviewed by Tim.
2461
2462         - http://bugs.webkit.org/show_bug.cgi?id=15947
2463           speed up page loading a bit by inlining
2464
2465         * loader/FrameLoader.cpp: (WebCore::FrameLoader::isLocationChange):
2466         Factored out the slow case of isScheduledLocationChangePending into this.
2467
2468         * loader/FrameLoader.h:
2469         (WebCore::FrameLoader::isScheduledLocationChangePending): Added an
2470         inline check of the far and away most common case, where m_scheduledRedirection
2471         is 0; the rest is in the isLocationChange function.
2472
2473 2007-11-12  George Staikos  <staikos@kde.org>
2474
2475         Reviewed by Tim.
2476
2477         Extract the text match marker highlight color into RenderTheme instead
2478         of the hardcoded yellow.
2479
2480         * rendering/InlineTextBox.cpp:
2481         (WebCore::InlineTextBox::paintTextMatchMarker):
2482         * rendering/RenderTheme.cpp:
2483         (WebCore::RenderTheme::platformTextSearchHighlightColor):
2484         * rendering/RenderTheme.h:
2485
2486 2007-11-12  Mark Rowe  <mrowe@apple.com>
2487
2488         Fix deadlock on launch on the Mac.
2489
2490         * loader/icon/IconDatabase.cpp:
2491         (WebCore::IconDatabase::open): Restore unlock that was mistakenly removed in r27717.
2492
2493 2007-11-12  Justin Haygood  <jhaygood@reaktix.com>
2494
2495         Reviewed by Brady.
2496
2497         http://bugs.webkit.org/show_bug.cgi?id=15955
2498         Reimplement threading functions in IconDatabase and SQLiteDatabase in terms of the threading abstractions
2499
2500         * loader/icon/IconDatabase.cpp:
2501         (WebCore::IconDatabase::open):
2502         (WebCore::IconDatabase::close):
2503         * loader/icon/IconDatabase.h:
2504         * platform/sql/SQLiteDatabase.cpp:
2505         (WebCore::SQLiteDatabase::SQLiteDatabase):
2506         (WebCore::SQLiteDatabase::open):
2507         (WebCore::SQLiteDatabase::close):
2508         * platform/sql/SQLiteDatabase.h:
2509
2510 2007-11-12  Adam Roben  <aroben@apple.com>
2511
2512         Windows build fix
2513
2514         * config.h: Touch because VS apparently can't figure out which files
2515         depend on ResourceResponse.h.
2516         * WebCore.vcproj/WebCore.vcproj: Add ResourceResponseBase files to
2517         project and remove old ResourceResponse files.
2518
2519 2007-11-12  Julien Chaffraix  <julien.chaffraix@gmail.com>
2520
2521         Reviewed by Darin.
2522
2523         http://bugs.webkit.org/show_bug.cgi?id=15334
2524         Split ResourceResponse into platform specific files
2525
2526         * WebCore.base.exp:
2527         * WebCore.pro:
2528         * WebCore.vcproj/WebCore.vcproj:
2529         * WebCore.xcodeproj/project.pbxproj:
2530         * platform/network/ResourceResponse.cpp: Removed.
2531         * platform/network/ResourceResponse.h: Removed.
2532         * platform/network/ResourceResponseBase.cpp: Copied from platform/network/ResourceResponse.cpp.
2533         (WebCore::ResourceResponseBase::asResourceResponse):
2534         (WebCore::ResourceResponseBase::isHTTP):
2535         (WebCore::ResourceResponseBase::url):
2536         (WebCore::ResourceResponseBase::setUrl):
2537         (WebCore::ResourceResponseBase::mimeType):
2538         (WebCore::ResourceResponseBase::setMimeType):
2539         (WebCore::ResourceResponseBase::expectedContentLength):
2540         (WebCore::ResourceResponseBase::setExpectedContentLength):
2541         (WebCore::ResourceResponseBase::textEncodingName):
2542         (WebCore::ResourceResponseBase::setTextEncodingName):
2543         (WebCore::ResourceResponseBase::suggestedFilename):
2544         (WebCore::ResourceResponseBase::setSuggestedFilename):
2545         (WebCore::ResourceResponseBase::httpStatusCode):
2546         (WebCore::ResourceResponseBase::setHTTPStatusCode):
2547         (WebCore::ResourceResponseBase::httpStatusText):
2548         (WebCore::ResourceResponseBase::setHTTPStatusText):
2549         (WebCore::ResourceResponseBase::httpHeaderField):
2550         (WebCore::ResourceResponseBase::setHTTPHeaderField):
2551         (WebCore::ResourceResponseBase::httpHeaderFields):
2552         (WebCore::ResourceResponseBase::isAttachment):
2553         (WebCore::ResourceResponseBase::setExpirationDate):
2554         (WebCore::ResourceResponseBase::expirationDate):
2555         (WebCore::ResourceResponseBase::setLastModifiedDate):
2556         (WebCore::ResourceResponseBase::lastModifiedDate):
2557         (WebCore::ResourceResponseBase::updateResourceResponse):
2558         * platform/network/ResourceResponseBase.h: Copied from platform/network/ResourceResponse.h.
2559         (WebCore::ResourceResponseBase::ResourceResponseBase):
2560         * platform/network/cf/ResourceResponse.h: Added.
2561         (WebCore::ResourceResponse::ResourceResponse):
2562         * platform/network/curl/ResourceResponse.h: Added.
2563         (WebCore::ResourceResponse::ResourceResponse):
2564         (WebCore::ResourceResponse::doUpdateResourceResponse):
2565         * platform/network/mac/ResourceResponse.h: Added.
2566         (WebCore::ResourceResponse::ResourceResponse):
2567         * platform/network/qt/ResourceResponse.h: Added.
2568         (WebCore::ResourceResponse::ResourceResponse):
2569         (WebCore::ResourceResponse::doUpdateResourceResponse):
2570
2571 2007-11-11  Justin Haygood  <jhaygood@reaktix.com>
2572
2573         Reviewed by Adam Roben.
2574
2575         http://bugs.webkit.org/show_bug.cgi?id=15939
2576         Adds a currentThread API for use by SQLiteDatabase, etc.
2577
2578         * platform/Threading.h:
2579         * platform/ThreadingNone.cpp:
2580         (WebCore::currentThread):
2581         * platform/gtk/ThreadingGtk.cpp:
2582         (WebCore::identifierByGthreadHandle):
2583         (WebCore::):
2584         * platform/pthreads/ThreadingPthreads.cpp:
2585         (WebCore::identifierByPthreadHandle):
2586         (WebCore::currentThread):
2587
2588 2007-11-11  Dan Bernstein  <mitz@apple.com>
2589
2590         Reviewed by Adam Roben.
2591
2592         - fix http://bugs.webkit.org/show_bug.cgi?id=15942
2593           REGRESSION: Selecting "Edit Html" tab in Blogger causes crash (Assertion failed: isRange())
2594
2595         Test: editing/selection/cleared-by-relayout.html
2596
2597         * editing/Selection.cpp:
2598         (WebCore::Selection::toRange): Check if the selection has been cleared
2599         by updating layout.
2600
2601 2007-11-11  Darin Adler  <darin@apple.com>
2602
2603         Reviewed by Mark Rowe.
2604
2605         - fix line numbers that were off since my recent patch
2606
2607         * platform/SegmentedString.h:
2608         (WebCore::SegmentedSubstring::SegmentedSubstring): Reversed the sense of m_excludeLineNumbers
2609         and rename it to m_doNotExcludeLineNumbers.
2610         (WebCore::SegmentedSubstring::excludeLineNumbers): Updated.
2611         (WebCore::SegmentedSubstring::doNotExcludeLineNumbers): Added.
2612         (WebCore::SegmentedSubstring::setExcludeLineNumbers): Updated.
2613         (WebCore::SegmentedString::advance): Use doNotExcludeLineNumbers to reverse the sense and fix
2614         the regression, but keep the speediness. I accidentally had removed a ! here.
2615
2616         * platform/SegmentedString.cpp:
2617         (WebCore::SegmentedString::advanceSlowCase): Use doNotExcludeLineNumbers.
2618
2619 2007-11-11  Oliver Hunt  <oliver@apple.com>
2620
2621         Reviewed by Darin.
2622
2623         Fix for <rdar://problem/5585334> numfuzz: integer overflows opening
2624         malformed SVG file in WebCore::ImageBuffer::create. Add protection
2625         against a potential overflow.
2626
2627         * platform/graphics/cg/ImageBufferCG.cpp:
2628
2629 2007-11-11  Antti Koivisto  <antti@apple.com>
2630
2631         Reviewed by Darin.
2632
2633         Fix a bunch of cases where the exception code is checked by the function but is not zeroed first.
2634
2635         * bindings/js/kjs_binding.cpp:
2636         (KJS::setDOMException):
2637         * dom/Attr.cpp:
2638         (WebCore::Attr::setPrefix):
2639         * dom/Document.cpp:
2640         (WebCore::Document::createElement):
2641         * dom/Element.cpp:
2642         (WebCore::Element::setPrefix):
2643         * dom/Range.cpp:
2644         (WebCore::Range::setStart):
2645         (WebCore::Range::setEnd):
2646         (WebCore::Range::isPointInRange):
2647         (WebCore::Range::comparePoint):
2648         (WebCore::Range::compareBoundaryPoints):
2649         (WebCore::Range::deleteContents):
2650         (WebCore::Range::processContents):
2651         (WebCore::Range::extractContents):
2652         (WebCore::Range::insertNode):
2653         (WebCore::Range::setStartAfter):
2654         (WebCore::Range::setEndBefore):
2655         (WebCore::Range::setEndAfter):
2656         (WebCore::Range::selectNode):
2657         (WebCore::Range::surroundContents):
2658         (WebCore::Range::setStartBefore):
2659         * editing/TextIterator.cpp:
2660         (WebCore::TextIterator::TextIterator):
2661         * html/CanvasRenderingContext2D.cpp:
2662         (WebCore::CanvasRenderingContext2D::createPattern):
2663         * html/HTMLMediaElement.cpp:
2664         (WebCore::HTMLMediaElement::play):
2665         (WebCore::HTMLMediaElement::pause):
2666         * html/HTMLSelectElement.cpp:
2667         (WebCore::HTMLSelectElement::add):
2668         (WebCore::HTMLSelectElement::setOption):
2669         * xml/XPathEvaluator.cpp:
2670         (WebCore::XPathEvaluator::evaluate):
2671
2672 2007-11-11  Darin Adler  <darin@apple.com>
2673
2674         Reviewed by Mitz.
2675
2676         - http://bugs.webkit.org/show_bug.cgi?id=15945
2677           speed up GraphicsContextCG typical case by skipping roundToDevicePixels
2678
2679         * platform/graphics/cg/GraphicsContextCG.cpp:
2680         (WebCore::GraphicsContext::restorePlatformState): Clear the flag since we no
2681         longer know if the transform is identity or not.
2682         (WebCore::GraphicsContext::strokeArc): Removed an extra set of redundant
2683         CGContextSave/RestoreGState.
2684         (WebCore::GraphicsContext::beginTransparencyLayer): Clear the flag since we no
2685         longer know if the transform is identity or not.
2686         (WebCore::GraphicsContext::endTransparencyLayer): Ditto.
2687         (WebCore::GraphicsContext::scale): Ditto.
2688         (WebCore::GraphicsContext::rotate): Ditto.
2689         (WebCore::GraphicsContext::translate): Ditto.
2690         (WebCore::GraphicsContext::concatCTM): Ditto.
2691         (WebCore::GraphicsContext::roundToDevicePixels): Return quickly if the transform
2692         is known to be identity, and record that fact when we discover it otherwise.
2693
2694         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
2695         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
2696         Added a m_userToDeviceTransformKnownToBeIdentity flag, initialized to false.
2697
2698 2007-11-11  Darin Adler  <darin@apple.com>
2699
2700         Reviewed by Mitz.
2701
2702         - http://bugs.webkit.org/show_bug.cgi?id=15944
2703           streamline SegmentedString to speed up parsing
2704
2705         I measured a speed-up of the page load test while developing this patch. I don't
2706         have a precise figure, though.
2707
2708         * html/HTMLTokenizer.h: Removed unneeded lineNumberPtr() function. Also renamed
2709         lineno to m_lineNumber.
2710         * html/HTMLTokenizer.cpp:
2711         (WebCore::HTMLTokenizer::processListing): Don't pass 0 to the advance function
2712         since we don't want to update a line number.
2713         (WebCore::HTMLTokenizer::parseSpecial): Ditto.
2714         (WebCore::HTMLTokenizer::parseComment): Pass the line number data member directly
2715         instead of lineNumberPtr() since the advance function now takes a reference.
2716         (WebCore::HTMLTokenizer::parseServer): Ditto.
2717         (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
2718         (WebCore::HTMLTokenizer::parseText): Ditto.
2719         (WebCore::HTMLTokenizer::parseEntity): Ditto.
2720         (WebCore::HTMLTokenizer::parseTag): Ditto.
2721         (WebCore::HTMLTokenizer::write): Ditto.
2722
2723         * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::write):
2724         * loader/TextDocument.cpp: (WebCore::TextTokenizer::write):
2725         Don't pass 0 to the advance function.
2726
2727         * platform/SegmentedString.h: (WebCore::SegmentedString::advance): Streamlined
2728         the most common case, and pushed less common cases into a separate function
2729         that is not inlined. Also got rid of a branch by separating the case with a
2730         line number from the case without one.
2731
2732         * platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase):
2733         Added. The aforementioned less common cases are here.
2734
2735 2007-11-11  Antti Koivisto  <antti@apple.com>
2736
2737         Forgot to do this review change (and test HTTP commit).
2738
2739         * html/HTMLMediaElement.cpp:
2740         (WebCore::HTMLMediaElement::play):
2741
2742 2007-11-11  Antti Koivisto  <antti@apple.com>
2743
2744         Reviewed by Darin.
2745         
2746         - Update play() and pause() to match current HTML5 draft
2747             - send events asynchronously
2748             - add timeupdate event to pause
2749             - rethrow load() exception, not others
2750         - Use list for async events to get ordering right
2751
2752         Tests: media/video-pause-empty-events.html
2753                media/video-play-empty-events.html
2754                media/video-play-pause-events.html
2755                media/video-play-pause-exception.html
2756
2757         * html/HTMLMediaElement.cpp:
2758         (WebCore::HTMLMediaElement::dispatchEventAsync): 
2759         (WebCore::HTMLMediaElement::asyncEventTimerFired):
2760         (WebCore::HTMLMediaElement::play):
2761         (WebCore::HTMLMediaElement::pause):
2762         * html/HTMLMediaElement.h:
2763
2764 2007-11-11  Nikolas Zimmermann  <zimmermann@kde.org>
2765
2766         Reviewed by Eric.
2767
2768         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6424 (<text>, <tspan> dominant-baseline attribute is not respected)
2769
2770         Add (basic) support for dominant-baseline / alignment-baseline text properties.
2771         Note: there are no official testcases, and no-one implemented it before. Only ASV3
2772               supported dominant-baseline, but not correct it seems.
2773
2774         * rendering/SVGRootInlineBox.cpp:
2775         (WebCore::dominantBaselineToShift):
2776         (WebCore::alignmentBaselineToShift):
2777         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2778
2779 2007-11-11  Adam Roben  <aroben@apple.com>
2780
2781         Add wrappers around CoCreateInstance to COMPtr
2782
2783         I followed the example of the Query constructor and query method by
2784         adding a Create constructor and create method.
2785
2786         Reviewed by Darin.
2787
2788         * platform/win/COMPtr.h:
2789         (COMPtr::COMPtr): Added a new constructor that calls
2790         CoCreateInstance.
2791         (COMPtr::create): Added.
2792         (COMPtr::createInstance): Added.
2793
2794 2007-11-11  Alexey Proskuryakov  <ap@nypop.com>
2795
2796         Reviewed by Darin.
2797
2798         http://bugs.webkit.org/show_bug.cgi?id=15896
2799         More editing cleanup
2800
2801         No functionality changes.
2802
2803         * dom/Node.h: Moved several editing-related methods elsewhere.
2804         * dom/Node.cpp: (WebCore::Node::maxCharacterOffset): Renamed from maxOffset()
2805         to highlight that it is a match to offsetInCharacters(), and much different from other
2806         offset-related methods. Added ASSERT_NOT_REACHED(), as callers are supposed to check
2807         offsetInCharacters() before calling this.
2808
2809         * dom/CharacterData.cpp: (WebCore::CharacterData::maxCharacterOffset):
2810         * dom/CharacterData.h: (WebCore::CharacterData::isCharacterDataNode):
2811         Updated for above renamings.
2812
2813         * dom/Comment.{h,cpp}: Removed an override for offsetInCharacters(), which is already present in CharacterData.
2814
2815         * dom/Document.{h,cpp}: Folded updateSelection() into Frame::selectionLayoutChanged().
2816
2817         * dom/Position.h:
2818         * dom/Position.cpp:
2819         (WebCore::Position::uncheckedPreviousOffset): Moved from Node::previousOffset().
2820         (WebCore::Position::uncheckedNextOffset): Moved from Node::NextOffset().
2821         (WebCore::Position::previous): Adapted to the above move.
2822         (WebCore::Position::next): Ditto.
2823         (WebCore::Position::upstream): Removed an isBR() check, since a non-BR element cannot have a BR renderer (I think),
2824         and BR elements are covered by editingIgnoresContent().
2825         (WebCore::Position::downstream): Ditto.
2826         (WebCore::caretMaxRenderedOffset): Moved from Node::caretMaxRenderedOffset().
2827         (WebCore::Position::rendersInDifferentPosition): Updated for the above moves.
2828
2829         * dom/PositionIterator.h: Added a comment describing this class from the original check-in.
2830         * dom/PositionIterator.cpp:
2831         (WebCore::PositionIterator::increment): Updated for the above moves.
2832         (WebCore::PositionIterator::decrement): Ditto.
2833
2834         * dom/ProcessingInstruction.h:
2835         * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::maxCharacterOffset):
2836         ProcessingInstruction was already returning true from offsetInCharacters(), but didn't override maxCharacterOffset().
2837         I think that implementing it has no actual effect, as PIs are not rendered, but it looks cleaner this way.
2838
2839         * dom/Range.cpp:
2840         (WebCore::Range::selectNodeContents):
2841         * editing/ApplyStyleCommand.cpp:
2842         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
2843         (WebCore::ApplyStyleCommand::applyInlineStyle):
2844         (WebCore::maxRangeOffset):
2845         (WebCore::ApplyStyleCommand::removeInlineStyle):
2846         (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
2847         (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
2848         (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
2849         (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
2850         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
2851         * editing/CompositeEditCommand.cpp:
2852         (WebCore::CompositeEditCommand::insertNodeAt):
2853         (WebCore::CompositeEditCommand::positionOutsideTabSpan):
2854         * editing/DeleteSelectionCommand.cpp:
2855         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
2856         * editing/InsertLineBreakCommand.cpp:
2857         (WebCore::InsertLineBreakCommand::doApply):
2858         * editing/InsertParagraphSeparatorCommand.cpp:
2859         (WebCore::InsertParagraphSeparatorCommand::doApply):
2860         * editing/InsertTextCommand.cpp:
2861         (WebCore::InsertTextCommand::insertTab):
2862         * editing/visible_units.cpp:
2863         (WebCore::previousLinePosition):
2864         (WebCore::nextLinePosition):
2865         Updated for the above moves.
2866
2867         * editing/Editor.cpp:
2868         (WebCore::Editor::advanceToNextMisspelling): Added a missing rangeCompliantEquivalent() call.
2869
2870         * editing/TextIterator.cpp:
2871         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Changed the condition to obviously
2872         match a maxCharacterOffset() call made after it; hopefully, this doesn't break any border cases.
2873         (WebCore::SimplifiedBackwardsTextIterator::advance): Updated for the above moves.
2874
2875         * editing/htmlediting.h:
2876         * editing/htmlediting.cpp:
2877         (WebCore::canHaveChildrenForEditing): Removed a bogus comment: I don't thin BRs have a special ability to accept
2878         child nodes, other than via DOM manipulation, which is not specific to BRs.
2879         (WebCore::rangeCompliantEquivalent): Removed a check for BR, which is already covered by editingIgnoresContent().
2880         (WebCore::maxDeepOffset): Ditto.
2881         (WebCore::caretMinOffset): Moved from Node. Changed some runtime checks that seemingly cannot fail into assertions.
2882         (WebCore::caretMaxOffset): Ditto.
2883
2884         * page/EventHandler.cpp:
2885         (WebCore::EventHandler::handleMousePressEventSingleClick): Pass 0 to VisiblePosition constructor instead of
2886         caretMinOffset. I didn't want to include htmlediting.h here, and I think that VisiblePosition constructor
2887         will take care of adjusting the offset.
2888
2889         * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Folded Document::updateSelection() here.
2890         * page/mac/WebCoreFrameBridge.mm:
2891         (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): Added missing rangeCompliantEquivalent() calls.
2892         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForRenderer): Changed to not round-trip via editing.
2893         Changed some runtime checks that seemingly cannot fail into assertions.
2894
2895 2007-11-11  Darin Adler  <darin@apple.com>
2896
2897         Reviewed by Sam.
2898
2899         - updated for JSRegExp function changes
2900
2901         * platform/RegularExpression.cpp:
2902         (WebCore::RegularExpression::Private::compile):
2903         (WebCore::RegularExpression::match):
2904
2905 2007-11-10  Mark Rowe  <mrowe@apple.com>
2906
2907         Qt Linux build fix.
2908
2909         * platform/UnicodeRange.h:
2910
2911 2007-11-10  Mark Rowe  <mrowe@apple.com>
2912
2913         Qt Windows build fix.
2914
2915         * platform/UnicodeRange.h:
2916
2917 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
2918
2919         Reviewed by Eric.
2920
2921         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
2922         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)
2923
2924         Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
2925         Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)
2926
2927         * WebCore.pro: Add platform/UnicodeRange.cpp to build
2928         * WebCore.xcodeproj/project.pbxproj: Dito.
2929         * rendering/SVGCharacterLayoutInfo.cpp: Respect orientationShiftX/Y & angle in characterTransform()
2930         (WebCore::SVGChar::characterTransform):
2931         * rendering/SVGCharacterLayoutInfo.h: New variables.
2932         (WebCore::SVGCharOnPath::SVGCharOnPath):
2933         (WebCore::SVGChar::SVGChar):
2934         * rendering/SVGRootInlineBox.cpp: Added glyph-orientation-* handling.
2935         (WebCore::glyphOrientationToAngle):
2936         (WebCore::glyphOrientationIsMultiplyOf180Degrees):
2937         (WebCore::calculateGlyphAdvanceAndShiftRespectingOrientation):
2938         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
2939         (WebCore::cummulatedWidthOrHeightOfTextChunk):
2940         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
2941
2942 2007-11-10  Timothy Hatcher  <timothy@apple.com>
2943
2944         Reviewed by Sam Weinig.
2945
2946         * page/inspector/StylesSidebarPane.js: Fix the wording of a comment
2947           and switch over to use getUniqueProperties in another place.
2948
2949 2007-11-10  John Sullivan  <sullivan@apple.com>
2950
2951         Reviewed by Sam Weinig
2952
2953         Rest of fix for 5394877
2954
2955         * bindings/js/kjs_window.cpp:
2956         (KJS::Window::isSafeScript):
2957         Don't log unsafe JavaScript attempts in the other version of isSafeScript() if in
2958         private browsing mode either.
2959
2960 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
2961
2962         Reviewed by Oliver.
2963
2964         Fix function name difference - header said 'unicodeRangeForCharacter', actually
2965         implemented function is 'findCharUnicodeRange'. They are not compiled yet.
2966
2967         * platform/UnicodeRange.h:
2968
2969 2007-11-10  Dan Bernstein  <mitz@apple.com>
2970
2971         Reviewed by Darin Adler.
2972
2973         - fix <rdar://problem/5450655> Control-clicking text in a link can surprisingly select only part of the link, should select entire link
2974
2975         No test because context menu events cannot be tested in DumpRenderTree.
2976
2977         * page/EventHandler.cpp:
2978         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Added.
2979         If the click occurred in an active link, selects the entire link
2980         element. Otherwise selects the closest word.
2981         (WebCore::EventHandler::sendContextMenuEvent): Call
2982         selectClosestWordOrLinkFromMouseEvent().
2983         * page/EventHandler.h:
2984
2985 2007-11-10  John Sullivan  <sullivan@apple.com>
2986
2987         Reviewed by Tim Hatcher
2988
2989         - fixed <rdar://problem/5394877> Safari should not log unsafe JavaScript attempts when 
2990           in private browsing mode (only an issue if Log JavaScript Exceptions is turned on)
2991
2992         * bindings/js/kjs_window.cpp:
2993         (KJS::Window::isSafeScript):
2994         Don't log unsafe JavaScript attempts to console or chromeClient if in private browsing mode
2995
2996 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
2997
2998         Reviewed by Darin.
2999
3000         http://bugs.webkit.org/show_bug.cgi?id=15922
3001         Implement more of Mozilla Selection API
3002
3003         Tests: editing/selection/containsNode.html
3004                editing/selection/deleteFromDocument.html
3005                editing/selection/extend.html
3006                editing/selection/selectAllChildren.html
3007
3008         * editing/SelectionController.cpp:
3009         (WebCore::SelectionController::deleteFromDocument):
3010         (WebCore::SelectionController::containsNode):
3011         (WebCore::SelectionController::selectAllChildren):
3012         (WebCore::SelectionController::extend):
3013         * editing/SelectionController.h:
3014         Added deleteFromDocument(), containsNode(), and selectAllChildren(). Reimplemented extend(),
3015         which existed, but didn't match Firefox behavior and wasn't exposed via bindings.
3016         Removed a comment mentioning removeRange(), as this method makes no sense without multiple
3017         selection range support.
3018
3019         * page/DOMSelection.cpp:
3020         (WebCore::DOMSelection::extend):
3021         (WebCore::DOMSelection::deleteFromDocument):
3022         (WebCore::DOMSelection::containsNode):
3023         (WebCore::DOMSelection::selectAllChildren):
3024         * page/DOMSelection.h:
3025         * page/DOMSelection.idl:
3026         Exposed the new methods.
3027
3028 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
3029
3030         Reviewed by Darin.
3031
3032         http://bugs.webkit.org/show_bug.cgi?id=15892
3033         DOM Range operations are not implemented for ProcessingInstruction nodes
3034
3035         Test: fast/dom/Range/range-processing-instructions.html
3036
3037         * dom/Range.cpp:
3038         (WebCore::Range::processContents): Implemented ProcessingInstruction cases.
3039         (WebCore::Range::checkNodeWOffset): Removed a FIXME - yes, I think that we are supposed
3040         to use ProcessingInstruction.data.
3041
3042 2007-11-09  Timothy Hatcher  <timothy@apple.com>
3043
3044         Reviewed by Mark Rowe.
3045
3046         Bug 12054: Ability to serialize an element subtree (into clipboard?) from the DOM inspector
3047         http://bugs.webkit.org/show_bug.cgi?id=12054
3048
3049         - Add support code for routing copy events to the focused element.
3050         - Implement copying the currently selected DOM node. The node
3051           and it's subtree is copied to the clipboard. If the node has no
3052           outerHTML, the nodeValue is copied (text nodes, etc.)
3053         - Implement copy for the resource sidebar. The URL is copied for the
3054           currently selected resource.
3055
3056         * page/inspector/DocumentPanel.js:
3057         * page/inspector/inspector.js:
3058
3059 2007-11-09  Antti Koivisto  <antti@apple.com>
3060
3061         Reviewed by Adele.
3062
3063         Fix occasional blank video with poster attribute.
3064
3065         * ChangeLog:
3066         * html/HTMLMediaElement.cpp:
3067         (WebCore::HTMLMediaElement::load):
3068         (WebCore::HTMLMediaElement::didRestoreFromCache):
3069         Just calling updateFromElement() does the right thing for both poster image and video.
3070
3071 2007-11-04  Sam Weinig  <sam@webkit.org>
3072
3073         Reviewed by Adam Roben.
3074
3075         <rdar://problem/5435940>
3076         The COM bindings for the DOM should be autogenerated like the other DOM bindings
3077
3078         Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
3079         is being introduced in this patch and to insure that no conflicts arise, a temporary
3080         prefix of "GEN_" has been used for all the new classes.
3081
3082         The build architecture for these bindings differs slightly from the other autogenerated
3083         bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
3084         is done for the Objective-C bindigs currently), the IDLs and generation scripts are
3085         migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.
3086
3087         This commit includes:
3088             - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
3089               and ref-counting.
3090             - Generating all of the Core DOM and most of HTML and CSS
3091             - Generating Event, EventTarget, and EventListener
3092
3093         * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
3094         * WebCore.vcproj/WebCore.vcproj:
3095         * WebCore.vcproj/migrate-idls.sh: Added.
3096         * bindings/scripts/CodeGenerator.pm:
3097         * bindings/scripts/CodeGeneratorCOM.pm: Added.
3098         * dom/EventListener.h: Make the isWindowEvent parameter default to false
3099         to allow autogeneration based on the IDL.
3100
3101 2007-11-09  Tristan O'Tierney  <tristan@apple.com>
3102
3103         Reviewed by Timothy Hatcher.
3104         
3105         This patch is for the WebKit side of <rdar://problem/5591115>.
3106         We need a way to tell context menu navigations, such as "Open in New Window"
3107         to override any sort of browser preference for tab based navigation.
3108
3109         * bridge/WindowFeatures.h:
3110         (WebCore::WindowFeatures::WindowFeatures):
3111         Added a new struct member var, preferredType
3112         and an accompanying enum type PreferredType
3113         to send a window type recommendation up to the Chrome. 
3114         
3115         * page/ContextMenuController.cpp:
3116         (WebCore::openNewWindow):
3117         Set the window features to recommend a new Window for
3118         "Open in New Window" context menu action.
3119
3120 2007-11-08  Adam Roben  <aroben@apple.com>
3121
3122         Fix <rdar://5483519> Pressing Enter on selected buttons should fire onclick
3123
3124         We now match the behavior of Firefox and IE, which is to always just
3125         send a click event to the focused button when the Enter key is pressed
3126         (previously we were submitting forms directly in some cases).
3127
3128         Reviewed by Adele.
3129
3130         Test: fast/forms/enter-clicks-buttons.html
3131
3132         * html/HTMLButtonElement.cpp:
3133         (WebCore::HTMLButtonElement::defaultEventHandler): Don't do anything
3134         fancy when Enter is pressed on a <button type=button> -- just send a
3135         click event like we do for other button types.
3136         * html/HTMLInputElement.cpp:
3137         (WebCore::HTMLInputElement::defaultEventHandler): Treat type=button
3138         the same way we treat type=submit and type=reset: just send a click
3139         event when Enter is pressed.
3140
3141 2007-11-09  Dan Bernstein  <mitz@apple.com>
3142
3143         Reviewed by Antti Koivisto.
3144
3145         - fix a bug in invisible layer culling: dynamically changing a 
3146           descendant of an invisible layer to be visible did not work
3147
3148         Test: fast/layers/layer-content-visibility-change.html
3149
3150         * rendering/RenderLayer.cpp:
3151         (WebCore::RenderLayer::setHasVisibleContent): If we got visible content,
3152         make sure that our stacking context rebuilds its z-order lists to
3153         include us.
3154
3155 2007-11-09  David Hyatt  <hyatt@apple.com>
3156
3157         Clean up matrix() parsing.  Make sure the first four arguments can be lengths or numbers.  The last two
3158         args can be lengths or numbers or percents.
3159
3160         Reviewed by Beth
3161
3162         * WebCore.xcodeproj/project.pbxproj:
3163         * css/CSSParser.cpp:
3164         (WebCore::TransformOperationInfo::TransformOperationInfo):
3165         (WebCore::CSSParser::parseTransform):
3166         * rendering/RenderStyle.h:
3167         (WebCore::MatrixTransformOperation::apply):
3168
3169 2007-11-09  Beth Dakin  <bdakin@apple.com>
3170
3171         Reviewed by Oliver.
3172
3173         Fix for <rdar://problem/5586370> CSS Transform - incorrect matrix 
3174         math leads to crazy problems
3175
3176         Transform matrices accept the first four parameters as CSS lengths. 
3177         CSS lengths get mapped into WebCore::Lengths as percents by 
3178         WebCore::convertToLength(). Percent lengths cannot call value(). It 
3179         does not yield a correct result and it asserts on Debug builds. 
3180
3181         * rendering/RenderStyle.h:
3182         (WebCore::MatrixTransformOperation::apply): Instead of calling 
3183         value() on the lengths, call calcValue. This fixes the assert and 
3184         the bad rendering. 
3185
3186 2007-11-09  Simon Hausmann  <hausmann@kde.org>
3187
3188         Reviewed by nobody, build/link fix for Qt/Windows.
3189
3190         userIdleTime() is stubbed in win/SystemTimeWin.cpp, so don't
3191         define it twice.
3192
3193         * platform/qt/TemporaryLinkStubs.cpp:
3194
3195 2007-11-09  Simon Hausmann  <hausmann@kde.org>
3196
3197         Reviewed by Holger.
3198
3199         Fix ContextMenu allocation in the Qt port.
3200
3201         Store all items and submenus value based in ContextMenu and ContextMenuItem.
3202         That fixes the crashes when the context menu was populated with sub-menus because
3203         of the use of temporary ContextMenu objects like this:
3204
3205         ContextMenu subMenu(...);
3206         subMenu.appendItem(...);
3207         subMenu.appendItem(...);
3208
3209         subMenuItem.setSubMenu(&subMenu); // temporary pointer, need to _copy_ contents
3210
3211         * platform/ContextMenu.h:
3212         * platform/ContextMenuItem.h:
3213         * platform/PlatformMenuDescription.h:
3214         * platform/qt/ContextMenuItemQt.cpp:
3215         (WebCore::ContextMenuItem::ContextMenuItem):
3216         (WebCore::ContextMenuItem::platformSubMenu):
3217         * platform/qt/ContextMenuQt.cpp:
3218         (WebCore::ContextMenu::ContextMenu):
3219         (WebCore::ContextMenu::~ContextMenu):
3220         (WebCore::ContextMenu::appendItem):
3221         (WebCore::ContextMenu::itemCount):
3222
3223 2007-11-09  Peter Kasting  <zerodpx@gmail.com>
3224
3225         Reviewed by Mark Rowe.
3226
3227         http://bugs.webkit.org/show_bug.cgi?id=15909
3228         Malformed GIFs should not result in memory corruption.
3229
3230         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3231         (WebCore::GIFImageDecoder::haveDecodedRow):
3232
3233 2007-11-08  Timothy Hatcher  <timothy@apple.com>
3234
3235         Reviewed by Sam Weinig.
3236
3237         Some Web Inspector CSS editing changes.
3238         - Only delete the property if all the text is delete or the new user input correctly parses.
3239           This prevents deleting the existing property if the new text is invalid.
3240         - Intercept the Escape key and cancel editing, not saving any changes.
3241
3242         * page/inspector/StylesSidebarPane.js:
3243
3244 2007-11-08  Kevin Ollivier  <kevino@theolliviers.com>
3245
3246         Bakefiles for building WebCore, needed by wx port.
3247
3248         Reviewed by Mark Rowe.
3249
3250         * WebCoreSources.bkl: Added.
3251         * webcore-base.bkl: Added.
3252         * webcore-wx.bkl: Added.
3253
3254 2007-11-08  Justin Haygood  <jhaygood@reaktix.com>
3255
3256         Reviewed by Mark Rowe.
3257
3258         http://bugs.webkit.org/show_bug.cgi?id=15905
3259
3260         Fix builds with HTML 5 Storage support disabled.
3261         ENABLE(DATABASE) needs to be added in a few places.
3262
3263         * page/InspectorController.cpp:
3264         * storage/Database.h:
3265
3266 2007-11-08  Steve Falkenburg  <sfalken@apple.com>
3267
3268         <rdar://problem/5524082> Allow images to be dragged out directly into other apps
3269         
3270         We weren't including CF_HDROP in our image drops.  This broke drag of
3271         images out of the browser window directly into other apps (examples
3272         include notepad, mspaint, msword).
3273         
3274         Reviewed by Oliver, Ada.
3275
3276         * platform/win/ClipboardWin.cpp:
3277         (WebCore::createGlobalImageFileContent): Removed unused variable.
3278         (WebCore::createGlobalHDropContent): Added
3279         (WebCore::writeFileToDataObject): Write HDROP data if available.
3280         (WebCore::writeImageToDataObject): Write HDROP for dragged images.
3281         (WebCore::ClipboardWin::writeURL): Don't write HDROP for dragged URLs.
3282
3283 2007-11-08  Xan Lopez  <xan@gnome.org>
3284
3285         Reviewed by Alp.
3286
3287         http://bugs.webkit.org/show_bug.cgi?id=15908
3288         Use g_object_ref_sink when available
3289
3290         * platform/gtk/PopupMenuGtk.cpp:
3291         (WebCore::PopupMenu::show):
3292         * platform/gtk/ScrollViewGtk.cpp:
3293         (WebCore::ScrollView::setGtkAdjustments):
3294
3295 2007-11-08  Dan Bernstein  <mitz@apple.com>
3296
3297         Reviewed by Beth Dakin.
3298
3299         - fix <rdar://problem/5491922> REGRESSION (Safari 2-3): Flash-based "Cash Optimizer" on etrade.com does not draw completely
3300
3301         Test: fast/dom/length-attribute-mapping.html
3302
3303         * dom/StyledElement.cpp:
3304         (WebCore::StyledElement::addCSSLength): Changed the garbage-stripping
3305         logic to stop after the first "%" or "*" in the string. This allows for
3306         "100%25" to be mapped to "100%" like it is in Firefox and WinIE.
3307
3308 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
3309
3310         - Build fix.
3311
3312         * loader/FrameLoaderClient.h:
3313         * platform/graphics/svg/SVGImageEmptyClients.h:
3314         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
3315
3316 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
3317
3318         Reviewed by Sam.
3319
3320         - windowObjectCleared() is no longer const.  It needs to setup the
3321         script debugger and cannot be const to do so.
3322
3323         * loader/FrameLoaderClient.h:
3324         * platform/graphics/svg/SVGImageEmptyClients.h:
3325         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
3326
3327 2007-11-08  Adam Roben  <aroben@apple.com>
3328
3329         Hopeful Windows build fix
3330
3331         * rendering/RenderObject.cpp: Touch this file to make it recompile.
3332
3333 2007-11-08  Sam Weinig  <sam@webkit.org>
3334
3335         Reviewed by Darin.
3336
3337         Convert JavaScript internal function objects to use one class per
3338         function.  This avoids a switch statement inside what used to be
3339         the shared function classes and will allow Shark to better analyze
3340         the code.
3341
3342         To make this switch, the value property of the HashEntry was changed
3343         to a union of an intptr_t (which is used to continue handle valueGetters)
3344         and function pointer which points to a static constructor for the
3345         individual new function objects.
3346
3347         SunSpider claims this is a 1.0% speedup.
3348
3349         - On the WebCore side, I updated CodeGeneratorJS.pm to generate the
3350           new classes and hand updated the remain non-generated (groan) classes.
3351
3352         * bindings/js/JSDOMWindowCustom.cpp:
3353         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
3354         * bindings/js/JSEventTargetNode.cpp:
3355         (WebCore::JSEventTargetNodePrototypeFunctionAddEventListener::callAsFunction):
3356         (WebCore::JSEventTargetNodePrototypeFunctionRemoveEventListener::callAsFunction):
3357         (WebCore::JSEventTargetNodePrototypeFunctionDispatchEvent::callAsFunction):
3358         * bindings/js/JSEventTargetNode.h:
3359         * bindings/js/JSHTMLInputElementBase.cpp:
3360         (WebCore::JSHTMLInputElementBaseFunctionSetSelectionRange::callAsFunction):
3361         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
3362         * bindings/js/JSHTMLInputElementBase.h:
3363         (WebCore::JSHTMLInputElementBase::):
3364         * bindings/js/JSXMLHttpRequest.cpp:
3365         (KJS::JSXMLHttpRequestPrototypeFunctionAbort::callAsFunction):
3366         (KJS::JSXMLHttpRequestPrototypeFunctionGetAllResponseHeaders::callAsFunction):
3367         (KJS::JSXMLHttpRequestPrototypeFunctionGetResponseHeader::callAsFunction):
3368         (KJS::JSXMLHttpRequestPrototypeFunctionOpen::callAsFunction):
3369         (KJS::JSXMLHttpRequestPrototypeFunctionSend::callAsFunction):
3370         (KJS::JSXMLHttpRequestPrototypeFunctionSetRequestHeader::callAsFunction):
3371         (KJS::JSXMLHttpRequestPrototypeFunctionOverrideMIMEType::callAsFunction):
3372         (KJS::JSXMLHttpRequestPrototypeFunctionAddEventListener::callAsFunction):
3373         (KJS::JSXMLHttpRequestPrototypeFunctionRemoveEventListener::callAsFunction):
3374         (KJS::JSXMLHttpRequestPrototypeFunctionDispatchEvent::callAsFunction):
3375         * bindings/js/JSXMLHttpRequest.h:
3376         (KJS::JSXMLHttpRequest::impl):
3377         * bindings/js/JSXSLTProcessor.cpp:
3378         (KJS::JSXSLTProcessorPrototypeFunctionImportStylesheet::callAsFunction):
3379         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
3380         (KJS::JSXSLTProcessorPrototypeFunctionTransformToDocument::callAsFunction):
3381         (KJS::JSXSLTProcessorPrototypeFunctionSetParameter::callAsFunction):
3382         (KJS::JSXSLTProcessorPrototypeFunctionGetParameter::callAsFunction):
3383         (KJS::JSXSLTProcessorPrototypeFunctionRemoveParameter::callAsFunction):
3384         (KJS::JSXSLTProcessorPrototypeFunctionClearParameters::callAsFunction):
3385         (KJS::JSXSLTProcessorPrototypeFunctionReset::callAsFunction):
3386         * bindings/js/JSXSLTProcessor.h:
3387         * bindings/js/kjs_events.cpp:
3388         (WebCore::JSClipboardPrototypeFunctionClearData::callAsFunction):
3389         (WebCore::JSClipboardPrototypeFunctionGetData::callAsFunction):
3390         (WebCore::JSClipboardPrototypeFunctionSetData::callAsFunction):
3391         (WebCore::JSClipboardPrototypeFunctionSetDragImage::callAsFunction):
3392         * bindings/js/kjs_events.h:
3393         * bindings/js/kjs_navigator.cpp:
3394         (KJS::Plugins::):
3395         (KJS::Navigator::getOwnPropertySlot):
3396         (KJS::Plugins::getOwnPropertySlot):
3397         (KJS::PluginsFunctionRefresh::callAsFunction):
3398         (KJS::NavigatorProtoFuncJavaEnabled::callAsFunction):
3399         * bindings/js/kjs_navigator.h:
3400         (KJS::Navigator::):
3401         * bindings/js/kjs_window.cpp:
3402         (KJS::Window::getOwnPropertySlot):
3403         (KJS::Window::put):
3404         (KJS::WindowProtoFuncAToB::callAsFunction):
3405         (KJS::WindowProtoFuncBToA::callAsFunction):
3406         (KJS::WindowProtoFuncOpen::callAsFunction):
3407         (KJS::WindowProtoFuncScrollBy::callAsFunction):
3408         (KJS::WindowProtoFuncScrollTo::callAsFunction):
3409         (KJS::WindowProtoFuncMoveBy::callAsFunction):
3410         (KJS::WindowProtoFuncMoveTo::callAsFunction):
3411         (KJS::WindowProtoFuncResizeBy::callAsFunction):
3412         (KJS::WindowProtoFuncResizeTo::callAsFunction):
3413         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
3414         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
3415         (KJS::WindowProtoFuncSetInterval::callAsFunction):
3416         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
3417         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
3418         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
3419         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
3420         (KJS::Location::getOwnPropertySlot):
3421         (KJS::Location::put):
3422         (KJS::LocationProtoFuncReplace::callAsFunction):
3423         (KJS::LocationProtoFuncReload::callAsFunction):
3424         (KJS::LocationProtoFuncAssign::callAsFunction):
3425         (KJS::LocationProtoFuncToString::callAsFunction):
3426         * bindings/js/kjs_window.h:
3427         (KJS::Window::):
3428         * bindings/scripts/CodeGeneratorJS.pm:
3429
3430 2007-11-08  Mark Rowe  <mrowe@apple.com>
3431
3432         Fix the Gtk, Qt and Wx builds.
3433
3434         * platform/gtk/TemporaryLinkStubs.cpp:
3435         * platform/qt/TemporaryLinkStubs.cpp:
3436         * platform/wx/TemporaryLinkStubs.cpp:
3437
3438 2007-11-08  Mark Rowe  <mrowe@apple.com>
3439
3440         Not reviewed.  Fix two instances of includes using the wrong case in the filename.
3441
3442         * platform/graphics/mac/MoviePrivateQTKit.mm:
3443         * platform/wx/MimeTypeRegistryWx.cpp:
3444
3445 2007-11-08  Darin Adler  <darin@apple.com>
3446
3447         Reviewed by Adam.
3448
3449         - fix <rdar://problem/5552943> accesskey does not focus <button> elements
3450
3451         Test: fast/forms/access-key.html
3452
3453         * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::accessKeyAction):
3454         Added a call to focus.
3455
3456 2007-11-07  Darin Adler  <darin@apple.com>
3457
3458         Reviewed by Steve.
3459
3460         - cut down on notImplemented() functions on Windows
3461
3462         * bridge/AXObjectCache.h: Put #if around the accessibility
3463         global.
3464
3465         * bridge/win/FrameWin.cpp: (WebCore::Frame::setNeedsReapplyStyles):
3466         Moved here from TemporaryLinkStubs.
3467
3468         * dom/Document.cpp: (WebCore::Document::lastModified): Re-implemented
3469         using the ResourceResponse that's now available from the DocumentLoader.
3470
3471         * editing/JSEditor.cpp: (execTranspose): Changed to call transpose() on
3472         the Editor instead of the obsolete one on the Frame.
3473
3474         * loader/DocumentLoader.h: Removed getResponseModifiedHeader.
3475         * loader/FrameLoader.h: Removed overrideMediaType.
3476
3477         * loader/gtk/DocumentLoaderGtk.cpp: Removed.
3478         * loader/mac/DocumentLoaderMac.mm: Removed.
3479         * loader/qt/DocumentLoaderQt.cpp: Removed.
3480
3481         * page/Frame.cpp: Removed transpose.
3482         * page/Frame.h: Ditto.
3483         * page/FrameView.h: Removed updateBorder.
3484         * page/gtk/FrameGtk.cpp: Removed issueTransposeCommand.
3485         * page/mac/FrameMac.mm: Ditto.
3486         * page/mac/WebCoreFrameBridge.h: Removed issueTransposeCommand and
3487         overrideMediaType.
3488         * page/qt/FrameQt.cpp: Removed issueTransposeCommand.
3489
3490         * platform/gtk/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled.
3491         * platform/qt/TemporaryLinkStubs.cpp: Ditto.
3492         * platform/win/TemporaryLinkStubs.cpp: Removed or moved all but 3 of the stubs.
3493         * platform/wx/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled,
3494         issueTransposeCommand, and overrideMediaType.
3495
3496         * platform/network/cf/ResourceHandleCFNet.cpp:
3497         (WebCore::ResourceHandle::loadsBlocked): Moved here from TemporaryLinkStubs.
3498         (WebCore::ResourceHandle::willLoadFromCache): Ditto.
3499         * platform/win/GraphicsContextWin.cpp:
3500         (WebCore::GraphicsContextPlatformPrivate::clip): Ditto.
3501         * platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::inWindow): Ditto.
3502         * platform/win/SystemTimeWin.cpp: (WebCore::userIdleTime): Ditto.
3503         * platform/win/WidgetWin.cpp: (WebCore::Widget::setIsSelected): Ditto.
3504
3505         * WebCore.pro: Updated for removed files.
3506         * WebCore.xcodeproj/project.pbxproj: Updated for removed file.
3507
3508 2007-11-08  Mark Rowe  <mrowe@apple.com>
3509
3510        Build fix for case-sensitive file systems.  Fix case of file names
3511        in #include's.
3512
3513         * html/HTMLMediaElement.cpp:
3514         * platform/graphics/Movie.cpp:
3515
3516 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3517
3518         Reviewed by Lars Knoll <lars@trolltech.com>.
3519
3520         Remove some warnings about not implemented methods.
3521
3522         * ResourceHandle::loadsBlocked and ResourceHandle::supportsBufferedData are
3523         specific to the NS API and won't be implemented on Qt.
3524         * ResourceHandle::bufferedData can not be reached as we return false in
3525         ResourceHandle::supportsBufferedData.
3526
3527
3528         * platform/network/qt/ResourceHandleQt.cpp:
3529         (WebCore::ResourceHandle::supportsBufferedData):
3530
3531 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3532
3533         Reviewed by Lars Knoll <lars@trolltech.com>.
3534
3535         Cleanup checking for the request method.
3536
3537         * Check the request method only in QWebNetworkManager::add.
3538         * Currently HEAD, GET, POST are allowed and for everything else
3539         QWebNetworkManager::add returns false.
3540         * Returning false is compatible with ResourceHandle::start and it
3541         can be used in ResourceHandle::loadResourceSynchronously to generate
3542         a ResourceError
3543
3544
3545         * platform/network/qt/ResourceHandleQt.cpp:
3546         (WebCore::ResourceHandle::start):
3547         (WebCore::ResourceHandle::loadResourceSynchronously):
3548
3549 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3550
3551         Reviewed by Lars Knoll <lars@trolltech.com>.
3552
3553         Implement WebCore::callOnMainThread
3554
3555         Implemented using a global QObject, that is moved to the main thread
3556         and then sending a custom event to it.
3557         Picked a number below QEvent::User but above any other documented value.
3558
3559
3560         * platform/qt/ThreadingQt.cpp:
3561         (WebCore::PerformFunctionEvent::PerformFunctionEvent):
3562         (WebCore::MainThreadInvoker::MainThreadInvoker):
3563         (WebCore::MainThreadInvoker::event):
3564         (WebCore::callOnMainThread):
3565
3566 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
3567
3568         Reviewed by Lars Knoll <lars@trolltech.com>.
3569
3570         Avoid problems with calling QPainter::begin() on an already active paintdevice
3571
3572         * Partial pick from 6200e04c3e0a77873c3b3f3969b65bc701020326 to avoid getting
3573         crashes on Qt/Mac 4.4 with QPainter::begin to fail because we already draw.
3574         * If we are in a layout or need one do not paint. This can happen for the PlatformScrollBar
3575         used by the ScrollView on a layout triggered by QWebPage::paintEvent.
3576
3577
3578         * platform/qt/WidgetQt.cpp:
3579         (WebCore::Widget::invalidateRect):
3580
3581 2007-11-08  Eric Seidel  <eric@webkit.org>
3582
3583         No review.
3584
3585         * ksvg2/svg/SVGPathElement.h: remove old comment
3586
3587 2007-11-07  Antti Koivisto  <antti@apple.com>
3588
3589         Reviewed by Ollie.
3590
3591         Ensure video renderer