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