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