Fix for <rdar://problem/5585334>
[WebKit-https.git] / WebCore / ChangeLog
1 2007-11-11  Oliver Hunt  <oliver@apple.com>
2
3         Reviewed by Darin.
4
5         Fix for <rdar://problem/5585334> numfuzz: integer overflows opening
6         malformed SVG file in WebCore::ImageBuffer::create. Add protection
7         against a potential overflow.
8
9         * platform/graphics/cg/ImageBufferCG.cpp:
10
11 2007-11-11  Antti Koivisto  <antti@apple.com>
12
13         Reviewed by Darin.
14
15         Fix a bunch of cases where the exception code is checked by the function but is not zeroed first.
16
17         * bindings/js/kjs_binding.cpp:
18         (KJS::setDOMException):
19         * dom/Attr.cpp:
20         (WebCore::Attr::setPrefix):
21         * dom/Document.cpp:
22         (WebCore::Document::createElement):
23         * dom/Element.cpp:
24         (WebCore::Element::setPrefix):
25         * dom/Range.cpp:
26         (WebCore::Range::setStart):
27         (WebCore::Range::setEnd):
28         (WebCore::Range::isPointInRange):
29         (WebCore::Range::comparePoint):
30         (WebCore::Range::compareBoundaryPoints):
31         (WebCore::Range::deleteContents):
32         (WebCore::Range::processContents):
33         (WebCore::Range::extractContents):
34         (WebCore::Range::insertNode):
35         (WebCore::Range::setStartAfter):
36         (WebCore::Range::setEndBefore):
37         (WebCore::Range::setEndAfter):
38         (WebCore::Range::selectNode):
39         (WebCore::Range::surroundContents):
40         (WebCore::Range::setStartBefore):
41         * editing/TextIterator.cpp:
42         (WebCore::TextIterator::TextIterator):
43         * html/CanvasRenderingContext2D.cpp:
44         (WebCore::CanvasRenderingContext2D::createPattern):
45         * html/HTMLMediaElement.cpp:
46         (WebCore::HTMLMediaElement::play):
47         (WebCore::HTMLMediaElement::pause):
48         * html/HTMLSelectElement.cpp:
49         (WebCore::HTMLSelectElement::add):
50         (WebCore::HTMLSelectElement::setOption):
51         * xml/XPathEvaluator.cpp:
52         (WebCore::XPathEvaluator::evaluate):
53
54 2007-11-11  Darin Adler  <darin@apple.com>
55
56         Reviewed by Mitz.
57
58         - http://bugs.webkit.org/show_bug.cgi?id=15945
59           speed up GraphicsContextCG typical case by skipping roundToDevicePixels
60
61         * platform/graphics/cg/GraphicsContextCG.cpp:
62         (WebCore::GraphicsContext::restorePlatformState): Clear the flag since we no
63         longer know if the transform is identity or not.
64         (WebCore::GraphicsContext::strokeArc): Removed an extra set of redundant
65         CGContextSave/RestoreGState.
66         (WebCore::GraphicsContext::beginTransparencyLayer): Clear the flag since we no
67         longer know if the transform is identity or not.
68         (WebCore::GraphicsContext::endTransparencyLayer): Ditto.
69         (WebCore::GraphicsContext::scale): Ditto.
70         (WebCore::GraphicsContext::rotate): Ditto.
71         (WebCore::GraphicsContext::translate): Ditto.
72         (WebCore::GraphicsContext::concatCTM): Ditto.
73         (WebCore::GraphicsContext::roundToDevicePixels): Return quickly if the transform
74         is known to be identity, and record that fact when we discover it otherwise.
75
76         * platform/graphics/cg/GraphicsContextPlatformPrivate.h:
77         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
78         Added a m_userToDeviceTransformKnownToBeIdentity flag, initialized to false.
79
80 2007-11-11  Darin Adler  <darin@apple.com>
81
82         Reviewed by Mitz.
83
84         - http://bugs.webkit.org/show_bug.cgi?id=15944
85           streamline SegmentedString to speed up parsing
86
87         I measured a speed-up of the page load test while developing this patch. I don't
88         have a precise figure, though.
89
90         * html/HTMLTokenizer.h: Removed unneeded lineNumberPtr() function. Also renamed
91         lineno to m_lineNumber.
92         * html/HTMLTokenizer.cpp:
93         (WebCore::HTMLTokenizer::processListing): Don't pass 0 to the advance function
94         since we don't want to update a line number.
95         (WebCore::HTMLTokenizer::parseSpecial): Ditto.
96         (WebCore::HTMLTokenizer::parseComment): Pass the line number data member directly
97         instead of lineNumberPtr() since the advance function now takes a reference.
98         (WebCore::HTMLTokenizer::parseServer): Ditto.
99         (WebCore::HTMLTokenizer::parseProcessingInstruction): Ditto.
100         (WebCore::HTMLTokenizer::parseText): Ditto.
101         (WebCore::HTMLTokenizer::parseEntity): Ditto.
102         (WebCore::HTMLTokenizer::parseTag): Ditto.
103         (WebCore::HTMLTokenizer::write): Ditto.
104
105         * loader/FTPDirectoryDocument.cpp: (WebCore::FTPDirectoryTokenizer::write):
106         * loader/TextDocument.cpp: (WebCore::TextTokenizer::write):
107         Don't pass 0 to the advance function.
108
109         * platform/SegmentedString.h: (WebCore::SegmentedString::advance): Streamlined
110         the most common case, and pushed less common cases into a separate function
111         that is not inlined. Also got rid of a branch by separating the case with a
112         line number from the case without one.
113
114         * platform/SegmentedString.cpp: (WebCore::SegmentedString::advanceSlowCase):
115         Added. The aforementioned less common cases are here.
116
117 2007-11-11  Antti Koivisto  <antti@apple.com>
118
119         Forgot to do this review change (and test HTTP commit).
120
121         * html/HTMLMediaElement.cpp:
122         (WebCore::HTMLMediaElement::play):
123
124 2007-11-11  Antti Koivisto  <antti@apple.com>
125
126         Reviewed by Darin.
127         
128         - Update play() and pause() to match current HTML5 draft
129             - send events asynchronously
130             - add timeupdate event to pause
131             - rethrow load() exception, not others
132         - Use list for async events to get ordering right
133
134         Tests: media/video-pause-empty-events.html
135                media/video-play-empty-events.html
136                media/video-play-pause-events.html
137                media/video-play-pause-exception.html
138
139         * html/HTMLMediaElement.cpp:
140         (WebCore::HTMLMediaElement::dispatchEventAsync): 
141         (WebCore::HTMLMediaElement::asyncEventTimerFired):
142         (WebCore::HTMLMediaElement::play):
143         (WebCore::HTMLMediaElement::pause):
144         * html/HTMLMediaElement.h:
145
146 2007-11-11  Nikolas Zimmermann  <zimmermann@kde.org>
147
148         Reviewed by Eric.
149
150         Fixes: http://bugs.webkit.org/show_bug.cgi?id=6424 (<text>, <tspan> dominant-baseline attribute is not respected)
151
152         Add (basic) support for dominant-baseline / alignment-baseline text properties.
153         Note: there are no official testcases, and no-one implemented it before. Only ASV3
154               supported dominant-baseline, but not correct it seems.
155
156         * rendering/SVGRootInlineBox.cpp:
157         (WebCore::dominantBaselineToShift):
158         (WebCore::alignmentBaselineToShift):
159         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
160
161 2007-11-11  Adam Roben  <aroben@apple.com>
162
163         Add wrappers around CoCreateInstance to COMPtr
164
165         I followed the example of the Query constructor and query method by
166         adding a Create constructor and create method.
167
168         Reviewed by Darin.
169
170         * platform/win/COMPtr.h:
171         (COMPtr::COMPtr): Added a new constructor that calls
172         CoCreateInstance.
173         (COMPtr::create): Added.
174         (COMPtr::createInstance): Added.
175
176 2007-11-11  Alexey Proskuryakov  <ap@nypop.com>
177
178         Reviewed by Darin.
179
180         http://bugs.webkit.org/show_bug.cgi?id=15896
181         More editing cleanup
182
183         No functionality changes.
184
185         * dom/Node.h: Moved several editing-related methods elsewhere.
186         * dom/Node.cpp: (WebCore::Node::maxCharacterOffset): Renamed from maxOffset()
187         to highlight that it is a match to offsetInCharacters(), and much different from other
188         offset-related methods. Added ASSERT_NOT_REACHED(), as callers are supposed to check
189         offsetInCharacters() before calling this.
190
191         * dom/CharacterData.cpp: (WebCore::CharacterData::maxCharacterOffset):
192         * dom/CharacterData.h: (WebCore::CharacterData::isCharacterDataNode):
193         Updated for above renamings.
194
195         * dom/Comment.{h,cpp}: Removed an override for offsetInCharacters(), which is already present in CharacterData.
196
197         * dom/Document.{h,cpp}: Folded updateSelection() into Frame::selectionLayoutChanged().
198
199         * dom/Position.h:
200         * dom/Position.cpp:
201         (WebCore::Position::uncheckedPreviousOffset): Moved from Node::previousOffset().
202         (WebCore::Position::uncheckedNextOffset): Moved from Node::NextOffset().
203         (WebCore::Position::previous): Adapted to the above move.
204         (WebCore::Position::next): Ditto.
205         (WebCore::Position::upstream): Removed an isBR() check, since a non-BR element cannot have a BR renderer (I think),
206         and BR elements are covered by editingIgnoresContent().
207         (WebCore::Position::downstream): Ditto.
208         (WebCore::caretMaxRenderedOffset): Moved from Node::caretMaxRenderedOffset().
209         (WebCore::Position::rendersInDifferentPosition): Updated for the above moves.
210
211         * dom/PositionIterator.h: Added a comment describing this class from the original check-in.
212         * dom/PositionIterator.cpp:
213         (WebCore::PositionIterator::increment): Updated for the above moves.
214         (WebCore::PositionIterator::decrement): Ditto.
215
216         * dom/ProcessingInstruction.h:
217         * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::maxCharacterOffset):
218         ProcessingInstruction was already returning true from offsetInCharacters(), but didn't override maxCharacterOffset().
219         I think that implementing it has no actual effect, as PIs are not rendered, but it looks cleaner this way.
220
221         * dom/Range.cpp:
222         (WebCore::Range::selectNodeContents):
223         * editing/ApplyStyleCommand.cpp:
224         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
225         (WebCore::ApplyStyleCommand::applyInlineStyle):
226         (WebCore::maxRangeOffset):
227         (WebCore::ApplyStyleCommand::removeInlineStyle):
228         (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
229         (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
230         (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
231         (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
232         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
233         * editing/CompositeEditCommand.cpp:
234         (WebCore::CompositeEditCommand::insertNodeAt):
235         (WebCore::CompositeEditCommand::positionOutsideTabSpan):
236         * editing/DeleteSelectionCommand.cpp:
237         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
238         * editing/InsertLineBreakCommand.cpp:
239         (WebCore::InsertLineBreakCommand::doApply):
240         * editing/InsertParagraphSeparatorCommand.cpp:
241         (WebCore::InsertParagraphSeparatorCommand::doApply):
242         * editing/InsertTextCommand.cpp:
243         (WebCore::InsertTextCommand::insertTab):
244         * editing/visible_units.cpp:
245         (WebCore::previousLinePosition):
246         (WebCore::nextLinePosition):
247         Updated for the above moves.
248
249         * editing/Editor.cpp:
250         (WebCore::Editor::advanceToNextMisspelling): Added a missing rangeCompliantEquivalent() call.
251
252         * editing/TextIterator.cpp:
253         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Changed the condition to obviously
254         match a maxCharacterOffset() call made after it; hopefully, this doesn't break any border cases.
255         (WebCore::SimplifiedBackwardsTextIterator::advance): Updated for the above moves.
256
257         * editing/htmlediting.h:
258         * editing/htmlediting.cpp:
259         (WebCore::canHaveChildrenForEditing): Removed a bogus comment: I don't thin BRs have a special ability to accept
260         child nodes, other than via DOM manipulation, which is not specific to BRs.
261         (WebCore::rangeCompliantEquivalent): Removed a check for BR, which is already covered by editingIgnoresContent().
262         (WebCore::maxDeepOffset): Ditto.
263         (WebCore::caretMinOffset): Moved from Node. Changed some runtime checks that seemingly cannot fail into assertions.
264         (WebCore::caretMaxOffset): Ditto.
265
266         * page/EventHandler.cpp:
267         (WebCore::EventHandler::handleMousePressEventSingleClick): Pass 0 to VisiblePosition constructor instead of
268         caretMinOffset. I didn't want to include htmlediting.h here, and I think that VisiblePosition constructor
269         will take care of adjusting the offset.
270
271         * page/Frame.cpp: (WebCore::Frame::selectionLayoutChanged): Folded Document::updateSelection() here.
272         * page/mac/WebCoreFrameBridge.mm:
273         (-[WebCoreFrameBridge smartDeleteRangeForProposedRange:]): Added missing rangeCompliantEquivalent() calls.
274         * rendering/RenderBlock.cpp: (WebCore::RenderBlock::positionForRenderer): Changed to not round-trip via editing.
275         Changed some runtime checks that seemingly cannot fail into assertions.
276
277 2007-11-11  Darin Adler  <darin@apple.com>
278
279         Reviewed by Sam.
280
281         - updated for JSRegExp function changes
282
283         * platform/RegularExpression.cpp:
284         (WebCore::RegularExpression::Private::compile):
285         (WebCore::RegularExpression::match):
286
287 2007-11-10  Mark Rowe  <mrowe@apple.com>
288
289         Qt Linux build fix.
290
291         * platform/UnicodeRange.h:
292
293 2007-11-10  Mark Rowe  <mrowe@apple.com>
294
295         Qt Windows build fix.
296
297         * platform/UnicodeRange.h:
298
299 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
300
301         Reviewed by Eric.
302
303         Fixes: http://bugs.webkit.org/show_bug.cgi?id=15937 (Add glyph-orientation-horizontal/vertical support)
304         Fixes: http://bugs.webkit.org/show_bug.cgi?id=13971 (text-anchor support on vertical text seems slightly off)
305
306         Add glyph-orientation-* support for text & textPath. (90/180/270 and 'auto')
307         Also fix all vertical text handling - for text & textPath! (especially latin1 characters auto orientation in vertical writing modes)
308
309         * WebCore.pro: Add platform/UnicodeRange.cpp to build
310         * WebCore.xcodeproj/project.pbxproj: Dito.
311         * rendering/SVGCharacterLayoutInfo.cpp: Respect orientationShiftX/Y & angle in characterTransform()
312         (WebCore::SVGChar::characterTransform):
313         * rendering/SVGCharacterLayoutInfo.h: New variables.
314         (WebCore::SVGCharOnPath::SVGCharOnPath):
315         (WebCore::SVGChar::SVGChar):
316         * rendering/SVGRootInlineBox.cpp: Added glyph-orientation-* handling.
317         (WebCore::glyphOrientationToAngle):
318         (WebCore::glyphOrientationIsMultiplyOf180Degrees):
319         (WebCore::calculateGlyphAdvanceAndShiftRespectingOrientation):
320         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
321         (WebCore::cummulatedWidthOrHeightOfTextChunk):
322         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
323
324 2007-11-10  Timothy Hatcher  <timothy@apple.com>
325
326         Reviewed by Sam Weinig.
327
328         * page/inspector/StylesSidebarPane.js: Fix the wording of a comment
329           and switch over to use getUniqueProperties in another place.
330
331 2007-11-10  John Sullivan  <sullivan@apple.com>
332
333         Reviewed by Sam Weinig
334
335         Rest of fix for 5394877
336
337         * bindings/js/kjs_window.cpp:
338         (KJS::Window::isSafeScript):
339         Don't log unsafe JavaScript attempts in the other version of isSafeScript() if in
340         private browsing mode either.
341
342 2007-11-10  Nikolas Zimmermann  <zimmermann@kde.org>
343
344         Reviewed by Oliver.
345
346         Fix function name difference - header said 'unicodeRangeForCharacter', actually
347         implemented function is 'findCharUnicodeRange'. They are not compiled yet.
348
349         * platform/UnicodeRange.h:
350
351 2007-11-10  Dan Bernstein  <mitz@apple.com>
352
353         Reviewed by Darin Adler.
354
355         - fix <rdar://problem/5450655> Control-clicking text in a link can surprisingly select only part of the link, should select entire link
356
357         No test because context menu events cannot be tested in DumpRenderTree.
358
359         * page/EventHandler.cpp:
360         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Added.
361         If the click occurred in an active link, selects the entire link
362         element. Otherwise selects the closest word.
363         (WebCore::EventHandler::sendContextMenuEvent): Call
364         selectClosestWordOrLinkFromMouseEvent().
365         * page/EventHandler.h:
366
367 2007-11-10  John Sullivan  <sullivan@apple.com>
368
369         Reviewed by Tim Hatcher
370
371         - fixed <rdar://problem/5394877> Safari should not log unsafe JavaScript attempts when 
372           in private browsing mode (only an issue if Log JavaScript Exceptions is turned on)
373
374         * bindings/js/kjs_window.cpp:
375         (KJS::Window::isSafeScript):
376         Don't log unsafe JavaScript attempts to console or chromeClient if in private browsing mode
377
378 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
379
380         Reviewed by Darin.
381
382         http://bugs.webkit.org/show_bug.cgi?id=15922
383         Implement more of Mozilla Selection API
384
385         Tests: editing/selection/containsNode.html
386                editing/selection/deleteFromDocument.html
387                editing/selection/extend.html
388                editing/selection/selectAllChildren.html
389
390         * editing/SelectionController.cpp:
391         (WebCore::SelectionController::deleteFromDocument):
392         (WebCore::SelectionController::containsNode):
393         (WebCore::SelectionController::selectAllChildren):
394         (WebCore::SelectionController::extend):
395         * editing/SelectionController.h:
396         Added deleteFromDocument(), containsNode(), and selectAllChildren(). Reimplemented extend(),
397         which existed, but didn't match Firefox behavior and wasn't exposed via bindings.
398         Removed a comment mentioning removeRange(), as this method makes no sense without multiple
399         selection range support.
400
401         * page/DOMSelection.cpp:
402         (WebCore::DOMSelection::extend):
403         (WebCore::DOMSelection::deleteFromDocument):
404         (WebCore::DOMSelection::containsNode):
405         (WebCore::DOMSelection::selectAllChildren):
406         * page/DOMSelection.h:
407         * page/DOMSelection.idl:
408         Exposed the new methods.
409
410 2007-11-10  Alexey Proskuryakov  <ap@webkit.org>
411
412         Reviewed by Darin.
413
414         http://bugs.webkit.org/show_bug.cgi?id=15892
415         DOM Range operations are not implemented for ProcessingInstruction nodes
416
417         Test: fast/dom/Range/range-processing-instructions.html
418
419         * dom/Range.cpp:
420         (WebCore::Range::processContents): Implemented ProcessingInstruction cases.
421         (WebCore::Range::checkNodeWOffset): Removed a FIXME - yes, I think that we are supposed
422         to use ProcessingInstruction.data.
423
424 2007-11-09  Timothy Hatcher  <timothy@apple.com>
425
426         Reviewed by Mark Rowe.
427
428         Bug 12054: Ability to serialize an element subtree (into clipboard?) from the DOM inspector
429         http://bugs.webkit.org/show_bug.cgi?id=12054
430
431         - Add support code for routing copy events to the focused element.
432         - Implement copying the currently selected DOM node. The node
433           and it's subtree is copied to the clipboard. If the node has no
434           outerHTML, the nodeValue is copied (text nodes, etc.)
435         - Implement copy for the resource sidebar. The URL is copied for the
436           currently selected resource.
437
438         * page/inspector/DocumentPanel.js:
439         * page/inspector/inspector.js:
440
441 2007-11-09  Antti Koivisto  <antti@apple.com>
442
443         Reviewed by Adele.
444
445         Fix occasional blank video with poster attribute.
446
447         * ChangeLog:
448         * html/HTMLMediaElement.cpp:
449         (WebCore::HTMLMediaElement::load):
450         (WebCore::HTMLMediaElement::didRestoreFromCache):
451         Just calling updateFromElement() does the right thing for both poster image and video.
452
453 2007-11-04  Sam Weinig  <sam@webkit.org>
454
455         Reviewed by Adam Roben.
456
457         <rdar://problem/5435940>
458         The COM bindings for the DOM should be autogenerated like the other DOM bindings
459
460         Initial commit of the autogeneration of the COM DOM Bindings.  No behavior change
461         is being introduced in this patch and to insure that no conflicts arise, a temporary
462         prefix of "GEN_" has been used for all the new classes.
463
464         The build architecture for these bindings differs slightly from the other autogenerated
465         bindings.  Instead of building in WebCore and migrating the resuting code to WebKit (as
466         is done for the Objective-C bindigs currently), the IDLs and generation scripts are
467         migrated to WebKit and built there.  This is done with a series of scripts and Makefiles.
468
469         This commit includes:
470             - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
471               and ref-counting.
472             - Generating all of the Core DOM and most of HTML and CSS
473             - Generating Event, EventTarget, and EventListener
474
475         * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
476         * WebCore.vcproj/WebCore.vcproj:
477         * WebCore.vcproj/migrate-idls.sh: Added.
478         * bindings/scripts/CodeGenerator.pm:
479         * bindings/scripts/CodeGeneratorCOM.pm: Added.
480         * dom/EventListener.h: Make the isWindowEvent parameter default to false
481         to allow autogeneration based on the IDL.
482
483 2007-11-09  Tristan O'Tierney  <tristan@apple.com>
484
485         Reviewed by Timothy Hatcher.
486         
487         This patch is for the WebKit side of <rdar://problem/5591115>.
488         We need a way to tell context menu navigations, such as "Open in New Window"
489         to override any sort of browser preference for tab based navigation.
490
491         * bridge/WindowFeatures.h:
492         (WebCore::WindowFeatures::WindowFeatures):
493         Added a new struct member var, preferredType
494         and an accompanying enum type PreferredType
495         to send a window type recommendation up to the Chrome. 
496         
497         * page/ContextMenuController.cpp:
498         (WebCore::openNewWindow):
499         Set the window features to recommend a new Window for
500         "Open in New Window" context menu action.
501
502 2007-11-08  Adam Roben  <aroben@apple.com>
503
504         Fix <rdar://5483519> Pressing Enter on selected buttons should fire onclick
505
506         We now match the behavior of Firefox and IE, which is to always just
507         send a click event to the focused button when the Enter key is pressed
508         (previously we were submitting forms directly in some cases).
509
510         Reviewed by Adele.
511
512         Test: fast/forms/enter-clicks-buttons.html
513
514         * html/HTMLButtonElement.cpp:
515         (WebCore::HTMLButtonElement::defaultEventHandler): Don't do anything
516         fancy when Enter is pressed on a <button type=button> -- just send a
517         click event like we do for other button types.
518         * html/HTMLInputElement.cpp:
519         (WebCore::HTMLInputElement::defaultEventHandler): Treat type=button
520         the same way we treat type=submit and type=reset: just send a click
521         event when Enter is pressed.
522
523 2007-11-09  Dan Bernstein  <mitz@apple.com>
524
525         Reviewed by Antti Koivisto.
526
527         - fix a bug in invisible layer culling: dynamically changing a 
528           descendant of an invisible layer to be visible did not work
529
530         Test: fast/layers/layer-content-visibility-change.html
531
532         * rendering/RenderLayer.cpp:
533         (WebCore::RenderLayer::setHasVisibleContent): If we got visible content,
534         make sure that our stacking context rebuilds its z-order lists to
535         include us.
536
537 2007-11-09  David Hyatt  <hyatt@apple.com>
538
539         Clean up matrix() parsing.  Make sure the first four arguments can be lengths or numbers.  The last two
540         args can be lengths or numbers or percents.
541
542         Reviewed by Beth
543
544         * WebCore.xcodeproj/project.pbxproj:
545         * css/CSSParser.cpp:
546         (WebCore::TransformOperationInfo::TransformOperationInfo):
547         (WebCore::CSSParser::parseTransform):
548         * rendering/RenderStyle.h:
549         (WebCore::MatrixTransformOperation::apply):
550
551 2007-11-09  Beth Dakin  <bdakin@apple.com>
552
553         Reviewed by Oliver.
554
555         Fix for <rdar://problem/5586370> CSS Transform - incorrect matrix 
556         math leads to crazy problems
557
558         Transform matrices accept the first four parameters as CSS lengths. 
559         CSS lengths get mapped into WebCore::Lengths as percents by 
560         WebCore::convertToLength(). Percent lengths cannot call value(). It 
561         does not yield a correct result and it asserts on Debug builds. 
562
563         * rendering/RenderStyle.h:
564         (WebCore::MatrixTransformOperation::apply): Instead of calling 
565         value() on the lengths, call calcValue. This fixes the assert and 
566         the bad rendering. 
567
568 2007-11-09  Simon Hausmann  <hausmann@kde.org>
569
570         Reviewed by nobody, build/link fix for Qt/Windows.
571
572         userIdleTime() is stubbed in win/SystemTimeWin.cpp, so don't
573         define it twice.
574
575         * platform/qt/TemporaryLinkStubs.cpp:
576
577 2007-11-09  Simon Hausmann  <hausmann@kde.org>
578
579         Reviewed by Holger.
580
581         Fix ContextMenu allocation in the Qt port.
582
583         Store all items and submenus value based in ContextMenu and ContextMenuItem.
584         That fixes the crashes when the context menu was populated with sub-menus because
585         of the use of temporary ContextMenu objects like this:
586
587         ContextMenu subMenu(...);
588         subMenu.appendItem(...);
589         subMenu.appendItem(...);
590
591         subMenuItem.setSubMenu(&subMenu); // temporary pointer, need to _copy_ contents
592
593         * platform/ContextMenu.h:
594         * platform/ContextMenuItem.h:
595         * platform/PlatformMenuDescription.h:
596         * platform/qt/ContextMenuItemQt.cpp:
597         (WebCore::ContextMenuItem::ContextMenuItem):
598         (WebCore::ContextMenuItem::platformSubMenu):
599         * platform/qt/ContextMenuQt.cpp:
600         (WebCore::ContextMenu::ContextMenu):
601         (WebCore::ContextMenu::~ContextMenu):
602         (WebCore::ContextMenu::appendItem):
603         (WebCore::ContextMenu::itemCount):
604
605 2007-11-09  Peter Kasting  <zerodpx@gmail.com>
606
607         Reviewed by Mark Rowe.
608
609         http://bugs.webkit.org/show_bug.cgi?id=15909
610         Malformed GIFs should not result in memory corruption.
611
612         * platform/image-decoders/gif/GIFImageDecoder.cpp:
613         (WebCore::GIFImageDecoder::haveDecodedRow):
614
615 2007-11-08  Timothy Hatcher  <timothy@apple.com>
616
617         Reviewed by Sam Weinig.
618
619         Some Web Inspector CSS editing changes.
620         - Only delete the property if all the text is delete or the new user input correctly parses.
621           This prevents deleting the existing property if the new text is invalid.
622         - Intercept the Escape key and cancel editing, not saving any changes.
623
624         * page/inspector/StylesSidebarPane.js:
625
626 2007-11-08  Kevin Ollivier  <kevino@theolliviers.com>
627
628         Bakefiles for building WebCore, needed by wx port.
629
630         Reviewed by Mark Rowe.
631
632         * WebCoreSources.bkl: Added.
633         * webcore-base.bkl: Added.
634         * webcore-wx.bkl: Added.
635
636 2007-11-08  Justin Haygood  <jhaygood@reaktix.com>
637
638         Reviewed by Mark Rowe.
639
640         http://bugs.webkit.org/show_bug.cgi?id=15905
641
642         Fix builds with HTML 5 Storage support disabled.
643         ENABLE(DATABASE) needs to be added in a few places.
644
645         * page/InspectorController.cpp:
646         * storage/Database.h:
647
648 2007-11-08  Steve Falkenburg  <sfalken@apple.com>
649
650         <rdar://problem/5524082> Allow images to be dragged out directly into other apps
651         
652         We weren't including CF_HDROP in our image drops.  This broke drag of
653         images out of the browser window directly into other apps (examples
654         include notepad, mspaint, msword).
655         
656         Reviewed by Oliver, Ada.
657
658         * platform/win/ClipboardWin.cpp:
659         (WebCore::createGlobalImageFileContent): Removed unused variable.
660         (WebCore::createGlobalHDropContent): Added
661         (WebCore::writeFileToDataObject): Write HDROP data if available.
662         (WebCore::writeImageToDataObject): Write HDROP for dragged images.
663         (WebCore::ClipboardWin::writeURL): Don't write HDROP for dragged URLs.
664
665 2007-11-08  Xan Lopez  <xan@gnome.org>
666
667         Reviewed by Alp.
668
669         http://bugs.webkit.org/show_bug.cgi?id=15908
670         Use g_object_ref_sink when available
671
672         * platform/gtk/PopupMenuGtk.cpp:
673         (WebCore::PopupMenu::show):
674         * platform/gtk/ScrollViewGtk.cpp:
675         (WebCore::ScrollView::setGtkAdjustments):
676
677 2007-11-08  Dan Bernstein  <mitz@apple.com>
678
679         Reviewed by Beth Dakin.
680
681         - fix <rdar://problem/5491922> REGRESSION (Safari 2-3): Flash-based "Cash Optimizer" on etrade.com does not draw completely
682
683         Test: fast/dom/length-attribute-mapping.html
684
685         * dom/StyledElement.cpp:
686         (WebCore::StyledElement::addCSSLength): Changed the garbage-stripping
687         logic to stop after the first "%" or "*" in the string. This allows for
688         "100%25" to be mapped to "100%" like it is in Firefox and WinIE.
689
690 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
691
692         - Build fix.
693
694         * loader/FrameLoaderClient.h:
695         * platform/graphics/svg/SVGImageEmptyClients.h:
696         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
697
698 2007-11-08  Kevin McCullough  <kmccullough@apple.com>
699
700         Reviewed by Sam.
701
702         - windowObjectCleared() is no longer const.  It needs to setup the
703         script debugger and cannot be const to do so.
704
705         * loader/FrameLoaderClient.h:
706         * platform/graphics/svg/SVGImageEmptyClients.h:
707         (WebCore::SVGEmptyFrameLoaderClient::windowObjectCleared):
708
709 2007-11-08  Adam Roben  <aroben@apple.com>
710
711         Hopeful Windows build fix
712
713         * rendering/RenderObject.cpp: Touch this file to make it recompile.
714
715 2007-11-08  Sam Weinig  <sam@webkit.org>
716
717         Reviewed by Darin.
718
719         Convert JavaScript internal function objects to use one class per
720         function.  This avoids a switch statement inside what used to be
721         the shared function classes and will allow Shark to better analyze
722         the code.
723
724         To make this switch, the value property of the HashEntry was changed
725         to a union of an intptr_t (which is used to continue handle valueGetters)
726         and function pointer which points to a static constructor for the
727         individual new function objects.
728
729         SunSpider claims this is a 1.0% speedup.
730
731         - On the WebCore side, I updated CodeGeneratorJS.pm to generate the
732           new classes and hand updated the remain non-generated (groan) classes.
733
734         * bindings/js/JSDOMWindowCustom.cpp:
735         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
736         * bindings/js/JSEventTargetNode.cpp:
737         (WebCore::JSEventTargetNodePrototypeFunctionAddEventListener::callAsFunction):
738         (WebCore::JSEventTargetNodePrototypeFunctionRemoveEventListener::callAsFunction):
739         (WebCore::JSEventTargetNodePrototypeFunctionDispatchEvent::callAsFunction):
740         * bindings/js/JSEventTargetNode.h:
741         * bindings/js/JSHTMLInputElementBase.cpp:
742         (WebCore::JSHTMLInputElementBaseFunctionSetSelectionRange::callAsFunction):
743         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
744         * bindings/js/JSHTMLInputElementBase.h:
745         (WebCore::JSHTMLInputElementBase::):
746         * bindings/js/JSXMLHttpRequest.cpp:
747         (KJS::JSXMLHttpRequestPrototypeFunctionAbort::callAsFunction):
748         (KJS::JSXMLHttpRequestPrototypeFunctionGetAllResponseHeaders::callAsFunction):
749         (KJS::JSXMLHttpRequestPrototypeFunctionGetResponseHeader::callAsFunction):
750         (KJS::JSXMLHttpRequestPrototypeFunctionOpen::callAsFunction):
751         (KJS::JSXMLHttpRequestPrototypeFunctionSend::callAsFunction):
752         (KJS::JSXMLHttpRequestPrototypeFunctionSetRequestHeader::callAsFunction):
753         (KJS::JSXMLHttpRequestPrototypeFunctionOverrideMIMEType::callAsFunction):
754         (KJS::JSXMLHttpRequestPrototypeFunctionAddEventListener::callAsFunction):
755         (KJS::JSXMLHttpRequestPrototypeFunctionRemoveEventListener::callAsFunction):
756         (KJS::JSXMLHttpRequestPrototypeFunctionDispatchEvent::callAsFunction):
757         * bindings/js/JSXMLHttpRequest.h:
758         (KJS::JSXMLHttpRequest::impl):
759         * bindings/js/JSXSLTProcessor.cpp:
760         (KJS::JSXSLTProcessorPrototypeFunctionImportStylesheet::callAsFunction):
761         (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
762         (KJS::JSXSLTProcessorPrototypeFunctionTransformToDocument::callAsFunction):
763         (KJS::JSXSLTProcessorPrototypeFunctionSetParameter::callAsFunction):
764         (KJS::JSXSLTProcessorPrototypeFunctionGetParameter::callAsFunction):
765         (KJS::JSXSLTProcessorPrototypeFunctionRemoveParameter::callAsFunction):
766         (KJS::JSXSLTProcessorPrototypeFunctionClearParameters::callAsFunction):
767         (KJS::JSXSLTProcessorPrototypeFunctionReset::callAsFunction):
768         * bindings/js/JSXSLTProcessor.h:
769         * bindings/js/kjs_events.cpp:
770         (WebCore::JSClipboardPrototypeFunctionClearData::callAsFunction):
771         (WebCore::JSClipboardPrototypeFunctionGetData::callAsFunction):
772         (WebCore::JSClipboardPrototypeFunctionSetData::callAsFunction):
773         (WebCore::JSClipboardPrototypeFunctionSetDragImage::callAsFunction):
774         * bindings/js/kjs_events.h:
775         * bindings/js/kjs_navigator.cpp:
776         (KJS::Plugins::):
777         (KJS::Navigator::getOwnPropertySlot):
778         (KJS::Plugins::getOwnPropertySlot):
779         (KJS::PluginsFunctionRefresh::callAsFunction):
780         (KJS::NavigatorProtoFuncJavaEnabled::callAsFunction):
781         * bindings/js/kjs_navigator.h:
782         (KJS::Navigator::):
783         * bindings/js/kjs_window.cpp:
784         (KJS::Window::getOwnPropertySlot):
785         (KJS::Window::put):
786         (KJS::WindowProtoFuncAToB::callAsFunction):
787         (KJS::WindowProtoFuncBToA::callAsFunction):
788         (KJS::WindowProtoFuncOpen::callAsFunction):
789         (KJS::WindowProtoFuncScrollBy::callAsFunction):
790         (KJS::WindowProtoFuncScrollTo::callAsFunction):
791         (KJS::WindowProtoFuncMoveBy::callAsFunction):
792         (KJS::WindowProtoFuncMoveTo::callAsFunction):
793         (KJS::WindowProtoFuncResizeBy::callAsFunction):
794         (KJS::WindowProtoFuncResizeTo::callAsFunction):
795         (KJS::WindowProtoFuncSetTimeout::callAsFunction):
796         (KJS::WindowProtoFuncClearTimeout::callAsFunction):
797         (KJS::WindowProtoFuncSetInterval::callAsFunction):
798         (KJS::WindowProtoFuncAddEventListener::callAsFunction):
799         (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
800         (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
801         (KJS::WindowProtoFuncNotImplemented::callAsFunction):
802         (KJS::Location::getOwnPropertySlot):
803         (KJS::Location::put):
804         (KJS::LocationProtoFuncReplace::callAsFunction):
805         (KJS::LocationProtoFuncReload::callAsFunction):
806         (KJS::LocationProtoFuncAssign::callAsFunction):
807         (KJS::LocationProtoFuncToString::callAsFunction):
808         * bindings/js/kjs_window.h:
809         (KJS::Window::):
810         * bindings/scripts/CodeGeneratorJS.pm:
811
812 2007-11-08  Mark Rowe  <mrowe@apple.com>
813
814         Fix the Gtk, Qt and Wx builds.
815
816         * platform/gtk/TemporaryLinkStubs.cpp:
817         * platform/qt/TemporaryLinkStubs.cpp:
818         * platform/wx/TemporaryLinkStubs.cpp:
819
820 2007-11-08  Mark Rowe  <mrowe@apple.com>
821
822         Not reviewed.  Fix two instances of includes using the wrong case in the filename.
823
824         * platform/graphics/mac/MoviePrivateQTKit.mm:
825         * platform/wx/MimeTypeRegistryWx.cpp:
826
827 2007-11-08  Darin Adler  <darin@apple.com>
828
829         Reviewed by Adam.
830
831         - fix <rdar://problem/5552943> accesskey does not focus <button> elements
832
833         Test: fast/forms/access-key.html
834
835         * html/HTMLButtonElement.cpp: (WebCore::HTMLButtonElement::accessKeyAction):
836         Added a call to focus.
837
838 2007-11-07  Darin Adler  <darin@apple.com>
839
840         Reviewed by Steve.
841
842         - cut down on notImplemented() functions on Windows
843
844         * bridge/AXObjectCache.h: Put #if around the accessibility
845         global.
846
847         * bridge/win/FrameWin.cpp: (WebCore::Frame::setNeedsReapplyStyles):
848         Moved here from TemporaryLinkStubs.
849
850         * dom/Document.cpp: (WebCore::Document::lastModified): Re-implemented
851         using the ResourceResponse that's now available from the DocumentLoader.
852
853         * editing/JSEditor.cpp: (execTranspose): Changed to call transpose() on
854         the Editor instead of the obsolete one on the Frame.
855
856         * loader/DocumentLoader.h: Removed getResponseModifiedHeader.
857         * loader/FrameLoader.h: Removed overrideMediaType.
858
859         * loader/gtk/DocumentLoaderGtk.cpp: Removed.
860         * loader/mac/DocumentLoaderMac.mm: Removed.
861         * loader/qt/DocumentLoaderQt.cpp: Removed.
862
863         * page/Frame.cpp: Removed transpose.
864         * page/Frame.h: Ditto.
865         * page/FrameView.h: Removed updateBorder.
866         * page/gtk/FrameGtk.cpp: Removed issueTransposeCommand.
867         * page/mac/FrameMac.mm: Ditto.
868         * page/mac/WebCoreFrameBridge.h: Removed issueTransposeCommand and
869         overrideMediaType.
870         * page/qt/FrameQt.cpp: Removed issueTransposeCommand.
871
872         * platform/gtk/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled.
873         * platform/qt/TemporaryLinkStubs.cpp: Ditto.
874         * platform/win/TemporaryLinkStubs.cpp: Removed or moved all but 3 of the stubs.
875         * platform/wx/TemporaryLinkStubs.cpp: Removed gAccessibilityEnabled,
876         issueTransposeCommand, and overrideMediaType.
877
878         * platform/network/cf/ResourceHandleCFNet.cpp:
879         (WebCore::ResourceHandle::loadsBlocked): Moved here from TemporaryLinkStubs.
880         (WebCore::ResourceHandle::willLoadFromCache): Ditto.
881         * platform/win/GraphicsContextWin.cpp:
882         (WebCore::GraphicsContextPlatformPrivate::clip): Ditto.
883         * platform/win/ScrollViewWin.cpp: (WebCore::ScrollView::inWindow): Ditto.
884         * platform/win/SystemTimeWin.cpp: (WebCore::userIdleTime): Ditto.
885         * platform/win/WidgetWin.cpp: (WebCore::Widget::setIsSelected): Ditto.
886
887         * WebCore.pro: Updated for removed files.
888         * WebCore.xcodeproj/project.pbxproj: Updated for removed file.
889
890 2007-11-08  Mark Rowe  <mrowe@apple.com>
891
892        Build fix for case-sensitive file systems.  Fix case of file names
893        in #include's.
894
895         * html/HTMLMediaElement.cpp:
896         * platform/graphics/Movie.cpp:
897
898 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
899
900         Reviewed by Lars Knoll <lars@trolltech.com>.
901
902         Remove some warnings about not implemented methods.
903
904         * ResourceHandle::loadsBlocked and ResourceHandle::supportsBufferedData are
905         specific to the NS API and won't be implemented on Qt.
906         * ResourceHandle::bufferedData can not be reached as we return false in
907         ResourceHandle::supportsBufferedData.
908
909
910         * platform/network/qt/ResourceHandleQt.cpp:
911         (WebCore::ResourceHandle::supportsBufferedData):
912
913 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
914
915         Reviewed by Lars Knoll <lars@trolltech.com>.
916
917         Cleanup checking for the request method.
918
919         * Check the request method only in QWebNetworkManager::add.
920         * Currently HEAD, GET, POST are allowed and for everything else
921         QWebNetworkManager::add returns false.
922         * Returning false is compatible with ResourceHandle::start and it
923         can be used in ResourceHandle::loadResourceSynchronously to generate
924         a ResourceError
925
926
927         * platform/network/qt/ResourceHandleQt.cpp:
928         (WebCore::ResourceHandle::start):
929         (WebCore::ResourceHandle::loadResourceSynchronously):
930
931 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
932
933         Reviewed by Lars Knoll <lars@trolltech.com>.
934
935         Implement WebCore::callOnMainThread
936
937         Implemented using a global QObject, that is moved to the main thread
938         and then sending a custom event to it.
939         Picked a number below QEvent::User but above any other documented value.
940
941
942         * platform/qt/ThreadingQt.cpp:
943         (WebCore::PerformFunctionEvent::PerformFunctionEvent):
944         (WebCore::MainThreadInvoker::MainThreadInvoker):
945         (WebCore::MainThreadInvoker::event):
946         (WebCore::callOnMainThread):
947
948 2007-11-08  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
949
950         Reviewed by Lars Knoll <lars@trolltech.com>.
951
952         Avoid problems with calling QPainter::begin() on an already active paintdevice
953
954         * Partial pick from 6200e04c3e0a77873c3b3f3969b65bc701020326 to avoid getting
955         crashes on Qt/Mac 4.4 with QPainter::begin to fail because we already draw.
956         * If we are in a layout or need one do not paint. This can happen for the PlatformScrollBar
957         used by the ScrollView on a layout triggered by QWebPage::paintEvent.
958
959
960         * platform/qt/WidgetQt.cpp:
961         (WebCore::Widget::invalidateRect):
962
963 2007-11-08  Eric Seidel  <eric@webkit.org>
964
965         No review.
966
967         * ksvg2/svg/SVGPathElement.h: remove old comment
968
969 2007-11-07  Antti Koivisto  <antti@apple.com>
970
971         Reviewed by Ollie.
972
973         Ensure video renderer has correct size if video has already been loaded
974         when it is constructed.
975
976         * rendering/RenderVideo.cpp:
977         (WebCore::RenderVideo::RenderVideo):
978
979 2007-11-07  Antti Koivisto  <antti@apple.com>
980
981         Reviewed by Ollie.
982
983         Ensure video is visible when it should be.
984
985         * rendering/RenderVideo.cpp:
986         (WebCore::RenderVideo::updateMovie):
987
988 2007-11-07  Dan Bernstein  <mitz@apple.com>
989
990         Reviewed by Darin Adler.
991
992         - fix <rdar://problem/5523503> Safari crashes clicking scroll bar in FaceBook 'Trips'
993
994         Layers and listboxes are two kinds of ScrollBarClient that can be
995         removed while the scrollbar is tracking the mouse. The scrollbar is not
996         destroyed until later, and meanwhile it can try to call the client,
997         which results in a crash.
998
999         * manual-tests/stale-scrollbar-client-crash.html: Added.
1000         * platform/ScrollBar.h:
1001         (WebCore::Scrollbar::setClient): Added.
1002         * rendering/RenderLayer.cpp:
1003         (WebCore::RenderLayer::destroyScrollbar): Call Scrollbar::setClient().
1004         * rendering/RenderListBox.cpp:
1005         (WebCore::RenderListBox::~RenderListBox): Ditto.
1006
1007 2007-11-07  Adam Roben  <aroben@apple.com>
1008
1009         Fix <rdar://5569268> Crash when opening any FTP site in second tab/window
1010
1011         Reviewed by Sam.
1012
1013         No test possible.
1014
1015         * platform/win/SharedBufferWin.cpp:
1016         (WebCore::SharedBuffer::createWithContentsOfFile): Bail if we get an
1017         empty path, because _wfopen_s will crash if we pass it a null pointer.
1018
1019 2007-11-07  David Kilzer  <ddkilzer@apple.com>
1020
1021         WebKit confuses width/height for Media Queries device-aspect-ratio evaluation
1022         <http://bugs.webkit.org/show_bug.cgi?id=14893>
1023         <rdar://problem/5380295>
1024
1025         Reviewed by Darin.
1026
1027         Tests: fast/css/device-aspect-ratio.html
1028                fast/css/max-device-aspect-ratio.html
1029                fast/css/min-device-aspect-ratio.html
1030
1031         * css/MediaQueryEvaluator.cpp:
1032         (WebCore::parseAspectRatio): Renamed method parameters from a/b to h/v.
1033         (WebCore::device_aspect_ratioMediaFeatureEval): Renamed local variables from
1034         a/b to h/v.  Switched first two arguments of the call to cmpvalue() to fix
1035         the bug.
1036
1037 2007-11-07  Dan Bernstein  <mitz@apple.com>
1038
1039         Reviewed by Dave Hyatt.
1040
1041         - fix http://bugs.webkit.org/show_bug.cgi?id=15887
1042           REGRESSION (r27576): Crash in RenderStyle::affectedByHoverRules clicking link on Digg
1043
1044         Test: fast/css/display-none-inline-style-change-crash.html
1045
1046         * dom/Element.cpp:
1047         (WebCore::Element::recalcStyle): Fixed the crash by null-checking
1048         the current style and removed other checks that are not strictly
1049         necessary.
1050
1051 2007-11-07  Brady Eidson  <beidson@apple.com>
1052
1053         Rubberstamped by Sam
1054
1055         Remove FrameLoaderClient methods from SVG that were pruned awhile ago
1056
1057         * platform/graphics/svg/SVGImageEmptyClients.h:
1058
1059 2007-11-07  Dan Bernstein  <mitz@apple.com>
1060
1061         Reviewed by Darin Adler.
1062
1063         - fix a bug where CSS rules with :hover in the ancestor chain stopped
1064           working after changing the inline style declaration of the ancestor
1065
1066         Test: fast/css/affected-by-hover-after-style-change.html
1067
1068         * dom/Element.cpp:
1069         (WebCore::Element::recalcStyle): If we are not forcing style
1070         recalculation for all descendants, preserve any "affected by
1071         {hover|active|drag} bits that we may have acquired from them.
1072         Also renamed _style to currentStyle.
1073
1074 2007-11-06  Timothy Hatcher  <timothy@apple.com>
1075
1076         Reviewed by Adam.
1077
1078         Bug 11920: Web Inspector should have Firebug-like CSS editing
1079         http://bugs.webkit.org/show_bug.cgi?id=11920
1080
1081         * css/CSSComputedStyleDeclaration.h:
1082           (WebCore::CSSComputedStyleDeclaration::isPropertyImplicit): Return false. I'm not sure why
1083           this was true, but computed style has no concept of implicit. So false makes more sense
1084           and makes the code simpler in the inspector. This function was added for the inspector,
1085           so this isn't a compatibility change.
1086         * page/inspector/PropertiesSection.js: Add a getter/setter to reset populated status.
1087         * page/inspector/StylesSidebarPane.js: Some refactoring along with the main support for
1088           style editing.
1089         * page/inspector/inspector.css: Style changes for propery editing and focus correctness.
1090         * page/inspector/inspector.js: Look for a handleKeyEvent function of the focus element before
1091           trying to call a function based on the element's id. Call focused and blurred on the focused
1092           element when currentFocusElement is changed. Use the new listItemElement getter instead of
1093           the private property.
1094         * page/inspector/treeoutline.js: No longer expand on double click if ondblclick is implemented.
1095           Shrink the toggle zone to 10px to better match the size of the arrow. Add an onattach call
1096           to allow generation of the title using the DOM element. Add listItemElement and
1097           childrenListElement getters.
1098         * page/inspector/utilities.js: Add new helper prototype methods on CSSStyleDeclaration.
1099         * page/inspector/DocumentPanel.js: Use the new listItemElement getter instead of the private
1100           property. Also expand the DOM node on double click now that the TreeOutline dosen't do it.
1101         * page/inspector/Resource.js: Use the new listItemElement and childrenListElement getters
1102           instead of the private properties.
1103
1104 2007-11-07  Simon Hausmann  <hausmann@kde.org>
1105
1106         Reviewed by Alexey Proskuryakov.
1107
1108         Coding style fix, don't use inline explicitly.
1109
1110         * bridge/WindowFeatures.h:
1111
1112 2007-11-07  Simon Hausmann  <hausmann@kde.org>
1113
1114         Reviewed by Maciej.
1115
1116         For safety provide a default constructor for WindowFeatures().
1117         ContextMenuController.cpp: createNewWindow as well as QWebPage need to
1118         create a default initialized WindowFeatures object on the fly.
1119
1120         * bridge/WindowFeatures.h:
1121         (WebCore::WindowFeatures::WindowFeatures):
1122
1123 2007-11-07  Simon Hausmann  <shausman@trolltech.com>
1124
1125         Reviewed by Lars.
1126
1127         Fix "nmake clean" for the Qt/Windows build by replacing tmp/ with a variable that ends with the correct type of slash/backslash depending on the choice of compiler/make tool.
1128
1129         * WebCore.pro:
1130
1131 2007-11-07  Simon Hausmann  <hausmann@kde.org>
1132
1133         Reviewed by Lars.
1134
1135         Made the QWebSettings::webGraphic functions static. The implementation was using QWebSettings::global() anyway.
1136
1137         * platform/graphics/qt/ImageQt.cpp:
1138         (loadResourcePixmap):
1139
1140 2007-11-07  Simon Hausmann  <hausmann@kde.org>
1141
1142         Reviewed by Lars.
1143
1144         Moved the WebCore::Image specific function loadResourcePixmap from qwebsettings.cpp to ImageQt.cpp and made it static.
1145
1146         * platform/graphics/qt/ImageQt.cpp:
1147         (loadResourcePixmap):
1148
1149 2007-11-07  Simon Hausmann  <hausmann@kde.org>
1150
1151         Reviewed by Lars.
1152
1153         Restructure the context menu classes for the Qt port. ContextMenu and ContextMenuItem don't store
1154         QActions/QMenus anymore but just store the action type, tag, title and optionally submenu as created
1155         in ContextMenu::populate().
1156         For the actual Qt context menu we traverse this structure after sendContextMenuEvent and create a QMenu
1157         out of it. That menu is currently not functional anymore though.
1158
1159         * platform/ContextMenu.h:
1160         * platform/ContextMenuItem.h:
1161         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
1162         * platform/PlatformMenuDescription.h:
1163         * platform/qt/ContextMenuItemQt.cpp:
1164         (WebCore::ContextMenuItem::ContextMenuItem):
1165         (WebCore::ContextMenuItem::type):
1166         (WebCore::ContextMenuItem::setType):
1167         (WebCore::ContextMenuItem::action):
1168         (WebCore::ContextMenuItem::setAction):
1169         (WebCore::ContextMenuItem::title):
1170         (WebCore::ContextMenuItem::setTitle):
1171         (WebCore::ContextMenuItem::platformSubMenu):
1172         (WebCore::ContextMenuItem::setSubMenu):
1173         (WebCore::ContextMenuItem::setChecked):
1174         (WebCore::ContextMenuItem::setEnabled):
1175         * platform/qt/ContextMenuQt.cpp:
1176         (WebCore::ContextMenu::ContextMenu):
1177         (WebCore::ContextMenu::~ContextMenu):
1178         (WebCore::ContextMenu::appendItem):
1179         (WebCore::ContextMenu::itemCount):
1180         (WebCore::ContextMenu::insertItem):
1181         (WebCore::ContextMenu::setPlatformDescription):
1182         (WebCore::ContextMenu::platformDescription):
1183
1184 2007-11-07  Simon Hausmann  <hausmann@kde.org>
1185
1186         Reviewed by Lars.
1187
1188         Changed ContextMenu::setPlatformDescription for the Qt port to not show the qmenu right away
1189         but instead just behave as a normal setter that takes ownership of the platform menu description (the qmenu).
1190         Instead now QWebPage::contextMenuEvent() retrieves the QMenu after calling sendContextMenuEvent and calls exec()
1191         on it.
1192
1193         * platform/qt/ContextMenuQt.cpp:
1194
1195 2007-11-07  Simon Hausmann  <hausmann@kde.org>
1196
1197         Reviewed by Lars.
1198
1199         Changed to PlatformMouseEvent constructor to allow construction from a QContextMenuEvent.
1200         Call sendContextMenuEvent on the event handler from a QWidget::contextMenuEvent re-implementation instead of in mousePressEvent.
1201
1202         * platform/PlatformMouseEvent.h:
1203         * platform/qt/PlatformMouseEventQt.cpp:
1204         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1205
1206 2007-11-07  Lars Knoll  <lars@trolltech.com>
1207
1208         Reviewed by Simon.
1209
1210         don't put nbsp's into the plan text paste
1211         
1212         Fix both ClipboardQt and PasteboardQt to replace
1213         nbsp's with spaces before putting the text onto the
1214         native clipboard. This is consistent with Mac and Win
1215         and fixes at least editing/pasteboard/4076267-3.html
1216
1217         * platform/qt/ClipboardQt.cpp:
1218         (WebCore::ClipboardQt::writeRange):
1219         * platform/qt/PasteboardQt.cpp:
1220         (WebCore::Pasteboard::writeSelection):
1221
1222 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1223
1224         Reviewed by Lars Knoll <lars@trolltech.com>.
1225
1226         Implement Pasteboard::writeImage()
1227         
1228         * Pasteboard is now fully implemented. Copying of Images into the Clipboard
1229         is now supported.
1230         * As with URLs we only copy into the Clipboard (and not additionally to the
1231         Selection)
1232         
1233
1234         WARNING: NO TEST CASES ADDED OR CHANGED
1235
1236         * platform/qt/PasteboardQt.cpp:
1237         (WebCore::Pasteboard::writeImage):
1238
1239 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1240
1241         Reviewed by Lars Knoll <lars@trolltech.com>.
1242
1243         Apple CodingStyle fixes
1244         
1245
1246         WARNING: NO TEST CASES ADDED OR CHANGED
1247
1248         * platform/qt/PasteboardQt.cpp:
1249         (WebCore::Pasteboard::documentFragment):
1250
1251 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1252
1253         Reviewed by Lars Knoll <lars@trolltech.com>.
1254
1255         Implement Pasteboard::writeURL()
1256         * The URL currently gets written as text/plain and text/uri-list.
1257         The win and mac port have some more types which we currently do
1258         not support. When supporting them we can use the 'titleString'
1259         as well.
1260         * As with writeSelection we only copy into the Clipboard. We could
1261         consider copying into the Selection as well.
1262         
1263
1264         WARNING: NO TEST CASES ADDED OR CHANGED
1265
1266         * platform/qt/PasteboardQt.cpp:
1267         (WebCore::Pasteboard::writeURL):
1268
1269 2007-11-07  Holger Hans Peter Freyther  <holger.freyther@trolltech.com>
1270
1271         Reviewed by Lars Knoll <lars@trolltech.com>.
1272
1273         Kill whitespace
1274         
1275
1276         WARNING: NO TEST CASES ADDED OR CHANGED
1277
1278         * platform/qt/PasteboardQt.cpp:
1279         (WebCore::Pasteboard::documentFragment):
1280
1281 2007-11-07  Lars Knoll  <lars@trolltech.com>
1282
1283         Reviewed by Simon.
1284
1285         Use the correct function calls to convert a selection to
1286         HTML or plain text.
1287
1288         WARNING: NO TEST CASES ADDED OR CHANGED
1289
1290         * platform/qt/ClipboardQt.cpp:
1291         (WebCore::ClipboardQt::setData):
1292         (WebCore::ClipboardQt::writeRange):
1293         * platform/qt/PasteboardQt.cpp:
1294         (WebCore::Pasteboard::writeSelection):
1295
1296 2007-11-07  Lars Knoll  <lars@trolltech.com>
1297
1298         Reviewed by Simon.
1299
1300         Some more clipboard fixes.
1301         
1302         We have to set things immediately on the QClipBoard if the
1303         Clipboard object is not for dragging.
1304         
1305         This is due to the fact that the Clipboard object might be
1306         rather long lived if accessed through javascript (it'll only
1307         get deleted by JS garbage collection). We have to transfer
1308         the data over to the QClipboard before that to make things work.
1309         
1310         Fixes editing/execCommand/copy-without-selection.html
1311
1312         * platform/qt/ClipboardQt.cpp:
1313         (WebCore::ClipboardQt::ClipboardQt):
1314         (WebCore::ClipboardQt::~ClipboardQt):
1315         (WebCore::ClipboardQt::clearData):
1316         (WebCore::ClipboardQt::clearAllData):
1317         (WebCore::ClipboardQt::getData):
1318         (WebCore::ClipboardQt::setData):
1319         (WebCore::ClipboardQt::declareAndWriteDragImage):
1320         (WebCore::ClipboardQt::writeURL):
1321         (WebCore::ClipboardQt::writeRange):
1322
1323 2007-11-07  Simon Hausmann  <hausmann@kde.org>
1324
1325         Reviewed by Mark.
1326
1327         Fix compilation on Windows with non-cygwin perl. open FILE, "|-" is
1328         not supported due to implicit forks, use IPC::Open2 instead.
1329
1330         * bindings/scripts/IDLParser.pm:
1331
1332 2007-11-07  Dan Bernstein  <mitz@apple.com>
1333
1334         Reviewed by Brady Eidson.
1335
1336         - fix http://bugs.webkit.org/show_bug.cgi?id=15877
1337           REGRESSION: r27486 caused a layout regression at my bank's website
1338
1339         Test: fast/block/float/overhanging-after-height-decrease-offsets.html
1340
1341         * rendering/RenderBlock.cpp:
1342         (WebCore::RenderBlock::layoutBlock):
1343
1344 2007-11-06  Beth Dakin  <bdakin@apple.com>
1345
1346         Reviewed by Sam.
1347
1348         <rdar://problem/5575812> REGRESSION:When using absolute positioning 
1349         with overflow:auto div, WebKit seems to add an additional 15px
1350
1351         * rendering/RenderBox.cpp:
1352         (WebCore::RenderBox::containingBlockWidthForPositioned): We need to 
1353         subtract off the vertical scrollbar width too.
1354
1355 2007-11-06  Justin Garcia  <justin.garcia@apple.com>
1356
1357         Reviewed by Dan Bernstein.
1358         
1359         <rdar://problem/5583387> ASSERTION FAILED: !refChild->hasTagName(bodyTag) when pasting newline in plain text into rich text Mail
1360         <rdar://problem/5583362> REGRESSION (5523.10.3-TOT): Newlines stripped when pasting plain text in Mail
1361
1362         * editing/markup.cpp:
1363         (WebCore::createFragmentFromText): Put paragraphs of text into clones of the block
1364         that encloses the input context, unless that block is the body, which shouldn't
1365         be cloned.  In that case, use regular divs, as we did before r27369.
1366
1367 2007-11-06  Christian Dywan  <christian@twotoasts.de>
1368
1369         Reviewed by Darin.
1370
1371         Fix http://bugs.webkit.org/show_bug.cgi?id=15828
1372         Bug 15828: WebKit GTK include and lib directory is installed in qt4-named directory
1373
1374         * WebCore.pro: Use sane default install paths for the gtk port.
1375
1376 2007-11-06  Justin Garcia  <justin.garcia@apple.com>
1377
1378         Reviewed by Darin Adler.
1379         
1380         <rdar://problem/5576619> 
1381         REGRESSION: Caret disappears after deleting the last character in inline hole (15714)
1382
1383         * editing/TypingCommand.cpp:
1384         (WebCore::TypingCommand::deleteSelection): Like the other TypingCommands, including
1385         both of the other deletion commands, call typingAddedToOpenCommand(), which takes 
1386         the command's endingSelection and sets it as selection.
1387
1388 2007-11-06  Dan Bernstein  <mitz@apple.com>
1389
1390         Reviewed by Antti Koivisto and Dave Hyatt.
1391
1392         - fix <rdar://problem/5582961> Incorrect layout and floating object list corruption when CSS decreases a block's height
1393
1394         Test: fast/block/float/overhanging-after-height-decrease.html
1395
1396         * rendering/RenderBlock.cpp:
1397         (WebCore::RenderBlock::layoutBlock): If after calculating the height
1398         it turns out that there are overhanging floats that were not overhanging
1399         before, rescan children with overhanging floats and add them. 
1400         (WebCore::RenderBlock::layoutBlockChildren): Added a parameter that
1401         returns the lowest float bottom of any of the children.
1402         (WebCore::RenderBlock::addOverhangingFloats): Changed to return the
1403         lowest float bottom.
1404         * rendering/RenderBlock.h:
1405
1406 2007-11-06  Adele Peterson  <adele@apple.com>
1407
1408         Reviewed by Darin.
1409
1410         Switched all uses of HTMLImageLoader to use OwnPtrs.
1411
1412         * html/HTMLInputElement.h:
1413         * html/HTMLInputElement.cpp:
1414         (WebCore::HTMLInputElement::init):
1415         (WebCore::HTMLInputElement::~HTMLInputElement):
1416         (WebCore::HTMLInputElement::setInputType):
1417         (WebCore::HTMLInputElement::parseMappedAttribute):
1418         (WebCore::HTMLInputElement::attach):
1419         * html/HTMLObjectElement.h:
1420         * html/HTMLObjectElement.cpp:
1421         (WebCore::HTMLObjectElement::HTMLObjectElement):
1422         (WebCore::HTMLObjectElement::~HTMLObjectElement):
1423         (WebCore::HTMLObjectElement::parseMappedAttribute):
1424         (WebCore::HTMLObjectElement::attach):
1425         * html/HTMLVideoElement.h:
1426         * html/HTMLVideoElement.cpp:
1427         (WebCore::HTMLVideoElement::HTMLVideoElement):
1428         (WebCore::HTMLVideoElement::attach):
1429         (WebCore::HTMLVideoElement::detach):
1430         (WebCore::HTMLVideoElement::parseMappedAttribute):
1431
1432 2007-11-06  Antti Koivisto  <antti@apple.com>
1433
1434         Reviewed by Darin.
1435         
1436         Trigger media load on on src attribute changes as specified in new HTML5 draft.
1437
1438         Tests: media/video-src-change.html
1439                media/video-src-remove.html
1440                media/video-src-set.html
1441
1442         * html/HTMLMediaElement.cpp:
1443         (WebCore::HTMLMediaElement::attributeChanged):
1444         * html/HTMLMediaElement.h:
1445
1446 2007-11-06  Dan Bernstein  <mitz@apple.com>
1447
1448         Reviewed by Darin Adler.
1449
1450         - fix http://bugs.webkit.org/show_bug.cgi?id=15838
1451           Incomplete repaint toggling "How you know this person" on Facebook
1452
1453         Test: fast/repaint/make-children-non-inline.html
1454
1455         * rendering/RenderBlock.cpp:
1456         (WebCore::RenderBlock::makeChildrenNonInline): Repaint the block. This
1457         is needed because the inline children may be repositioned as they move
1458         into new anonymous blocks, but those blocks have no knowledge of where
1459         their children used to be, so they cannot invalidate those areas.
1460
1461 2007-11-06  Alexey Proskuryakov  <ap@webkit.org>
1462
1463         Reviewed by Darin.
1464
1465         http://bugs.webkit.org/show_bug.cgi?id=15847
1466         Some editing cleanup
1467
1468         No change in functionality.
1469
1470         * editing/TextIterator.cpp:
1471         (WebCore::plainText):
1472         * editing/TextIterator.h:
1473         Made WebCore::plainText() return String instead of DeprecatedString.
1474
1475         * bridge/mac/WebCoreAXObject.mm:
1476         (-[WebCoreAXObject textUnderElement]):
1477         (-[WebCoreAXObject value]):
1478         (-[WebCoreAXObject doAXBoundsForTextMarkerRange:]):
1479         (-[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]):
1480         (-[WebCoreAXObject doAXPreviousSentenceStartTextMarkerForTextMarker:]):
1481         Updated for the above change. There is no need to explicitly convert to NSString now.
1482
1483         * editing/EditCommand.cpp:
1484         (WebCore::EditCommand::EditCommand): m_startingSelection and m_endingSelection are actually
1485         initialized in constructor body, so the work done in initializer list was wasted.
1486
1487         (WebCore::EditCommand::apply): Moved some stars.
1488         (WebCore::EditCommand::unapply): Ditto.
1489         (WebCore::EditCommand::reapply): Ditto.
1490         (WebCore::EditCommand::setStartingSelection): The loop exit condition was evaluated twice,
1491         removed one of the checks.
1492
1493         * editing/SelectionController.cpp:
1494         (WebCore::SelectionController::toString): plainText() result type now matches what we need here.
1495
1496         * page/mac/WebCoreFrameBridge.h:
1497         * page/mac/WebCoreFrameBridge.mm:
1498         Removed unused -[WebCoreFrameBridge deleteKeyPressedWithSmartDelete:granularity:] and
1499         -[WebCoreFrameBridge forwardDeleteKeyPressedWithSmartDelete:granularity:].
1500
1501 2007-11-05  Mark Rowe  <mrowe@apple.com>
1502
1503         Mac build fix.
1504
1505         * bindings/js/JSHTMLDocumentCustom.cpp:
1506         (WebCore::writeHelper):
1507
1508 2007-11-05  Adam Roben  <aroben@apple.com>
1509
1510         Don't crash if SafariTheme can't be loaded
1511
1512         PlatformScrollBarSafari and RenderThemeSafari were not checking
1513         whether SafariTheme was successfully loaded. All other uses of
1514         SafariTheme already check this.
1515
1516         Reviewed by Steve.
1517
1518         * platform/win/PlatformScrollBarSafari.cpp: Don't paint if SafariTheme
1519         couldn't be loaded.
1520         (WebCore::PlatformScrollbar::paintButton):
1521         (WebCore::PlatformScrollbar::paintTrack):
1522         (WebCore::PlatformScrollbar::paintThumb):
1523         * rendering/RenderThemeSafari.cpp:
1524         (WebCore::RenderThemeSafari::isControlStyled): Always return true if
1525         we couldn't load SafariTheme. This way we should never try to paint
1526         themed controls (and we assert as such in the paint functions).
1527         (WebCore::RenderThemeSafari::paintCheckbox):
1528         (WebCore::RenderThemeSafari::paintRadio):
1529         (WebCore::RenderThemeSafari::paintButton):
1530         (WebCore::RenderThemeSafari::paintTextField):
1531         (WebCore::RenderThemeSafari::paintCapsLockIndicator):
1532         (WebCore::RenderThemeSafari::paintTextArea):
1533         (WebCore::RenderThemeSafari::paintMenuList):
1534         (WebCore::RenderThemeSafari::paintSliderThumb):
1535         (WebCore::RenderThemeSafari::paintSearchField):
1536         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
1537         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
1538         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
1539
1540 2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>
1541
1542         Adding the rest of wx port's graphics impl. 
1543
1544         Rubber-stamped by Maciej Stachowiak.
1545
1546         * platform/graphics/wx/AffineTransformWx.cpp: Added.
1547         * platform/graphics/wx/GraphicsContextWx.cpp: Added.
1548         * platform/graphics/wx/ImageBufferWx.cpp: Added.
1549         * platform/graphics/wx/ImageSourceWx.cpp: Added.
1550         * platform/graphics/wx/ImageWx.cpp: Added.
1551         * platform/graphics/wx/PathWx.cpp: Added.
1552
1553 2007-11-05  Kevin Ollivier  <kevino@theolliviers.com>
1554
1555         wx port bug fixes and new files to get platform/wx building on trunk.
1556
1557         Rubber-stamped by Maciej Stachowiak.
1558
1559         * platform/wx/CursorWx.cpp:
1560         * platform/wx/FileSystemWx.cpp: Added.
1561         * platform/wx/FontCacheWx.cpp:
1562         * platform/wx/FontPlatformDataWx.cpp:
1563         * platform/wx/FontWx.cpp:
1564         * platform/wx/KeyboardEventWx.cpp:
1565         * platform/wx/LocalizedStringsWx.cpp: Added.
1566         * platform/wx/LoggingWx.cpp: Added.
1567         * platform/wx/RenderThemeWx.cpp:
1568         * platform/wx/ScrollViewWx.cpp:
1569         * platform/wx/SharedTimerWx.cpp:
1570         * platform/wx/StringWx.cpp:
1571         * platform/wx/ThreadingWx.cpp: Added.
1572         * platform/wx/WidgetWx.cpp:
1573
1574 2007-11-05  Adele Peterson  <adele@apple.com>
1575
1576         Reviewed by Maciej.
1577
1578         Fix for <rdar://problem/5579999> Add poster attribute for video element
1579
1580         * html/HTMLAttributeNames.in: Added poster attribute.
1581
1582         * html/HTMLImageLoader.cpp: (WebCore::HTMLImageLoader::updateFromElement):
1583           Calls imageSourceAttributeName instead of having special cases for the different kinds of elements. 
1584         * dom/Element.cpp: (WebCore::Element::imageSourceAttributeName): Added.
1585         * dom/Element.h:
1586         * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::imageSourceAttributeName): Added.
1587         * html/HTMLObjectElement.h:
1588
1589         * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::movieNetworkStateChanged):
1590           Calls updatePosterImage when the network state is empty and when the first frame has been loaded.
1591         * html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::rendererIsNeeded): Made this inline.  HTMLVideoElement now also implements this.
1592
1593         * html/HTMLVideoElement.idl: Added case for poster attribute.
1594         * html/HTMLVideoElement.h: Added image loader and flag to keep track of whether or not the poster image should be shown.
1595         * html/HTMLVideoElement.cpp:
1596         (WebCore::HTMLVideoElement::HTMLVideoElement): Initialize m_imageLoader and m_shouldShowPosterImage.
1597         (WebCore::HTMLVideoElement::rendererIsNeeded): Calls HTMLElement::rendererIsNeeded since HTMLMediaElements have renderer by default.
1598         (WebCore::HTMLVideoElement::createRenderer): Create a RenderImage or RenderVideo depending on whether or not the poster image should be shown.
1599         (WebCore::HTMLVideoElement::attach): Set up image loader and RenderImage if necessary.
1600         (WebCore::HTMLVideoElement::detach): Delete image loader if its no longer needed.
1601         (WebCore::HTMLVideoElement::parseMappedAttribute): Added case to process poster attribute.
1602         (WebCore::HTMLVideoElement::poster): Added getter for poster attribute.
1603         (WebCore::HTMLVideoElement::setPoster): Added setter for poster attribute.
1604         (WebCore::HTMLVideoElement::isURLAttribute): Added.
1605         (WebCore::HTMLVideoElement::imageSourceAttributeName): Added.
1606         (WebCore::HTMLVideoElement::updatePosterImage): Added.  Updates m_shouldShowPosterImage and if its changed, detaches and attaches so the renderer is correct.
1607
1608 2007-11-05  Adam Roben  <aroben@apple.com>
1609
1610         Fix <rdar://5563572> SVG image support is turned off
1611
1612         Turned on SVG images for all platforms.
1613
1614         Reviewed by Eric.
1615
1616         * WebCore.vcproj/WebCore.vcproj: Added SVGImage.{cpp,h}
1617         * loader/CachedImage.cpp:
1618         (WebCore::CachedImage::createImage): Removed platform checks for
1619         SVGImage.
1620
1621 2007-11-05  Antti Koivisto  <antti@apple.com>
1622
1623         Reviewed by Darin.
1624
1625         QTMovieView can generate callbacks during paint. This can lead to crashes.
1626         
1627         Delay callbacks so they get handled after painting is completed. No test case,
1628         I don't know how to reliably reproduce this.
1629
1630         * platform/graphics/mac/MoviePrivateQTKit.mm:
1631         (WebCore::MoviePrivate::MoviePrivate):
1632         (WebCore::MoviePrivate::~MoviePrivate):
1633         (WebCore::MoviePrivate::paint):
1634         (-[WebCoreMovieObserver initWithCallback:WebCore::]):
1635         (-[WebCoreMovieObserver disconnect]):
1636         (-[WebCoreMovieObserver loadStateChanged:]):
1637         (-[WebCoreMovieObserver rateChanged:]):
1638         (-[WebCoreMovieObserver sizeChanged:]):
1639         (-[WebCoreMovieObserver timeChanged:]):
1640         (-[WebCoreMovieObserver volumeChanged:]):
1641         (-[WebCoreMovieObserver didEnd:]):
1642         (-[WebCoreMovieObserver setDelayCallbacks:]):
1643
1644 2007-11-05  Antti Koivisto  <antti@apple.com>
1645
1646         Reviewed by Adam.
1647
1648         Add some missing WebCore* prefixes to ObjC classes
1649
1650         * platform/mac/FileChooserMac.mm:
1651         (WebCore::FileChooser::FileChooser):
1652         * platform/mac/SharedBufferMac.mm:
1653         (WebCore::SharedBuffer::createNSData):
1654         (WebCore::SharedBuffer::createCFData):
1655         * platform/mac/SharedTimerMac.cpp:
1656         (WebCore::setSharedTimerFireTime):
1657
1658 2007-11-05  Ada Chan  <adachan@apple.com>
1659
1660         <rdar://problem/5579772> Regression: AltGr does not work
1661         We now store the system key event info in PlatforkKeyboardEvent().
1662
1663         Reviewed by Oliver.
1664
1665         * platform/PlatformKeyboardEvent.h:
1666         (WebCore::PlatformKeyboardEvent::isSystemKey):
1667         * platform/win/KeyEventWin.cpp:
1668         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1669
1670 2007-11-02  Tristan O'Tierney  <tristan@apple.com>
1671
1672         Reviewed by Darin Adler.
1673
1674         * WebCore.xcodeproj/project.pbxproj:
1675         Set WindowFeatures.h as a Private header.
1676         
1677         * loader/FrameLoader.cpp:
1678         (WebCore::FrameLoader::createWindow):
1679         Revised to use a single createWindow function instead of
1680         two createWindow functions and one createModalDialog function.
1681         The logic for this is now addressed in WebKit in an effort
1682         to make this easier to follow.
1683         
1684         * page/Chrome.cpp:
1685         (WebCore::Chrome::createWindow):
1686         * page/Chrome.h:
1687         * page/ChromeClient.h:
1688         * page/ContextMenuController.cpp:
1689         (WebCore::openNewWindow):
1690         * platform/graphics/svg/SVGImageEmptyClients.h:
1691         (WebCore::SVGEmptyChromeClient::createWindow):
1692         Revised to take new additional windowFeatures parameter.
1693
1694 2007-11-04  Geoffrey Garen  <ggaren@apple.com>
1695
1696         Reviewed by Darin Adler.
1697         
1698         http://bugs.webkit.org/show_bug.cgi?id=15835
1699
1700         Small adaptations to new KJS::List class.
1701
1702         * bindings/js/kjs_window.cpp:
1703         (KJS::WindowFunc::callAsFunction):
1704         (KJS::ScheduledAction::ScheduledAction):
1705
1706 2007-11-05  Adam Roben  <aroben@apple.com>
1707
1708         Allow passing a base class pointer to COMPtr::copyRefTo
1709
1710         Reviewed by Sam.
1711
1712         * platform/win/COMPtr.h:
1713
1714 2007-11-05  Dan Bernstein  <mitz@apple.com>
1715
1716         Reviewed by Oliver Hunt.
1717
1718         - fix ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) when a class attribute is all-whitespace
1719
1720         Test: fast/dom/class-all-whitespace.html
1721
1722         * dom/StyledElement.cpp:
1723         (WebCore::StyledElement::parseMappedAttribute): Check if there is any
1724         non-whitespace character in the class attribute.
1725
1726 2007-11-05  Brady Eidson  <beidson@apple.com>
1727
1728         Reviewed by Sam
1729
1730         Add transaction blocking to the DatabaseAuthorizer in preparation for the new version
1731         of the sql storage API
1732
1733         * storage/DatabaseAuthorizer.cpp:
1734         (WebCore::DatabaseAuthorizer::allowTransaction):
1735         * storage/DatabaseAuthorizer.h:
1736
1737 2007-11-05  Mark Rowe  <mrowe@apple.com>
1738
1739         Reviewed by Alp Toker.
1740
1741         Have getMIMETypeForExtension return a null string when no MIME type is known
1742         for the extension rather than returning "text/plain".  This prevents plugin data
1743         being dumped into object elements when plugins are disabled.
1744
1745         * platform/gtk/MIMETypeRegistryGtk.cpp:
1746         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
1747
1748 2007-11-04  Sam Weinig  <sam@webkit.org>
1749
1750         Rubber-stamped by Adam Roben.
1751
1752         Rename SecurityOrigin::allowsAccessFrom to SecurityOrigin::canAccess to 
1753         clear up ambiguity.
1754
1755         * bindings/js/kjs_window.cpp:
1756         (KJS::Window::isSafeScript):
1757         * platform/SecurityOrigin.cpp:
1758         (WebCore::SecurityOrigin::canAccess):
1759         * platform/SecurityOrigin.h:
1760
1761 2007-11-04  Timothy Hatcher  <timothy@apple.com>
1762
1763         Reviewed by Adam.
1764
1765         Bug 15834: There are many subtle bugs in the Styles pane of the Web Inspector
1766         http://bugs.webkit.org/show_bug.cgi?id=15834
1767
1768         - Broke up DocumentPanel and added three SidebarPane sub-classes.
1769         - Fixed many Style pane bugs, including:
1770           * Poor handling of duplicate properties in the same rule. Some of this can't be
1771             fixed since we can't only get the "winning" value for duplicate properties.
1772             So we should only show one entry per unique property name.
1773           * Computed style does not show font shorthand sub-properties if 'font' was used.
1774           * Property priority was broken, the wrong properties were crossed out.
1775           * The 'border' shorthand shows null for the shorthand value.
1776           * Shorthands didn't show their priority (e.g. !important).
1777           * HSL and HTML hex colors didn't have preview swatch blocks.
1778           * Code refactoring, making it easier to reuse for console.log later.
1779
1780         * page/inspector/DocumentPanel.js: Move sidebar pane code to three seperate
1781           classes in new files.
1782         * page/inspector/MetricsSidebarPane.js: Added.
1783         * page/inspector/Panel.js: Remove an InspectorController.log() call.
1784         * page/inspector/PropertiesSection.js: Add the section to the TreeOutline.
1785           So TreeElements can access properties on their section.
1786         * page/inspector/PropertiesSidebarPane.js: Added.
1787         * page/inspector/SidebarPane.js: Remove the explicit asignment of the
1788           onexpand and oncollapse to null. These were hiding prototypes.
1789         * page/inspector/StylesSidebarPane.js: Added.
1790         * page/inspector/inspector.html: Include the new script files.
1791         * page/inspector/treeoutline.js: If a null representedObject is passed
1792           in just use a empty object.
1793
1794 2007-11-04  David D. Kilzer  <ddkilzer@webkit.org>
1795
1796         Fix build when spaces appear in the WebKit source path.
1797
1798         Reviewed by Mark Rowe.
1799
1800         * bindings/scripts/IDLParser.pm: Use safer open() method which lists
1801         arguments individually and prevents the need to work around spaces
1802         in the path.
1803
1804 2007-11-04  Alp Toker  <alp@atoker.com>
1805
1806         Reviewed by Alexey Proskuryakov.
1807
1808         Fix a crash when no clipboard text is available
1809
1810         * platform/gtk/PasteboardGtk.cpp:
1811         (WebCore::Pasteboard::plainText):
1812
1813 2007-11-03  Darin Adler  <darin@apple.com>
1814
1815         Reviewed by Maciej.
1816
1817         - WebCore part of http://bugs.webkit.org/show_bug.cgi?id=15821
1818           remove unused PCRE features for speed
1819
1820         * page/Frame.cpp: (WebCore::Frame::matchLabelsAgainstElement):
1821         * page/mac/FrameMac.mm: (WebCore::Frame::matchLabelsAgainstElement):
1822         Remove use of "[[:digit:]]" syntax. This hasn't worked for some time.
1823         Use "\d" instead.
1824
1825         * platform/RegularExpression.h: Remove the unused cap function. We can
1826         add it back later if we find we need it.
1827         * platform/RegularExpression.cpp:
1828         (WebCore::RegularExpression::Private::compile): Update for JavaScriptCore
1829         regular expression entry point changes.
1830         (WebCore::RegularExpression::Private::~Private): Ditto.
1831         (WebCore::RegularExpression::match): Remove the code to set PCRE_NOTBOL.
1832         This means that regular expressions with metacharactesr like ^ in them
1833         won't work any more with non-whole-string searches, but we don't use
1834         any regular expressions like that.
1835
1836 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
1837
1838         Update the link stubs to match the current build,
1839         and fix coding style issues.
1840
1841         Reviewed by Mark Rowe.
1842
1843         * platform/wx/TemporaryLinkStubs.cpp:
1844         (loadResourceIntoArray):
1845         (findNextSentenceFromIndex):
1846         (findSentenceBoundary):
1847         (Frame::dashboardRegionsChanged):
1848         (WebCore::historyContains):
1849         (CachedPage::close):
1850         (Editor::showStylesPanel):
1851         (EventHandler::passSubframeEventToSubframe):
1852         (EventHandler::passWheelEventToWidget):
1853         (WebCore::currentTextBreakLocaleID):
1854
1855 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
1856
1857         wx <-> WebKit conversions for IntPoint, IntRect and FloatRect
1858
1859         Reviewed by Mark Rowe.
1860
1861         * platform/graphics/wx/FloatRectWx.cpp: Added.
1862         * platform/graphics/wx/IntPointWx.cpp: Added.
1863         * platform/graphics/wx/IntRectWx.cpp: Added.
1864
1865 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
1866
1867         wx <-> WebKit data type conversions for Pen and Color.
1868
1869         Reviewed by Darin Adler.
1870
1871         * platform/graphics/wx: Added.
1872         * platform/graphics/wx/ColorWx.cpp: Added.
1873         * platform/graphics/wx/PenWx.cpp: Added.
1874
1875 2007-11-03  Sam Weinig  <sam@webkit.org>
1876
1877         Reviewed by Oliver.
1878
1879         Remove dummy variable from ClassInfo reducing the size of the struct by 1 word.
1880         The variable had been kept around for binary compatibility, but since nothing
1881         else is there is no point in continuing to keep it around.
1882
1883         * bindings/js/JSDOMExceptionConstructor.cpp:
1884         (WebCore::):
1885         * bindings/js/JSHTMLInputElementBase.cpp:
1886         (WebCore::):
1887         * bindings/js/JSNamedNodesCollection.cpp:
1888         (WebCore::):
1889         * bindings/js/JSXMLHttpRequest.cpp:
1890         (KJS::):
1891         * bindings/js/JSXSLTProcessor.cpp:
1892         (KJS::):
1893         * bindings/js/kjs_css.cpp:
1894         (WebCore::):
1895         * bindings/js/kjs_events.cpp:
1896         (WebCore::):
1897         * bindings/js/kjs_navigator.cpp:
1898         (KJS::):
1899         * bindings/js/kjs_window.cpp:
1900         (KJS::):
1901         * bindings/scripts/CodeGeneratorJS.pm:
1902
1903 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
1904
1905         Build fixes to get wx impls. building on trunk.
1906
1907         Reviewed by Mark Rowe.
1908
1909         * platform/wx/DragDataWx.cpp:
1910         (WebCore::DragData::containsFiles):
1911         (WebCore::DragData::asFilenames):
1912         * platform/wx/DragImageWx.cpp:
1913         (WebCore::scaleDragImage):
1914         * platform/wx/MimeTypeRegistryWx.cpp:
1915         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
1916         * platform/wx/MouseEventWx.cpp:
1917         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1918         * platform/wx/MouseWheelEventWx.cpp:
1919         * platform/wx/PasteboardWx.cpp:
1920         (WebCore::Pasteboard::writeImage):
1921         * platform/wx/WidgetWx.cpp:
1922         (WebCore::Widget::setCursor):
1923
1924 2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>
1925
1926         Sort files(...); sections of Xcode project files.
1927
1928         Rubber-stamped by Darin.
1929
1930         * WebCore.xcodeproj/project.pbxproj:
1931         * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj:
1932
1933 2007-11-03  Kevin Ollivier  <kevino@theolliviers.com>
1934
1935         Coding style fixes for platform/wx files.
1936
1937         Reviewed by Mark Rowe.
1938
1939         * platform/wx/ClipboardWx.cpp:
1940         * platform/wx/GlyphMapWx.cpp:
1941         * platform/wx/ScreenWx.cpp:
1942
1943 2007-11-03  Alp Toker  <alp@atoker.com>
1944
1945         Reviewed by Mark Rowe.
1946
1947         Implement platform scrollbar static width/height getters
1948
1949         * platform/gtk/PlatformScrollBar.h:
1950         * platform/gtk/PlatformScrollBarGtk.cpp:
1951         (scrollbarSize):
1952         (PlatformScrollbar::horizontalScrollbarHeight):
1953
1954 2007-11-03  Alp Toker  <alp@atoker.com>
1955
1956         Reviewed by Mark Rowe.
1957
1958         Cast function pointers to gpointer.
1959
1960         * platform/gtk/PlatformScrollBarGtk.cpp:
1961         (PlatformScrollbar::~PlatformScrollbar):
1962
1963 2007-11-03  Alp Toker  <alp@atoker.com>
1964
1965         Reviewed by Adam Roben.
1966
1967         RenderThemeGtk implementation based on Mozilla's GTK+ style code
1968
1969         There is still work needed to complete this feature.
1970
1971         * WebCore.pro:
1972         * platform/gtk/RenderThemeGtk.cpp:
1973         (WebCore::theme):
1974         (WebCore::RenderThemeGtk::RenderThemeGtk):
1975         (WebCore::supportsFocus):
1976         (WebCore::RenderThemeGtk::supportsFocusRing):
1977         (WebCore::RenderThemeGtk::controlSupportsTints):
1978         (WebCore::RenderThemeGtk::baselinePosition):
1979         (WebCore::adjustMozStyle):
1980         (WebCore::setMozState):
1981         (WebCore::paintMozWidget):
1982         (WebCore::setButtonPadding):
1983         (WebCore::setToggleSize):
1984         (WebCore::RenderThemeGtk::setCheckboxSize):
1985         (WebCore::RenderThemeGtk::paintCheckbox):
1986         (WebCore::RenderThemeGtk::setRadioSize):
1987         (WebCore::RenderThemeGtk::paintRadio):
1988         (WebCore::RenderThemeGtk::adjustButtonStyle):
1989         (WebCore::RenderThemeGtk::paintButton):
1990         (WebCore::RenderThemeGtk::adjustMenuListStyle):
1991         (WebCore::RenderThemeGtk::paintMenuList):
1992         (WebCore::RenderThemeGtk::adjustTextFieldStyle):
1993         (WebCore::RenderThemeGtk::paintTextField):
1994         (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
1995         (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
1996         (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationStyle):
1997         (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
1998         (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
1999         (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
2000         (WebCore::RenderThemeGtk::adjustSearchFieldStyle):
2001         (WebCore::RenderThemeGtk::paintSearchField):
2002         (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
2003         (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
2004         (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
2005         (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
2006         (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
2007         (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
2008         (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
2009         (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
2010         (WebCore::RenderThemeGtk::caretBlinkFrequency):
2011         (WebCore::RenderThemeGtk::systemFont):
2012         (WebCore::gtkStyleSetCallback):
2013         (WebCore::RenderThemeGtk::gtkContainer):
2014         (WebCore::RenderThemeGtk::gtkEntry):
2015         (WebCore::RenderThemeGtk::gtkTreeView):
2016         * platform/gtk/RenderThemeGtk.h:
2017         * platform/gtk/gtk2drawing.c: Added.
2018         (moz_gtk_enable_style_props):
2019         (ensure_window_widget):
2020         (setup_widget_prototype):
2021         (ensure_button_widget):
2022         (ensure_checkbox_widget):
2023         (ensure_radiobutton_widget):
2024         (ensure_scrollbar_widget):
2025         (ensure_spin_widget):
2026         (ensure_scale_widget):
2027         (ensure_entry_widget):
2028         (ensure_option_menu_widget):
2029         (ensure_arrow_widget):
2030         (ensure_handlebox_widget):
2031         (ensure_toolbar_widget):
2032         (ensure_tooltip_widget):
2033         (ensure_tab_widget):
2034         (ensure_progress_widget):
2035         (ensure_frame_widget):
2036         (ensure_menu_bar_widget):
2037         (ensure_menu_bar_item_widget):
2038         (ensure_menu_popup_widget):
2039         (ensure_menu_item_widget):
2040         (ensure_check_menu_item_widget):
2041         (ConvertGtkState):
2042         (TSOffsetStyleGCArray):
2043         (TSOffsetStyleGCs):
2044         (moz_gtk_button_paint):
2045         (moz_gtk_init):
2046         (moz_gtk_checkbox_get_metrics):
2047         (moz_gtk_radio_get_metrics):
2048         (moz_gtk_checkbox_get_focus):
2049         (moz_gtk_radio_get_focus):
2050         (moz_gtk_button_get_focus):
2051         (moz_gtk_option_menu_get_metrics):
2052         (moz_gtk_toggle_paint):
2053         (calculate_arrow_dimensions):
2054         (moz_gtk_scrollbar_button_paint):
2055         (moz_gtk_scrollbar_trough_paint):
2056         (moz_gtk_scrollbar_thumb_paint):
2057         (moz_gtk_spin_paint):
2058         (moz_gtk_scale_paint):
2059         (moz_gtk_scale_thumb_paint):
2060         (moz_gtk_gripper_paint):
2061         (moz_gtk_entry_paint):
2062         (moz_gtk_option_menu_paint):
2063         (moz_gtk_dropdown_arrow_paint):
2064         (moz_gtk_container_paint):
2065         (moz_gtk_toggle_label_paint):
2066         (moz_gtk_toolbar_paint):
2067         (moz_gtk_tooltip_paint):
2068         (moz_gtk_frame_paint):
2069         (moz_gtk_progressbar_paint):
2070         (moz_gtk_progress_chunk_paint):
2071         (moz_gtk_tab_paint):
2072         (moz_gtk_tabpanels_paint):
2073         (moz_gtk_menu_bar_paint):
2074         (moz_gtk_menu_popup_paint):
2075         (moz_gtk_menu_item_paint):
2076         (moz_gtk_check_menu_item_paint):
2077         (moz_gtk_window_paint):
2078         (moz_gtk_get_widget_border):
2079         (moz_gtk_get_dropdown_arrow_size):
2080         (moz_gtk_get_scalethumb_metrics):
2081         (moz_gtk_get_scrollbar_metrics):
2082         (moz_gtk_widget_paint):
2083         (moz_gtk_get_scrollbar_widget):
2084         (moz_gtk_shutdown):
2085         * platform/gtk/gtkdrawing.h: Added.
2086
2087 2007-11-03  Alp Toker  <alp@atoker.com>
2088
2089         Reviewed by Mark Rowe.
2090
2091         Do not allow scrollbars to handle wheel events
2092         
2093         We bubble the wheel event up so the parent can handle it instead.
2094
2095         * platform/gtk/PlatformScrollBarGtk.cpp:
2096         (gtkScrollEventCallback):
2097         (PlatformScrollbar::PlatformScrollbar):
2098         (PlatformScrollbar::~PlatformScrollbar):
2099
2100 2007-11-03  Alp Toker  <alp@atoker.com>
2101
2102         Reviewed by Mark Rowe.
2103
2104         Frame scrolling and invalidation fixes
2105
2106         Make upward scroll events have a positive delta to match other ports.
2107
2108         Fix the invalidation rect offset for frames so that scrolling works properly.
2109
2110         Avoid allocating negative sizes to widgets to avoid GTK+ warnings.
2111
2112         Allow tabbing to all widgets and links.
2113
2114         Fix event returns, improving the focus situation and correcting scroll wheel
2115         behavior.
2116
2117         * page/gtk/EventHandlerGtk.cpp:
2118         (WebCore::EventHandler::tabsToAllControls):
2119         (WebCore::EventHandler::passWheelEventToWidget):
2120         * platform/gtk/ScrollViewGtk.cpp:
2121         (WebCore::ScrollViewScrollbar::geometryChanged):
2122         (WebCore::ScrollView::updateContents):
2123         (WebCore::ScrollView::update):
2124         (WebCore::ScrollView::wheelEvent):
2125         (WebCore::ScrollView::updateScrollbars):
2126         * platform/gtk/WheelEventGtk.cpp:
2127         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2128
2129 2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>
2130
2131         LGPL'ed files contain incorrect FSF address
2132         <http://bugs.webkit.org/show_bug.cgi?id=14885>
2133
2134         Reviewed by NOBODY (follow-up fix).
2135
2136         * bindings/js/JSSVGTransformListCustom.cpp:
2137         * ksvg2/svg/SVGException.idl:
2138         * ksvg2/svg/SVGTextPathElement.cpp:
2139         * ksvg2/svg/SVGTextPathElement.h:
2140         * ksvg2/svg/SVGViewSpec.cpp:
2141         * ksvg2/svg/SVGViewSpec.h:
2142         * platform/mac/FontCustomPlatformData.cpp:
2143         * platform/mac/FontCustomPlatformData.h:
2144         * platform/mac/FontPlatformDataMac.mm:
2145         * platform/win/FontCustomPlatformData.cpp:
2146         * platform/win/FontCustomPlatformData.h:
2147         * rendering/RenderSVGRoot.cpp:
2148         * rendering/RenderSVGRoot.h:
2149         * rendering/RenderSVGTextPath.cpp:
2150         * rendering/RenderSVGTextPath.h:
2151         * rendering/RenderSVGTransformableContainer.h:
2152         * rendering/RenderSVGViewportContainer.cpp:
2153         * rendering/RenderSVGViewportContainer.h:
2154         * rendering/SVGCharacterLayoutInfo.cpp:
2155         * rendering/SVGCharacterLayoutInfo.h:
2156         * rendering/SVGRenderSupport.cpp:
2157         * rendering/SVGRenderSupport.h:
2158
2159 2007-11-02  Antti Koivisto  <antti@apple.com>
2160
2161         Reviewed by Adam.
2162         
2163         Add video width/height DOM and content attributes from latest HTML5 draft.
2164
2165         Test: media/video-width-height.html
2166
2167         * html/HTMLVideoElement.cpp:
2168         (WebCore::HTMLVideoElement::parseMappedAttribute):
2169         (WebCore::HTMLVideoElement::width):
2170         (WebCore::HTMLVideoElement::setWidth):
2171         (WebCore::HTMLVideoElement::height):
2172         (WebCore::HTMLVideoElement::setHeight):
2173         * html/HTMLVideoElement.h:
2174         * html/HTMLVideoElement.idl:
2175
2176 2007-11-02  Darin Adler  <darin@apple.com>
2177
2178         Reviewed by Maciej.
2179
2180         * DerivedSources.make: Remove a few explicit filenames from some rules by using
2181         make variables a little more.
2182         * WebCore.LP64.exp: Fix typo, grammar.
2183
2184 2007-11-02  Darin Adler  <darin@apple.com>
2185
2186         Reviewed by Maciej.
2187
2188         - use the new HashMap::take function where appropriate
2189
2190         * bindings/js/kjs_binding.cpp:
2191         (KJS::addWrapper): Made an inline rather than a macro; inlines good, macros bad.
2192         (KJS::removeWrapper): Ditto.
2193         (KJS::removeWrappers): Ditto.
2194         (KJS::ScriptInterpreter::putDOMObject): Use the inline instead of the macro.
2195         (KJS::ScriptInterpreter::forgetDOMObject): Ditto. This involves using take instead
2196         of remove -- in theory ever so slightly less efficient, but I think it's fine.
2197         (KJS::ScriptInterpreter::forgetDOMNodeForDocument): Ditto.
2198         (KJS::ScriptInterpreter::putDOMNodeForDocument): Use the inline instead of the macro.
2199         (KJS::ScriptInterpreter::forgetAllDOMNodesForDocument): Use take instead of find/remove.
2200         (KJS::ScriptInterpreter::updateDOMNodeDocument): Use the inlines instead of the macros.
2201
2202         * bindings/js/kjs_window.cpp: (KJS::Window::clearTimeout): Use take instead of find/remove.
2203         * bridge/mac/AXObjectCacheMac.mm: (WebCore::AXObjectCache::remove): Ditto.
2204         * page/AnimationController.cpp: (WebCore::AnimationControllerPrivate::clear): Ditto.
2205         * rendering/RenderBlock.cpp:
2206         (WebCore::RenderBlock::~RenderBlock): Ditto.
2207         (WebCore::RenderBlock::setDesiredColumnCountAndWidth): Ditto.
2208         * rendering/RootInlineBox.cpp: Ditto.(WebCore::RootInlineBox::detachEllipsisBox): Ditto.
2209
2210 2007-11-02  Antti Koivisto  <antti@apple.com>
2211
2212         Reviewed by Darin.
2213
2214         Enable video composition.
2215
2216         * WebCore.base.exp:
2217         * platform/graphics/mac/MoviePrivateQTKit.mm:
2218         (WebCore::MoviePrivate::createQTMovieView):
2219         * platform/mac/WebCoreSystemInterface.h:
2220         * platform/mac/WebCoreSystemInterface.mm:
2221
2222 2007-11-02  Darin Adler  <darin@apple.com>
2223
2224         Reviewed by Mitz.
2225
2226         - fix http://bugs.webkit.org/show_bug.cgi?id=15806
2227           <rdar://problem/5561626> ASSERT(element->isRadioButton()) fires destroying form elements
2228
2229         Test: fast/forms/remove-radio-button-assert.html
2230
2231         * html/HTMLGenericFormElement.cpp: (WebCore::HTMLGenericFormElement::removeFromForm):
2232         Added protected function to be used by derived classes that need to do the same sort
2233         of removal from form that's automatically done by the base class in certain circumstances.
2234         * html/HTMLGenericFormElement.h: Added removeFromForm.
2235
2236         * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::~HTMLInputElement):
2237         Call removeFromForm here so the element is removed before we destroy the HTMLInputElement
2238         part of this object. By the time we get to the base class's destructor it's too late.
2239         The problem is specific to radio buttons so we don't have to worry about other classes
2240         derived from HTMLGenericFormElement.
2241
2242 2007-11-02  Darin Adler  <darin@apple.com>
2243
2244         Reviewed by Mitz.
2245
2246         - speculative fix for http://bugs.webkit.org/show_bug.cgi?id=15805
2247           <rdar://problem/5510779> crashes in isLoadingMultipartContent
2248
2249         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::isLoadingMultipartContent):
2250         Instead of asserting the frame loader is non-0, return false if it is 0.
2251
2252 2007-11-02  Darin Adler  <darin@apple.com>
2253
2254         Reviewed by Mitz.
2255
2256         - fix <rdar://problem/5530185> WebKit does not show <object> fallback content when both
2257           URL and MIME type is omitted
2258
2259         Already covered by existing tests (that had incorrect results).
2260
2261         * loader/FrameLoader.cpp: (WebCore::FrameLoader::requestObject): Return false to indicate
2262         failure when both URL and MIME type are empty. The old code would not attempt a load, but
2263         it would indicate success.
2264
2265         * rendering/RenderPartObject.cpp: (WebCore::RenderPartObject::updateWidget): Remove
2266         non-helpful early exit for the case where there is no URL and no type. Returning early
2267         prevents the fallback code from running.
2268
2269 2007-11-02  Alp Toker  <alp@atoker.com>
2270
2271         Reviewed by Darin.
2272
2273         Include Cairo headers properly
2274
2275         * platform/graphics/AffineTransform.h:
2276         * platform/graphics/ImageBuffer.h:
2277         * platform/graphics/cairo/AffineTransformCairo.cpp:
2278         * platform/gtk/FontPlatformDataGtk.cpp:
2279
2280 2007-11-01  Oliver Hunt  <oliver@apple.com>
2281
2282         Reviewed by Alexey.
2283
2284         Make sure we send the correct events for Capslock, Shift, Ctrl, Alt and the Windows key        
2285
2286         * platform/win/KeyEventWin.cpp:
2287         (WebCore::keyIdentifierForWindowsKeyCode):
2288         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2289
2290 2007-11-01  Geoffrey Garen  <ggaren@apple.com>
2291
2292         Reviewed by Maciej Stachowiak.
2293         
2294         In preparation for making List a simple stack-allocated Vector:
2295
2296         Removed all instances of List copying, assignment, and/or storage.
2297         
2298         Layout tests and JS tests pass.
2299
2300         * bindings/js/kjs_window.cpp:
2301         (KJS::WindowFunc::callAsFunction): Stores a Vector of protected 
2302         JSValue*'s instead of a List now. Converts to List on the fly when 
2303         calling the timer function. This is slightly less efficient, but the 
2304         common case is 0-2 arguments, so it's no biggie.
2305
2306         (HTML iBench shows no regression. PLT does not use JS timers.)
2307         
2308         (KJS::ScheduledAction::execute): Uses the more efficient and non-copying
2309         List::slice now.
2310         (KJS::ScheduledAction::ScheduledAction): ditto
2311
2312         * bindings/objc/WebScriptObject.mm:
2313         (getListFromNSArray): Takes a List out parameter now, to avoid copying.
2314
2315 2007-11-01  Oliver Hunt  <oliver@apple.com>
2316
2317         Reviewed by Geoff.
2318
2319         Correct event behaviour on certain control keys
2320
2321         Make sure we send the correct keyDown and keyUp events for the
2322         control keys CapsLock, Shift, Ctrl, Alt, and Meta/Command, and
2323         uses Windows key codes for the event keyCode.
2324
2325         * WebCore.base.exp:
2326         * page/EventHandler.cpp:
2327         (WebCore::EventHandler::keyEvent):
2328         * platform/PlatformKeyboardEvent.h:
2329         * platform/gtk/KeyEventGtk.cpp:
2330         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2331         * platform/mac/KeyEventMac.mm:
2332         (WebCore::keyIdentifierForKeyEvent):
2333         (WebCore::WindowsKeyCodeForKeyEvent):
2334         (WebCore::isKeyUpEvent):
2335         (WebCore::textFromEvent):
2336         (WebCore::unmodifiedTextFromEvent):
2337         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2338         * platform/win/KeyEventWin.cpp:
2339         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2340         * platform/wx/KeyEventWin.cpp:
2341         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2342
2343 2007-11-01  Timothy Hatcher  <timothy@apple.com>
2344
2345         Reviewed by Sam.
2346
2347         * page/inspector/inspector.css: Use the white disclosure triangles
2348           when a parent DOM element is sepected.
2349
2350 2007-11-01  Justin Garcia  <justin.garcia@apple.com>
2351
2352         Reviewed by Oliver Hunt.
2353
2354         <rdar://problem/5195056> Huge plain text pastes are slow, time spent in ApplyStyleCommand::doApply
2355
2356         * editing/ReplaceSelectionCommand.cpp:
2357         (WebCore::ReplaceSelectionCommand::doApply): No need to match style when pasting
2358         into a plaintext-only region, since when we build the fragment to insert from
2359         plain text, we don't put any style information on it, so it will automatically
2360         match style with no intervention.
2361         * editing/markup.cpp:
2362         (WebCore::createFragmentFromText): Place paragraphs into clones of the
2363         block being inserted into, instead of default paragraph elements,
2364         so that when inserted content will match the surrounding paragraph style.
2365         This was broken before, but I haven't added a layout test yet because
2366         there currently isn't a way to get only plain text onto the pasteboard
2367         in a layout test.
2368
2369 2007-11-01  Sam Weinig  <sam@webkit.org>
2370
2371         Reviewed by Adam Roben. 
2372
2373         Add a releaseRef method to COMPtr which matches the behavior
2374         of the method by the same name in PassRefPtr.  This is in
2375         preparation of adding autogenerated COM DOM bindings.
2376
2377         * platform/win/COMPtr.h:
2378         (COMPtr::releaseRef):
2379
2380 2007-11-01  Kevin Ollivier  <kevino@theolliviers.com>
2381
2382         wx impl. for DragController and EventHandler interfaces.
2383
2384         Reviewed by Adam Roben.
2385
2386         * page/wx: Added.
2387         * page/wx/DragControllerWx.cpp: Added.
2388         (WebCore::DragController::isCopyKeyDown):
2389         (WebCore::DragController::dragOperation):
2390         (WebCore::DragController::maxDragImageSize):
2391         * page/wx/EventHandlerWx.cpp: Added.
2392         (WebCore::EventHandler::passMousePressEventToSubframe):
2393         (WebCore::EventHandler::passMouseMoveEventToSubframe):
2394         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
2395         (WebCore::EventHandler::passMousePressEventToScrollbar):
2396         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
2397         (WebCore::EventHandler::focusDocumentView):
2398         (WebCore::EventHandler::eventActivatedView):
2399         (WebCore::EventHandler::createDraggingClipboard):
2400
2401 2007-11-01  Kevin Ollivier  <kevino@theolliviers.com>
2402
2403         Adding files for wx impl. of editing interfaces.
2404
2405         Reviewed by Adam Roben.
2406
2407         * editing/wx: Added.
2408         * editing/wx/EditorWx.cpp: Added.
2409         (WebCore::Editor::newGeneralClipboard):
2410
2411 2007-11-01  Sam Weinig  <sam@webkit.org>
2412
2413         Reviewed by Adam Roben.
2414
2415         Make implicit conversions from LPCSTRs and BSTRs to WebCore string
2416         types possible in preparation of adding autogenerated COM DOM bindings.
2417
2418         * platform/AtomicString.cpp: 
2419         (WebCore::AtomicString::add):
2420         * platform/AtomicString.h:
2421         (WebCore::AtomicString::AtomicString):
2422         * platform/PlatformString.h:
2423         * platform/win/BString.cpp:
2424         (WebCore::BString::BString):
2425         * platform/win/BString.h:
2426
2427 2007-11-01  Brady Eidson  <beidson@apple.com>
2428
2429         Reviewed by Anders
2430
2431         Renamed a flag inside of SQLiteTransaction and added an accessor (for future work)
2432
2433         * platform/sql/SQLiteTransaction.cpp:
2434         (WebCore::SQLiteTransaction::SQLiteTransaction):
2435         (WebCore::SQLiteTransaction::~SQLiteTransaction):
2436         (WebCore::SQLiteTransaction::begin):
2437         (WebCore::SQLiteTransaction::commit):
2438         (WebCore::SQLiteTransaction::rollback):
2439         * platform/sql/SQLiteTransaction.h:
2440         (WebCore::SQLiteTransaction::inProgress):
2441
2442 2007-11-01  Adam Roben  <aroben@apple.com>
2443
2444         Remove all duplicate xcopy commands from WebCore's post-build step
2445
2446         Also add the /d option to the copy of platform/sql.
2447
2448         Rubberstamped by Sam.
2449
2450         * WebCore.vcproj/WebCore.vcproj:
2451
2452 2007-11-01  Adele Peterson  <adele@apple.com>
2453
2454         Reviewed by Maciej.
2455
2456         Add support for the animation of the -webkit-border-raduis properties.
2457
2458         * page/AnimationController.cpp:
2459         (WebCore::blendFunc): Added for IntSize.
2460         (WebCore::ImplicitAnimation::animate): Added cases for border radius properties.
2461
2462 2007-11-01  Alp Toker  <alp@atoker.com>
2463
2464         Reviewed by Mitz Pettel.
2465
2466         Fix an unbalanced save/restore.
2467
2468         * platform/graphics/cg/ImageCG.cpp:
2469         (WebCore::BitmapImage::draw):
2470
2471 2007-11-01  David Hyatt  <hyatt@apple.com>
2472
2473         Add support for the animation of the visibility property.
2474
2475         Reviewed by oliver, aroben
2476
2477         * page/AnimationController.cpp:
2478         (WebCore::blendFunc):
2479         (WebCore::ImplicitAnimation::animate):
2480
2481 2007-11-01  Kevin McCullough  <kmccullough@apple.com>
2482
2483         Reviewed by Adam.
2484
2485         - Made COMPtr be able to be used by certain other templates,
2486         specifically HashSet.
2487
2488         * platform/win/COMPtr.h:
2489         (WTF::):
2490
2491 2007-11-01  Dan Bernstein  <mitz@apple.com>
2492
2493         Reviewed by Dave Hyatt.
2494
2495         - fix http://bugs.webkit.org/show_bug.cgi?id=15015
2496           <rdar://problem/5420308> Most of www.aol.com redraws unnecessarily when headline/photo section changes
2497
2498         Test: fast/repaint/overflow-clip-subtree-layout.html
2499
2500         This patch does not address the bigger issue of doing a full relayout
2501         of inline flows containing floats, but it addresses the problem on
2502         aol.com, where the changes that trigger layout are confined to an
2503         overflow area inside the float.
2504
2505         * page/FrameView.cpp:
2506         (WebCore::FrameView::scheduleRelayoutOfSubtree): If the new and old
2507         layout roots are different but one descends from the other, make (or
2508         keep) the ancestor as the layout root.
2509         * rendering/RenderObject.cpp:
2510         (WebCore::objectIsRelayoutBoundary): Made boxes with overflow
2511         clipping and non-auto width and height relayout boundaries.
2512
2513 2007-11-01  Alexey Proskuryakov  <ap@webkit.org>
2514
2515         Reviewed by Mark Rowe.
2516
2517         Fixed line endings that got confused in this file somehow.
2518
2519         * platform/network/ResourceResponse.cpp:
2520         (WebCore::ResourceResponse::isAttachment):
2521
2522 2007-11-01  Peter Kasting  <zerodpx@gmail.com>
2523
2524         Reviewed by Dave Hyatt.
2525
2526         http://bugs.webkit.org/show_bug.cgi?id=15778
2527         Malformed GIFs should not result in memory corruption.
2528
2529         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2530         (WebCore::GIFImageDecoder::haveDecodedRow):
2531         * platform/image-decoders/gif/GIFImageReader.cpp:
2532         (GIFImageReader::output_row):
2533         (GIFImageReader::read):
2534
2535 2007-10-31  Adam Roben  <aroben@apple.com>
2536
2537         Fix a crash when parsing a cubic-bezier function
2538
2539         Reviewed by Hyatt.
2540
2541         Test: fast/css/parse-timing-function-crash.html
2542
2543         * WebCore.vcproj/WebCore.vcproj:
2544         * css/CSSParser.cpp:
2545         (WebCore::CSSParser::parseTimingFunctionValue): Don't walk off the end
2546         of the ValueList.
2547
2548 2007-10-31  David Hyatt  <hyatt@apple.com>
2549
2550         Fix a merge error from when I applied my patch to ToT.  A couple of lines should be part of an if.
2551
2552         * rendering/RenderStyle.cpp:
2553         (WebCore::RenderStyle::adjustTransitions):
2554
2555 2007-10-31  Anders Carlsson  <andersca@apple.com>
2556
2557         Reviewed by Sam.
2558
2559         Add new SQL callback interfaces and JS implementations of them.
2560         
2561         * DerivedSources.make:
2562         * WebCore.xcodeproj/project.pbxproj:
2563         * bindings/js/JSCustomSQLStatementCallback.cpp: Added.
2564         (WebCore::JSCustomSQLStatementCallback::JSCustomSQLStatementCallback):
2565         (WebCore::JSCustomSQLStatementCallback::handleEvent):
2566         * bindings/js/JSCustomSQLStatementCallback.h: Added.
2567         * bindings/js/JSCustomSQLStatementErrorCallback.cpp: Added.
2568         (WebCore::JSCustomSQLStatementErrorCallback::JSCustomSQLStatementErrorCallback):
2569         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
2570         * bindings/js/JSCustomSQLStatementErrorCallback.h: Added.
2571         * bindings/js/JSCustomSQLTransactionCallback.cpp: Added.
2572         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
2573         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
2574         * bindings/js/JSCustomSQLTransactionCallback.h: Added.
2575         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp: Added.
2576         (WebCore::JSCustomSQLTransactionErrorCallback::JSCustomSQLTransactionErrorCallback):
2577         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
2578         * bindings/js/JSCustomSQLTransactionErrorCallback.h: Added.
2579         * storage/JSCustomSQLStatementCallback.h: Added.
2580         * storage/JSCustomSQLStatementErrorCallback.h: Added.
2581         * storage/JSCustomSQLTransactionCallback.h: Added.
2582         * storage/JSCustomSQLTransactionErrorCallback.h: Added.
2583         * storage/SQLStatementCallback.h: Added.
2584         (WebCore::SQLStatementCallback::~SQLStatementCallback):
2585         * storage/SQLStatementCallback.idl: Added.
2586         * storage/SQLStatementErrorCallback.h: Added.
2587         (WebCore::SQLStatementErrorCallback::~SQLStatementErrorCallback):
2588         * storage/SQLStatementErrorCallback.idl: Added.
2589         * storage/SQLTransaction.h: Added.
2590         * storage/SQLTransaction.idl: Added.
2591         * storage/SQLTransactionCallback.h: Added.
2592         (WebCore::SQLTransactionCallback::~SQLTransactionCallback):
2593         * storage/SQLTransactionCallback.idl: Added.
2594         * storage/SQLTransactionErrorCallback.h: Added.
2595         (WebCore::SQLTransactionErrorCallback::~SQLTransactionErrorCallback):
2596         * storage/SQLTransactionErrorCallback.idl: Added.
2597
2598 2007-10-31  Justin Garcia  <justin.garcia@apple.com>
2599
2600         Reviewed by Dave Harrison.
2601
2602         <rdar://problem/5569741> Pasting content with a line break into a list can remove the list
2603
2604         * editing/htmlediting.cpp:
2605         (WebCore::enclosingEmptyListItem): A single list item can contain multiple 
2606         paragraphs, so if the incoming VisiblePosition is in an empty paragraph in a 
2607         list item, that list item isn't necessarily empty.
2608
2609 2007-10-31  David Hyatt  <hyatt@apple.com>
2610
2611         Disable style sharing for animating styles.
2612
2613         Reviewed by mitzpettel
2614
2615         * css/CSSStyleSelector.cpp:
2616         (WebCore::CSSStyleSelector::canShareStyleWithElement):
2617
2618 2007-10-31  Dan Bernstein  <mitz@apple.com>
2619
2620         Reviewed by Darin Adler.
2621
2622         - fix intermediate length calculation
2623
2624         * rendering/Length.h:
2625         (WebCore::Length::blend):
2626
2627 2007-10-31  Anders Carlsson  <andersca@apple.com>
2628
2629         Reviewed by Darin.
2630
2631         Add new SQLError implementation.
2632         
2633         * DerivedSources.make:
2634         * WebCore.vcproj/WebCore.vcproj:
2635         * WebCore.xcodeproj/project.pbxproj:
2636         * storage/SQLError.h: Added.
2637         (WebCore::SQLError::SQLError):
2638         (WebCore::SQLError::code):
2639         (WebCore::SQLError::message):
2640         * storage/SQLError.idl: Added.
2641
2642 2007-10-31  David Hyatt  <hyatt@apple.com>
2643
2644         Change the initial value of transition-property to all.  Change the initial value of
2645         transition-duration to 0.
2646
2647         Reviewed by antti
2648
2649         * rendering/RenderStyle.h:
2650         (WebCore::RenderStyle::initialTransitionDuration):
2651         (WebCore::RenderStyle::initialTransitionProperty):
2652
2653 2007-10-31  Alp Toker  <alp@atoker.com>
2654
2655         Reviewed by Mark Rowe.
2656
2657         The new Color must be marked valid.
2658
2659         * platform/graphics/gtk/ColorGtk.cpp:
2660
2661 2007-10-31  Simon Hausmann  <hausmann@kde.org>
2662
2663         Reviewed by Maciej;
2664
2665         Build fix for non-Qt builds.
2666
2667         * dom/XMLTokenizer.cpp:
2668         (WebCore::XMLTokenizer::XMLTokenizer):
2669
2670 2007-10-31  Simon Hausmann  <hausmann@kde.org>
2671
2672         Reviewed by Lars.
2673
2674         Fix dependency path to header files of the public API of the Qt port.
2675
2676         * WebCore.pro:
2677
2678 2007-10-31  Holger Freyther  <zecke@selfish.org>
2679
2680         Reviewed by Simon.
2681
2682         * QXmlStreamNamespaceDeclaration doesn't have the constructor we
2683         want to use for Qt4.3. Reenable the old code path which is likely
2684         to be dead as I have not checked if m_prefixToNamespaceMap is actually
2685         used.
2686         * Guard the entity resolver with the QT_VERSION as well.
2687         * Partially reverts 369506279abdaa863e15efed649ca19e062f2c30 and
2688         d2b54d0fc1b07a2480f4f7a1417abd7a636b0107 for Qt4.3.
2689
2690         * dom/XMLTokenizer.cpp:
2691         (WebCore::XMLTokenizer::XMLTokenizer):
2692         * dom/XMLTokenizer.h:
2693
2694 2007-10-31  Holger Freyther  <zecke@selfish.org>
2695
2696         Reviewed by Lars Knoll <lars@trolltech.com>.
2697
2698         * QMimeData::removeData will be new in Qt4.4, don't use it for Qt4.3 
2699         * Provide a bad fallback implementation to filter the format list.
2700
2701         * platform/qt/ClipboardQt.cpp:
2702         (WebCore::ClipboardQt::clearData):
2703
2704 2007-10-31  Lars Knoll  <lars@trolltech.com>
2705
2706         Reviewed by Simon.
2707
2708         add an entitiy resolver to QXmlStream.
2709         Fixes fast/parser/entities-in-attributes.xhtml.
2710
2711         * dom/XMLTokenizer.cpp:
2712         (WebCore::EntityResolver::resolveUndeclaredEntity):
2713         (WebCore::XMLTokenizer::XMLTokenizer):
2714         (WebCore::XMLTokenizer::~XMLTokenizer):
2715
2716 2007-10-31  Lars Knoll  <lars@trolltech.com>
2717
2718         Reviewed by Simon.
2719
2720         Fixes in the XML tokenizer when using QXmlStream.
2721         
2722         Use new functionality of QXmlStream in Qt 4.4 to simplify
2723         the code (but keep the old code for now to still support Qt 4.3).
2724         
2725         Add proper support for namespace handling when parsing into
2726         a document fragment.
2727
2728         * dom/XMLTokenizer.cpp:
2729         (WebCore::XMLTokenizer::XMLTokenizer):
2730         (WebCore::XMLTokenizer::write):
2731         (WebCore::XMLTokenizer::startElementNs):
2732         (WebCore::):
2733         * dom/XMLTokenizer.h:
2734
2735 2007-10-31  Lars Knoll  <lars@trolltech.com>
2736
2737         Reviewed by Simon.
2738
2739         add support for dragging images.
2740
2741         * platform/DragImage.h:
2742         * platform/qt/ClipboardQt.cpp:
2743         (WebCore::ClipboardQt::clearData):
2744         (WebCore::ClipboardQt::setDragImage):
2745         (WebCore::ClipboardQt::setDragImageElement):
2746         (WebCore::ClipboardQt::createDragImage):
2747         (WebCore::getCachedImage):
2748         (WebCore::ClipboardQt::declareAndWriteDragImage):
2749         * platform/qt/ClipboardQt.h:
2750
2751 2007-10-31  Lars Knoll  <lars@trolltech.com>
2752
2753         Reviewed by Simon.
2754
2755         fix most of the issues I found with Clipboard and DnD.
2756
2757         * editing/qt/EditorQt.cpp:
2758         * platform/qt/ClipboardQt.cpp:
2759         (WebCore::ClipboardQt::ClipboardQt):
2760         (WebCore::ClipboardQt::~ClipboardQt):
2761         (WebCore::ClipboardQt::clearData):
2762         (WebCore::ClipboardQt::clearAllData):
2763         (WebCore::ClipboardQt::getData):
2764         (WebCore::ClipboardQt::setData):
2765         (WebCore::ClipboardQt::types):
2766         (WebCore::ClipboardQt::setDragImage):
2767         (WebCore::ClipboardQt::setDragImageElement):
2768         (WebCore::ClipboardQt::declareAndWriteDragImage):
2769         (WebCore::ClipboardQt::writeURL):
2770         (WebCore::ClipboardQt::writeRange):
2771         (WebCore::ClipboardQt::hasData):
2772         * platform/qt/ClipboardQt.h:
2773         * platform/qt/DragDataQt.cpp:
2774         (WebCore::DragData::asURL):
2775
2776 2007-10-30  Mark Rowe  <mrowe@apple.com>
2777
2778         Fix the Gtk and Qt builds by stubbing out PlatformKeyboardEvent::currentCapsLockState.
2779
2780         * platform/gtk/KeyEventGtk.cpp:
2781         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
2782         * platform/qt/PlatformKeyboardEventQt.cpp:
2783         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
2784
2785 2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
2786
2787         Reviewed by Anders.
2788
2789         http://bugs.webkit.org/show_bug.cgi?id=15762
2790         XSLStylesheet loads subresources from a wrong URL
2791
2792         Covered by corrected existing tests.
2793
2794         * xml/XSLStyleSheet.cpp:
2795         (WebCore::XSLStyleSheet::parseString): Pass stylesheet URL, not
2796         the document one.
2797
2798 2007-10-31  Alexey Proskuryakov  <ap@webkit.org>
2799
2800         Reviewed by Darin.
2801
2802         http://bugs.webkit.org/show_bug.cgi?id=10818
2803         String::append does 2 full copies instead of 1 (or zero!)
2804
2805         No change in functionality, thus no test.
2806
2807         * platform/String.cpp:
2808         (WebCore::String::append): Rewrote to copy once. Also removed an ancient
2809         FIXME that doesn't seem to make any sense. Note that append() behavior doesn't 
2810         match documented String behavior ("modifications to one instance will
2811         also modify all others"), but there are a lot of methods that don't.
2812
2813 2007-10-31  Adam Roben  <aroben@apple.com>
2814
2815         Windows build fix
2816
2817         * WebCore.vcproj/WebCore.vcproj: Add [JS]ProgressEvent.{cpp,h} files.
2818
2819 2007-10-30  Adam Roben  <aroben@apple.com>
2820
2821         Windows build fixes
2822
2823         I'm not completely sure why these const issues weren't caught by GCC,
2824         but MSVC was certainly not happy with them.
2825
2826         * editing/IndentOutdentCommand.cpp:
2827         (WebCore::isIndentBlockquote):
2828         * editing/markup.cpp:
2829         (WebCore::styleFromMatchedRulesAndInlineDecl):
2830
2831 2007-10-30  David Hyatt  <hyatt@apple.com>
2832
2833         transition-property was defaulting to all when it should default to none.  
2834
2835         It was taking a string type.  I figured out how to make it take an ident instead, so you can write:
2836
2837         transition-property: opacity
2838
2839         instead of
2840
2841         transition-property: "opacity"
2842
2843         Transition layers also weren't properly repeating patterns the way they were supposed to.  I fixed that.
2844
2845         Finally, I fixed a bug in the code to fix up transition layers where something was misplaced that should have been inside a null check.
2846
2847         Reviewed by aroben
2848
2849         * css/CSSHelper.h:
2850         * css/CSSParser.cpp:
2851         (WebCore::CSSParser::parseTransitionProperty):
2852         * css/CSSStyleSelector.cpp:
2853         (WebCore::CSSStyleSelector::adjustRenderStyle):
2854         * page/AnimationController.cpp:
2855         (WebCore::ImplicitAnimation::animate):
2856         * rendering/RenderStyle.cpp:
2857         (WebCore::RenderStyle::adjustTransitions):
2858         * rendering/RenderStyle.h:
2859         (WebCore::RenderStyle::initialTransitionProperty):
2860
2861 2007-10-30  Antti Koivisto  <antti@apple.com>
2862
2863         Reviewed by Geoff.
2864
2865         Leak fix
2866
2867         * platform/graphics/mac/MoviePrivateQTKit.mm:
2868         (WebCore::MoviePrivate::getSupportedTypes):
2869
2870 2007-10-30  Dan Bernstein  <mitz@apple.com>
2871
2872         Reviewed by Stephanie Lewis.
2873
2874         - fix <rdar://problem/5547237> REGRESSION (304-ToT): Repro font-related crash in fontdatawin.cpp Line 93 (many sites)
2875
2876         * platform/win/FontDataWin.cpp:
2877         (WebCore::FontData::platformInit): Handle the case where the font has no
2878         glyphs on page zero.
2879
2880 2007-10-30  David Hyatt  <hyatt@apple.com>
2881
2882         Make sure CSS transforms can be animated using the CSS transition property.
2883
2884         Reviewed by Dan and Antti
2885
2886         * css/CSSStyleSelector.cpp:
2887         (WebCore::CSSStyleSelector::applyProperty):
2888         * page/AnimationController.cpp:
2889         (WebCore::blendFunc):
2890         (WebCore::ImplicitAnimation::animate):
2891         * rendering/Length.h:
2892         (WebCore::Length::blend):
2893         * rendering/RenderStyle.cpp:
2894         (WebCore::StyleTransformData::operator==):
2895         (WebCore::TransformOperations::operator==):
2896         (WebCore::blendLengths):
2897         (WebCore::ScaleTransformOperation::blend):
2898         (WebCore::RotateTransformOperation::blend):
2899         (WebCore::SkewTransformOperation::blend):
2900         (WebCore::TranslateTransformOperation::blend):
2901         (WebCore::MatrixTransformOperation::blend):
2902         * rendering/RenderStyle.h:
2903         (WebCore::TransformOperations::operator!=):
2904         (WebCore::TransformOperations::isEmpty):
2905         (WebCore::TransformOperations::size):
2906         (WebCore::TransformOperations::operator[]):
2907         (WebCore::TransformOperations::append):
2908         (WebCore::RenderStyle::transform):
2909         (WebCore::RenderStyle::setTransform):
2910         (WebCore::RenderStyle::initialTransform):
2911
2912 2007-10-30  Antti Koivisto  <antti@apple.com>
2913
2914         Another Qt/GTK build fix.
2915
2916         * bindings/js/JSHTMLElementWrapperFactory.cpp:
2917
2918 2007-10-30  Antti Koivisto  <antti@apple.com>
2919
2920         Attempt to fix Qt/GTK build.
2921
2922         * WebCore.pro:
2923
2924 2007-10-30  Justin Garcia  <justin.garcia@apple.com>
2925
2926         Reviewed by Darin Adler.
2927
2928         <rdar://problem/5549929> CrashTracer: [USER] 35 crashes at WebCore::CharacterData::insertData
2929         
2930         We were trying to insert a tab into a br, after the br incorrectly ended up inside
2931         a tab span.
2932         
2933         * editing/DeleteButtonController.cpp: 
2934         (WebCore::isDeletableElement): Changed to take in a const Node* instead of a Node*.
2935         * editing/DeleteSelectionCommand.cpp:
2936         (WebCore::isTableRow): Ditto.
2937         * editing/IndentOutdentCommand.cpp:
2938         (WebCore::isIndentBlockquote): Ditto.
2939         (WebCore::isListOrIndentBlockquote): Ditto.
2940         * editing/InsertLineBreakCommand.cpp:
2941         (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Added, moved code from
2942         doApply here.
2943         (WebCore::InsertLineBreakCommand::doApply): 
2944         Don't upstream() the insertion position.  upstream()ing it will only have an effect
2945         when the insertion position is the first in its paragraph (since we canonicalize
2946         VisiblePositions to the upstream() candidate).  In this start of paragraph case, 
2947         upstream() can move outside inline elements like tab spans or elements that might
2948         have a different whitespace mode (added two test cases to cover these).
2949         Moved code to decide whether to insert a br or a '\n' to its own method.
2950         Removed special case code for inserting at a position inside a tab span.  We instead
2951         adjust the insertion position before insertion if it is inside a tab span and
2952         handle insertion in the appropriate if-block.  This fixes a bug where we would 
2953         only insert one line break when two were needed (added a testcase).
2954         Removed special case code for inserting before and after tables and horizontal
2955         rules.  We handle these insertions in the appropriate if-block.
2956         * editing/InsertLineBreakCommand.h:
2957         * editing/ReplaceSelectionCommand.cpp:
2958         (WebCore::isMailPasteAsQuotationNode): Change to take in a const Node*.
2959         * editing/htmlediting.cpp:
2960         (WebCore::isContentEditable): Ditto.
2961         (WebCore::isBlock): Ditto.
2962         (WebCore::enclosingNodeOfType): Changed to take a function pointer to a function
2963         that takes in a const Node*.
2964         (WebCore::isTabSpanTextNode): Check to see that the node actually a text node,
2965         and not, say, a br.
2966         * editing/htmlediting.h:
2967         * editing/markup.cpp:
2968         (WebCore::styleFromMatchedRulesAndInlineDecl): Changed to take in a const Node*.
2969         (WebCore::elementHasTextDecorationProperty): Ditto.
2970
2971 2007-10-30  Antti Koivisto  <antti@apple.com>
2972
2973         Reviewed by NOBODY.
2974
2975         Add missing files.
2976
2977         * html/VoidCallback.cpp: Added.
2978         (VoidCallback::VoidCallback):
2979         (VoidCallback::~VoidCallback):
2980         (VoidCallback::handleEvent):
2981         (VoidCallback::execute):
2982         (VoidCallback::operator==):
2983         (WebCore::toVoidCallback):
2984         * html/VoidCallback.h: Added.
2985         * html/VoidCallback.idl: Added.
2986
2987 2007-10-30  David Kilzer  <ddkilzer@webkit.org>
2988
2989         Generated files missing from WebCore's Xcode project file
2990         <http://bugs.webkit.org/show_bug.cgi?id=15406>
2991
2992         Reviewed by Darin.
2993
2994         Added the following files to the Xcode project file (note that
2995         JSHTMLInputElementBaseTable.cpp is used as a header file):
2996
2997         - DOMCSSStyleSheetPrivate.h
2998         - DOMEventPrivate.h
2999         - DOMHTMLCollectionPrivate.h
3000         - DOMHTMLEmbedElementPrivate.h
3001         - DOMHTMLIFrameElementPrivate.h
3002         - DOMHTMLObjectElementPrivate.h
3003         - DOMHTMLSelectElementPrivate.h
3004         - DOMTextEventInternal.h
3005         - JSHTMLInputElementBaseTable.cpp
3006
3007         * DerivedSources.make: Removed DOMSVGException.h and JSSVGAnimatedPoints.h
3008         since their generated code was not used.
3009         * WebCore.xcodeproj/project.pbxproj: Added missing header files.
3010
3011 2007-10-29  Antti Koivisto  <antti@apple.com>
3012
3013         Rubber stamped by Adele.
3014
3015         Initial media (<video> and <audio>) support from feature branch and 
3016         QTKit based platform implementation.
3017         
3018         This will need to be updated to match current draft specification.
3019
3020         * Configurations/WebCore.xcconfig:
3021         * DerivedSources.make:
3022         * WebCore.base.exp:
3023         * WebCore.xcodeproj/project.pbxproj:
3024         * bindings/js/JSEventCustom.cpp:
3025         (WebCore::toJS):
3026         * bindings/js/JSHTMLAudioElementConstructor.cpp: Added.
3027         (WebCore::JSHTMLAudioElementConstructor::JSHTMLAudioElementConstructor):
3028         (WebCore::JSHTMLAudioElementConstructor::implementsConstruct):
3029         (WebCore::JSHTMLAudioElementConstructor::construct):
3030         * bindings/js/JSHTMLAudioElementConstructor.h: Added.
3031         * bindings/js/JSHTMLElementWrapperFactory.cpp:
3032         (WebCore::createJSHTMLWrapper):
3033         * bindings/js/kjs_window.cpp:
3034         (KJS::Window::getValueProperty):
3035         * bindings/js/kjs_window.h:
3036         (KJS::Window::):
3037         * bindings/scripts/CodeGeneratorJS.pm:
3038         * dom/Document.cpp:
3039         (WebCore::Document::createEvent):
3040         (WebCore::Document::willSaveToCache):
3041         (WebCore::Document::didRestoreFromCache):
3042         (WebCore::Document::registerForCacheCallbacks):
3043         (WebCore::Document::unregisterForCacheCallbacks):
3044         * dom/Document.h:
3045         * dom/Element.cpp:
3046         (WebCore::Element::setBooleanAttribute):
3047         * dom/Element.h:
3048         (WebCore::Element::willSaveToCache):
3049         * dom/Event.cpp:
3050         (WebCore::Event::isProgressEvent):
3051         * dom/Event.h:
3052         * dom/EventNames.h:
3053         * dom/EventTargetNode.cpp:
3054         (WebCore::EventTargetNode::dispatchProgressEvent):
3055         * dom/EventTargetNode.h:
3056         * dom/ProgressEvent.cpp: Added.
3057         (WebCore::ProgressEvent::ProgressEvent):
3058         (WebCore::ProgressEvent::initProgressEvent):
3059         (WebCore::ProgressEvent::initProgressEventNS):
3060         * dom/ProgressEvent.h: Added.
3061         (WebCore::ProgressEvent::lengthComputable):
3062         (WebCore::ProgressEvent::loaded):
3063         (WebCore::ProgressEvent::total):
3064         (WebCore::ProgressEvent::isProgressEvent):
3065         * dom/ProgressEvent.idl: Added.
3066         * history/CachedPage.cpp:
3067         (WebCore::CachedPage::CachedPage):
3068         * html/HTMLAttributeNames.in:
3069         * html/HTMLAudioElement.cpp: Added.
3070         (WebCore::HTMLAudioElement::HTMLAudioElement):
3071         * html/HTMLAudioElement.h: Added.
3072         (WebCore::HTMLAudioElement::tagPriority):
3073         * html/HTMLAudioElement.idl: Added.
3074         * html/HTMLElement.cpp:
3075         (WebCore::inlineTagList):
3076         * html/HTMLElementFactory.cpp:
3077         (WebCore::audioConstructor):
3078         (WebCore::videoConstructor):
3079         (WebCore::sourceConstructor):
3080         (WebCore::createFunctionMap):
3081         * html/HTMLInputElement.cpp:
3082         (WebCore::HTMLInputElement::~HTMLInputElement):
3083         (WebCore::HTMLInputElement::setInputType):
3084         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
3085         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
3086         * html/HTMLMediaElement.cpp: Added.
3087         (WebCore::HTMLMediaElement::HTMLMediaElement):
3088         (WebCore::HTMLMediaElement::~HTMLMediaElement):
3089         (WebCore::HTMLMediaElement::checkDTD):
3090         (WebCore::HTMLMediaElement::rendererIsNeeded):
3091         (WebCore::HTMLMediaElement::createRenderer):
3092         (WebCore::HTMLMediaElement::insertedIntoDocument):
3093         (WebCore::HTMLMediaElement::removedFromDocument):
3094         (WebCore::HTMLMediaElement::scheduleLoad):
3095         (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
3096         (WebCore::HTMLMediaElement::dispatchEventAsync):
3097         (WebCore::HTMLMediaElement::loadTimerFired):
3098         (WebCore::HTMLMediaElement::asyncEventTimerFired):
3099         (WebCore::serializeTimeOffset):
3100         (WebCore::parseTimeOffset):
3101         (WebCore::HTMLMediaElement::getTimeOffsetAttribute):
3102         (WebCore::HTMLMediaElement::setTimeOffsetAttribute):
3103         (WebCore::HTMLMediaElement::error):
3104         (WebCore::HTMLMediaElement::src):
3105         (WebCore::HTMLMediaElement::HTMLMediaElement::setSrc):
3106         (WebCore::HTMLMediaElement::currentSrc):
3107         (WebCore::HTMLMediaElement::networkState):
3108         (WebCore::HTMLMediaElement::bufferingRate):
3109         (WebCore::HTMLMediaElement::load):
3110         (WebCore::HTMLMediaElement::movieNetworkStateChanged):
3111         (WebCore::HTMLMediaElement::movieReadyStateChanged):
3112         (WebCore::HTMLMediaElement::setReadyState):
3113         (WebCore::HTMLMediaElement::progressEventTimerFired):
3114         (WebCore::HTMLMediaElement::seek):
3115         (WebCore::HTMLMediaElement::readyState):
3116         (WebCore::HTMLMediaElement::seeking):
3117         (WebCore::HTMLMediaElement::currentTime):
3118         (WebCore::HTMLMediaElement::setCurrentTime):
3119         (WebCore::HTMLMediaElement::duration):
3120         (WebCore::HTMLMediaElement::paused):
3121         (WebCore::HTMLMediaElement::defaultPlaybackRate):
3122         (WebCore::HTMLMediaElement::setDefaultPlaybackRate):
3123         (WebCore::HTMLMediaElement::playbackRate):
3124         (WebCore::HTMLMediaElement::setPlaybackRate):
3125         (WebCore::HTMLMediaElement::ended):
3126         (WebCore::HTMLMediaElement::autoplay):
3127         (WebCore::HTMLMediaElement::setAutoplay):
3128         (WebCore::HTMLMediaElement::play):
3129         (WebCore::HTMLMediaElement::pause):
3130         (WebCore::HTMLMediaElement::loopCount):
3131         (WebCore::HTMLMediaElement::setLoopCount):
3132         (WebCore::HTMLMediaElement::start):
3133         (WebCore::HTMLMediaElement::setStart):
3134         (WebCore::HTMLMediaElement::end):
3135         (WebCore::HTMLMediaElement::setEnd):
3136         (WebCore::HTMLMediaElement::loopStart):
3137         (WebCore::HTMLMediaElement::setLoopStart):
3138         (WebCore::HTMLMediaElement::loopEnd):
3139         (WebCore::HTMLMediaElement::setLoopEnd):
3140         (WebCore::HTMLMediaElement::currentLoop):
3141         (WebCore::HTMLMediaElement::setCurrentLoop):
3142         (WebCore::HTMLMediaElement::controls):
3143         (WebCore::HTMLMediaElement::setControls):
3144         (WebCore::HTMLMediaElement::volume):
3145         (WebCore::HTMLMediaElement::setVolume):
3146         (WebCore::HTMLMediaElement::muted):
3147         (WebCore::HTMLMediaElement::setMuted):
3148         (WebCore::HTMLMediaElement::pickMedia):
3149         (WebCore::HTMLMediaElement::checkIfSeekNeeded):
3150         (WebCore::HTMLMediaElement::movieVolumeChanged):
3151         (WebCore::HTMLMediaElement::movieDidEnd):
3152         (WebCore::HTMLMediaElement::movieCuePointReached):
3153         (WebCore::HTMLMediaElement::addCuePoint):
3154         (WebCore::HTMLMediaElement::removeCuePoint):
3155         (WebCore::HTMLMediaElement::buffered):
3156         (WebCore::HTMLMediaElement::played):
3157         (WebCore::HTMLMediaElement::seekable):
3158         (WebCore::HTMLMediaElement::effectiveStart):
3159         (WebCore::HTMLMediaElement::effectiveEnd):
3160         (WebCore::HTMLMediaElement::effectiveLoopStart):
3161         (WebCore::HTMLMediaElement::effectiveLoopEnd):
3162         (WebCore::HTMLMediaElement::activelyPlaying):
3163         (WebCore::HTMLMediaElement::endedPlayback):
3164         (WebCore::HTMLMediaElement::willSaveToCache):
3165         (WebCore::HTMLMediaElement::didRestoreFromCache):
3166         * html/HTMLMediaElement.h: Added.
3167         (WebCore::HTMLMediaElement::movie):
3168         (WebCore::HTMLMediaElement::isVideo):
3169         (WebCore::HTMLMediaElement::):
3170         (WebCore::HTMLMediaElement::CallbackEntry::CallbackEntry):
3171         * html/HTMLMediaElement.idl: Added.
3172         * html/HTMLSourceElement.cpp: Added.
3173         (WebCore::HTMLSourceElement::HTMLSourceElement):
3174         (WebCore::HTMLSourceElement::~HTMLSourceElement):
3175         (WebCore::HTMLSourceElement::insertedIntoDocument):
3176         (WebCore::HTMLSourceElement::src):
3177         (WebCore::HTMLSourceElement::setSrc):
3178         (WebCore::HTMLSourceElement::media):
3179         (WebCore::HTMLSourceElement::setMedia):
3180         (WebCore::HTMLSourceElement::type):
3181         (WebCore::HTMLSourceElement::setType):
3182         * html/HTMLSourceElement.h: Added.
3183         (WebCore::HTMLSourceElement::endTagRequirement):
3184         (WebCore::HTMLSourceElement::tagPriority):
3185         * html/HTMLSourceElement.idl: Added.
3186         * html/HTMLTagNames.in:
3187         * html/HTMLVideoElement.cpp: Added.
3188         (WebCore::HTMLVideoElement::HTMLVideoElement):
3189         (WebCore::HTMLVideoElement::videoWidth):
3190         (WebCore::HTMLVideoElement::videoHeight):
3191         * html/HTMLVideoElement.h: Added.
3192         (WebCore::HTMLVideoElement::tagPriority):
3193         (WebCore::HTMLVideoElement::isVideo):
3194         * html/HTMLVideoElement.idl: Added.
3195         * html/MediaError.h: Added.
3196         (WebCore::MediaError::):
3197         (WebCore::MediaError::MediaError):
3198         (WebCore::MediaError::code):
3199         * html/MediaError.idl: Added.
3200         * html/TimeRanges.cpp: Added.
3201         (TimeRanges::TimeRanges):
3202         (TimeRanges::start):
3203         (TimeRanges::end):
3204         (TimeRanges::add):
3205         (TimeRanges::contain):
3206         * html/TimeRanges.h: Added.
3207         (WebCore::TimeRanges::TimeRanges):
3208         (WebCore::TimeRanges::length):
3209         (WebCore::TimeRanges::Range::Range):
3210         * html/TimeRanges.idl: Added.
3211         * page/DOMWindow.idl:
3212         * platform/MIMETypeRegistry.cpp:
3213         (WebCore::initialiseSupportedMovieMIMETypes):
3214         (WebCore::initialiseMIMETypeRegistry):
3215         (WebCore::MIMETypeRegistry::isSupportedMovieMIMEType):
3216         (WebCore::MIMETypeRegistry::getSupportedMovieMIMETypes):
3217         * platform/MIMETypeRegistry.h:
3218         * platform/graphics/Movie.cpp: Added.
3219         (WebCore::Movie::Movie):
3220         (WebCore::Movie::~Movie):
3221         (WebCore::Movie::load):
3222         (WebCore::Movie::cancelLoad):
3223         (WebCore::Movie::play):
3224         (WebCore::Movie::pause):
3225         (WebCore::Movie::duration):
3226         (WebCore::Movie::currentTime):
3227         (WebCore::Movie::seek):
3228         (WebCore::Movie::paused):
3229         (WebCore::Movie::seeking):
3230         (WebCore::Movie::naturalSize):
3231         (WebCore::Movie::hasVideo):
3232         (WebCore::Movie::networkState):
3233         (WebCore::Movie::readyState):
3234         (WebCore::Movie::volume):
3235         (WebCore::Movie::setVolume):
3236         (WebCore::Movie::rate):
3237         (WebCore::Movie::setRate):
3238         (WebCore::Movie::muted):
3239         (WebCore::Movie::setMuted):
3240         (WebCore::Movie::dataRate):
3241         (WebCore::Movie::setEndTime):
3242         (WebCore::Movie::addCuePoint):
3243         (WebCore::Movie::removeCuePoint):
3244         (WebCore::Movie::clearCuePoints):
3245         (WebCore::Movie::maxTimeBuffered):
3246         (WebCore::Movie::maxTimeSeekable):
3247         (WebCore::Movie::bytesLoaded):
3248         (WebCore::Movie::totalBytesKnown):
3249         (WebCore::Movie::totalBytes):
3250         (WebCore::Movie::setRect):
3251         (WebCore::Movie::visible):
3252         (WebCore::Movie::setVisible):
3253         (WebCore::Movie::paint):
3254         (WebCore::Movie::getSupportedTypes):
3255         (WebCore::Movie::networkStateChanged):
3256         (WebCore::Movie::readyStateChanged):
3257         (WebCore::Movie::volumeChanged):
3258         (WebCore::Movie::didEnd):
3259         (WebCore::Movie::cuePointReached):
3260         * platform/graphics/Movie.h: Added.
3261         (WebCore::MovieClient::~MovieClient):
3262         (WebCore::MovieClient::movieNetworkStateChanged):
3263         (WebCore::MovieClient::movieReadyStateChanged):
3264         (WebCore::MovieClient::movieVolumeChanged):
3265         (WebCore::MovieClient::movieDidEnd):
3266         (WebCore::MovieClient::movieCuePointReached):
3267         (WebCore::Movie::parentWidget):
3268         (WebCore::Movie::setParentWidget):
3269         (WebCore::Movie::rect):
3270         (WebCore::Movie::):
3271         * platform/graphics/mac/MoviePrivateQTKit.h: Added.
3272         * platform/graphics/mac/MoviePrivateQTKit.mm: Added.
3273         (WebCore::MoviePrivate::MoviePrivate):
3274         (WebCore::MoviePrivate::~MoviePrivate):
3275         (WebCore::MoviePrivate::createQTMovie):
3276         (WebCore::MoviePrivate::createQTMovieView):
3277         (WebCore::MoviePrivate::createQTTime):
3278         (WebCore::MoviePrivate::load):
3279         (WebCore::MoviePrivate::play):
3280         (WebCore::MoviePrivate::pause):
3281         (WebCore::MoviePrivate::duration):
3282         (WebCore::MoviePrivate::currentTime):
3283         (WebCore::MoviePrivate::seek):
3284         (WebCore::MoviePrivate::setEndTime):
3285         (WebCore::MoviePrivate::addCuePoint):
3286         (WebCore::MoviePrivate::removeCuePoint):
3287         (WebCore::MoviePrivate::clearCuePoints):
3288         (WebCore::MoviePrivate::startCuePointTimerIfNeeded):
3289         (WebCore::MoviePrivate::cancelSeek):
3290         (WebCore::MoviePrivate::seekTimerFired):
3291         (WebCore::MoviePrivate::cuePointTimerFired):
3292         (WebCore::MoviePrivate::paused):
3293         (WebCore::MoviePrivate::seeking):
3294         (WebCore::MoviePrivate::naturalSize):
3295         (WebCore::MoviePrivate::hasVideo):
3296         (WebCore::MoviePrivate::setVolume):
3297         (WebCore::MoviePrivate::setMuted):
3298         (WebCore::MoviePrivate::setRate):
3299         (WebCore::MoviePrivate::dataRate):
3300         (WebCore::MoviePrivate::networkState):
3301         (WebCore::MoviePrivate::readyState):
3302         (WebCore::MoviePrivate::maxTimeBuffered):
3303         (WebCore::MoviePrivate::maxTimeSeekable):
3304         (WebCore::MoviePrivate::maxTimeLoaded):
3305         (WebCore::MoviePrivate::bytesLoaded):
3306         (WebCore::MoviePrivate::totalBytesKnown):
3307         (WebCore::MoviePrivate::totalBytes):
3308         (WebCore::MoviePrivate::cancelLoad):
3309         (WebCore::MoviePrivate::updateStates):
3310         (WebCore::MoviePrivate::loadStateChanged):
3311         (WebCore::MoviePrivate::rateChanged):
3312         (WebCore::MoviePrivate::sizeChanged):
3313         (WebCore::MoviePrivate::timeChanged):
3314         (WebCore::MoviePrivate::volumeChanged):
3315         (WebCore::MoviePrivate::didEnd):
3316         (WebCore::MoviePrivate::setRect):
3317         (WebCore::MoviePrivate::setVisible):
3318         (WebCore::MoviePrivate::paint):
3319         (WebCore::MoviePrivate::getSupportedTypes):
3320         (-[WebCoreMovieObserver loadStateChanged:]):
3321         (-[WebCoreMovieObserver rateChanged:]):
3322         (-[WebCoreMovieObserver sizeChanged:]):
3323         (-[WebCoreMovieObserver timeChanged:]):
3324         (-[WebCoreMovieObserver volumeChanged:]):
3325         (-[WebCoreMovieObserver didEnd:]):
3326         (-[WebCoreMovieObserver setCallback:WebCore::]):
3327         * platform/mac/WebCoreSystemInterface.h:
3328         * platform/mac/WebCoreSystemInterface.mm:
3329         * rendering/RenderLayer.cpp:
3330         (WebCore::RenderLayer::collectLayers):
3331         * rendering/RenderVideo.cpp: Added.
3332         (WebCore::RenderVideo::RenderVideo):
3333         (WebCore::RenderVideo::~RenderVideo):
3334         (WebCore::RenderVideo::movie):
3335         (WebCore::RenderVideo::videoSizeChanged):
3336         (WebCore::RenderVideo::paint):
3337         (WebCore::RenderVideo::layout):
3338         (WebCore::RenderVideo::updateFromElement):
3339         (WebCore::RenderVideo::updateMovie):
3340         (WebCore::RenderVideo::isWidthSpecified):
3341         (WebCore::RenderVideo::isHeightSpecified):
3342         (WebCore::RenderVideo::calcReplacedWidth):
3343         (WebCore::RenderVideo::calcReplacedHeight):
3344         (WebCore::RenderVideo::calcAspectRatioWidth):
3345         (WebCore::RenderVideo::calcAspectRatioHeight):
3346         (WebCore::RenderVideo::calcPrefWidths):
3347         * rendering/RenderVideo.h: Added.
3348         (WebCore::RenderVideo::renderName):
3349
3350 2007-10-30  Sam Weinig  <sam@webkit.org>
3351
3352         Reviewed by Adam Roben.
3353
3354         Add Interface and Class UUIDs to the IDLs in preparation of adding
3355         autogeneration of the COM DOM bindings.
3356
3357         * bindings/scripts/IDLParser.pm: Relax parsing rules to allow newlines as whitespace.
3358         * css/CSSCharsetRule.idl:
3359         * css/CSSFontFaceRule.idl:
3360         * css/CSSImportRule.idl:
3361         * css/CSSMediaRule.idl:
3362         * css/CSSPageRule.idl:
3363         * css/CSSPrimitiveValue.idl:
3364         * css/CSSRule.idl:
3365         * css/CSSRuleList.idl:
3366         * css/CSSStyleDeclaration.idl:
3367         * css/CSSStyleRule.idl:
3368         * css/CSSStyleSheet.idl:
3369         * css/CSSUnknownRule.idl:
3370         * css/CSSValue.idl:
3371         * css/CSSValueList.idl:
3372         * css/Counter.idl:
3373         * css/MediaList.idl:
3374         * css/RGBColor.idl:
3375         * css/Rect.idl:
3376         * css/StyleSheet.idl:
3377         * css/StyleSheetList.idl:
3378         * dom/Attr.idl:
3379         * dom/CDATASection.idl:
3380         * dom/CharacterData.idl:
3381         * dom/Comment.idl:
3382         * dom/DOMImplementation.idl:
3383         * dom/Document.idl:
3384         * dom/DocumentFragment.idl:
3385         * dom/DocumentType.idl:
3386         * dom/Element.idl:
3387         * dom/Entity.idl:
3388         * dom/EntityReference.idl:
3389         * dom/Event.idl:
3390         * dom/EventListener.idl:
3391         * dom/EventTarget.idl:
3392         * dom/NamedNodeMap.idl:
3393         * dom/Node.idl:
3394         * dom/NodeList.idl:
3395         * dom/Notation.idl:
3396         * dom/ProcessingInstruction.idl:
3397         * dom/Text.idl:
3398         * html/CanvasGradient.idl:
3399         * html/CanvasPattern.idl:
3400         * html/CanvasRenderingContext2D.idl:
3401         * html/HTMLAnchorElement.idl:
3402         * html/HTMLAppletElement.idl:
3403         * html/HTMLAreaElement.idl:
3404         * html/HTMLBRElement.idl:
3405         * html/HTMLBaseElement.idl:
3406         * html/HTMLBaseFontElement.idl:
3407         * html/HTMLBlockquoteElement.idl:
3408         * html/HTMLBodyElement.idl:
3409         * html/HTMLButtonElement.idl:
3410         * html/HTMLCanvasElement.idl:
3411         * html/HTMLCollection.idl:
3412         * html/HTMLDListElement.idl:
3413         * html/HTMLDirectoryElement.idl:
3414         * html/HTMLDivElement.idl:
3415         * html/HTMLDocument.idl:
3416         * html/HTMLElement.idl:
3417         * html/HTMLEmbedElement.idl:
3418         * html/HTMLFieldSetElement.idl:
3419         * html/HTMLFontElement.idl:
3420         * html/HTMLFormElement.idl:
3421         * html/HTMLFrameElement.idl:
3422         * html/HTMLFrameSetElement.idl:
3423         * html/HTMLHRElement.idl:
3424         * html/HTMLHeadElement.idl:
3425         * html/HTMLHeadingElement.idl:
3426         * html/HTMLHtmlElement.idl:
3427         * html/HTMLIFrameElement.idl:
3428         * html/HTMLImageElement.idl:
3429         * html/HTMLInputElement.idl:
3430         * html/HTMLIsIndexElement.idl:
3431         * html/HTMLLIElement.idl:
3432         * html/HTMLLabelElement.idl:
3433         * html/HTMLLegendElement.idl:
3434         * html/HTMLLinkElement.idl:
3435         * html/HTMLMapElement.idl:
3436         * html/HTMLMarqueeElement.idl:
3437         * html/HTMLMenuElement.idl:
3438         * html/HTMLMetaElement.idl:
3439         * html/HTMLModElement.idl:
3440         * html/HTMLOListElement.idl:
3441         * html/HTMLObjectElement.idl:
3442         * html/HTMLOptGroupElement.idl:
3443         * html/HTMLOptionElement.idl:
3444         * html/HTMLOptionsCollection.idl:
3445         * html/HTMLParagraphElement.idl:
3446         * html/HTMLParamElement.idl:
3447         * html/HTMLPreElement.idl:
3448         * html/HTMLQuoteElement.idl:
3449         * html/HTMLScriptElement.idl:
3450         * html/HTMLSelectElement.idl:
3451         * html/HTMLStyleElement.idl:
3452         * html/HTMLTableCaptionElement.idl:
3453         * html/HTMLTableCellElement.idl:
3454         * html/HTMLTableColElement.idl:
3455         * html/HTMLTableElement.idl:
3456         * html/HTMLTableRowElement.idl:
3457         * html/HTMLTableSectionElement.idl:
3458         * html/HTMLTextAreaElement.idl:
3459         * html/HTMLTitleElement.idl:
3460         * html/HTMLUListElement.idl:
3461
3462 2007-10-30  Adele Peterson  <adele@apple.com>
3463
3464         RS by Darin.
3465
3466         * page/AnimationController.cpp: (WebCore::blendFunc): Use lround instead of round.
3467
3468 2007-10-29  Timothy Hatcher  <timothy@apple.com>
3469
3470         Reviewed by John Sullivan.
3471
3472         - Allow showing and closing the inspector programatically.
3473         - Add showConsole() and showTimeline() methods. 
3474
3475         * WebCore.base.exp: Add exports for WebKit.
3476         * page/InspectorController.cpp:
3477         (WebCore::callSimpleFunction): Renamed from callClearFunction().
3478         (WebCore::unloading): Renamed to close().
3479         (WebCore::InspectorController::InspectorController):
3480         (WebCore::InspectorController::inspect): Moved showing code to show().
3481         (WebCore::InspectorController::setWindowVisible): Show the timeline or console if needed.
3482         (WebCore::InspectorController::show): Code factored out of inspect().
3483         (WebCore::InspectorController::showConsole): Call show() and the JS showConsole().
3484         (WebCore::InspectorController::showTimeline): Call show() and the JS showTimeline().
3485         (WebCore::InspectorController::close):
3486         (WebCore::InspectorController::clearScriptResources): Call the new callSimpleFunction.
3487         (WebCore::InspectorController::clearDatabaseScriptResources): Ditto.
3488         (WebCore::InspectorController::clearScriptConsoleMessages): Ditto.
3489         (WebCore::InspectorController::clearNetworkTimeline): Ditto.
3490         * page/InspectorController.h: Add and rename methods.
3491         * page/inspector/inspector.js: Add showConsole() and showTimeline().
3492
3493 2007-10-30  Adele Peterson  <adele@apple.com>
3494
3495         Reviewed by Sam.
3496
3497         Build fix.
3498
3499         * page/AnimationController.cpp: (WebCore::blendFunc):
3500
3501 2007-10-30  Adele Peterson  <adele@apple.com>
3502
3503         Reviewed by Darin.
3504
3505         WebCore part of fix for http://bugs.webkit.org/show_bug.cgi?id=10577
3506         <rdar://problem/5103625> REGRESSION: Caps lock icon should show in password fields
3507
3508         Test: manual-tests/password-caps-lock.html
3509
3510         * WebCore.base.exp: Added symbol for capsLockStateMayHaveChanged.
3511
3512         * page/Frame.cpp: (WebCore::Frame::setIsActive): Calls capsLockStateMayHaveChanged.
3513         * page/EventHandler.cpp: (WebCore::EventHandler::capsLockStateMayHaveChanged): Added. Tells the focused node's renderer that the capsLockStateMayHaveChanged.
3514         * page/EventHandler.h:
3515
3516         * platform/PlatformKeyboardEvent.h:
3517         * platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
3518         * platform/win/KeyEventWin.cpp: (WebCore::PlatformKeyboardEvent::currentCapsLockState): Added.
3519
3520         * rendering/RenderTextControl.cpp:
3521         (WebCore::RenderTextControl::RenderTextControl):
3522         (WebCore::RenderTextControl::paint): Added.  If m_shouldDrawCapsLockIndicator is true, paints the caps lock indicator after the background.
3523         (WebCore::RenderTextControl::forwardEvent): When the control gets and loses focus, update the caps lock state.
3524         (WebCore::RenderTextControl::capsLockStateMayHaveChanged): Added. Updates m_shouldDrawCapsLockIndicator, which is true if the field is a password field, 
3525          and the frame is active, and the element is focused, and the caps lock is on.  Causes a repaint when m_shouldDrawCapsLockIndicator changes state.
3526         * rendering/RenderTextControl.h: Added m_shouldDrawCapsLockIndicator.
3527         * rendering/RenderObject.h: (WebCore::RenderObject::capsLockStateMayHaveChanged): Added.
3528
3529         * rendering/RenderTheme.h: (WebCore::RenderTheme::paintCapsLockIndicator): Added.
3530         * rendering/RenderThemeMac.h:
3531         * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::paintCapsLockIndicator): Added.  Calls wkDrawCapsLockIndicator.
3532         * rendering/RenderThemeSafari.cpp: (WebCore::RenderThemeSafari::paintCapsLockIndicator): Added.  Calls paintThemePart for the CapsLockPart.
3533         * rendering/RenderThemeSafari.h:
3534
3535 2007-10-30  David Hyatt  <hyatt@apple.com>
3536
3537         Land support for implicit animation in CSS.
3538
3539         Reviewed by mitz, darin
3540
3541         * css/CSSParser.cpp:
3542         (WebCore::CSSParser::parseTimingFunctionValue):
3543         (WebCore::CSSParser::parseTransitionTimingFunction):
3544         (WebCore::CSSParser::parseTransitionProperty):
3545         * css/CSSStyleSelector.cpp:
3546         (WebCore::CSSStyleSelector::mapTransitionDuration):
3547         (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
3548         (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
3549         (WebCore::CSSStyleSelector::mapTransitionProperty):
3550         * css/CSSTimingFunctionValue.h:
3551         (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
3552         (WebCore::CSSTimingFunctionValue::x1):
3553         (WebCore::CSSTimingFunctionValue::y1):
3554         (WebCore::CSSTimingFunctionValue::x2):
3555         (WebCore::CSSTimingFunctionValue::y2):
3556         * dom/Element.cpp:
3557         (WebCore::Element::styleForRenderer):
3558         (WebCore::Element::createRenderer):
3559         * dom/Node.cpp:
3560         (WebCore::Node::createRendererIfNeeded):
3561         (WebCore::Node::setRenderStyle):
3562         * page/AnimationController.cpp:
3563         (WebCore::CurveData::CurveData):
3564         (WebCore::CurveData::sampleCurveX):
3565         (WebCore::CurveData::sampleCurveY):
3566         (WebCore::CurveData::sampleCurveDerivativeX):
3567         (WebCore::CurveData::solveCurveX):
3568         (WebCore::solveEpsilon):
3569         (WebCore::solveCubicBezierFunction):
3570         (WebCore::ImplicitAnimation::finished):
3571         (WebCore::CompositeImplicitAnimation::~CompositeImplicitAnimation):
3572         (WebCore::CompositeImplicitAnimation::hasAnimationForProperty):
3573         (WebCore::ImplicitAnimation::ImplicitAnimation):
3574         (WebCore::ImplicitAnimation::~ImplicitAnimation):
3575         (WebCore::ImplicitAnimation::reset):
3576         (WebCore::ImplicitAnimation::progress):
3577         (WebCore::blendFunc):
3578         (WebCore::ImplicitAnimation::animate):
3579         (WebCore::CompositeImplicitAnimation::animate):
3580         (WebCore::CompositeImplicitAnimation::animating):
3581         (WebCore::CompositeImplicitAnimation::reset):
3582         (WebCore::AnimationControllerPrivate::hasImplicitAnimations):
3583         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
3584         (WebCore::AnimationControllerPrivate::~AnimationControllerPrivate):
3585         (WebCore::AnimationControllerPrivate::get):
3586         (WebCore::AnimationControllerPrivate::clear):
3587         (WebCore::AnimationControllerPrivate::updateTimer):
3588         (WebCore::AnimationControllerPrivate::timerFired):
3589         (WebCore:::m_data):
3590         (WebCore::AnimationController::~AnimationController):
3591         (WebCore::AnimationController::cancelImplicitAnimations):
3592         (WebCore::AnimationController::updateImplicitAnimations):
3593         (WebCore::AnimationController::suspendAnimations):
3594         (WebCore::AnimationController::resumeAnimations):
3595         * page/AnimationController.h:
3596         * page/Frame.cpp:
3597         (WebCore::FramePrivate::FramePrivate):
3598         * rendering/RenderBox.cpp:
3599         (WebCore::RenderBox::setStyle):
3600         (WebCore::RenderBox::destroy):
3601         * rendering/RenderObject.cpp:
3602         (WebCore::RenderObject::setAnimatableStyle):
3603         (WebCore::RenderObject::destroy):
3604         * rendering/RenderObject.h:
3605         * rendering/RenderStyle.h:
3606         (WebCore::TimingFunction::TimingFunction):
3607 &nbs