1 2007-12-15 Mark Rowe <mrowe@apple.com>
3 Gtk build fix. Add JSEventTargetBase.cpp to SOURCES.
7 2007-12-15 Sam Weinig <sam@webkit.org>
13 2007-12-15 Nikolas Zimmermann <zimmermann@kde.org>
15 Not reviewed. Build fix for Qt/Gtk.
17 * WebCore.pro: Include JSEventTargetBase.lut.h in generation
19 2007-12-15 Nikolas Zimmermann <zimmermann@kde.org>
23 Fixes: http://bugs.webkit.org/show_bug.cgi?id=16445 (Refactor EventTargetNode & JSEventTargetNode for an upcoming SVG patch)
25 Split up JSEventTargetNode in JSEventTargetNode & JSEventTargetBase - where most functionality has been moved down
26 in the base class. Applied the same refactorization to EventTargetNode.
28 This makes it possible for the upcoming patch implementing the EventTarget interface for SVGElementInstance
29 to share as much code as possible with the EventTargetNode classes.
31 * DerivedSources.make:
32 * WebCore.xcodeproj/project.pbxproj:
33 * bindings/js/JSEventTargetBase.cpp: Added.
34 (WebCore::retrieveEventTargetAndCorrespondingNode):
35 (WebCore::eventNameForPropertyToken):
36 * bindings/js/JSEventTargetBase.h: Added.
37 (WebCore::JSEventTargetProperties::):
38 (WebCore::JSEventTargetPrototypeFunctionBase::JSEventTargetPrototypeFunctionBase):
39 (WebCore::JSEventTargetPrototypeFunction::JSEventTargetPrototypeFunction):
42 (WebCore::JSEventTargetBase::JSEventTargetBase):
43 (WebCore::JSEventTargetBase::getValueProperty):
44 (WebCore::JSEventTargetBase::putValueProperty):
45 (WebCore::JSEventTargetBase::getOwnPropertySlot):
46 (WebCore::JSEventTargetBase::put):
47 (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
48 (WebCore::JSEventTargetPrototype::self):
49 (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
50 (WebCore::JSEventTargetPrototype::classInfo):
51 * bindings/js/JSEventTargetNode.cpp:
52 (WebCore::JSEventTargetNode::getOwnPropertySlot):
53 (WebCore::JSEventTargetNode::getValueProperty):
54 (WebCore::JSEventTargetNode::put):
55 (WebCore::JSEventTargetNode::putValueProperty):
56 (WebCore::JSEventTargetNode::setListener):
57 (WebCore::toEventTargetNode):
58 * bindings/js/JSEventTargetNode.h:
59 (WebCore::JSEventTargetPrototypeInformation::prototypeClassName):
60 (WebCore::JSEventTargetPrototypeInformation::prototypeIdentifier):
61 * dom/EventTarget.cpp:
62 (WebCore::EventTarget::addEventListener):
63 (WebCore::EventTarget::removeEventListener):
64 (WebCore::EventTarget::dispatchGenericEvent):
65 (WebCore::EventTarget::removeAllEventListeners):
66 (WebCore::EventTarget::insertedIntoDocument):
67 (WebCore::EventTarget::removedFromDocument):
68 (WebCore::EventTarget::handleLocalEvents):
69 (WebCore::EventTarget::applySVGEventTargetRules):
70 (WebCore::forbidEventDispatch):
71 (WebCore::allowEventDispatch):
72 (WebCore::eventDispatchForbidden):
74 (WebCore::EventTarget::preDispatchEventHandler):
75 (WebCore::EventTarget::postDispatchEventHandler):
76 (WebCore::forbidEventDispatch):
77 (WebCore::allowEventDispatch):
78 * dom/EventTargetNode.cpp:
79 (WebCore::EventTargetNode::~EventTargetNode):
80 (WebCore::EventTargetNode::insertedIntoDocument):
81 (WebCore::EventTargetNode::removedFromDocument):
82 (WebCore::EventTargetNode::addEventListener):
83 (WebCore::EventTargetNode::removeEventListener):
84 (WebCore::EventTargetNode::removeAllEventListeners):
85 (WebCore::EventTargetNode::handleLocalEvents):
86 (WebCore::EventTargetNode::dispatchEvent):
87 (WebCore::EventTargetNode::dispatchWindowEvent):
88 * dom/EventTargetNode.h:
89 (WebCore::EventTargetNode::localEventListeners):
91 (WebCore::SVGElement::sendSVGLoadEventIfPossible):
92 (WebCore::SVGElement::dispatchEvent):
94 2007-12-15 Eric Seidel <eric@webkit.org>
98 Width of SVG elements not applied to container elements
99 http://bugs.webkit.org/show_bug.cgi?id=16305
100 Added calcPrefWidths for RenderSVGRoot (copied from RenderReplaced)
101 This is caused by poor factoring in the render tree. RenderContainer probably should be a template.
103 svg/css/css-box-min-width.html
105 * rendering/RenderSVGRoot.cpp:
106 (WebCore::RenderSVGRoot::calcPrefWidths): Added.
107 * rendering/RenderSVGRoot.h:
108 * css/SVGCSSStyleSelector::applySVGProperty: fixed ASSERT in debug builds
110 2007-12-15 David Kilzer <ddkilzer@apple.com>
112 Fix comment after isSafeScript() was renamed to allowsAccessFrom().
114 * bindings/js/kjs_window.cpp:
117 2007-12-15 Alp Toker <alp@atoker.com>
119 Reviewed by Mark Rowe.
121 http://bugs.webkit.org/show_bug.cgi?id=16449
122 cairo_arc() functions hang or crash when passed inf as radius or start/end angle
124 Add checks. This matches a similar workaround for a CG bug in the CG
125 graphics backend: <rdar://problem/5189233>
128 fast/canvas/arc-crash.html
129 fast/canvas/canvas-with-incorrect-args.html
131 * platform/graphics/cairo/PathCairo.cpp:
132 (WebCore::Path::addArc):
134 2007-12-15 Alexey Proskuryakov <ap@webkit.org>
138 http://bugs.webkit.org/show_bug.cgi?id=16078
139 Google Maps zooming via the scroll wheel (almost) always zooms IN only.
141 * dom/WheelEvent.cpp: (WebCore::WheelEvent::WheelEvent):
142 Ensure that delta is never rounded down to zero - we are getting values less than 1 from
143 many mice on OS X, and Google Maps code assumes scrolling up if event.wheelDelta is zero.
145 2007-12-14 Dan Bernstein <mitz@apple.com>
149 * WebCore.vcproj/WebCore.vcproj:
151 2007-12-14 Alp Toker <alp@atoker.com>
153 GTK+/Qt build fix. Track added files in r28722.
157 2007-12-14 Sam Weinig <sam@webkit.org>
161 Speed up getElementByClassName.
162 - This makes getElementByClassName 33% faster on the stress test
163 linked to at http://bugs.webkit.org/show_bug.cgi?id=15760.
165 * platform/text/StringImpl.cpp:
166 (WebCore::StringImpl::foldCase): Optimize the case when all the characters are ASCII.
168 2007-12-14 Alp Toker <alp@atoker.com>
172 http://bugs.webkit.org/show_bug.cgi?id=16432
173 [GTK] Update license headers
175 Consent has been given by the authors of these files to change license
176 to the LGPL as outlined in the bug report.
178 * platform/gtk/ClipboardGtk.cpp:
179 * platform/gtk/ContextMenuGtk.cpp:
180 * platform/gtk/ContextMenuItemGtk.cpp:
181 * platform/gtk/CookieJarGtk.cpp:
182 * platform/gtk/CursorGtk.cpp:
183 * platform/gtk/DragDataGtk.cpp:
184 * platform/gtk/DragImageGtk.cpp:
185 * platform/gtk/PasteboardGtk.cpp:
186 * platform/gtk/PlatformScreenGtk.cpp:
187 * platform/gtk/PlatformScrollBarGtk.cpp:
188 * platform/gtk/SearchPopupMenuGtk.cpp:
189 * platform/gtk/WidgetGtk.cpp:
191 2007-12-14 Darin Adler <darin@apple.com>
195 - fix http://bugs.webkit.org/show_bug.cgi?id=16442
196 navigation policy delegate gets called twice for each load
198 * loader/MainResourceLoader.cpp:
199 (WebCore::MainResourceLoader::willSendRequest): Removed call to checkNavigationPolicy.
200 That's handled by FrameLoader.
202 * loader/MainResourceLoader.h: Removed callContinueAfterNavigationPolicy
203 and continueAfterNavigationPolicy.
205 2007-12-14 Anders Carlsson <andersca@apple.com>
209 Make document.open count as committing a document load, so that -[WebFrame dataSource:] won't
210 return nil in that case.
212 * loader/FrameLoader.cpp:
213 (WebCore::FrameLoader::didExplicitOpen):
215 2007-12-14 David Smith <catfish.man@gmail.com>
219 - fix http://bugs.webkit.org/show_bug.cgi?id=14955
220 Implement getElementsByClassName.
222 This patch also renames AtomicStringList to ClassNames to better reflect its actual use,
223 and takes advantage of admitting that it's class-specific to encapsulate class attribute
224 parsing so it can be shared. It also changes the class to use a Vector, rather than a linked
225 list to store the class names.
227 Tests: fast/dom/getElementsByClassName/001.html
228 fast/dom/getElementsByClassName/002.html
229 fast/dom/getElementsByClassName/003.html
230 fast/dom/getElementsByClassName/004.html
231 fast/dom/getElementsByClassName/005.html
232 fast/dom/getElementsByClassName/006.html
233 fast/dom/getElementsByClassName/007.html
234 fast/dom/getElementsByClassName/008.html
235 fast/dom/getElementsByClassName/009.html
236 fast/dom/getElementsByClassName/010.xml
237 fast/dom/getElementsByClassName/011.xml
238 fast/dom/getElementsByClassName/012.html
239 fast/dom/getElementsByClassName/013.html
240 fast/dom/getElementsByClassName/014.html
241 fast/dom/getElementsByClassName/array/001.html
242 fast/dom/getElementsByClassName/array/002.html
243 fast/dom/getElementsByClassName/array/003.html
244 fast/dom/getElementsByClassName/array/004.html
245 fast/dom/getElementsByClassName/dumpNodeList.html
247 * WebCore.xcodeproj/project.pbxproj:
248 * css/CSSStyleSelector.cpp:
249 (WebCore::CSSStyleSelector::matchRules):
250 (WebCore::CSSStyleSelector::checkOneSelector):
251 * dom/AtomicStringList.h: Removed.
252 * dom/ClassNames.cpp: Added.
253 (WebCore::ClassNames::contains):
254 (WebCore::ClassNames::parseClassAttribute):
255 * dom/ClassNames.h: Copied from WebCore/dom/AtomicStringList.h.
256 (WebCore::ClassNames::ClassNames):
257 (WebCore::ClassNames::size):
258 (WebCore::ClassNames::clear):
259 (WebCore::ClassNames::operator[]):
260 (WebCore::isClassWhitespace):
261 * dom/ClassNodeList.cpp: Added.
262 (WebCore::ClassNodeList::ClassNodeList):
263 (WebCore::ClassNodeList::length):
264 (WebCore::ClassNodeList::item):
265 (WebCore::ClassNodeList::nodeMatches):
266 * dom/ClassNodeList.h: Added.
268 (WebCore::Document::getElementsByName):
269 (WebCore::Document::getElementsByClassName):
273 (WebCore::Element::getClassNames):
274 (WebCore::Element::getElementsByClassName):
277 * dom/NameNodeList.cpp:
278 (WebCore::NameNodeList::NameNodeList):
279 (WebCore::NameNodeList::item):
280 (WebCore::NameNodeList::nodeMatches):
281 * dom/NameNodeList.h:
282 * dom/NamedMappedAttrMap.cpp:
283 (WebCore::NamedMappedAttrMap::clearAttributes):
284 (WebCore::NamedMappedAttrMap::parseClassAttribute):
285 * dom/NamedMappedAttrMap.h:
286 (WebCore::NamedMappedAttrMap::getClassNames):
287 * dom/StyledElement.cpp:
288 (WebCore::StyledElement::getClassNames):
289 * dom/StyledElement.h:
291 2007-12-14 Darin Adler <darin@apple.com>
295 - fix http://bugs.webkit.org/show_bug.cgi?id=16351
296 FontFallbackList.h doesn't include wtf/PassRefPtr.h
298 * platform/graphics/FontFallbackList.h: Added include of <wtf/Forward.h>
299 * platform/graphics/GlyphPageTreeNode.h: Removed an unneeded include.
301 2007-12-14 Darin Adler <darin@apple.com>
305 - http://bugs.webkit.org/show_bug.cgi?id=16420
306 change regression tests to use document.execCommand instead of textInputController.doCommand
308 Add a few more operations to document.execCommand.
310 Finished up the transition to the new Editor::Command, including removing
311 the Editor::execCommand function.
313 * WebCore.base.exp: Added Editor::Command::isSupported.
314 * editing/Editor.h: Removed execCommand.
315 * editing/EditorCommand.cpp:
316 (WebCore::expandSelectionToGranularity): Added.
317 (WebCore::verticalScrollDistance): Added; replaces canScroll.
318 (WebCore::executeDeleteBackward): Added. Moved code here from WebHTMLView.
319 (WebCore::executeDeleteBackwardByDecomposingPreviousCharacter): Ditto.
320 (WebCore::executeDeleteForward): Ditto.
321 (WebCore::executeDeleteToBeginningOfLine): Ditto.
322 (WebCore::executeDeleteToBeginningOfParagraph): Ditto.
323 (WebCore::executeDeleteToEndOfLine): Ditto.
324 (WebCore::executeDeleteToEndOfParagraph): Ditto.
325 (WebCore::executeMovePageDown): Renamed this command to be consistent with all the other
326 Move commands. They all modify the caret. Reimplemented to match the Mac OS X version by
327 removing the explicit scrolling, and letting it be done automatically by code that makes
328 the caret visible. In some cases the old code would scroll twice which was harmless but
330 (WebCore::executeMovePageDownAndModifySelection): Added. Moved code here from WebHTMLView.
331 (WebCore::executeMovePageUp): See MovePageDown above.
332 (WebCore::executeMovePageUpAndModifySelection): Added. Moved code here from WebHTMLView.
333 (WebCore::executeSelectLine): Ditto.
334 (WebCore::executeSelectParagraph): Ditto.
335 (WebCore::executeSelectSentence): Ditto.
336 (WebCore::executeSelectWord): Ditto.
337 (WebCore::executeSwapWithMark): Some small tweaks.
339 * page/ContextMenuController.cpp:
340 (WebCore::ContextMenuController::contextMenuItemSelected): Changed to use Editor::command()
341 instead of Editor::execCommand(). This code could be changed to use Editor::Command quite a
342 bit more, but I didn't do that this time.
344 - Removed some obsolete unused code.
346 * page/mac/EventHandlerMac.mm:
347 (WebCore::EventHandler::passMouseDownEventToWidget): Removed the special case code for
348 NSTextView. This was left over from when we used NSTextField and NSTextView for form
349 elements and is no longer used at all.
351 * page/mac/WebCoreFrameBridge.h: Removed 20 unused methods that were still on one side
352 of the bridge or another. We really need to find a time to tear down the rest of the
353 bridge, but that's not this patch.
355 * page/mac/WebCoreFrameBridge.mm:
356 (-[WebCoreFrameBridge addData:]): Changed to get at the _shouldCreateRenderers field directly
357 instead of using a method.
358 (-[WebCoreFrameBridge rangeByAlteringCurrentSelection:SelectionController::direction:SelectionController::granularity:]):
359 Took out obsolete comment about matching enums (we use a single enum now and have for some
361 (-[WebCoreFrameBridge selectionGranularity]): Ditto.
363 2007-12-14 Justin Garcia <justin.garcia@apple.com>
365 Reviewed by Darin Adler.
367 <rdar://problem/5575101> GoogleDocs: Hang in SplitElementCommand::doApply when outdenting a list item in a particular list
369 * editing/CompositeEditCommand.cpp:
370 (WebCore::CompositeEditCommand::splitTreeToNode): Moved here.
371 * editing/CompositeEditCommand.h:
372 * editing/IndentOutdentCommand.cpp: Moved splitTreeToNode.
373 * editing/IndentOutdentCommand.h: Ditto, and removed unimplemented splitTreeTo.
374 * editing/InsertListCommand.cpp:
375 (WebCore::InsertListCommand::doApply): Split ancestors of listChildNode between
376 it and listNode, if they exists, so that moving listChildNode doesn't put it out
377 of order. Added a test case to cover each change.
378 * editing/SplitElementCommand.cpp:
379 (WebCore::SplitElementCommand::doApply): Added an ASSERT to catch code that
380 tries to split a container at a bogus child, and an early return to avoid a
383 2007-12-14 Anders Carlsson <andersca@apple.com>
385 Reviewed by Darin and Geoff.
387 <rdar://problem/5619295>
388 REGRESSION: 303-304: Embedded YouTube video fails to render- JS errors (16150) (Flash 9)
390 _NPN_CreateScriptObject doesn't take an origin root object anymore.
392 * html/HTMLPlugInElement.cpp:
393 (WebCore::HTMLPlugInElement::createNPObject):
395 (WebCore::Frame::windowScriptNPObject):
397 2007-12-14 Dan Bernstein <mitz@apple.com>
399 Reviewed by Darin Adler.
401 - fix <rdar://problem/5643663> text-shadow and box-shadow offsets 1px smaller than specified
402 which is the root cause of:
403 http://bugs.webkit.org/show_bug.cgi?id=12943
404 box-shadow: small values don't affect shadow position
405 http://bugs.webkit.org/show_bug.cgi?id=14736
406 Safari implementation of text-shadow off by 1px
408 * platform/graphics/cg/GraphicsContextCG.cpp:
409 (WebCore::GraphicsContext::setShadow): Slightly increase the magnitude
410 of the offsets passed to CGContextSetShadow* to ensure that the end
411 result after truncation is the desired integer offsets.
413 2007-12-13 Alp Toker <alp@atoker.com>
415 curl backend build fix for breakage introduced in r28709.
417 * platform/network/ResourceHandleInternal.h:
418 (WebCore::ResourceHandleInternal::ResourceHandleInternal):
420 2007-12-13 Justin Garcia <justin.garcia@apple.com>
422 Reviewed by Oliver Hunt.
424 <rdar://problem/5607069> In Mail, a crash occurs at WebCore::AppendNodeCommand() after dragging image into a <FORM> element
426 * editing/InsertLineBreakCommand.cpp:
427 (WebCore::InsertLineBreakCommand::shouldUseBreakElement): Equip this function to
428 handle editing positions, like [input, 0];
429 * editing/InsertParagraphSeparatorCommand.cpp:
430 (WebCore::InsertParagraphSeparatorCommand::doApply): Pass enclosingBlock a node peeled
431 off of a non-editing position, to fix a bug where the enclosing block of [input, 0] was
432 the input element itself.
433 Insert a <br> when a <form> element is the enclosing block instead of splitting/cloning or
436 2007-12-13 Alp Toker <alp@atoker.com>
438 Reviewed by Oliver Hunt.
440 http://bugs.webkit.org/show_bug.cgi?id=16365
441 [cURL] Acid2 test segmentation fault
443 This patch makes the Acid2 test pass.
445 Defer the cleanup of cancelled jobs and halt further transfer as early
448 Bug found by and initial patch provided by Luca Bruno.
450 * platform/network/curl/ResourceHandleManager.cpp:
451 (WebCore::writeCallback):
452 (WebCore::headerCallback):
453 (WebCore::ResourceHandleManager::downloadTimerCallback):
454 (WebCore::ResourceHandleManager::cancel):
456 2007-12-13 Sam Weinig <sam@webkit.org>
458 Reviewed by Mark Rowe.
460 Fix typos and rename InspectorController::moveByUnrestricted to InspectorController::moveWindowBy.
462 * page/InspectorController.cpp:
463 (WebCore::moveByUnrestricted):
464 (WebCore::InspectorController::windowScriptObjectAvailable):
465 (WebCore::InspectorController::moveWindowBy):
466 * page/InspectorController.h:
467 * page/inspector/inspector.js:
469 2007-12-13 Dan Bernstein <mitz@apple.com>
471 Reviewed by Dave Hyatt.
473 - fix <rdar://problem/5642426> explicit cubic-bezier curves all treated as "default" for transition-timing-function
475 Test: fast/css/transition-timing-function.html
477 * css/CSSStyleSelector.cpp: Changed the HANDLE_MULTILAYER_VALUE macro to
478 not reject non-primitive non-list values, and instead made sure that the
479 mapping functions rejected them if necessary. This allows non-primitive
480 timing functions to be mapped.
481 (WebCore::CSSStyleSelector::mapBackgroundAttachment):
482 (WebCore::CSSStyleSelector::mapBackgroundClip):
483 (WebCore::CSSStyleSelector::mapBackgroundComposite):
484 (WebCore::CSSStyleSelector::mapBackgroundOrigin):
485 (WebCore::CSSStyleSelector::mapBackgroundImage):
486 (WebCore::CSSStyleSelector::mapBackgroundRepeat):
487 (WebCore::CSSStyleSelector::mapBackgroundXPosition):
488 (WebCore::CSSStyleSelector::mapBackgroundYPosition):
489 (WebCore::CSSStyleSelector::mapTransitionDuration):
490 (WebCore::CSSStyleSelector::mapTransitionRepeatCount):
491 (WebCore::CSSStyleSelector::mapTransitionTimingFunction):
492 (WebCore::CSSStyleSelector::mapTransitionProperty):
493 * css/CSSTimingFunctionValue.cpp:
494 (WebCore::CSSTimingFunctionValue::cssText): Implemented for use in the
496 * css/CSSTimingFunctionValue.h:
497 (WebCore::CSSTimingFunctionValue::isTransitionTimingFunctionValue):
500 (WebCore::CSSValue::isTransitionTimingFunctionValue): Added. Returns
503 2007-12-13 Steve Falkenburg <sfalken@apple.com>
505 Move source file generation into its own vcproj to fix build dependencies.
509 * WebCore.vcproj/WebCore.make:
510 * WebCore.vcproj/WebCore.sln:
511 * WebCore.vcproj/WebCore.submit.sln:
512 * WebCore.vcproj/WebCore.vcproj:
513 * WebCore.vcproj/WebCoreGenerated.vcproj: Added.
515 2007-12-13 Justin Garcia <justin.garcia@apple.com>
517 Reviewed by Oliver Hunt.
519 <rdar://problem/4145786> Undoing a color change of text in a compose window always changes it back to black
521 Some of the operations performed in removeHTMLFontStyle were non-undoable.
523 I'm having trouble writing a layout test for this because I can't get DRT to
524 perform editing operations in separate Undo steps without adding unacceptably long
525 wait times between operations. I filed:
527 <rdar://problem/5646779> Can't get DRT to perform editing operations in separate Undo steps
529 * editing/ApplyStyleCommand.cpp:
530 (WebCore::ApplyStyleCommand::removeHTMLFontStyle):
532 2007-12-13 Sam Weinig <sam@webkit.org>
536 Fix for http://bugs.webkit.org/show_bug.cgi?id=16352
537 Toolbar dragged inspector cannot be moved beyond screen edges
539 * page/InspectorController.cpp:
540 (WebCore::moveByUnrestricted):
541 (WebCore::InspectorController::windowScriptObjectAvailable):
542 (WebCore::InspectorController::moveByUnrestricted):
543 * page/InspectorController.h:
544 * page/inspector/inspector.js:
546 2007-12-13 Adam Roben <aroben@apple.com>
548 Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked
550 Windows Media Player has a modal message loop that will deliver
551 messages to us at inappropriate times and we will crash if we handle
552 them when they are delivered. In PluginViewWin, we add a quirk for
553 Media Player to set a flag whenever we give the plugin a chance to
554 execute code, and in SharedTimerWin we check if the plugin is
555 executing code and repost messages if so.
559 * platform/win/SharedTimerWin.cpp:
560 (WebCore::TimerWindowWndProc): Repost messages if we're calling a
562 * plugins/win/PluginViewWin.cpp: Surround all calls to the plugin with
563 setCallingPlugin(true/false).
564 (WebCore::PluginViewWin::updateWindow):
565 (WebCore::PluginViewWin::dispatchNPEvent):
566 (WebCore::PluginViewWin::setNPWindowRect):
567 (WebCore::PluginViewWin::start):
568 (WebCore::PluginViewWin::stop):
569 (WebCore::PluginViewWin::performRequest):
570 (WebCore::PluginViewWin::bindingInstance):
571 (WebCore::PluginViewWin::determineQuirks):
572 (WebCore::PluginViewWin::setCallingPlugin): Added.
573 (WebCore::PluginViewWin::isCallingPlugin): Added.
574 * plugins/win/PluginViewWin.h: Added a new quirk.
576 2007-12-13 Alp Toker <alp@atoker.com>
578 Add a missing DEPENDPATH. Fixes non-clean builds following networking
583 2007-12-13 Dan Bernstein <mitz@apple.com>
585 Reviewed by Anders Carlsson.
587 - fix regression in fast/text/international/bidi-override on Tiger
589 * platform/graphics/GlyphPageTreeNode.cpp:
590 (WebCore::GlyphPageTreeNode::initializePage): Add bidi overrides here
591 too. I forgot to add them when I added them to treatAsZeroWidthSpace in
594 2007-12-13 Justin Garcia <justin.garcia@apple.com>
596 Reviewed by Darin Adler.
598 <rdar://problem/5601583> GMail Editor: Copied link doesn't paste as a link, just colored text
600 The code that checks the selected Range to see if it's inside an anchor
601 checks ancestors of the Range's commonAncestor() but not the
602 commonAncestor() itself, and so we'd fail to add markup for the enclosing
603 anchor to the pasteboard.
605 Some enclosing element getters check the node passed to the getter and some
606 don't. There were a few places where we incorrectly assumed that enclosing
607 element getters check the node passed to the getter, but this is the only
608 case that I'm able to write a test case for at the moment.
611 Changed enclosingNodeWithType and enclosingNodeWithTag to take in positions,
612 like the newer enclosing element getters. This is important because we must
613 soon add code to the getters so that they understand that some editing positions
614 inside nodes don't actually refer to positions inside those nodes but positions
615 before and after them. Like [table, 0].
616 Changed enclosingNodeWithType and enclosingNodeWithTag to check nodes starting with
617 n where [n, o] is the position passed to the getter, instead of starting the the parent
618 of n. This makes all but a few of the enclosing element getters behave consistently.
619 Changed enclosingNodeWithType and enclosingNodeWithTag to not return non-editable
620 nodes if the input position was editable. This fixes a bug that that the above change
622 Changed enclosingTableCell to simply call enclosingNodeWithType. We should do
623 this for the rest of the getters, or simply remove them in favor of enclosingNodeWithType
624 unless doing so would affect readability, like it would in the case of enclosingTableCell.
625 Ditto for enclosingBlock.
627 * editing/AppendNodeCommand.cpp:
628 (WebCore::AppendNodeCommand::doApply):
629 * editing/DeleteButtonController.cpp:
630 (WebCore::enclosingDeletableElement):
631 * editing/DeleteSelectionCommand.cpp:
632 (WebCore::DeleteSelectionCommand::initializePositionData):
633 (WebCore::DeleteSelectionCommand::saveFullySelectedAnchor):
634 * editing/Editor.cpp:
635 (WebCore::Editor::selectionUnorderedListState):
636 (WebCore::Editor::selectionOrderedListState):
637 * editing/IndentOutdentCommand.cpp:
638 (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
639 (WebCore::IndentOutdentCommand::outdentParagraph):
640 * editing/InsertNodeBeforeCommand.cpp:
641 (WebCore::InsertNodeBeforeCommand::doApply):
642 * editing/InsertParagraphSeparatorCommand.cpp:
643 (WebCore::InsertParagraphSeparatorCommand::doApply):
644 * editing/ReplaceSelectionCommand.cpp:
645 (WebCore::ReplaceSelectionCommand::shouldMerge):
646 (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
647 (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
648 * editing/TextIterator.cpp:
649 * editing/htmlediting.cpp:
650 (WebCore::enclosingBlock):
651 (WebCore::enclosingNodeWithTag):
652 (WebCore::enclosingNodeOfType):
653 (WebCore::enclosingTableCell):
654 (WebCore::isTableCell):
655 * editing/htmlediting.h:
656 * editing/markup.cpp:
657 (WebCore::appendStartMarkup):
658 (WebCore::createMarkup):
660 2007-12-13 Alexey Proskuryakov <ap@webkit.org>
664 Turn on keyboard event processing quirks for feed views and old applications on Mac OS X.
667 * dom/KeyboardEvent.cpp:
668 (WebCore::KeyboardEvent::charCode):
669 * page/EventHandler.cpp:
670 (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
671 (WebCore::EventHandler::keyEvent):
672 * page/EventHandler.h:
674 (WebCore::Settings::Settings):
675 (WebCore::Settings::setNeedsKeyboardEventDisambiguationQuirks):
677 (WebCore::Settings::needsKeyboardEventDisambiguationQuirks):
678 * page/mac/EventHandlerMac.mm:
679 (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
680 * platform/PlatformKeyboardEvent.h:
681 * platform/mac/KeyEventMac.mm:
682 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
683 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
685 2007-12-13 Dan Bernstein <mitz@apple.com>
689 * platform/network/cf/ResourceErrorCF.cpp:
691 2007-12-13 Antti Koivisto <antti@apple.com>
693 Reviewed by Tim Hatcher.
695 Fix <rdar://problem/5605674>
696 Make <video> display WebKit context menu instead of the QTKit one.
698 It doesn't really matter where the QTMovieView is.
701 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
702 (WebCore::MediaPlayerPrivate::createQTMovieView):
703 (WebCore::MediaPlayerPrivate::setRect):
705 2007-12-13 Dan Bernstein <mitz@apple.com>
707 Reviewed by Adam Roben.
709 - ensure that Unicode bidi control characters are rendered as zero width
712 Test: fast/text/international/bidi-control-chars-treated-as-ZWS.html
714 * platform/graphics/Font.h:
715 (WebCore::Font::treatAsZeroWidthSpace):
716 * platform/graphics/GlyphPageTreeNode.cpp:
717 (WebCore::GlyphPageTreeNode::initializePage):
718 * platform/text/CharacterNames.h:
720 2007-12-13 Brady Eidson <beidson@apple.com>
724 * platform/wx/TemporaryLinkStubs.cpp:
726 2007-12-12 Brady Eidson <beidson@apple.com>
730 * platform/gtk/TemporaryLinkStubs.cpp:
732 2007-12-12 Brady Eidson <beidson@apple.com>
737 * history/qt/CachedPageQt.cpp: Removed. Whole purpose for this method being platform-specific has been removed
739 2007-12-12 Brady Eidson <beidson@apple.com>
743 * platform/win/TemporaryLinkStubs.cpp:
745 2007-12-12 Brady Eidson <beidson@apple.com>
747 Reviewed by Sam Weinig
749 Fix for <rdar://problem/4886844> and lay groundwork for <rdar://problem/4516170> (Back/Forward Cache on Windows)
751 All back/forward list and page cache related items used to be in WebKit.
752 When they were pushed into WebCore, some sloppy compromises were made to keep the Back/Forward cache working on Mac.
753 Namely, a WebCore::HistoryItem had to know how to keep a WebDocumentView alive. We accomplished this via some #ifdefs
754 in CachedPage and having the Mac-only CachedPageMac.mm
756 To get rid of that nastiness and pave the way for adding Back/Forward cache on other platforms, this patch adds the
757 concept of "CachedPagePlatformData" which can contain anything the platform API wants.
759 I also took the opportunity to do other cleanup and renaming client methods to better fit their new purposes.
762 * WebCore.xcodeproj/project.pbxproj:
764 * history/CachedPage.cpp:
765 (WebCore::CachedPage::~CachedPage): Combined "close()" and "clear()" to just "clear()" - call it from here.
766 (WebCore::CachedPage::clear): Call clear() on the CachedPagePlatformData if it exists. Also delete the CachedPagePlatformData.
767 (WebCore::CachedPage::setCachedPagePlatformData):
768 (WebCore::CachedPage::cachedPagePlatformData):
769 * history/CachedPage.h:
771 * history/CachedPagePlatformData.h: Added.
772 (WebCore::CachedPagePlatformData::~CachedPagePlatformData): Virtual d'tor.
773 (WebCore::CachedPagePlatformData::clear): Virtual method for platforms that need to do cleanup at the same time as CachedPage::clear().
775 * history/PageCache.cpp:
776 (WebCore::PageCache::releaseAutoreleasedPagesNow): Call "clear()" instead of "close()"
778 * history/mac/CachedPageMac.mm: Removed. Functionality replaced with CachedPagePlatformData.
780 * loader/FrameLoader.cpp:
781 (WebCore::FrameLoader::transitionToCommitted): Call the new client methods. Make some work previously done by WebKitMac cross platform
782 (setting the cached DocumentLoader to the Frame).
783 (WebCore::FrameLoader::cachePageForHistoryItem): Renamed the client methods
785 * loader/FrameLoaderClient.h: The very Mac-centric "makeDocumentView", "setDocumentViewFromCachedPage", and "saveDocumentViewToCachedPage"
786 become "transitionToCommittedForNewPage", "transitionToCommittedFromCachedPage", and "savePlatformDataToCachedPage" accordingly
788 * svg/graphics/SVGImageEmptyClients.h:
789 (WebCore::SVGEmptyFrameLoaderClient::savePlatformDataToCachedPage):
790 (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedFromCachedPage):
791 (WebCore::SVGEmptyFrameLoaderClient::transitionToCommittedForNewPage):
793 2007-12-12 Dan Bernstein <mitz@apple.com>
795 Reviewed by Oliver Hunt.
797 - fix <rdar://problem/5074620> text with font:initial; fails to appear (causes fast/text/font-initial.html to fail)
799 * css/CSSStyleSelector.cpp:
800 (WebCore::CSSStyleSelector::applyProperty): When the font property is
801 set to 'initial', set the font size to its initial value, 'medium',
802 and the font family to the standard family.
804 2007-12-12 Justin Garcia <justin.garcia@apple.com>
806 Reviewed by Darin Adler.
808 <rdar://problem/5433862> Mail crashes at WebCore::highestAncestor() when deleting a particular selection
810 * editing/DeleteSelectionCommand.cpp:
811 (WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
812 Don't remove the table row that contained the end of the selection if it is where we are
813 about to place the ending selection.
814 Don't remove all empty rows after the row that contained the start of the selection,
815 they might come after the row that contained the end of the selection.
817 2007-12-12 Sam Weinig <sam@webkit.org>
819 Reviewed by Anders Carlsson.
821 Add button to clear the Web Inspector's console.
823 * English.lproj/InspectorLocalizedStrings.js:
824 * page/inspector/ConsolePanel.js:
825 * page/inspector/inspector.css:
827 2007-12-12 Anders Carlsson <andersca@apple.com>
829 Reviewed by Adam and Jon.
831 <rdar://problem/5349282>
832 popup blocking is not applied to plugins on Windows.
834 Implement popup blocking. If the plug-in supports the new
835 NPN_PushPopupsEnabledState/NPN_PopPopupsEnabledState API we just use that
836 to determine if a plug-in request can open new windows.
838 If a plug-in does not support the new API, we assume that a plug-in can open new windows
839 in response to either mouse click or key press events.
841 * plugins/win/PluginViewWin.cpp:
842 (WebCore::PluginRequestWin::PluginRequestWin):
843 (WebCore::PluginRequestWin::shouldAllowPopups):
844 Add new shouldAllowPopups member.
846 (WebCore::PluginViewWin::popPopupsStateTimerFired):
847 Reset the popup state.
849 (WebCore::isWindowsMessageUserGesture):
850 New function that given a windows message id returns whether it's a user gesture or not.
852 (WebCore::PluginViewWin::wndProc):
853 Allow popups if the window message is a user gesture.
855 (WebCore::PluginViewWin::dispatchNPEvent):
856 New method that dispatches an NPEvent, turning on popups if necessary.
858 (WebCore::PluginViewWin::paint):
859 (WebCore::PluginViewWin::handleKeyboardEvent):
860 (WebCore::PluginViewWin::handleMouseEvent):
861 Call dispatchNPEvent().
863 (WebCore::PluginViewWin::performRequest):
864 (WebCore::PluginViewWin::load):
865 Add calls to shouldAllowPopups().
867 (WebCore::PluginViewWin::pushPopupsEnabledState):
868 (WebCore::PluginViewWin::popPopupsEnabledState):
869 New methods that maintain the popup state stack.
871 (WebCore::PluginViewWin::arePopupsAllowed):
872 New method that returns whether popups are allowed.
874 (WebCore::PluginViewWin::PluginViewWin):
875 * plugins/win/PluginViewWin.h:
876 Add new instance variables.
878 * plugins/win/npapi.cpp:
879 (NPN_PushPopupsEnabledState):
880 (NPN_PopPopupsEnabledState):
883 2007-12-12 Dan Bernstein <mitz@apple.com>
885 Reviewed by John Sullivan.
887 - fix a bug in debug builds only where selecting an earlier item in
888 a popup selects the first item
890 Test: fast/forms/menulist-selection-reset.html
892 * html/HTMLSelectElement.cpp:
893 (WebCore::HTMLSelectElement::recalcListItems): Added an argument that
894 tells that function whether it should update the selected state of
896 (WebCore::HTMLSelectElement::checkListItems): Changed to pass false
897 as the above argument.
898 * html/HTMLSelectElement.h:
900 2007-12-12 Adele Peterson <adele@apple.com>
904 Fix for <rdar://problem/5643054> Remove cue point implementation for media elements
906 When the specification for cue ranges is more final, we will implement those.
908 * html/HTMLMediaElement.cpp:
909 (WebCore::HTMLMediaElement::~HTMLMediaElement):
910 (WebCore::HTMLMediaElement::load):
911 * html/HTMLMediaElement.h:
912 * html/HTMLMediaElement.idl:
913 * platform/graphics/MediaPlayer.cpp:
914 * platform/graphics/MediaPlayer.h:
915 (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
916 * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
917 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
918 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
919 (WebCore::MediaPlayerPrivate::load):
920 (WebCore::MediaPlayerPrivate::play):
921 (WebCore::MediaPlayerPrivate::pause):
922 (WebCore::MediaPlayerPrivate::setEndTime):
923 (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
924 (WebCore::MediaPlayerPrivate::endPointTimerFired):
925 (WebCore::MediaPlayerPrivate::timeChanged):
926 (WebCore::MediaPlayerPrivate::didEnd):
927 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
928 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
929 (WebCore::MediaPlayerPrivate::startEndPointTimerIfNeeded):
930 (WebCore::MediaPlayerPrivate::endPointTimerFired):
931 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
933 2007-12-12 MorganL <morganl.webkit@yahoo.com>
938 http://bugs.webkit.org/show_bug.cgi?id=16408
940 When navigating back/forward to a http:// link, we should prefer to
941 load from cache if possible.
943 * loader/FrameLoader.cpp:
945 2007-12-12 Anders Carlsson <andersca@apple.com>
949 <rdar://problem/5132003>
950 dumpResourceLoadCallbacks is not implemented in DRT on Windows.
952 * platform/network/cf/ResourceErrorCF.cpp:
953 (WebCore::ResourceError::unpackPlatformError):
954 Handle kCFErrorDomainWinSock.
956 * platform/network/cf/ResourceHandleCFNet.cpp:
957 (WebCore::willSendRequest):
958 Ignore willSendRequest calls where the redirect response is null, like we do in
961 2007-12-12 Steve Falkenburg <sfalken@apple.com>
963 <rdar://problem/5643785> Fix iBench regression caused by mis-placed nested timer check.
967 * platform/win/SharedTimerWin.cpp:
968 (WebCore::TimerWindowWndProc): Don't set high-resolution timer flag inside non-high-resolution timer proc.
970 2007-12-12 Beth Dakin <bdakin@apple.com>
974 Fix for <rdar://problem/5643770> REGRESSION: Free-standing SVGs
975 with width and height 100% clip to 300 x 150
977 Though it was correct in an earlier iteration of my patch, it is
978 not sufficient in the final, committed version to ask if the
979 relativeWidthValue() or relativeHeightValue() is greater than 0
980 just to determine if one has been set, for, they are now
981 initialized to 300 and 150 respectively! This patch instead adds a
982 bool to keep track of whether a container size has been set, and
983 only used the relative value if it has.
985 * rendering/RenderSVGRoot.cpp:
986 (WebCore::RenderSVGRoot::calcViewport):
987 * svg/SVGSVGElement.cpp:
988 (WebCore::SVGSVGElement::SVGSVGElement):
989 * svg/SVGSVGElement.h:
990 (WebCore::SVGSVGElement::setContainerSize):
991 (WebCore::SVGSVGElement::hasSetContainerSize):
993 2007-12-12 Brady Eidson <beidson@apple.com>
995 Reviewed by Steve Falkenburg
997 <rdar://problem/5012636> - WebURLProtectionSpace::realm returns the hostname rather than the authentication realm
999 * platform/network/ProtectionSpace.cpp:
1000 (WebCore::ProtectionSpace::ProtectionSpace): Assign the realm to m_realm, instead of the host
1002 2007-12-12 Alp Toker <alp@atoker.com>
1006 http://bugs.webkit.org/show_bug.cgi?id=16388
1007 [GTK] Widget::setCursor() gets called frequently
1009 Cache the current cursor to avoid calling gdk_window_set_cursor() when
1010 there's no change in cursor.
1012 * platform/gtk/WidgetGtk.cpp:
1013 (WebCore::Widget::Widget):
1014 (WebCore::Widget::cursor):
1015 (WebCore::Widget::setCursor):
1017 2007-12-12 Rodney Dawes <dobey@wayofthemonkey.com>
1021 http://bugs.webkit.org/show_bug.cgi?id=16342
1022 Build Warning and Error fixes in WebCore GTK+
1024 Use C-style casts for casting function pointers to gpointer
1025 Use static_cast<int> to cast a float to int to fix a warning
1027 * platform/gtk/PlatformScrollBarGtk.cpp:
1028 (PlatformScrollbar::PlatformScrollbar):
1029 (PlatformScrollbar::~PlatformScrollbar):
1030 (PlatformScrollbar::gtkValueChanged):
1031 * platform/gtk/ThreadingGtk.cpp:
1032 (callFunctionOnMainThread):
1035 2007-12-12 Dan Bernstein <mitz@apple.com>
1037 Reviewed by Darin Adler.
1039 - better fix for a crash when pressing a key that is not associated
1042 * editing/EditorCommand.cpp:
1043 (WebCore::Editor::command): Return the empty command if the command name
1046 2007-12-12 Alexey Proskuryakov <ap@webkit.org>
1050 http://bugs.webkit.org/show_bug.cgi?id=16410
1051 Implement isKeypadEvent() on Windows
1053 Test: platform/win/fast/events/keyLocation-numpad.html
1055 * platform/win/KeyEventWin.cpp:
1056 (WebCore::isKeypadEvent): Added.
1057 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Also fixed a mistake with autorepeat.
1059 2007-12-12 Oliver Hunt <oliver@apple.com>
1063 <rdar://problem/5071781> window.mouseout events are not sent
1064 to window when mouse moves out of window
1066 Make PlatformMouseEvent recognise WM_MOUSELEAVE.
1068 * platform/win/PlatformMouseEventWin.cpp:
1069 (WebCore::messageToEventType):
1070 (WebCore::PlatformMouseEvent::PlatformMouseEvent):
1072 2007-12-12 Sam Weinig <sam@webkit.org>
1074 Fix Mac release build.
1078 2007-12-12 Sam Weinig <sam@webkit.org>
1080 Build fix for Qt, Gtk, and Wx.
1082 * css/CSSParser.cpp:
1083 (WebCore::CSSParser::parseValue):
1084 * loader/win/FrameLoaderWin.cpp:
1085 (WebCore::FrameLoader::urlSelected):
1086 * platform/network/curl/ResourceHandleManager.cpp:
1087 (WebCore::parseDataUrl):
1088 (WebCore::ResourceHandleManager::startJob):
1089 * platform/network/win/CookieJarWin.cpp:
1090 (WebCore::setCookies):
1092 * platform/network/win/ResourceHandleWin.cpp:
1093 (WebCore::ResourceHandle::start):
1094 * platform/qt/PasteboardQt.cpp:
1095 (WebCore::Pasteboard::writeURL):
1097 2007-12-11 Dan Bernstein <mitz@apple.com>
1099 Reviewed by Maciej Stachowiak.
1101 - allow non-integer font sizes on Windows for small caps
1103 * platform/graphics/win/FontDataWin.cpp:
1104 (WebCore::FontData::smallCapsFontData):
1105 * platform/graphics/win/FontPlatformData.h:
1106 (WebCore::FontPlatformData::size):
1107 (WebCore::FontPlatformData::setSize):
1108 * platform/graphics/win/FontPlatformDataWin.cpp:
1109 (WebCore::FontPlatformData::FontPlatformData):
1111 2007-12-11 Sam Weinig <sam@webkit.org>
1113 Build fix for Qt, Gtk, and Wx.
1115 * platform/gtk/CookieJarGtk.cpp:
1116 (WebCore::setCookies):
1118 * platform/qt/ClipboardQt.cpp:
1119 (WebCore::ClipboardQt::writeURL):
1120 * platform/qt/CookieJarQt.cpp:
1121 (WebCore::setCookies):
1123 * platform/wx/PasteboardWx.cpp:
1124 (WebCore::Pasteboard::writeURL):
1126 2007-12-11 Sam Weinig <sam@webkit.org>
1128 Reviewed by Darin Adler.
1130 Scrub URL out of the tree in preparation for renaming KURL to URL.
1131 - Renames Document::URL() -> Document::url()
1132 - Renames DocumentLoader::URL() -> DocumentLoader::url()
1133 - Renames KURL::url() to KURL::string() and KURL::deprecatedString()
1134 - Remove FrameLoader::URL()
1135 - Various variable renames.
1137 The change from Document::URL() to Document::url() required changes
1138 to the bindings scripts as well, because URL() is the name of a DOM
1139 method. The code generation scripts now have code to special case URL()
1143 * bindings/js/kjs_events.cpp:
1144 (WebCore::JSLazyEventListener::parseCode):
1145 * bindings/js/kjs_navigator.cpp:
1146 (KJS::Navigator::getValueProperty):
1147 * bindings/js/kjs_proxy.cpp:
1148 (WebCore::KJSProxy::initScript):
1149 * bindings/js/kjs_window.cpp:
1151 (KJS::Window::allowsAccessFrom):
1152 (KJS::Location::put):
1153 (KJS::LocationProtoFuncReplace::callAsFunction):
1154 (KJS::LocationProtoFuncReload::callAsFunction):
1155 (KJS::LocationProtoFuncAssign::callAsFunction):
1156 * bindings/scripts/CodeGenerator.pm:
1157 * bindings/scripts/CodeGeneratorCOM.pm:
1158 * bindings/scripts/CodeGeneratorJS.pm:
1159 * bindings/scripts/CodeGeneratorObjC.pm:
1160 * css/CSSImportRule.cpp:
1161 (WebCore::CSSImportRule::insertedIntoParent):
1162 * css/CSSParser.cpp:
1163 (WebCore::CSSParser::parseValue):
1164 (WebCore::CSSParser::parseContent):
1165 (WebCore::CSSParser::parseBackgroundImage):
1166 (WebCore::CSSParser::parseFontFaceSrc):
1167 (WebCore::CSSParser::parseBorderImage):
1168 (WebCore::CSSParser::createImportRule):
1169 * css/CSSStyleSelector.cpp:
1170 (WebCore::CSSStyleSelector::setEncodedURL):
1172 (WebCore::Document::processHttpEquiv):
1173 (WebCore::Document::cookie):
1174 (WebCore::Document::setCookie):
1175 (WebCore::Document::domain):
1176 (WebCore::Document::setDomain):
1177 (WebCore::Document::getImageMap):
1178 (WebCore::Document::completeURL):
1180 (WebCore::Document::url):
1181 (WebCore::Document::baseURL):
1183 (WebCore::Element::baseURI):
1184 * dom/ProcessingInstruction.h:
1185 * dom/StyledElement.cpp:
1186 (WebCore::StyledElement::addCSSImageProperty):
1187 * dom/StyledElement.h:
1188 * dom/XMLTokenizer.cpp:
1189 (WebCore::XMLTokenizer::endElementNs):
1190 (WebCore::XMLTokenizer::end):
1192 * dom/XMLTokenizer.h:
1193 * editing/Editor.cpp:
1194 (WebCore::Editor::copy):
1195 * editing/markup.cpp:
1196 (WebCore::completeURLs):
1197 * history/CachedPage.h:
1198 (WebCore::CachedPage::url):
1199 * history/HistoryItem.cpp:
1200 (WebCore::HistoryItem::HistoryItem):
1201 (WebCore::HistoryItem::setURL):
1202 (WebCore::HistoryItem::isCurrentDocument):
1203 * html/HTMLBaseElement.cpp:
1204 (WebCore::HTMLBaseElement::process):
1205 * html/HTMLParser.cpp:
1206 (WebCore::HTMLParser::reportErrorToConsole):
1207 * html/HTMLScriptElement.cpp:
1208 (WebCore::HTMLScriptElement::childrenChanged):
1209 (WebCore::HTMLScriptElement::insertedIntoDocument):
1210 (WebCore::HTMLScriptElement::evaluateScript):
1211 * html/HTMLScriptElement.h:
1212 * html/HTMLTokenizer.cpp:
1213 (WebCore::HTMLTokenizer::scriptExecution):
1215 (WebCore::createResource):
1216 (WebCore::Cache::requestResource):
1217 * loader/CachedCSSStyleSheet.cpp:
1218 (WebCore::CachedCSSStyleSheet::checkNotify):
1219 * loader/CachedResource.cpp:
1220 (WebCore::CachedResource::CachedResource):
1221 * loader/CachedResource.h:
1222 (WebCore::CachedResource::):
1223 * loader/CachedScript.h:
1224 * loader/DocLoader.cpp:
1225 (WebCore::DocLoader::checkForReload):
1226 (WebCore::DocLoader::requestResource):
1227 * loader/DocumentLoader.cpp:
1228 (WebCore::DocumentLoader::url):
1229 (WebCore::DocumentLoader::replaceRequestURLForAnchorScroll):
1230 (WebCore::DocumentLoader::setRequest):
1231 (WebCore::DocumentLoader::startLoadingMainResource):
1232 * loader/DocumentLoader.h:
1233 * loader/FrameLoader.cpp:
1234 (WebCore::FormSubmission::FormSubmission):
1235 (WebCore::ScheduledRedirection::ScheduledRedirection):
1236 (WebCore::FrameLoader::changeLocation):
1237 (WebCore::FrameLoader::urlSelected):
1238 (WebCore::FrameLoader::requestFrame):
1239 (WebCore::FrameLoader::loadSubframe):
1240 (WebCore::FrameLoader::submitFormAgain):
1241 (WebCore::FrameLoader::submitForm):
1242 (WebCore::FrameLoader::didExplicitOpen):
1243 (WebCore::FrameLoader::replaceContentsWithScriptResult):
1244 (WebCore::FrameLoader::executeScript):
1245 (WebCore::FrameLoader::receivedFirstData):
1246 (WebCore::FrameLoader::begin):
1247 (WebCore::FrameLoader::startIconLoader):
1248 (WebCore::FrameLoader::commitIconURLToIconDatabase):
1249 (WebCore::FrameLoader::scheduleRefresh):
1250 (WebCore::FrameLoader::redirectionTimerFired):
1251 (WebCore::FrameLoader::loadPlugin):
1252 (WebCore::FrameLoader::didNotOpenURL):
1253 (WebCore::FrameLoader::updatePolicyBaseURL):
1254 (WebCore::FrameLoader::scrollToAnchor):
1255 (WebCore::FrameLoader::startRedirectionTimer):
1256 (WebCore::FrameLoader::load):
1257 (WebCore::FrameLoader::canLoad):
1258 (WebCore::FrameLoader::shouldHideReferrer):
1259 (WebCore::FrameLoader::shouldAllowNavigation):
1260 (WebCore::FrameLoader::commitProvisionalLoad):
1261 (WebCore::FrameLoader::clientRedirected):
1262 (WebCore::FrameLoader::open):
1263 (WebCore::FrameLoader::didTellBridgeAboutLoad):
1264 (WebCore::FrameLoader::haveToldBridgeAboutLoad):
1265 (WebCore::FrameLoader::post):
1266 (WebCore::FrameLoader::loadResourceSynchronously):
1267 (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
1268 (WebCore::FrameLoader::shouldTreatURLAsSameAsCurrent):
1269 (WebCore::FrameLoader::createHistoryItem):
1270 (WebCore::FrameLoader::addBackForwardItemClippedAtTarget):
1271 (WebCore::FrameLoader::loadItem):
1272 (WebCore::FrameLoader::urlsMatchItem):
1273 (WebCore::FrameLoader::recursiveGoToItem):
1274 (WebCore::FrameLoader::updateHistoryForStandardLoad):
1275 (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
1276 * loader/FrameLoader.h:
1277 (WebCore::FrameLoader::url):
1278 * loader/ImageDocument.cpp:
1279 (WebCore::ImageDocument::createDocumentStructure):
1280 * loader/MainResourceLoader.cpp:
1281 (WebCore::shouldLoadAsEmptyDocument):
1282 (WebCore::MainResourceLoader::didFinishLoading):
1283 * loader/NavigationAction.cpp:
1284 (WebCore::NavigationAction::NavigationAction):
1285 * loader/NavigationAction.h:
1286 (WebCore::NavigationAction::url):
1287 * loader/PluginDocument.cpp:
1288 (WebCore::PluginTokenizer::createDocumentStructure):
1289 * loader/SubresourceLoader.cpp:
1290 (WebCore::SubresourceLoader::load):
1291 (WebCore::SubresourceLoader::create):
1292 * loader/icon/IconLoader.cpp:
1293 (WebCore::IconLoader::startLoading):
1294 (WebCore::IconLoader::finishLoading):
1295 * loader/loader.cpp:
1296 (WebCore::Loader::servePendingRequests):
1297 * loader/mac/LoaderNSURLExtras.m:
1300 (WebCore::Chrome::setToolTip):
1301 * page/ContextMenuController.cpp:
1302 (WebCore::ContextMenuController::contextMenuItemSelected):
1304 (WebCore::Frame::setUserStyleSheetLocation):
1305 * page/InspectorController.cpp:
1306 (WebCore::InspectorResource::type):
1307 (WebCore::addSourceToFrame):
1308 (WebCore::InspectorController::addScriptResource):
1309 (WebCore::InspectorController::updateScriptResourceRequest):
1310 (WebCore::InspectorController::didCommitLoad):
1311 * page/mac/WebCoreFrameBridge.mm:
1312 (-[WebCoreFrameBridge getData:andResponse:forURL:]):
1314 (WebCore::KURL::string):
1315 (WebCore::KURL::deprecatedString):
1316 * platform/mac/ClipboardMac.mm:
1317 (WebCore::ClipboardMac::getData):
1318 * platform/mac/CookieJar.mm:
1320 (WebCore::setCookies):
1321 * platform/mac/PasteboardMac.mm:
1322 (WebCore::Pasteboard::writeURL):
1323 (WebCore::fileWrapperForImage):
1324 (WebCore::Pasteboard::writeImage):
1325 (WebCore::Pasteboard::plainText):
1326 * platform/network/ResourceHandle.cpp:
1327 (WebCore::ResourceHandle::portAllowed):
1328 * platform/network/ResourceRequestBase.cpp:
1329 (WebCore::ResourceRequestBase::isNull):
1330 * platform/network/cf/ResourceHandleCFNet.cpp:
1331 (WebCore::willSendRequest):
1332 (WebCore::didReceiveResponse):
1333 (WebCore::didReceiveData):
1334 (WebCore::didFinishLoading):
1336 (WebCore::didReceiveChallenge):
1337 (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
1338 (WebCore::ResourceHandle::~ResourceHandle):
1339 (WebCore::ResourceHandle::start):
1340 * platform/win/ClipboardUtilitiesWin.cpp:
1341 (WebCore::createGlobalData):
1342 (WebCore::urlToMarkup):
1343 * platform/win/ClipboardWin.cpp:
1344 (WebCore::writeURL):
1345 (WebCore::writeImageToDataObject):
1346 (WebCore::ClipboardWin::writeURL):
1347 (WebCore::ClipboardWin::writeRange):
1348 * platform/win/PasteboardWin.cpp:
1349 (WebCore::Pasteboard::writeSelection):
1350 (WebCore::Pasteboard::writeURL):
1351 * plugins/win/PluginDatabaseWin.cpp:
1352 (WebCore::PluginDatabaseWin::findPlugin):
1353 * plugins/win/PluginStreamWin.cpp:
1354 (WebCore::PluginStreamWin::startStream):
1355 (WebCore::PluginStreamWin::destroyStream):
1356 * plugins/win/PluginViewWin.cpp:
1357 (WebCore::scriptStringIfJavaScriptURL):
1358 (WebCore::PluginViewWin::performRequest):
1359 * svg/SVGImageLoader.cpp:
1360 (WebCore::SVGImageLoader::updateFromElement):
1361 * xml/XMLHttpRequest.cpp:
1362 (WebCore::XMLHttpRequest::getResponseXML):
1363 (WebCore::XMLHttpRequest::urlMatchesDocumentDomain):
1364 * xml/XSLImportRule.cpp:
1365 (WebCore::XSLImportRule::loadSheet):
1366 * xml/XSLTProcessor.cpp:
1367 (WebCore::XSLTProcessor::createDocumentFromSource):
1368 (WebCore::xsltStylesheetPointer):
1369 (WebCore::xmlDocPtrFromNode):
1371 2007-12-11 Beth Dakin <bdakin@apple.com>
1375 Fix for <rdar://problem/5641255> SVGs with width and height 100%
1376 fail to render when used as background images
1378 CachedImage now has a setImageContainerSize function. It is only
1379 needed for SVG right now.
1380 * loader/CachedImage.cpp:
1381 (WebCore::CachedImage::setImageContainerSize):
1382 * loader/CachedImage.h:
1384 Relatively sized SVGs have no intrinsic size. Because this call is
1385 low-level enough that we cannot pass in the container size and get
1386 the real size of the SVG, we need to know if it has relative
1387 dimensions, and if so, we need to get the size from scaledTileSize.
1388 * platform/graphics/Image.cpp:
1389 (WebCore::Image::drawTiled):
1390 * platform/graphics/Image.h:
1391 (WebCore::Image::setContainerSize):
1392 (WebCore::Image::hasRelativeWidth):
1393 (WebCore::Image::hasRelativeHeight):
1395 Re-factored calculateBackgroundSize a bit so that it returns an
1396 IntSize. Made it a member function so that it can send m_width and
1397 m_height along to setImageContainerSize.
1398 * rendering/RenderBox.cpp:
1399 (WebCore::RenderBox::calculateBackgroundSize):
1400 (WebCore::RenderBox::calculateBackgroundImageGeometry):
1401 * rendering/RenderBox.h:
1403 Need to account for relatively sized SVGs in calcViewport()
1404 * rendering/RenderSVGRoot.cpp:
1405 (WebCore::RenderSVGRoot::calcViewport):
1407 Added new member variables to store the size of the SVG container.
1408 relativeWidthValue() and relativeHeightValue() use the stored SVG
1409 container size to correctly calculate the width and height of a
1410 relatively sized SVG.
1411 * svg/SVGSVGElement.cpp:
1412 (WebCore::SVGSVGElement::SVGSVGElement):
1413 (WebCore::SVGSVGElement::setContainerSize):
1414 (WebCore::SVGSVGElement::relativeWidthValue):
1415 (WebCore::SVGSVGElement::relativeHeightValue):
1416 * svg/SVGSVGElement.h:
1417 (WebCore::SVGSVGElement::containerSize):
1419 Re-factored size calculations to use the size of the container.
1420 * svg/graphics/SVGImage.cpp:
1421 (WebCore::SVGImage::setContainerSize):
1422 (WebCore::SVGImage::size):
1423 (WebCore::SVGImage::hasRelativeWidth):
1424 (WebCore::SVGImage::hasRelativeHeight):
1425 * svg/graphics/SVGImage.h:
1427 2007-12-11 Darin Adler <darin@apple.com>
1429 * editing/Editor.cpp:
1430 (WebCore::Editor::yankFromKillRing): Try to fix non-Mac builds by adding
1431 a missing return statement.
1433 2007-12-11 Darin Adler <darin@apple.com>
1437 - exposed many new commands to the DOM Document executeCommand function by
1438 merging the JSEditor and Editor executeCommand implementations
1439 - replaced the execCommand function with a EditorCommand class
1440 - replaced the WTF::StrHash<> class template with the WebCore::StringHash class
1441 - replaced the WTF::CaseInsensitiveHash<> class template with the
1442 WebCore::CaseFoldingHash class
1444 * WebCore.base.exp: Updated.
1445 * WebCore.pro: Added EditorCommand.cpp, removed JSEditor.cpp.
1446 * WebCore.vcproj/WebCore.vcproj: Ditto.
1447 * WebCore.xcodeproj/project.pbxproj: Ditto.
1448 * WebCoreSources.bkl: Ditto.
1451 (WebCore::Document::Document): Removed code to set up m_jsEditor.
1452 (WebCore::Document::~Document): Removed code to delete m_jsEditor.
1453 (WebCore::command): Added. Helper function that gets an Editor::Command.
1454 (WebCore::Document::executeCommand): Changed to use Editor::Command instead of
1456 (WebCore::Document::queryCommandEnabled): Ditto.
1457 (WebCore::Document::queryCommandIndeterm):
1458 (WebCore::Document::queryCommandState): Ditto.
1459 (WebCore::Document::queryCommandSupported): Ditto.
1460 (WebCore::Document::queryCommandValue): Ditto.
1462 * dom/Document.h: Removed JSEditor, jsEditor, m_jsEditor. Changed to
1463 use CaseFoldingHash.
1465 * editing/Editor.cpp:
1466 (WebCore::Editor::selectionForCommand): Renamed from selectionForEvent and
1467 made into a member function so it is accessible from the new EditorCommand.cpp file.
1468 Also changed to get the selection from the passed-in frame instead of from the
1469 page, because this should work on the targeted frame unless the event overrides it.
1470 (WebCore::Editor::handleKeypress): Updated for selectionForCommand change.
1471 (WebCore::Editor::handleInputMethodKeypress): Ditto.
1472 (WebCore::imageElementFromImageDocument): Renamed and changed to return
1473 a HTMLImageElement instead of a Node*.
1474 (WebCore::Editor::canCopy): Updated for name change.
1475 (WebCore::Editor::selectionUnorderedListState): Updated for TriState change.
1476 (WebCore::Editor::selectionOrderedListState): Ditto.
1477 (WebCore::Editor::selectionStartHasStyle): Make type of local more specific.
1478 (WebCore::updateState): Moved here from Frame.
1479 (WebCore::Editor::selectionHasStyle): Ditto.
1480 (WebCore::Editor::Editor): Initialize m_shouldStartNewKillRingSequence.
1481 (WebCore::Editor::insertTextWithoutSendingTextEvent): Updated for
1482 selectionForCommand change.
1483 (WebCore::Editor::copy): Updated for imageElementFromImageDocument change.
1484 (WebCore::Editor::toggleBold): Call the ToggleBold command via the command
1485 machinery since it's no longer in this file as a local function.
1486 (WebCore::Editor::toggleUnderline): Call the ToggleUnderline command.
1487 (WebCore::Editor::setBaseWritingDirection): Change type of argument and of
1489 (WebCore::Editor::addToKillRing): Moved here from EditorMac. Not useful
1490 without a kill ring, but it's relatively straightforward to implement one.
1491 (WebCore::Editor::appendToKillRing): Put default implementation here for
1492 platforms other than Mac. We should probably put a simple kill ring
1493 implementation here -- doesn't need to be shared with the OS oh platforms
1495 (WebCore::Editor::prependToKillRing): Ditto.
1496 (WebCore::Editor::yankFromKillRing): Ditto.
1497 (WebCore::Editor::startNewKillRingSequence): Ditto.
1498 (WebCore::Editor::setKillRingToYankedState): Ditto.
1500 * editing/Editor.h: Moved the TriState enum here instead of inside the
1501 Frame class. Added EditorCommandSource enum. Moved selectionHasStyle
1502 here from the Frame class. Added Editor::Command class with five functions
1503 for the various things you can do with a command (execute it, check if it
1504 can be used, and its state and value). Changed hte parameter of
1505 setBaseWritingDirection to be a const String& rather than a String.
1506 Got rid of the kill-ring-related operations, but added the kill ring
1507 functions themselves. Made selectedRange() public. Made the
1508 m_startNewKillRingSequence not Mac-specific and added "should" to its
1511 * editing/EditorCommand.cpp: Copied from WebCore/editing/Editor.cpp.
1512 Retained only the editing commands.
1513 (WebCore::targetFrame): Moved to the top of the file.
1514 (WebCore::executeApplyStyle): Added. Helper function for commands
1515 that need to apply styles.
1516 (WebCore::executeToggleStyle): Added. Helper function for commands
1517 that need to toggle styles based on the style of the start of selection.
1518 (WebCore::executeApplyParagraphStyle): Added. Like executeApplyStyle, but
1519 for paragraph styles.
1520 (WebCore::executeInsertFragment): Added. Helper function for commands
1521 that need to insert a DOM fragment.
1522 (WebCore::executeInsertNode): Added. Helper function for commands that
1523 need to insert a tree rooted in a single DOM node.
1524 (WebCore::stateStyle): Added. Helper function for the state of commands
1525 that represent style.
1526 (WebCore::valueStyle): Added. Helper function for the value of commands
1527 that represent style.
1528 (WebCore::canScroll): Added. Helper functions for some move and scroll
1529 commands that need to determine if the renderer they are in can scroll.
1530 (WebCore::unionDOMRanges): Moved here from EditorMac.
1531 (WebCore::executeBackColor):
1532 (WebCore::executeBackwardDelete):
1533 (WebCore::executeCopy):
1534 (WebCore::executeCreateLink):
1535 (WebCore::executeCut):
1536 (WebCore::executeDelete):
1537 (WebCore::executeDeleteToMark):
1538 (WebCore::executeDeleteWordBackward):
1539 (WebCore::executeDeleteWordForward):
1540 (WebCore::executeFindString):
1541 (WebCore::executeFontName):
1542 (WebCore::executeFontSize):
1543 (WebCore::executeFontSizeDelta):
1544 (WebCore::executeForeColor):
1545 (WebCore::executeFormatBlock):
1546 (WebCore::executeForwardDelete):
1547 (WebCore::executeIndent):
1548 (WebCore::executeInsertBacktab):
1549 (WebCore::executeInsertHorizontalRule):
1550 (WebCore::executeInsertHTML):
1551 (WebCore::executeInsertImage):
1552 (WebCore::executeInsertLineBreak):
1553 (WebCore::executeInsertNewline):
1554 (WebCore::executeInsertNewlineInQuotedContent):
1555 (WebCore::executeInsertOrderedList):
1556 (WebCore::executeInsertParagraph):
1557 (WebCore::executeInsertTab):
1558 (WebCore::executeInsertText):
1559 (WebCore::executeInsertUnorderedList):
1560 (WebCore::executeJustifyCenter):
1561 (WebCore::executeJustifyFull):
1562 (WebCore::executeJustifyLeft):
1563 (WebCore::executeJustifyRight):
1564 (WebCore::executeMoveBackward):
1565 (WebCore::executeMoveBackwardAndModifySelection):
1566 (WebCore::executeMoveDown):
1567 (WebCore::executeMoveDownAndModifySelection):
1568 (WebCore::executeMoveDownByPageAndModifyCaret):
1569 (WebCore::executeMoveForward):
1570 (WebCore::executeMoveForwardAndModifySelection):
1571 (WebCore::executeMoveLeft):
1572 (WebCore::executeMoveLeftAndModifySelection):
1573 (WebCore::executeMoveRight):
1574 (WebCore::executeMoveRightAndModifySelection):
1575 (WebCore::executeMoveToBeginningOfDocument):
1576 (WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
1577 (WebCore::executeMoveToBeginningOfLine):
1578 (WebCore::executeMoveToBeginningOfLineAndModifySelection):
1579 (WebCore::executeMoveToBeginningOfParagraph):
1580 (WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
1581 (WebCore::executeMoveToBeginningOfSentence):
1582 (WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
1583 (WebCore::executeMoveToEndOfDocument):
1584 (WebCore::executeMoveToEndOfDocumentAndModifySelection):
1585 (WebCore::executeMoveToEndOfSentence):
1586 (WebCore::executeMoveToEndOfSentenceAndModifySelection):
1587 (WebCore::executeMoveToEndOfLine):
1588 (WebCore::executeMoveToEndOfLineAndModifySelection):
1589 (WebCore::executeMoveToEndOfParagraph):
1590 (WebCore::executeMoveToEndOfParagraphAndModifySelection):
1591 (WebCore::executeMoveParagraphBackwardAndModifySelection):
1592 (WebCore::executeMoveParagraphForwardAndModifySelection):
1593 (WebCore::executeMoveUp):
1594 (WebCore::executeMoveUpAndModifySelection):
1595 (WebCore::executeMoveUpByPageAndModifyCaret):
1596 (WebCore::executeMoveWordBackward):
1597 (WebCore::executeMoveWordBackwardAndModifySelection):
1598 (WebCore::executeMoveWordForward):
1599 (WebCore::executeMoveWordForwardAndModifySelection):
1600 (WebCore::executeMoveWordLeft):
1601 (WebCore::executeMoveWordLeftAndModifySelection):
1602 (WebCore::executeMoveWordRight):
1603 (WebCore::executeMoveWordRightAndModifySelection):
1604 (WebCore::executeOutdent):
1605 (WebCore::executePaste):
1606 (WebCore::executePasteAndMatchStyle):
1607 (WebCore::executePrint):
1608 (WebCore::executeRedo):
1609 (WebCore::executeRemoveFormat):
1610 (WebCore::executeSelectAll):
1611 (WebCore::executeSelectToMark):
1612 (WebCore::executeSetMark):
1613 (WebCore::executeStrikethrough):
1614 (WebCore::executeSubscript):
1615 (WebCore::executeSuperscript):
1616 (WebCore::executeSwapWithMark):
1617 (WebCore::executeToggleBold):
1618 (WebCore::executeToggleItalic):
1619 (WebCore::executeTranspose):
1620 (WebCore::executeUnderline):
1621 (WebCore::executeUndo):
1622 (WebCore::executeUnlink):
1623 (WebCore::executeUnscript):
1624 (WebCore::executeUnselect):
1625 (WebCore::executeYank):
1626 (WebCore::executeYankAndSelect):
1627 (WebCore::supported):
1628 (WebCore::supportedPaste):
1630 (WebCore::enabledAnySelection):
1631 (WebCore::enabledAnySelectionAndMark):
1632 (WebCore::enableCaretInEditableText):
1633 (WebCore::enabledCopy):
1634 (WebCore::enabledCut):
1635 (WebCore::enabledInEditableText):
1636 (WebCore::enabledInRichlyEditableText):
1637 (WebCore::enabledPaste):
1638 (WebCore::enabledRangeInEditableText):
1639 (WebCore::enabledRangeInRichlyEditableText):
1640 (WebCore::enabledRedo):
1641 (WebCore::enabledUndo):
1642 (WebCore::stateNone):
1643 (WebCore::stateBold):
1644 (WebCore::stateItalic):
1645 (WebCore::stateOrderedList):
1646 (WebCore::stateStrikethrough):
1647 (WebCore::stateSubscript):
1648 (WebCore::stateSuperscript):
1649 (WebCore::stateUnderline):
1650 (WebCore::stateUnorderedList):
1651 (WebCore::valueNull):
1652 (WebCore::valueBackColor):
1653 (WebCore::valueFontName):
1654 (WebCore::valueFontSize):
1655 (WebCore::valueFontSizeDelta):
1656 (WebCore::valueForeColor):
1657 (WebCore::createCommandMap): Added lots of commands, including all the commands
1658 from JSEditor. A few commands needed different behavior based on whether they are
1659 invoked from the DOM or a keyboard binding.
1660 (WebCore::Editor::command): Added. Gets a command object given a name.
1661 (WebCore::Editor::Command::Command): Added.
1662 (WebCore::Editor::Command::execute): Added.
1663 (WebCore::Editor::Command::isSupported): Added.
1664 (WebCore::Editor::Command::isEnabled): Added.
1665 (WebCore::Editor::Command::state): Added.
1666 (WebCore::Editor::Command::value): Added.
1667 (WebCore::Editor::execCommand): Changed to call command().execute().
1669 * editing/JSEditor.cpp: Removed.
1670 * editing/JSEditor.h: Removed.
1672 * editing/mac/EditorMac.mm: Changed to provide kill ring primitives intead of
1673 kill ring commands, so the kill ring commands can be cross-platform.
1674 (WebCore::Editor::appendToKillRing): Added.
1675 (WebCore::Editor::prependToKillRing): Added.
1676 (WebCore::Editor::yankFromKillRing): Added.
1677 (WebCore::Editor::startNewKillRingSequence): Added.
1678 (WebCore::Editor::setKillRingToYankedState): Added.
1680 * page/Frame.cpp: Removed selectionHasStyle, TriState, and updateState.
1681 * page/Frame.h: Ditto.
1683 * page/mac/WebCoreFrameBridge.mm: Removed selectionHasStyle.
1684 * page/mac/WebCoreFrameBridge.h: Ditto.
1686 * platform/ContextMenu.cpp:
1687 (WebCore::ContextMenu::checkOrEnableIfNeeded): Updated for TriState change.
1689 * platform/text/StringHash.h:
1690 (WebCore::StringHash::hash): Merged the StrHash<> template classes into this.
1691 (WebCore::StringHash::equal): Ditto.
1692 (WebCore::CaseFoldingHash::hash): Merged the CaseInsensitiveHash<> template
1694 (WebCore::CaseFoldingHash::equal): Ditto.
1696 * platform/text/StringImpl.cpp:
1697 (WebCore::equal): Changed to invoke StringHash.
1698 (WebCore::equalIgnoringCase): Changed to invoke CaseFoldingHash.
1700 * dom/DOMImplementation.cpp:
1701 (WebCore::addString): Updated to use StringHash and CaseFoldingHash.
1702 (WebCore::isSVG10Feature): Ditto.
1703 (WebCore::isSVG11Feature): Ditto.
1704 * loader/FrameLoader.cpp:
1705 (WebCore::localSchemes): Ditto.
1706 * platform/graphics/FontCache.cpp:
1707 (WebCore::computeHash): Ditto.
1708 * platform/network/HTTPHeaderMap.h: Ditto.
1709 * platform/text/PlatformString.h: Ditto.
1710 * platform/text/StringImpl.h: Ditto.
1711 * rendering/RenderPartObject.cpp:
1712 (WebCore::RenderPartObject::updateWidget): Ditto.
1713 * xml/XMLHttpRequest.cpp:
1714 (WebCore::canSetRequestHeader): Ditto.
1716 * rendering/RenderTreeAsText.cpp: Removed stray include of JSEditor.h.
1718 2007-12-11 Darin Adler <darin@apple.com>
1720 * platform/wx/KeyboardEventWx.cpp:
1721 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Another try at fixing the
1722 WX build. Changes the code around a little bit.
1724 2007-12-11 Darin Adler <darin@apple.com>
1726 * platform/wx/KeyboardEventWx.cpp:
1727 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Quick try at fixing build.
1729 2007-12-11 Dan Bernstein <mitz@apple.com>
1731 Reviewed by Darin Adler.
1733 - fix <rdar://problem/5631507> Text doesn't wrap properly at Tamil version of Wikipedia
1735 Test: fast/text/international/complex-character-based-fallback.html
1737 * platform/graphics/Font.cpp:
1738 (WebCore::Font::glyphDataForCharacter): Added a forceSmallCaps argument
1739 that forces this function to use the small caps font. It is used for
1740 combining marks that need to combine with a small cap.
1741 * platform/graphics/Font.h:
1742 * platform/win/UniscribeController.cpp:
1743 (WebCore::UniscribeController::advance): Changed to split the string
1744 into runs of characters that will be rendered using the same FontData.
1745 This is done by calling glyphDataForCharacter() for each cahracter to
1746 find the FontData it should be rendered with.
1747 (WebCore::UniscribeController::itemizeShapeAndPlace): Added a fontData
1748 argument that is passed on to shapeAndPlaceItem() instead of the
1750 (WebCore::UniscribeController::shapeAndPlaceItem): Added a fontData
1751 argument and removed the font fallback logic from this function, as
1752 it is now expected to be called with an item all of whose characters
1753 can be rendered with the given fontData.
1754 * platform/win/UniscribeController.h:
1756 2007-12-07 Alexey Proskuryakov <ap@webkit.org>
1760 <rdar://problem/5535636>
1761 Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard.
1763 http://bugs.webkit.org/show_bug.cgi?id=13916
1764 JavaScript detects Tab as a character input on a textfield validation
1766 Test: platform/win/fast/events/double-dead-char.html
1768 * platform/PlatformKeyboardEvent.h:
1769 (WebCore::PlatformKeyboardEvent::):
1770 (WebCore::PlatformKeyboardEvent::type):
1771 (WebCore::PlatformKeyboardEvent::windowsVirtualKeyCode):
1772 (WebCore::PlatformKeyboardEvent::setWindowsVirtualKeyCode):
1773 (WebCore::PlatformKeyboardEvent::keyIdentifier):
1774 (WebCore::PlatformKeyboardEvent::setIsAutoRepeat):
1775 Added an explicit type member to differentiate different kinds of events:
1776 RawKeyDown == keydown == WM_KEYDOWN
1777 KeyUp == keyup == WM_KEYUP
1778 Char == keypress == WM_CHAR
1779 KeyDown == e.g. NSKeyDown or NSFlagsChanged, used on platforms that have a different model for
1780 event processing, and needs to be converted to RawKeyDown (+ Char) for processing in DOM.
1782 * platform/mac/KeyEventMac.mm:
1783 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
1784 Fix Enter (numeric keypad) charCode to match Return, as we check for it from keypress default handlers.
1785 (WebCore::windowsKeyCodeForKeyEvent):
1786 (WebCore::isKeyUpEvent): Made it do something closer to what it claims; added a FIXME explaining
1787 that it still fails.
1788 (WebCore::disambiguateKeyDownEvent): Downgrade from KeyDown to RawKeyDown or Char, removing information that
1789 should not be available in those (because it cannot be provided on Windows).
1791 * platform/win/KeyEventWin.cpp:
1792 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): Updated for changed data members.
1793 Used standard Windows constants for bit masks instead of our own ones.
1794 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Should never be called on Windows.
1796 * platform/gtk/KeyEventGtk.cpp:
1797 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1798 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
1799 * platform/qt/PlatformKeyboardEventQt.cpp:
1800 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1801 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
1802 * platform/wx/KeyboardEventWx.cpp:
1803 (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
1804 (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
1805 Updated for cross-platform changes as much as it was possible without appropriate build
1808 * WebCore.base.exp: Export PlatformKeyboardEvent::disambiguateKeyDownEvent(), used by platforms that need to
1809 convert their fancy key events to RawKeyDown/Char pairs. Export Editor::isTextInsertionCommand().
1811 * bridge/EditorClient.h:
1812 Renamed handleKeypress() to handleKeyboardEvent(), as it gets both keydowns and keypresses.
1813 Renamed handleInputMethodKeypress() to handleInputMethodKeydown(), as IMs work with raw keydowns.
1817 (WebCore::Document::defaultEventHandler): Moved accesskey processing to EventHandler.
1819 * dom/KeyboardEvent.h: Added comments describing keyCode/charCode behavior.
1821 * dom/KeyboardEvent.cpp:
1822 (WebCore::eventTypeForKeyboardEventType):
1823 (WebCore::KeyboardEvent::KeyboardEvent): Conversion between platform and DOM event types is
1824 now straightforward, so scary hacks such as using autorepeat to distinguish types are
1826 (WebCore::KeyboardEvent::keyCode): Added a comment describing other browsers' behavior.
1827 (WebCore::KeyboardEvent::charCode): Added a comment describing other browsers' behavior.
1828 Changed to a more compatible behavior: raw keydown/keyup events do not and can not have
1832 * editing/Editor.cpp:
1833 (WebCore::Editor::isTextInsertionCommand): Is this command actually text input in disguise?
1834 (WebCore::Editor::handleKeyboardEvent): Updated for new function names.
1835 (WebCore::Editor::handleInputMethodKeydown): Ditto.
1837 * html/HTMLButtonElement.cpp:
1838 (WebCore::HTMLButtonElement::defaultEventHandler): Perform the default action when handling an
1839 appropriate event. Enter is processed on keypress (and thus should be checked for via charCode,
1840 not keyIdentifier), Space is processed on keydown+keyup! We now match IE in that a button is
1841 highlighted when Space is pressed.
1843 * html/HTMLInputElement.cpp:
1844 (WebCore::HTMLInputElement::defaultEventHandler):
1845 * html/HTMLSelectElement.cpp:
1846 (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
1847 (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
1848 Made a number of fixes to when default actions take place, similar to HTMLButtonElement ones
1851 * page/EventHandler.cpp:
1852 (WebCore::EventHandler::keyEvent): Unless we have a combined KeyDown, just forward the event
1853 to the target. Call accesskey handling directly, as it doesn't seem to be part of normal event
1854 handling in IE. Also streamlined the code in KeyDown case, thanks to handleInputMethodKeypress()
1855 now being handleInputMethodKeydown().
1856 (WebCore::EventHandler::handleTextInputEvent): Check that we were not called from keydown.
1857 (WebCore::EventHandler::defaultTextInputEventHandler): Removed a call to defaultTabEventHandler,
1858 as default tab handling happens when processing keydown.
1859 (WebCore::handleAccessKey): Moved from Document, as access keys are processed outside normal
1860 event handling. Fixed accesskey processing to use information that's available in a raw keydown
1863 (WebCore::EventHandler::defaultKeyboardEventHandler): Do not ignore keydown; in particular,
1864 handle tabs during keydown processing.
1866 * page/mac/EventHandlerMac.mm:
1867 (WebCore::EventHandler::currentKeyboardEvent): Disambiguate KeyDown as RawKeyDown, as this is
1870 * platform/text/PlatformString.h:
1871 * platform/text/String.cpp:
1872 (WebCore::String::characterStartingAt):
1873 * platform/text/StringImpl.cpp:
1874 (WebCore::StringImpl::characterStartingAt):
1875 * platform/text/StringImpl.h:
1876 Added a UChar32 accessor.
1878 * svg/graphics/SVGImageEmptyClients.h:
1879 (WebCore::SVGEmptyEditorClient::handleKeyboardEvent):
1880 (WebCore::SVGEmptyEditorClient::handleInputMethodKeydown):
1881 Updated for new function names.
1883 2007-12-11 John Sullivan <sullivan@apple.com>
1887 Tiger build fix -- don't call QTMovieView setDelegate: directly because it's not public
1889 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1890 (WebCore::MediaPlayerPrivate::createQTMovieView):
1891 (WebCore::MediaPlayerPrivate::detachQTMovieView):
1893 2007-12-11 Alexey Proskuryakov <ap@webkit.org>
1897 http://bugs.webkit.org/show_bug.cgi?id=16325
1898 <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
1900 Fix this on Windows, too!
1902 Test: http/tests/misc/empty-cookie.html
1904 * platform/network/win/CookieJarWin.cpp:
1905 (WebCore::setCookies):
1907 Same fix as on Mac, translated into CF.
1909 * platform/win/CookieJarWin.cpp: Removed - the real one is in platform/network/win.
1911 2007-12-11 Christian Dywan <christian@twotoasts.de>
1913 Reviewed by Alp Toker.
1915 http://bugs.webkit.org/show_bug.cgi?id=16371
1916 Implement additional mouse cursors for Gtk
1918 Added cursor bitmaps from Mozilla:
1919 http://lxr.mozilla.org/mozilla1.8/source/widget/src/gtk2/nsGtkCursors.h
1921 * platform/gtk/CursorGtk.cpp:
1922 (WebCore::customCursorNew):
1923 (WebCore::verticalTextCursor):
1924 (WebCore::cellCursor):
1925 (WebCore::contextMenuCursor):
1926 (WebCore::noDropCursor):
1927 (WebCore::copyCursor):
1928 (WebCore::progressCursor):
1929 (WebCore::aliasCursor):
1930 (WebCore::noneCursor):
1931 (WebCore::notAllowedCursor):
1932 (WebCore::zoomInCursor):
1933 (WebCore::zoomOutCursor):
1934 * platform/gtk/CursorGtk.h: Added.
1936 2007-12-10 Oliver Hunt <oliver@apple.com>
1938 Reviewed by Weinig, Dan, and Alexey.
1940 Fix character set used for dynamically loaded scripts.
1943 <rdar://problem/5333163> Safari can not display the mouse over pop menu on ChinaTimes News site correctly.
1944 <rdar://problem/5530048> [Safari]? :Leopard9A576: The typed CH characters displays as garbage in Sina website after reloading the webpage.
1945 <rdar://problem/5416588> All menus for chinese IBM site have wrong encoding
1947 Use the same logic to determine the charset for a script loaded dynamically
1948 as we do for a statically loaded script.
1950 * html/HTMLScriptElement.cpp:
1951 (WebCore::HTMLScriptElement::insertedIntoDocument):
1953 2007-12-10 Justin Garcia <justin.garcia@apple.com>
1955 Reviewed by Oliver Hunt.
1957 <rdar://problem/5482023> GoogleDocs: After FormatBlock in an empty document, certain functions are disabled
1959 We were trying to insert a block of the requested type before the body element.
1961 * editing/FormatBlockCommand.cpp:
1962 (WebCore::FormatBlockCommand::doApply):
1963 Removed unnecessary ()s in the if condition.
1964 Removed "|| !upstreamStart.node()->isDescendantOf(root)" from the if condition, since
1965 a) upstreamStart will never be outside the root editable element, since in that case
1966 there would be no block inside the editable root to Format, and b) if upstreamStart.node()
1967 *is* the root, then refNode is the root, and we shouldn't insert before the root, we should insert
1969 Added comments to explain the use of upstream() in the second if-clause.
1970 Added an early return for case where there is nothing selected, in that case, there is nothing
1973 2007-12-10 Adele Peterson <adele@apple.com>
1975 Reviewed and partially fixed by Tim Hatcher.
1977 Remaining part of fix for <rdar://problem/5633400>
1978 Transformed <video> is not clipped correctly until a repaint is forced
1980 Replace the implementation of a QTKit method to avoid repaints from the NSView system associated with the QTMovie
1981 from clobbering the WebCore repaints.
1983 * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaPlayerRepaint): Added.
1984 * html/HTMLMediaElement.h:
1985 * platform/graphics/MediaPlayer.cpp: (WebCore::MediaPlayer::repaint): Added.
1986 * platform/graphics/MediaPlayer.h: (WebCore::MediaPlayerClient::mediaPlayerRepaint): Added.
1988 * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1989 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1990 (method_setImplementation): Added for Tiger.
1992 (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call detachQTMovieView, which now does more cleanup.
1993 (WebCore::MediaPlayerPrivate::cancelLoad): ditto.
1994 (WebCore::MediaPlayerPrivate::setVisible): ditto.
1995 (WebCore::MediaPlayerPrivate::detachQTMovieView): Clear the delegate as well as m_qtMovieView pointer.
1997 (WebCore::MediaPlayerPrivate::repaint): Added. Triggers a repaint on the video renderer.
1998 (-[WebCoreMovieObserver repaint]): ditto.
2000 (WebCore::mainThreadSetNeedsDisplay): Added.
2001 Does a WebCore repaint instead of going through the view repaint system for QTMovieView.
2002 (WebCore::MediaPlayerPrivate::createQTMovieView): Replace the implementation of _mainThreadSetNeedsDisplay.
2004 2007-12-10 Geoffrey Garen <ggaren@apple.com>
2006 Reviewed by Sam Weinig.
2008 Updated for rename in JavaScriptCore.
2010 * bridge/mac/WebCoreScriptDebugger.mm:
2011 (-[WebCoreScriptCallFrame scopeChain]):
2012 (-[WebCoreScriptCallFrame functionName]):
2013 (-[WebCoreScriptCallFrame evaluateWebScript:]):
2015 2007-12-10 Rodney Dawes <dobey@wayofthemonkey.com>
2017 Bug 16383: Ambiguous Window Usage in kjs_dom.cpp
2018 <http://bugs.webkit.org/show_bug.cgi?id=16383>
2020 Use KJS::Window not the ambiguous Window
2022 Reviewed by ddkilzer.
2024 * bindings/js/kjs_dom.cpp (checkNodeSecurity):
2026 2007-12-10 Sam Weinig <sam@webkit.org>
2030 * page/WindowFeatures.cpp: #include <wtf/MathExtras.h> for isnan.
2032 2007-12-10 Marvin Decker <marv.decker@gmail.com>
2036 Fix a divide by 0 in the progress tracker.
2037 http://bugs.webkit.org/show_bug.cgi?id=15055
2039 * loader/ProgressTracker.cpp:
2040 (WebCore::ProgressTracker::incrementProgress):
2042 2007-12-09 Sam Weinig <sam@webkit.org>
2046 More cleanup of kjs_window.
2047 - Move WindowFeatures from bridge/ to page/
2048 - Move functions related to WindowFeatures (boolFeature,
2049 floatFeature, setWindowFeature, parseWindowFeatures) into the class.
2050 - Fix up whitespace.
2052 * WebCore.vcproj/WebCore.vcproj:
2053 * WebCore.xcodeproj/project.pbxproj:
2054 * bindings/js/kjs_window.cpp:
2055 (KJS::DOMWindowTimer::~DOMWindowTimer):
2056 (KJS::createWindow):
2057 (KJS::showModalDialog):
2058 (KJS::Window::getOwnPropertySlot):
2059 (KJS::Window::allowsAccessFrom):
2060 (KJS::Window::shouldInterruptScript):
2061 (KJS::WindowProtoFuncAToB::callAsFunction):
2062 (KJS::WindowProtoFuncOpen::callAsFunction):
2063 (KJS::Window::setReturnValueSlot):
2064 (KJS::ScheduledAction::execute):
2065 (KJS::Window::timerFired):
2066 (KJS::Location::Location):
2067 (KJS::Location::getValueProperty):
2068 (KJS::Location::getOwnPropertySlot):
2069 (KJS::Location::put):
2070 (KJS::LocationProtoFuncReplace::callAsFunction): Use better variable names.
2071 (KJS::LocationProtoFuncAssign::callAsFunction): Ditto.
2072 (KJS::LocationProtoFuncToString::callAsFunction): Remove extraneous calls to
2073 allowsAccessFrom, cleanup the function a little.
2074 (KJS::PausedTimeouts::~PausedTimeouts):
2075 * bridge/WindowFeatures.h: Removed.
2076 * page/WindowFeatures.cpp: Added.
2077 (WebCore::isSeparator):
2078 (WebCore::WindowFeatures::WindowFeatures):
2079 (WebCore::WindowFeatures::setWindowFeature):
2080 (WebCore::WindowFeatures::boolFeature):
2081 (WebCore::WindowFeatures::floatFeature):
2082 * page/WindowFeatures.h: Copied from WebCore/bridge/WindowFeatures.h.
2083 (WebCore::WindowFeatures::WindowFeatures):
2085 2007-12-10 Timothy Hatcher <timothy@apple.com>
2087 Reviewed by Mark Rowe.
2089 <rdar://problem/5639463> Bundle versions on Tiger should be 4523.x not 523.x
2091 * Configurations/Version.xcconfig: Some Tiger versions of Xcode don't set MAC_OS_X_VERSION_MAJOR,
2092 so assume Tiger and use a 4 for the SYSTEM_VERSION_PREFIX.
2094 2007-12-10 Alp Toker <alp@atoker.com>
2098 Cairo implementation of GraphicsContext::setUseAntialiasing().
2100 * platform/graphics/cairo/GraphicsContextCairo.cpp:
2101 (WebCore::GraphicsContext::setUseAntialiasing):
2103 2007-12-10 Rob Buis <buis@kde.org>
2107 http://bugs.webkit.org/show_bug.cgi?id=16182
2108 SVG should disable antialiasing for shape-rendering="crispEdges"
2110 Turn off anti-aliasing of shapes when shape-rendering="crispEdges".
2112 * platform/graphics/GraphicsContext.h:
2113 * platform/graphics/cairo/GraphicsContextCairo.cpp:
2114 (WebCore::GraphicsContext::setUseAntialiasing):
2115 * platform/graphics/cg/GraphicsContextCG.cpp:
2116 (WebCore::GraphicsContext::setUseAntialiasing):
2117 * platform/graphics/qt/GraphicsContextQt.cpp:
2118 (WebCore::GraphicsContext::setUseAntialiasing):
2119 * platform/graphics/wx/GraphicsContextWx.cpp:
2120 (WebCore::GraphicsContext::setUseAntialiasing):
2121 * rendering/RenderPath.cpp:
2122 (WebCore::RenderPath::paint):
2124 2007-12-09 Rob Buis <buis@kde.org>
2128 http://bugs.webkit.org/show_bug.cgi?id=16163
2129 SVG crash in Node::setChanged() on Debug builds only (trashed parent)
2131 Fix the crash by properly unregistering as client from SVGResource
2132 when deleting a styled svg node.
2134 * svg/SVGStyledElement.cpp:
2135 (WebCore::SVGStyledElement::~SVGStyledElement):
2137 2007-12-10 Brady Eidson <beidson@apple.com>
2139 Rubberstamped by John
2141 * storage/DatabaseTracker.cpp:
2142 (WebCore::DatabaseTracker::canEstablishDatabase): If the UI Delegate returns *exactly* the estimated size
2143 for the new quota, we should allow the database to be created
2145 2007-12-10 David D. Kilzer <ddkilzer@webkit.org>
2147 Bug 9683: Implement select.options.remove() method
2148 <http://bugs.webkit.org/show_bug.cgi?id=9683>
2152 Implement select.options.remove() by calling select.remove()
2153 with the same arguments. This is what MSIE 7 does, although its
2154 select.remove() method differs from WebKit's by throwing an
2155 exception when called with no arguments or with a negative
2156 integer argument. Note that the DOM Level 1 documentation
2157 specifies that select.remove() does not throw an exception.
2159 Tests: fast/js/select-options-remove-gc.html
2160 fast/js/select-options-remove.html
2162 * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2163 (WebCore::JSHTMLOptionsCollection::remove): Added.
2164 * html/HTMLOptionsCollection.cpp:
2165 (WebCore::HTMLOptionsCollection::remove): Added.
2166 * html/HTMLOptionsCollection.h:
2167 * html/HTMLOptionsCollection.idl:
2169 2007-12-09 Sam Weinig <sam@webkit.org>
2171 Rubber stamped by Mark Rowe.
2173 * WebCore.xcodeproj/project.pbxproj: Add missing DerivedSources files.
2175 2007-12-09 Oliver Hunt <oliver@apple.com>
2179 Correction, 'z' and 'Z' are the only commands that cannot have an extended
2182 * svg/SVGParserUtilities.cpp:
2183 (WebCore::SVGPathParser::parseSVG):
2185 2007-12-09 Oliver Hunt <oliver@apple.com>
2189 Prevent unlimited iteration in the case of invalid path data.
2191 The only path commands that can leave numbers trailing the command processing
2192 are 'm' and 'M', in which trailing numbers are parsed as arguments to an
2193 implicit lineto command. In any case we should just terminate as an invalid
2196 * svg/SVGParserUtilities.cpp:
2197 (WebCore::SVGPathParser::parseSVG):
2199 2007-12-09 Luca Bruno <lethalman88@gmail.com>
2201 Reviewed by Alp Toker.
2203 http://bugs.webkit.org/show_bug.cgi?id=15825
2204 [GTK] curl - slow dns causing hangs.
2206 Create a vector of jobs, to satisfy requests in the right order.
2207 Set a limit to the number of simultaneous connections.
2209 * platform/network/curl/ResourceHandleManager.cpp:
2210 (WebCore::maxRunningJobs): added
2211 (WebCore::ResourceHandleManager::ResourceHandleManager):
2212 (WebCore::ResourceHandleManager::removeFromCurl):
2213 (WebCore::ResourceHandleManager::startScheduledJobs):
2215 * platform/network/curl/ResourceHandleManager.h:
2216 (WebCore::ResourceHandleList): removed
2217 (WebCore::ResourceHandleManager::m_runningJobs): added
2218 (WebCore::ResourceHandleManager::m_resourceHandleListHead): removed
2219 (WebCore::ResourceHandleManager::m_resourceHandleList): added
2221 2007-12-08 Sam Weinig <sam@webkit.org>
2225 Cleanup kjs_window.h/cpp.
2227 * bindings/js/kjs_window.cpp:
2228 (KJS::WindowPrivate::WindowPrivate):
2229 (KJS::DOMWindowTimer::DOMWindowTimer):
2230 (KJS::Window::Window):
2231 (KJS::Window::retrieveWindow):
2232 (KJS::Window::retrieveActive):
2233 (KJS::Window::retrieve):
2234 (KJS::Window::location):
2235 (KJS::Window::mark):
2237 (KJS::parseModalDialogFeatures):
2238 (KJS::floatFeature):
2239 (KJS::canShowModalDialog):
2240 (KJS::canShowModalDialogNow):
2241 (KJS::showModalDialog):
2242 (KJS::Window::getValueProperty):
2243 (KJS::Window::getOwnPropertySlot):
2244 (KJS::Window::globalExec):
2245 (KJS::Window::setListener):
2246 (KJS::Window::getListener):
2247 (KJS::Window::findOrCreateJSEventListener):
2248 (KJS::Window::findOrCreateJSUnprotectedEventListener):
2249 (KJS::Window::clearHelperObjectProperties):
2250 (KJS::Window::setCurrentEvent):
2251 (KJS::WindowProtoFuncAToB::callAsFunction):
2252 (KJS::WindowProtoFuncBToA::callAsFunction):
2253 (KJS::WindowProtoFuncOpen::callAsFunction):
2254 (KJS::WindowProtoFuncSetTimeout::callAsFunction):
2255 (KJS::WindowProtoFuncClearTimeout::callAsFunction):
2256 (KJS::WindowProtoFuncSetInterval::callAsFunction):
2257 (KJS::WindowProtoFuncAddEventListener::callAsFunction):
2258 (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
2259 (KJS::WindowProtoFuncShowModalDialog::callAsFunction):
2260 (KJS::WindowProtoFuncNotImplemented::callAsFunction):
2261 * bindings/js/kjs_window.h:
2262 (KJS::PausedTimeouts::PausedTimeouts):
2263 (KJS::PausedTimeouts::takeTimeouts):
2264 (KJS::ScheduledAction::ScheduledAction):
2266 2007-12-08 Sam Weinig <sam@webkit.org>
2270 Move window scrolling, moving and resizing methods from KJS::Window
2271 to WebCore::DOMWindow so that there bindings can be autogenerated.
2273 Tests: fast/dom/Window/window-resize-and-move-arguments.html
2274 fast/dom/Window/window-scroll-arguments.html
2276 * WebCore.xcodeproj/project.pbxproj:
2277 * bindings/js/kjs_window.cpp:
2278 (KJS::Window::getValueProperty): Remove extraneous allowsAccessFrom check.
2279 (KJS::WindowProtoFuncOpen::callAsFunction):
2280 (KJS::WindowProtoFuncNotImplemented::callAsFunction): Remove extraneous allowsAccessFrom check.
2281 * bindings/js/kjs_window.h:
2282 * bindings/scripts/CodeGeneratorJS.pm: Add new extended attribute
2283 to ensure that the no less than the declared number of attributes
2285 * page/DOMWindow.cpp:
2286 (WebCore::DOMWindow::adjustWindowRect): Moved from kjs_window.
2287 (WebCore::DOMWindow::scrollBy):
2288 (WebCore::DOMWindow::scrollTo):
2289 (WebCore::DOMWindow::moveBy):
2290 (WebCore::DOMWindow::moveTo):
2291 (WebCore::DOMWindow::resizeBy):
2292 (WebCore::DOMWindow::resizeTo):
2294 (WebCore::DOMWindow::scroll):
2295 * page/DOMWindow.idl:
2297 2007-12-08 Kevin Ollivier <kevino@theolliviers.com>
2299 Reviewed by Alp Toker.
2301 http://bugs.webkit.org/show_bug.cgi?id=14651
2302 [CURL] didReceiveResponse() only called for HTTP loads
2304 http://bugs.webkit.org/show_bug.cgi?id=14583
2305 [GDK] file:// relative CSS include URLs handled incorrectly
2307 Make sure CURL sets the ResourceResponse URL and calls
2308 didReceiveResponse for local files too.
2310 * platform/network/curl/ResourceHandleManager.cpp:
2311 (WebCore::writeCallback):
2313 2007-12-08 Oliver Hunt <oliver@apple.com>
2317 Split the ENABLE_SVG_EXPERIMENTAL_FEATURES flag into separate flags.
2319 Fixes <rdar://problem/5620249> Must disable SVG animation
2320 <rdar://problem/5612772> Disable SVG filters on Mac to match Windows behavior
2322 In order to allow finer grained control over the set of SVG features
2323 this patch splits ENABLE_SVG_EXPERIMENTAL_FEATURES into the following
2325 ENABLE_SVG_ANIMATION
2331 by default only ENABLE_SVG_AS_IMAGE and ENABLE_SVG_USE are set.
2333 * Configurations/WebCore.xcconfig:
2334 * DerivedSources.make:
2335 Handle the increased number of build flags that may be necessary
2337 * WebCore.SVG.Animation.exp: Added.
2338 * WebCore.SVG.Filters.exp: Added.
2340 We now may not need the animation or filter exports so
2341 these need to be separate.
2343 * WebCore.vcproj/WebCore.vcproj:
2344 * WebCore.vcproj/build-generated-files.sh:
2345 Update for new flags
2347 Remainder of changes are to swap ENABLE(SVG_EXPERIMENTAL_FEATURES)
2348 with the appropriate specific feature flag.
2349 * bindings/js/JSSVGElementWrapperFactory.cpp:
2350 (WebCore::createJSSVGWrapper):
2351 * bindings/objc/DOM.mm:
2352 (WebCore::createElementClassMap):
2353 * dom/make_names.pl:
2354 * loader/CachedImage.cpp:
2355 (WebCore::CachedImage::createImage):
2356 * page/DOMWindow.idl:
2357 * rendering/RenderPath.cpp:
2358 (WebCore::RenderPath::absoluteClippedOverflowRect):
2359 * rendering/RenderSVGContainer.cpp:
2360 (WebCore::RenderSVGContainer::absoluteClippedOverflowRect):
2361 * rendering/RenderSVGImage.cpp:
2362 (WebCore::RenderSVGImage::absoluteClippedOverflowRect):
2363 * rendering/RenderSVGRoot.cpp:
2364 (WebCore::RenderSVGRoot::paint):
2365 (WebCore::RenderSVGRoot::absoluteClippedOverflowRect):
2366 * rendering/RenderSVGText.cpp:
2367 (WebCore::RenderSVGText::absoluteClippedOverflowRect):
2368 * rendering/SVGRenderSupport.cpp:
2369 (WebCore::prepareToRenderSVGContent):
2370 (WebCore::finishRenderSVGContent):
2371 * svg/SVGAnimateElement.cpp:
2372 * svg/SVGAnimateElement.h:
2373 * svg/SVGAnimateElement.idl:
2374 * svg/SVGAnimateMotionElement.cpp:
2375 * svg/SVGAnimateMotionElement.h:
2376 * svg/SVGAnimateTransformElement.cpp:
2377 * svg/SVGAnimateTransformElement.h:
2378 * svg/SVGAnimateTransformElement.idl:
2379 * svg/SVGComponentTransferFunctionElement.cpp:
2380 * svg/SVGComponentTransferFunctionElement.h:
2381 * svg/SVGComponentTransferFunctionElement.idl:
2382 * svg/SVGDocumentExtensions.cpp:
2383 (WebCore::SVGDocumentExtensions::startAnimations):
2384 * svg/SVGFEBlendElement.cpp:
2385 * svg/SVGFEBlendElement.h:
2386 * svg/SVGFEBlendElement.idl:
2387 * svg/SVGFEColorMatrixElement.cpp:
2388 * svg/SVGFEColorMatrixElement.h:
2389 * svg/SVGFEColorMatrixElement.idl:
2390 * svg/SVGFEComponentTransferElement.cpp:
2391 * svg/SVGFEComponentTransferElement.h:
2392 * svg/SVGFEComponentTransferElement.idl:
2393 * svg/SVGFECompositeElement.cpp:
2394 * svg/SVGFECompositeElement.h:
2395 * svg/SVGFECompositeElement.idl:
2396 * svg/SVGFEDiffuseLightingElement.cpp:
2397 * svg/SVGFEDiffuseLightingElement.h:
2398 * svg/SVGFEDiffuseLightingElement.idl:
2399 * svg/SVGFEDisplacementMapElement.cpp:
2400 * svg/SVGFEDisplacementMapElement.h:
2401 * svg/SVGFEDisplacementMapElement.idl:
2402 * svg/SVGFEDistantLightElement.cpp:
2403 * svg/SVGFEDistantLightElement.h:
2404 * svg/SVGFEDistantLightElement.idl:
2405 * svg/SVGFEFloodElement.cpp:
2406 * svg/SVGFEFloodElement.h:
2407 * svg/SVGFEFloodElement.idl:
2408 * svg/SVGFEFuncAElement.cpp:
2409 * svg/SVGFEFuncAElement.h:
2410 * svg/SVGFEFuncAElement.idl:
2411 * svg/SVGFEFuncBElement.cpp:
2412 * svg/SVGFEFuncBElement.h:
2413 * svg/SVGFEFuncBElement.idl:
2414 * svg/SVGFEFuncGElement.cpp:
2415 * svg/SVGFEFuncGElement.h:
2416 * svg/SVGFEFuncGElement.idl:
2417 * svg/SVGFEFuncRElement.cpp:
2418 * svg/SVGFEFuncRElement.h:
2419 * svg/SVGFEFuncRElement.idl:
2420 * svg/SVGFEGaussianBlurElement.cpp:
2421 * svg/SVGFEGaussianBlurElement.h:
2422 * svg/SVGFEGaussianBlurElement.idl:
2423 * svg/SVGFEImageElement.cpp:
2424 * svg/SVGFEImageElement.h:
2425 * svg/SVGFEImageElement.idl:
2426 * svg/SVGFELightElement.cpp:
2427 * svg/SVGFELightElement.h:
2428 * svg/SVGFEMergeElement.cpp:
2429 * svg/SVGFEMergeElement.h:
2430 * svg/SVGFEMergeElement.idl:
2431 * svg/SVGFEMergeNodeElement.cpp:
2432 * svg/SVGFEMergeNodeElement.h:
2433 * svg/SVGFEMergeNodeElement.idl:
2434 * svg/SVGFEOffsetElement.cpp:
2435 * svg/SVGFEOffsetElement.h:
2436 * svg/SVGFEOffsetElement.idl:
2437 * svg/SVGFEPointLightElement.cpp:
2438 * svg/SVGFEPointLightElement.h:
2439 * svg/SVGFEPointLightElement.idl:
2440 * svg/SVGFESpecularLightingElement.cpp:
2441 * svg/SVGFESpecularLightingElement.h:
2442 * svg/SVGFESpecularLightingElement.idl:
2443 * svg/SVGFESpotLightElement.cpp:
2444 * svg/SVGFESpotLightElement.h:
2445 * svg/SVGFESpotLightElement.idl:
2446 * svg/SVGFETileElement.cpp:
2447 * svg/SVGFETileElement.h:
2448 * svg/SVGFETileElement.idl:
2449 * svg/SVGFETurbulenceElement.cpp:
2450 * svg/SVGFETurbulenceElement.h:
2451 * svg/SVGFETurbulenceElement.idl:
2452 * svg/SVGFilterElement.cpp:
2453 * svg/SVGFilterElement.h:
2454 * svg/SVGFilterElement.idl:
2455 * svg/SVGFilterPrimitiveStandardAttributes.cpp:
2457 (WebCore::SVGTimer::animationsByElement):
2458 * svg/SVGUseElement.cpp:
2459 (WebCore::SVGUseElement::buildPendingResource):
2460 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2461 * svg/SVGUseElement.h:
2462 * svg/TimeScheduler.cpp:
2463 (WebCore::TimeScheduler::connectIntervalTimer):
2464 (WebCore::TimeScheduler::disconnectIntervalTimer):
2465 * svg/graphics/SVGResourceFilter.cpp:
2466 * svg/graphics/SVGResourceFilter.h:
2467 * svg/graphics/cg/SVGResourceFilterCg.cpp:
2468 * svg/graphics/cg/SVGResourceFilterCg.mm:
2469 * svg/graphics/filters/SVGDistantLightSource.h:
2470 * svg/graphics/filters/SVGFEBlend.cpp:
2471 * svg/graphics/filters/SVGFEBlend.h:
2472 * svg/graphics/filters/SVGFEColorMatrix.cpp:
2473 * svg/graphics/filters/SVGFEColorMatrix.h:
2474 * svg/graphics/filters/SVGFEComponentTransfer.cpp:
2475 * svg/graphics/filters/SVGFEComponentTransfer.h:
2476 * svg/graphics/filters/SVGFEComposite.cpp:
2477 * svg/graphics/filters/SVGFEComposite.h:
2478 * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
2479 * svg/graphics/filters/SVGFEConvolveMatrix.h:
2480 * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
2481 * svg/graphics/filters/SVGFEDiffuseLighting.h:
2482 * svg/graphics/filters/SVGFEDisplacementMap.cpp:
2483 * svg/graphics/filters/SVGFEDisplacementMap.h:
2484 * svg/graphics/filters/SVGFEFlood.cpp:
2485 * svg/graphics/filters/SVGFEFlood.h:
2486 * svg/graphics/filters/SVGFEGaussianBlur.cpp:
2487 * svg/graphics/filters/SVGFEGaussianBlur.h:
2488 * svg/graphics/filters/SVGFEImage.cpp:
2489 * svg/graphics/filters/SVGFEImage.h:
2490 * svg/graphics/filters/SVGFEMerge.cpp:
2491 * svg/graphics/filters/SVGFEMerge.h:
2492 * svg/graphics/filters/SVGFEMorphology.cpp:
2493 * svg/graphics/filters/SVGFEMorphology.h:
2494 * svg/graphics/filters/SVGFEOffset.cpp:
2495 * svg/graphics/filters/SVGFEOffset.h:
2496 * svg/graphics/filters/SVGFESpecularLighting.cpp:
2497 * svg/graphics/filters/SVGFESpecularLighting.h:
2498 * svg/graphics/filters/SVGFETile.h:
2499 * svg/graphics/filters/SVGFETurbulence.cpp:
2500 * svg/graphics/filters/SVGFETurbulence.h:
2501 * svg/graphics/filters/SVGFilterEffect.cpp:
2502 * svg/graphics/filters/SVGFilterEffect.h:
2503 * svg/graphics/filters/SVGLightSource.cpp:
2504 * svg/graphics/filters/SVGLightSource.h:
2505 * svg/graphics/filters/SVGPointLightSource.h:
2506 * svg/graphics/filters/SVGSpotLightSource.h:
2507 * svg/graphics/filters/cg/SVGFEBlendCg.mm:
2508 * svg/graphics/filters/cg/SVGFEColorMatrixCg.mm:
2509 * svg/graphics/filters/cg/SVGFEComponentTransferCg.mm:
2510 * svg/graphics/filters/cg/SVGFECompositeCg.mm:
2511 * svg/graphics/filters/cg/SVGFEDiffuseLightingCg.mm:
2512 * svg/graphics/filters/cg/SVGFEDisplacementMapCg.mm:
2513 * svg/graphics/filters/cg/SVGFEFloodCg.mm:
2514 * svg/graphics/filters/cg/SVGFEGaussianBlurCg.mm:
2515 * svg/graphics/filters/cg/SVGFEHelpersCg.h:
2516 * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
2517 * svg/graphics/filters/cg/SVGFEImageCg.mm:
2518 * svg/graphics/filters/cg/SVGFEMergeCg.mm:
2519 * svg/graphics/filters/cg/SVGFEOffsetCg.mm:
2520 * svg/graphics/filters/cg/SVGFESpecularLightingCg.mm:
2521 * svg/graphics/filters/cg/SVGFETileCg.mm:
2522 * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
2523 * svg/graphics/filters/cg/WKArithmeticFilter.h:
2524 * svg/graphics/filters/cg/WKArithmeticFilter.m:
2525 * svg/graphics/filters/cg/WKComponentMergeFilter.h:
2526 * svg/graphics/filters/cg/WKComponentMergeFilter.m:
2527 * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
2528 * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
2529 * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
2530 * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
2531 * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
2532 * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
2533 * svg/graphics/filters/cg/WKDistantLightFilter.h:
2534 * svg/graphics/filters/cg/WKDistantLightFilter.m:
2535 * svg/graphics/filters/cg/WKGammaTransferFilter.h:
2536 * svg/graphics/filters/cg/WKGammaTransferFilter.m:
2537 * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
2538 * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
2539 * svg/graphics/filters/cg/WKLinearTransferFilter.h:
2540 * svg/graphics/filters/cg/WKLinearTransferFilter.m:
2541 * svg/graphics/filters/cg/WKNormalMapFilter.h:
2542 * svg/graphics/filters/cg/WKNormalMapFilter.m:
2543 * svg/graphics/filters/cg/WKPointLightFilter.h:
2544 * svg/graphics/filters/cg/WKPointLightFilter.m:
2545 * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
2546 * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
2547 * svg/graphics/filters/cg/WKSpotLightFilter.h:
2548 * svg/graphics/filters/cg/WKSpotLightFilter.m:
2549 * svg/graphics/filters/cg/WKTableTransferFilter.h:
2550 * svg/graphics/filters/cg/WKTableTransferFilter.m:
2551 * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
2552 * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
2555 2007-12-08 Dan Bernstein <mitz@apple.com>
2557 Reviewed by Adele Peterson.
2559 - fix two bugs in parsing of stylesheets in <style> elements created by
2561 1. each such stylesheet is parsed twice, once when the text node is
2562 added and again when the </style> tag is reached
2563 2. re-inserting such a <style> element into the document fails to
2564 re-parse and apply its stylesheet.
2566 Test for bug #2: fast/dom/HTMLStyleElement/insert-parser-generated.html
2568 * html/HTMLStyleElement.cpp:
2569 (WebCore::HTMLStyleElement::finishedParsing):
2570 * svg/SVGStyleElement.cpp:
2571 (WebCore::SVGStyleElement::finishedParsing):
2573 2007-12-07 Sam Weinig <sam@webkit.org>
2577 - Removes the faulty isSafeScript implementation that was only
2579 - Renames isSafeScript to allowsAccessFrom.
2581 * bindings/js/JSDOMWindowCustom.cpp:
2582 (WebCore::JSDOMWindow::customGetOwnPropertySlot):
2583 (WebCore::JSDOMWindow::customPut):
2584 * bindings/js/kjs_dom.cpp:
2585 (WebCore::checkNodeSecurity):
2586 * bindings/js/kjs_window.cpp:
2587 (KJS::createWindow):
2588 (KJS::Window::getValueProperty):
2589 (KJS::Window::namedItemGetter):
2590 (KJS::Window::getOwnPropertySlot):
2592 (KJS::Window::allowsAccessFrom):
2593 (KJS::Window::setListener):
2594 (KJS::Window::getListener):
2595 (KJS::WindowProtoFuncOpen::callAsFunction):
2596 (KJS::WindowProtoFuncSetTimeout::callAsFunction):
2597 (KJS::WindowProtoFuncClearTimeout::callAsFunction):
2598 (KJS::WindowProtoFuncSetInterval::callAsFunction):
2599 (KJS::WindowProtoFuncAddEventListener::callAsFunction):
2600 (KJS::WindowProtoFuncRemoveEventListener::callAsFunction):
2601 (KJS::WindowProtoFuncNotImplemented::callAsFunction):
2602 (KJS::Location::getOwnPropertySlot):
2603 (KJS::Location::put):
2604 (KJS::LocationProtoFuncReplace::callAsFunction):
2605 (KJS::LocationProtoFuncReload::callAsFunction):
2606 (KJS::LocationProtoFuncAssign::callAsFunction):
2607 (KJS::LocationProtoFuncToString::callAsFunction):
2608 * bindings/js/kjs_window.h:
2609 (KJS::Window::allowsAccessFrom):
2610 * bindings/objc/WebScriptObject.mm:
2611 (-[WebScriptObject _isSafeScript]): Reverse caller/argument of allowsAccessFrom to match
2613 * bindings/scripts/CodeGeneratorJS.pm:
2615 2007-12-08 Rob Buis <buis@kde.org>
2619 http://bugs.webkit.org/show_bug.cgi?id=15464
2620 SVGLengthList allows bad values
2622 Be more strict with svg lengths without a unit identifier.
2624 Test: svg/custom/invalid-lengthlist.svg
2626 * svg/SVGLength.cpp:
2627 (WebCore::SVGLength::setValueAsString):
2629 2007-12-08 Rob Buis <buis@kde.org>
2631 Mac Tiger build fix.
2633 Use the wtf prefix when including MathExtras.h.
2635 * rendering/RenderMedia.cpp:
2637 2007-12-08 Alp Toker <alp@atoker.com>
2639 GTK+ build fix (for ENABLE_VIDEO builds):
2641 Include MathExtras.h to get isfinite().
2643 * rendering/RenderMedia.cpp:
2645 2007-12-08 Rob Buis <buis@kde.org>
2649 http://bugs.webkit.org/show_bug.cgi?id=15528
2650 svg_dynamic_cast should be removed
2652 Replace svg_dynamic_cast with a combination of
2653 isSVGElement and static_cast.
2655 * rendering/SVGRootInlineBox.cpp:
2656 (WebCore::SVGRootInlineBox::buildLayoutInformation):
2657 (WebCore::SVGRootInlineBox::buildTextChunks):
2658 * svg/SVGAnimationElement.cpp:
2659 (WebCore::SVGAnimationElement::targetElement):
2661 * svg/SVGElementInstance.cpp:
2662 (WebCore::SVGElementInstance::updateInstance):
2663 * svg/SVGFilterElement.cpp:
2664 (WebCore::SVGFilterElement::canvasResource):
2665 * svg/SVGGradientElement.cpp:
2666 (WebCore::SVGGradientElement::buildStops):
2667 * svg/SVGLocatable.cpp:
2668 (WebCore::SVGLocatable::getTransformToElement):
2669 * svg/SVGMaskElement.cpp:
2670 (WebCore::SVGMaskElement::drawMaskerContent):
2671 * svg/SVGSwitchElement.cpp:
2672 (WebCore::SVGSwitchElement::childShouldCreateRenderer):
2673 * svg/SVGUseElement.cpp:
2674 (WebCore::SVGUseElement::insertedIntoDocument):
2675 (WebCore::SVGUseElement::buildPendingResource):
2676 (WebCore::SVGUseElement::buildInstanceTree):
2677 (WebCore::SVGUseElement::handleDeepUseReferencing):
2678 (WebCore::SVGUseElement::buildShadowTree):
2679 (WebCore::SVGUseElement::expandUseElementsInShadowTree):
2680 (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
2681 * svg/graphics/SVGResource.cpp:
2682 (WebCore::getResourceById):
2684 2007-12-07 Antti Koivisto <antti@apple.com>
2688 Partial fix for <rdar://problem/5633400>
2689 Transformed <video>, <img>, <embed> are not clipped correctly until a repaint is forced
2691 Fix video painting when transform is applied.
2693 Test: media/video-transformed.html
2695 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2696 (WebCore::MediaPlayerPrivate::paint):
2698 2007-12-07 Dan Bernstein <mitz@apple.com>
2700 Reviewed by Sam Weinig.
2702 - fix http://bugs.webkit.org/show_bug.cgi?id=16348
2703 @font-face does not affect the default style
2705 Test: fast/css/font-face-default-font.html
2708 (WebCore::Document::recalcStyle): Pass our font selector to
2709 Font::update() if we already have one.
2711 2007-12-07 Darin Adler <darin@apple.com>
2715 * bridge/win/GlobalHistoryWin.cpp:
2716 (WebCore::historyContains): Missed a rename.
2718 2007-12-07 Brady Eidson <beidson@apple.com>
2720 Reviewed by Anders and Darin
2722 When a statement bumps up against the quota and the UI Delegate grants more space, we need to
2723 actually set the new maximum size on the SQLiteDatabase (in addition to storing the new max quota
2724 in the DatabaseTracker, which was already done)
2726 * storage/SQLTransaction.cpp:
2727 (WebCore::SQLTransaction::runStatements): If a statement is being retried, set the maximum size on
2728 the SQLiteDatabase to the new maximum size
2730 2007-12-07 Darin Adler <darin@apple.com>
2734 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Tiger didn't even have
2735 QTKIT_VERSION_MAX_ALLOWED, so add logic to work without that.
2737 2007-12-07 Darin Adler <darin@apple.com>
2739 - fix 64-bit build, hopefully without breaking Tiger build
2741 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2742 (WebCore::MediaPlayerPrivate::updateStates):
2743 Don't use Movies.h constants that are nonexistent in 64-bit.
2744 Define the new QTMovie.h constants, though, when using an older QTKit.
2746 2007-12-07 Brady Eidson <beidson@apple.com>
2750 Fix <rdar://problem/5636115> - Prompted for quota increase to create database when it already existed
2752 * storage/DatabaseTracker.cpp:
2753 (WebCore::DatabaseTracker::canEstablishDatabase): Check hasEntryForDatabase before doing any prompting
2754 (WebCore::DatabaseTracker::hasEntryForDatabase): Check and see if this database already exists
2755 * storage/DatabaseTracker.h:
2757 2007-12-07 Darin Adler <darin@apple.com>
2761 - http://bugs.webkit.org/show_bug.cgi?id=15981
2762 speed up visited-link code a bit
2764 * bridge/GlobalHistory.h: Change historyContains to take a character pointer plus length
2765 instead of requiring a DeprecatedString.
2767 * bridge/mac/GlobalHistoryMac.mm: (WebCore::historyContains): Updated for above change.
2768 Also removes pointless "fast Latin-1" case that was never used.
2769 * bridge/win/GlobalHistoryWin.cpp: (WebCore::historyContains): Ditto.
2770 * platform/gtk/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
2771 * platform/wx/TemporaryLinkStubs.cpp: (WebCore::historyContains): Ditto.
2773 * css/CSSStyleSelector.cpp:
2774 (WebCore::findHash): Added. Helper for cleanpath.
2775 (WebCore::findSlashDotDotSlash): Ditto.
2776 (WebCore::findSlashSlash): Ditto.
2777 (WebCore::findSlashDotSlash): Ditto.
2778 (WebCore::cleanpath): Changed to use fast helper functions instead of slower general-purpose
2779 DeprecatedString find function.
2780 (WebCore::containsColonSlashSlash): Added. Helper for checkPseudoState.
2781 (WebCore::checkPseudoState): Got rid of reference count churn by using an AtomicString*
2782 instead of an AtomicString for the attribute value. Changed to use fast helper function
2783 instead of slower DeprecatedString::contains function, and also made the fast case not
2784 bother allocating a DeprecatedConstString.
2786 - unrelated tiny cleanup
2788 * platform/graphics/svg/cg/SVGPaintServerGradientCg.cpp:
2789 (WebCore::releaseCachedStops): Use static_cast instead of reinterpret_cast.
2790 (WebCore::cgGradientCallback): Ditto.
2792 2007-12-07 Darin Adler <darin@apple.com>
2794 Fix build on Tiger (Mark Rowe told me how).
2796 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2797 Include <objc/objc-runtime.h>, which existed back on Tiger,
2798 rather than <objc/runtime.h>, which did not.
2800 2007-12-07 Geoffrey Garen <ggaren@apple.com>
2802 Build fix: rolling out last build fix to change #include path.
2804 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2806 2007-12-07 Steve Falkenburg <sfalken@apple.com>
2808 Re-named our B&I flag from BUILDBOT to PRODUCTION.
2810 Reviewed by Sam Weinig.
2812 * WebCore.vcproj/WebCore.make:
2814 2007-12-07 Geoffrey Garen <ggaren@apple.com>
2816 Build fix: corrected #include path.
2818 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2820 2007-12-07 Geoffrey Garen <ggaren@apple.com>
2822 Reviewed by Sam Weinig.
2824 Added some namespace qualifications and a forwarding header, now that
2825 KJS::Node is sometimes #included in WebCore by JavaScriptCore headers.
2827 * ForwardingHeaders/wtf/ListRefPtr.h: Added.
2828 * bindings/js/JSXSLTProcessor.cpp:
2829 (KJS::JSXSLTProcessorPrototypeFunctionTransformToFragment::callAsFunction):
2830 * bindings/js/kjs_binding.cpp:
2831 (KJS::ScriptInterpreter::getDOMNodeForDocument):
2832 (KJS::ScriptInterpreter::forgetDOMNodeForDocument):
2833 (KJS::ScriptInterpreter::putDOMNodeForDocument):
2834 (KJS::ScriptInterpreter::markDOMNodesForDocument):
2835 (KJS::ScriptInterpreter::updateDOMNodeDocument):
2837 2007-12-07 Adam Roben <aroben@apple.com>
2839 Add SoftLinking.h for Windows and use it in a few places
2843 * WebCore.vcproj/WebCore.vcproj: Added new file to project.
2844 * platform/win/PlatformScrollBarSafari.cpp: Use SoftLinking.h.
2845 (WebCore::PlatformScrollbar::PlatformScrollbar): Removed manual
2847 (WebCore::PlatformScrollbar::paintButton): Check for the presence of
2848 the SafariTheme library now that we can't check for the presence of
2849 paintThemePart directly.
2850 (WebCore::PlatformScrollbar::paintTrack): Ditto.
2851 (WebCore::PlatformScrollbar::paintThumb): Ditto.
2852 * platform/win/SoftLinking.h: Copied from WebCore/platform/mac/SoftLinking.h.
2853 * rendering/RenderThemeSafari.cpp: Same basic changes as to
2854 PlatformScrollBarSafari.cpp.
2855 (WebCore::RenderThemeSafari::RenderThemeSafari):
2856 (WebCore::RenderThemeSafari::isControlStyled):
2857 (WebCore::RenderThemeSafari::paintCapsLockIndicator):
2858 * rendering/RenderThemeSafari.h: Removed m_themeDLL member.
2860 2007-12-07 Darin Adler <darin@apple.com>
2864 - fix <rdar://problem/5608795> CrashTracer: 481 crashes in Safari
2865 at WebCore::HTMLSelectElement::saveState const + 152
2867 Test: fast/forms/select-set-inner.html
2869 * dom/ContainerNode.cpp:
2870 (WebCore::ContainerNode::removeChildren): Added a return value, as with other
2871 calls that change children, so we can optimize for the case where it does nothing.
2872 (WebCore::ContainerNode::cloneChildNodes): Changed parameter type to ContainerNode.
2873 * dom/ContainerNode.h: See above.
2875 * html/HTMLOptGroupElement.cpp:
2876 (WebCore::HTMLOptGroupElement::removeChildren): Override removeChildren and call
2877 recalcSelectOptions in that case.
2878 (WebCore::HTMLOptGroupElement::childrenChanged): Override childrenChanged instead of
2879 addChild, for consistency with HTMLSelectElement; no need to override both.
2880 (WebCore::HTMLOptGroupElement::groupLabelText): Made const.
2881 * html/HTMLOptGroupElement.h: See above.
2883 * html/HTMLSelectElement.cpp: Don't override addChild any more, because we already
2884 override childrenChanged, and addChild calls that.
2885 (WebCore::HTMLSelectElement::removeChildren): Override removeChildren and call
2886 recalcSelectOptions in that case.
2887 (WebCore::HTMLSelectElement::recalcListItems): Tightened up the code a little bit
2888 by using a for loop and traverseNextSibling. Also added some new comments and
2889 removed some obsolete ones.
2890 (WebCore::HTMLSelectElement::checkListItems): Added. Debug-only check to make
2891 sure we don't have a stale list items vector.
2892 * html/HTMLSelectElement.h: Changed listItems() to invoke checkListItems().
2893 This will help us catch cases where we have too few calls to setRecalcListItems.
2895 2007-12-07 Dan Bernstein <mitz@apple.com>
2897 Reviewed by Darin Adler.
2899 - WebCore part of fixing <rdar://problem/5499918> REGRESSION: insertion point in input field with custom border cuts holes in focus ring interior edges
2901 Test: fast/repaint/focus-ring.html
2903 * editing/SelectionController.cpp:
2904 (WebCore::SelectionController::caretRepaintRect): Changed to return just
2905 the caret rect without any padding.
2906 (WebCore::SelectionController::recomputeCaretRect): Changed to repaint
2907 just the caret rect without any padding.
2908 * platform/graphics/GraphicsContext.h: Removed setFocusRingClip() and
2909 clearFocusRingClip().
2910 * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
2911 * platform/graphics/cg/GraphicsContextCG.cpp: Ditto.
2912 * platform/graphics/cg/GraphicsContextPlatformPrivate.h: Removed
2913 m_focusRingClip member.
2914 * platform/graphics/mac/GraphicsContextMac.mm:
2915 (WebCore::GraphicsContext::drawFocusRing): Changed to call
2916 wkDrawFocusRing() once without setting up additional clip. On Leopard,
2917 wkDrawFocusRing() respects the context clip now. On Tiger, a
2918 transparency layer is used to apply clipping to the focus ring.
2919 * platform/graphics/qt/GraphicsContextQt.cpp: Removed focus ring clip
2921 * platform/graphics/wx/GraphicsContextWx.cpp: Ditto.
2922 * platform/mac/WebCoreSystemInterface.h: Removed the clipRect argument
2923 to wkDrawFocusRing().
2924 * platform/mac/WebCoreSystemInterface.mm: Ditto.
2925 * rendering/RenderLayer.cpp:
2926 (WebCore::setClip): Removed call to set the focus ring clip.
2927 (WebCore::restoreClip): Removed call to reset the focus ring clip.
2929 2007-12-07 Darin Adler <darin@apple.com>
2931 Reviewed by Antti Koivisto and Kevin Decker.
2933 - fix <rdar://problem/5601586> QtKit should be dynamically loaded upon need, not linked at startup
2935 Also did a lot of small tweaks to MediaPlayerPrivateQTKit.
2937 * WebCore.xcodeproj/project.pbxproj: Don't link to QTKit.
2939 * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Omit unneeded includes and declarations.
2940 Made a lot more functions const. Made a few more members private and a couple inline.
2941 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Added soft linking machinery for all the
2942 things we currently use in QTKit. It's a little more awkward for classes and other data objects
2943 than it is for functions, but still relatively straightforward, with no changes needed to the
2944 client code. Added using namespace directives. Made a cuePointTimerInterval constant and put
2945 it at the top of the file. Use 0 consistently instead of sometimes 0 and sometimes 0.0f.
2946 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Removed unneeded initialization of RetainPtr
2948 (WebCore::MediaPlayerPrivate::createQTMovie): Use adoptNS instead of autorelease.
2949 (WebCore::MediaPlayerPrivate::createQTMovieView): Ditto. Also use -[NSColor clearColor].
2950 (WebCore::MediaPlayerPrivate::createQTTime): Remove an unneeded type cast that had no effect.
2951 Changed to use long instead of int because that's the type for a QTTime time scale anyway.
2952 (WebCore::MediaPlayerPrivate::duration): Use a static_cast instead of a C-style cast.
2953 (WebCore::MediaPlayerPrivate::currentTime): Ditto. Also merged into a single expression.
2954 (WebCore::MediaPlayerPrivate::cuePointTimerFired): Added code to make a copy of the cue
2955 points set to avoid a potential problem with a set being modified as we iterate it.
2956 (WebCore::MediaPlayerPrivate::bytesLoaded): Removed unneeded null check of m_qtMovie.
2957 (WebCore::MediaPlayerPrivate::updateStates): Instead of comments explaining the numeric
2958 values, used the constants from the headers directly.
2959 (WebCore::MediaPlayerPrivate::getSupportedTypes): Instead of (QTMovieFileTypeOptions)0,
2960 pass the named constant with value 0, QTIncludeCommonTypes. Skipped the intermediate type
2961 of NSString to remove one cast. Replaced C-style cast with reinterpret_cast (arguably
2962 no better). Used RetainPtr instead of explicit CFRelease calls.
2964 * platform/mac/SoftLinking.h: Added macros to do soft linking for classes and for pointers.
2965 It's not quite as automatic as the soft linking we can do for functions, since these define
2966 functions to get the values, so you need to define macros to make what look like variable
2967 accesses turn into function calls. See MediaPlayerPrivateQTKit for the details.
2969 * html/HTMLMediaElement.h:
2970 * html/TimeRanges.h:
2971 * html/VoidCallback.h:
2972 * platform/graphics/MediaPlayer.h:
2973 Use angle brackets for wtf includes. Omit unneeded includes.
2975 2007-12-07 Dan Bernstein <mitz@apple.com>
2977 Reviewed by Darin Adler.
2979 - fix http://bugs.webkit.org/show_bug.cgi?id=16334
2980 <rdar://problem/5634923> REGRESSION (r28299): Homepage of any DotMac Web Gallery won't load completely
2982 Test: fast/dynamic/subtree-no-common-root-static-y.html
2984 * rendering/RenderObject.cpp:
2985 (WebCore::RenderObject::markContainingBlocksForLayout): Changed the call
2986 to setChildNeedsLayout() to not mark containing blocks and added a
2987 separate call to markContainingBlocksForLayout() that will not schedule
2988 a layout if we are already in the middle of scheduleRelayoutOfSubtree().
2990 2007-12-07 Alexey Proskuryakov <ap@webkit.org>
2994 http://bugs.webkit.org/show_bug.cgi?id=16325
2995 <rdar://problem/5632997> REGRESSION: www.xerox.ru doesn't work
2997 Test: http/tests/misc/empty-cookie.html
2999 * platform/mac/CookieJar.mm:
3000 (WebCore::setCookies): Don't store empty cookies.
3001 (WebCore::cookies): Filter out empty cookies if we have them, as they could have been set
3002 with an earlier version of Leopard!
3004 2007-12-06 Ada Chan <adachan@apple.com>
3006 Fixed the if statement (ERROR_SUCCESS is 0 and we were actually
3007 returning true when there's an error).
3011 * platform/win/FileSystemWin.cpp:
3012 (WebCore::makeAllDirectories):
3014 2007-12-06 Darin Adler <darin@apple.com>
3016 - fix broken regression test
3018 * bindings/js/kjs_binding.cpp:
3019 (KJS::setDOMException): Oops, this was just supposed to be PERMISSION_DENIED.
3021 2007-12-06 Darin Adler <darin@apple.com>
3023 Reviewed by Sam Weinig.
3025 - fix http://bugs.webkit.org/show_bug.cgi?id=16332
3026 ObjC DOM exception object descriptions should include the exception name
3028 * WebCore.pro: Added ExceptionCode.cpp.
3029 * WebCore.vcproj/WebCore.vcproj: Added ExceptionCode.cpp.
3030 * WebCore.xcodeproj/project.pbxproj: Added ExceptionCode.cpp.
3031 * WebCoreSources.bkl: Added ExceptionCode.cpp.
3033 * bindings/js/kjs_binding.cpp: (KJS::setDOMException): Moved the code to decompose an
3034 ExceptionCode into ExceptionCode.h/cpp -- getExceptionCodeDescription. Also removed
3035 the many unneeded includes that were here. Had to keep one special case here, for
3038 * bindings/objc/ExceptionHandlers.mm: (WebCore::raiseDOMException): Changed to use the
3039 new getExceptionCodeDescription function so that this shares the exception name
3040 information that was previously only available to JavaScript.
3042 * dom/ExceptionCode.cpp: Copied from bindings/js/kjs_binding.cpp.
3043 (WebCore::getExceptionCodeDescription): Added some assertions, and made the function
3044 handle exception names in a slightly more robust way that is not subject to integer
3045 overflow. (Not a real world issue since we should never receive a bad exception code.)
3047 * dom/ExceptionCode.h: Added the ExceptionCodeDescription struct and the
3048 getExceptionCodeDescription function.
3050 * svg/SVGException.h: Added a missing #include and got rid of some comments. Some of
3051 the comments were mildly helpful, but others were incorrect. This now matches the other
3052 exception-related headers such as RangeException.h.
3054 2007-12-06 Brady Eidson <beidson@apple.com>
3058 Fixed a glaring bug that would prevent a statement from getting run a second time
3060 * storage/SQLStatement.cpp:
3061 (WebCore::SQLStatement::execute): Clear failure due to quota *before* we check the error
3063 (WebCore::SQLStatement::clearFailureDueToQuota): Only clear the error if it was a quota error
3065 2007-12-06 Timothy Hatcher <timothy@apple.com>
3067 Reviewed by Oliver Hunt.
3069 Use keydown instead of keypress so keyIdentifier can be used.
3071 * page/inspector/ConsolePanel.js: Use keydown instead of keypress.
3072 * page/inspector/DatabasePanel.js: Ditto.
3073 * page/inspector/inspector.js: Ditto. Plus call removeEventListener
3074 before deleting windowLoaded.
3076 2007-12-06 Adam Roben <aroben@apple.com>
3078 Rename FontsTable.plist to FontsList.plist
3080 Rubberstamped by Hyatt.
3082 * platform/graphics/win/FontDatabase.cpp:
3084 2007-12-06 Brady Eidson <beidson@apple.com>
3088 Tweaked a comment and a few assertions from my last checkin
3090 * storage/SQLStatement.cpp:
3091 (WebCore::SQLStatement::execute):
3092 (WebCore::SQLStatement::clearFailureDueToQuota):
3093 (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
3095 2007-12-06 Brady Eidson <beidson@apple.com>
3099 Finished hooking up UI Delegate for databases - Database operations will now enforce a size quota and
3100 will ask the UI Delegate for more space when that quota is met
3102 * platform/sql/SQLiteDatabase.cpp: Add the new SQLResultFull constant
3103 * platform/sql/SQLiteDatabase.h: Ditto
3105 * storage/Database.cpp:
3106 (WebCore::Database::securityOriginData): Added this accessor, copying for thread safety
3107 (WebCore::Database::stringIdentifier): Ditto
3108 * storage/Database.h:
3110 * storage/SQLStatement.cpp:
3111 (WebCore::SQLStatement::SQLStatement):
3112 (WebCore::SQLStatement::execute): Change to return an enum that represents 3 states - success, error, and quota.
3113 If the result is quota, this statement expects that it might be run again, presumably after the user increases
3115 (WebCore::SQLStatement::setFailureDueToQuota): Setup a quota failure, including a flag and the error
3116 (WebCore::SQLStatement::clearFailureDueToQuota): Clear a quota failure, for when the statement is rerun
3117 (WebCore::SQLStatement::lastExecutionFailedDueToQuota):
3118 * storage/SQLStatement.h:
3120 * storage/SQLTransaction.cpp:
3121 (WebCore::SQLTransaction::SQLTransaction):
3122 (WebCore::SQLTransaction::performPendingCallback): Added an acceptable callback pointer
3123 (WebCore::SQLTransaction::openTransactionAndPreflight): Setup the quota in the database that will remain for this
3124 transaction. Note that in this patch, the quota being set is wrong - it makes sense to fix that in a follow up patch
3125 (WebCore::SQLTransaction::runStatements): Modified to add the ability to re-run a statement based on the UI delegate
3126 decision and whether the current statement was already run
3127 (WebCore::SQLTransaction::runCurrentStatement): Added another result condition - the Quota result - and handle it
3128 (WebCore::SQLTransaction::handleCurrentStatementError): Statements can now error-out from two places, so the code
3129 that handles a statement error was moved here
3130 (WebCore::SQLTransaction::deliverQuotaIncreaseCallback): Added - Consult the UI delegate for more quota, then
3131 reschedule the current statement on the database thread
3132 * storage/SQLTransaction.h:
3134 2007-12-06 Steve Falkenburg <sfalken@apple.com>
3136 <rdar://problem/5614257> Crash in timer / hashtable code due to uncaught exception
3138 Don't use callback-based timers, since these cause Windows to eat Windows crashes
3139 in code the timers call.
3141 Windows appears to be defending against "shatter" attacks partially by setting
3142 up a structured exception block while dispatching callback-based WM_TIMERs.
3144 I verified this by adding a divide by zero into some timer callback code.
3145 In the case where the timer was dispatched via a callback, the divide by zero
3146 exception was silently handled and ignored, with execution continuing after
3147 our call to DispatchMessage. When processed via the WNDPROC, no SEH
3148 block was established by Windows, and our divide by zero generated a real
3149 crash (which is what we wanted).
3151 Windows handling our crashes for us led us to leave the timer data structures
3152 in an invalid state so the next time a timer was set, we'd crash accessing an
3153 invalid HashMap of timer data.
3157 * platform/win/SharedTimerWin.cpp:
3158 (WebCore::TimerWindowWndProc):
3159 (WebCore::setSharedTimerFireTime):
3161 2007-12-06 Adam Roben <aroben@apple.com>
3163 Fix <rdar://5108390> Feed title is too low in blue banner
3165 Way back in r23069 we started applying the same font ascent hack that
3166 Mac WebKit applies to Helvetica, Times, and Courier. We did this so
3167 that those fonts would match the Mac metrics when we run the
3168 regression tests. However, this hack was applying to Arial on Windows
3169 when a site would specify the Helvetica font face because Windows will
3170 alias the font names. Instead of removing the hack entirely, we
3171 turn it off by default but provide some SPI so that DumpRenderTree can
3178 * platform/graphics/FontData.h: Add a new static method to turn on the
3179 hack on Windows only.
3180 * platform/graphics/win/FontDataWin.cpp:
3181 (WebCore::FontData::setShouldApplyMacAscentHack): Added.
3182 (WebCore::FontData::platformInit): Only perform the hack if
3183 shouldApplyMacAscentHack is true.
3185 2007-12-06 Geoffrey Garen <ggaren@apple.com>
3187 Reviewed by Sam Weinig.
3189 Fixed http://bugs.webkit.org/show_bug.cgi?id=16328
3190 REGRESSION (r28470): Crash expanding a GMail conversation
3193 (WebCore::Frame::scriptProxy): Only return 0 if JS seems disabled *and*
3194 we haven't created the proxy yet. If we've created the proxy already, a
3195 script may be in the midst of execution, even though we've lost our
3196 settings object. During execution, scripts assume they have free access
3199 2007-12-06 Adele Peterson <adele@apple.com>
3203 Fix for <rdar://problem/5631356> Toggling display property on video causes controls to get lost
3205 * html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::attach): Call updateFromElement.
3206 * html/HTMLMediaElement.h:
3208 2007-12-05 Antti Koivisto <antti@apple.com>
3214 Movie -> MediaPlayer
3215 MoviePrivate -> MediaPlayerPrivate
3217 Movie is QuickTime terminology and clashes with its C API.
3219 * WebCore.xcodeproj/project.pbxproj:
3220 * html/HTMLMediaElement.cpp:
3221 (WebCore::HTMLMediaElement::HTMLMediaElement):
3222 (WebCore::HTMLMediaElement::~HTMLMediaElement):
3223 (WebCore::HTMLMediaElement::initAndDispatchProgressEvent):
3224 (WebCore::HTMLMediaElement::bufferingRate):
3225 (WebCore::HTMLMediaElement::load):
3226 (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
3227 (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
3228 (WebCore::HTMLMediaElement::setReadyState):
3229 (WebCore::HTMLMediaElement::progressEventTimerFired):
3230 (WebCore::HTMLMediaElement::seek):
3231 (WebCore::HTMLMediaElement::currentTime):
3232 (WebCore::HTMLMediaElement::duration):
3233 (WebCore::HTMLMediaElement::playbackRate):
3234 (WebCore::HTMLMediaElement::setPlaybackRate):
3235 (WebCore::HTMLMediaElement::play):
3236 (WebCore::HTMLMediaElement::pause):
3237 (WebCore::HTMLMediaElement::setVolume):
3238 (WebCore::HTMLMediaElement::setMuted):
3239 (WebCore::HTMLMediaElement::pickMedia):
3240 (WebCore::HTMLMediaElement::checkIfSeekNeeded):
3241 (WebCore::HTMLMediaElement::mediaPlayerVolumeChanged):
3242 (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
3243 (WebCore::HTMLMediaElement::mediaPlayerCuePointReached):
3244 (WebCore::HTMLMediaElement::addCuePoint):
3245 (WebCore::HTMLMediaElement::buffered):
3246 (WebCore::HTMLMediaElement::seekable):
3247 (WebCore::HTMLMediaElement::effectiveStart):
3248 (WebCore::HTMLMediaElement::effectiveEnd):
3249 (WebCore::HTMLMediaElement::effectiveLoopStart):
3250 (WebCore::HTMLMediaElement::effectiveLoopEnd):
3251 (WebCore::HTMLMediaElement::updateMediaPlayer):
3252 (WebCore::HTMLMediaElement::willSaveToCache):
3253 * html/HTMLMediaElement.h:
3254 (WebCore::HTMLMediaElement::player):
3255 * html/HTMLVideoElement.cpp:
3256 (WebCore::HTMLVideoElement::videoWidth):
3257 (WebCore::HTMLVideoElement::videoHeight):
3258 * platform/MIMETypeRegistry.cpp:
3259 (WebCore::initialiseSupportedMediaMIMETypes):
3260 (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
3261 (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
3262 * platform/MIMETypeRegistry.h:
3263 * platform/graphics/MediaPlayer.cpp: Copied from WebCore/platform/graphics/Movie.cpp.
3264 (WebCore::MediaPlayer::MediaPlayer):
3265 (WebCore::MediaPlayer::~MediaPlayer):
3266 (WebCore::MediaPlayer::load):
3267 (WebCore::MediaPlayer::cancelLoad):
3268 (WebCore::MediaPlayer::play):
3269 (WebCore::MediaPlayer::pause):
3270 (WebCore::MediaPlayer::duration):
3271 (WebCore::MediaPlayer::currentTime):
3272 (WebCore::MediaPlayer::seek):
3273 (WebCore::MediaPlayer::paused):
3274 (WebCore::MediaPlayer::seeking):
3275 (WebCore::MediaPlayer::naturalSize):
3276 (WebCore::MediaPlayer::hasVideo):
3277 (WebCore::MediaPlayer::networkState):
3278 (WebCore::MediaPlayer::readyState):
3279 (WebCore::MediaPlayer::volume):
3280 (WebCore::MediaPlayer::setVolume):
3281 (WebCore::MediaPlayer::rate):
3282 (WebCore::MediaPlayer::setRate):
3283 (WebCore::MediaPlayer::muted):
3284 (WebCore::MediaPlayer::setMuted):
3285 (WebCore::MediaPlayer::dataRate):
3286 (WebCore::MediaPlayer::setEndTime):
3287 (WebCore::MediaPlayer::addCuePoint):
3288 (WebCore::MediaPlayer::removeCuePoint):
3289 (WebCore::MediaPlayer::clearCuePoints):
3290 (WebCore::MediaPlayer::maxTimeBuffered):
3291 (WebCore::MediaPlayer::maxTimeSeekable):
3292 (WebCore::MediaPlayer::bytesLoaded):
3293 (WebCore::MediaPlayer::totalBytesKnown):
3294 (WebCore::MediaPlayer::totalBytes):
3295 (WebCore::MediaPlayer::setRect):
3296 (WebCore::MediaPlayer::visible):
3297 (WebCore::MediaPlayer::setVisible):
3298 (WebCore::MediaPlayer::paint):
3299 (WebCore::MediaPlayer::getSupportedTypes):
3300 (WebCore::MediaPlayer::networkStateChanged):
3301 (WebCore::MediaPlayer::readyStateChanged):
3302 (WebCore::MediaPlayer::volumeChanged):
3303 (WebCore::MediaPlayer::timeChanged):
3304 (WebCore::MediaPlayer::cuePointReached):
3305 * platform/graphics/MediaPlayer.h: Copied from WebCore/platform/graphics/Movie.h.
3306 (WebCore::MediaPlayerClient::~MediaPlayerClient):
3307 (WebCore::MediaPlayerClient::mediaPlayerNetworkStateChanged):
3308 (WebCore::MediaPlayerClient::mediaPlayerReadyStateChanged):
3309 (WebCore::MediaPlayerClient::mediaPlayerVolumeChanged):
3310 (WebCore::MediaPlayerClient::mediaPlayerTimeChanged):
3311 (WebCore::MediaPlayerClient::mediaPlayerCuePointReached):
3312 * platform/graphics/Movie.cpp: Removed.
3313 * platform/graphics/Movie.h: Removed.
3314 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.cpp.
3315 (WebCore::mediaPlayerPrivateErrorCallback):
3316 (WebCore::mediaPlayerPrivateEOSCallback):
3317 (WebCore::mediaPlayerPrivateStateCallback):
3318 (WebCore::mediaPlayerPrivateBufferingCallback):
3319 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3320 (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
3321 (WebCore::MediaPlayerPrivate::load):
3322 (WebCore::MediaPlayerPrivate::play):
3323 (WebCore::MediaPlayerPrivate::pause):
3324 (WebCore::MediaPlayerPrivate::duration):
3325 (WebCore::MediaPlayerPrivate::currentTime):
3326 (WebCore::MediaPlayerPrivate::seek):
3327 (WebCore::MediaPlayerPrivate::setEndTime):
3328 (WebCore::MediaPlayerPrivate::addCuePoint):
3329 (WebCore::MediaPlayerPrivate::removeCuePoint):
3330 (WebCore::MediaPlayerPrivate::clearCuePoints):
3331 (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
3332 (WebCore::MediaPlayerPrivate::cancelSeek):
3333 (WebCore::MediaPlayerPrivate::cuePointTimerFired):
3334 (WebCore::MediaPlayerPrivate::paused):
3335 (WebCore::MediaPlayerPrivate::seeking):
3336 (WebCore::MediaPlayerPrivate::naturalSize):
3337 (WebCore::MediaPlayerPrivate::hasVideo):
3338 (WebCore::MediaPlayerPrivate::setVolume):
3339 (WebCore::MediaPlayerPrivate::setMuted):
3340 (WebCore::MediaPlayerPrivate::setRate):
3341 (WebCore::MediaPlayerPrivate::dataRate):
3342 (WebCore::MediaPlayerPrivate::networkState):
3343 (WebCore::MediaPlayerPrivate::readyState):
3344 (WebCore::MediaPlayerPrivate::maxTimeBuffered):
3345 (WebCore::MediaPlayerPrivate::maxTimeSeekable):
3346 (WebCore::MediaPlayerPrivate::maxTimeLoaded):
3347 (WebCore::MediaPlayerPrivate::bytesLoaded):
3348 (WebCore::MediaPlayerPrivate::totalBytesKnown):
3349 (WebCore::MediaPlayerPrivate::totalBytes):
3350 (WebCore::MediaPlayerPrivate::cancelLoad):
3351 (WebCore::MediaPlayerPrivate::updateStates):
3352 (WebCore::MediaPlayerPrivate::loadStateChanged):
3353 (WebCore::MediaPlayerPrivate::rateChanged):
3354 (WebCore::MediaPlayerPrivate::sizeChanged):
3355 (WebCore::MediaPlayerPrivate::timeChanged):
3356 (WebCore::MediaPlayerPrivate::volumeChanged):
3357 (WebCore::MediaPlayerPrivate::didEnd):
3358 (WebCore::MediaPlayerPrivate::loadingFailed):
3359 (WebCore::MediaPlayerPrivate::setRect):
3360 (WebCore::MediaPlayerPrivate::setVisible):
3361 (WebCore::MediaPlayerPrivate::paint):
3362 (WebCore::MediaPlayerPrivate::getSupportedTypes):
3363 (WebCore::MediaPlayerPrivate::createGSTPlayBin):
3364 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: Copied from WebCore/platform/graphics/gtk/MoviePrivateGStreamer.h.
3365 * platform/graphics/gtk/MoviePrivateGStreamer.cpp: Removed.
3366 * platform/graphics/gtk/MoviePrivateGStreamer.h: Removed.
3367 * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.h.
3368 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Copied from WebCore/platform/graphics/mac/MoviePrivateQTKit.mm.
3369 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
3370 (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
3371 (WebCore::MediaPlayerPrivate::createQTMovie):
3372 (WebCore::MediaPlayerPrivate::createQTMovieView):
3373 (WebCore::MediaPlayerPrivate::createQTTime):
3374 (WebCore::MediaPlayerPrivate::load):
3375 (WebCore::MediaPlayerPrivate::play):
3376 (WebCore::MediaPlayerPrivate::pause):
3377 (WebCore::MediaPlayerPrivate::duration):
3378 (WebCore::MediaPlayerPrivate::currentTime):
3379 (WebCore::MediaPlayerPrivate::seek):
3380 (WebCore::MediaPlayerPrivate::doSeek):
3381 (WebCore::MediaPlayerPrivate::cancelSeek):
3382 (WebCore::MediaPlayerPrivate::seekTimerFired):
3383 (WebCore::MediaPlayerPrivate::setEndTime):
3384 (WebCore::MediaPlayerPrivate::addCuePoint):
3385 (WebCore::MediaPlayerPrivate::removeCuePoint):
3386 (WebCore::MediaPlayerPrivate::clearCuePoints):
3387 (WebCore::MediaPlayerPrivate::startCuePointTimerIfNeeded):
3388 (WebCore::MediaPlayerPrivate::cuePointTimerFired):
3389 (WebCore::MediaPlayerPrivate::paused):
3390 (WebCore::MediaPlayerPrivate::seeking):
3391 (WebCore::MediaPlayerPrivate::naturalSize):
3392 (WebCore::MediaPlayerPrivate::hasVideo):
3393 (WebCore::MediaPlayerPrivate::setVolume):
3394 (WebCore::MediaPlayerPrivate::setMuted):
3395 (WebCore::MediaPlayerPrivate::setRate):
3396 (WebCore::MediaPlayerPrivate::dataRate):
3397 (WebCore::MediaPlayerPrivate::networkState):
3398 (WebCore::MediaPlayerPrivate::readyState):
3399 (WebCore::MediaPlayerPrivate::maxTimeBuffered):
3400 (WebCore::MediaPlayerPrivate::maxTimeSeekable):
3401 (WebCore::MediaPlayerPrivate::maxTimeLoaded):
3402 (WebCore::MediaPlayerPrivate::bytesLoaded):
3403 (WebCore::MediaPlayerPrivate::totalBytesKnown):
3404 (WebCore::MediaPlayerPrivate::totalBytes):
3405 (WebCore::MediaPlayerPrivate::cancelLoad):
3406 (WebCore::MediaPlayerPrivate::updateStates):
3407 (WebCore::MediaPlayerPrivate::loadStateChanged):
3408 (WebCore::MediaPlayerPrivate::rateChanged):
3409 (WebCore::MediaPlayerPrivate::sizeChanged):
3410 (WebCore::MediaPlayerPrivate::timeChanged):
3411 (WebCore::MediaPlayerPrivate::volumeChanged):
3412 (WebCore::MediaPlayerPrivate::didEnd):
3413 (WebCore::MediaPlayerPrivate::setRect):
3414 (WebCore::MediaPlayerPrivate::setVisible):
3415 (WebCore::MediaPlayerPrivate::paint):
3416 (WebCore::MediaPlayerPrivate::getSupportedTypes):
3417 (-[WebCoreMovieObserver initWithCallback:WebCore::]):
3418 * platform/graphics/mac/MoviePrivateQTKit.h: Removed.
3419 * platform/graphics/mac/MoviePrivateQTKit.mm: Removed.
3420 * rendering/RenderMedia.cpp:
3421 (WebCore::RenderMedia::player):
3422 * rendering/RenderMedia.h:
3423 * rendering/RenderVideo.cpp:
3424 (WebCore::RenderVideo::RenderVideo):
3425 (WebCore::RenderVideo::~RenderVideo):
3426 (WebCore::RenderVideo::videoSizeChanged):
3427 (WebCore::RenderVideo::paintReplaced):
3428 (WebCore::RenderVideo::layout):
3429 (WebCore::RenderVideo::updateFromElement):
3430 (WebCore::RenderVideo::updatePlayer):
3431 * rendering/RenderVideo.h:
3433 2007-12-06 Geoffrey Garen <ggaren@apple.com>
3435 Build fix: access global object directly.
3437 * plugins/win/PluginViewWin.cpp:
3438 (WebCore::PluginViewWin::bindingInstance):
3440 2007-12-06 Mark Rowe <mrowe@apple.com>
3444 Fix bug spotted by GCC 4.2.
3446 * bindings/js/kjs_window.cpp:
3447 (KJS::allowPopUp): Remove extraneous semicolon that completely changed the meaning of allowPopUp.
3449 2007-12-06 Holger Hans Peter Freyther <holger.freyther@trolltech.com>
3451 Reviewed by Alp Toker.
3453 http://bugs.webkit.org/show_bug.cgi?id=16173
3456 Change license from BSD to LGPL.
3458 * platform/gtk/FileSystemGtk.cpp:
3460 2007-12-05 Rob Buis <buis@kde.org>
3464 http://bugs.webkit.org/show_bug.cgi?id=15289
3465 WebKit does not respect clip paths of a 0x0 rect
3467 Make empty clip paths clip the whole referencing graphic.
3469 * svg/SVGClipPathElement.cpp:
3470 (WebCore::SVGClipPathElement::canvasResource):
3471 * svg/graphics/SVGResourceClipper.h:
3472 (WebCore::ClipDataList::isEmpty):
3474 2007-12-05 Darin Adler <darin@apple.com>
3478 - fix http://bugs.webkit.org/show_bug.cgi?id=16266
3479 <rdar://problem/5625279> REGRESSION: crash loading CNN.com at
3480 Interpreter::createObjectsForGlobalObjectProperties()
3482 I don't know how to reproduce this in a test.
3484 * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
3485 Call JSEventTargetNode::mark instead of DOMObject::mark. There's no difference
3486 right now, but it's best to call your base class, not your base's base.
3488 * bindings/js/kjs_events.h: Removed unneeded virtual from the
3489 JSUnprotectedEventListener::mark() function; it neither derives from or is
3490 derived from anyone else with a mark() function so there's no need for virtual.
3492 * bindings/js/kjs_window.cpp: (KJS::Window::mark): Call JSGlobalObject::mark,
3493 not JSObject::mark. This is the actual bug fix.
3495 2007-12-05 Pierre-Luc Beaudoin <pierre-luc.beaudoin@collabora.co.uk>
3497 http://bugs.webkit.org/show_bug.cgi?id=16145
3498 [gtk] Implement media support in GTK backend
3500 Reviewed by Alp Toker.
3502 Remove old comments, fix variable names, match WebKit coding style.
3504 * platform/graphics/gtk/MoviePrivateGStreamer.cpp:
3505 (WebCore::moviePrivateEOSCallback):
3506 (WebCore::MoviePrivate::MoviePrivate):
3507 (WebCore::MoviePrivate::load):
3508 (WebCore::MoviePrivate::play):
3509 (WebCore::MoviePrivate::pause):
3510 (WebCore::MoviePrivate::currentTime):
3511 (WebCore::MoviePrivate::seek):
3512 (WebCore::MoviePrivate::cancelSeek):
3513 (WebCore::MoviePrivate::seeking):
3514 (WebCore::MoviePrivate::naturalSize):
3515 (WebCore::MoviePrivate::setVolume):
3516 (WebCore::MoviePrivate::setMuted):
3517 (WebCore::MoviePrivate::maxTimeBuffered):
3518 (WebCore::MoviePrivate::bytesLoaded):
3519 (WebCore::MoviePrivate::totalBytesKnown):
3520 (WebCore::MoviePrivate::totalBytes):
3521 (WebCore::MoviePrivate::updateStates):
3522 (WebCore::MoviePrivate::didEnd):
3523 (WebCore::MoviePrivate::paint):
3524 (WebCore::MoviePrivate::createGSTPlayBin):
3525 * platform/graphics/gtk/MoviePrivateGStreamer.h:
3527 2007-12-05 Mark Rowe <mrowe@apple.com>
3529 Speculative wx build fix. Add PlugInInfoStore::pluginNameForMIMEType to the temporary link stubs.
3531 * platform/wx/TemporaryLinkStubs.cpp:
3533 2007-12-05 Alp Toker <alp@atoker.com>
3535 Rubber stamped by Mark Rowe.