33d50a0f03e150a24fc754f0d99fb530416650f1
[WebKit-https.git] / WebCore / ChangeLog
1 2008-01-19  Alp Toker  <alp@atoker.com>
2
3         Reviewed by Mark Rowe.
4
5         Remove any fragment part from the URL to be requested just before
6         passing it to curl, otherwise curl sends it as part of the HTTP/local
7         file request, causing page loads to fail.
8
9         * platform/network/curl/ResourceHandleManager.cpp:
10         (WebCore::ResourceHandleManager::startJob):
11
12 2008-01-19  Jan Michael Alonzo  <jmalonzo@unpluggable.com>
13
14         Reviewed by Alp Toker.
15
16         Add svg foreign object and svg experimental to the GTK+/autotools
17         build system.
18
19         * GNUmakefile.am:
20
21 2008-01-19  Dan Bernstein  <mitz@apple.com>
22
23         Reviewed by Maciej Stachowiak.
24
25         - fix <rdar://problem/5645813> CrashTracer: [USER] 6 crashes in Safari at com.apple.WebCore: WebCore::RenderBox::destroy + 116
26
27         Test: editing/selection/inconsistent-in-removeChildNode.html
28
29         * editing/SelectionController.cpp:
30         (WebCore::SelectionController::nodeWillBeRemoved): If the selection
31         base or extent are not visible any more, adjust the selection.
32
33 2008-01-19  Oliver Hunt  <oliver@apple.com>
34
35         Reviewed by Eric Seidel.
36
37         Build fix for --svg-foreign-object path
38
39         * svg/SVGForeignObjectElement.idl:
40
41 2008-01-18  Stephanie  <slewis@apple.com>
42
43         Reviewed by Oliver.
44
45         Workaround for <rdar://problem/5695848>.  Set mime_type for local files based on file extension. 
46
47         * platform/network/cf/ResourceResponseCFNet.cpp:
48         (WebCore::ResourceResponse::doUpdateResourceResponse):
49
50 2008-01-18  Ada Chan  <adachan@apple.com>
51
52         <rdar://problem/5682340> REGRESSION (r28188): Context menu appears at wrong place when clicking in iframe whose parent is scrolled (16827)
53         Calling absolutePosition() in EventHandler::hitTestResultAtPoint() is extremely inefficient and passing in
54         true as fixed before was wrong.  Use HitTestResult::localPoint() instead, and take into account border and padding widths.
55
56         Reviewed by Hyatt and Darin.
57
58         * page/EventHandler.cpp:
59         (WebCore::EventHandler::hitTestResultAtPoint):
60         * rendering/HitTestResult.cpp:
61         (WebCore::HitTestResult::operator=):
62
63 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
64
65         Reviewed by Darin, landed by Beth.
66
67         - fixed http://bugs.webkit.org/show_bug.cgi?id=15765
68
69         The call to HTMLTokenizer::write might result in a call to ::end which will invoke
70         HTMLParser::finished() or Document::finishedParsing(). HTMLParser::finished() will eventually
71         call Document::finishedParsing. The Document will delete the calling HTMLTokenizer and from the deleted
72         tokenizer we will call into FrameLoader::tokenizerProcessedData.
73         -) FrameLoader::tokenizerProcessedData calls FrameLoader::checkCompleted which gets called from the Document::finishedParsing
74            (FrameLoader::finishedParsing).
75
76         * html/HTMLTokenizer.cpp:
77         (WebCore::HTMLTokenizer::timerFired):
78
79 2008-01-18  David Hyatt  <hyatt@apple.com>
80
81         Don't apply the border/margin/padding check to root line boxes, since their renderers
82         are blocks.
83
84         * rendering/InlineFlowBox.cpp:
85         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
86         (WebCore::InlineFlowBox::placeBoxesVertically):
87
88 2008-01-18  Geoffrey Garen  <ggaren@apple.com>
89
90         Not reviewed: rolling out a previous patch.
91         
92         Fixed <rdar://problem/5695439> Crash during GCController destructor on
93         quitting browser
94
95         Used svn merge to roll out r29603 because it introduced some crashes
96         on quit.
97         
98         GC relies on static hash tables, so it's not safe to GC from a static
99         destructor, which might run after the static hash tables' destructors.
100
101         * bindings/js/GCController.cpp:
102         (WebCore::GCController::garbageCollectNow):
103         * bindings/js/GCController.h:
104
105 2008-01-18  David Hyatt  <hyatt@apple.com>
106
107         Fix for http://bugs.webkit.org/show_bug.cgi?id=15665
108
109         Building on Beth's earlier work to start building line boxes for empty inlines, this patch makes more
110         empty inline cases work.  Empty inlines on lines by themselves now set isLineEmpty to false so that
111         bidiReorderLine will get properly called.  In addition, the "shrink boxes with no text children" quirk
112         needs to be disabled for inlines with padding, margins or borders.
113
114         Reviewed by Beth
115
116         Added fast/inline/inline-padding-disables-text-quirk.html
117
118         * rendering/InlineFlowBox.cpp:
119         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
120         (WebCore::InlineFlowBox::placeBoxesVertically):
121         (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
122         * rendering/RenderObject.h:
123         (WebCore::RenderObject::hasBordersPaddingOrMargin):
124         * rendering/bidi.cpp:
125         (WebCore::inlineFlowRequiresLineBox):
126         (WebCore::RenderBlock::findNextLineBreak):
127
128 2008-01-18  David Hyatt  <hyatt@apple.com>
129
130         Fix for http://bugs.webkit.org/show_bug.cgi?id=14975
131
132         Computed size of padding is incorrect because we default padding to auto.  This is a made-up value that
133         was only used to implement cellpadding on tables.  We needed this made-up value in order to tell that
134         padding wasn't set so that we could then apply cellpadding.
135        
136         This patch rewrites cellpadding to be like other browsers.  Instead of being a setting on the table
137         renderer that applies to all cells (even ones that were not <td>s), cellpadding is now mapped into the
138         style of <td>s.  With this change it effectively becomes a content model feature and not a rendering
139         feature.
140
141         For example, a <td> will pick up cellpadding even when it is not a cell and/or the enclosing <table> is
142         not a table.  Anonymous cells and CSS-display-type cells will now never pick up cellpadding.  This behavior
143         is all consistent with other browsers.
144
145         Reviewed by Antti
146
147         Added fast/css/padding-no-renderer.html
148
149         * css/CSSStyleSelector.cpp:
150         (WebCore::CSSStyleSelector::canShareStyleWithElement):
151         (WebCore::CSSStyleSelector::styleForElement):
152         * css/CSSStyleSelector.h:
153         * dom/StyledElement.cpp:
154         * dom/StyledElement.h:
155         (WebCore::StyledElement::canHaveAdditionalAttributeStyleDecls):
156         (WebCore::StyledElement::additionalAttributeStyleDecls):
157         * html/HTMLTableCellElement.cpp:
158         (WebCore::HTMLTableCellElement::additionalAttributeStyleDecls):
159         * html/HTMLTableCellElement.h:
160         (WebCore::HTMLTableCellElement::canHaveAdditionalAttributeStyleDecls):
161         * html/HTMLTableColElement.cpp:
162         (WebCore::HTMLTableColElement::additionalAttributeStyleDecls):
163         * html/HTMLTableColElement.h:
164         (WebCore::HTMLTableColElement::canHaveAdditionalAttributeStyleDecls):
165         * html/HTMLTableElement.cpp:
166         (WebCore::HTMLTableElement::parseMappedAttribute):
167         (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
168         (WebCore::HTMLTableElement::addSharedCellDecls):
169         (WebCore::HTMLTableElement::addSharedCellBordersDecl):
170         (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
171         (WebCore::HTMLTableElement::addSharedGroupDecls):
172         (WebCore::HTMLTableElement::attach):
173         * html/HTMLTableElement.h:
174         (WebCore::HTMLTableElement::canHaveAdditionalAttributeStyleDecls):
175         * html/HTMLTableSectionElement.cpp:
176         (WebCore::HTMLTableSectionElement::additionalAttributeStyleDecls):
177         * html/HTMLTableSectionElement.h:
178         (WebCore::HTMLTableSectionElement::canHaveAdditionalAttributeStyleDecls):
179         * rendering/AutoTableLayout.cpp:
180         (WebCore::AutoTableLayout::recalcColumn):
181         * rendering/RenderObject.cpp:
182         (WebCore::RenderObject::paddingTop):
183         (WebCore::RenderObject::paddingBottom):
184         (WebCore::RenderObject::paddingLeft):
185         (WebCore::RenderObject::paddingRight):
186         * rendering/RenderStyle.cpp:
187         (WebCore::StyleSurroundData::StyleSurroundData):
188         * rendering/RenderStyle.h:
189         (WebCore::RenderStyle::initialPadding):
190         * rendering/RenderTable.cpp:
191         (WebCore::RenderTable::RenderTable):
192         * rendering/RenderTable.h:
193
194 2008-01-18  Dan Bernstein  <mitz@apple.com>
195
196         Reviewed by Dave Hyatt.
197
198         - fix <rdar://problem/5615307> Repro crash in WebKit!WebCore::RenderContainer::destroyLeftoverChildren
199
200         Test: fast/table/insert-row-before-form.html
201
202         * rendering/RenderTableRow.cpp:
203         (WebCore::RenderTableRow::addChild): Changed to ensure that the
204         object a new cell is inserted before is a child of the row, and
205         added an assertion that that object is either a cell or a form.
206         * rendering/RenderTableSection.cpp:
207         (WebCore::RenderTableSection::addChild): Changed to ensure that the
208         object a new row is inserted before is a child of the table section, and
209         added an assertion that that object is either a table row or a form.
210
211 2008-01-18  Geoffrey Garen  <ggaren@apple.com>
212
213         Reviewed by Brady Eidson.
214
215         Fixed <rdar://problem/5622424> World Leak dialog when closing a page
216         that has a Database
217         
218         The problem was that each transaction and SQL statement would hold on
219         to its callback indefinitely. By design, callbacks often establish
220         reference cycles to temporarily protect their execution environments.
221         To break the cycle, we need to explicitly release each callback as soon
222         as it is no longer needed.
223
224         * storage/SQLStatement.cpp:
225         (WebCore::SQLStatement::performCallback): Release our callback objects
226         after performing our callback.
227
228         * storage/SQLTransaction.cpp:
229         (WebCore::SQLTransaction::postflightAndCommit): Release our callback
230         objects after the transaction has terminated.
231         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback): ditto.
232
233 2008-01-18  Adele Peterson  <adele@apple.com>
234
235         Reviewed by Antti.
236
237         Fix for <rdar://problem/5679490> media controls fade in and out too jerkily and too slowly
238
239         * rendering/RenderMedia.cpp: Shorten the duration for the fade in/out animation.
240
241 2008-01-18  Beth Dakin  <bdakin@apple.com>
242
243         Reviewed by Oliver.
244
245         Disables SVG foreign object for <rdar://problem/5686989> turn off 
246         SVG foreignobject because it does not repaint/dirty correctly
247
248         * DerivedSources.make:
249         * WebCore.SVG.ForeignObject.exp: Added.
250         * WebCore.SVG.exp:
251         * bindings/js/JSSVGElementWrapperFactory.cpp:
252         (WebCore::createJSSVGWrapper):
253         * rendering/RenderForeignObject.cpp:
254         * rendering/RenderForeignObject.h:
255         * svg/SVGForeignObjectElement.cpp:
256         * svg/SVGForeignObjectElement.h:
257         * svg/SVGForeignObjectElement.idl:
258         * svg/SVGLocatable.cpp:
259         (WebCore::SVGLocatable::nearestViewportElement):
260         (WebCore::SVGLocatable::farthestViewportElement):
261         * svg/SVGUseElement.cpp:
262         (WebCore::isDisallowedElement):
263         * svg/svgtags.in:
264
265 2008-01-18  Mark Rowe  <mrowe@apple.com>
266
267         Rubber-stamped by Adam Roben.
268
269         Fix mixed line endings in FileSystemWin.cpp and set svn:eol-style to native
270         to try and keep them consistent in the future.
271
272         * platform/win/FileSystemWin.cpp:
273         (WebCore::fileSize):
274         (WebCore::fileExists):
275         (WebCore::deleteFile):
276         (WebCore::pathByAppendingComponent):
277         (WebCore::fileSystemRepresentation):
278         (WebCore::makeAllDirectories):
279         (WebCore::homeDirectoryPath):
280         (WebCore::bundleName):
281         (WebCore::storageDirectory):
282         (WebCore::cachedStorageDirectory):
283
284 2008-01-18  Antti Koivisto  <antti@apple.com>
285
286         Reviewed by Adam.
287
288         Fix unreachable code warning in RenderVideo on Windows.
289         
290         Make switch cases explicit.
291
292         * rendering/RenderImage.cpp:
293         (WebCore::RenderImage::isWidthSpecified):
294         (WebCore::RenderImage::isHeightSpecified):
295         * rendering/RenderVideo.cpp:
296         (WebCore::RenderVideo::isWidthSpecified):
297         (WebCore::RenderVideo::isHeightSpecified):
298
299 2008-01-18  Timothy Hatcher  <timothy@apple.com>
300
301         Reviewed by Adam Roben.
302
303         <rdar://problem/5693558> REGRESSION (r29581): no form field focus
304         rings and inactive text selection after loading a page
305         Bug 16910: [GTK] REGRESSION: keyboard cursor doesn't blink
306         Bug 16917: REGRESSION (r29581/2): Google Maps search box loses focused appearance
307
308         * page/FocusController.cpp:
309         (WebCore::FocusController::setActive): Use focusedOrMainFrame() instead of focusedFrame()
310         to call selectionController()->pageActivationChanged() for cases when the focusedFrame()
311         has not been set yet. 
312
313 2008-01-18  Alexey Proskuryakov  <ap@webkit.org>
314
315         Reviewed by Brady.
316
317         Database origin tracking is broken.
318
319         * storage/DatabaseTracker.cpp: (WebCore::DatabaseTracker::populateOrigins):
320         Move reading from statement back into the loop (broken in r29386).
321
322 2008-01-18  Marius Storm-Olsen  <marius@trolltech.com>
323
324         Reviewed by Simon Hausmann <hausmann@webkit.org>.
325
326         Add use of precompiled header, when building inside Qt.
327         
328         Compiling WebKit was taking forever; 17 minutes on my machine for _one_ build! Adding the PCH at least brings it down to 12 minutes for one build, for me.
329         
330
331         * WebCore.pro:
332
333 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
334
335         Reviewed by Holger.
336
337         Fix fast/forms/button-state-restore.html
338         
339         Similar to the fix for fast/forms/form-post-urlencoded.html transform POST
340         requests to data urls into GET.
341         
342
343         * platform/network/qt/QNetworkReplyHandler.cpp:
344         (WebCore::QNetworkReplyHandler::start):
345
346 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
347
348         Reviewed by Holger.
349
350         Fix LayoutTests/fast/cookies/local-file-can-set-cookies.html
351         
352         In WebCore::cookies() don't return the full raw form but only the name=value
353         part. This fixes the getter part of the above test. The above test also
354         requires a parsing fix in Qt 4.4's QNetworkCookie to fully pass.
355         
356
357         * platform/qt/CookieJarQt.cpp:
358         (WebCore::cookies):
359
360 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
361
362         Reviewed by Holger.
363
364         Fix svg/custom/path-getTotalLength.svg
365         
366         Path::apply creates a PathElement and its points array on the stack,
367         to fill it in from the QPainterPath data and then use the platform
368         independent path applier functions to calculate properties such as
369         the length. For converting a QPainterPath::CurveToElement we need
370         three points in the path element. However we allocated only two
371         on the stack and as a result we got memory corruption and the
372         failing test.
373         
374
375         * platform/graphics/qt/PathQt.cpp:
376         (WebCore::Path::apply):
377
378 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
379
380         Reviewed by Holger.
381
382         Fix LayoutTests/fast/dom/document-attribute-js-null.html
383         
384         Don't crash when trying to get/set cookies without a frameloader.
385         
386
387         * platform/qt/CookieJarQt.cpp:
388         (WebCore::setCookies):
389         (WebCore::cookies):
390
391 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
392
393         Reviewed by Holger.
394
395         Fix fast/dom/xmlhttprequest-get.xhtml
396         
397         For local file requests remove the content length and the last-modified
398         headers in the response.
399         
400
401         * platform/network/qt/QNetworkReplyHandler.cpp:
402         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
403
404 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
405
406         Reviewed by Holger.
407
408         Fix fast/forms/form-post-urlencoded.html.
409         
410         Post requests on files don't really make sense, but for
411         fast/forms/form-post-urlencoded.html we still need to retrieve the file,
412         which means we map it to a Get instead.
413         
414
415         * platform/network/qt/QNetworkReplyHandler.cpp:
416         (WebCore::QNetworkReplyHandler::start):
417
418 2008-01-18  Simon Hausmann  <hausmann@webkit.org>
419
420         Reviewed by Holger.
421
422         Make QNetworkReplyHandler::abort() more robust against multiple invocations.
423
424         During DRT runs I see cancel() being called on the same handle multiple times. Guard
425         against this a bit better by setting m_reply to 0 after we called abort() on it.
426
427         * platform/network/qt/QNetworkReplyHandler.cpp:
428         (WebCore::QNetworkReplyHandler::abort):
429
430 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
431
432         Reviewed by Simon.
433
434         * httpBody() can return 0 and other ports (cf/mac) check for this condition
435         * Looking at the cf/mac implementation we might need to call setHTTPBody somewhere
436         as well.
437         
438
439         WARNING: NO TEST CASES ADDED OR CHANGED
440
441         * platform/network/qt/QNetworkReplyHandler.cpp:
442         (WebCore::QNetworkReplyHandler::start):
443
444 2008-01-18  Prasanth Ullattil  <prasanth.ullattil@trolltech.com>
445
446         Reviewed by Simon Hausmann <hausmann@webkit.org>.
447
448         Fix compilation in Win64(3): Due to the size of size_t cast the return value explicitly to double() to make sure the right Value() constructor is called.
449
450         * xml/XPathFunctions.cpp:
451         (WebCore::XPath::FunCount::evaluate):
452
453 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
454
455         Reviewed by Simon.
456
457         * Remove our windowClipRect reimplementation and instead have our own
458         Widget::invalidate implementation that is invalidating
459         IntRect(0, 0, width(), height()) without trying to clip it (in contrast
460         to Widget::invalidateRect)
461
462         * platform/qt/PlatformScrollBar.h:
463         * platform/qt/PlatformScrollBarQt.cpp:
464         (WebCore::PlatformScrollbar::invalidate):
465
466 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
467
468         Reviewed by Simon.
469
470         * Change the coordinate transformation in the PlatformMouseEvent handlers
471         * We want to convert from coordinates of the containing window to our local
472         position on the scrollbar.
473
474         * platform/qt/PlatformScrollBarQt.cpp:
475         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
476         (WebCore::PlatformScrollbar::handleMousePressEvent):
477
478 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
479
480         Reviewed by Simon.
481
482         * Make the qDebug more usable. Do not have an additional newline and print
483         the untranslated coordinates as well.
484
485         * platform/qt/PlatformScrollBarQt.cpp:
486         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
487         (WebCore::PlatformScrollbar::handleMousePressEvent):
488
489 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
490
491         Reviewed by Simon.
492
493         * Dead code, remove it
494
495         * platform/qt/PlatformScrollBarQt.cpp:
496
497 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
498
499         Reviewed by Simon.
500
501         * Coding-Style fixes.
502
503         * platform/qt/PlatformScrollBarQt.cpp:
504         (WebCore::PlatformScrollbar::PlatformScrollbar):
505
506 2008-01-18  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
507
508         Reviewed by Simon.
509
510         * Coding-Style fix
511
512         * platform/graphics/qt/ImageDecoderQt.cpp:
513         (WebCore::ImageDecoderQt::ReadContext::ReadContext):
514
515 2008-01-17  Geoffrey Garen  <ggaren@apple.com>
516
517         Reviewed by Darin Adler.
518
519         Fixed: lots of WebCore leaks reported when quitting Safari
520         
521         If we're quitting with a GC still scheduled, do the GC before quitting.
522         That way, WebCore's leak counters won't count objects that were
523         scheduled for GC.
524
525         * bindings/js/GCController.cpp:
526         (WebCore::GCController::~GCController):
527         (WebCore::GCController::garbageCollectNow):
528         * bindings/js/GCController.h:
529
530 2008-01-17  Alp Toker  <alp@atoker.com>
531
532         Reviewed by Oliver Hunt.
533
534         gdk_screen_get_font_options() returns NULL if no default options are
535         set so we always have to NULL check to avoid crashes later on since
536         Cairo doesn't accept NULL font options.
537
538         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
539         (WebCore::FontPlatformData::FontPlatformData):
540
541 2008-01-17  Antti Koivisto  <antti@apple.com>
542
543         Reviewed by Adele.
544
545         Windows fix for <rdar://problem/5605682>
546         Disallow streaming protocols for media elements
547         and <rdar://problem/5668711>
548         Limit the container and codec types that the <video> tag supports
549         
550         - Disable unsupported QuickTime tracks types. 
551         - Disallow streaming protocols (for now).
552
553         * WebCore.vcproj/WebCore.vcproj:
554         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
555         (WebCore::MediaPlayerPrivate::updateStates):
556         * platform/graphics/win/QTMovieWin.cpp:
557         (QTMovieWin::load):
558         (QTMovieWin::disableUnsupportedTracks):
559         * platform/graphics/win/QTMovieWin.h:
560
561 2008-01-17  Oliver Hunt  <oliver@apple.com>
562
563         Support smart copy and paste during drag and drop
564         
565         Reviewed by Alice
566         
567         In order for the drag and drop tests in Windows DRT to pass
568         we need to support smart cut and paste operations during
569         drag and drop on windows.
570         
571         There is no layout test as drag and drop is still unsupported
572         on windows.  Once supported smart drag/drop is tested by existing
573         tests
574
575         * platform/win/ClipboardUtilitiesWin.cpp:
576         (WebCore::smartPasteFormat):
577         * platform/win/ClipboardUtilitiesWin.h:
578         * platform/win/ClipboardWin.cpp:
579         (WebCore::ClipboardWin::writeRange):
580         * platform/win/DragDataWin.cpp:
581
582 2008-01-17  Oliver Hunt  <oliver@apple.com>
583
584         Reviewed by Anders.
585
586         <rdar://problem/5692940> Crash when attempting to get text properties in
587         SVG with no renderer
588
589         We use the element renderer to calculate the text element bounds,
590         however there was no check against the possibility of the text dimension
591         properties being requested on a element with no renderer (eg. unattached, 
592         display: none).
593
594         Test: svg/text/text-property-with-display-none.html
595
596         * svg/SVGTextContentElement.cpp:
597         (WebCore::rootInlineBoxForTextContentElement):
598
599 2008-01-17  Anders Carlsson  <andersca@apple.com>
600
601         Reviewed by Oliver.
602
603         <rdar://problem/5636742>
604         CrashTracer: [USER] 1302 crashes in Safari at com.apple.WebCore: WTF::Vector<char, 0ul>::reserveCapacity + 78
605         
606         When loading full-frame plug-ins, disable buffering data for the main resource loader. Otherwise, this can cause us
607         to crash when loading large files such as movies in the browser. We already do this for embedded plug-ins.
608         
609         * WebCore.base.exp:
610         * loader/DocumentLoader.h:
611         (WebCore::DocumentLoader::mainResourceLoader):
612         New accessor method.
613         
614         * loader/PluginDocument.cpp:
615         (WebCore::PluginTokenizer::writeRawData):
616         Disable buffering for the main resource loader.
617         
618         * loader/ResourceLoader.cpp:
619         (WebCore::ResourceLoader::setShouldBufferData):
620         * loader/ResourceLoader.h:
621         Have this free the buffer when disabling buffering.
622
623 2008-01-17  Adam Roben  <aroben@apple.com>
624
625         More Qt/GTK+ build fixing.
626
627         * platform/gtk/ScrollViewGtk.cpp:
628         * platform/qt/ScrollViewQt.cpp:
629
630 2008-01-17  Alexey Proskuryakov  <ap@webkit.org>
631
632         Reviewed by Darin.
633
634         http://bugs.webkit.org/show_bug.cgi?id=16902
635         <rdar://problem/5692566> fast/encoding/mailto-always-utf-8.html fails when run after
636         fast/dom/Window/window-property-shadowing.html
637
638         Test: fast/dom/Window/window-property-shadowing_.html
639
640         * loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Clear the frame name, too.
641
642 2008-01-17  Adam Roben  <aroben@apple.com>
643
644         Qt/GTK+ build fix.
645
646         * platform/gtk/ScrollViewGtk.cpp:
647         (WebCore::ScrollView::ScrollViewPrivate::isActive):
648         * platform/qt/ScrollViewQt.cpp:
649         (WebCore::ScrollView::ScrollViewPrivate::isActive):
650
651 2008-01-16  Adam Roben  <aroben@apple.com>
652
653         Update scroll bars/form controls when FocusController::isActive changes
654
655         Part of <rdar://5006915> Inactive look for Aqua controls
656
657         Reviewed by Darin.
658
659         All tests pass.
660
661         * page/FocusController.cpp:
662         (WebCore::FocusController::setActive): Update control tints when the
663         active state changes.
664         * page/FrameView.cpp:
665         (WebCore::FrameView::updateControlTints): On Windows, we have to ask
666         ScrollView to paint so that the outermost scroll bars will paint. On
667         Mac, the outermost scroll bars are taken care of by NSScroller.
668         * platform/PopupMenu.h: Updated for ScrollBarClient changes.
669         * platform/ScrollBar.h: Added a new ScrollBarClient method.
670         * platform/win/PlatformScrollBarSafari.cpp:
671         (WebCore::PlatformScrollbar::paint): Invalidate when updating control
672         tints so that we can paint with the new tint later.
673         (WebCore::PlatformScrollbar::paintButton): Pass the active state down
674         to SafariTheme.
675         (WebCore::PlatformScrollbar::paintTrack): Ditto.
676         (WebCore::PlatformScrollbar::paintThumb): Ditto.
677         * platform/win/ScrollViewWin.cpp:
678         (WebCore::ScrollView::ScrollViewPrivate::isActive): Added.
679         (WebCore::ScrollView::paint): Pass paint calls on down if we're
680         updating control tints so the scroll bars can invalidate.
681         * rendering/RenderLayer.cpp:
682         (WebCore::RenderLayer::isActive): Added.
683         * rendering/RenderLayer.h:
684         * rendering/RenderListBox.cpp:
685         (WebCore::RenderListBox::isActive): Added.
686         * rendering/RenderListBox.h:
687         * rendering/RenderTheme.cpp:
688         (WebCore::RenderTheme::isActive): Added.
689         * rendering/RenderTheme.h:
690         * rendering/RenderThemeSafari.cpp:
691         (WebCore::RenderThemeSafari::determineState): Pass the active state
692         down to SafariTheme.
693
694 2008-01-16  Adam Roben  <aroben@apple.com>
695
696         Move focused/active state from Frame to SelectionController/FocusController
697
698         This is the first part of <rdar://5006915> Inactive look for Aqua
699         controls.
700
701         The following methods were moved/renamed:
702             - Frame::setIsActive -> FocusController::setActive
703             - Frame::isActive -> SelectionController::isActiveAndFocused
704             - Frame::setWindowHasFocus -> SelectionController::setFocused
705
706         Active state is now correctly a Page-level concept.
707
708         The Mac parts of this patch were written by Darin.
709
710         Reviewed by Darin.
711
712         All tests pass.
713
714         * WebCore.base.exp: Updated for method renames.
715         * css/CSSStyleSelector.cpp:
716         (WebCore::CSSStyleSelector::checkOneSelector): Ditto.
717         * editing/SelectionController.cpp:
718         (WebCore::SelectionController::SelectionController): Initialize new
719         member.
720         (WebCore::SelectionController::focusedOrActiveStateChanged): New
721         private method. Most of this code came from Frame::setIsActive.
722         (WebCore::SelectionController::pageActivationChanged): Added.
723         (WebCore::SelectionController::setFocused): Added. Replaces
724         Frame::setWindowHasFocus.
725         (WebCore::SelectionController::isFocusedAndActive): Added. Replaces
726         Frame::isActive.
727         * editing/SelectionController.h:
728         * page/FocusController.cpp:
729         (WebCore::FocusController::FocusController): Initialize new member.
730         (WebCore::FocusController::setFocusedFrame): Changed to just call
731         SelectionController::setFocused, since active state has doesn't change
732         when the focused frame changes.
733         (WebCore::FocusController::setActive): Added. Replaces
734         Frame::setIsActive.
735         * page/FocusController.h:
736         (WebCore::FocusController::isActive): Added.
737         * page/Frame.cpp:
738         (WebCore::Frame::setDocument): Updated for method renames.
739         (WebCore::Frame::setFocusedNodeIfNeeded): Ditto.
740         (WebCore::Frame::updateSecureKeyboardEntryIfActive): Ditto.
741         (WebCore::FramePrivate::FramePrivate): Removed initialization of
742         removed members.
743         * page/Frame.h:
744         * page/FramePrivate.h:
745         * page/mac/WebCoreFrameBridge.h: Removed -selectionColor.
746         * page/mac/WebCoreFrameBridge.mm: Ditto.
747         * rendering/RenderListBox.cpp:
748         (WebCore::RenderListBox::paintItemForeground): Updated for method
749         renames.
750         (WebCore::RenderListBox::paintItemBackground): Ditto.
751         * rendering/RenderObject.cpp:
752         (WebCore::RenderObject::selectionBackgroundColor): Ditto.
753         (WebCore::RenderObject::selectionForegroundColor): Ditto.
754         * rendering/RenderTextControl.cpp:
755         (WebCore::RenderTextControl::capsLockStateMayHaveChanged): Ditto.
756         * rendering/RenderTheme.cpp:
757         (WebCore::RenderTheme::isFocused): Ditto.
758
759 2008-01-17  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
760
761         Reviewed by Simon.
762
763         * Make the nice 'safari' feature work on our port. When viewing a single image, clicking
764         on the image will zoom it.
765         * It seems like our platform can only determine the size of the image once it is completely
766         loaded. Call m_doc->imageChanged on the last chunk of data as well.
767
768         * loader/ImageDocument.cpp:
769         (WebCore::ImageTokenizer::finish):
770
771 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
772
773         Reviewed by Lars.
774
775         Set the library version of QtWebKit to the Qt version.
776
777         * WebCore.pro:
778
779 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
780
781         Reviewed by Holger.
782
783         Re-enable gzip compression as accepted encoding, now that the bug is fixed in Qt 4.4's network module.
784
785         * platform/network/qt/QNetworkReplyHandler.cpp:
786         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
787
788 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
789
790         Another Windows build fix, setCookies accidentially had a const
791         Document pointer.
792
793         * platform/network/win/CookieJarWin.cpp:
794
795 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
796
797         MSVC Windows build fix. Forward declaring Document in CookieJar.h
798         seems not enough for MSVC.
799
800         * platform/network/win/CookieJarWin.cpp:
801
802 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
803
804         Reviewed by Maciej, Lars, Holger.
805
806         http://bugs.webkit.org/show_bug.cgi?id=16589
807
808         Add a document parameter to WebCore::cookies, setCookies and cookiesEnabled.
809
810         * WebCore.pro:
811         * bindings/js/kjs_navigator.cpp:
812         (KJS::Navigator::getValueProperty):
813         * dom/Document.cpp:
814         (WebCore::Document::cookie):
815         * platform/CookieJar.h:
816         * platform/gtk/CookieJarGtk.cpp:
817         (WebCore::setCookies):
818         (WebCore::cookies):
819         * platform/mac/CookieJar.mm:
820         * platform/network/win/CookieJarWin.cpp:
821         * platform/qt/CookieJarQt.cpp:
822         (WebCore::setCookies):
823         (WebCore::cookies):
824         (WebCore::cookiesEnabled):
825         * platform/wx/TemporaryLinkStubs.cpp:
826
827 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
828
829         Reviewed by Holger.
830
831         Windows build fix. (use localtime_r again instead of _s)
832
833         * loader/FTPDirectoryDocument.cpp:
834         (WebCore::processFileDateString):
835
836 2008-01-17  Frans Englich  <fenglich@trolltech.com>
837
838         Reviewed by Simon Hausmann <hausmann@webkit.org>.
839
840         Fix linking on MinGW and at least one MSVC platform by having gmtimeQt in the correct namespace.
841
842         * loader/FTPDirectoryDocument.cpp:
843
844 2008-01-17  Simon Hausmann  <hausmann@webkit.org>
845
846         Reviewed by Holger.
847
848         Don't link QtWebKit against libQtXml when building against Qt 4.4.
849
850         This is not necessary anymore since QXmlStream has been moved into QtCore.
851
852         * WebCore.pro:
853
854 2008-01-17  HÃ¥vard Wall  <hwall@trolltech.com>
855
856         Reviewed by Simon Hausmann <hausmann@webkit.org>.
857
858         Fix compilation on arm
859
860         * platform/graphics/qt/GraphicsContextQt.cpp:
861         (WebCore::GraphicsContext::endTransparencyLayer):
862
863 2008-01-17  Simon Hausmann  <shausman@trolltech.com>
864
865         Reviewed by Holger.
866
867         Fix compilation against Qt 4.4 without files that are specific for the Qt 4.3 build.
868
869         * WebCore.pro:
870         * platform/network/qt/ResourceHandleQt.cpp:
871         * platform/qt/MIMETypeRegistryQt.cpp:
872         * platform/qt/PlugInInfoStoreQt.cpp:
873
874 2008-01-17  Frans Englich  <fenglich@trolltech.com>
875
876         Reviewed by Simon Hausmann <hausmann@webkit.org>.
877
878         Fixes compilation with MinGW.
879         Neither localtime_r nor localtime_s are available on MingW, so instead of
880         calling back to the thread-unsafe localtime use QDateTime instead.
881
882         * loader/FTPDirectoryDocument.cpp:
883         (WebCore::FTPDirectoryTokenizer::WebCore::processFilesizeString):
884         (WebCore::FTPDirectoryTokenizer::WebCore::wasLastDayOfMonth):
885         (WebCore::FTPDirectoryTokenizer::WebCore::WebCore::gmtimeQt):
886         * loader/FTPDirectoryParser.cpp:
887         (WebCore::parseOneFTPLine):
888
889 2008-01-17  Dan Bernstein  <mitz@apple.com>
890
891         Reviewed by Dave Hyatt.
892
893         - fix determinePitch for segmented fonts
894
895         Covered by fast/css/font-face-implicit-local-font.html
896
897         * platform/graphics/FontFallbackList.cpp:
898         (WebCore::FontFallbackList::determinePitch): If the primary font is
899         segmented, treat as fixed pitch only if it has only one segment
900         and that segment is fixed-pitch.
901
902 2008-01-16  David Hyatt  <hyatt@apple.com>
903
904         Fix for http://bugs.webkit.org/show_bug.cgi?id=16611
905
906         Make sure vertical-align length values are offset from their parents rather than being absolute to the
907         line.
908
909         Reviewed by olliej
910
911         Added fast/css/vertical-align-lengths.html
912
913         * rendering/RenderObject.cpp:
914         (WebCore::RenderObject::getVerticalPosition):
915
916 2008-01-16  Dan Bernstein  <mitz@apple.com>
917
918         Reviewed by Dave Hyatt.
919
920         - fix for @font-face rules with unicode-range: always use a local font where not
921           explicitly overlaid.
922
923         Test: fast/css/font-face-implicit-local-font.html
924
925         * css/CSSFontSelector.cpp:
926         (WebCore::CSSFontSelector::addFontFaceRule): Changed to insert an implicit
927         @font-face rule with the local font the matches the family and description before
928         any explicit @font-face rules that overlay specific ranges of the same font.
929         * css/CSSSegmentedFontFace.h:
930         (WebCore::CSSSegmentedFontFace::numRanges): Addded.
931
932 2008-01-16  Antti Koivisto  <antti@apple.com>
933
934         Fix Tiger build.
935
936         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
937         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
938
939 2008-01-16  Antti Koivisto  <antti@apple.com>
940
941         Reviewed by Adele.
942         
943         OS X fix for <rdar://problem/5605682>
944         Disallow streaming protocols for media elements
945         and <rdar://problem/5668711>
946         Limit the container and codec types that the <video> tag supports
947         
948         - Disable unsupported QuickTime tracks types. 
949         - Disallow streaming protocols (for now).
950         - Set QTMovie QTMoviePreventExternalURLLinksAttribute and QTSecurityPolicyNoCrossSiteAttribute 
951           to limit QuickTime's access to external resources.
952         
953         Windows patch coming up.
954
955         Tests: media/broken-video.html
956                media/unsupported-rtsp.html
957                media/unsupported-tracks.html
958
959         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
960         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
961         (WebCore::MediaPlayerPrivate::createQTMovie):
962         (WebCore::MediaPlayerPrivate::updateStates):
963         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
964
965 2008-01-16  Rodney Dawes  <dobey@wayofthemonkey.com>
966
967         Reviewed by Alp Toker.
968
969         http://bugs.webkit.org/show_bug.cgi?id=16897
970         Add shared plugins directory to INCLUDE path
971
972         Add the plugins directory to INCLUDEPATH
973
974         * GNUmakefile.am:
975         * WebCore.pro:
976
977 2008-01-16  Geoffrey Garen  <ggaren@apple.com>
978
979         Reviewed by Sam Weinig.
980         
981         Added a debug counter for SQL transactions. This helped me debug an SQL
982         leak.
983
984         * bindings/js/JSCustomSQLTransactionCallback.cpp:
985         (WebCore::):
986         (WebCore::JSCustomSQLTransactionCallbackCounter::~JSCustomSQLTransactionCallbackCounter):
987         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
988         (WebCore::JSCustomSQLTransactionCallback::~JSCustomSQLTransactionCallback):
989         * bindings/js/JSCustomSQLTransactionCallback.h:
990
991         * bindings/js/kjs_window.cpp: Removed a silly comment.
992
993 2008-01-16  David Hyatt  <hyatt@apple.com>
994
995         Fix for http://bugs.webkit.org/show_bug.cgi?id=14846, cell padding can't be changed dynamically.
996
997         Reviewed by Eric Seidel
998
999         Added fast/table/dynamic-cellpadding.html
1000
1001         * html/HTMLTableElement.cpp:
1002         (WebCore::HTMLTableElement::parseMappedAttribute):
1003         * rendering/RenderTable.cpp:
1004         (WebCore::RenderTable::setCellPadding):
1005         * rendering/RenderTable.h:
1006
1007 2008-01-16  David Hyatt  <hyatt@apple.com>
1008
1009         Fix for <rdar://problem/5681647> Item pages on http://www.stendmarsofa.com/ hang Safari
1010
1011         This regression was caused by an attempt to implement a WinIE quirk in RenderBlock::calcInlinePrefWidths.
1012         The original patch introduced pathological O(n^2) behavior into this function even when the quirk didn't need
1013         to apply.  In addition the quirk was only partially implemented (the full quirk did not care what was adjacent
1014         to images and also needed bidi.cpp patched, since the quirk applies both when computing pref widths and when
1015         laying out).
1016
1017         This new patch rewrites the quirk to be complete.  The original test case attached to the bug that tested a variety
1018         of image/text combinations now fully matches WinIE.
1019
1020         Reviewed by Beth
1021
1022         Added fast/table/unbreakable-images-quirk.html
1023
1024         * rendering/RenderBlock.cpp:
1025         (WebCore::RenderBlock::calcInlinePrefWidths):
1026         * rendering/bidi.cpp:
1027         (WebCore::RenderBlock::findNextLineBreak):
1028
1029 2008-01-16  Rodney Dawes  <dobey@wayofthemonkey.com>
1030
1031         Reviewed by Jon Honeycutt
1032
1033         Move isPluginBlacklisted to PluginPackageWin.cpp, to avoid
1034         a circular dependency on PluginDatabaseWin
1035         Remove the getFileVersion method, and just check the versions directly
1036         in isPluginBlacklisted, as it was the only caller
1037
1038         http://bugs.webkit.org/show_bug.cgi?id=16884
1039
1040         * plugins/win/PluginDatabaseWin.cpp:
1041         * plugins/win/PluginDatabaseWin.h:
1042         * plugins/win/PluginPackageWin.cpp:
1043         * plugins/win/PluginPackageWin.h:
1044
1045 2008-01-16  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1046
1047         Reviewed by Lars.
1048
1049         * Set the cursor on the containingWindow() instead of the
1050         nativeWidget()
1051         * This should be safe even with plugins as the cursor is set
1052         on the mouse events.
1053
1054         * platform/qt/WidgetQt.cpp:
1055         (WebCore::Widget::setCursor):
1056
1057 2008-01-16  Brad Hughes  <bhughes@trolltech.com>
1058
1059         Reviewed by Lars.
1060
1061         Improve the sqlite3 dependency when building WebKit inside Qt.
1062
1063         Build sqlite3 into QtWebKit if a system sqlite3 development package
1064         can't be found.
1065
1066         * WebCore.pro:
1067
1068 2008-01-16  Lars Knoll  <lars@trolltech.com>
1069
1070         Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.
1071
1072         Implement GraphicsContext::clipOut and fix transparency layers.
1073
1074         Transparency layers where broken in two ways: It always used the
1075         complete device rect as the size of the layer pixmap and the pixmaps
1076         where not correctly initialized to transparent.
1077
1078         This fixes the worst drawing errors in the Inspector and makes drawing it
1079         10 times faster.
1080
1081         * platform/graphics/qt/GraphicsContextQt.cpp:
1082         (WebCore::toQtLineJoin):
1083         (WebCore::TransparencyLayer::TransparencyLayer):
1084         (WebCore::GraphicsContextPlatformPrivate::p):
1085         (WebCore::GraphicsContext::platformContext):
1086         (WebCore::GraphicsContext::savePlatformState):
1087         (WebCore::GraphicsContext::restorePlatformState):
1088         (WebCore::GraphicsContext::drawRect):
1089         (WebCore::GraphicsContext::drawLine):
1090         (WebCore::GraphicsContext::drawEllipse):
1091         (WebCore::GraphicsContext::strokeArc):
1092         (WebCore::GraphicsContext::drawConvexPolygon):
1093         (WebCore::GraphicsContext::fillRect):
1094         (WebCore::GraphicsContext::fillRoundedRect):
1095         (WebCore::GraphicsContext::clip):
1096         (WebCore::GraphicsContext::drawFocusRing):
1097         (WebCore::GraphicsContext::beginTransparencyLayer):
1098         (WebCore::GraphicsContext::endTransparencyLayer):
1099         (WebCore::GraphicsContext::clearRect):
1100         (WebCore::GraphicsContext::strokeRect):
1101         (WebCore::GraphicsContext::setLineCap):
1102         (WebCore::GraphicsContext::setLineJoin):
1103         (WebCore::GraphicsContext::setMiterLimit):
1104         (WebCore::GraphicsContext::setAlpha):
1105         (WebCore::GraphicsContext::setCompositeOperation):
1106         (WebCore::GraphicsContext::clipOut):
1107         (WebCore::GraphicsContext::translate):
1108         (WebCore::GraphicsContext::origin):
1109         (WebCore::GraphicsContext::rotate):
1110         (WebCore::GraphicsContext::scale):
1111         (WebCore::GraphicsContext::clipOutEllipseInRect):
1112         (WebCore::GraphicsContext::addInnerRoundedRectClip):
1113         (WebCore::GraphicsContext::setPlatformStrokeStyle):
1114         (WebCore::GraphicsContext::setPlatformStrokeThickness):
1115         (WebCore::GraphicsContext::setPlatformFillColor):
1116         (WebCore::GraphicsContext::setUseAntialiasing):
1117
1118 2008-01-16  Lars Knoll  <lars@trolltech.com>
1119
1120         Reviewed by Simon Hausmann <simon.hausmann@trolltech.com>.
1121
1122         Trivially implement the themed search field by mapping it to a text field
1123
1124         Also add a bunch of notImplemented warnings for other places where we don't
1125         have an implementatin in RenderTheme.
1126
1127         * platform/qt/RenderThemeQt.cpp:
1128         (WebCore::RenderThemeQt::paintTextField):
1129         (WebCore::RenderThemeQt::paintMenuListButton):
1130         (WebCore::RenderThemeQt::adjustMenuListButtonStyle):
1131         (WebCore::RenderThemeQt::paintSliderTrack):
1132         (WebCore::RenderThemeQt::paintSliderThumb):
1133         (WebCore::RenderThemeQt::paintSearchField):
1134         (WebCore::RenderThemeQt::adjustSearchFieldStyle):
1135         (WebCore::RenderThemeQt::adjustSearchFieldCancelButtonStyle):
1136         (WebCore::RenderThemeQt::paintSearchFieldCancelButton):
1137         (WebCore::RenderThemeQt::adjustSearchFieldDecorationStyle):
1138         (WebCore::RenderThemeQt::paintSearchFieldDecoration):
1139         (WebCore::RenderThemeQt::adjustSearchFieldResultsDecorationStyle):
1140         (WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
1141
1142 2008-01-16  Holger Freyther  <holger.freyther@trolltech.com>
1143
1144         Reviewed by Simon.
1145
1146         * Follow the EventHandlerWin.cpp and always return true in the handlers.
1147         * Match the windows implementation more closely as well.
1148         * This is fixing "selection" bugs with the Web Inspector
1149
1150         * page/qt/EventHandlerQt.cpp:
1151         (WebCore::EventHandler::focusDocumentView):
1152         (WebCore::EventHandler::passMousePressEventToSubframe):
1153         (WebCore::EventHandler::passMouseMoveEventToSubframe):
1154         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
1155         (WebCore::EventHandler::passMousePressEventToScrollbar):
1156
1157 2008-01-16  Simon Hausmann  <hausmann@webkit.org>
1158
1159         Reviewed by Lars Knoll <lars@trolltech.com>.
1160
1161         Fix crashes in the new networking code.
1162
1163         When the ResourceLoader cancels the handle we have to make sure not to access
1164         the resource handle afterwards again.
1165
1166         * platform/network/qt/QNetworkReplyHandler.cpp:
1167         (WebCore::QNetworkReplyHandler::finish):
1168         (WebCore::QNetworkReplyHandler::forwardData):
1169
1170 2008-01-16  Lars Knoll  <lars@trolltech.com>
1171
1172         Reviewed by Simon.
1173
1174         add conversion methods from and to QUrl to KURL.
1175
1176         Use them in the places I found at the moment. Fixes a bug
1177         where form data was encoded twice.
1178         Also fix QWebSettings to take a QUrl for the user style sheet
1179         location.
1180
1181         * WebCore.pro:
1182         * platform/KURL.h:
1183         * platform/network/qt/QNetworkReplyHandler.cpp:
1184         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
1185         * platform/network/qt/ResourceRequestQt.cpp:
1186         (WebCore::ResourceRequest::toNetworkRequest):
1187         * platform/qt/KURLQt.cpp: Added.
1188         (WebCore::KURL::KURL):
1189         (WebCore::KURL::operator QUrl):
1190
1191 2008-01-15  Darin Adler  <darin@apple.com>
1192
1193         Rubber-stamped by Maciej Stachowiak and Oliver Hunt.
1194
1195         - fix <rdar://problem/5689748> REGRESSION: Cannot redirect to protocols handled by external applications
1196
1197         Put navigation policy delegate calls back for redirects.
1198         Just rolled out the change where I took them out.
1199
1200         * loader/MainResourceLoader.cpp:
1201         (WebCore::MainResourceLoader::callContinueAfterNavigationPolicy):
1202         (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
1203         (WebCore::MainResourceLoader::willSendRequest):
1204         * loader/MainResourceLoader.h:
1205
1206 2008-01-15  Adele Peterson  <adele@apple.com>
1207
1208         Reviewed by Sam.
1209
1210         Remove unused variable for old media control background drawing code.
1211
1212         * rendering/RenderThemeMac.h:
1213         * rendering/RenderThemeMac.mm:
1214         (WebCore::RenderThemeMac::RenderThemeMac):
1215         (WebCore::RenderThemeMac::~RenderThemeMac):
1216
1217 2008-01-15  Sam Weinig  <sam@webkit.org>
1218
1219         Reviewed by Geoffrey Garen.
1220
1221         Fix <rdar://problem/5595552> r27608 introduced a 20% increase in JS binary size, 4% increase in WebCore binary size
1222
1223         - Update JS Function implementations to use a static function based method. This decreases
1224           the binary size of an Intel only build by 1013.5K.
1225
1226         * WebCore.xcodeproj/project.pbxproj:
1227         * bindings/js/JSDOMWindowCustom.cpp:
1228         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
1229         * bindings/js/JSEventTargetBase.cpp:
1230         (WebCore::jsEventTargetAddEventListener):
1231         (WebCore::jsEventTargetRemoveEventListener):
1232         (WebCore::jsEventTargetDispatchEvent):
1233         (WebCore::retrieveEventTargetAndCorrespondingNode):
1234         * bindings/js/JSEventTargetBase.h:
1235         * bindings/js/JSHTMLInputElementBase.cpp:
1236         (WebCore::jsHTMLInputElementBaseFunctionSetSelectionRange):
1237         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
1238         * bindings/js/JSHTMLInputElementBase.h:
1239         * bindings/js/JSLocation.cpp:
1240         (WebCore::JSLocation::getOwnPropertySlot):
1241         (WebCore::jsLocationProtoFuncReplace):
1242         (WebCore::jsLocationProtoFuncReload):
1243         (WebCore::jsLocationProtoFuncAssign):
1244         (WebCore::jsLocationProtoFuncToString):
1245         * bindings/js/JSLocation.h:
1246         * bindings/js/JSXMLHttpRequest.cpp:
1247         (KJS::jsXMLHttpRequestPrototypeFunctionAbort):
1248         (KJS::jsXMLHttpRequestPrototypeFunctionGetAllResponseHeaders):
1249         (KJS::jsXMLHttpRequestPrototypeFunctionGetResponseHeader):
1250         (KJS::jsXMLHttpRequestPrototypeFunctionOpen):
1251         (KJS::jsXMLHttpRequestPrototypeFunctionSend):
1252         (KJS::jsXMLHttpRequestPrototypeFunctionSetRequestHeader):
1253         (KJS::jsXMLHttpRequestPrototypeFunctionOverrideMIMEType):
1254         (KJS::jsXMLHttpRequestPrototypeFunctionAddEventListener):
1255         (KJS::jsXMLHttpRequestPrototypeFunctionRemoveEventListener):
1256         (KJS::jsXMLHttpRequestPrototypeFunctionDispatchEvent):
1257         * bindings/js/JSXMLHttpRequest.h:
1258         * bindings/js/JSXSLTProcessor.cpp:
1259         (KJS::jsXSLTProcessorPrototypeFunctionImportStylesheet):
1260         (KJS::jsXSLTProcessorPrototypeFunctionTransformToFragment):
1261         (KJS::jsXSLTProcessorPrototypeFunctionTransformToDocument):
1262         (KJS::jsXSLTProcessorPrototypeFunctionSetParameter):
1263         (KJS::jsXSLTProcessorPrototypeFunctionGetParameter):
1264         (KJS::jsXSLTProcessorPrototypeFunctionRemoveParameter):
1265         (KJS::jsXSLTProcessorPrototypeFunctionClearParameters):
1266         (KJS::jsXSLTProcessorPrototypeFunctionReset):
1267         * bindings/js/JSXSLTProcessor.h:
1268         * bindings/js/kjs_events.cpp:
1269         (WebCore::jsClipboardPrototypeFunctionClearData):
1270         (WebCore::jsClipboardPrototypeFunctionGetData):
1271         (WebCore::jsClipboardPrototypeFunctionSetData):
1272         (WebCore::jsClipboardPrototypeFunctionSetDragImage):
1273         * bindings/js/kjs_events.h:
1274         * bindings/js/kjs_navigator.cpp:
1275         (KJS::pluginsFunctionRefresh):
1276         (KJS::navigatorProtoFuncJavaEnabled):
1277         * bindings/js/kjs_navigator.h:
1278         * bindings/js/kjs_window.cpp:
1279         (KJS::Window::getOwnPropertySlot):
1280         (KJS::windowProtoFuncAToB):
1281         (KJS::windowProtoFuncBToA):
1282         (KJS::windowProtoFuncOpen):
1283         (KJS::windowProtoFuncSetTimeout):
1284         (KJS::windowProtoFuncClearTimeout):
1285         (KJS::windowProtoFuncSetInterval):
1286         (KJS::windowProtoFuncAddEventListener):
1287         (KJS::windowProtoFuncRemoveEventListener):
1288         (KJS::windowProtoFuncShowModalDialog):
1289         (KJS::windowProtoFuncNotImplemented):
1290         * bindings/js/kjs_window.h:
1291         * bindings/scripts/CodeGenerator.pm:
1292         * bindings/scripts/CodeGeneratorJS.pm:
1293
1294 2008-01-15  Adele Peterson  <adele@apple.com>
1295
1296         Reviewed by Dan.
1297
1298         Fix for <rdar://problem/5682492> With the <video> element, the audio is heard when forwarding or rewinding a movie while it's playing
1299
1300         * rendering/MediaControlElements.cpp: (WebCore::MediaControlSeekButtonElement::defaultEventHandler):
1301           Instead of pausing the media when you stop seeking on mouse up, pause the video when you first start seeking on mouse down. 
1302
1303 2008-01-15  Alp Toker  <alp@atoker.com>
1304
1305         Rubber-stamped by Anders.
1306
1307         Make the HTTP backend configurable in the GTK+ port. curl is currently
1308         the only option.
1309
1310         * GNUmakefile.am:
1311
1312 2008-01-15  Adele Peterson  <adele@apple.com>
1313
1314         Build fix.
1315
1316         * rendering/RenderThemeSafari.cpp: Removing MediaBackgroundAppearance.
1317
1318 2008-01-14  Samuel Weinig  <sam@webkit.org>
1319
1320         Reviewed by Darin.
1321
1322         Fix for <rdar://problem/5671040>
1323         REGRESSION: 6% HTML iBench regression from r28722 (getElementsByClassName)
1324
1325         On my most consistent tests, this brings the HTML iBench from 1.46 -> 1.41,
1326         which does not completely make up reported regression, but I was not able to
1327         reproduce those findings either.
1328
1329         * css/CSSStyleSelector.cpp:
1330         (WebCore::CSSStyleSelector::matchRules):
1331         (WebCore::CSSStyleSelector::checkOneSelector):
1332         * dom/ClassNames.cpp:
1333         (WebCore::ClassNames::parseClassAttribute):
1334         * dom/ClassNames.h:
1335         (WebCore::ClassNames::contains):
1336         (WebCore::ClassNames::operator[]):
1337
1338 2008-01-15  Adele Peterson  <adele@apple.com>
1339
1340         Build fix.  This time for real.
1341
1342         * rendering/RenderThemeSafari.cpp:
1343
1344 2008-01-15  Adele Peterson  <adele@apple.com>
1345
1346         Build fix.
1347
1348         * rendering/RenderThemeSafari.cpp:
1349
1350 2008-01-15  Dan Bernstein  <mitz@apple.com>
1351
1352         Reviewed by Darin Adler.
1353
1354         - fix <rdar://problem/5666926> svg/custom/use-css-no-effect-on-shadow-tree.svg is failing
1355
1356         * svg/SVGPreserveAspectRatio.cpp:
1357         (WebCore::SVGPreserveAspectRatio::getCTM): Changed the arguments' type
1358         from float to double in order to make the values passed to scale() and
1359         translate() on Mac OS X and on Windows the same.
1360         * svg/SVGPreserveAspectRatio.h:
1361
1362 2008-01-15  Alexey Proskuryakov  <ap@webkit.org>
1363
1364         Reviewed by Darin.
1365
1366         <rdar://problem/5342813> REGRESSION: Safari encodes mailto URLs incorrectly
1367
1368         Test: fast/encoding/mailto-always-utf-8.html
1369
1370         * platform/KURL.cpp: (WebCore::encodeRelativeString): Always use UTF-8 for mailto URLs.
1371
1372 2008-01-15  Adele Peterson  <adele@apple.com>
1373
1374         Reviewed by Adam and Antti.
1375
1376         WebCore part of fix for <rdar://problem/5619062> Add load progress indicator to video controls
1377
1378         * WebCore.base.exp: Removed symbol for wkGetMediaControlBackgroundImageData.  Added symbol for wkDrawMediaSliderTrack.
1379         * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Removed case for MediaBackgroundAppearance.
1380         * css/html4.css: Removed -webkit-appearance: media-background rule for the media panel element.  Removed unnecessary margin for slider.
1381         * rendering/RenderStyle.h: (WebCore::): Removed MediaBackgroundAppearance.
1382
1383         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
1384           Call updateMediaPlayer more frequently so the load progress control gets updated appropriately.
1385         * platform/mac/WebCoreSystemInterface.h: Removed wkGetMediaControlBackgroundImageData.  Added wkDrawMediaSliderTrack.
1386         * platform/mac/WebCoreSystemInterface.mm: ditto.
1387
1388         * rendering/RenderTheme.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
1389         * rendering/RenderTheme.cpp: (WebCore::RenderTheme::paint): Call paintMediaSliderTrack for elements with MediaSliderAppearance.
1390         * rendering/RenderThemeMac.h: Removed paintMediaBackground. Added paintMediaSliderTrack.
1391         * rendering/RenderThemeMac.mm:
1392         (WebCore::RenderThemeMac::adjustSliderThumbSize): Added different sizes for the media slider thumb.
1393         (WebCore::RenderThemeMac::paintMediaSliderTrack): Added.  Calls wkDrawMediaSliderTrack with the percentage the media has loaded.
1394         * rendering/RenderThemeSafari.cpp: ditto.
1395         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
1396         (WebCore::RenderThemeSafari::paintMediaSliderTrack):
1397         * rendering/RenderThemeSafari.h:
1398
1399 2008-01-15  Alexey Proskuryakov  <ap@webkit.org>
1400
1401         Reviewed by Mark Rowe.
1402
1403         Some logging channels weren't initialized from user defaults.
1404
1405         * platform/mac/LoggingMac.mm: (WebCore::InitializeLoggingChannelsIfNecessary):
1406         Initialize LogPlatformLeaks, LogStorageAPI, LogMedia, LogPlugin.
1407
1408 2008-01-14  Steve Falkenburg  <sfalken@apple.com>
1409
1410         Use shared vsprops for most vcproj properties.
1411         
1412         Reviewed by Darin.
1413
1414         * WebCore.vcproj/QTMovieWin.vcproj:
1415         * WebCore.vcproj/WebCore.vcproj:
1416         * platform/graphics/win/QTMovieWin.cpp:
1417         (QTMovieWin::initializeQuickTime): Fix compiler warning.
1418
1419 2008-01-14  Eric Seidel  <eric@webkit.org>
1420
1421         Reviewed by mjs.
1422
1423         Remove a couple more uses of DeprecatedString
1424
1425         No functional changes, thus no test case.
1426
1427         * dom/Document.cpp:
1428         (WebCore::Document::write):
1429         (WebCore::Document::writeln):
1430         (WebCore::Document::recalcStyleSelector):
1431         * dom/Document.h:
1432
1433 2008-01-14  Pierre-Luc Beaudoin  <pierre-luc.beaudoin@collabora.co.uk>
1434
1435         Reviewed by Alp Toker.
1436
1437         Build fix: missing symbols when compiling WebKit/Gtk+ with --enable-svg-filters
1438         http://bugs.webkit.org/show_bug.cgi?id=16874
1439
1440         * GNUmakefile.am:
1441         * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Added.
1442         (WebCore::SVGResourceFilter::createPlatformData):
1443         (WebCore::SVGResourceFilter::prepareFilter):
1444         (WebCore::SVGResourceFilter::applyFilter):
1445
1446 2008-01-14  Finnur Thorarinsson  <finnur.webkit@gmail.com>
1447
1448         Reviewed by hyatt & eseidel.
1449
1450         - fix http://bugs.webkit.org/show_bug.cgi?id=16844
1451         RenderText::addLineBoxRects erroneously includes last char for boundingBox
1452
1453         This patch fixes an issue with addLineBoxRects not correctly calculating the 
1454         rects due to an off-by-one error in using box->end(). We were assuming that 
1455         end() gives the index past the last character, when in fact it gives the 
1456         index _of_ the last character. 
1457
1458         Eric Seidel and I could not find a way to test this via DRT. This method is 
1459         only used by WebKit or Safari for displaying selection rects AFAICT.
1460
1461         * rendering/RenderText.cpp:
1462         (WebCore::RenderText::addLineBoxRects):
1463
1464 2008-01-14  Darin Adler  <darin@apple.com>
1465
1466         Reviewed by Geoff.
1467
1468         - fix crash seen in layout tests
1469
1470         * html/HTMLFrameSetElement.cpp:
1471         (WebCore::HTMLFrameSetElement::attach):
1472         Remove incorrect cast to HTMLElement* for parentNode(). The parent is either an
1473         HTMLElement or a Document, not necessarily an HTMLElement.
1474
1475 2008-01-14  Darin Adler  <darin@apple.com>
1476
1477         Reviewed by Sam.
1478
1479         - fix mistakes Sam noticed in my re-speed-up patch
1480
1481         * dom/Element.cpp:
1482         (WebCore::Element::virtualHasTagName): Moved out of header file. No reason to make
1483         this inline.
1484         * dom/Element.h: Moved virtualHasTagName out of header file.
1485
1486         * dom/Node.cpp:
1487         (WebCore::Node::virtualHasTagName): Moved out of header file. No reason to make
1488         this inline.
1489         * dom/Node.h: Removed incorrect "virtual" on hasTagName and moved virtualHasTagName
1490         out of header file.
1491
1492         * platform/text/StringBuffer.h: Added. Has just the new StringBuffer class.
1493
1494         * platform/text/StringImpl.h: Removed StringBuffer class.
1495
1496         * loader/DocumentLoader.cpp: Added StringBuffer.h include.
1497         * platform/text/String.cpp: Ditto.
1498         * platform/text/StringImpl.cpp: Ditto.
1499         * platform/text/TextCodecLatin1.cpp: Ditto.
1500         * platform/text/TextCodecUTF16.cpp: Ditto.
1501         * platform/text/TextCodecUserDefined.cpp: Ditto.
1502
1503         * WebCore.vcproj/WebCore.vcproj: Added StringBuffer.h.
1504         * WebCore.xcodeproj/project.pbxproj: Ditto.
1505
1506 2008-01-14  Dave Hyatt  <hyatt@apple.com>
1507
1508         Clean up all the misplaced graphics files after the recent file moves.  Clean up the project to
1509         accurately reflect the location of all the graphics files.
1510         
1511         Reviewed by Adam
1512
1513         * WebCore.vcproj/WebCore.vcproj:
1514         * platform/graphics/win/GraphicsContextWin.cpp: Copied from platform/win/GraphicsContextWin.cpp.
1515         * platform/graphics/win/UniscribeController.cpp: Copied from platform/win/UniscribeController.cpp.
1516         * platform/graphics/win/UniscribeController.h: Copied from platform/win/UniscribeController.h.
1517         * platform/win/GraphicsContextWin.cpp: Removed.
1518         * platform/win/UniscribeController.cpp: Removed.
1519         * platform/win/UniscribeController.h: Removed.
1520
1521 2008-01-14  Geoffrey Garen  <ggaren@apple.com>
1522
1523         Reviewed by Sam Weinig.
1524         
1525         Some cleanup to my last patch.
1526
1527         Removed one unused setter declaration and one unused setter definition.
1528         
1529         Renamed DoNotCheckDomainSecurityOnRead to DoNotCheckDomainSecurityOnGet
1530         because "get" is all over the IDL files, and "read" is not.
1531
1532         * bindings/scripts/CodeGeneratorJS.pm:
1533         * page/DOMWindow.h:
1534         (WebCore::DOMWindow::defaultstatus):
1535         * page/DOMWindow.idl:
1536
1537 2008-01-14  Dan Bernstein  <mitz@apple.com>
1538
1539         Rubber-stamped by Alice Liu.
1540
1541         - remove reference to nonexistent file
1542
1543         * WebCore.vcproj/WebCore.vcproj: Removed reference to SVGFont.h.
1544
1545 2008-01-14  Darin Adler  <darin@apple.com>
1546
1547         Reviewed by Adam.
1548
1549         - re-speed-up the page load test (my StringImpl change slowed it down)
1550           <rdar://problem/5677241> 1.5% PLT regression from r29098
1551
1552         To reverse the slowdown I caused by changing StringImpl, I tightened it up,
1553         and also did a little optimization in the HTML tokenizer and in other clients
1554         of Vector.
1555
1556         * WebCore.base.exp: Removed export of a now-inline function.
1557
1558         * css/CSSParser.cpp:
1559         (WebCore::CSSParser::parseTransitionProperty): Removed use of DeprecatedString
1560         to get property ID. This could be sped up even more by writing a fast path
1561         to use a local Vector<char> rather than allocating a string.
1562         (WebCore::convertASCIIToFloat): Added. Allows numeric conversion without
1563         allocating a string object to hold the number.
1564         (WebCore::CSSParser::lex): Changed to call convertASCIIToFloat instead of
1565         DeprecatedString::toFloat.
1566
1567         * dom/Element.h:
1568         (WebCore::Element::hasTagName): Made this non-virtual and inline if you have
1569         an Element*. It's still virtual if you have a Node*.
1570         (WebCore::Element::virtualHasTagName): Virtual version that makes the Node*
1571         case work.
1572
1573         * dom/Node.h:
1574         (WebCore::Node::hasTagName): Made this non-virtual and inline so that Element
1575         can override it with an inline. This is the same technique we use for
1576         firstChild and lastChild.
1577         (WebCore::Node::virtualHasTagName): This is the private virtual that Element
1578         overrides.
1579
1580         * dom/Text.cpp:
1581         (WebCore::Text::splitText): Clean up by using a RefPtr here instead of a
1582         PassRefPtr.
1583
1584         * html/HTMLTokenizer.cpp:
1585         (WebCore::HTMLTokenizer::parseSpecial): Use the new advancePastNonNewline(),
1586         which is more efficient in cases where we know the character is not a newline
1587         and hence we don't have to update the line number.
1588         (WebCore::HTMLTokenizer::parseComment): Ditto.
1589         (WebCore::HTMLTokenizer::parseServer): Ditto.
1590         (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
1591         (WebCore::HTMLTokenizer::parseText): Ditto.
1592         (WebCore::HTMLTokenizer::parseEntity): Ditto.
1593         (WebCore::HTMLTokenizer::parseTag): Ditto. Also streamline the QuotedValue case
1594         so there's one less branch taken for non-punctuation characters since this
1595         code path is *so* hot.
1596         (WebCore::HTMLTokenizer::write): More of the same.
1597
1598         * loader/Cache.cpp:
1599         (WebCore::Cache::lruListFor): Use Vector::grow instead of resize.
1600
1601         * loader/DocumentLoader.cpp:
1602         (WebCore::canonicalizedTitle): Use StringBuffer instead of Vector<UChar>.
1603
1604         * loader/TextResourceDecoder.cpp:
1605         (WebCore::TextResourceDecoder::checkForCSSCharset): Use Vector::grow instead of resize.
1606         (WebCore::TextResourceDecoder::checkForHeadCharset): Ditto.
1607         (WebCore::TextResourceDecoder::decode): Use Vector::grow and shrink instead of resize.
1608         (WebCore::TextResourceDecoder::flush): Use Vector::shrink instead of resize.
1609
1610         * platform/KURL.cpp:
1611         (WebCore::KURL::decode_string): Use Vector::grow instead of resize.
1612
1613         * platform/SharedBuffer.cpp:
1614         (WebCore::SharedBuffer::clear): Use Vector::shrink instead of resize.
1615
1616         * platform/graphics/BitmapImage.cpp:
1617         (WebCore::BitmapImage::cacheFrame): Use Vector::grow instead of resize.
1618
1619         * platform/network/FormData.cpp:
1620         (WebCore::FormData::appendData): Use Vector::grow instead of resize.
1621         (WebCore::FormData::flatten): Ditto.
1622
1623         * platform/text/AtomicString.cpp:
1624         (WebCore::CStringTranslator::translate): Use a new StringImpl constructor made just
1625         for use by AtomicString. Avoids setting fields twice, and also preserves reference
1626         count behavior (which I changed for the other constructors, since they're entirely
1627         private and used only inside the class).
1628         (WebCore::UCharBufferTranslator::translate): Ditto.
1629
1630         * platform/text/Base64.cpp:
1631         (WebCore::base64Encode): Use Vector::grow instead of resize.
1632         (WebCore::base64Decode): Use Vector::grow and shrink instead of resize.
1633
1634         * platform/text/PlatformString.h:
1635         (WebCore::String::adopt): Added an overload for the new StringBuffer class. Also
1636         made both versions inline.
1637
1638         * platform/text/SegmentedString.h:
1639         (WebCore::SegmentedString::advancePastNewline): Added. One less branch for case
1640         where the character is known to be a newline.
1641         (WebCore::SegmentedString::advancePastNonNewline): Added. Less code for case where
1642         the character is known not to be a newline.
1643
1644         * platform/text/String.cpp:
1645         (WebCore::String::append): Use StringBuffer instead of Vector<UChar>.
1646         (WebCore::String::insert): Ditto.
1647         (WebCore::String::truncate): Ditto.
1648         (WebCore::String::remove): Ditto.
1649         (WebCore::String::format): Use Vector::grow instead of resize.
1650
1651         * platform/text/StringImpl.cpp:
1652         (WebCore::StringImpl::StringImpl): Changed constructors to start with a refCount
1653         of 1 instead of 0, and made them all inline. Eliminates the WithOneRef constructor
1654         since they all behave this way now. The only exceptions are the constructors for
1655         AtomicString, which retain the old behavior.
1656         (WebCore::StringImpl::empty): Simplified, since we no longer need to use the
1657         special WithOneRef constructor.
1658         (WebCore::StringImpl::toCoordsArray): Use StringBuffer instead of Vector<UChar>.
1659         (WebCore::StringImpl::lower): Ditto.
1660         (WebCore::StringImpl::upper): Ditto.
1661         (WebCore::StringImpl::secure): Ditto.
1662         (WebCore::StringImpl::foldCase): Ditto.
1663         (WebCore::StringImpl::simplifyWhiteSpace): Ditto. Also change to use Vector::shrink
1664         instead of resize (since half of the function uses Vector<UChar>).
1665         (WebCore::StringImpl::capitalize): Use StringBuffer instead of Vector<UChar>.
1666         (WebCore::StringImpl::replace): Ditto.
1667         (WebCore::StringImpl::ascii): Streamlined a bit.
1668         (WebCore::StringImpl::createStrippingNullCharacters): Use StringBuffer insetad of
1669         Vector<UChar>. Took out checks for null characters and 0 length that aren't needed.
1670         Coded the check for null characters in a slightly more efficient way. Since this
1671         is so hot, didn't call adopt at all, putting the code right in here, including
1672         the call to the StringImpl constructor and adoptRef (for the fast case).
1673         (WebCore::StringImpl::adopt): Added a version for the new StringBuffer class.
1674         Removed the attempt to resize the buffer at the time we adopt based on measuring
1675         actual use and realizing that it's just a character here or there and not worth
1676         a call to fastRealloc. Changed to use adoptRef since the constructor now starts
1677         with a refCount of 1.
1678         (WebCore::StringImpl::create): Changed to use adoptRef since the constructor now
1679         starts with a refCount of 1.
1680         (WebCore::StringImpl::createWithTerminatingNullCharacter): Ditto.
1681         (WebCore::StringImpl::copy): Ditto. Also made non-inline since the constructor
1682         itself is now inline.
1683
1684         * platform/text/StringImpl.h: Added a StringBuffer class that's useful for
1685         putting characters into a buffer before creating an immutable string. Not good
1686         at resizing the way Vector<UChar> is, so only useful for things that rarely need
1687         to be resized. Added a new AdoptBuffer constructor and empty constructor, but
1688         made all constructors private so they can be inlined and only used inside the
1689         StringImpl class. Added two new constructors for AtomicString. Made copy()
1690         no longer inline. Changed the type of the [] operator to unsigned instead of
1691         int and added an assertion. Made the hash functions inline.
1692
1693         * platform/text/TextCodecICU.cpp:
1694         (WebCore::TextCodecICU::encode): Use Vector::grow instead of resize.
1695
1696         * platform/text/TextCodecLatin1.cpp:
1697         (WebCore::TextCodecLatin1::decode): Use StringBuffer instead of Vector<UChar>.
1698         (WebCore::encodeComplexWindowsLatin1): Use Vector::grow instead of resize.
1699
1700         * platform/text/TextCodecUTF16.cpp:
1701         (WebCore::TextCodecUTF16::decode): Use StringBuffer instead of Vector<UChar>.
1702
1703         * platform/text/TextCodecUserDefined.cpp:
1704         (WebCore::TextCodecUserDefined::decode): Use StringBuffer instead of Vector<UChar>.
1705         (WebCore::encodeComplexUserDefined): Use Vector::grow instead of resize.
1706
1707         * platform/text/TextEncoding.cpp:
1708         (WebCore::TextEncoding::encode): Use Vector::grow instead of resize.
1709
1710         * platform/text/TextStream.cpp:
1711         (WebCore::TextStream::operator<<): Use Vector::grow instead of resize.
1712
1713         * platform/text/mac/TextCodecMac.cpp:
1714         (WebCore::TextCodecMac::encode): Use Vector::grow instead of resize.
1715
1716         * rendering/AutoTableLayout.cpp:
1717         (WebCore::AutoTableLayout::insertSpanCell): Use Vector::grow instead of resize.
1718
1719         * rendering/RenderFrameSet.h:
1720         (WebCore::FrameEdgeInfo::FrameEdgeInfo): Allocate vectors with the correct initial
1721         size instead of calling resize on them after allocating empty.
1722
1723         * rendering/RenderListMarker.cpp:
1724         (WebCore::RenderListMarker::paint): Use Vector::grow instead of resize.
1725
1726         * rendering/RenderStyle.cpp: Removed CursorList::operator==.
1727         * rendering/RenderStyle.h:
1728         (WebCore::CursorList::operator==): Implemented using the Vector ==.
1729         (WebCore::CursorList::operator!=): Ditto.
1730
1731         * rendering/RenderTable.cpp:
1732         (WebCore::RenderTable::splitColumn): Use Vector::grow instead of resize.
1733         (WebCore::RenderTable::appendColumn): Ditto.
1734
1735         * rendering/RenderTableSection.cpp:
1736         (WebCore::RenderTableSection::ensureRows): Use Vector::grow instead of resize.
1737
1738         * rendering/bidi.cpp:
1739         (WebCore::addMidpoint): Use Vector::grow instead of resize.
1740
1741         * xml/XPathNodeSet.h:
1742         (WebCore::XPath::NodeSet::clear): Use Vector::shrink instead of resize.
1743
1744 2008-01-13  Steve Falkenburg  <sfalken@apple.com>
1745
1746         Share common files across projects.
1747         
1748         Unify vsprops files
1749         Debug:          common.vsprops, debug.vsprops
1750         Debug_Internal: common.vsprops, debug.vsprops, debug_internal.vsprops
1751         Release:        common.vsprops, release.vsprops
1752         
1753         Shared properties can go into common.vsprops, shared debug settings can go into debug.vsprops.
1754         debug_internal.vsprops will be mostly empty except for file path prefix modifiers.
1755
1756         Pull auto-version.sh, VERSION, and PRODUCTVERSION from tools.
1757
1758         Reviewed by Adam Roben.
1759
1760         * WebCore.vcproj/PRODUCTVERSION: Removed.
1761         * WebCore.vcproj/QTMovieWin.vcproj:
1762         * WebCore.vcproj/VERSION: Removed.
1763         * WebCore.vcproj/WebCore.vcproj:
1764         * WebCore.vcproj/auto-version.sh: Removed.
1765         * WebCore.vcproj/debug.vsprops: Removed.
1766         * WebCore.vcproj/debug_internal.vsprops: Removed.
1767         * WebCore.vcproj/release.vsprops: Removed.
1768
1769 2008-01-13  Dan Bernstein  <mitz@apple.com>
1770
1771         Reviewed by Darin Adler.
1772
1773         - fix http://bugs.webkit.org/show_bug.cgi?id=16865
1774           fast/layers/resize-layer-deletion-crash.html crashes under GuardMalloc
1775
1776         * rendering/RenderBox.cpp:
1777         (WebCore::RenderBox::destroy): Removed the call to
1778         RenderLayer::destroy() from here, because ~RenderLayer() calls
1779         RenderObject() methods.
1780         * rendering/RenderObject.cpp:
1781         (WebCore::RenderObject::destroy): Added the call to
1782         RenderLayer::destroy() here.
1783
1784 2008-01-13  Eric Seidel  <eric@webkit.org>
1785
1786         Reviewed by darin.
1787
1788         Range.insertNode does not update endContainer endIndex correctly
1789         in the case where it had to split a text node.
1790         http://bugs.webkit.org/show_bug.cgi?id=16765
1791         
1792         Darin pointed out during review that we still don't handle the dynamic
1793         range case (where the dom tree changes not using range methods)
1794         Thus this code will get ripped out when we add that.  The test cases
1795         are still valid and useful however, so I'm landing this as-is.
1796
1797         Tests: fast/dom/Range/range-insertNode-separate-endContainer.html
1798                fast/dom/Range/range-insertNode-splittext.html
1799
1800         * dom/Range.cpp:
1801         (WebCore::Range::insertNode): handle the splitText case correctly.
1802
1803 2008-01-13  Darin Adler  <darin@apple.com>
1804
1805         Reviewed by Eric.
1806
1807         - http://bugs.webkit.org/show_bug.cgi?id=16861
1808           get rid of unnecessary string copying
1809
1810         * dom/Document.cpp:
1811         (WebCore::Document::setDomain): Removed unneeded call to copy.
1812         (WebCore::Document::parseQualifiedName): Removed unneeded call to copy, and
1813         unneeded length argument to substring, which stops at the end of the string
1814         if you don't specify a length.
1815         (WebCore::Document::createAttributeNS): Replaced code that was calling copy
1816         with more-efficient code using the substring function.
1817         * dom/StyledElement.cpp:
1818         (WebCore::StyledElement::addCSSColor): Removed unneeded call to copy.
1819         * editing/InsertIntoTextNodeCommand.cpp:
1820         (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand): Removed
1821         unneeded copy and also initialized text instead of assigning to it.
1822         (WebCore::InsertIntoTextNodeCommand::doApply): Removed redundant assertions.
1823         (WebCore::InsertIntoTextNodeCommand::doUnapply): Ditto.
1824
1825         * editing/htmlediting.cpp:
1826         (WebCore::stringWithRebalancedWhitespace): Removed unneeded call to copy.
1827         This one was particularly bad since we just turned around and copied it again!
1828
1829         * editing/markup.cpp:
1830         (WebCore::stringValueForRange): Removed unneeded call to copy.
1831
1832         * loader/icon/IconDatabase.cpp:
1833         (WebCore::IconDatabase::performOpenInitialization): Changed logging code to not
1834         get the path from the database object. This was the only reason the database
1835         had to keep its path around.
1836
1837         * platform/sql/SQLiteDatabase.cpp:
1838         (WebCore::SQLiteDatabase::open): Use a local variable instead of a data member to
1839         convert the string to a null-terminated one.
1840         (WebCore::SQLiteDatabase::close): Removed the code to clear out m_path.
1841         * platform/sql/SQLiteDatabase.h: Removed the m_path data member and the path
1842         functio member. Also tweaked formatting and comments a bit. Removed the unused
1843         escapeSQLString function.
1844
1845         * platform/text/String.cpp: (WebCore::operator+): Removed uneeded calls to copy.
1846
1847 2008-01-13  Oliver Hunt  <oliver@apple.com>
1848
1849         Attempt to fix QT build
1850
1851         * html/CanvasRenderingContext2D.cpp:
1852         (WebCore::CanvasRenderingContext2D::willDraw):
1853
1854 2008-01-13  Oliver Hunt  <oliver@apple.com>
1855
1856         Reviewed by Mark Rowe.
1857
1858         Avoid repainting the entire canvas element when possible.
1859
1860         http://bugs.webkit.org/show_bug.cgi?id=16859
1861
1862         We now only register the dirty regions of a canvas for repainting, rather
1863         than the entire element (though repaint coalescing may choose to combine
1864         these regions).  This doesn't cause a measurable regression in the worst
1865         case (clearing the canvas repeatedly), but is a moderate-large win if only
1866         a minor update has occurred.  If there is any CSS scaling applied to the
1867         canvas almost any update short of clearing the entire element is substantially
1868         faster.
1869
1870         * html/CanvasRenderingContext2D.cpp:
1871         (WebCore::CanvasRenderingContext2D::willDraw):
1872         * html/HTMLCanvasElement.cpp:
1873         (WebCore::HTMLCanvasElement::willDraw):
1874
1875 2008-01-13  Michael Goddard  <michael.goddard@trolltech.com>
1876
1877         Reviewed by Anders Carlsson.
1878
1879         Move RuntimeObjectImp creations into Instance.
1880         Make the ctor protected, and Instance a friend class, so
1881         that all creation of RuntimeObjectImps goes through
1882         one place.
1883
1884         * bindings/js/kjs_dom.cpp:
1885         (WebCore::getRuntimeObject):
1886
1887 2008-01-12  Rodney Dawes  <dobey@wayofthemonkey.com>
1888
1889         Gtk debug build fix.  Reviewed by Mark Rowe.
1890
1891         Add plugin logging channel, and use it rather than Win32-specific debugging methods _RPTF1 _RPTF2 and _CRT_WARN.
1892
1893         * WebCore.pro: Add plugins directory to DEPENDPATH so dependencies are correctly tracked.
1894         * platform/Logging.cpp:
1895         * platform/Logging.h:
1896         * plugins/PluginDebug.h:
1897
1898 2008-01-12  Adam Barth  <hk9565@gmail.com>
1899
1900         Reviewed by Maciej (and also tweaked a little bit).
1901
1902         - more thorough fix for some crashing tests
1903           http://bugs.webkit.org/show_bug.cgi?id=16782
1904
1905         * loader/FrameLoader.cpp:
1906         (WebCore::FrameLoader::urlSelected):
1907         (WebCore::FrameLoader::submitForm):
1908         (WebCore::FrameLoader::executeIfJavaScriptURL):
1909         * loader/FrameLoader.h:
1910
1911 2008-01-12  Maciej Stachowiak  <mjs@apple.com>
1912
1913         Reviewed by Sam.
1914
1915         - fixed <rdar://problem/5556374> REGRESSION: cross-domain error when one URL uses an explicit port number and another doesn't
1916         
1917         * platform/SecurityOrigin.cpp:
1918         (WebCore::isDefaultPortForProtocol):
1919         (WebCore::SecurityOrigin::SecurityOrigin):
1920
1921 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
1922
1923         Reviewed by Oliver Hunt.
1924         
1925         Fixed <rdar://problem/5665251> REGRESSION (r28880-r28886): Global
1926         variable access (16644)
1927         
1928         Removed the ReadOnly bit from some properties, to match Firefox. Also
1929         removed status-related setters, to allow using their names as variable
1930         names.
1931         
1932         * bindings/scripts/CodeGeneratorJS.pm: Added support for properties that
1933         are one-way across domain boundaries, to match Firefox.
1934
1935         * bindings/js/kjs_window.cpp: Changed ReadOnly declarations to match FF.
1936
1937         * bindings/scripts/CodeGeneratorJS.pm: Don't use JSObject:: because
1938         we don't know that JSObject is our base class.
1939
1940         * page/DOMWindow.idl: Replaced lots of readonly declarations with
1941         [Replaceable] declarations.
1942
1943         * page/DOMWindow.h: Removed interfaces for setting status text via the
1944         DOM. (They were getting in the way of, e.g., "var status"
1945         declarations.) By default, IE 7 and FF disable these interfaces in order
1946         to defend against phishing attacks that try to spoof domain names in the
1947         statusbar.
1948         * page/DOMWindow.cpp:
1949
1950 2008-01-11  Anyang Ren  <anyang.ren@gmail.com>
1951
1952         Reviewed by Darin Adler.
1953
1954         http://bugs.webkit.org/show_bug.cgi?id=15960
1955         The view source mode should skip an empty attribute value only if
1956         the attribute name is not followed by an equal sign (=).
1957
1958         Test: fast/frames/viewsource-empty-attribute-value.html
1959
1960         * html/HTMLViewSourceDocument.cpp:
1961         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
1962
1963 2008-01-11  Sylvain Pasche  <sylvain.pasche@gmail.com>
1964
1965         Reviewed by Alp Toker.
1966
1967         [Gtk] Uneven glyph spacing with subpixel antialiasing
1968         http://bugs.webkit.org/show_bug.cgi?id=16715
1969
1970         Use cairo font options from the default GDK screen when creating a
1971         scaled font.
1972
1973         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
1974         (WebCore::FontPlatformData::FontPlatformData):
1975
1976 2008-01-11  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
1977
1978         Reviewed by Maciej.
1979
1980         Added a new forwarding header, because Activation.h has been separated
1981         from function.h
1982
1983         * ForwardingHeaders/kjs/Activation.h: Added.
1984
1985 2008-01-11  Luca Bruno  <lethalman88@gmail.com>
1986
1987         Reviewed by Alp Toker.
1988
1989         http://bugs.webkit.org/show_bug.cgi?id=16729
1990         [cURL] Allow multiple files for upload
1991
1992         * platform/network/ResourceHandleInternal.h:
1993         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
1994         * platform/network/curl/ResourceHandleCurl.cpp:
1995         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
1996         * platform/network/curl/ResourceHandleManager.cpp:
1997         (WebCore::readCallback): added
1998         (WebCore::ResourceHandleManager::setupPOST): setup for streaming the POST
1999         (WebCore::ResourceHandleManager::startJob):
2000         (WebCore::ResourceHandleManager::cancel): revert the previous patch for regression
2001         * platform/network/curl/ResourceHandleManager.h:
2002
2003 2008-01-11  Christian Dywan  <christian@imendio.com>
2004
2005         Reviewed by Alp Toker.
2006
2007         [Gtk] Menu items need underscores
2008         http://bugs.webkit.org/show_bug.cgi?id=16817
2009
2010         Add underscores to appropriate menu labels.
2011         Also adjust strings slightly.
2012
2013         * platform/gtk/ContextMenuItemGtk.cpp:
2014         (WebCore::ContextMenuItem::createNativeMenuItem):
2015         * platform/gtk/LocalizedStringsGtk.cpp:
2016         (WebCore::searchableIndexIntroduction):
2017         (WebCore::fileButtonChooseFileLabel):
2018         (WebCore::fileButtonNoFileSelectedLabel):
2019         (WebCore::contextMenuItemTagOpenLinkInNewWindow):
2020         (WebCore::contextMenuItemTagDownloadLinkToDisk):
2021         (WebCore::contextMenuItemTagCopyLinkToClipboard):
2022         (WebCore::contextMenuItemTagOpenImageInNewWindow):
2023         (WebCore::contextMenuItemTagDownloadImageToDisk):
2024         (WebCore::contextMenuItemTagCopyImageToClipboard):
2025         (WebCore::contextMenuItemTagOpenFrameInNewWindow):
2026         (WebCore::contextMenuItemTagCopy):
2027         (WebCore::contextMenuItemTagGoBack):
2028         (WebCore::contextMenuItemTagGoForward):
2029         (WebCore::contextMenuItemTagStop):
2030         (WebCore::contextMenuItemTagReload):
2031         (WebCore::contextMenuItemTagCut):
2032         (WebCore::contextMenuItemTagPaste):
2033         (WebCore::contextMenuItemTagIgnoreSpelling):
2034         (WebCore::contextMenuItemTagLearnSpelling):
2035         (WebCore::contextMenuItemTagSearchWeb):
2036         (WebCore::contextMenuItemTagLookUpInDictionary):
2037         (WebCore::contextMenuItemTagOpenLink):
2038         (WebCore::contextMenuItemTagIgnoreGrammar):
2039         (WebCore::contextMenuItemTagSpellingMenu):
2040         (WebCore::contextMenuItemTagShowSpellingPanel):
2041         (WebCore::contextMenuItemTagCheckSpelling):
2042         (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
2043         (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
2044         (WebCore::contextMenuItemTagFontMenu):
2045         (WebCore::contextMenuItemTagBold):
2046         (WebCore::contextMenuItemTagItalic):
2047         (WebCore::contextMenuItemTagUnderline):
2048         (WebCore::contextMenuItemTagOutline):
2049         (WebCore::contextMenuItemTagWritingDirectionMenu):
2050         (WebCore::contextMenuItemTagDefaultDirection):
2051         (WebCore::contextMenuItemTagLeftToRight):
2052         (WebCore::contextMenuItemTagRightToLeft):
2053         (WebCore::contextMenuItemTagInspectElement):
2054         (WebCore::searchMenuClearRecentSearchesText):
2055
2056 2008-01-11  Ada Chan  <adachan@apple.com>
2057
2058         <rdar://problem/5681557> On Windows Safari, mouse events are ignored after clicking on link that triggers download
2059         Moved the call to cache page from provisionalLoadStarted() to commitProvisionalLoad(), since 
2060         provisionalLoadStarted() can be called for cases that do not result in a page navigation, for example,
2061         when a link to download a file has been clicked.
2062
2063         Reviewed by John and Anders.
2064
2065         * loader/FrameLoader.cpp:
2066         (WebCore::FrameLoader::provisionalLoadStarted):
2067         (WebCore::FrameLoader::commitProvisionalLoad):
2068
2069 2008-01-11  Jon Honeycutt  <jhoneycutt@apple.com>
2070
2071         Reviewed by Anders.
2072
2073         <rdar://problem/5683529> plugins/embed-inside-object.html is timing
2074         out/failing
2075
2076         Revert to using FrameTree::find() so that frame aliases like "_self" and
2077         "_current" are interpreted properly
2078
2079         * plugins/win/PluginViewWin.cpp:
2080         (WebCore::PluginViewWin::performRequest):
2081         (WebCore::PluginViewWin::load):
2082
2083 2008-01-11  Alp Toker  <alp@atoker.com>
2084
2085         Reviewed by Dave Hyatt and Mark Rowe.
2086
2087         http://bugs.webkit.org/show_bug.cgi?id=16089
2088         [GTK] Support custom fonts, CachedFont::platformDataFromCustomData()
2089
2090         Add support for CSS2 @font-face custom/downloadable fonts to the GTK+
2091         port.
2092
2093         * GNUmakefile.am:
2094         * WebCore.pro:
2095         * loader/CachedFont.cpp:
2096         (WebCore::CachedFont::~CachedFont):
2097         (WebCore::CachedFont::ensureCustomFontData):
2098         (WebCore::CachedFont::platformDataFromCustomData):
2099         (WebCore::CachedFont::allReferencesRemoved):
2100         * platform/graphics/gtk/FontCustomPlatformData.cpp: Added.
2101         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
2102         (WebCore::FontCustomPlatformData::fontPlatformData):
2103         (WebCore::releaseData):
2104         (WebCore::createFontCustomPlatformData):
2105         * platform/graphics/gtk/FontCustomPlatformData.h: Added.
2106         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
2107         * platform/graphics/gtk/FontPlatformData.h:
2108         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2109         (WebCore::FontPlatformData::FontPlatformData):
2110         (WebCore::FontPlatformData::init):
2111         (WebCore::FontPlatformData::isFixedPitch):
2112         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
2113         (WebCore::SimpleFontData::platformDestroy):
2114
2115 2008-01-11  Adam Roben  <aroben@apple.com>
2116
2117         Remove FrameLoader::committedFirstRealDocumentLoad
2118         
2119         This method no longer has any callers.
2120
2121         Reviewed by Hyatt.
2122
2123         * loader/FrameLoader.h:
2124
2125 2008-01-11  Antti Koivisto  <antti@apple.com>
2126
2127         Add a standalone version of the blog post video player as a manual test.
2128
2129         * manual-tests/resources/touch-poster.png: Added.
2130         * manual-tests/video-player.html: Added.
2131
2132 2008-01-10  Antti Koivisto  <antti@apple.com>
2133
2134         Reviewed by Adam.
2135
2136         Fix <rdar://problem/5682767>
2137         Video does not show up in http://webkit.org/blog/140/html5-media-support/ on Windows
2138         
2139         Take care that GWorld is created and deletes when needed as size or visibility changes.
2140
2141         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
2142         (WebCore::MediaPlayerPrivate::load):
2143         * platform/graphics/win/QTMovieWin.cpp:
2144         (QTMovieWinPrivate::QTMovieWinPrivate):
2145         (QTMovieWinPrivate::updateGWorld):
2146         (QTMovieWinPrivate::setSize):
2147         (QTMovieWin::setVisible):
2148         (QTMovieWin::initializeQuickTime):
2149
2150 2008-01-11  David Hyatt  <hyatt@apple.com>
2151
2152         Fix for bug 11188, setting hspace on a table overrides align=center.  Fix align=center to be done using
2153         mapped attributes so that it does not get overridden by hspace all the time.
2154
2155         Reviewed by mitz
2156
2157         Added fast/table/table-hspace-align-center.html
2158
2159         * css/html4.css:
2160         * html/HTMLTableElement.cpp:
2161         (WebCore::HTMLTableElement::parseMappedAttribute):
2162
2163 2008-01-11  Mark Rowe  <mrowe@apple.com>
2164
2165         Qt build fix.
2166
2167         * platform/qt/TemporaryLinkStubs.cpp: Include CString.h.
2168
2169 2008-01-11  Mark Rowe  <mrowe@apple.com>
2170
2171         Qt build fix.  Add link stubs for the new FileSystem.h functions introduced
2172         in r29399.
2173
2174         * platform/qt/TemporaryLinkStubs.cpp:
2175         (WebCore::openTemporaryFile):
2176
2177 2008-01-11  Rodney Dawes  <dobey@wayofthemonkey.com>
2178
2179         Reviewed by Anders Carlsson.
2180
2181         Bug 16779: Make the PluginStream implementation be shared across platforms
2182         http://bugs.webkit.org/show_bug.cgi?id=16779
2183
2184         Add the new shared PluginStream files to the GTK+ and Win32 builds.
2185         Add PluginStreamClient class for the streamDidFinishLoading method.
2186         Add open/close/write methods to FileSystem for temporary file handling.
2187         Add PluginDebug.h and npfunctions.h for shared PluginStream.
2188         Add shared PluginStream.
2189         Remove PluginStreamWin.
2190         Update PluginViewWin to use shared PluginStream and PluginStreamClass.
2191
2192         * GNUmakefile.am:
2193         * WebCore.pro:
2194         * WebCore.vcproj/WebCore.vcproj:
2195         * platform/FileSystem.h:
2196         * platform/gtk/FileSystemGtk.cpp:
2197         * platform/win/FileSystemWin.cpp:
2198         * plugins/PluginDebug.h:
2199         * plugins/PluginStream.cpp:
2200         * plugins/PluginStream.h:
2201         * plugins/npfunctions.h:
2202         * plugins/win/PluginDebug: Moved to PluginDebug.h.
2203         * plugins/win/PluginStreamWin.cpp: Moved to PluginStream.cpp.
2204         * plugins/win/PluginStreamWin.h: Moved to PluginStream.h
2205         * plugins/win/PluginViewWin.cpp:
2206         * plugins/win/PluginViewWin.h:
2207         * plugins/win/npfunctions.h: Moved to npfunctions.h
2208
2209 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
2210
2211         Try to fix Mac build: Edit the right .exp file.
2212
2213         * WebCore.base.exp:
2214
2215 2008-01-11  Geoffrey Garen  <ggaren@apple.com>
2216
2217         Try to fix Qt build: don't use pthreads if they're not available.
2218
2219         * bindings/js/GCController.cpp:
2220
2221 2008-01-10  Geoffrey Garen  <ggaren@apple.com>
2222
2223         Reviewed by John Sullivan.
2224
2225         Fixed some world leak reports:
2226         * <rdar://problem/5669436> PLT complains about world leak of 1 JavaScript
2227         Interpreter after running cvs-base suite
2228
2229         * <rdar://problem/5669423> PLT complains about world leak if browser
2230         window is open when PLT starts
2231         
2232         These were both bugs in the reporting mechanism, so I took the
2233         opportunity to do some house cleaning there.
2234
2235         Stupid class, I kill you:
2236         * bridge/JavaScriptStatistics.cpp: Removed.
2237         * bridge/JavaScriptStatistics.h: Removed.
2238
2239         * bindings/js/GCController.h: Adopted the only useful features of
2240         JavaScriptStatistics, since they were GC-related.
2241         * bindings/js/GCController.cpp:
2242
2243 2008-01-10  Eric Seidel  <eric@webkit.org>
2244
2245         Reviewed by Adele.
2246
2247         No functional changes, only code cleanup.
2248
2249         * css/MediaQueryEvaluator.cpp:
2250         (WebCore::compareValue): renamed from cmpvalue
2251         (WebCore::colorMediaFeatureEval):
2252         (WebCore::device_aspect_ratioMediaFeatureEval):
2253         (WebCore::device_pixel_ratioMediaFeatureEval):
2254         (WebCore::gridMediaFeatureEval):
2255         (WebCore::device_heightMediaFeatureEval):
2256         (WebCore::device_widthMediaFeatureEval):
2257         (WebCore::heightMediaFeatureEval):
2258         (WebCore::widthMediaFeatureEval):
2259
2260 2008-01-10  Dan Bernstein  <mitz@apple.com>
2261
2262         Reviewed by Anders Carlsson.
2263
2264         - fix a crash when calling alert() from a repeating timer
2265
2266         On non-Mac platforms, the PageGroupLoadDeferrer pauses DOM timers during
2267         alert() and other similar functions, which deletes the actual
2268         DOMWindowTimer objects and replaces them with new objects when resuming.
2269
2270         * bindings/js/kjs_window.cpp:
2271         (KJS::Window::timerFired): Re-fetch the timer object from the map in
2272         case it has been deleted or replaced.
2273
2274 2008-01-10  Maciej Stachowiak  <mjs@apple.com>
2275
2276         Reviewed by Sam.
2277
2278         - remove SecurityOriginData and fold its functionality into SecurityOrigin
2279
2280         * GNUmakefile.am:
2281         * WebCore.base.exp:
2282         * WebCore.pro:
2283         * WebCore.vcproj/WebCore.vcproj:
2284         * WebCore.xcodeproj/project.pbxproj:
2285         * WebCoreSources.bkl:
2286         * bindings/js/JSDOMWindowCustom.cpp:
2287         (WebCore::JSDOMWindow::postMessage):
2288         * dom/Document.cpp:
2289         (WebCore::Document::domain):
2290         * page/Chrome.cpp:
2291         (WebCore::Chrome::requestQuotaIncreaseForNewDatabase):
2292         (WebCore::Chrome::requestQuotaIncreaseForDatabaseOperation):
2293         * page/Chrome.h:
2294         * page/ChromeClient.h:
2295         * platform/SecurityOrigin.cpp:
2296         (WebCore::SecurityOrigin::copy):
2297         (WebCore::SecurityOrigin::createFromIdentifier):
2298         (WebCore::SecurityOrigin::stringIdentifier):
2299         * platform/SecurityOrigin.h:
2300         (WebCore::SecurityOrigin::host):
2301         (WebCore::SecurityOrigin::protocol):
2302         (WebCore::SecurityOrigin::port):
2303         (WebCore::SecurityOrigin::equal):
2304         * platform/SecurityOriginData.cpp: Removed.
2305         * platform/SecurityOriginData.h: Removed.
2306         * storage/Database.cpp:
2307         (WebCore::Database::openDatabase):
2308         (WebCore::Database::Database):
2309         (WebCore::Database::securityOriginCopy):
2310         * storage/Database.h:
2311         * storage/DatabaseTracker.cpp:
2312         (WebCore::SecurityOriginHash::hash):
2313         (WebCore::SecurityOriginHash::equal):
2314         (WebCore::SecurityOriginTraits::deletedValue):
2315         (WebCore::SecurityOriginTraits::emptyValue):
2316         (WebCore::DatabaseTracker::canEstablishDatabase):
2317         (WebCore::DatabaseTracker::hasEntryForOrigin):
2318         (WebCore::DatabaseTracker::hasEntryForDatabase):
2319         (WebCore::DatabaseTracker::establishEntryForOrigin):
2320         (WebCore::DatabaseTracker::fullPathForDatabase):
2321         (WebCore::DatabaseTracker::populateOrigins):
2322         (WebCore::DatabaseTracker::origins):
2323         (WebCore::DatabaseTracker::databaseNamesForOrigin):
2324         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
2325         (WebCore::DatabaseTracker::setDatabaseDetails):
2326         (WebCore::DatabaseTracker::usageForDatabase):
2327         (WebCore::DatabaseTracker::usageForOrigin):
2328         (WebCore::DatabaseTracker::quotaForOrigin):
2329         (WebCore::DatabaseTracker::setQuota):
2330         (WebCore::DatabaseTracker::addDatabase):
2331         (WebCore::DatabaseTracker::deleteAllDatabases):
2332         (WebCore::DatabaseTracker::deleteDatabasesWithOrigin):
2333         (WebCore::DatabaseTracker::deleteDatabase):
2334         (WebCore::DatabaseTracker::deleteDatabaseFile):
2335         (WebCore::notificationQueue):
2336         (WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
2337         (WebCore::DatabaseTracker::notifyDatabasesChanged):
2338         * storage/DatabaseTracker.h:
2339         * storage/DatabaseTrackerClient.h:
2340         * storage/SQLTransaction.cpp:
2341         (WebCore::SQLTransaction::openTransactionAndPreflight):
2342         (WebCore::SQLTransaction::runStatements):
2343         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
2344         (WebCore::SQLTransaction::postflightAndCommit):
2345         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
2346         * svg/graphics/SVGImageEmptyClients.h:
2347         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForNewDatabase):
2348         (WebCore::SVGEmptyChromeClient::requestQuotaIncreaseForDatabaseOperation):
2349
2350 2008-01-10  Anders Carlsson  <andersca@apple.com>
2351
2352         Reviewed by Sam.
2353
2354         Use the correct frame loader load method. Using the old method would not cause a 
2355         new window to be open if the frame navigation was not allowed.
2356         
2357         * plugins/win/PluginViewWin.cpp:
2358         (WebCore::PluginViewWin::performRequest):
2359
2360 2008-01-10  Alp Toker  <alp@atoker.com>
2361
2362         SVG font build fix for GTK+/autotools.
2363
2364         * GNUmakefile.am:
2365
2366 2008-01-10  Adam Barth  <hk9565@gmail.com>
2367
2368         Reviewed by Sam Weinig and Anders Carlsson.
2369
2370         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16522
2371         <rdar://problem/5657355>
2372
2373         This patch makes two changes:
2374
2375         1) Java calls FrameLoader::load in a slightly different way than
2376            JavaScript, which previously let a malicious web site bypass the
2377            shouldAllowNavigation check.  This patch adds that check to that
2378            code path.
2379
2380         2) FrameLoader now wraps calls to m_frame->tree()->find(name) with
2381            findFrameForNavigation, which calls shouldAllowNavigation.  This
2382            treats disallowed frame navigations as if the named frame did not
2383            exist, resulting in a popup window when appropriate.
2384
2385         Tests: http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html
2386                http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html
2387
2388         * WebCore.base.exp:
2389         * bindings/js/kjs_window.cpp:
2390         (KJS::WindowProtoFuncOpen::callAsFunction):
2391         * loader/FrameLoader.cpp:
2392         (WebCore::FrameLoader::createWindow):
2393         (WebCore::FrameLoader::load):
2394         (WebCore::FrameLoader::post):
2395         (WebCore::FrameLoader::findFrameForNavigation):
2396         * loader/FrameLoader.h:
2397
2398 2008-01-10  John Sullivan  <sullivan@apple.com>
2399
2400         Written by Hyatt, reviewed by me
2401         
2402         - fixed <rdar://problem/5654297> Mail crashes occurs at WebCore::FontFallbackList::fontDataAt() when attempting to display 
2403           a <video> element that uses controls attribute
2404
2405         * rendering/MediaControlElements.cpp:
2406         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
2407         force the render style to inherit from the media element's style; Hyatt filed 5682383 to cover cleaning
2408         up this architecture, but this one-line fix will prevent the crash in the meantime
2409
2410 2008-01-10  Ada Chan  <adachan@apple.com>
2411
2412         Fix fast/forms/input-radio-checked-tab.html
2413         Meta key is not the same as Alt key on windows.
2414
2415         Reviewed by Darin.
2416
2417         * platform/win/KeyEventWin.cpp:
2418         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2419
2420 2008-01-10  Anders Carlsson  <andersca@apple.com>
2421
2422         Reviewed by Jon.
2423
2424         Fix an assert that would happen when a plug-in tries to load a URL while a provisional load is going.
2425         
2426         * plugins/win/PluginViewWin.cpp:
2427         (WebCore::PluginViewWin::performRequest):
2428         Move document loader check here since we don't start loading until here and a new document load could have started in the meantime.
2429         
2430         (WebCore::PluginViewWin::requestTimerFired):
2431         Don't leak the plugin requests.
2432         
2433         (WebCore::PluginViewWin::load):
2434
2435 2008-01-10  Anders Carlsson  <andersca@apple.com>
2436
2437         Reviewed by John Sullivan.
2438
2439         <rdar://problem/5455889>
2440         REGRESSION: BumperCar crashes when attempting to load a long invalid URL
2441         
2442         Make sure to call FrameLoader::receivedMainResourceError before calling
2443         FrameLoader::didFailToLoad. The call to receivedMainResourceError takes care of
2444         clearing out the provisional document loader so that we won't call the didFail
2445         ResourceLoadDelegate method twice. This also makes us call the FrameLoadDelegate method
2446         didFailPrivisionalLoad before calling the ResourceLoadDelegate method, which Safari 2.0 does.
2447         
2448         * loader/MainResourceLoader.cpp:
2449         (WebCore::MainResourceLoader::receivedError):
2450
2451 2008-01-10  Antti Koivisto  <antti@apple.com>
2452
2453         Reviewed by Adele.
2454
2455         Fix <rdar://problem/5658048>
2456         After <video> has finished playing, dragging the scroller on different location of controller starts to play movie
2457         
2458         - Move to paused state if the playback had ended and the controller is used to seek to earlier time
2459         - Pause video playback during drag so the knob does not constantly try to escape from the mouse pointer
2460
2461         * html/HTMLMediaElement.cpp:
2462         (WebCore::HTMLMediaElement::HTMLMediaElement):
2463         (WebCore::HTMLMediaElement::updateMediaPlayer):
2464         (WebCore::HTMLMediaElement::setPausedInternal):
2465         * html/HTMLMediaElement.h:
2466         * rendering/MediaControlElements.cpp:
2467         (WebCore::MediaControlTimelineElement::defaultEventHandler):
2468
2469 2008-01-10  Alexey Proskuryakov  <ap@webkit.org>
2470
2471         Reviewed by Adam Roben.
2472
2473         <rdar://problem/5667003> fast/dom/xmlhttprequest-html-response-encoding.html is failing
2474
2475         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): Do not disable sniffing for file://
2476         requests, as CFNetwork doesn't perform extension to MIME type mapping then.
2477
2478 2008-01-10  Adam Roben  <aroben@apple.com>
2479
2480         Fixes to allow multiple FrameViews on Windows
2481
2482         Reviewed by Hyatt.
2483
2484         * page/FrameView.cpp:
2485         (WebCore::FrameView::FrameView): Added a new constructor that takes an
2486         IntSize to specify the FrameView's initial size.
2487         (WebCore::FrameView::scheduleRelayout): Added an assertion that our
2488         Document is not in the page cache.
2489         * page/FrameView.h:
2490         * platform/gtk/WidgetGtk.cpp:
2491         (WebCore::Widget::~Widget): Add a warm, fuzzy ASSERT.
2492         * platform/qt/WidgetQt.cpp:
2493         (WebCore::Widget::~Widget): Ditto.
2494         * rendering/RenderWidget.cpp:
2495         (WebCore::RenderWidget::setWidget): Make sure to remove any existing
2496         Widget from the Widget hierarchy before deleting it. One instance
2497         where this is needed is when setWidget is called during FrameView
2498         creation on Windows.
2499
2500 2008-01-10  Alp Toker  <alp@atoker.com>
2501
2502         Include math.h to get ceilf(). Part of the SVG font GTK+ build fix.
2503
2504         * svg/SVGFontFaceElement.cpp:
2505
2506 2008-01-10  Justin Garcia  <justin.garcia@apple.com>
2507
2508         Reviewed by Alice Liu.
2509
2510         <rdar://problem/5658603> Crash in InsertNodeBefore::doUnapply() on Undo in Yahoo Mail
2511         <rdar://problem/5658709> Crash in RenderView::setSelection on Undo in Yahoo Mail
2512         
2513         Make sure we have an updated layout before we perform any editing work.
2514
2515         * editing/EditCommand.cpp:
2516         (WebCore::EditCommand::apply):
2517         (WebCore::EditCommand::unapply):
2518         (WebCore::EditCommand::reapply):
2519
2520 2008-01-10  Luca Bruno  <lethalman88@gmail.com>
2521
2522         Reviewed by Alp Toker.
2523
2524         Back out r29206 which was causing regressions in curl http job
2525         cancellation.
2526
2527         * platform/network/curl/ResourceHandleManager.cpp
2528         (ResourceHandleManager::cancel): 
2529
2530 2008-01-10  Kevin McCullough  <kmccullough@apple.com>
2531
2532         Reviewed by Darin, Sam, and Adam.
2533
2534         - <rdar://problem/5654486> REGRESSION (Safari 3.0.4-TOT): clicking on
2535         - link in gmail message displays JavaScript alert falsely complaining
2536         about pop-up blocking
2537         - When trying to open a new window, we now see if the user gesture 
2538         occurred in the global dynamic object instead of the frame since that is
2539         the only place an event can occur. 
2540
2541         * bindings/js/kjs_window.cpp: - Check the dynamic global object instead
2542         of the frame.
2543         (KJS::allowPopUp):
2544         (KJS::showModalDialog):
2545         (KJS::WindowProtoFuncOpen::callAsFunction):
2546
2547 2008-01-10  David Hyatt  <hyatt@apple.com>
2548
2549         Fix for bug 16247, visibility:hidden not honored when hit testing inline replaced elements.
2550
2551         Reviewed by adele
2552
2553         Added fast/css/visibility-hit-test.html test case.
2554
2555         * rendering/RenderBox.cpp:
2556         (WebCore::RenderBox::nodeAtPoint):
2557
2558 2008-01-10  Lars Knoll  <lars@trolltech.com>
2559
2560         Reviewed by Simon.
2561
2562         rename QWebPageHistory to QWebHistory.
2563
2564         * WebCore.pro:
2565
2566 2008-01-10  Lars Knoll  <lars@trolltech.com>
2567
2568         Reviewed by Simon.
2569
2570         fix the drawing errors that where introduced due to refactoring.
2571
2572         Correctly clip to the rectangle we want to draw in ScrollView::paint().
2573
2574         * platform/qt/ScrollViewQt.cpp:
2575         (WebCore::ScrollView::paint):
2576
2577 2008-01-10  Simon Hausmann  <hausmann@webkit.org>
2578
2579         Reviewed by Lars.
2580
2581         Temporarily disable gzip decompression in qhttp due to a bug.
2582
2583         * platform/network/qt/QNetworkReplyHandler.cpp:
2584         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
2585
2586 2008-01-10  Simon Hausmann  <hausmann@webkit.org>
2587
2588         Reviewed by Lars.
2589
2590         http://bugs.webkit.org/show_bug.cgi?id=16588
2591
2592         Added a (last) Frame argument to ResourceHandle::loadResourceSynchronously.
2593         This allows implementing the synchronous loading correctly for the Qt port where the networking
2594         backend is bound to the page.
2595
2596         * loader/FrameLoader.cpp:
2597         (WebCore::FrameLoader::loadResourceSynchronously):
2598         * platform/network/ResourceHandle.h:
2599         * platform/network/cf/ResourceHandleCFNet.cpp:
2600         * platform/network/curl/ResourceHandleCurl.cpp:
2601         * platform/network/mac/ResourceHandleMac.mm:
2602         * platform/network/qt/ResourceHandleQt.cpp:
2603         (WebCore::ResourceHandle::loadResourceSynchronously):
2604
2605 2008-01-10  Kevin Ollivier  <kevino@theolliviers.com>
2606
2607         wx build fix for changes in r29328
2608
2609         * WebCoreSources.bkl:
2610
2611 2008-01-09  Maciej Stachowiak  <mjs@apple.com>
2612
2613         Reviewed by Sam.
2614
2615         - refactor SecurityOrigin in preparation for merging with SecurityOriginData
2616
2617         * platform/SecurityOrigin.cpp:
2618         (WebCore::SecurityOrigin::SecurityOrigin):
2619         (WebCore::SecurityOrigin::create):
2620         (WebCore::SecurityOrigin::createForFrame):
2621         * platform/SecurityOrigin.h:
2622
2623 2008-01-09  Ada Chan  <adachan@apple.com>
2624
2625         Tabs with ctrl, meta, or altgraph modifier key down should not advance focus.
2626
2627         Reviewed by Darin.
2628
2629         Test: fast/forms/tabs-with-modifiers.html
2630
2631         * page/EventHandler.cpp:
2632         (WebCore::EventHandler::defaultKeyboardEventHandler):
2633         (WebCore::EventHandler::defaultTabEventHandler): bail if ctrl, meta, or altgraph key is down.  
2634         Clean up the code a bit.
2635         * page/EventHandler.h:
2636         * page/FocusController.cpp: Remove the advanceFocus() that takes in a KeyboardEvent.  It was
2637         only called in EventHandler::defaultTabEventHandler() but we have cleaned up the code there and
2638         no longer needs it.
2639         * page/FocusController.h:
2640
2641 2008-01-09  Antti Koivisto  <antti@apple.com>
2642
2643         Reviewed by Mitz.
2644
2645         Fix http://bugs.webkit.org/show_bug.cgi?id=16376
2646         <rdar://problem/5665206>
2647         <video> element fails to play frames when navigating back to page (16376)
2648         
2649         Don't make MediaPlayer visible when it is actually in page cache.
2650
2651         * rendering/RenderVideo.cpp:
2652         (WebCore::RenderVideo::updatePlayer):
2653
2654 2008-01-09  Anders Carlsson  <andersca@apple.com>
2655
2656         Reviewed by Darin.
2657
2658         <rdar://problem/5532361> 
2659         CrashTracer: 9840 crashes in Safari at com.apple.JavaScriptCore: KJS::Bindings::CInstance::~CInstance [in-charge deleting] + 35
2660         
2661         Clear the frame's plugin root objects so that they don't outlive the plugin bundle.
2662         
2663         * page/Frame.cpp:
2664         (WebCore::Frame::pageDestroyed):
2665
2666 2008-01-09  John Sullivan  <sullivan@apple.com>
2667
2668         Reviewed by Adam Roben and Anders Carlsson
2669         
2670         - fixed <rdar://problem/5469398> Repro assertion failure in context menu code due to 
2671           missing-but-expected Reload item
2672
2673         * platform/ContextMenu.cpp:
2674         (WebCore::ContextMenu::populate):
2675         use isLoadingInAPISense when deciding whether to include Stop or Reload in context
2676         menu, to match the WebKit API
2677
2678 2008-01-09  Mark Rowe  <mrowe@apple.com>
2679
2680         Fix Windows debug build for opensource developers.
2681
2682         * WebCore.vcproj/QTMovieWin.vcproj: Use the correct library suffix.
2683
2684 2007-10-01  Allan Sandfeld Jensen  <sandfeld@kde.org>
2685
2686         Reworked by Eric, Reviewed by Hyatt.
2687
2688         - fix http://bugs.webkit.org/show_bug.cgi?id=9454
2689         Add support for :lang inheritance and xml:lang support.
2690
2691         Tests: fast/selectors/lang-inheritance.html
2692                fast/selectors/lang-inheritance2.html
2693                fast/selectors/lang-vs-xml-lang.html
2694                fast/selectors/lang-vs-xml-lang-xhtml.xhtml
2695
2696         * css/CSSStyleSelector.cpp:
2697         (WebCore::CSSStyleSelector::canShareStyleWithElement): Do not share style between elements with
2698         different LANG-attribute.
2699         (WebCore::CSSStyleSelector::checkOneSelector): Change :lang() to recursively check the LANG attribute
2700         for all the elements parents and the content-language of the document.
2701         * dom/Document.cpp:
2702         (WebCore::Document::processHttpEquiv): Parse MIME Content-Language
2703         * dom/Document.h:
2704         (WebCore::Document::contentLanguage):
2705         (WebCore::Document::setContentLanguage):
2706
2707 2008-01-08  Timothy Hatcher  <timothy@apple.com>
2708
2709         Reviewed by Brady.
2710
2711         Bug 16678: Unreproducible crash in KJS::JSObject::inherits() after using Web Inspector
2712         http://bugs.webkit.org/show_bug.cgi?id=16678
2713
2714         Add a NULL check for controller before calling JSObjectSetPrivate.
2715
2716         * page/InspectorController.cpp:
2717         (WebCore::InspectorController::~InspectorController):
2718
2719 2008-01-08  Xan Lopez  <xan@gnome.org>
2720
2721         Reviewed by Alp Toker.
2722
2723         http://bugs.webkit.org/show_bug.cgi?id=15610
2724         [GTK] Text rendering using Pango
2725
2726         Use Pango to render Complex path text.
2727
2728         * platform/graphics/gtk/FontGtk.cpp:
2729         (WebCore::utf16_to_utf8):
2730         (WebCore::convertUniCharToUTF8):
2731         (WebCore::setPangoAttributes):
2732         (WebCore::Font::drawGlyphs):
2733         (WebCore::Font::drawComplexText):
2734         (WebCore::Font::floatWidthForComplexText):
2735         (WebCore::Font::offsetForPositionForComplexText):
2736
2737 2008-01-08  Timothy Hatcher  <timothy@apple.com>
2738
2739         Reviewed by Darin Adler.
2740
2741         <rdar://problem/5665860> With the web inspector displayed, a crash occurs
2742         at WebCore::Frame::document() when navigating back to previous page
2743
2744         This fixes the crash, but the inspector was totally broken with back/forward.
2745         So this also fixes back/forward navigation so the right main resource shows
2746         up in the inspector.
2747
2748         * page/InspectorController.cpp:
2749         (WebCore::addSourceToFrame): Add some null checks for the frame when
2750         getting the textEncoding. This was the crash.
2751         (WebCore::InspectorController::addScriptResource): Create a script object
2752         only if needed, and always add it by calling addResource.
2753         (WebCore::InspectorController::didCommitLoad): Check if the loader is 
2754         loading from the page cache, and clear m_mainResource. If the load is
2755         normal, then call addAndUpdateScriptResource with the main resource. 
2756         (WebCore::InspectorController::identifierForInitialRequest): If the load
2757         is from the page cache and the resource is the main resource call
2758         addAndUpdateScriptResource since didCommitLoad did not do it.
2759
2760 2008-01-08  Alp Toker  <alp@atoker.com>
2761
2762         Back out VIDEO by default in the GTK+ qmake build. The build bot
2763         doesn't have the necessary libraries installed.
2764
2765         * WebCore.pro:
2766
2767 2008-01-08  Alp Toker  <alp@atoker.com>
2768
2769         Win build fix for breakage introduced in r29328.
2770
2771         * WebCore.vcproj/WebCore.vcproj:
2772
2773 2008-01-08  Alp Toker  <alp@atoker.com>
2774
2775         Rubber-stamped by Mark Rowe.
2776
2777         Enable VIDEO by default in the GTK+ qmake build.
2778
2779         * WebCore.pro:
2780
2781 2008-01-08  Alp Toker  <alp@atoker.com>
2782
2783         GTK+ VIDEO build fix for breakage introduced in r29328.
2784
2785         Issue noticed by Ori_B.
2786
2787         * GNUmakefile.am:
2788         * WebCore.pro:
2789
2790 2008-01-08  Antti Koivisto  <antti@apple.com>
2791
2792         Reviewed by Darin.
2793         
2794         HTMLAudioElement needs generated constructor. Otherwise video instanceof HTMLAudioElement is true which is 
2795         bit strange.
2796         
2797         Renamed custom constructor JSHTMLAudioElementConstructor to JSAudioConstructor to avoid name clashes.
2798
2799         Test: media/constructors.html
2800
2801         * WebCore.xcodeproj/project.pbxproj:
2802         * bindings/js/JSAudioConstructor.cpp: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.cpp.
2803         (WebCore::JSAudioConstructor::JSAudioConstructor):
2804         (WebCore::JSAudioConstructor::implementsConstruct):
2805         (WebCore::JSAudioConstructor::construct):
2806         * bindings/js/JSAudioConstructor.h: Copied from WebCore/bindings/js/JSHTMLAudioElementConstructor.h.
2807         * bindings/js/JSHTMLAudioElementConstructor.cpp: Removed.
2808         * bindings/js/JSHTMLAudioElementConstructor.h: Removed.
2809         * bindings/js/kjs_window.cpp:
2810         (KJS::Window::getValueProperty):
2811         * html/HTMLAudioElement.idl:
2812
2813 2008-01-08  Anders Carlsson  <andersca@apple.com>
2814
2815         Reviewed by Mitz.
2816
2817         Don't add the applet widget to the view, that's done later by RenderApplet.
2818             
2819         * loader/FrameLoader.cpp:
2820         (WebCore::FrameLoader::createJavaAppletWidget):
2821
2822 2008-01-08  Antti Koivisto  <antti@apple.com>
2823
2824         Reviewed by Weinig.
2825         
2826         Add security check for Audio constructor.
2827
2828         * bindings/js/kjs_window.cpp:
2829         (KJS::Window::getValueProperty):
2830
2831 2008-01-08  Timothy Hatcher  <timothy@apple.com>
2832
2833         Reviewed by Adam Roben.
2834
2835         <rdar://problem/5676515> List of scripts and images missing when opening Web Inspector from new window (16567)
2836
2837         InspectorController::didLoadResourceFromMemoryCache was not being called for
2838         resources that loaded from the memory cache that the FrameLoader's client
2839         has already been notified about. This fix always calls the InspectorController
2840         when loading a memory cached resource. No test possible for the Web Inspector.
2841
2842         * loader/DocLoader.cpp:
2843         (WebCore::DocLoader::checkCacheObjectStatus): Moved most of the logic to
2844         FrameLoader::loadedResourceFromMemoryCache so the InspectorController can always be notified.
2845         * loader/FrameLoader.cpp:
2846         (WebCore::FrameLoader::didTellClientAboutLoad): Renamed from didTellBridgeAboutLoad.
2847         (WebCore::FrameLoader::haveToldClientAboutLoad): Renamed from haveToldBridgeAboutLoad.
2848         (WebCore::FrameLoader::loadResourceSynchronously): Call the renamed didTellClientAboutLoad.
2849         (WebCore::FrameLoader::loadedResourceFromMemoryCache): Only takes a CachedResource now.
2850         Always call InspectorController. If the resource's sendResourceLoadCallbacks is false or
2851         didTellClientAboutLoad is true, do an early return. Otherwise call the client and call
2852         didTellClientAboutLoad.
2853         (WebCore::FrameLoader::dispatchDidLoadResourceFromMemoryCache): Removed, work now done
2854         in FrameLoader::loadedResourceFromMemoryCache.
2855         * loader/FrameLoader.h: Renamed {didTell,haveTold}BridgeAboutLoad to {didTell,haveTold}ClientAboutLoad.
2856         Made loadedResourceFromMemoryCache only take a CachedResource. Renamed m_urlsBridgeKnowsAbout to 
2857         m_urlsClientKnowsAbout.
2858         * loader/SubresourceLoader.cpp:
2859         (WebCore::SubresourceLoader::load): Call the renamed didTellClientAboutLoad.
2860
2861 2008-01-08  Dan Bernstein  <mitz@apple.com>
2862
2863         Rubber-stamped by Sam Weinig.
2864
2865         - prefix all member variables in CSSStyleSelector with m_
2866
2867         * css/CSSStyleSelector.cpp:
2868         (WebCore::CSSStyleSelector::CSSStyleSelector):
2869         (WebCore::CSSStyleSelector::init):
2870         (WebCore::CSSStyleSelector::setEncodedURL):
2871         (WebCore::CSSStyleSelector::loadDefaultStyle):
2872         (WebCore::CSSStyleSelector::matchRules):
2873         (WebCore::CSSStyleSelector::matchRulesForList):
2874         (WebCore::CSSStyleSelector::initElementAndPseudoState):
2875         (WebCore::CSSStyleSelector::initForStyleResolve):
2876         (WebCore::CSSStyleSelector::canShareStyleWithElement):
2877         (WebCore::CSSStyleSelector::locateSharedStyle):
2878         (WebCore::CSSStyleSelector::matchUARules):
2879         (WebCore::CSSStyleSelector::styleForElement):
2880         (WebCore::CSSStyleSelector::pseudoStyleForElement):
2881         (WebCore::CSSStyleSelector::updateFont):
2882         (WebCore::CSSStyleSelector::cacheBorderAndBackground):
2883         (WebCore::CSSStyleSelector::checkSelector):
2884         (WebCore::CSSStyleSelector::checkOneSelector):
2885         (WebCore::CSSStyleSelector::applyProperty):
2886         (WebCore::CSSStyleSelector::mapBackgroundImage):
2887         (WebCore::CSSStyleSelector::mapBackgroundSize):
2888         (WebCore::CSSStyleSelector::mapBackgroundXPosition):
2889         (WebCore::CSSStyleSelector::mapBackgroundYPosition):
2890         (WebCore::CSSStyleSelector::checkForTextSizeAdjust):
2891         (WebCore::CSSStyleSelector::getColorFromPrimitiveValue):
2892         * css/CSSStyleSelector.h:
2893         (WebCore::CSSStyleSelector::):
2894         (WebCore::CSSRuleData::CSSRuleData):
2895         (WebCore::CSSRuleDataList::CSSRuleDataList):
2896         (WebCore::CSSRuleDataList::append):
2897         * css/SVGCSSStyleSelector.cpp:
2898         (WebCore::CSSStyleSelector::applySVGProperty):
2899         * rendering/RenderStyle.cpp:
2900         (WebCore::RenderStyle::isStyleAvailable):
2901
2902 2008-01-08  David D. Kilzer  <ddkilzer@apple.com>
2903
2904         Removed unnecessary files from Copy Bundle Resources build phase.
2905
2906         Reviewed by Sam.
2907
2908         * WebCore.xcodeproj/project.pbxproj: Files removed from build phase:
2909         DOMCoreException.idl
2910         EventException.idl
2911         MessageEvent.idl
2912         SVGAElement.idl
2913         SVGAngle.idl
2914         SVGAnimateColorElement.idl
2915         SVGAnimateElement.idl
2916         SVGAnimateTransformElement.idl
2917         SVGAnimatedAngle.idl
2918         SVGAnimatedBoolean.idl
2919         SVGAnimatedEnumeration.idl
2920         SVGAnimatedInteger.idl
2921         SVGAnimatedLength.idl
2922         SVGAnimatedLengthList.idl
2923         SVGAnimatedNumber.idl
2924         SVGAnimatedNumberList.idl
2925         SVGAnimatedPathData.idl
2926         SVGAnimatedPoints.idl
2927         SVGAnimatedPreserveAspectRatio.idl
2928         SVGAnimatedRect.idl
2929         SVGAnimatedString.idl
2930         SVGAnimatedTransformList.idl
2931         SVGAnimationElement.idl
2932         SVGCSSPropertyNames.in
2933         SVGCSSValueKeywords.in
2934         SVGCircleElement.idl
2935         SVGClipPathElement.idl
2936         SVGColor.idl
2937         SVGComponentTransferFunctionElement.idl
2938         SVGCursorElement.idl
2939         SVGDefinitionSrcElement.idl
2940         SVGDefsElement.idl
2941         SVGDescElement.idl
2942         SVGDocument.idl
2943         SVGElement.idl
2944         SVGElementInstance.idl
2945         SVGElementInstanceList.idl
2946         SVGEllipseElement.idl
2947         SVGException.idl
2948         SVGExternalResourcesRequired.idl
2949         SVGFEBlendElement.idl
2950         SVGFEColorMatrixElement.idl
2951         SVGFEComponentTransferElement.idl
2952         SVGFECompositeElement.idl
2953         SVGFEDiffuseLightingElement.idl
2954         SVGFEDisplacementMapElement.idl
2955         SVGFEDistantLightElement.idl
2956         SVGFEFloodElement.idl
2957         SVGFEFuncAElement.idl
2958         SVGFEFuncBElement.idl
2959         SVGFEFuncGElement.idl
2960         SVGFEFuncRElement.idl
2961         SVGFEGaussianBlurElement.idl
2962         SVGFEImageElement.idl
2963         SVGFEMergeElement.idl
2964         SVGFEMergeNodeElement.idl
2965         SVGFEOffsetElement.idl
2966         SVGFEPointLightElement.idl
2967         SVGFESpecularLightingElement.idl
2968         SVGFESpotLightElement.idl
2969         SVGFETileElement.idl
2970         SVGFETurbulenceElement.idl
2971         SVGFilterElement.idl
2972         SVGFilterPrimitiveStandardAttributes.idl
2973         SVGFitToViewBox.idl
2974         SVGFontElement.idl
2975         SVGFontFaceElement.idl
2976         SVGFontFaceFormatElement.idl
2977         SVGFontFaceNameElement.idl
2978         SVGFontFaceSrcElement.idl
2979         SVGFontFaceUriElement.idl
2980         SVGForeignObjectElement.idl
2981         SVGGElement.idl
2982         SVGGlyphElement.idl
2983         SVGGradientElement.idl
2984         SVGImageElement.idl
2985         SVGLangSpace.idl
2986         SVGLength.idl
2987         SVGLengthList.idl
2988         SVGLineElement.idl
2989         SVGLinearGradientElement.idl
2990         SVGLocatable.idl
2991         SVGMarkerElement.idl
2992         SVGMaskElement.idl
2993         SVGMatrix.idl
2994         SVGMetadataElement.idl
2995         SVGMissingGlyphElement.idl
2996         SVGNumber.idl
2997         SVGNumberList.idl
2998         SVGPaint.idl
2999         SVGPathElement.idl
3000         SVGPathSeg.idl
3001         SVGPathSegArcAbs.idl
3002         SVGPathSegArcRel.idl
3003         SVGPathSegClosePath.idl
3004         SVGPathSegCurvetoCubicAbs.idl
3005         SVGPathSegCurvetoCubicRel.idl
3006         SVGPathSegCurvetoCubicSmoothAbs.idl
3007         SVGPathSegCurvetoCubicSmoothRel.idl
3008         SVGPathSegCurvetoQuadraticAbs.idl
3009         SVGPathSegCurvetoQuadraticRel.idl
3010         SVGPathSegCurvetoQuadraticSmoothAbs.idl
3011         SVGPathSegCurvetoQuadraticSmoothRel.idl
3012         SVGPathSegLinetoAbs.idl
3013         SVGPathSegLinetoHorizontalAbs.idl
3014         SVGPathSegLinetoHorizontalRel.idl
3015         SVGPathSegLinetoRel.idl
3016         SVGPathSegLinetoVerticalAbs.idl
3017         SVGPathSegLinetoVerticalRel.idl
3018         SVGPathSegList.idl
3019         SVGPathSegMovetoAbs.idl
3020         SVGPathSegMovetoRel.idl
3021         SVGPatternElement.idl
3022         SVGPoint.idl
3023         SVGPointList.idl
3024         SVGPolygonElement.idl
3025         SVGPolylineElement.idl
3026         SVGPreserveAspectRatio.idl
3027         SVGRadialGradientElement.idl
3028         SVGRect.idl
3029         SVGRectElement.idl
3030         SVGRenderingIntent.idl
3031         SVGSVGElement.idl
3032         SVGScriptElement.idl
3033         SVGSetElement.idl
3034         SVGStopElement.idl
3035         SVGStringList.idl
3036         SVGStylable.idl
3037         SVGStyleElement.idl
3038         SVGSwitchElement.idl
3039         SVGSymbolElement.idl
3040         SVGTRefElement.idl
3041         SVGTSpanElement.idl
3042         SVGTests.idl
3043         SVGTextContentElement.idl
3044         SVGTextElement.idl
3045         SVGTextPathElement.idl
3046         SVGTextPositioningElement.idl
3047         SVGTitleElement.idl
3048         SVGTransform.idl
3049         SVGTransformList.idl
3050         SVGTransformable.idl
3051         SVGURIReference.idl
3052         SVGUnitTypes.idl
3053         SVGUseElement.idl
3054         SVGViewElement.idl
3055         SVGViewSpec.idl
3056         SVGZoomAndPan.idl
3057         SVGZoomEvent.idl
3058         XMLHttpRequestException.idl
3059         XPathException.idl
3060         character-sets.txt
3061         mac-encodings.txt
3062         make-charset-table.pl
3063         svgattrs.in
3064         svgtags.in
3065         xlinkattrs.in
3066
3067 2008-01-08  Luca Bruno  <lethalman88@gmail.com>
3068
3069         Reviewed by Alp Toker.
3070
3071         Support copying the selected URL to the clipboard.
3072
3073         * platform/gtk/PasteboardGtk.cpp:
3074         (WebCore::Pasteboard::writeURL): implemented
3075
3076 2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>
3077
3078         Renamed CharacterData::m_str to m_data
3079
3080         Rubber-stamped by Adam again.
3081
3082         No test cases added since there is no change in behavior.
3083
3084         * dom/CDATASection.cpp:
3085         * dom/CharacterData.cpp:
3086         (WebCore::CharacterData::CharacterData):
3087         (WebCore::CharacterData::setData):
3088         (WebCore::CharacterData::substringData):
3089         (WebCore::CharacterData::appendData):
3090         (WebCore::CharacterData::insertData):
3091         (WebCore::CharacterData::deleteData):
3092         (WebCore::CharacterData::replaceData):
3093         (WebCore::CharacterData::nodeValue):
3094         (WebCore::CharacterData::containsOnlyWhitespace):
3095         (WebCore::CharacterData::dispatchModifiedEvent):
3096         (WebCore::CharacterData::checkCharDataOperation):
3097         (WebCore::CharacterData::dump):
3098         * dom/CharacterData.h:
3099         * dom/Comment.cpp:
3100         * dom/Text.cpp:
3101         (WebCore::Text::splitText):
3102         (WebCore::Text::createRenderer):
3103         (WebCore::Text::recalcStyle):
3104
3105 2008-01-08  Steve Falkenburg  <sfalken@apple.com>
3106
3107         Fix a couple of compiler warnings.
3108         
3109         Reviewed by Mitz.
3110
3111         * platform/win/ThreadingWin.cpp:
3112         * platform/win/UniscribeController.cpp: Remove unused function.
3113         (WebCore::UniscribeController::advance): Fix bogus warning about un-initialized variable.
3114
3115 2008-01-08  Adele Peterson  <adele@apple.com>
3116
3117         Reviewed by Darin.
3118
3119         Fix for <rdar://problem/5674667> fast/forms/slider-mouse-events.html is broken by media control checkin 29257
3120
3121         * rendering/RenderSlider.cpp: (WebCore::HTMLSliderThumbElement::defaultEventHandler):
3122           After fixing a bug in EventHandler to make sure events always go to the capturing node, this bug was exposed.
3123           MouseMove and MouseUp events were going to the thumb element, but not to the slider input element.  
3124           This change makes the input element the capturing node, and then the input element forwards the mouse events to the thumb element.
3125           I also added a missing call to setDefaultHandled for the mousemove event.
3126
3127 2008-01-08  Adele Peterson  <adele@apple.com>
3128
3129         Reviewed by Adam. 
3130
3131         * rendering/RenderThemeSafari.cpp: Use the SafariTheme version number to decide whether or not to
3132         paint the media controls in RenderThemeSafari.
3133
3134 2008-01-08  Oliver Hunt  <oliver@apple.com>
3135
3136         Reviewed by Adele and John.
3137
3138         Fix <rdar://problem/5652740> Crash occurs at WebCore::Widget::getView() after
3139         dragging file into window that contains web page ( http://www.econocraft.com/flood_arch.htm )
3140
3141         We hit this crash if the page reloads between DragController::dragUpdated
3142         and DragController::performDrag, meaning that m_document starts pointing to
3143         a now viewless document.  This is picked up by an assertion in performDrag
3144         which I have now replaced with an assignment given that the assertion is 
3145         invalid -- it is possible for m_document to be changed between dragUpdated
3146         performDrag
3147
3148         * page/DragController.cpp:
3149         (WebCore::DragController::performDrag):
3150
3151 2008-01-08  Alexey Proskuryakov  <ap@webkit.org>
3152
3153         Reviewed by Darin.
3154
3155         <rdar://problem/5659812> CrashTracer: 462 crashes in Safari at com.apple.WebCore:
3156         WebCore::Node::setChanged + 96
3157
3158         Test: fast/dom/cssTarget-crash.html
3159
3160         * dom/Node.cpp: (WebCore::Node::removedFromDocument):
3161         Check to see if the node being removed is currently set as the Document's cssTarget.
3162         If it is, clear the cssTarget to prevent a hanging reference to it.
3163
3164 2008-01-08  Adam Roben  <aroben@apple.com>
3165
3166         * bindings/scripts/CodeGeneratorJS.pm: Touch this so the bindings will
3167         rebuild on Windows now that the media elements are enabled.
3168
3169 2008-01-08  Adam Roben  <aroben@apple.com>
3170
3171         * svg/svgtags.in: Touch this again for the sake of the Windows bots.
3172
3173 2008-01-08  Timothy Hatcher  <timothy@apple.com>
3174
3175         Reviewed by Adam Roben.
3176
3177         Use JSRetainPtr in the Web Inspector everywhere we own a JSStringRef.
3178         Also added some #pragma marks to help find places in the file.
3179
3180         * page/InspectorController.cpp:
3181         (WebCore::callSimpleFunction): Use JSRetainPtr<JSStringRef>.
3182         And return the result of JSObjectCallAsFunction.
3183         (WebCore::search): Use JSRetainPtr<JSStringRef>.
3184         (WebCore::databaseTableNames): Ditto.
3185         (WebCore::localizedStrings): Ditto.
3186         (WebCore::InspectorController::~InspectorController): Ditto.
3187         (WebCore::InspectorController::focusNode): Ditto.
3188         (WebCore::InspectorController::windowScriptObjectAvailable): Ditto.
3189         (WebCore::InspectorController::scriptObjectReady): Ditto.
3190         (WebCore::addHeaders): Ditto.
3191         (WebCore::InspectorController::addScriptResource): Ditto.
3192         (WebCore::InspectorController::removeScriptResource): Ditto.
3193         (WebCore::InspectorController::updateScriptResourceRequest): Ditto.
3194         (WebCore::InspectorController::updateScriptResourceResponse): Ditto.
3195         (WebCore::InspectorController::updateScriptResource): Ditto.
3196         (WebCore::InspectorController::addDatabaseScriptResource): Ditto.
3197         (WebCore::InspectorController::removeDatabaseScriptResource): Ditto.
3198         (WebCore::InspectorController::addScriptConsoleMessage): Ditto.
3199
3200 2008-01-08  Dan Bernstein  <mitz@apple.com>
3201
3202         Rubber-stamped by Sam Weinig.
3203
3204         - rename FontDataBaseClass.{cpp,h} back to FontData.{cpp,h}
3205
3206         * GNUmakefile.am:
3207         * WebCore.pro:
3208         * WebCore.vcproj/WebCore.vcproj:
3209         * WebCore.xcodeproj/project.pbxproj:
3210         * WebCoreSources.bkl:
3211         * editing/Editor.cpp:
3212         * platform/graphics/FontData.cpp: Copied from WebCore/platform/graphics/FontDataBaseClass.cpp.
3213         * platform/graphics/FontData.h: Copied from WebCore/platform/graphics/FontDataBaseClass.h.
3214         * platform/graphics/FontDataBaseClass.cpp: Removed.
3215         * platform/graphics/FontDataBaseClass.h: Removed.
3216         * platform/graphics/SegmentedFontData.h:
3217         * platform/graphics/SimpleFontData.h:
3218
3219 2008-01-08  Dan Bernstein  <mitz@apple.com>
3220
3221         Fix a Wx build error.
3222
3223         * platform/graphics/wx/GlyphMapWx.cpp:
3224         (WebCore::GlyphPage::fill):
3225
3226 2008-01-08  Dan Bernstein  <mitz@apple.com>
3227
3228         Fix a Qt build error.
3229
3230         * platform/graphics/qt/SimpleFontDataQt.cpp:
3231         (WebCore::SimpleFontData::containsCharacters):
3232         (WebCore::SimpleFontData::fontDataForCharacter):
3233         (WebCore::SimpleFontData::isSegmented):
3234
3235 2008-01-08  Adam Roben  <aroben@apple.com>
3236
3237         Windows build fix.
3238
3239         Touch config.h to force a rebuild (apparently changing preprocessor
3240         definitions in the .vcproj doesn't force a rebuild).
3241
3242         * config.h:
3243
3244 2008-01-08  Dan Bernstein  <mitz@apple.com>
3245
3246         Fix a Wx build failure.
3247
3248         * webcore-wx.bkl:
3249
3250 2008-01-08  Dan Bernstein  <mitz@apple.com>
3251
3252         Fix a Qt build failure.
3253
3254         * WebCore.pro:
3255
3256 2008-01-08  John Sullivan  <sullivan@apple.com>
3257
3258         Reviewed by Adam Roben
3259         
3260         - fixed <rdar://problem/5671668> REGRESSION (r28711-r28730): With caret in an empty form field, 
3261           Delete menu item is enabled but shouldn't be
3262
3263         The enabled logic was incorrect for the Delete menu item. To fix this, I added an EditorCommandSource
3264         parameter to the enabled functions so that they can have parallel logic to the execute functions.
3265
3266         * editing/EditorCommand.cpp:
3267         added EditorCommandSource parameter to isEnabled function prototype
3268         (WebCore::enabled):
3269         added unused EditorCommandSource parameter to these isEnabled functions:
3270         (WebCore::enabledAnySelection):
3271         (WebCore::enabledAnySelectionAndMark):
3272         (WebCore::enableCaretInEditableText):
3273         (WebCore::enabledCopy):
3274         (WebCore::enabledCut):
3275
3276         (WebCore::enabledDelete):
3277         new function, uses logic previously used by Delete command for DOM sources; uses logic in enabledCut
3278         for menu source
3279
3280         added unused EditorCommandSource parameter to these isEnabled functions:
3281         (WebCore::enabledInEditableText):
3282         (WebCore::enabledInRichlyEditableText):
3283         (WebCore::enabledPaste):
3284         (WebCore::enabledRangeInEditableText):
3285         (WebCore::enabledRangeInRichlyEditableText):
3286         (WebCore::enabledRedo):
3287         (WebCore::enabledUndo):
3288         
3289         (WebCore::CommandEntry::):
3290         wire up new enabledDelete function as delete function for Delete command
3291         
3292         (WebCore::Editor::Command::isEnabled):
3293         pass EditorCommandSource parameter to isEnabled function
3294
3295 2008-01-08  Adam Roben  <aroben@apple.com>
3296
3297         Visual C++ Express build fix
3298
3299         * WebCore.vcproj/QTMovieWin.vcproj: Explicitly link against user32.lib
3300         and advapi32.lib. VS implicitly links against these, VC++ Express
3301         doesn't.
3302
3303 2008-01-08  Dan Bernstein  <mitz@apple.com>
3304
3305         - add bug number
3306
3307         * platform/graphics/mac/FontCustomPlatformData.cpp:
3308         (WebCore::createFontCustomPlatformData):
3309
3310 2008-01-08  Dan Bernstein  <mitz@apple.com>
3311
3312         Try to fix the Qt build.
3313
3314         * WebCore.pro:
3315
3316 2008-01-08  Nikolas Zimmermann  <zimmermann@kde.org>
3317
3318         Not reviewed. Try to fix Qt builds after Timothy's inspector changes.
3319
3320         * page/inspector/WebKit.qrc:
3321
3322 2008-01-08  Maciej Stachowiak  <mjs@apple.com>
3323
3324         Reviewed by Mark.
3325
3326         - remove duplicate definition of getElementById from HTMLDocument IDL (and ObjC bindings)
3327
3328         * bindings/objc/PublicDOMInterfaces.h:
3329         * html/HTMLDocument.idl:
3330
3331 2008-01-08  David D. Kilzer  <ddkilzer@webkit.org>
3332
3333         Renamed CharacterData::str to m_str to match coding style
3334
3335         Rubber-stamped by Adam.
3336
3337         No test cases added since there is no change in behavior.
3338
3339         * dom/CDATASection.cpp:
3340         * dom/CharacterData.cpp:
3341         (WebCore::CharacterData::CharacterData):
3342         (WebCore::CharacterData::setData):
3343         (WebCore::CharacterData::substringData):
3344         (WebCore::CharacterData::appendData):
3345         (WebCore::CharacterData::insertData):
3346         (WebCore::CharacterData::deleteData):
3347         (WebCore::CharacterData::replaceData):
3348         (WebCore::CharacterData::nodeValue):
3349         (WebCore::CharacterData::containsOnlyWhitespace):
3350         (WebCore::CharacterData::dispatchModifiedEvent):
3351         (WebCore::CharacterData::checkCharDataOperation):
3352         (WebCore::CharacterData::dump):
3353         * dom/CharacterData.h:
3354         * dom/Comment.cpp:
3355         * dom/Text.cpp:
3356         (WebCore::Text::splitText):
3357         (WebCore::Text::createRenderer):
3358         (WebCore::Text::recalcStyle):
3359
3360 2008-01-08  Oliver Hunt  <oliver@apple.com>
3361
3362         Set the ENABLE_SVG_FONTS flag in Windows build, now builds, 
3363         I'm not sure if it just caused the right files to regenerate,
3364         or if there's some configuration weirdness in the non-SVG-fonts
3365         build. 
3366
3367         * WebCore.vcproj/WebCore.vcproj:
3368
3369 2008-01-07  Maciej Stachowiak  <mjs@apple.com>
3370
3371         Reviewed by Brady.
3372
3373         - fixed <rdar://problem/5644300> Back/Forward Cache should not include pages with databases
3374         
3375         Track whether a document has ever opened a database; if so, exclude it from b/f caching (for now)
3376         
3377         * dom/Document.cpp:
3378         (WebCore::Document::Document):
3379         * dom/Document.h:
3380         (WebCore::Document::setHasOpenDatabases):
3381         (WebCore::Document::hasOpenDatabases):
3382         * loader/FrameLoader.cpp:
3383         (WebCore::FrameLoader::canCachePage):
3384         * storage/Database.cpp:
3385         (WebCore::Database::openDatabase):
3386
3387 2008-01-07  Dan Bernstein  <mitz@apple.com>
3388
3389         Reviewed by Oliver Hunt.
3390
3391         - fix leaks seen on the build bot
3392
3393         * css/CSSFontSelector.cpp:
3394         (WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
3395         CSSFontFaceSource for SVG font-face elements going into an
3396         SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
3397         face elements to a CSSFontFace because it will not work as expected.
3398
3399 2008-01-07  Mark Rowe  <mrowe@apple.com>
3400
3401         Tiger build fix.
3402
3403         * platform/graphics/mac/FontCustomPlatformData.cpp:
3404         (WebCore::createFontCustomPlatformData): Only include this code on Leopard.
3405         It's not needed on Tiger, and breaks the build.
3406
3407 2008-01-07  Antti Koivisto  <antti@apple.com>
3408
3409         Reviewed by Steve.
3410
3411         Re-enable media support in Windows build.
3412
3413         * WebCore.vcproj/QTMovieWin.vcproj:
3414         * WebCore.vcproj/WebCore.vcproj:
3415         * WebCore.vcproj/build-generated-files.sh:
3416
3417 2008-01-07  Steve Falkenburg  <sfalken@apple.com>
3418
3419         Add version resource to QTMovieWin.dll
3420         
3421         Reviewed by Adam.
3422
3423         * WebCore.vcproj/PRODUCTVERSION: Copied from ../WebKit/win/WebKit.vcproj/PRODUCTVERSION.
3424         * WebCore.vcproj/QTMovieWin.rc: Added.
3425         * WebCore.vcproj/QTMovieWin.vcproj:
3426         * WebCore.vcproj/VERSION: Copied from ../WebKit/win/WebKit.vcproj/VERSION.
3427         * WebCore.vcproj/auto-version.sh: Copied from ../WebKit/win/WebKit.vcproj/auto-version.sh.
3428
3429 2008-01-07  Dan Bernstein  <mitz@apple.com>
3430
3431         Build fix.
3432
3433         * platform/graphics/qt/FontCustomPlatformData.cpp:
3434         (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added.
3435         Calls QFontDatabase::removeApplicationFont().
3436         * platform/graphics/qt/FontCustomPlatformData.h:
3437         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
3438         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData): Removed the
3439         implementation because Qt does not use the WebCore glyph cache.
3440
3441 2008-01-07  Dan Bernstein  <mitz@apple.com>
3442
3443         Reviewed by Oliver Hunt.
3444
3445         - fix an assertion failure in svg/W3C-SVG-1.1/fonts-elem-03-b.svg on
3446           Tiger and multiple SVG layout test failures on Leopard.
3447
3448         * css/CSSSegmentedFontFace.cpp:
3449         (WebCore::CSSSegmentedFontFace::getFontData): Avoid returning an
3450         empty SegmentedFontData.
3451         * platform/graphics/mac/FontCustomPlatformData.cpp:
3452         (WebCore::createFontCustomPlatformData): Avoid creating a font that
3453         contains no glyphs. On Leopard, ATS might create such a font given
3454         data in an unsupported format (such as SVG).
3455
3456 2008-01-07  Steve Falkenburg  <sfalken@apple.com>
3457
3458         Build fix.
3459
3460         * WebCore.vcproj/WebCore.sln:
3461         * WebCore.vcproj/WebCore.submit.sln:
3462
3463 2008-01-07  Oliver Hunt  <oliver@apple.com>
3464
3465         Reviewed by Niko.
3466
3467         Fix painting of SVG <image> when the image must be scaled to retain aspect ratio
3468
3469         Test: svg/custom/image-with-aspect-ratio-stretch.svg
3470
3471         * rendering/RenderSVGImage.cpp:
3472         (WebCore::RenderSVGImage::adjustRectsForAspectRatio):
3473
3474 2008-01-07  Dan Bernstein  <mitz@apple.com>
3475
3476         Build fix.
3477
3478         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
3479         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
3480
3481 2008-01-07  Adele Peterson  <adele@apple.com>
3482
3483         Add missing newline.
3484
3485         * rendering/MediaControlElements.cpp:
3486
3487 2008-01-07  Jon Honeycutt  <jhoneycutt@apple.com>
3488
3489         Reviewed by Hyatt.
3490
3491         <rdar://problem/5673489> Safari does not render windowless plugins in an
3492         iframe when opacity < 1.0
3493
3494         Plugins in transparency layers handle their own world transforms, so
3495         only apply the horizontal/vertical transform if we are not in a
3496         transparency layer.
3497
3498         * platform/graphics/GraphicsContext.h: Add a Windows-platform-only
3499         inTransparencyLayer() function
3500         * platform/win/GraphicsContextWin.cpp:
3501         (WebCore::GraphicsContext::getWindowsContext): Use inTransparencyLayer()
3502         (WebCore::GraphicsContext::inTransparencyLayer):
3503         (WebCore::GraphicsContext::releaseWindowsContext): Use
3504         inTransparencyLayer()
3505         * plugins/win/PluginViewWin.cpp:
3506         (WebCore::PluginViewWin::paint): When retrieving the HDC, use the rect
3507         relative to the window. Pass m_isTransparent to
3508         get/releaseWindowsContext(). Only set the world transform if we are not
3509         in a transparency layer.
3510
3511 2008-01-07  Adele Peterson  <adele@apple.com>
3512
3513         Build fix.  Need to wrap these classes in #if ENABLE(VIDEO)
3514
3515         * rendering/MediaControlElements.cpp:
3516         * rendering/MediaControlElements.h:
3517
3518 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
3519
3520         Reviewed by Mark.
3521
3522         Enable SVG_FONTS by default.
3523
3524         * Configurations/WebCore.xcconfig:
3525         * WebCore.vcproj/build-generated-files.sh:
3526
3527 2008-01-07  Dan Bernstein  <mitz@apple.com>
3528
3529         Build fix.
3530
3531         * platform/graphics/qt/SimpleFontDataQt.cpp:
3532         (WebCore::SimpleFontData::SimpleFontData):
3533         (WebCore::SimpleFontData::~SimpleFontData):
3534
3535 2008-01-07  Adam Barth  <hk9565@gmail.com>
3536
3537         Reviewed by Sam Weinig
3538
3539         Fixes: http://bugs.webkit.org/show_bug.cgi?id=16523
3540         <rdar://problem/5657447>
3541
3542         When a frame is created with the URL "about:blank" or "", it should
3543         inherit its SecurityOrigin from its opener.  However, once it has
3544         decided on that SecurityOrigin, it should not change its mind.
3545         Prior to this patch, several events could induce the frame to change
3546         its SecurityOrigin, permitting an attacker to inject script into an
3547         arbitrary SecurityOrigin.
3548
3549         This patch makes several changes:
3550
3551         1) Documents refuse to change from one SecurityOrigin to another
3552            unless explicitly instructed to do so.
3553
3554         2) Navigating to a JavaScript URL that produces a value
3555            preserves the current SecurityOrigin explicitly instead of
3556            relying on the URL to preserve the origin (which fails for
3557            about:blank URLs and SecurityOrigins with document.domain set).
3558
3559            Ideally, we should not preserve the URL at all.  Instead, the
3560            frame's URL should be the JavaScript URL, as in Firefox, but this
3561            would require changes that are too risky for this patch.  I'll
3562            file this as a separate issue.
3563
3564         3) Various methods of navigating to JavaScript URLs were not
3565            properly handling JavaScript that returned a value (and should
3566            therefore replace the current document).  This patch unifies
3567            those code paths with the path that works.
3568
3569            There are still a handful of bugs relating to the handling of
3570            JavaScript URLs, but I'll file those as separate issues.
3571
3572         Tests: http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html
3573                http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html
3574                http/tests/security/aboutBlank/xss-DENIED-set-opener.html
3575
3576         * dom/Document.cpp:
3577         (WebCore::Document::initSecurityOrigin):
3578         * dom/Document.h:
3579         (WebCore::Document::setSecurityOrigin):
3580         * loader/FrameLoader.cpp:
3581         (WebCore::FrameLoader::changeLocation):
3582         (WebCore::FrameLoader::urlSelected):
3583         (WebCore::FrameLoader::requestFrame):
3584         (WebCore::FrameLoader::submitForm):
3585         (WebCore::FrameLoader::executeIfJavaScriptURL):
3586         (WebCore::FrameLoader::begin):
3587         * loader/FrameLoader.h:
3588         * platform/SecurityOrigin.cpp:
3589         (WebCore::SecurityOrigin::setForURL):
3590         (WebCore::SecurityOrigin::createForFrame):
3591         * platform/SecurityOrigin.h:
3592
3593 2008-01-07  Adele Peterson  <adele@apple.com>
3594
3595         Forgot to check in these changes in my last checkin.
3596
3597         * rendering/RenderThemeSafari.cpp:
3598
3599 2008-01-07  Dan Bernstein  <mitz@apple.com>
3600
3601         Build fixes.
3602
3603         * WebCore.pro:
3604         * platform/graphics/qt/FontCacheQt.cpp:
3605         (WebCore::FontCache::getCachedFontData):
3606
3607 2008-01-07  Timothy Hatcher  <timothy@apple.com>
3608
3609         Reviewed by John Sullivan.
3610
3611         <rdar://problem/5674119> Make the Web Inspector toolbar the normal size when not docked
3612
3613         * page/inspector/inspector.css: Changed CSS rules to have the toolbar and buttons be
3614           normal height when not docked, and small when docked. Also added some cursor properties
3615           prevent showing the text cursor over areas that are not selectable.
3616         * page/inspector/Images: A few images added and old ones removed or renamed.
3617
3618 2008-01-07  Alp Toker  <alp@atoker.com>
3619
3620         Prospective GTK+ autotools/qmake VIDEO build fix for breakage
3621         introduced in r29257.
3622
3623         * GNUmakefile.am:
3624         * WebCore.pro:
3625
3626 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
3627
3628         Reviewed by Oliver.
3629
3630         Build fix affecting all builds - again related to the unicode-range addition.
3631
3632         * css/CSSFontSelector.cpp:
3633         (WebCore::CSSFontSelector::addFontFaceRule):
3634         * css/SVGCSSFontFace.cpp:
3635         (WebCore::SVGCSSFontFace::SVGCSSFontFace):
3636         * css/SVGCSSFontFace.h:
3637         * rendering/RenderSVGText.cpp:
3638         * svg/SVGFont.cpp:
3639         (WebCore::svgFontAndFontFaceElementForFontData):
3640         (WebCore::floatWidthMissingGlyphCallback):
3641         (WebCore::drawTextMissingGlyphCallback):
3642         * svg/SVGFontFaceElement.cpp:
3643
3644 2008-01-07  Adele Peterson  <adele@apple.com>
3645
3646         Reviewed by Antti, Adam, and Mitz.
3647
3648         WebCore part of fix for 
3649         <rdar://problem/5619073> Updated look for <video> controls
3650         <rdar://problem/5619057> Add volume control to video controls
3651
3652         * WebCore.base.exp: Added symbols for WebKitSystemInterface drawing methods.
3653         * WebCore.xcodeproj/project.pbxproj: Added MediaControlElements.h/cpp
3654         * WebCore.vcproj/WebCore.vcproj: ditto.
3655
3656         * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added cases for new appearances.
3657         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Added cases for new types.
3658         * css/CSSSelector.h: (WebCore::CSSSelector::): Added new pseudo elements.
3659         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::checkOneSelector): ditto.
3660         * css/CSSValueKeywords.in: Added keywords for new control appearance styles.
3661         * css/html4.css: Added new styles for new controls.
3662
3663         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::canPlay): Added. Takes loading state into account.
3664         * html/HTMLMediaElement.h:
3665
3666         * page/EventHandler.cpp: (WebCore::EventHandler::updateMouseEventTargetNode): Make sure the events always go to the capturing node, if there is one.
3667
3668         * platform/mac/WebCoreSystemInterface.h: Added drawing methods for controls.
3669         * platform/mac/WebCoreSystemInterface.mm: ditto.
3670
3671         * rendering/MediaControlElements.cpp: Added.
3672         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement): Moved from RenderMedia.  Made this relatively positioned, instead of absolute.
3673         (WebCore::MediaControlInputElement::MediaControlInputElement): Moved from RenderMedia.  Removed call to updateFromElement, 
3674          since its too early to do this here, and causes crashes for the slider.
3675         (WebCore::MediaControlInputElement::attachToParent): Moved from RenderMedia.
3676         (WebCore::MediaControlInputElement::update): ditto.
3677         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Added.
3678         (WebCore::MediaControlMuteButtonElement::defaultEventHandler): ditto.
3679         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Moved from RenderMedia.
3680         (WebCore::MediaControlPlayButtonElement::defaultEventHandler): ditto.
3681         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Added.
3682         (WebCore::MediaControlSeekButtonElement::defaultEventHandler): ditto.
3683         (WebCore::MediaControlSeekButtonElement::seekTimerFired): ditto.
3684         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Moved from RenderMedia.
3685         (WebCore::MediaControlTimelineElement::defaultEventHandler): ditto.
3686         (WebCore::MediaControlTimelineElement::update): ditto. 
3687         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Added.
3688         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): ditto.
3689         * rendering/MediaControlElements.h: Added. Moved from RenderMedia.
3690         (WebCore::MediaControlShadowRootElement::isShadowNode):
3691         (WebCore::MediaControlShadowRootElement::shadowParentNode):
3692         (WebCore::RenderMediaControlShadowRoot::RenderMediaControlShadowRoot):
3693         (WebCore::RenderMediaControlShadowRoot::setParent):
3694
3695         * rendering/RenderMedia.cpp: Moved control element classes to MediaControlElements files.
3696         (WebCore::RenderMedia::RenderMedia): No need to initialize RefPtrs.
3697         (WebCore::RenderMedia::layout): Set the position for the controlsRenderer.
3698         (WebCore::RenderMedia::createPanel): Added nil check for the renderer.
3699         (WebCore::RenderMedia::createMuteButton): Added.
3700         (WebCore::RenderMedia::createSeekBackButton): ditto.
3701         (WebCore::RenderMedia::createSeekForwardButton): ditto.
3702         (WebCore::RenderMedia::createTimeDisplay): Added nil check for the renderer.
3703         (WebCore::RenderMedia::createFullscreenButton): Added.
3704         (WebCore::RenderMedia::updateControls): Create, delete, and update new controls when appropriate.
3705         (WebCore::RenderMedia::updateControlVisibility): Don't fade controls for audio controls. 
3706         (WebCore::RenderMedia::forwardEvent): Forward events for new controls.
3707         * rendering/RenderMedia.h: Added new methods for creating new controls.
3708
3709         * rendering/RenderObject.cpp: (WebCore::RenderObject::containingBlock): Updated special case for media elements, which are replaced elements, 
3710           but also can contain children (the controls' container) that may need to look for the containing block.
3711
3712         * rendering/RenderSlider.cpp: (WebCore::RenderSlider::createThumbStyle): Added case for MediaSliderAppearance.
3713
3714         * rendering/RenderStyle.h: Added appearance constants and pseudo ids for new controls.
3715         (WebCore::):
3716         (WebCore::RenderStyle::):
3717
3718         * rendering/RenderTheme.cpp:
3719         (WebCore::RenderTheme::adjustStyle): Added cases for new appearances.
3720         (WebCore::RenderTheme::paint): ditto.
3721         * rendering/RenderTheme.h: Added new methods for painting new appearances.
3722         (WebCore::RenderTheme::paintMediaBackground):
3723         (WebCore::RenderTheme::paintMediaFullscreenButton):
3724         (WebCore::RenderTheme::paintMediaPlayButton):
3725         (WebCore::RenderTheme::paintMediaMuteButton):
3726         (WebCore::RenderTheme::paintMediaSeekBackButton):
3727         (WebCore::RenderTheme::paintMediaSeekForwardButton):
3728         (WebCore::RenderTheme::paintMediaSliderThumb):
3729         * rendering/RenderThemeMac.h:
3730         * rendering/RenderThemeMac.mm:
3731         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_mediaControlBackgroundImage.
3732         (WebCore::RenderThemeMac::~RenderThemeMac): Delete m_mediaControlBackgroundImage.
3733         (WebCore::RenderThemeMac::paintCapsLockIndicator): Use LocalCurrentGraphicsContext here too, since we use it in all other painting methods.
3734         (WebCore::RenderThemeMac::paintSliderTrack): Added case for MediaSliderAppearance.
3735         (WebCore::RenderThemeMac::adjustSliderThumbSize): Added case for MediaSliderThumbAppearance.
3736         (WebCore::RenderThemeMac::paintMediaBackground): Draws the new artwork for the controls.
3737         (WebCore::RenderThemeMac::paintMediaFullscreenButton): ditto.
3738         (WebCore::RenderThemeMac::paintMediaMuteButton): ditto.
3739         (WebCore::RenderThemeMac::paintMediaPlayButton): ditto.
3740         (WebCore::RenderThemeMac::paintMediaSeekBackButton): ditto.
3741         (WebCore::RenderThemeMac::paintMediaSeekForwardButton): ditto.
3742         (WebCore::RenderThemeMac::paintMediaSliderThumb): ditto.
3743         * rendering/RenderThemeSafari.cpp: Draws the new artwork on Windows.
3744         (WebCore::RenderThemeSafari::paintSliderTrack):
3745         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
3746         (WebCore::RenderThemeSafari::paintMediaBackground):
3747         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
3748         (WebCore::RenderThemeSafari::paintMediaMuteButton):
3749         (WebCore::RenderThemeSafari::paintMediaPlayButton):
3750         (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
3751         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
3752         (WebCore::RenderThemeSafari::paintMediaSliderThumb):
3753         * rendering/RenderThemeSafari.h:
3754
3755 2008-01-07  Timothy Hatcher  <timothy@apple.com>
3756
3757         Reviewed by Darin Adler.
3758
3759         Fix ASSERTION FAILED: dstOffset + srcSegmentLength == static_cast<int>(data.size())
3760         when the replacment string is a different length.
3761
3762         * platform/text/StringImpl.cpp:
3763         (WebCore::StringImpl::replace): Move the parenthesis to be around only the subtraction in
3764         the Vector size calculation, correcting the order of math operations.
3765
3766 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
3767
3768         Reviewed by Eric. Hopefully fix build with mac tiger after the unicode-range addition. NSInteger not available there.
3769
3770         * platform/graphics/mac/FontCacheMac.mm:
3771
3772 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
3773
3774         Reviewed by Oliver. Fix build error introduced by Dan's unicode-range support patch & enabling SVG_FONTS by default.
3775
3776         * css/CSSFontSelector.cpp:
3777         (WebCore::CSSFontSelector::getFontData):
3778
3779 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
3780
3781         Not reviewed. Next try to fix wx/mac leopard build.
3782
3783         * css/CSSFontSelector.cpp: Need to wrap a SVG* include in ENABLE(SVG) blocks, as this port doesn't build this generated file.
3784         * svg/SVGFontFaceElement.cpp:
3785         (WebCore::SVGFontFaceElement::createFontData): Fix double<->float conversion issue.
3786         * webcore-base.bkl: Undo svg/ include.
3787
3788 2008-01-07  Dan Bernstein  <mitz@apple.com>
3789
3790         Reviewed by Dave Hyatt.
3791
3792         - <rdar://problem/5665216> Support the unicode-range property in @font-face rules
3793
3794         * GNUmakefile.am:
3795         * WebCore.pro:
3796         * WebCore.vcproj/WebCore.vcproj:
3797         * WebCore.xcodeproj/project.pbxproj:
3798         * WebCoreSources.bkl:
3799         * bindings/objc/DOM.mm:
3800         * bridge/mac/WebCoreAXObject.mm:
3801         * css/CSSComputedStyleDeclaration.cpp:
3802         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3803         * css/CSSFontFace.cpp:
3804         (WebCore::CSSFontFace::fontLoaded): Changed to call the owning segmented
3805         font face.
3806         (WebCore::CSSFontFace::getFontData):
3807         * css/CSSFontFace.h:
3808         (WebCore::CSSFontFace::CSSFontFace):
3809         (WebCore::CSSFontFace::setSegmentedFontFace):
3810         * css/CSSFontFaceSource.cpp:
3811         (WebCore::CSSFontFaceSource::pruneTable): Removed the calls to
3812         GlyphPageTreeNode::pruneTreeCustomFontData because the fonts in the
3813         font table are not exposed in the glyph page tree. Only the segmented
3814         font is, and that is taken care of by the segmented font face.
3815         (WebCore::CSSFontFaceSource::getFontData):
3816         * css/CSSFontFaceSource.h:
3817         * css/CSSFontSelector.cpp:
3818         (WebCore::CSSFontSelector::addFontFaceRule): Changed to collect
3819         @font-face rules with the same family and traits into a single
3820         segmented font face, instead of just retaining the most recent one.
3821         (WebCore::CSSFontSelector::fontLoaded):
3822         (WebCore::CSSFontSelector::getFontData):
3823         * css/CSSFontSelector.h:
3824         * css/CSSGrammar.y:
3825         * css/CSSParser.cpp:
3826         (WebCore::CSSParser::parseValue):
3827         (WebCore::CSSParser::parseFontFaceUnicodeRange): Added. Parses a unicode
3828         range value.
3829         * css/CSSParser.h:
3830         * css/CSSPrimitiveValue.h:
3831         (WebCore::CSSPrimitiveValue::):
3832         * css/CSSPropertyNames.in:
3833         * css/CSSSegmentedFontFace.cpp: Added.
3834         (WebCore::CSSSegmentedFontFace::CSSSegmentedFontFace):
3835         (WebCore::CSSSegmentedFontFace::~CSSSegmentedFontFace):
3836         (WebCore::CSSSegmentedFontFace::pruneTable):
3837         (WebCore::CSSSegmentedFontFace::isLoaded):
3838         (WebCore::CSSSegmentedFontFace::isValid):
3839         (WebCore::CSSSegmentedFontFace::fontLoaded):
3840         (WebCore::CSSSegmentedFontFace::overlayRange):
3841         (WebCore::CSSSegmentedFontFace::getFontData):
3842         * css/CSSSegmentedFontFace.h: Added.
3843         (WebCore::FontFaceRange::FontFaceRange):
3844         (WebCore::FontFaceRange::from):
3845         (WebCore::FontFaceRange::to):
3846         (WebCore::FontFaceRange::fontFace):
3847         (WebCore::CSSSegmentedFontFace::fontSelector):
3848         * css/CSSStyleSelector.cpp:
3849         (WebCore::CSSStyleSelector::applyProperty):
3850         * css/CSSUnicodeRangeValue.cpp: Added.
3851         (WebCore::CSSUnicodeRangeValue::~CSSUnicodeRangeValue):
3852         (WebCore::CSSUnicodeRangeValue::cssText):
3853         * css/CSSUnicodeRangeValue.h: Added.
3854         (WebCore::CSSUnicodeRangeValue::CSSUnicodeRangeValue):
3855         (WebCore::CSSUnicodeRangeValue::from):
3856         (WebCore::CSSUnicodeRangeValue::to):
3857         * css/SVGCSSFontFace.cpp:
3858         (WebCore::SVGCSSFontFace::getFontData):
3859         * css/SVGCSSFontFace.h:
3860         * editing/Editor.cpp:
3861         (WebCore::Editor::fontForSelection):
3862         * editing/Editor.h:
3863         * page/mac/FrameMac.mm:
3864         * page/mac/WebCoreFrameBridge.mm:
3865         (-[WebCoreFrameBridge fontForSelection:]):
3866         * platform/graphics/Font.cpp:
3867         (WebCore::WidthIterator::advance):
3868         (WebCore::Font::glyphDataForCharacter):
3869         (WebCore::Font::primaryFont): Changed to return the simple font data
3870         used for the space character.
3871         (WebCore::Font::fontDataAt):
3872         (WebCore::Font::fontDataForCharacters):
3873         (WebCore::Font::drawGlyphBuffer):
3874         * platform/graphics/Font.h:
3875         * platform/graphics/FontCache.cpp:
3876         (WebCore::FontCache::getCachedFontData):
3877         (WebCore::FontCache::getFontData):
3878         * platform/graphics/FontCache.h:
3879         * platform/graphics/FontData.cpp: Renamed to SimpleFontData.cpp
3880         * platform/graphics/FontData.h: Renamed to SimpleFontData.cpp.
3881         * platform/graphics/FontDataBaseClass.cpp: Added. This will be renamed
3882         FontData.cpp.
3883         (WebCore::FontData::~FontData):
3884         * platform/graphics/FontDataBaseClass.h: Added. This will be renamed
3885         FontData.h.
3886         * platform/graphics/FontFallbackList.cpp:
3887         (WebCore::FontFallbackList::determinePitch):
3888         (WebCore::FontFallbackList::fontDataAt):
3889         (WebCore::FontFallbackList::fontDataForCharacters):
3890         * platform/graphics/FontFallbackList.h:
3891         (WebCore::FontFallbackList::primaryFont):
3892         * platform/graphics/FontSelector.h:
3893         * platform/graphics/GlyphBuffer.h:
3894         (WebCore::GlyphBuffer::fontDataAt):
3895         (WebCore::GlyphBuffer::swap):
3896         (WebCore::GlyphBuffer::add):
3897         * platform/graphics/GlyphPageTreeNode.cpp:
3898         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
3899         (WebCore::GlyphPageTreeNode::initializePage): Added code to initialize
3900         pages for segmented font data.
3901         (WebCore::GlyphPageTreeNode::getChild):
3902         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
3903         * platform/graphics/GlyphPageTreeNode.h:
3904         (WebCore::GlyphPage::setGlyphDataForCharacter):
3905         (WebCore::GlyphPage::setGlyphDataForIndex):
3906         (WebCore::GlyphPageTreeNode::getRootChild):
3907         * platform/graphics/SegmentedFontData.cpp: Added.
3908         (WebCore::SegmentedFontData::~SegmentedFontData):
3909         (WebCore::SegmentedFontData::fontDataForCharacter):
3910         (WebCore::SegmentedFontData::containsCharacters):
3911         (WebCore::SegmentedFontData::isCustomFont):
3912         (WebCore::SegmentedFontData::isLoading):
3913         (WebCore::SegmentedFontData::isSegmented):
3914         * platform/graphics/SegmentedFontData.h: Added.
3915         (WebCore::FontDataRange::FontDataRange):
3916         (WebCore::FontDataRange::from):
3917         (WebCore::FontDataRange::to):
3918         (WebCore::FontDataRange::fontData):
3919         (WebCore::SegmentedFontData::appendRange):
3920         (WebCore::SegmentedFontData::numRanges):
3921         (WebCore::SegmentedFontData::rangeAt):
3922         * platform/graphics/SimpleFontData.cpp: Copied from WebCore/platform/graphics/FontData.cpp.
3923         (WebCore::SimpleFontData::SimpleFontData):
3924         (WebCore::SimpleFontData::~SimpleFontData):
3925         (WebCore::SimpleFontData::ascent):
3926         (WebCore::SimpleFontData::descent):
3927         (WebCore::SimpleFontData::widthForGlyph):
3928         (WebCore::SimpleFontData::fontDataForCharacter):
3929         (WebCore::SimpleFontData::isSegmented):
3930         * platform/graphics/SimpleFontData.h: Copied from WebCore/platform/graphics/FontData.h.
3931         (WebCore::SimpleFontData::isCustomFont):
3932         (WebCore::SimpleFontData::isLoading):
3933         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3934         (WebCore::GraphicsContext::setPlatformFont):
3935         * platform/graphics/gtk/FontCacheGtk.cpp:
3936         (WebCore::FontCache::getFontDataForCharacters):
3937         * platform/graphics/gtk/FontDataGtk.cpp: Renamed to
3938         SimpleFontDataGtk.cpp.
3939         * platform/graphics/gtk/FontGtk.cpp:
3940         (WebCore::Font::drawGlyphs):
3941         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
3942         (WebCore::GlyphPage::fill):
3943         * platform/graphics/gtk/SimpleFontDataGtk.cpp: Copied from WebCore/platform/graphics/gtk/FontDataGtk.cpp.
3944         (WebCore::SimpleFontData::platformInit):
3945         (WebCore::SimpleFontData::platformDestroy):
3946         (WebCore::SimpleFontData::smallCapsFontData):
3947         (WebCore::SimpleFontData::containsCharacters):
3948         (WebCore::SimpleFontData::determinePitch):
3949         (WebCore::SimpleFontData::platformWidthForGlyph):
3950         (WebCore::SimpleFontData::setFont):
3951         * platform/graphics/mac/FontCacheMac.mm:
3952         (WebCore::FontCache::getFontDataForCharacters):
3953         * platform/graphics/mac/FontDataMac.mm: Renamed to SimpleFontDataMac.mm.
3954         * platform/graphics/mac/FontMac.mm:
3955         (WebCore::initializeATSUStyle):
3956         (WebCore::overrideLayoutOperation):
3957         (WebCore::ATSULayoutParameters::initialize):
3958         (WebCore::Font::drawGlyphs):
3959         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
3960         (WebCore::GlyphPage::fill):
3961         * platform/graphics/mac/SimpleFontDataMac.mm: Copied from WebCore/platform/graphics/mac/FontDataMac.mm.
3962         (WebCore::initFontData):
3963         (WebCore::SimpleFontData::platformInit):
3964         (WebCore::SimpleFontData::platformDestroy):
3965         (WebCore::SimpleFontData::smallCapsFontData):
3966         (WebCore::SimpleFontData::containsCharacters):
3967         (WebCore::SimpleFontData::determinePitch):
3968         (WebCore::SimpleFontData::platformWidthForGlyph):
3969         (WebCore::SimpleFontData::checkShapesArabic):
3970         * platform/graphics/qt/FontDataQt.cpp: Renamed to SimpleFontDataQt.cpp.
3971         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
3972         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
3973         * platform/graphics/qt/SimpleFontDataQt.cpp: Copied from WebCore/platform/graphics/qt/FontDataQt.cpp.
3974         * platform/graphics/win/FontCacheWin.cpp:
3975         (WebCore::FontCache::getFontDataForCharacters):
3976         * platform/graphics/win/FontDataWin.cpp: Renamed to
3977         SimpleFontDataWin.cpp.
3978         * platform/graphics/win/FontWin.cpp:
3979         (WebCore::Font::drawGlyphs):
3980         * platform/graphics/win/GlyphPageTreeNodeWin.cpp:
3981         (WebCore::GlyphPage::fill):
3982         * platform/graphics/win/SimpleFontDataWin.cpp: Copied from WebCore/platform/graphics/win/FontDataWin.cpp.
3983         (WebCore::SimpleFontData::setShouldApplyMacAscentHack):
3984         (WebCore::SimpleFontData::platformInit):
3985         (WebCore::SimpleFontData::platformDestroy):
3986         (WebCore::SimpleFontData::smallCapsFontData):
3987         (WebCore::SimpleFontData::containsCharacters):
3988         (WebCore::SimpleFontData::determinePitch):
3989         (WebCore::SimpleFontData::platformWidthForGlyph):
3990         (WebCore::SimpleFontData::scriptFontProperties):
3991         * platform/graphics/wx/FontCacheWx.cpp:
3992         (WebCore::FontCache::getFontDataForCharacters):
3993         * platform/graphics/wx/FontDataWx.cpp: Renamed to SimpleFontDataWx.cpp.
3994         * platform/graphics/wx/FontWx.cpp:
3995         (WebCore::Font::drawGlyphs):
3996         * platform/graphics/wx/GlyphMapWx.cpp:
3997         (WebCore::GlyphPage::fill):
3998         * platform/graphics/wx/SimpleFontDataWx.cpp: Copied from WebCore/platform/graphics/wx/FontDataWx.cpp.
3999         (WebCore::SimpleFontData::platformInit):
4000         (WebCore::SimpleFontData::platformDestroy):
4001         (WebCore::SimpleFontData::smallCapsFontData):
4002         (WebCore::SimpleFontData::containsCharacters):
4003         (WebCore::SimpleFontData::determinePitch):
4004         (WebCore::SimpleFontData::platformWidthForGlyph):
4005         * platform/mac/FileChooserMac.mm:
4006         * platform/mac/PopupMenuMac.mm:
4007         * platform/mac/WebCoreTextRenderer.mm:
4008         * platform/win/PopupMenuWin.cpp:
4009         * platform/win/UniscribeController.cpp:
4010         (WebCore::UniscribeController::advance):
4011         (WebCore::UniscribeController::itemizeShapeAndPlace):
4012         (WebCore::UniscribeController::shapeAndPlaceItem):
4013         (WebCore::UniscribeController::shape):
4014         * platform/win/UniscribeController.h:
4015         * svg/SVGFont.cpp:
4016         (WebCore::Font::drawGlyphsWithSVGFont):
4017         * svg/SVGFontElement.cpp:
4018         (WebCore::SVGFontElement::collectGlyphs):
4019         * svg/SVGFontFaceElement.cpp:
4020         (WebCore::SVGFontFaceElement::createFontData):
4021         * svg/SVGFontFaceElement.h:
4022         * svg/SVGGlyphElement.cpp:
4023
4024 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
4025
4026         Not reviewed. Try to fix mac build by forcing SVGNames regeneration.
4027
4028         * svg/svgtags.in:
4029
4030 2008-01-07  Nikolas Zimmermann  <zimmermann@kde.org>
4031
4032         Not reviewed. Proposed build fix for wx.
4033
4034         * webcore-base.bkl:
4035
4036 2008-01-07  Dan Bernstein  <mitz@apple.com>
4037
4038         64-bit build fix
4039
4040         * platform/graphics/mac/FontCustomPlatformData.cpp:
4041         (WebCore::FontCustomPlatformData::fontPlatformData): Have to use a
4042         cast here since FMGetFontFromATSFontRef() is not available on 64-bit.
4043
4044 2008-01-06  Nikolas Zimmermann  <zimmermann@kde.org>
4045
4046         Reviewed by Oliver. Parts reviewed by Eric, David Hyatt & Dan & Alexey.
4047         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15741 (REGRESSION: svg/W3C-SVG-1.1/fonts-elem-03-b.svg shows worse behavior on TOT)
4048
4049         Display SVG Fonts, fill svg/SVGFont.cpp with life by adding all needed code to
4050         measure & render glyphs contained in SVG Fonts, including ligature lookup support.
4051
4052         Implement floatWidth/selectionRectForText for SVG Fonts, fixing text selection.
4053
4054         Support horiz-origin-x/y, horiz-adv-x, vert-adv-y, vert-origin-x/y & arabic-form.
4055         Implement simple algorithm to determine the arabic forms for a string (initial, isolated, medial, terminal).
4056
4057         Removed drawGlyphsWithSVGFont - create a new function drawTextWithSVGFont instead.
4058         This doesn't involve creating/using a 'GlyphBuffer' object anymore, which is not
4059         required for SVG Fonts anyway (we already know all our offsets/advances/etc..)
4060
4061         Don't call it from drawSimpleText anymore, but directly in drawText - as Dan suggested.
4062
4063         <glyph> elements now register themselves in the SVGFontElement's glyph cache.
4064         (insertedIntoDocument / removedFromDocument take care of this)
4065
4066         The cache is built once now, and is kept updated - it's not rebuild anymore
4067         on painting (!) - which was a crude hack for testing.
4068
4069         W3C testcase which include SVG Fonts:
4070         svg/W3C-SVG-1.1/animate-elem-03-t.svg (Fixed, of course not the anim itself, but it's SVG Fonts usage)
4071         svg/W3C-SVG-1.1/animate-elem-24-t.svg (Ditto)
4072         svg/W3C-SVG-1.1/animate-elem-36-t.svg (Ditto)
4073         svg/W3C-SVG-1.1/animate-elem-40-t.svg (Ditto)
4074         svg/W3C-SVG-1.1/fonts-kern-01-t.svg (missing <vkern>/<hkern> support)
4075         svg/W3C-SVG-1.1/fonts-desc-02-t.svg (Fixed, tests CSS font matching based on font-variant attribute)
4076         svg/W3C-SVG-1.1/fonts-elem-01-t.svg (Fixed, basic SVG font test)
4077         svg/W3C-SVG-1.1/fonts-elem-02-t.svg (Fixed, accuracy test for embedded SVG font)
4078         svg/W3C-SVG-1.1/fonts-elem-05-t.svg (Fixed, checks horiz-origin-x support, note: W3C reference image is wrong)
4079         svg/W3C-SVG-1.1/fonts-elem-06-t.svg (Fixed, checks horiz-adv-x support)
4080         svg/W3C-SVG-1.1/fonts-glyph-02-t.svg (Fixed, checks arabic-form support)
4081         svg/W3C-SVG-1.1/fonts-glyph-03-t.svg (Fixed, checks glyph matching based on xml:lang)
4082         svg/W3C-SVG-1.1/masking-mask-01-b.svg (Fixed, SVG Fonts & masking)
4083         svg/W3C-SVG-1.1/pservers-grad-08-b.svg (Fixed, SVG Fonts & gradient on fill/stroke)
4084         svg/W3C-SVG-1.1/render-elems-06-t.svg (Fixed, simple 'fill' property test)
4085         svg/W3C-SVG-1.1/render-elems-07-t.svg (Fixed, simple 'stroke' property test - shows SVG Font interprets stroke-width in glyph coordinate system, as demanded by spec)
4086         svg/W3C-SVG-1.1/render-elems-08-t.svg (Fixed, simple 'fill' & 'stroke' property test)
4087         svg/W3C-SVG-1.1/render-groups-01-b.svg (missing <vkern>/<hkern> support)
4088         svg/W3C-SVG-1.1/render-groups-03-t.svg (Ditto)
4089         svg/W3C-SVG-1.1/text-altglyph-01-b.svg (no <altGlyph> support yet)
4090         svg/W3C-SVG-1.1/text-text-04-t.svg (Fixed, absolute placing of characters pixel perfect now)
4091         svg/W3C-SVG-1.1/text-text-05-t.svg (FIXME: problem with text-anchor)
4092         svg/W3C-SVG-1.1/text-text-06-t.svg (highlights problem with ligatures & absolute positioned characters)
4093
4094         Questionable testcases:
4095         svg/W3C-SVG-1.1/fonts-glyph-04-t.svg (tests that glyph selection is done in the order in the definition of the font element.)
4096         I am not sure why this behaviour is desired, no comment given in spec - doesn't make much sense to me, ignoring it for now.
4097
4098         Several other batik testcases fixed, which use SVG Fonts in combination with gradients & filters.
4099
4100         * css/CSSFontSelector.cpp:
4101         (WebCore::CSSFontSelector::addFontFaceRule):
4102         (WebCore::CSSFontSelector::getFontData):
4103         * platform/graphics/Font.cpp:
4104         (WebCore::Font::lineSpacing):
4105         (WebCore::Font::xHeight):
4106         (WebCore::Font::canUseGlyphCache):
4107         (WebCore::Font::drawGlyphBuffer):
4108         (WebCore::Font::drawText):
4109         (WebCore::Font::floatWidth):
4110         (WebCore::Font::selectionRectForText):
4111         * platform/graphics/Font.h:
4112         (WebCore::TextRun::TextRun):
4113         (WebCore::TextRun::activePaintServer):
4114         (WebCore::TextRun::setActivePaintServer):
4115         * platform/graphics/FontData.cpp:
4116         (WebCore::FontData::lineSpacing):
4117         (WebCore::FontData::lineGap):
4118         (WebCore::FontData::xHeight):
4119         * platform/graphics/FontData.h:
4120         * platform/graphics/win/FontWin.cpp:
4121         (WebCore::Font::drawGlyphs):
4122         * rendering/RenderSVGText.cpp:
4123         (WebCore::RenderSVGText::relativeBBox):
4124         * rendering/SVGInlineTextBox.cpp:
4125         (WebCore::SVGInlineTextBox::paintCharacters):
4126         * rendering/SVGInlineTextBox.h:
4127         * rendering/SVGRootInlineBox.cpp:
4128         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
4129         * svg/SVGFont.cpp:
4130         (WebCore::):
4131         (WebCore::processArabicFormDetection):
4132         (WebCore::charactersWithArabicForm):
4133         (WebCore::isCompatibleArabicForm):
4134         (WebCore::isCompatibleGlyph):
4135         (WebCore::svgFontAndFontFaceElementForFontData):
4136         (WebCore::SVGTextRunWalker::SVGTextRunWalker):
4137         (WebCore::SVGTextRunWalker::walk):
4138         (WebCore::floatWidthUsingSVGFontCallback):
4139         (WebCore::floatWidthMissingGlyphCallback):
4140         (WebCore::floatWidthOfSubStringUsingSVGFont):
4141         (WebCore::Font::floatWidthUsingSVGFont):
4142         (WebCore::drawTextUsingSVGFontCallback):
4143         (WebCore::drawTextMissingGlyphCallback):
4144         (WebCore::Font::drawTextUsingSVGFont):
4145         (WebCore::Font::selectionRectForTextUsingSVGFont):
4146         * svg/SVGFontElement.cpp:
4147         (WebCore::SVGFontElement::SVGFontElement):
4148         (WebCore::SVGFontElement::addGlyphToCache):
4149         (WebCore::SVGFontElement::removeGlyphFromCache):
4150         (WebCore::SVGFontElement::firstMissingGlyphElement):
4151         (WebCore::SVGFontElement::glyphIdentifiersForString):
4152         * svg/SVGFontElement.h:
4153         (WebCore::SVGFontElement::maximumHashKeyLength):
4154         * svg/SVGFontFaceElement.cpp:
4155         (WebCore::SVGFontFaceElement::createFontData):
4156         (WebCore::SVGFontFaceElement::rebuildFontFace):
4157         (WebCore::SVGFontFaceElement::associatedFontElement):
4158         * svg/SVGFontFaceElement.h:
4159         * svg/SVGGlyphElement.cpp:
4160         (WebCore::SVGGlyphElement::insertedIntoDocument):
4161         (WebCore::SVGGlyphElement::removedFromDocument):
4162         (WebCore::parseArabicForm):
4163         (WebCore::SVGGlyphElement::inheritUnspecifiedAttributes):
4164         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
4165         * svg/SVGGlyphElement.h:
4166         (WebCore::SVGGlyphIdentifier::):
4167         (WebCore::SVGGlyphIdentifier::SVGGlyphIdentifier):
4168         (WebCore::SVGGlyphIdentifier::inheritedValue):
4169         (WebCore::SVGGlyphIdentifier::operator==):
4170         (WebCore::SVGGlyphElement::~SVGGlyphElement):
4171
4172 2008-01-07  David Hyatt  <hyatt@apple.com>
4173
4174         Fix for bug 13095, CSS3 multiple backgrounds don't work on table cells.
4175
4176         Reviewed by Dan
4177
4178         * rendering/RenderBox.h:
4179         * rendering/RenderTableCell.cpp:
4180         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
4181
4182 2008-01-07  Holger Freyther  <zecke@selfish.org>
4183
4184         Reviewed by Alp Toker.
4185
4186         * Fix indention
4187
4188         * platform/gtk/ContextMenuGtk.cpp:
4189         (WebCore::ContextMenu::~ContextMenu):
4190
4191 2008-01-07  Holger Freyther  <zecke@selfish.org>
4192
4193         Reviewed by Alp Toker.
4194
4195         * The ContextMenuController is going to live longer than the ContextMenu. It is
4196         going to live as long as the WebCore::Page is around where the ContextMenu, specially
4197         in the case of a SubMenu, is gone before we popup the menu.
4198
4199         * platform/gtk/ContextMenuGtk.cpp:
4200         (WebCore::menuItemActivated):
4201         (WebCore::ContextMenu::appendItem):
4202
4203 2008-01-07  Holger Freyther  <zecke@selfish.org>
4204
4205         Reviewed by Alp Toker.
4206
4207         * Fix SubMenu handling
4208         * Do not connect to the activated signal if we are a separator or submenu
4209         * Change our type from ActionType to SubMenuType when we have a submenu
4210         * Initialize the SubMenu
4211
4212         * platform/gtk/ContextMenuGtk.cpp:
4213         (WebCore::ContextMenu::appendItem):
4214         * platform/gtk/ContextMenuItemGtk.cpp:
4215         (WebCore::ContextMenuItem::ContextMenuItem):
4216         (WebCore::ContextMenuItem::createNativeMenuItem):
4217         (WebCore::ContextMenuItem::setSubMenu):
4218
4219 2008-01-07  Holger Freyther  <zecke@selfish.org>
4220
4221         Reviewed by Alp Toker.
4222
4223         * Qt and Gtk must know if a ContextMenuItem is checkable. Add a new ContextMenuItemType for checkable
4224         actions.
4225         * Use this information in the Gtk platform to create a GtkCheckMenuItem when needed.
4226         * Update the ContextMenuController to accept CheckableActionTypes as well.
4227         * Change ContextMenu.cpp to use the CheckableActionType. The information if a item is checkable
4228         was extracted from ContextMenu::checkOrEnableIfNeeded.
4229         * Update the Qt and Windows port.
4230
4231
4232         * page/ContextMenuController.cpp:
4233         * platform/ContextMenu.cpp:
4234         (WebCore::createAndAppendFontSubMenu):
4235         (WebCore::createAndAppendSpellingAndGrammarSubMenu):
4236         (WebCore::createAndAppendSpellingSubMenu):
4237         (WebCore::createAndAppendWritingDirectionSubMenu):
4238         * platform/ContextMenuItem.h:
4239         * platform/gtk/ContextMenuItemGtk.cpp:
4240         (WebCore::ContextMenuItem::ContextMenuItem):
4241         (WebCore::ContextMenuItem::createNativeMenuItem):
4242