1 2008-09-23 Maciej Stachowiak <mjs@apple.com>
5 - speed up instanceof some more
6 https://bugs.webkit.org/show_bug.cgi?id=20818
8 ~2% speedup on EarleyBoyer
12 * bindings/js/JSQuarantinedObjectWrapper.h:
13 (WebCore::JSQuarantinedObjectWrapper::createStructureID):
15 2008-09-22 Darin Adler <darin@apple.com>
17 Reviewed by Oliver Hunt.
19 - fix https://bugs.webkit.org/show_bug.cgi?id=21008
20 getting pixels by index from CanvasPixelArray is unnecessarily slow
22 * GNUmakefile.am: Added JSCanvasPixelArrayCustom.h.
23 * WebCore.vcproj/WebCore.vcproj: Ditto.
24 * WebCore.xcodeproj/project.pbxproj: Ditto.
26 * bindings/js/JSCanvasPixelArrayCustom.cpp: Removed indexGetter and
27 indexSetter. These are now both inlined, so in the header.
28 * bindings/js/JSCanvasPixelArrayCustom.h: Added. The getByIndex
29 function is what's used for HasCustomIndexGetter. Also moved the
30 indexSetter function here.
32 * bindings/scripts/CodeGeneratorJS.pm: Changed HasCustomIndexGetter
33 to use a getByIndex member function rather than an indexGetter static
34 member function in a property slot. This lets us avoid the property
35 slot mechanism's rule where it turns numeric property names into
36 strings in the identifier table, which is good because that's slow.
37 Also added a new property CustomHeader that allows IDL files to
38 introduce headers to be included -- useful when we have functions
39 that we want to inline into the binding.
41 * html/CanvasPixelArray.idl: Added CustomHeader attribute.
43 2008-09-23 Eric Seidel <eric@webkit.org>
45 No review, build fix only.
47 Another blind stab in the dark.
49 * svg/graphics/cg/SVGResourceClipperCg.cpp: Add missing header.
51 2008-09-23 Eric Seidel <eric@webkit.org>
53 No review, build fix only.
55 Third time's the charm, eh? My local build is sadly still not done...
57 * platform/graphics/AffineTransform.cpp: remove extra &
58 * platform/graphics/AffineTransform.h: remove extra &
60 2008-09-22 Eric Seidel <eric@webkit.org>
62 No review, build fix only.
64 * platform/graphics/AffineTransform.cpp: remove extra ;
66 2008-09-22 Eric Seidel <eric@webkit.org>
68 No review, build fix only.
70 Speculative fix for the build while I wait for my compile to finish.
72 * platform/graphics/AffineTransform.cpp:
74 2008-09-22 Dirk Schulze <vbs85@gmx.de>
76 Reviewed by eseidel. Landed by eseidel.
78 Moved makeMapBetweenRects from SVG/CG to AffineTransform
79 Make SVGResourceClipper::applyClip more cross-platform
81 * platform/graphics/AffineTransform.cpp:
82 * platform/graphics/AffineTransform.h:
83 * svg/graphics/cg/CgSupport.cpp:
84 * svg/graphics/cg/CgSupport.h:
85 * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
86 (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
87 * svg/graphics/cg/SVGResourceClipperCg.cpp:
88 (WebCore::SVGResourceClipper::applyClip):
90 2008-09-22 Alp Toker <alp@nuanti.com>
92 Reviewed by David Hyatt.
94 https://bugs.webkit.org/show_bug.cgi?id=16331
95 [Gtk] no focus when button/checkbox/radiobutton clicked, only when tabbed
97 Obey GTK+ focusing conventions for controls and anchor elements.
99 It could be interesting to push these decisions up to Settings or
100 ChromeClient some day but this gets things working.
102 Right and middle click events still need some work to match GTK+
105 * html/HTMLAnchorElement.cpp:
106 (WebCore::HTMLAnchorElement::isMouseFocusable):
107 * html/HTMLFormControlElement.cpp:
108 (WebCore::HTMLFormControlElement::isMouseFocusable):
109 * page/EventHandler.cpp:
110 (WebCore::EventHandler::sendContextMenuEvent):
112 2008-09-22 Darin Adler <darin@apple.com>
114 * page/mac/FrameMac.mm:
115 (WebCore::Frame::baseWritingDirectionForSelectionStart): Fix indentation.
117 2008-09-22 Sam Weinig <sam@webkit.org>
119 Reviewed by Dan Bernstein.
121 Patch for https://bugs.webkit.org/show_bug.cgi?id=21013
122 Match Firefox in how we hide HTMLInputElement.selectionStart, selectionEnd
123 and setSelectionRange. This also allows us to remove the legacy JSHTMLInputElementBase
126 - selectionStart, selectionEnd and setSelectionRange now are visible in iteration of
127 non-selectable input types, but return undefined when accessed.
129 * DerivedSources.make:
132 * WebCore.vcproj/WebCore.vcproj:
133 * WebCore.xcodeproj/project.pbxproj:
134 * WebCoreSources.bkl:
135 * bindings/js/JSHTMLInputElementBase.cpp: Removed.
136 * bindings/js/JSHTMLInputElementBase.h: Removed.
137 * bindings/js/JSHTMLInputElementCustom.cpp: Added.
138 (WebCore::JSHTMLInputElement::customGetOwnPropertySlot):
139 (WebCore::JSHTMLInputElement::selectionStart):
140 (WebCore::JSHTMLInputElement::selectionEnd):
141 * bindings/js/JSHTMLInputElementCustom.h: Added.
142 * html/HTMLInputElement.idl:
144 2008-09-22 Dan Bernstein <mitz@apple.com>
146 Reviewed by Sam Weinig.
148 - fix <rdar://problem/5699571> Mail: Unable to change writing direction to LTR in an empty message
150 Not testable in DumpRenderTree or in Safari
152 * page/mac/FrameMac.mm:
153 (WebCore::Frame::baseWritingDirectionForSelectionStart): Account for the
154 case that the selection start node is a block.
156 2008-09-22 David Hyatt <hyatt@apple.com>
158 https://bugs.webkit.org/show_bug.cgi?id=21007
160 Make sure that the scrollbar gets sent a release event on platforms that call handleMouseDoubleClickEvent.
162 Reviewed by Sam Weinig
164 * page/EventHandler.cpp:
165 (WebCore::EventHandler::handleMouseDoubleClickEvent):
167 2008-09-22 Eric Seidel <eric@webkit.org>
169 No review, rollback only.
171 Roll out Peter's change (per his request)
172 http://trac.webkit.org/changeset/36069
173 https://bugs.webkit.org/show_bug.cgi?id=19663
174 This change has been the source of numerous regressions
175 (several of which were latent bugs revealed by this change,
176 others were bugs in this change)
178 * platform/graphics/BitmapImage.cpp:
179 (WebCore::BitmapImage::BitmapImage):
180 (WebCore::BitmapImage::startAnimation):
181 (WebCore::BitmapImage::advanceAnimation):
182 * platform/graphics/BitmapImage.h:
183 * platform/graphics/cairo/ImageCairo.cpp:
184 (WebCore::BitmapImage::draw):
185 * platform/graphics/cg/ImageCG.cpp:
186 (WebCore::BitmapImage::draw):
187 * platform/graphics/qt/ImageQt.cpp:
188 (WebCore::BitmapImage::draw):
189 * platform/graphics/wx/ImageWx.cpp:
190 (WebCore::BitmapImage::draw):
192 2008-09-22 Dan Bernstein <mitz@apple.com>
194 Reviewed by Sam Weinig.
196 - fix <rdar://problem/5158514> Switch the complex text code path to Core Text
198 Tests: platform/mac-snowleopard/fast/text/myanmar-shaping.html
199 platform/mac-snowleopard/fast/text/thai-combining-mark-positioning.html
201 * config.h: Use Core Text if not building for Leopard or Tiger.
203 2008-09-22 David Hyatt <hyatt@apple.com>
205 https://bugs.webkit.org/show_bug.cgi?id=21006
207 Add code that paints an NSView-less scroller using HIThemeDrawTrack. This scrollbar is still not
208 switched on. There are still a few more refinements to make to the rendering and behavior.
210 Reviewed by Darin Adler
212 * platform/ScrollbarThemeComposite.cpp:
213 (WebCore::ScrollbarThemeComposite::paint):
214 * platform/ScrollbarThemeComposite.h:
215 (WebCore::ScrollbarThemeComposite::paintTrack):
216 (WebCore::ScrollbarThemeComposite::paintButton):
217 (WebCore::ScrollbarThemeComposite::paintThumb):
218 * platform/mac/ScrollbarThemeMac.h:
219 * platform/mac/ScrollbarThemeMac.mm:
220 (WebCore::ScrollbarThemeMac::backButtonRect):
221 (WebCore::ScrollbarThemeMac::forwardButtonRect):
222 (WebCore::scrollbarPartToHIPressedState):
223 (WebCore::ScrollbarThemeMac::paint):
224 * platform/mac/WidgetMac.mm:
225 (WebCore::Widget::invalidateRect):
227 2008-09-22 Chris Marrin <cmarrin@apple.com>
229 Reviewed by Sam Weinig
231 transition end event when -webkit-transition-property: all puts wrong
232 propertyName in event
233 https://bugs.webkit.org/show_bug.cgi?id=20903
235 * page/animation/ImplicitAnimation.cpp:
236 (WebCore::ImplicitAnimation::sendTransitionEvent):
238 2008-09-22 Chris Fleizach <cfleizach@apple.com>
240 Reviewed by Darin Adler.
242 <rdar://problem/6230234> AXTable should probably not be exposed in there's only one cell
244 Test: accessibility/table-one-cell.html
246 * page/AccessibilityTable.cpp:
247 (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
249 2008-09-22 Chris Fleizach <cfleizach@apple.com>
251 Reviewed by Darin Adler.
253 <rdar://problem/6167779> Setting AXSelectedTextRange for TextAreas in a WebView behaves incorrectly
255 Test: accessibility/textarea-selected-text-range.html
257 * page/AccessibilityRenderObject.cpp:
258 (WebCore::AccessibilityRenderObject::setSelectedTextRange):
260 2008-09-22 David Hyatt <hyatt@apple.com>
262 Clean up some parent relationships in the back end stylesheet code. Make sure parentStyleSheet
263 properly walks up nested rule blocks to reach the parent sheet instead of giving up at the immediate
264 parent. Also fix the doc() method so that it is properly set when the parent of the sheet is an import
267 Reviewed by Sam Weinig
269 Added fast/css/nested-rule-parent-sheet.html
271 * css/CSSImportRule.cpp:
272 (WebCore::CSSImportRule::insertedIntoParent):
274 (WebCore::CSSRule::parentStyleSheet):
275 (WebCore::CSSRule::parentRule):
276 * css/CSSStyleSheet.cpp:
277 (WebCore::CSSStyleSheet::CSSStyleSheet):
278 * css/CSSStyleSheet.h:
280 2008-09-22 Dan Bernstein <mitz@apple.com>
282 Reviewed by Sam Weinig.
284 - fix https://bugs.webkit.org/show_bug.cgi?id=21002
285 Make the ATSUI code path respect spacingDisabled()
287 Fixes svg/text/text-spacing-01-b.svg in run-webkit-tests --complex-text
289 * platform/graphics/mac/FontMacATSUI.mm:
290 (WebCore::overrideLayoutOperation):
292 2008-09-22 Maciej Stachowiak <mjs@apple.com>
294 Reviewed by Cameron Zwarich.
296 - speed up instanceof operator by replacing implementsHasInstance method with a TypeInfo flag
298 Partial work towards <https://bugs.webkit.org/show_bug.cgi?id=20818>
300 2.2% speedup on EarleyBoyer benchmark.
302 * bindings/js/JSQuarantinedObjectWrapper.cpp:
303 * bindings/js/JSQuarantinedObjectWrapper.h:
304 (WebCore::JSQuarantinedObjectWrapper::createStructureID):
305 * bindings/scripts/CodeGeneratorJS.pm:
307 2008-09-22 Adam Roben <aroben@apple.com>
311 * WebCore.vcproj/WebCore.vcproj: Add a missing </File> tag.
313 2008-09-22 Maciej Stachowiak <mjs@apple.com>
315 Reviewed by Dave Hyatt.
317 Based on initial work by Darin Adler.
319 - replace masqueradesAsUndefined virtual method with a flag in TypeInfo
320 - use this to JIT inline code for eq_null and neq_null
321 https://bugs.webkit.org/show_bug.cgi?id=20823
323 * WebCore.xcodeproj/project.pbxproj:
324 * WebCore.vcproj/WebCore.vcproj:
325 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
326 (WebCore::JSCSSStyleDeclaration::nameGetter):
327 * bindings/js/JSHTMLAllCollection.cpp: Added.
329 * bindings/js/JSHTMLAllCollection.h:
330 (WebCore::JSHTMLAllCollection::createStructureID):
331 (WebCore::JSHTMLAllCollection::toBoolean):
333 2008-09-22 Tor Arne Vestbø <tavestbo@trolltech.com>
337 Fix the QtWebKit build
339 * bridge/qt/qt_instance.cpp:
340 (JSC::Bindings::QtRuntimeObjectImp::construct):
341 * bridge/qt/qt_runtime.cpp:
343 2008-09-22 Alp Toker <alp@nuanti.com>
345 Suggested by David Hyatt.
347 Build fix: ScrollView::update() is still used by Document.cpp on !MAC
350 * platform/ScrollView.h:
352 2008-09-22 David Hyatt <hyatt@apple.com>
354 Fix a regression in Windows scrollbar painting. (Also fix the same
355 bug in my new viewless Mac scrollbar painting code). The track rect
356 was being improperly inflated when painting resulting in the scrollbar
357 being too tall and painting in the border of overflow sections.
359 Reviewed by Oliver Hunt
361 * platform/mac/ScrollbarThemeMac.mm:
362 (WebCore::ScrollbarThemeMac::trackRect):
363 * platform/win/ScrollbarThemeSafari.cpp:
364 (WebCore::ScrollbarThemeSafari::trackRect):
366 2008-09-22 David Hyatt <hyatt@apple.com>
368 Fix a hit testing bug where events are mistakenly passed to subframes
369 if the mouse is over the border or padding area of the frame. Add
370 a boolean flag, isOverWidget(), to hit test results so that EventHandler
371 can check it to tell if the mouse is really over the content box of a
372 RenderWidget and not just in the border/padding area.
374 This is not testable, since the old code properly recovered when it detected
375 that the mouse was outside the bounds of the view, but this prevents
376 the extra passdown from even occurring (and is basically a nice cleanup).
378 Reviewed by Oliver Hunt
380 * page/EventHandler.cpp:
381 (WebCore::EventHandler::handleMousePressEvent):
382 (WebCore::EventHandler::hitTestResultAtPoint):
383 (WebCore::subframeForHitTestResult):
384 (WebCore::EventHandler::handleMouseDoubleClickEvent):
385 (WebCore::EventHandler::handleMouseMoveEvent):
386 (WebCore::EventHandler::handleMouseReleaseEvent):
387 (WebCore::EventHandler::handleWheelEvent):
388 * page/MouseEventWithHitTestResults.h:
389 (WebCore::MouseEventWithHitTestResults::isOverWidget):
390 * rendering/HitTestResult.cpp:
391 (WebCore::HitTestResult::HitTestResult):
392 (WebCore::HitTestResult::operator=):
393 * rendering/HitTestResult.h:
394 (WebCore::HitTestResult::isOverWidget):
395 (WebCore::HitTestResult::setIsOverWidget):
396 * rendering/RenderWidget.cpp:
397 (WebCore::RenderWidget::nodeAtPoint):
398 * rendering/RenderWidget.h:
400 2008-09-21 David Hyatt <hyatt@apple.com>
402 Rename FrameView's repaintRectangle method to repaintContentRectangle. Make
403 both it and ScrollView's updateContents method be off-limits to everyone in
404 WebCore except for RenderView.
406 Make repaintViewRectangle the only possible method for WebCore code to do
407 an invalidation. This ensures that all invalidates triggered by WebCore
408 cross-platform code that cross ownerElement() boundaries are transform-aware.
410 Make sure that iframes/frames contained inside objects that have transforms
411 or reflections are not allowed to blit (this was already true for transparency).
413 It is not possible to make a test for any of this, since iframe scrolling
414 still doesn't work on Mac (since the invalidates are not being done
415 through WebCore's cross-platform invalidation code but are instead going
416 through NSScrollView's setNeedsDisplay still).
418 Reviewed by Oliver Hunt
420 * editing/SelectionController.cpp:
421 (WebCore::SelectionController::recomputeCaretRect):
422 (WebCore::SelectionController::invalidateCaretRect):
423 (WebCore::SelectionController::focusedOrActiveStateChanged):
424 * page/FrameView.cpp:
425 (WebCore::FrameView::repaintContentRectangle):
426 (WebCore::FrameView::endDeferredRepaints):
428 * platform/ScrollView.h:
429 * rendering/RenderBox.cpp:
430 (WebCore::RenderBox::paintFillLayerExtended):
431 * rendering/RenderLayer.cpp:
432 (WebCore::RenderLayer::enclosingPositionedAncestor):
433 (WebCore::RenderLayer::requiresSlowRepaints):
434 * rendering/RenderLayer.h:
435 (WebCore::RenderLayer::hasTransform):
436 * rendering/RenderView.cpp:
437 (WebCore::RenderView::paintBoxDecorations):
438 (WebCore::RenderView::repaintViewRectangle):
439 (WebCore::RenderView::setSelection):
441 2008-09-21 Maciej Stachowiak <mjs@apple.com>
445 - introduce a TypeInfo class, for holding per-type (in the C++ class sense) date in StructureID
446 https://bugs.webkit.org/show_bug.cgi?id=20981
448 * bindings/js/JSAudioConstructor.cpp:
449 (WebCore::JSAudioConstructor::JSAudioConstructor):
450 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
451 (WebCore::JSCSSStyleDeclaration::nameGetter):
452 * bindings/js/JSDOMBinding.cpp:
453 (WebCore::createDOMStructure):
454 * bindings/js/JSDOMBinding.h:
455 (WebCore::getDOMStructure):
456 * bindings/js/JSDOMWindowShell.cpp:
457 (WebCore::JSDOMWindowShell::JSDOMWindowShell):
458 (WebCore::JSDOMWindowShell::setWindow):
459 * bindings/js/JSEventTargetNode.cpp:
460 (WebCore::JSEventTargetNode::createPrototype):
461 * bindings/js/JSHTMLOptionElementConstructor.cpp:
462 (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
463 * bindings/js/JSImageConstructor.cpp:
464 (WebCore::JSImageConstructor::JSImageConstructor):
465 * bindings/js/JSXMLHttpRequestConstructor.cpp:
466 (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
467 * bindings/js/JSXSLTProcessorConstructor.cpp:
468 (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
469 * bindings/scripts/CodeGeneratorJS.pm:
471 2008-09-21 Darin Adler <darin@apple.com>
473 Reviewed by Maciej Stachowiak.
475 - fix problem Maciej noticed where every JSNamedNodesCollection
476 gets its own StructureID
478 * bindings/js/JSNamedNodesCollection.cpp:
479 (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Use
480 getDOMStructure to get the structure.
481 * bindings/js/JSNamedNodesCollection.h:
482 (WebCore::JSNamedNodesCollection::createPrototype): Return the
485 2008-09-20 David Hyatt <hyatt@apple.com>
487 Make sure transformed scrollbars in overflow sections position
488 properly. This patch mimics the same behavior that works for
489 iframes, namely making sure that the same code that dynamically
490 adjusts iframe widget positions at paint time for fixed positioning
491 and transforms also applies to scrollbars. (This is as simple as passing
492 in the current translation factor at paint time rather than crawling
493 up the layer tree to compute a "false" absolute position.)
495 An existing transform test covers this (although only a pixel result
496 reveals the correct rendering).
498 Reviewed by Darin Adler
500 * rendering/RenderLayer.cpp:
501 (WebCore::RenderLayer::updateLayerPositions):
502 (WebCore::RenderLayer::positionOverflowControls):
503 (WebCore::RenderLayer::paintOverflowControls):
504 (WebCore::RenderLayer::paintLayer):
505 * rendering/RenderLayer.h:
507 2008-09-21 Steve Falkenburg <sfalken@apple.com>
509 Removed unnecessary nested timer check.
511 Rubber-stamped by Dan Bernstein.
513 * platform/win/SharedTimerWin.cpp:
514 (WebCore::TimerWindowWndProc):
516 2008-09-21 Steve Falkenburg <sfalken@apple.com>
518 Improve timer resolution on WinXP.
519 https://bugs.webkit.org/show_bug.cgi?id=20979
521 Removed last-chance timer. It should not be necessary.
522 Change timeEndPeriod timer to fire in 300ms instead of 20ms. Calling timeBeginPeriod/timeEndPeriod too often throws off accuracy.
523 Remove Vista checks. We now run the same code on both XP and Vista.
525 Call through to JSC::getCurrentUTCTimeWithMicroseconds from WebCore::currentTime.
526 The code previously called GetSystemTimeAsFileTime, which is always low-resolution on XP, even within timeBeginPeriod(1).
528 Reviewed by Maciej Stachowiak.
530 * platform/win/SharedTimerWin.cpp:
532 (WebCore::TimerWindowWndProc):
533 (WebCore::setSharedTimerFireTime):
534 * platform/win/SystemTimeWin.cpp:
535 (WebCore::currentTime):
537 2008-09-21 Dirk Schulze <vbs85@gmx.de>
539 Reviewed by eseidel. Landed by eseidel.
541 All platforms use the DashArray in the GraphicsContext.
543 * svg/graphics/SVGPaintServer.h:
544 * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp:
545 (WebCore::SVGPaintServerGradient::setup):
546 * svg/graphics/cairo/SVGPaintServerPatternCairo.cpp:
547 (WebCore::SVGPaintServerPattern::setup):
548 * svg/graphics/cairo/SVGPaintServerSolidCairo.cpp:
549 (WebCore::SVGPaintServerSolid::setup):
550 * svg/graphics/qt/SVGPaintServerGradientQt.cpp:
551 (WebCore::SVGPaintServerGradient::setup):
552 * svg/graphics/qt/SVGPaintServerQt.cpp:
553 * svg/graphics/qt/SVGPaintServerSolidQt.cpp:
554 (WebCore::SVGPaintServerSolid::setup):
556 2008-09-21 Dirk Schulze <vbs85@gmx.de>
558 Reviewed by eseidel. Landed by eseidel.
560 Moved DashArray to GraphicsContext.
563 * WebCore.vcproj/WebCore.vcproj:
564 * WebCore.xcodeproj/project.pbxproj:
565 * platform/graphics/DashArray.h: Added.
566 * platform/graphics/GraphicsContext.h:
567 * platform/graphics/cairo/GraphicsContextCairo.cpp:
568 (WebCore::GraphicsContext::setLineDash):
569 * platform/graphics/cg/GraphicsContextCG.cpp:
570 (WebCore::GraphicsContext::setLineDash):
571 * platform/graphics/qt/GraphicsContextQt.cpp:
572 (WebCore::GraphicsContext::setLineDash):
573 * svg/graphics/SVGPaintServer.cpp:
574 (WebCore::applyStrokeStyleToContext):
575 * svg/graphics/SVGPaintServer.h:
576 * svg/graphics/cg/CgSupport.cpp:
577 * svg/graphics/cg/CgSupport.h:
579 2008-09-21 Dan Bernstein <mitz@apple.com>
581 Reviewed by Mark Rowe.
583 - fix linker warnings
587 2008-09-20 Darin Adler <darin@apple.com>
589 - another try at fixing Qt
591 * bridge/qt/qt_runtime.cpp: "using namespce WebCore"
593 2008-09-20 Darin Adler <darin@apple.com>
595 - blind attempt to fix Qt build
597 * bridge/qt/qt_runtime.cpp:
598 (JSC::Bindings::convertQVariantToValue): Use regExpStructure instead
599 of regExpPrototype to make a RegExpObject. There should really be
600 some sort of public helper function for this. Same thing for
601 DateInstance and dateStructure. For JSObject, use constructEmptyObject.
603 (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod): Use getDOMStructure.
604 It is not correct to do this inside the constructor because it could
605 cause a garbage collect while the QtRuntimeMethod object is half-
606 allocated, which could lead to a crash; note that RuntimeMethod,
607 QtRuntimeObjectImp, and RuntimeObjectImp have the same bug.
608 * bridge/qt/qt_runtime.h: Add s_info and createPrototype.
610 2008-09-20 Collin Jackson <collinj@webkit.org>
612 Prefetch DNS for hyperlinks that the user mouses over.
614 https://bugs.webkit.org/show_bug.cgi?id=20931
616 Reviewed by Sam Weinig.
619 (WebCore::Chrome::mouseDidMoveOverElement):
621 2008-09-20 Darin Adler <darin@apple.com>
623 Reviewed by Maciej Stachowiak.
625 - finish https://bugs.webkit.org/show_bug.cgi?id=20858
626 make each distinct C++ class get a distinct JSC::Structure
628 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
629 (WebCore::JSCSSStyleDeclaration::nameGetter): Pass in a structure
630 ID. Note that this makes a new structure every time -- we could
631 optimize this slightly be caching and reusing a single one.
633 * bridge/runtime_method.cpp:
634 (JSC::RuntimeMethod::RuntimeMethod): Create a unique structure using
636 * bridge/runtime_method.h:
637 (JSC::RuntimeMethod::createPrototype): Added createPrototype so
638 getDOMStructure will work.
640 * bindings/js/JSDOMWindowShell.cpp:
641 (WebCore::JSDOMWindowShell::JSDOMWindowShell): Initialize m_window to
642 0; needed in case garbage collection happens while creating the
645 2008-09-20 Dan Bernstein <mitz@apple.com>
647 Reviewed by Eric Seidel.
649 - fix https://bugs.webkit.org/show_bug.cgi?id=20950
650 <rdar://problem/6234059> Reproducible assertion failure running svg/custom/acid3-test-77.html multiple times under guard malloc
652 * svg/SVGTextContentElement.cpp:
653 (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback): Changed to
654 not include the first character in the extraCharsAvailable count.
656 2008-09-20 Kevin Ollivier <kevino@theolliviers.com>
658 Reviewed by Dan Bernstein.
662 https://bugs.webkit.org/show_bug.cgi?id=20505
664 * platform/wx/wxcode/mac/carbon/fontprops.cpp:
667 2008-09-20 Kevin Ollivier <kevino@theolliviers.com>
669 wx build fixes. Added/removed build sources, and nativeWindow->platformWidget updates.
671 * WebCoreSources.bkl:
672 * platform/ScrollView.h:
673 * platform/wx/PopupMenuWx.cpp:
674 (WebCore::PopupMenu::show):
675 * platform/wx/RenderThemeWx.cpp:
676 (WebCore::RenderThemeWx::paintButton):
677 (WebCore::RenderThemeWx::paintTextField):
678 (WebCore::RenderThemeWx::paintMenuList):
679 (WebCore::RenderThemeWx::paintMenuListButton):
680 * platform/wx/ScrollViewWx.cpp:
681 (WebCore::ScrollView::setPlatformWidget):
682 (WebCore::ScrollView::updateContents):
683 (WebCore::ScrollView::update):
684 (WebCore::ScrollView::visibleWidth):
685 (WebCore::ScrollView::visibleHeight):
686 (WebCore::ScrollView::scrollBy):
687 (WebCore::ScrollView::resizeContents):
688 (WebCore::ScrollView::contentsWidth):
689 (WebCore::ScrollView::contentsHeight):
690 (WebCore::ScrollView::isScrollViewScrollbar):
691 (WebCore::ScrollView::adjustScrollbars):
692 (WebCore::ScrollView::inWindow):
693 (WebCore::ScrollView::removeChild):
694 * platform/wx/WidgetWx.cpp:
695 * plugins/wx/PluginViewWx.cpp:
696 (WebCore::PluginView::setParentVisible):
697 (WebCore::PluginView::updatePluginWidget):
699 2008-09-20 Timothy Hatcher <timothy@apple.com>
701 Fix the new Node Search button image to not be blurry.
703 * page/inspector/Images/nodeSearchButtons.png:
705 2008-09-20 Matt Lilek <webkit@mattlilek.com>
707 Reviewed by Tim Hatcher.
709 Cut down some of the inspector javascript -> InspectorController glue code
710 with two new macros. Also rearrange the exposed function list to be grouped
711 by implementation and to all explicitly use the WebCore namespace.
713 * page/InspectorController.cpp:
714 (WebCore::InspectorController::windowScriptObjectAvailable):
716 2008-09-20 Matt Lilek <webkit@mattlilek.com>
718 Reviewed by Tim Hatcher.
720 Fix regression from my previous patch where the breadcrumbs bar was not displayed.
722 * page/inspector/inspector.css:
724 2008-09-20 Nikolas Zimmermann <zimmermann@kde.org>
728 Refactor HTMLImageLoader/SVGImageLoader code.
729 Move html/HTMLImageLoader.* to loader/ImageLoader.*
731 Let HTMLImageLoader & SVGImageLoader inherit from the new base class.
732 SVGImageLoader used to inherit from HTMLImageLoader which is awkward.
736 * WebCore.vcproj/WebCore.vcproj:
737 * WebCore.xcodeproj/project.pbxproj:
738 * WebCoreSources.bkl:
740 (WebCore::Document::dispatchImageLoadEventSoon):
741 (WebCore::Document::removeImage):
742 (WebCore::Document::dispatchImageLoadEventsNow):
744 * html/HTMLImageLoader.cpp:
745 (WebCore::HTMLImageLoader::HTMLImageLoader):
746 (WebCore::HTMLImageLoader::~HTMLImageLoader):
747 (WebCore::HTMLImageLoader::sourceURI):
748 (WebCore::HTMLImageLoader::notifyFinished):
749 * html/HTMLImageLoader.h:
750 * loader/DocLoader.h:
751 * loader/ImageLoader.cpp: Copied from html/HTMLImageLoader.cpp.
752 (WebCore::ImageLoader::ImageLoader):
753 (WebCore::ImageLoader::~ImageLoader):
754 (WebCore::ImageLoader::setImage):
755 (WebCore::ImageLoader::setLoadingImage):
756 (WebCore::ImageLoader::updateFromElement):
757 (WebCore::ImageLoader::notifyFinished):
758 * loader/ImageLoader.h: Copied from html/HTMLImageLoader.h.
759 * svg/SVGImageElement.cpp:
760 (WebCore::SVGImageElement::attach):
761 (WebCore::SVGImageElement::insertedIntoDocument):
762 (WebCore::SVGImageElement::imageSourceAttributeName):
763 * svg/SVGImageElement.h:
764 * svg/SVGImageLoader.cpp:
765 (WebCore::SVGImageLoader::SVGImageLoader):
766 (WebCore::SVGImageLoader::dispatchLoadEvent):
767 (WebCore::SVGImageLoader::sourceURI):
768 * svg/SVGImageLoader.h:
770 2008-09-20 Holger Hans Peter Freyther <zecke@selfish.org>
774 [qtwebkit] ScrollBar build fix after r36684.
775 BackButtonPart was split into Start and End Part
776 ForwardButtonPart was split into Start and End Part
778 * platform/qt/ScrollbarThemeQt.cpp:
780 (WebCore::scrollbarPart):
781 (WebCore::styleOptionSlider):
783 2008-09-20 Holger Hans Peter Freyther <zecke@selfish.org>
787 [qtwebkit] Make qt_instance.cpp compile.
788 Revision of 36675 introduced getDOMStructure to give unique
789 structure id's to C++ classes. Catch up. RuntimeObjectImp assigns
790 the the StructureID inside the c'tor, do the same in QtRuntimeObjectImp
792 * bridge/qt/qt_instance.cpp:
793 (JSC::Bindings::QtInstance::getRuntimeObject):
795 2008-09-20 Holger Hans Peter Freyther <zecke@selfish.org>
797 Reviewed by Nikolas Zimmermann.
799 [svg] Change SVGLocatable to deal with a plain SVGElement
800 There is no requirement in the code that we have to have a
801 SVGStyledElement. Remove that artificial limitation and compile
804 * svg/SVGLocatable.cpp:
805 * svg/SVGLocatable.h:
807 2008-09-20 Holger Hans Peter Freyther <zecke@selfish.org>
809 Reviewed by Nikolas Zimmermann.
811 [svg] Use OwnPtr for the SVGExtensions to avoid custom lifetime
815 (WebCore::Document::~Document):
816 (WebCore::Document::svgExtensions):
817 (WebCore::Document::accessSVGExtensions):
820 2008-09-19 David Hyatt <hyatt@apple.com>
822 Fix for crash in updateTransitions. Make sure to test for a style
823 being null when comparing two RenderStyles.
825 Reviewed by Oliver Hunt
827 * page/animation/AnimationBase.cpp:
828 (WebCore::PropertyWrapperGetter::equals):
830 2008-09-19 David Hyatt <hyatt@apple.com>
832 https://bugs.webkit.org/show_bug.cgi?id=20954
834 Roll out r36628 since it has caused horrible regressions with
835 animated GIF CPU usage.
837 * platform/graphics/BitmapImage.cpp:
838 (WebCore::BitmapImage::cacheFrame):
839 (WebCore::BitmapImage::startAnimation):
840 * platform/graphics/BitmapImage.h:
841 (WebCore::FrameData::FrameData):
842 * platform/graphics/cairo/ImageCairo.cpp:
843 (WebCore::FrameData::clear):
844 * platform/graphics/cg/ImageCG.cpp:
845 (WebCore::FrameData::clear):
846 * platform/graphics/qt/ImageQt.cpp:
847 (WebCore::FrameData::clear):
848 * platform/graphics/wx/ImageWx.cpp:
849 (WebCore::FrameData::clear):
851 2008-09-20 Alp Toker <alp@nuanti.com>
853 Reviewed by Timothy Hatcher.
855 https://bugs.webkit.org/show_bug.cgi?id=20913
856 Avoid redudant includes
858 Document.h is included excessively such that a modification to Document.h (or
859 any of the header it includes itself) triggers a rebuild of many files
860 including the whole of SVG and a lot of the JS bindings.
862 Some of these includes can be avoided by only including Document.h where
865 * bindings/js/JSAttrCustom.cpp:
866 * bindings/js/JSElementCustom.cpp:
867 * bindings/js/JSEventTargetBase.cpp:
868 * bindings/js/JSEventTargetBase.h:
869 * bindings/js/JSEventTargetNode.cpp:
870 * bindings/js/JSHTMLFrameElementCustom.cpp:
871 * bindings/js/JSHTMLIFrameElementCustom.cpp:
872 * bindings/scripts/CodeGeneratorJS.pm:
873 * css/CSSCursorImageValue.cpp:
874 * css/SVGCSSStyleSelector.cpp:
876 * svg/SVGAnimateElement.h:
877 * svg/SVGAnimatedProperty.h:
878 (WebCore::::baseValue):
879 (WebCore::::setBaseValue):
880 (WebCore::::startAnimation):
881 (WebCore::::stopAnimation):
882 * svg/SVGElement.cpp:
883 (WebCore::SVGElement::accessDocumentSVGExtensions):
885 * svg/SVGElementInstance.cpp:
886 * svg/SVGFitToViewBox.cpp:
887 * svg/SVGFontElement.cpp:
888 * svg/SVGFontFaceElement.cpp:
889 * svg/SVGLinearGradientElement.cpp:
890 * svg/SVGMPathElement.cpp:
891 * svg/SVGViewSpec.cpp:
893 2008-09-19 Nikolas Zimmermann <zimmermann@kde.org>
895 Reviewed by Antti & Eric.
897 Fixes: https://bugs.webkit.org/show_bug.cgi?id=20372
899 Finish HTMLScriptElement / SVGScriptElement unification.
900 SVG <script> support is complete now, full SVGLoad event
901 respecting the influence of the externalResourcesRequired attribute
902 as well as SVGError event support. All other features shared with HTML.
904 Tests: fast/dom/HTMLScriptElement/script-reexecution.html
905 svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg
906 svg/dom/SVGScriptElement/script-load-and-error-events.svg
907 svg/dom/SVGScriptElement/script-reexecution.svg
908 svg/dom/SVGScriptElement/script-set-href.svg
910 * dom/ScriptElement.cpp:
911 (WebCore::ScriptElementData::ScriptElementData):
912 (WebCore::ScriptElementData::requestScript):
913 * dom/ScriptElement.h:
914 (WebCore::ScriptElementData::haveFiredLoadEvent):
915 (WebCore::ScriptElementData::setHaveFiredLoadEvent):
916 * dom/XMLTokenizer.cpp:
917 (WebCore::XMLTokenizer::notifyFinished):
918 * html/HTMLScriptElement.cpp:
919 (WebCore::HTMLScriptElement::dispatchLoadEvent):
920 * svg/SVGScriptElement.cpp:
921 (WebCore::SVGScriptElement::setCreatedByParser):
922 (WebCore::SVGScriptElement::parseMappedAttribute):
923 (WebCore::SVGScriptElement::svgAttributeChanged):
924 (WebCore::SVGScriptElement::insertedIntoDocument):
925 (WebCore::SVGScriptElement::removedFromDocument):
926 (WebCore::SVGScriptElement::childrenChanged):
927 (WebCore::SVGScriptElement::isURLAttribute):
928 (WebCore::SVGScriptElement::finishParsingChildren):
929 (WebCore::SVGScriptElement::type):
930 (WebCore::SVGScriptElement::setType):
931 (WebCore::SVGScriptElement::haveLoadedRequiredResources):
932 (WebCore::SVGScriptElement::dispatchLoadEvent):
933 (WebCore::SVGScriptElement::dispatchErrorEvent):
934 * svg/SVGScriptElement.h:
936 2008-09-19 Dan Bernstein <mitz@apple.com>
938 Reviewed by John Sullivan.
940 - fix https://bugs.webkit.org/show_bug.cgi?id=20951
941 Typo in Position::getInlineBoxAndOffset()
944 Without the fix, the newly-added assertion fails in platform/mac/editing/input/caret-primary-bidi.html
947 (WebCore::Position::getInlineBoxAndOffset):
948 * rendering/InlineTextBox.cpp:
949 (WebCore::InlineTextBox::positionForOffset):
951 2008-09-19 David Hyatt <hyatt@apple.com>
953 Add support for hit testing of all five possible scrollbar button placements.
955 Reviewed by Sam Weinig
957 * platform/ScrollbarThemeComposite.cpp:
958 (WebCore::ScrollbarThemeComposite::paint):
959 * platform/mac/ScrollbarThemeMac.mm:
961 (WebCore::ScrollbarThemeMac::backButtonRect):
962 (WebCore::ScrollbarThemeMac::forwardButtonRect):
963 (WebCore::ScrollbarThemeMac::trackRect):
964 (WebCore::ScrollbarThemeMac::paintButton):
966 2008-09-19 Darin Adler <darin@apple.com>
968 - try to fix Qt build
970 * bridge/qt/qt_instance.cpp:
971 (JSC::Bindings::QtRuntimeObjectImp::QtRuntimeObjectImp): Add structure argument.
972 (JSC::Bindings::QtInstance::getRuntimeObject): Ditto.
973 * bridge/runtime_object.cpp:
974 (JSC::RuntimeObjectImp::RuntimeObjectImp): Add an overload just for Qt.
975 * bridge/runtime_object.h: Ditto.
977 2008-09-19 Chris Marrin <cmarrin@apple.com>
979 Reviewed by Dave Hyatt.
981 Transition starts running when it shouldn't
982 https://bugs.webkit.org/show_bug.cgi?id=20892
984 When there is a transition and an animation on the
985 same element, make sure the animation wins.
987 The fix is to save the unanimated style when an animation is started.
988 Then, when starting a transition, check to see if there is a current
989 animation on the same prop. If so, use the unanimated style as the
990 fromStyle rather than the current style.
992 Test: animations/transition-and-animation-1.html
994 * page/animation/CompositeAnimation.cpp:
995 (WebCore::CompositeAnimation::updateTransitions):
996 (WebCore::CompositeAnimation::updateKeyframeAnimations):
997 (WebCore::CompositeAnimation::animate):
998 (WebCore::CompositeAnimation::getAnimationForProperty):
999 * page/animation/CompositeAnimation.h:
1000 * page/animation/ImplicitAnimation.cpp:
1001 (WebCore::ImplicitAnimation::reset):
1002 * page/animation/ImplicitAnimation.h:
1003 * page/animation/KeyframeAnimation.cpp:
1004 (WebCore::KeyframeAnimation::hasAnimationForProperty):
1005 * page/animation/KeyframeAnimation.h:
1006 (WebCore::KeyframeAnimation::KeyframeAnimation):
1007 (WebCore::KeyframeAnimation::unanimatedStyle):
1009 2008-09-19 David Hyatt <hyatt@apple.com>
1011 Add support for painting/hit testing of four possible scrollbar buttons.
1012 The Windows themes simply ignore the two parts that they will never
1013 show. The Mac theme also ignores the other two buttons for now.
1015 The cross-platform base for all three themes, ScrollbarThemeComposite,
1016 has all the proper support though.
1018 Reviewed by Sam Weinig
1020 * platform/ScrollbarThemeComposite.cpp:
1021 (WebCore::ScrollbarThemeComposite::hitTest):
1022 (WebCore::ScrollbarThemeComposite::invalidatePart):
1023 * platform/ScrollbarThemeComposite.h:
1024 * platform/mac/ScrollbarThemeMac.h:
1025 * platform/mac/ScrollbarThemeMac.mm:
1026 (WebCore::ScrollbarThemeMac::backButtonRect):
1027 (WebCore::ScrollbarThemeMac::forwardButtonRect):
1028 (WebCore::ScrollbarThemeMac::paintButton):
1029 * platform/win/ScrollbarThemeSafari.cpp:
1030 (WebCore::ScrollbarThemeSafari::backButtonRect):
1031 (WebCore::ScrollbarThemeSafari::forwardButtonRect):
1032 (WebCore::ScrollbarThemeSafari::paintButton):
1033 * platform/win/ScrollbarThemeSafari.h:
1034 * platform/win/ScrollbarThemeWin.cpp:
1035 (WebCore::ScrollbarThemeWin::backButtonRect):
1036 (WebCore::ScrollbarThemeWin::forwardButtonRect):
1037 (WebCore::ScrollbarThemeWin::paintButton):
1038 * platform/win/ScrollbarThemeWin.h:
1040 2008-09-19 Matt Lilek <webkit@mattlilek.com>
1042 Reviewed by Tim Hatcher.
1044 Bug 17772: Inspector should support point-and-click to select a node to inspect
1045 https://bugs.webkit.org/show_bug.cgi?id=17772
1046 <rdar://problem/5792395>
1048 * English.lproj/localizedStrings.js:
1050 (WebCore::Chrome::mouseDidMoveOverElement):
1051 * page/EventHandler.cpp:
1052 (WebCore::EventHandler::handleMousePressEvent):
1053 * page/InspectorController.cpp:
1054 (WebCore::toggleNodeSearch):
1055 (WebCore::searchingForNode):
1056 (WebCore::InspectorController::InspectorController):
1057 (WebCore::InspectorController::toggleSearchForNodeInPage):
1058 (WebCore::InspectorController::mouseDidMoveOverElement):
1059 (WebCore::InspectorController::handleMousePressOnNode):
1060 (WebCore::InspectorController::windowScriptObjectAvailable):
1061 * page/InspectorController.h:
1062 (WebCore::InspectorController::searchingForNodeInPage):
1063 * page/inspector/ElementsPanel.js:
1064 * page/inspector/Images/nodeSearchButtons.png: Added.
1065 * page/inspector/inspector.css:
1067 2008-09-19 David Hyatt <hyatt@apple.com>
1069 Add new scrollbar parts to be able to represent back and forward buttons
1070 at either end of the scrollbar. The current scrollbar still just draws
1071 a single button at either end, but the parts now exist.
1073 Reviewed by Sam Weinig
1075 * platform/ScrollTypes.h:
1077 * platform/Scrollbar.cpp:
1078 (WebCore::Scrollbar::autoscrollTimerFired):
1079 (WebCore::Scrollbar::pressedPartScrollDirection):
1080 (WebCore::Scrollbar::pressedPartScrollGranularity):
1081 (WebCore::Scrollbar::handleMouseMoveEvent):
1082 * platform/ScrollbarTheme.h:
1083 (WebCore::ScrollbarTheme::buttonsPlacement):
1084 (WebCore::ScrollbarTheme::invalidateParts):
1085 * platform/ScrollbarThemeComposite.cpp:
1086 (WebCore::ScrollbarThemeComposite::paint):
1087 (WebCore::ScrollbarThemeComposite::hitTest):
1088 (WebCore::ScrollbarThemeComposite::invalidatePart):
1089 * platform/ScrollbarThemeComposite.h:
1091 2008-09-19 Beth Dakin <bdakin@apple.com>
1093 Reviewed by Dave Hyatt.
1095 Fix for <rdar://problem/6231308> crash in AutoTableLayout
1097 The code assumes later on that a TableSection's grid's row vector
1098 will never be empty. So make 1 the minimum number of columns.
1100 * rendering/RenderTableSection.cpp:
1101 (WebCore::RenderTableSection::ensureRows):
1103 2008-09-19 David Hyatt <hyatt@apple.com>
1105 Add a new ScrollbarButtonsPlacement type for specifying where
1106 the button arrows are in a scrollbar.
1108 Read in the placement settings for Mac. Nothing is done with the
1111 Add a new buttonsPlacement() method to ScrollbarTheme composite
1112 so that the arrow settings can be obtained.
1114 Reviewed by Sam Weinig
1116 * platform/ScrollTypes.h:
1118 * platform/ScrollbarThemeComposite.h:
1119 (WebCore::ScrollbarThemeComposite::buttonsPlacement):
1120 * platform/mac/ScrollbarThemeMac.mm:
1121 (WebCore::updateArrowPlacement):
1122 (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
1124 2008-09-19 Steve Falkenburg <sfalken@apple.com>
1126 Roll out r36626. It is causing variance in SunSpider numbers on XP.
1128 Rubber stamped by Mark Rowe.
1130 * platform/win/SharedTimerWin.cpp:
1131 (WebCore::isRunningOnVistaOrLater):
1132 (WebCore::setSharedTimerFireTime):
1134 2008-09-19 Kevin McCullough <kmccullough@apple.com>
1138 https://bugs.webkit.org/show_bug.cgi?id=20942
1139 Bug 20942: Repeated messages in resources don't collapse
1140 - Now repeated messages in a resource's view are collapsed and a message
1141 says how many were repeated.
1143 * English.lproj/localizedStrings.js:
1144 * manual-tests/inspector/multiple-console-messages.html:
1145 * page/inspector/Console.js: Send all the messages to the resource's
1146 view before possibly returning early if the message is a repeat.
1147 * page/inspector/SourceFrame.js: Add the text about the message being
1148 repeated, if it is, and increment it when necessary.
1150 2008-09-19 Chris Fleizach <cfleizach@apple.com>
1152 Removed unnecessary #if
1154 * page/mac/AccessibilityObjectWrapper.mm:
1156 2008-09-19 David Hyatt <hyatt@apple.com>
1158 Read in prefs for the scroll delay repeat values for buttons. Also
1159 honor the option-click pref for jumping to the thumb when clicking in
1162 Reviewed by Sam Weinig
1164 * platform/mac/ScrollbarThemeMac.h:
1165 * platform/mac/ScrollbarThemeMac.mm:
1166 (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
1167 (WebCore::ScrollbarThemeMac::initialAutoscrollTimerDelay):
1168 (WebCore::ScrollbarThemeMac::autoscrollTimerDelay):
1169 (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
1171 2008-09-19 David Hyatt <hyatt@apple.com>
1173 Move ScrollbarThemeMac.cpp to ScrollbarThemeMac.mm so it can use Obj-C.
1174 Set the initial button repeat delay to 0.5 for Mac.
1176 Reviewed by Sam Weinig
1178 * WebCore.xcodeproj/project.pbxproj:
1179 * platform/mac/ScrollbarThemeMac.cpp: Removed.
1180 * platform/mac/ScrollbarThemeMac.h:
1181 (WebCore::ScrollbarThemeMac::initialAutoscrollTimerDelay):
1182 * platform/mac/ScrollbarThemeMac.mm: Copied from platform/mac/ScrollbarThemeMac.cpp.
1184 2008-09-19 Darin Adler <darin@apple.com>
1186 Reviewed by Sam Weinig.
1188 - part 2 of https://bugs.webkit.org/show_bug.cgi?id=20858
1189 make each distinct C++ class get a distinct JSC::Structure
1191 + Fixed all cases where we were using a shared structure for multiple
1192 C++ classes in WebCore. This still has to be done in JavaScriptCore.
1194 + Got rid of cacheGlobalObject.
1196 + Improved use of PassRefPtr in bindings code.
1198 + Removed a couple cases where we were potentially allocating prototypes
1199 inside a JSObject's construction process -- this can lead to trouble if
1200 we do a garbage collection while an object is only partly constructed.
1202 * bindings/js/JSAudioConstructor.cpp:
1203 (WebCore::JSAudioConstructor::JSAudioConstructor): Create a structure explicitly
1204 so we don't implicitly share the structure with other objects that use the object
1207 * bindings/js/JSDOMBinding.cpp:
1208 (WebCore::getCachedDOMConstructor): Added. To be used for constructors so we
1209 don't need cacheGlobalObject any more.
1210 (WebCore::cacheDOMConstructor): Ditto.
1212 * bindings/js/JSDOMBinding.h: Removed DOMObject constructor that takes a prototype.
1213 Added functions and a function template for getting cached DOM constructors.
1214 Removed cacheGlobalObject function template.
1216 * bindings/js/JSDOMWindowBase.cpp:
1217 (WebCore::JSDOMWindowBase::JSDOMWindowBase): Take a PassRefPtr<DOMWindow> since
1218 we're taking ownership.
1219 * bindings/js/JSDOMWindowBase.h: Changed constructor to take PassRefPtr, since
1220 we're taking ownership. Added constructor map.
1221 * bindings/js/JSDOMWindowCustom.cpp:
1222 (WebCore::JSDOMWindow::mark): Mark the constructors in the map.
1224 * bindings/js/JSDOMWindowShell.cpp:
1225 (WebCore::JSDOMWindowShell::JSDOMWindowShell): Take a PassRefPtr<DOMWindow> since
1226 we're taking ownership. Use the new setWindow function to create the JSDOMWindow;
1227 this is now done in only that one place.
1228 (WebCore::JSDOMWindowShell::setWindow): Added. Creates the JSDOMWindow based on
1229 the passed-in DOMWindow. Code was moved here and changed to allocate unique
1230 structures for both the window prototype and the window.
1231 * bindings/js/JSDOMWindowShell.h: Ditto.
1233 * bindings/js/JSEventTargetBase.h: Changed class template argument so it doesn't
1234 have the same name (JSEventTarget) as an actual class. Removed unhelpful use of
1235 private/friend in JSEventTargetBase. Removed comments referring to defunct
1236 macros. Changed JSEventTargetBasePrototype to get the prototype with the new
1237 rather than its own copy of cacheGlobalObject (I missed this during pass 1).
1238 Changed JSEventTargetBasePrototype so it doesn't have so many template arguments.
1240 * bindings/js/JSEventTargetNode.cpp: Added s_info; needed for the new scheme
1241 for caching structures and prototypes.
1242 (WebCore::JSEventTargetNode::JSEventTargetNode): Use PassRefPtr.
1243 (WebCore::JSEventTargetNode::createPrototype): Added.
1244 * bindings/js/JSEventTargetNode.h: Updated for above changes.
1246 * bindings/js/JSHTMLAllCollection.h:
1247 (WebCore::JSHTMLAllCollection::JSHTMLAllCollection): Use PassRefPtr.
1248 * bindings/js/JSHTMLCollectionCustom.cpp:
1249 (WebCore::getNamedItems): Pass ExecState instead of prototype.
1250 * bindings/js/JSHTMLFormElementCustom.cpp:
1251 (WebCore::JSHTMLFormElement::nameGetter): Ditto.
1252 * bindings/js/JSHTMLInputElementBase.cpp:
1253 (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase): Use PassRefPtr.
1254 * bindings/js/JSHTMLInputElementBase.h: Ditto.
1255 * bindings/js/JSHTMLOptionElementConstructor.cpp:
1256 (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
1257 Create a unique structure instead of sharing.
1258 * bindings/js/JSImageConstructor.cpp:
1259 (WebCore::JSImageConstructor::JSImageConstructor): Ditto.
1261 * bindings/js/JSInspectedObjectWrapper.cpp:
1262 (WebCore::JSInspectedObjectWrapper::wrap): Removed overload that takes
1263 a prototype rather than a structure. Made the use of inheritorID() here
1265 * bindings/js/JSInspectedObjectWrapper.h: Ditto.
1266 * bindings/js/JSInspectorCallbackWrapper.cpp:
1267 (WebCore::JSInspectorCallbackWrapper::wrap): Ditto.
1268 * bindings/js/JSInspectorCallbackWrapper.h: Ditto.
1270 * bindings/js/JSNamedNodesCollection.cpp:
1271 (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Changed to
1272 take an ExecState argument instead of a prototype. Create a unique
1273 StructureID instead of sharing.
1274 * bindings/js/JSNamedNodesCollection.h: Ditto.
1276 * bindings/js/JSQuarantinedObjectWrapper.cpp: Removed overloaded
1277 constructor that takes a prototype instead of a structure.
1278 * bindings/js/JSQuarantinedObjectWrapper.h: Ditto.
1280 * bindings/js/JSRGBColor.cpp:
1281 (WebCore::JSRGBColor::JSRGBColor): Take ExecState instead of a
1282 prototype; create a unique structure.
1283 (WebCore::getJSRGBColor): Ditto.
1284 * bindings/js/JSRGBColor.h: Ditto.
1286 * bindings/js/JSSQLResultSetRowListCustom.cpp:
1287 (WebCore::JSSQLResultSetRowList::item): Use constructEmptyObject instead
1288 of explicit coding the idiom for making a new object.
1290 * bindings/js/JSXMLHttpRequestConstructor.cpp:
1291 (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
1292 Create a unique structure instead of the shared one.
1293 * bindings/js/JSXSLTProcessorConstructor.cpp:
1294 (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
1297 * bindings/js/ScriptController.cpp:
1298 (WebCore::ScriptController::clearWindowShell): Let the window shell's
1299 setWindow function create the JSDOMWindow instead of doing it here.
1301 * bindings/scripts/CodeGeneratorJS.pm: Changed to use PassRefPtr for
1302 the structure and the wrapped object when creating wrappers.
1303 Simplified some of the special cases for DOMWindow so they are
1304 different only in ways the need to be. Eliminated the
1305 JSDOMWindow::createPrototype and JSDOMWindowPrototype::self
1306 functions. Moved responsibility for creating the structure and
1307 parent prototype out of the prototype constructor into the
1308 createPrototype function. Removed the unused "DoNotCache" flag for
1309 objects other than DOMWindow. Use getDOMConstructor instead of
1310 cacheGlobalObject for constructors. Make each constructor have
1311 a unique structure ID.
1313 * bridge/objc/objc_runtime.h: Added createPrototype and changed the
1314 name of the info member to s_info so we can use the standard DOM
1315 binding macros to handl the prototype.
1316 * bridge/objc/objc_runtime.mm: Fixed namespacing a bit.
1317 (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
1318 Create a unique structure using getDOMStructure.
1320 * bridge/runtime_array.cpp: Fixed namespacing a bit.
1321 (JSC::RuntimeArray::RuntimeArray): Create a unique structure using
1323 * bridge/runtime_array.h: Added createPrototype so getDOMStructure
1326 * bridge/runtime_object.cpp:
1327 (JSC::RuntimeObjectImp::RuntimeObjectImp): Create a unique structure using
1329 * bridge/runtime_object.h: Added createPrototype so getDOMStructure
1332 * history/CachedPage.cpp:
1333 (WebCore::CachedPage::restore): Let the window shell's
1334 setWindow function create the JSDOMWindow instead of doing it here.
1336 * page/DOMWindow.idl: Removed DoNotCache, which is no longer used.
1338 2008-09-19 Dan Bernstein <mitz@apple.com>
1340 Reviewed by Dave Hyatt.
1342 This optimization was suggested by Daniel Fenwick
1344 - speed up measuring text on the Core Text code path by not specifying a paragraph writing direction
1346 Specifying LTR paragraph directionality when measuring runs of RTL text
1347 resulted in typically two CTRuns being generated for every run instead
1348 of one, due to the leading space being reordered to the left.
1350 * platform/graphics/SimpleFontData.h: Removed the ltr parameter to
1351 getCFStringAttributes() and changed m_CFStringAttributes from an array
1353 * platform/graphics/mac/CoreTextController.cpp:
1354 (WebCore::CoreTextController::CoreTextController): Added a
1355 mayUseNaturalWritingDirection parameter.
1356 (WebCore::CoreTextController::collectCoreTextRunsForCharacters): Changed
1357 to force the bidi embedding level whenever
1358 m_mayUseNaturalWritingDirectrion is false. Since this is now a common
1359 case, made the typesetter options dictionaries static.
1360 * platform/graphics/mac/CoreTextController.h:
1361 * platform/graphics/mac/FontMacCoreText.cpp:
1362 (WebCore::Font::selectionRectForComplexText): Renamed a local variable.
1363 (WebCore::Font::floatWidthForComplexText): Changed to allow the
1364 CoreTextController to not set the writing direction.
1365 * platform/graphics/mac/SimpleFontDataMac.mm:
1366 (WebCore::SimpleFontData::getCFStringAttributes): Removed the ltr
1367 parameter and the paragraph style attribute.
1369 2008-09-19 David Hyatt <hyatt@apple.com>
1371 Reviewed by Sam Weinig
1373 https://bugs.webkit.org/show_bug.cgi?id=20941
1375 Incorrect height calculation for replaced element inside nested
1376 positioned elements (where the inner has a percentage height and
1377 the outer implicitly has a fixed height because of explicit top/bottom
1380 Added fast/block/positioning/replaced-inside-top-bottom.html
1382 * rendering/RenderBox.cpp:
1383 (WebCore::RenderBox::availableHeightUsing):
1385 2008-09-19 Chris Fleizach <cfleizach@apple.com>
1389 * page/mac/AccessibilityObjectWrapper.mm:
1391 2008-09-18 Chris Fleizach <cfleizach@apple.com>
1393 Reviewed by Darin Adler.
1395 <rdar://problem/6211041> Expose legend tag in accessibility
1397 Exposes the legend tag as the titleUIElement of a fieldset
1399 Test: accessibility/legend.html
1401 * page/AccessibilityObject.h:
1402 (WebCore::AccessibilityObject::isFieldset):
1403 * page/AccessibilityRenderObject.cpp:
1404 (WebCore::AccessibilityRenderObject::isFieldset):
1405 (WebCore::AccessibilityRenderObject::titleUIElement):
1406 * page/AccessibilityRenderObject.h:
1407 * rendering/RenderFieldset.h:
1409 2008-09-19 Chris Fleizach <cfleizach@apple.com>
1411 Reviewed by Darin Adler.
1413 <rdar://problem/6213171> WebKit should use new array-centric methods for AX performance
1415 Implement a few AX API methods that will be called by AppKit, which will
1416 speed up access to accessibility objects
1418 * page/mac/AccessibilityObjectWrapper.mm:
1419 (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]):
1420 (-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
1421 (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
1423 2008-09-19 Holger Hans Peter Freyther <zecke@selfish.org>
1425 Reviewed by Simon Hausmann.
1427 [qtwebkit] Set the m_should* flags to their proper value on entry
1428 With plugins it was possible that we finished a job twice. This was
1429 some kind of reentrancy in QNetworkReplyHandler::sendQueuedItems. By
1430 setting the flag to (m_loadMode == LoadDeferred) they will always have
1431 the right value and we will not send responses twice.
1433 * platform/network/qt/QNetworkReplyHandler.cpp:
1435 2008-09-19 Holger Hans Peter Freyther <zecke@selfish.org>
1437 Reviewed by Simon Hausmann.
1439 [qtwebkit] Pass test 70 of acid3. Handle text decoding errors
1440 Handle text decoding errors before instructing the parser to parse. We
1441 have converted the text to QString and all encoding errors are gone and
1442 the parser will not be able to detect them. So handle them before parsing.
1444 * dom/XMLTokenizerQt.cpp:
1445 (WebCore::XMLTokenizer::doWrite):
1447 2008-09-18 Darin Adler <darin@apple.com>
1449 Reviewed by Maciej Stachowiak.
1451 - part 1 of https://bugs.webkit.org/show_bug.cgi?id=20858
1452 make each distinct C++ class get a distinct JSC::Structure
1454 * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1455 (WebCore::JSCSSStyleDeclaration::customPut): Use setDOMException
1456 instead of DOMExceptionTranslator.
1458 * bindings/js/JSDOMBinding.cpp:
1459 (WebCore::getCachedDOMObjectWrapper): Updated function name.
1460 (WebCore::cacheDOMObjectWrapper): Ditto.
1461 (WebCore::forgetDOMObject): Ditto.
1462 (WebCore::getCachedDOMNodeWrapper): Ditto.
1463 (WebCore::forgetDOMNode): Ditto.
1464 (WebCore::cacheDOMNodeWrapper): Ditto.
1465 (WebCore::forgetAllDOMNodesForDocument): Ditto.
1466 (WebCore::markDOMNodesForDocument): Ditto.
1467 (WebCore::updateDOMNodeDocument): Ditto.
1468 (WebCore::getCachedDOMStructure): Added.
1469 (WebCore::createDOMStructure): Ditto.
1471 * bindings/js/JSDOMBinding.h: Get rid of the ScriptInterpreter
1472 class and replace the static member functions with non-member
1473 functions. Added many other functions for getting at structures,
1474 prototypes, wrappers, and creating them. Also moved the
1475 cacheGlobalObject function here from JavaScriptCore; eventually
1476 I'll remove that once I get rid of the remaining callers. Also
1477 removed the DOMExceptionTranslator class.
1479 * bindings/js/JSDOMWindowBase.h: Added JSDOMStructureMap type,
1480 and put one of those maps in each window.
1482 * bindings/js/JSDOMWindowCustom.cpp:
1483 (WebCore::markDOMObjectWrapper): Updated for function name change.
1484 (WebCore::JSDOMWindow::mark): Added code to mark all the structures
1485 in the structure map.
1487 * bindings/js/JSEventTargetNode.cpp:
1488 (WebCore::JSEventTargetNode::JSEventTargetNode): Changed to take
1489 a structure instead of a prototype.
1490 * bindings/js/JSEventTargetNode.h: Ditto.
1491 * bindings/js/JSHTMLAllCollection.h:
1492 (WebCore::JSHTMLAllCollection::JSHTMLAllCollection): Ditto.
1494 * bindings/js/JSHTMLInputElementBase.cpp:
1495 (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase): Removed
1496 use of the JSC_IMPLEMENT_PROTOTYPE macro, and changed to take a
1497 structure instead of a prototype.
1498 * bindings/js/JSHTMLInputElementBase.h: Removed use of the
1499 JSC_DEFINE_PROTOTYPE_WITH_PROTOTYPE macro, and changed constructor
1500 to take a structure instead of a prototype. Created a dummy prototype
1501 class that causes the HTMLInputElement prototype to have the
1502 HTMLElement prototype.
1504 * bindings/scripts/CodeGeneratorJS.pm: Change constructors to take
1505 structures instead of prototypes. Changed the prototype self function
1506 to use the getDOMPrototype function -- later we can eliminate it and
1507 have callers invoke getDOMPrototype directly instead. Updated other
1508 functions that have name changes. Added code to generate the
1509 createPrototype member function. Changed use of cacheGlobalObject to
1510 get it from the WebCore namespace instead of the JSC namespace.
1511 Changed cacheDOMObject calls to use getDOMObjectWrapper instead.
1514 (WebCore::Document::~Document): Updated for name change and also
1515 removed unnecessary JSLock use -- there's no need to lock around this.
1517 (WebCore::Node::setDocument): Ditto.
1519 * dom/make_names.pl: Changed to use CREATE_DOM_NODE_WRAPPER macro
1520 instead of calling new directly.
1522 * bindings/js/JSCSSRuleCustom.cpp:
1523 (WebCore::toJS): Updated for function name changes and used the
1524 CREATE_DOM_OBJECT_WRAPPER macro.
1525 * bindings/js/JSCSSValueCustom.cpp:
1526 (WebCore::toJS): Ditto.
1527 * bindings/js/JSCanvasPixelArrayCustom.cpp:
1528 (WebCore::toJS): Ditto.
1529 * bindings/js/JSDocumentCustom.cpp:
1530 (WebCore::JSDocument::mark): Ditto.
1531 (WebCore::toJS): Ditto.
1532 * bindings/js/JSElementCustom.cpp:
1533 (WebCore::toJSNewlyCreated): Ditto.
1534 * bindings/js/JSEventCustom.cpp:
1535 (WebCore::toJS): Ditto.
1536 * bindings/js/JSEventTargetBase.cpp:
1537 (WebCore::jsEventTargetDispatchEvent): Use setDOMException instead
1538 of DOMExceptionTranslator.
1539 (WebCore::toJS): Updated for function name changes and used the
1540 CREATE_DOM_OBJECT_WRAPPER macro.
1541 * bindings/js/JSHTMLCollectionCustom.cpp:
1542 (WebCore::toJS): Ditto.
1543 * bindings/js/JSNodeCustom.cpp:
1544 (WebCore::JSNode::mark): Ditto.
1545 (WebCore::createWrapper): Ditto.
1546 (WebCore::toJS): Ditto.
1547 * bindings/js/JSSVGPathSegCustom.cpp:
1548 (WebCore::toJS): Ditto.
1549 * bindings/js/JSStyleSheetCustom.cpp:
1550 (WebCore::toJS): Ditto.
1551 (WebCore::JSStyleSheet::mark): Ditto.
1552 * bindings/js/JSTextCustom.cpp:
1553 (WebCore::toJSNewlyCreated): Ditto.
1554 * bindings/js/JSXMLHttpRequestConstructor.cpp:
1555 (WebCore::constructXMLHttpRequest): Ditto.
1556 * bindings/js/JSXMLHttpRequestCustom.cpp:
1557 (WebCore::JSXMLHttpRequest::mark): Ditto.
1558 * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
1559 (WebCore::JSXMLHttpRequestUpload::mark): Ditto.
1560 * bindings/js/JSXSLTProcessorConstructor.cpp:
1561 (WebCore::constructXSLTProcessor): Ditto.
1562 * bindings/js/ScriptController.cpp:
1563 (WebCore::ScriptController::finishedWithEvent): Ditto.
1564 * xml/XMLHttpRequest.cpp:
1565 (WebCore::XMLHttpRequest::loadRequestAsynchronously): Ditto.
1566 (WebCore::XMLHttpRequest::dropProtection): Ditto.
1568 2008-09-18 David Hyatt <hyatt@apple.com>
1570 This patch gets a viewless scrollbar working on Mac. It is turned off
1571 by default. Hit testing works. For now the scrollbar just paints ugly
1572 debug rects in the place of the buttons, track and thumb. It does match
1573 Aqua metrics though.
1575 Reviewed by Sam Weinig
1577 * WebCore.xcodeproj/project.pbxproj:
1578 * page/mac/EventHandlerMac.mm:
1579 (WebCore::EventHandler::passMousePressEventToScrollbar):
1580 * platform/ScrollbarThemeComposite.cpp:
1581 (WebCore::ScrollbarThemeComposite::paint):
1582 (WebCore::ScrollbarThemeComposite::trackPosition):
1583 * platform/ScrollbarThemeComposite.h:
1584 * platform/mac/ScrollViewMac.mm:
1585 (WebCore::ScrollView::addChild):
1586 * platform/mac/ScrollbarThemeMac.cpp:
1588 (WebCore::ScrollbarThemeMac::hasButtons):
1589 (WebCore::ScrollbarThemeMac::hasThumb):
1590 (WebCore::buttonRepaintRect):
1591 (WebCore::ScrollbarThemeMac::backButtonRect):
1592 (WebCore::ScrollbarThemeMac::forwardButtonRect):
1593 (WebCore::trackRepaintRect):
1594 (WebCore::ScrollbarThemeMac::trackRect):
1595 (WebCore::ScrollbarThemeMac::minimumThumbLength):
1596 (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
1597 (WebCore::ScrollbarThemeMac::paintTrack):
1598 (WebCore::ScrollbarThemeMac::paintButton):
1599 (WebCore::ScrollbarThemeMac::paintThumb):
1600 * platform/mac/ScrollbarThemeMac.h:
1601 (WebCore::ScrollbarThemeMac::supportsControlTints):
1602 * platform/qt/ScrollbarThemeQt.cpp:
1603 (WebCore::ScrollbarThemeQt::trackPosition):
1605 2008-09-18 Collin Jackson <collinj@webkit.org>
1607 Build fix; added missing header file to GNUmakefile.am
1611 2008-09-18 Sam Weinig <sam@webkit.org>
1613 Reviewed by David "the Hair" Hyatt.
1615 Move DataRef, SVGRenderStyle and SVGRenderStyleDefs in render/style.
1619 * WebCore.vcproj/WebCore.vcproj:
1620 * WebCore.xcodeproj/project.pbxproj:
1621 * rendering/DataRef.h: Removed.
1622 * rendering/SVGRenderStyle.cpp: Removed.
1623 * rendering/SVGRenderStyle.h: Removed.
1624 * rendering/SVGRenderStyleDefs.cpp: Removed.
1625 * rendering/SVGRenderStyleDefs.h: Removed.
1626 * rendering/style/DataRef.h: Copied from rendering/DataRef.h.
1627 * rendering/style/SVGRenderStyle.cpp: Copied from rendering/SVGRenderStyle.cpp.
1628 * rendering/style/SVGRenderStyle.h: Copied from rendering/SVGRenderStyle.h.
1629 * rendering/style/SVGRenderStyleDefs.cpp: Copied from rendering/SVGRenderStyleDefs.cpp.
1630 * rendering/style/SVGRenderStyleDefs.h: Copied from rendering/SVGRenderStyleDefs.h.
1632 2008-09-18 Mark Rowe <mrowe@apple.com>
1634 Reviewed by Dan Bernstein.
1636 Add a means of clearing a FrameTree's name.
1639 * page/FrameTree.cpp:
1640 (WebCore::FrameTree::clearName):
1643 2008-09-18 David Hyatt <hyatt@apple.com>
1645 Eliminate addToSuperview from Widget, since it was only called
1646 by ScrollViewMac's addChild method. Just shift the original body
1647 of addToSuperView into addChild.
1649 Reviewed by Sam Weinig
1651 * platform/Widget.h:
1652 * platform/mac/ScrollViewMac.mm:
1653 (WebCore::ScrollView::addChild):
1654 * platform/mac/WidgetMac.mm:
1656 2008-09-18 Collin Jackson <collinj@webkit.org>
1658 Reviewed by Antti Koivisto and Mark Rowe.
1660 Test: http/tests/misc/dns-prefetch-control.html
1662 https://bugs.webkit.org/show_bug.cgi?id=20690
1664 Invoke WebCore::prefetchDNS() on host names that appear in
1665 in the href of hyperlinks and <link rel="dns-prefetch">. This
1666 can be used to implement DNS prefetching.
1668 * WebCore.vcproj/WebCore.vcproj:
1669 * WebCore.xcodeproj/project.pbxproj:
1671 (WebCore::Document::Document):
1672 (WebCore::Document::processHttpEquiv):
1673 (WebCore::Document::setSecurityOrigin):
1674 (WebCore::Document::initDNSPrefetch):
1675 (WebCore::Document::parseDNSPrefetchControlHeader):
1677 (WebCore::Document::isDNSPrefetchEnabled):
1678 * html/HTMLAnchorElement.cpp:
1679 (WebCore::HTMLAnchorElement::parseMappedAttribute):
1680 * html/HTMLLinkElement.cpp:
1681 (WebCore::HTMLLinkElement::HTMLLinkElement):
1682 (WebCore::HTMLLinkElement::parseMappedAttribute):
1683 (WebCore::HTMLLinkElement::tokenizeRelAttribute):
1684 (WebCore::HTMLLinkElement::process):
1685 * html/HTMLLinkElement.h:
1686 * html/PreloadScanner.cpp:
1687 (WebCore::PreloadScanner::processAttribute):
1688 * loader/FrameLoader.cpp:
1689 (WebCore::FrameLoader::begin):
1690 * platform/gtk/TemporaryLinkStubs.cpp:
1691 (WebCore::prefetchDNS):
1692 * platform/network/DNS.h: Added.
1693 * platform/network/cf/DNSCFNet.cpp: Added.
1694 (WebCore::prefetchDNS):
1695 * platform/qt/TemporaryLinkStubs.cpp:
1696 (WebCore::prefetchDNS):
1697 * platform/wx/TemporaryLinkStubs.cpp:
1698 (WebCore::prefetchDNS):
1700 2008-09-18 David Hyatt <hyatt@apple.com>
1702 Eliminate the convertToScreenCoordinate method on Widget, since
1703 ScrollView has redundant methods that already do the same thing.
1705 Reviewed by Sam Weinig
1707 * editing/mac/SelectionControllerMac.mm:
1708 (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
1709 * platform/Widget.h:
1710 * platform/mac/WidgetMac.mm:
1711 (WebCore::Widget::containingWindow):
1713 2008-09-18 David Hyatt <hyatt@apple.com>
1715 Move to only one constructor for Widgets. Rename data to m_data and make
1716 it have an #ifdef only for platforms that have platform-specific data (Mac
1719 Reviewed by Sam Weinig
1722 * platform/Widget.cpp:
1723 (WebCore::Widget::init):
1724 * platform/Widget.h:
1725 * platform/gtk/WidgetGtk.cpp:
1726 (WebCore::Widget::Widget):
1727 (WebCore::Widget::~Widget):
1728 (WebCore::Widget::cursor):
1729 (WebCore::Widget::setCursor):
1730 * platform/mac/WidgetMac.mm:
1731 (WebCore::Widget::Widget):
1732 (WebCore::Widget::~Widget):
1733 (WebCore::Widget::addToSuperview):
1734 (WebCore::Widget::removeFromSuperview):
1735 (WebCore::Widget::beforeMouseDown):
1736 (WebCore::Widget::afterMouseDown):
1737 * platform/qt/WidgetQt.cpp:
1738 (WebCore::Widget::Widget):
1739 * platform/win/WidgetWin.cpp:
1740 (WebCore::Widget::Widget):
1741 * platform/wx/WidgetWx.cpp:
1742 (WebCore::Widget::Widget):
1744 2008-09-18 David Hyatt <hyatt@apple.com>
1746 Move Qt's isNPAPIPlugin boolean from Widget down to PluginView, since there
1747 was no reason for it to be on Widget. This change eliminates Qt ifdefs
1750 Reviewed by Sam Weinig
1752 * bindings/js/ScriptControllerQt.cpp:
1753 (WebCore::ScriptController::createScriptInstanceForWidget):
1754 * platform/qt/WidgetQt.cpp:
1755 (WebCore::WidgetPrivate::WidgetPrivate):
1756 (WebCore::WidgetPrivate::~WidgetPrivate):
1757 (WebCore::Widget::Widget):
1758 (WebCore::Widget::~Widget):
1759 * plugins/PluginView.cpp:
1760 (WebCore::PluginView::PluginView):
1761 * plugins/PluginView.h:
1762 (WebCore::PluginView::isNPAPIPlugin):
1763 (WebCore::PluginView::setIsNPAPIPlugin):
1765 2008-09-18 David Hyatt <hyatt@apple.com>
1767 Make geometryChanged() cross-platform on Widget. GTK and WIN platform
1768 ifdefs are now gone from Widget!
1770 Reviewed by Sam Weinig
1772 * platform/Widget.h:
1773 (WebCore::Widget::geometryChanged):
1774 * platform/gtk/WidgetGtk.cpp:
1775 * platform/qt/WidgetQt.cpp:
1777 2008-09-18 David Hyatt <hyatt@apple.com>
1779 Consolidate convertTo/FromContainingWindow methods so that all platforms
1780 but Mac share the same code.
1782 Move convertSelfToChild and convertChildToSelf to ScrollView, since
1783 Widget should know nothing about children. Make the methods cross-platform
1786 Reviewed by Sam Weinig
1788 * platform/ScrollView.h:
1789 (WebCore::ScrollView::convertChildToSelf):
1790 (WebCore::ScrollView::convertSelfToChild):
1791 * platform/Widget.cpp:
1792 (WebCore::Widget::convertToContainingWindow):
1793 (WebCore::Widget::convertFromContainingWindow):
1794 * platform/Widget.h:
1795 (WebCore::Widget::geometryChanged):
1796 * platform/gtk/ScrollViewGtk.cpp:
1797 (WebCore::ScrollView::isScrollViewScrollbar):
1798 * platform/gtk/WidgetGtk.cpp:
1799 * platform/mac/ScrollViewMac.mm:
1800 (WebCore::ScrollView::isScrollViewScrollbar):
1801 * platform/mac/WidgetMac.mm:
1802 * platform/qt/ScrollViewQt.cpp:
1803 (WebCore::ScrollView::isScrollViewScrollbar):
1804 * platform/qt/WidgetQt.cpp:
1805 * platform/win/ScrollViewWin.cpp:
1806 (WebCore::ScrollView::isScrollViewScrollbar):
1807 * platform/win/WidgetWin.cpp:
1809 2008-09-18 David Hyatt <hyatt@apple.com>
1811 Make the conversion methods that go to and from some containingWindow
1812 cross-platform. Implement them on Mac.
1814 Reviewed by Sam Weinig
1816 * platform/Widget.h:
1817 (WebCore::Widget::setContainingWindow):
1818 * platform/mac/WidgetMac.mm:
1819 (WebCore::Widget::convertFromContainingWindow):
1820 (WebCore::Widget::convertToContainingWindow):
1822 2008-09-18 Sam Weinig <sam@webkit.org>
1824 Rubber-stamped by David "Yeah-yeah" Hyatt.
1826 Cleanup RenderStyle.
1828 * WebCore.xcodeproj/project.pbxproj:
1829 * rendering/style/CounterContent.h:
1830 * rendering/style/RenderStyle.cpp:
1831 * rendering/style/RenderStyle.h:
1833 2008-09-18 Chris Marrin <cmarrin@apple.com>
1835 Reviewed by Sam Weinig
1837 Fixed https://bugs.webkit.org/show_bug.cgi?id=20908
1838 Now TransformOperations and AnimationList no longer
1839 inherit from Vector<> but rather have API to access.
1841 * css/CSSComputedStyleDeclaration.cpp:
1842 (WebCore::computedTransform):
1843 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1844 * css/CSSStyleSelector.cpp:
1845 (WebCore::CSSStyleSelector::createTransformOperations):
1846 * page/animation/AnimationBase.cpp:
1847 (WebCore::blendFunc):
1848 * page/animation/CompositeAnimation.cpp:
1849 (WebCore::CompositeAnimation::updateTransitions):
1850 (WebCore::CompositeAnimation::updateKeyframeAnimations):
1851 (WebCore::CompositeAnimation::animate):
1852 * page/animation/ImplicitAnimation.cpp:
1853 (WebCore::ImplicitAnimation::validateTransformFunctionList):
1854 * page/animation/KeyframeAnimation.cpp:
1855 (WebCore::KeyframeAnimation::validateTransformFunctionList):
1856 * rendering/RenderLayer.cpp:
1857 (WebCore::RenderLayer::updateReflectionStyle):
1858 * rendering/style/AnimationList.cpp:
1859 (WebCore::AnimationList::operator==):
1860 * rendering/style/AnimationList.h:
1861 (WebCore::AnimationList::operator!=):
1862 (WebCore::AnimationList::size):
1863 (WebCore::AnimationList::isEmpty):
1864 (WebCore::AnimationList::resize):
1865 (WebCore::AnimationList::remove):
1866 (WebCore::AnimationList::append):
1867 (WebCore::AnimationList::animation):
1868 * rendering/style/RenderStyle.cpp:
1869 (WebCore::StyleRareNonInheritedData::updateKeyframes):
1870 (WebCore::RenderStyle::applyTransform):
1871 (WebCore::RenderStyle::adjustAnimations):
1872 (WebCore::RenderStyle::adjustTransitions):
1873 (WebCore::RenderStyle::transitionForProperty):
1874 * rendering/style/RenderStyle.h:
1875 (WebCore::RenderStyle::hasTransform):
1876 * rendering/style/TransformOperations.cpp:
1877 (WebCore::TransformOperations::TransformOperations):
1878 (WebCore::TransformOperations::operator==):
1879 * rendering/style/TransformOperations.h:
1880 (WebCore::TransformOperations::apply):
1881 (WebCore::TransformOperations::operations):
1883 2008-09-18 Holger Hans Peter Freyther <zecke@selfish.org>
1887 [qt] Build fixes after the Widget/ScrollView cleanup
1888 topLevel() is now root()
1891 * platform/qt/ScrollViewQt.cpp:
1892 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
1893 (WebCore::ScrollView::addChild):
1894 (WebCore::ScrollView::removeChild):
1896 2008-09-18 Holger Hans Peter Freyther <zecke@selfish.org>
1898 Reviewed by Mark Rowe.
1900 https://bugs.webkit.org/show_bug.cgi?id=20437
1902 XMLTokenizer.cpp used to contain two different implementations. One was using
1903 libxml2 and the other was using the Qt XML StreamReader. Clean up the code by
1904 separating the two implementations from each other.
1905 Common code and some small bits are kept inside the XMLTokenizer.cpp, the Qt code
1906 was moved to XMLTokenizerQt.cpp and the Libxml2 based code was moved to
1907 XMLTokenizerLibxml2.cpp. There should be no functional changes.
1909 Attempt to add XMLTokenizerLibxml2.cpp to every buildsystem so the build continues
1914 * WebCore.vcproj/WebCore.vcproj:
1915 * WebCore.xcodeproj/project.pbxproj:
1916 * WebCoreSources.bkl:
1917 * dom/XMLTokenizer.cpp:
1918 (WebCore::isScriptElement):
1919 (WebCore::castToScriptElement):
1920 (WebCore::XMLTokenizer::setCurrentNode):
1921 (WebCore::XMLTokenizer::write):
1922 (WebCore::XMLTokenizer::eventuallyMarkAsParserCreated):
1923 (WebCore::XMLTokenizer::enterText):
1924 (WebCore::toString):
1925 (WebCore::XMLTokenizer::exitText):
1926 (WebCore::XMLTokenizer::end):
1927 (WebCore::XMLTokenizer::insertErrorMessageBlock):
1928 * dom/XMLTokenizer.h:
1929 (WebCore::XMLTokenizer::wellFormed):
1930 * dom/XMLTokenizerLibxml2.cpp: Copied from WebCore/dom/XMLTokenizer.cpp.
1931 (WebCore::createMemoryParser):
1932 (WebCore::XMLTokenizer::XMLTokenizer):
1933 (WebCore::XMLTokenizer::~XMLTokenizer):
1934 (WebCore::XMLTokenizer::doWrite):
1935 (WebCore::ignorableWhitespaceHandler):
1936 (WebCore::XMLTokenizer::initializeParserContext):
1937 (WebCore::XMLTokenizer::doEnd):
1938 (WebCore::XMLTokenizer::lineNumber):
1939 (WebCore::XMLTokenizer::columnNumber):
1940 (WebCore::XMLTokenizer::stopParsing):
1941 (WebCore::XMLTokenizer::resumeParsing):
1942 (WebCore::parseXMLDocumentFragment):
1943 (WebCore::attributesStartElementNsHandler):
1944 (WebCore::parseAttributes):
1945 * dom/XMLTokenizerQt.cpp: Copied from WebCore/dom/XMLTokenizer.cpp.
1946 (WebCore::EntityResolver::resolveUndeclaredEntity):
1947 (WebCore::XMLTokenizer::XMLTokenizer):
1948 (WebCore::XMLTokenizer::~XMLTokenizer):
1949 (WebCore::XMLTokenizer::doWrite):
1950 (WebCore::XMLTokenizer::initializeParserContext):
1951 (WebCore::XMLTokenizer::doEnd):
1952 (WebCore::XMLTokenizer::lineNumber):
1953 (WebCore::XMLTokenizer::columnNumber):
1954 (WebCore::XMLTokenizer::stopParsing):
1955 (WebCore::XMLTokenizer::resumeParsing):
1956 (WebCore::parseXMLDocumentFragment):
1957 (WebCore::attributesStartElementNsHandler):
1958 (WebCore::parseAttributes):
1961 2008-09-18 Beth Dakin <bdakin@apple.com>
1963 Reviewed by Geoff Garen.
1965 Build fix for non-Mac builds.
1967 * css/CSSPrimitiveValue.cpp:
1968 (WebCore::CSSPrimitiveValue::cssText):
1970 2008-09-18 Peter Kasting <pkasting@google.com>
1972 Reviewed by hyatt. Landed by eseidel.
1974 https://bugs.webkit.org/show_bug.cgi?id=20745
1975 Animated GIFs do not animate properly with (at least) CG.
1977 * WebCore\platform\graphics\BitmapImage.cpp:
1978 * WebCore\platform\graphics\BitmapImage.h:
1979 * WebCore\platform\graphics\cairo\ImageCairo.cpp:
1980 * WebCore\platform\graphics\cg\ImageCG.cpp:
1981 * WebCore\platform\graphics\qt\ImageQt.cpp:
1982 * WebCore\platform\graphics\wx\ImageWx.cpp:
1984 2008-09-18 Chris Fleizach <cfleizach@apple.com>
1986 Reviewed by Beth Dakin
1988 <rdar://problem/6224222> AX: should not expose a <table> as an AXTable if ARIA
1989 role specifies otherwise
1991 If a <table> isn't an AXTable, the rows and cells should default to AccessibilityRenderObject
1993 Test: accessibility/table-with-aria-role.html
1995 * page/AccessibilityTable.cpp:
1996 (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
1997 (WebCore::AccessibilityTable::addChildren):
1998 (WebCore::AccessibilityTable::roleValue):
1999 (WebCore::AccessibilityTable::accessibilityIsIgnored):
2000 (WebCore::AccessibilityTable::title):
2001 * page/AccessibilityTableCell.cpp:
2002 (WebCore::AccessibilityTableCell::accessibilityIsIgnored):
2003 (WebCore::AccessibilityTableCell::isTableCell):
2004 (WebCore::AccessibilityTableCell::roleValue):
2005 * page/AccessibilityTableCell.h:
2006 * page/AccessibilityTableRow.cpp:
2007 (WebCore::AccessibilityTableRow::roleValue):
2008 (WebCore::AccessibilityTableRow::isTableRow):
2009 (WebCore::AccessibilityTableRow::accessibilityIsIgnored):
2010 * page/AccessibilityTableRow.h:
2012 2008-09-18 Steve Falkenburg <sfalken@apple.com>
2014 Use higher-resolution timers on all variants of Windows.
2016 Reviewed by Darin Adler.
2018 * platform/win/SharedTimerWin.cpp:
2019 (WebCore::setSharedTimerFireTime):
2022 2008-09-18 David Hyatt <hyatt@apple.com>
2024 Make containingWindow() and setContainingWindow() cross-platform.
2025 Add a root() function cross-platform so Qt doesn't have to
2028 Reviewed by Darin Adler
2030 * platform/Widget.cpp:
2031 (WebCore::Widget::root):
2032 * platform/Widget.h:
2033 (WebCore::Widget::setContainingWindow):
2034 * platform/gtk/WidgetGtk.cpp:
2035 (WebCore::Widget::Widget):
2036 (WebCore::Widget::containingWindow):
2037 * platform/mac/ScrollViewMac.mm:
2038 (WebCore::ScrollView::addChild):
2039 (WebCore::ScrollView::removeChild):
2040 * platform/mac/WidgetMac.mm:
2041 (WebCore::Widget::containingWindow):
2042 * platform/qt/WidgetQt.cpp:
2043 (WebCore::Widget::invalidateRect):
2044 (WebCore::Widget::containingWindow):
2045 * platform/win/WidgetWin.cpp:
2046 (WebCore::Widget::Widget):
2047 (WebCore::Widget::~Widget):
2048 (WebCore::Widget::containingWindow):
2050 2008-09-18 Beth Dakin <bdakin@apple.com>
2052 Reviewed by Dave Hyatt.
2054 Fix for https://bugs.webkit.org/show_bug.cgi?id=20515 Crash upon
2055 parsing CSS: unicode-range: searchfield-cancel-buttonpt=-webkit-
2057 and corresponding: <rdar://problem/6174100>
2059 This patch makes CSSParserValue::createCSSValue handle unknown
2062 * css/CSSParserValues.cpp:
2063 (WebCore::CSSParserValue::createCSSValue): If we have an identifier
2064 with no id (an unknown identifier) create a CSSPrimitiveValue of
2065 type CSS_PARSER_IDENTIFIER
2066 * css/CSSPrimitiveValue.cpp:
2067 (WebCore::CSSPrimitiveValue::cssText):
2068 (WebCore::CSSPrimitiveValue::parserValue):
2069 * css/CSSPrimitiveValue.h:
2070 (WebCore::CSSPrimitiveValue::):
2072 2008-09-18 Sam Weinig <sam@webkit.org>
2074 Rubber-stamped by David "I'd prefer not" Hyatt.
2076 More the remaining class out of RenderStyle.h/cpp
2080 * WebCore.vcproj/WebCore.vcproj:
2081 * WebCore.xcodeproj/project.pbxproj:
2082 * WebCoreSources.bkl:
2083 * rendering/style/CursorData.h: Copied from rendering/style/RenderStyle.h.
2084 (WebCore::CursorData::CursorData):
2085 (WebCore::CursorData::operator==):
2086 (WebCore::CursorData::operator!=):
2087 * rendering/style/CursorList.h: Copied from rendering/style/RenderStyle.h.
2088 (WebCore::CursorList::operator[]):
2089 (WebCore::CursorList::CursorList):
2090 * rendering/style/RenderStyle.cpp:
2091 * rendering/style/RenderStyle.h:
2092 (WebCore::RenderStyle::deref):
2093 (WebCore::RenderStyle::hasOneRef):
2094 (WebCore::RenderStyle::InheritedFlags::operator!=):
2095 (WebCore::RenderStyle::NonInheritedFlags::operator!=):
2096 (WebCore::RenderStyle::hasBackground):
2097 (WebCore::RenderStyle::outlineWidth):
2098 (WebCore::RenderStyle::autoWrap):
2099 (WebCore::RenderStyle::preserveNewline):
2100 (WebCore::RenderStyle::collapseWhiteSpace):
2101 (WebCore::RenderStyle::isCollapsibleWhiteSpace):
2102 (WebCore::RenderStyle::breakOnlyAfterWhiteSpace):
2103 (WebCore::RenderStyle::breakWords):
2104 (WebCore::RenderStyle::outlineOffset):
2105 (WebCore::RenderStyle::setLeft):
2106 (WebCore::RenderStyle::setRight):
2107 (WebCore::RenderStyle::setTop):
2108 (WebCore::RenderStyle::setBottom):
2109 (WebCore::RenderStyle::setDashboardRegion):
2110 (WebCore::RenderStyle::setBackgroundColor):
2111 (WebCore::RenderStyle::setBorderImage):
2112 (WebCore::RenderStyle::setBorderRadius):
2113 (WebCore::RenderStyle::setFontDescription):
2114 (WebCore::RenderStyle::adjustBackgroundLayers):
2115 (WebCore::RenderStyle::adjustMaskLayers):
2116 (WebCore::RenderStyle::deleteBindingURIs):
2117 (WebCore::RenderStyle::inheritBindingURIs):
2118 (WebCore::RenderStyle::isDisplayReplacedType):
2119 (WebCore::RenderStyle::isDisplayInlineType):
2120 (WebCore::RenderStyle::isOriginalDisplayInlineType):
2121 * rendering/style/StyleInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
2122 * rendering/style/StyleInheritedData.h: Copied from rendering/style/RenderStyle.h.
2123 (WebCore::StyleInheritedData::operator!=):
2124 * rendering/style/StyleRareInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
2125 * rendering/style/StyleRareInheritedData.h: Copied from rendering/style/RenderStyle.h.
2126 (WebCore::StyleRareInheritedData::operator!=):
2127 * rendering/style/StyleRareNonInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
2128 * rendering/style/StyleRareNonInheritedData.h: Copied from rendering/style/RenderStyle.h.
2129 * rendering/style/StyleReflection.h: Copied from rendering/style/RenderStyle.h.
2131 2008-09-18 David Hyatt <hyatt@apple.com>
2133 Move the concept of suppression invalidation on Widgets to Scrollbar
2134 instead. Since this is only used by Scrollbars, there is no need for
2137 Reviewed by Sam Weinig
2139 * platform/Scrollbar.cpp:
2140 (WebCore::Scrollbar::Scrollbar):
2141 (WebCore::Scrollbar::invalidateRect):
2142 * platform/Scrollbar.h:
2143 (WebCore::Scrollbar::suppressInvalidation):
2144 (WebCore::Scrollbar::setSuppressInvalidation):
2145 * platform/Widget.h:
2146 * platform/gtk/WidgetGtk.cpp:
2147 (WebCore::Widget::Widget):
2148 (WebCore::Widget::invalidateRect):
2149 * platform/qt/WidgetQt.cpp:
2150 (WebCore::WidgetPrivate::WidgetPrivate):
2151 (WebCore::Widget::invalidateRect):
2152 * platform/win/WidgetWin.cpp:
2153 (WebCore::Widget::Widget):
2154 (WebCore::Widget::invalidateRect):
2156 2008-09-18 David Hyatt <hyatt@apple.com>
2158 Make invalidate() on Widget non-virtual and make it just call
2159 invalidateRect() on the boundsGeometry() of the Widget.
2161 Reviewed by Dan Bernstein
2163 * platform/Widget.h:
2164 (WebCore::Widget::boundsGeometry):
2165 (WebCore::Widget::invalidate):
2166 * platform/gtk/WidgetGtk.cpp:
2167 * platform/mac/WidgetMac.mm:
2168 * platform/qt/WidgetQt.cpp:
2169 * platform/win/WidgetWin.cpp:
2170 * platform/wx/WidgetWx.cpp:
2172 2008-09-18 Sam Weinig <sam@webkit.org>
2174 Rubber-stamped in exile by David Hyatt.
2176 Split Animation, AnimationList, BindingURI, ContentData, CounterContent,
2177 KeyframeList, ShadowData, StyleFlexibleBoxData and TimingFunction out of
2182 * WebCore.vcproj/WebCore.vcproj:
2183 * WebCore.xcodeproj/project.pbxproj:
2184 * WebCoreSources.bkl:
2185 * css/CSSStyleSelector.cpp:
2186 * css/CSSStyleSelector.h:
2187 * page/animation/CompositeAnimation.cpp:
2188 * page/animation/KeyframeAnimation.cpp:
2189 * page/animation/KeyframeAnimation.h:
2190 * rendering/RenderCounter.h:
2191 * rendering/style/Animation.cpp: Copied from rendering/style/RenderStyle.cpp.
2192 (WebCore::Animation::~Animation):
2193 (WebCore::Animation::animationsMatch):
2194 (WebCore::Animation::keyframeList):
2195 (WebCore::Animation::setAnimationKeyframe):
2196 * rendering/style/Animation.h: Copied from rendering/style/RenderStyle.h.
2197 * rendering/style/AnimationList.cpp: Copied from rendering/style/RenderStyle.cpp.
2198 * rendering/style/AnimationList.h: Copied from rendering/style/RenderStyle.h.
2199 * rendering/style/BindingURI.cpp: Copied from rendering/style/RenderStyle.cpp.
2200 * rendering/style/BindingURI.h: Copied from rendering/style/RenderStyle.h.
2201 (WebCore::BindingURI::operator!=):
2202 * rendering/style/ContentData.cpp: Copied from rendering/style/RenderStyle.cpp.
2203 * rendering/style/ContentData.h: Copied from rendering/style/RenderStyle.h.
2204 (WebCore::ContentData::ContentData):
2205 (WebCore::ContentData::~ContentData):
2206 * rendering/style/CounterContent.h: Copied from rendering/style/RenderStyle.h.
2207 (WebCore::CounterContent::CounterContent):
2208 * rendering/style/CounterDirectives.cpp: Copied from rendering/style/RenderStyle.cpp.
2209 * rendering/style/CounterDirectives.h: Copied from rendering/style/RenderStyle.h.
2210 (WebCore::CounterDirectives::CounterDirectives):
2211 * rendering/style/KeyframeList.cpp: Copied from rendering/style/RenderStyle.cpp.
2212 (WebCore::KeyframeList::insert):
2213 * rendering/style/KeyframeList.h: Copied from rendering/style/RenderStyle.h.
2214 (WebCore::KeyframeValue::KeyframeValue):
2215 (WebCore::KeyframeList::create):
2216 (WebCore::KeyframeList::KeyframeList):
2217 * rendering/style/RenderStyle.cpp:
2218 * rendering/style/RenderStyle.h:
2219 * rendering/style/ShadowData.cpp: Copied from rendering/style/RenderStyle.cpp.
2220 * rendering/style/ShadowData.h: Copied from rendering/style/RenderStyle.h.
2221 (WebCore::ShadowData::ShadowData):
2222 (WebCore::ShadowData::~ShadowData):
2223 (WebCore::ShadowData::operator!=):
2224 * rendering/style/StyleFlexibleBoxData.cpp: Copied from rendering/style/RenderStyle.cpp.
2225 * rendering/style/StyleFlexibleBoxData.h: Copied from rendering/style/RenderStyle.h.
2226 (WebCore::StyleFlexibleBoxData::operator!=):
2227 * rendering/style/TimingFunction.h: Copied from rendering/style/RenderStyle.h.
2228 (WebCore::TimingFunction::TimingFunction):
2229 (WebCore::TimingFunction::operator==):
2231 2008-09-18 Adele Peterson <adele@apple.com>
2233 Reviewed by Dan Bernstein.
2235 Fix RenderStyle leaks.
2237 * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::createSubtreeIfNeeded):
2239 2008-09-18 Kevin McCullough <kmccullough@apple.com>
2241 Accidentally checked in code.
2243 * html/HTMLElementFactory.cpp:
2244 (WebCore::frameConstructor):
2245 (WebCore::iframeConstructor):
2247 2008-09-18 Kevin McCullough <kmccullough@apple.com>
2251 <rdar://problem/5722310> gracefully handle too many console messages
2253 - Keep track of the most previous message and then compare it to the
2254 subsequent messages as they come in. If there are multiple of the same
2255 message create a count that indicates the current number.
2257 * manual-tests/inspector/multiple-console-messages.html: Added.
2258 * page/inspector/Console.js:
2259 * page/inspector/inspector.css:
2261 2008-09-18 Jonathon Jongsma <jonathon@quotidian.org>
2263 Reviewed by Alp Toker
2265 https://bugs.webkit.org/show_bug.cgi?id=20830
2266 [GTK] Don't use deprecated pango API
2268 Replace deprecated pango functions with non-deprecated ones for newer
2271 * platform/graphics/gtk/FontGtk.cpp:
2272 (WebCore::getDefaultPangoLayout):
2273 * platform/graphics/gtk/FontPlatformDataPango.cpp:
2274 (WebCore::FontPlatformData::FontPlatformData):
2276 2008-09-18 Alp Toker <alp@nuanti.com>
2278 Build fix for r36587. Add new sources (and sort the lists).
2282 2008-09-17 Sam Weinig <sam@webkit.org>
2286 * WebCore.vcproj/WebCore.vcproj:
2288 2008-09-17 David Hyatt <hyatt@apple.com>
2290 Switch back to having frameGeometry be virtual in order to keep Mac
2291 the way it used to be.
2293 Reviewed by Sam Weinig
2296 * platform/Widget.cpp:
2297 (WebCore::Widget::setParent):
2298 * platform/Widget.h:
2299 * platform/gtk/WidgetGtk.cpp:
2300 (WebCore::Widget::frameGeometry):
2301 (WebCore::Widget::setFrameGeometry):
2302 * platform/mac/WidgetMac.mm:
2303 (WebCore::Widget::frameGeometry):
2304 (WebCore::Widget::setFrameGeometry):
2305 * platform/qt/WidgetQt.cpp:
2306 (WebCore::Widget::frameGeometry):
2307 (WebCore::Widget::setFrameGeometry):
2308 * platform/win/WidgetWin.cpp:
2309 (WebCore::Widget::frameGeometry):
2310 (WebCore::Widget::setFrameGeometry):
2311 * platform/wx/WidgetWx.cpp:
2312 (WebCore::Widget::frameGeometry):
2313 (WebCore::Widget::setFrameGeometry):
2314 * plugins/PluginView.cpp:
2315 (WebCore::PluginView::setFrameGeometry):
2316 (WebCore::PluginView::geometryChanged):
2317 * plugins/PluginView.h:
2318 * plugins/gtk/PluginViewGtk.cpp:
2319 (WebCore::PluginView::updatePluginWidget):
2320 * plugins/qt/PluginViewQt.cpp:
2321 (WebCore::PluginView::updatePluginWidget):
2322 * plugins/win/PluginViewWin.cpp:
2323 (WebCore::PluginView::updatePluginWidget):
2325 2008-09-17 Sam Weinig <sam@webkit.org>
2327 Reviewed by Mark Rowe.
2329 Fix assertion in DOMWindow::adjustWindowRect where we were passing
2330 in garbage values and were getting lucky that they were a not Nan.
2332 * bindings/js/JSDOMWindowBase.cpp:
2333 (WebCore::windowProtoFuncOpen):
2335 2008-09-17 Sam Weinig <sam@webkit.org>
2339 * rendering/style/MatrixTransformOperation.cpp:
2341 2008-09-17 Sam Weinig <sam@webkit.org>
2343 Rubber-stamped with love by David Hyatt.
2345 Split IdentityTransformOperation, MatrixTransformOperation, RotateTransformOperation,
2346 ScaleTransformOperation, SkewTransformOperation, StyleTransformData, TransformOperation,
2347 TransformOperations and TranslateTransformOperation out of RenderStyle.h/cpp
2351 * WebCore.vcproj/WebCore.vcproj:
2352 * WebCore.xcodeproj/project.pbxproj:
2353 * WebCoreSources.bkl:
2354 * css/CSSStyleSelector.cpp:
2355 * page/animation/AnimationBase.cpp:
2356 (WebCore::solveEpsilon):
2357 * rendering/RenderLayer.cpp:
2358 * rendering/style/IdentityTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2359 * rendering/style/MatrixTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2360 * rendering/style/MatrixTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2361 (WebCore::MatrixTransformOperation::MatrixTransformOperation):
2362 * rendering/style/RenderStyle.cpp:
2363 * rendering/style/RenderStyle.h:
2364 * rendering/style/RotateTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2365 * rendering/style/RotateTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2366 (WebCore::RotateTransformOperation::RotateTransformOperation):
2367 * rendering/style/ScaleTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2368 * rendering/style/ScaleTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2369 (WebCore::ScaleTransformOperation::ScaleTransformOperation):
2370 * rendering/style/SkewTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2371 * rendering/style/SkewTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2372 (WebCore::SkewTransformOperation::SkewTransformOperation):
2373 * rendering/style/StyleTransformData.cpp: Copied from rendering/style/RenderStyle.cpp.
2374 * rendering/style/StyleTransformData.h: Copied from rendering/style/RenderStyle.h.
2375 (WebCore::StyleTransformData::operator!=):
2376 * rendering/style/TransformOperation.h: Copied from rendering/style/RenderStyle.h.
2377 (WebCore::TransformOperation::):
2378 * rendering/style/TransformOperations.cpp: Copied from rendering/style/RenderStyle.cpp.
2379 (WebCore::TransformOperations::TransformOperations):
2380 * rendering/style/TransformOperations.h: Copied from rendering/style/RenderStyle.h.
2381 (WebCore::TransformOperations::operator!=):
2382 * rendering/style/TranslateTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
2383 * rendering/style/TranslateTransformOperation.h: Copied from rendering/style/RenderStyle.h.
2384 (WebCore::TranslateTransformOperation::TranslateTransformOperation):
2386 2008-09-17 Mark Rowe <mrowe@apple.com>
2390 * rendering/style/StyleDashboardRegion.h: PlatformString.h rather than String.h.
2392 2008-09-17 David Hyatt <hyatt@apple.com>
2394 (1) Inline a bunch of methods for accessing frame geometry.
2395 (2) Make sure frameGeometry() works even when you have no underlying
2397 (3) Cache a frame geometry rect cross-platform (even for widgets that
2398 have underlying native widgets.
2399 (4) PluginView's updateWindow call is now a virtual function on Widget.
2401 Reviewed by Sam Weinig
2405 * platform/Widget.cpp:
2406 (WebCore::Widget::setFrameGeometry):
2407 * platform/Widget.h:
2408 (WebCore::Widget::x):
2409 (WebCore::Widget::y):
2410 (WebCore::Widget::width):
2411 (WebCore::Widget::height):
2412 (WebCore::Widget::size):
2413 (WebCore::Widget::pos):
2414 (WebCore::Widget::frameGeometry):
2415 (WebCore::Widget::resize):
2416 (WebCore::Widget::move):
2417 (WebCore::Widget::isFrameView):
2418 (WebCore::Widget::windowClipRect):
2419 * platform/mac/WidgetMac.mm:
2420 (WebCore::Widget::~Widget):
2421 (WebCore::Widget::updatePlatformWidgetFrameGeometry):
2422 * platform/win/WidgetWin.cpp:
2423 (WebCore::Widget::updatePlatformWidgetFrameGeometry):
2424 * plugins/PluginView.cpp:
2425 (WebCore::PluginView::setFrameGeometry):
2426 (WebCore::PluginView::geometryChanged):
2427 * plugins/PluginView.h:
2428 * plugins/gtk/PluginViewGtk.cpp:
2429 (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
2430 * plugins/qt/PluginViewQt.cpp:
2431 (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
2432 * plugins/win/PluginViewWin.cpp:
2433 (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
2434 * plugins/wx/PluginViewWx.cpp:
2436 2008-09-17 Sam Weinig <sam@webkit.org>
2438 Reviewed by David "Waterman" Hyatt.
2440 Fix a leak of NSViews in WidgetMac.mm.
2442 * platform/mac/WidgetMac.mm:
2443 (WebCore::Widget::~Widget):
2445 2008-09-17 Sam Weinig <sam@webkit.org>
2447 Rubber-stamped by David Waterman Hyatt.
2449 Split FillLayer, StyleBackgroundData, StyleBoxData, StyleDashboardRegion, StyleMarqueeData
2450 StyleMultiColData and StyleVisualData out of RenderStyle.h/cpp
2454 * WebCore.vcproj/WebCore.vcproj:
2455 * WebCore.xcodeproj/project.pbxproj:
2456 * WebCoreSources.bkl:
2457 * rendering/style/FillLayer.cpp: Copied from rendering/style/RenderStyle.cpp.
2458 * rendering/style/FillLayer.h: Copied from rendering/style/RenderStyle.h.
2459 (WebCore::FillLayer::operator!=):
2460 (WebCore::FillLayer::hasImage):
2461 (WebCore::FillLayer::hasFixedImage):
2462 * rendering/style/RenderStyle.cpp:
2463 * rendering/style/RenderStyle.h:
2464 * rendering/style/StyleBackgroundData.cpp: Copied from rendering/style/RenderStyle.cpp.
2465 (WebCore::StyleBackgroundData::StyleBackgroundData):
2466 * rendering/style/StyleBackgroundData.h: Copied from rendering/style/RenderStyle.h.
2467 (WebCore::StyleBackgroundData::~StyleBackgroundData):
2468 (WebCore::StyleBackgroundData::operator!=):
2469 * rendering/style/StyleBoxData.cpp: Copied from rendering/style/RenderStyle.cpp.
2470 * rendering/style/StyleBoxData.h: Copied from rendering/style/RenderStyle.h.
2471 (WebCore::StyleBoxData::operator!=):
2472 * rendering/style/StyleDashboardRegion.h: Copied from rendering/style/RenderStyle.h.
2473 (WebCore::StyleDashboardRegion::operator!=):
2474 * rendering/style/StyleMarqueeData.cpp: Copied from rendering/style/RenderStyle.cpp.
2475 * rendering/style/StyleMarqueeData.h: Copied from rendering/style/RenderStyle.h.
2476 (WebCore::StyleMarqueeData::operator!=):
2477 * rendering/style/StyleMultiColData.cpp: Copied from rendering/style/RenderStyle.cpp.
2478 * rendering/style/StyleMultiColData.h: Copied from rendering/style/RenderStyle.h.
2479 (WebCore::StyleMultiColData::operator!=):
2480 (WebCore::StyleMultiColData::ruleWidth):
2481 * rendering/style/StyleVisualData.cpp: Copied from rendering/style/RenderStyle.cpp.
2482 * rendering/style/StyleVisualData.h: Copied from rendering/style/RenderStyle.h.
2483 (WebCore::StyleVisualData::operator==):
2485 2008-09-17 David Hyatt <hyatt@apple.com>
2487 Remove WidgetClient from Widget.
2489 Reviewed by Sam Weinig
2491 * WebCore.xcodeproj/project.pbxproj:
2492 * platform/Widget.h:
2493 (WebCore::Widget::setClient):
2494 (WebCore::Widget::client):
2495 * platform/WidgetClient.h: Removed.
2496 * platform/gtk/WidgetGtk.cpp:
2497 * platform/mac/WidgetMac.mm:
2498 (WebCore::Widget::Widget):
2499 (WebCore::Widget::show):
2500 (WebCore::Widget::hide):
2501 * platform/qt/WidgetQt.cpp:
2502 (WebCore::WidgetPrivate::WidgetPrivate):
2503 * platform/win/WidgetWin.cpp:
2504 (WebCore::Widget::Widget):
2505 * platform/wx/WidgetWx.cpp:
2506 (WebCore::Widget::Widget):
2508 2008-09-17 David Hyatt <hyatt@apple.com>
2510 Remove isEnabled/setEnabled from Widget. The concept of being enabled now
2511 only applies to Scrollbars so the method has been moved there and made
2512 cross-platform. Scrollbar subclasses that have a corresponding native
2513 widget can subclass setEnabled to change the enabled state of the native
2516 Reviewed by Sam Weinig & Darin Adler
2519 * platform/Scrollbar.cpp:
2520 (WebCore::Scrollbar::Scrollbar):
2521 * platform/Scrollbar.h:
2522 (WebCore::Scrollbar::enabled):
2523 (WebCore::Scrollbar::setEnabled):
2524 * platform/Widget.h:
2525 * platform/gtk/ScrollbarGtk.cpp:
2526 (ScrollbarGtk::setEnabled):
2527 * platform/gtk/ScrollbarGtk.h:
2528 * platform/gtk/WidgetGtk.cpp:
2529 * platform/mac/ScrollbarMac.h:
2530 * platform/mac/ScrollbarMac.mm:
2531 (WebCore::ScrollbarMac::scrollbarHit):
2532 (WebCore::ScrollbarMac::setEnabled):
2533 * platform/mac/WidgetMac.mm:
2534 * platform/qt/WidgetQt.cpp:
2535 (WebCore::WidgetPrivate::WidgetPrivate):
2536 * platform/win/WidgetWin.cpp:
2537 (WebCore::Widget::Widget):
2538 * platform/wx/WidgetWx.cpp:
2540 2008-09-17 Sam Weinig <sam@webkit.org>
2542 Rubber-stamped by David Hyatt.
2544 Split all RenderStyle enums into their own file.
2547 * WebCore.vcproj/WebCore.vcproj:
2548 * WebCore.xcodeproj/project.pbxproj:
2549 * rendering/style/BorderValue.h:
2550 * rendering/style/CollapsedBorderValue.h:
2551 * rendering/style/RenderStyle.h:
2552 * rendering/style/RenderStyleConstants.h: Copied from rendering/style/RenderStyle.h.
2554 * rendering/style/StyleCachedImage.h:
2555 * rendering/style/StyleGeneratedImage.h:
2556 * rendering/style/StyleImage.h:
2558 2008-09-17 Steve Falkenburg <sfalken@apple.com>
2560 Add back isFrameView check to fix failed assertion during scroll bar teardown.
2562 Reviewed by Dave Hyatt.
2564 * platform/Scrollbar.cpp:
2565 (WebCore::Scrollbar::setParent):
2567 2008-09-17 Brady Eidson <beidson@apple.com>
2569 Reviewed by Mac build fix
2571 * WebCore.xcodeproj/project.pbxproj: Send appropriate headers to WebKit
2573 2008-09-17 Steve Falkenburg <sfalken@apple.com>
2577 * platform/win/ScrollViewWin.cpp:
2578 (WebCore::ScrollView::setParentVisible):
2579 * plugins/win/PluginViewWin.cpp:
2580 (WebCore::PluginView::init):
2582 2008-09-17 Holger Hans Peter Freyther <zecke@selfish.org>
2586 [QtWebKit] Implement error handling in TextCodecQt::decode
2587 Use the QTextCodec parsing state to set the sawError out variable. This
2588 is needed to pass Test 70 of acid3. The test case for this bug is
2589 fast/encoding/invalid-xml.html that is now partially passed. To pass
2590 it completely the Qt text codecs need to be adjusted to have proper
2593 * platform/text/qt/TextCodecQt.cpp:
2594 (WebCore::TextCodecQt::decode):
2596 2008-09-17 Sam Weinig <sam@webkit.org>
2598 Rubber-stamped by Dave Hyatt.
2600 Split BorderData, BorderValue, CollapsedBorderValue, OutlineValue and StyleSurroundData
2601 out of RenderStyle.h/cpp
2605 * WebCore.vcproj/WebCore.vcproj:
2606 * WebCore.xcodeproj/project.pbxproj:
2607 * WebCoreSources.bkl:
2608 * rendering/style/BorderData.h: Copied from rendering/style/RenderStyle.h.
2609 (WebCore::BorderData::hasBorderRadius):
2610 (WebCore::BorderData::borderLeftWidth):
2611 (WebCore::BorderData::borderRightWidth):
2612 (WebCore::BorderData::borderTopWidth):
2613 (WebCore::BorderData::borderBottomWidth):
2614 (WebCore::BorderData::operator!=):
2615 * rendering/style/BorderValue.h: Copied from rendering/style/RenderStyle.h.
2617 (WebCore::BorderValue::BorderValue):
2618 (WebCore::BorderValue::nonZero):
2619 (WebCore::BorderValue::isTransparent):
2620 (WebCore::BorderValue::isVisible):
2621 * rendering/style/CollapsedBorderValue.h: Copied from rendering/style/RenderStyle.h.
2623 (WebCore::CollapsedBorderValue::CollapsedBorderValue):
2624 (WebCore::CollapsedBorderValue::operator==):
2625 * rendering/style/OutlineValue.h: Copied from rendering/style/RenderStyle.h.
2626 (WebCore::OutlineValue::OutlineValue):
2627 * rendering/style/RenderStyle.cpp:
2628 * rendering/style/RenderStyle.h:
2629 * rendering/style/StyleSurroundData.cpp: Copied from rendering/style/RenderStyle.cpp.
2630 * rendering/style/StyleSurroundData.h: Copied from rendering/style/RenderStyle.h.
2631 (WebCore::StyleSurroundData::operator!=):
2633 2008-09-17 Beth Dakin <bdakin@apple.com>
2635 Reviewed by Darin Adler.
2637 This is a better fix for: Invalid CSS code crashes Safari
2638 https://bugs.webkit.org/show_bug.cgi?id=20512
2640 The spec indicates that the only valid input for a counter is a
2641 number or an identifier. So that is exactly what we allow.
2643 * css/CSSParser.cpp:
2644 (WebCore::CSSParser::parseCounterContent):
2646 2008-09-17 Alp Toker <alp@nuanti.com>
2648 GTK+ build fix. Adapt to use PlatformWidget functions.
2650 * platform/gtk/ScrollViewGtk.cpp:
2651 (WebCore::ScrollViewScrollbar::geometryChanged):
2652 (WebCore::ScrollView::addChild):
2653 (WebCore::ScrollView::removeChild):
2654 * platform/gtk/ScrollbarGtk.cpp:
2655 (ScrollbarGtk::ScrollbarGtk):
2656 (ScrollbarGtk::~ScrollbarGtk):
2657 (ScrollbarGtk::geometryChanged):
2659 2008-09-17 Sam Weinig <sam@webkit.org>
2661 Reviewed by Adele Peterson.
2663 Patch for <rdar://problem/6133884>
2664 Calling window.resizeTo() on a subframe shouldn't change the window size
2666 Test: fast/dom/Window/window-resize-and-move-sub-frame.html
2668 * page/DOMWindow.cpp:
2669 (WebCore::DOMWindow::moveBy):
2670 (WebCore::DOMWindow::moveTo):
2671 (WebCore::DOMWindow::resizeBy):
2672 (WebCore::DOMWindow::resizeTo):
2674 2008-09-17 Beth Dakin <bdakin@apple.com>
2676 Reviewed by Adam Roben.
2678 Fix for https://bugs.webkit.org/show_bug.cgi?id=20512 Invalid CSS
2680 and corresponding: <rdar://problem/6173832>
2682 Reading through the spec, it seems like a function is not valid
2683 input for a counter. So this patch checks for that and bails in the
2684 case of invalid input.
2686 * css/CSSParser.cpp:
2687 (WebCore::CSSParser::parseCounterContent):
2689 2008-09-17 Greg Bolsinga <bolsinga@apple.com>
2691 Reviewed by Antti Koivisto.
2693 Fix <rdar://problem/6227089>
2694 Crash in WebCore::Frame::setNeedsReapplyStyles()
2696 View is null checked elsewhere too.
2699 (WebCore::Frame::setNeedsReapplyStyles):
2701 2008-09-17 David Hyatt <hyatt@apple.com>
2703 Make the notion of having a native widget backing a Widget cross-platform.
2704 The PlatformWidget abstraction (which already existed) is used for this.
2711 There are new cross-platform methods that replace all of the unique
2712 platform-specific methods.
2716 For plugins, on every platform except Qt on Windows, the plugin's native
2717 widget is now stored in the Widget base class. Since Qt on Windows uses
2718 HWNDs for plugins instead of QWidget, it is the only platform to keep the
2719 m_window variable in PluginView.
2721 Reviewed by Sam Weinig
2724 * bindings/js/ScriptControllerMac.mm:
2725 (WebCore::ScriptController::createScriptInstanceForWidget):
2726 * page/mac/AccessibilityObjectWrapper.mm:
2727 (-[AccessibilityObjectWrapper attachmentView]):
2728 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2729 * page/mac/EventHandlerMac.mm:
2730 (WebCore::EventHandler::passMouseDownEventToWidget):
2731 (WebCore::EventHandler::mouseDownViewIfStillGood):
2732 (WebCore::EventHandler::passWheelEventToWidget):
2733 (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
2734 * platform/Widget.cpp:
2735 (WebCore::Widget::init):
2736 (WebCore::Widget::setParent):
2737 (WebCore::Widget::releasePlatformWidget):
2738 (WebCore::Widget::retainPlatformWidget):
2739 * platform/Widget.h:
2740 (WebCore::Widget::platformWidget):
2741 (WebCore::Widget::setPlatformWidget):
2742 * platform/gtk/WidgetGtk.cpp:
2743 (WebCore::Widget::Widget):
2744 (WebCore::Widget::setFocus):
2745 (WebCore::gdkDrawable):
2746 (WebCore::Widget::setCursor):
2747 (WebCore::Widget::show):
2748 (WebCore::Widget::hide):
2749 (WebCore::Widget::setEnabled):
2750 (WebCore::Widget::isEnabled):
2751 (WebCore::Widget::paint):
2752 * platform/mac/PlatformScreenMac.mm:
2753 (WebCore::screenRect):
2754 (WebCore::screenAvailableRect):
2755 * platform/mac/ScrollViewMac.mm:
2756 (WebCore::ScrollView::scrollView):
2757 (WebCore::ScrollView::update):
2758 (WebCore::ScrollView::inWindow):
2759 * platform/mac/ScrollbarMac.mm:
2760 (WebCore::ScrollbarMac::ScrollbarMac):
2761 (WebCore::ScrollbarMac::~ScrollbarMac):
2762 (WebCore::ScrollbarMac::updateThumbPosition):
2763 (WebCore::ScrollbarMac::updateThumbProportion):
2764 (WebCore::ScrollbarMac::scrollbarHit):
2765 * platform/mac/WidgetMac.mm:
2766 (WebCore::Widget::Widget):
2767 (WebCore::Widget::setEnabled):
2768 (WebCore::Widget::isEnabled):
2769 (WebCore::Widget::setFocus):
2770 (WebCore::Widget::getOuterView):
2771 (WebCore::Widget::paint):
2772 (WebCore::Widget::invalidate):
2773 (WebCore::Widget::invalidateRect):
2774 (WebCore::Widget::setIsSelected):
2775 (WebCore::Widget::releasePlatformWidget):
2776 (WebCore::Widget::retainPlatformWidget):
2777 * platform/qt/WidgetQt.cpp:
2778 (WebCore::WidgetPrivate::WidgetPrivate):
2779 (WebCore::Widget::Widget):
2780 (WebCore::Widget::setFrameGeometry):
2781 (WebCore::Widget::show):
2782 (WebCore::Widget::hide):
2783 (WebCore::Widget::isEnabled):
2784 (WebCore::Widget::setEnabled):
2785 (WebCore::Widget::invalidateRect):
2786 (WebCore::Widget::containingWindow):
2787 * platform/win/WidgetWin.cpp:
2788 (WebCore::Widget::Widget):
2789 * platform/wx/WidgetWx.cpp:
2790 (WebCore::Widget::Widget):
2791 (WebCore::Widget::frameGeometry):
2792 (WebCore::Widget::setFocus):
2793 (WebCore::Widget::setCursor):
2794 (WebCore::Widget::show):
2795 (WebCore::Widget::hide):
2796 (WebCore::Widget::setFrameGeometry):
2797 (WebCore::Widget::setEnabled):
2798 (WebCore::Widget::isEnabled):
2799 (WebCore::Widget::invalidate):
2800 (WebCore::Widget::invalidateRect):
2801 (WebCore::Widget::paint):
2802 * plugins/PluginView.cpp:
2803 (WebCore::PluginView::PluginView):
2804 * plugins/PluginView.h:
2805 (WebCore::PluginView::platformPluginWidget):
2806 * plugins/gtk/PluginViewGtk.cpp:
2807 (WebCore::PluginView::updateWindow):
2808 (WebCore::PluginView::setFocus):
2809 (WebCore::PluginView::show):
2810 (WebCore::PluginView::hide):
2811 (WebCore::PluginView::setParent):
2812 (WebCore::PluginView::setNPWindowRect):
2813 (WebCore::PluginView::setParentVisible):
2814 (WebCore::PluginView::getValue):
2815 (WebCore::PluginView::forceRedraw):
2816 (WebCore::PluginView::init):
2817 * plugins/qt/PluginViewQt.cpp:
2818 (WebCore::PluginView::updateWindow):
2819 (WebCore::PluginView::setFocus):
2820 (WebCore::PluginView::show):
2821 (WebCore::PluginView::hide):
2822 (WebCore::PluginView::setParent):
2823 (WebCore::PluginView::setNPWindowRect):
2824 (WebCore::PluginView::setParentVisible):
2825 (WebCore::PluginView::getValue):
2826 (WebCore::PluginView::~PluginView):
2827 (WebCore::PluginView::init):
2828 * plugins/win/PluginViewWin.cpp:
2829 (WebCore::PluginView::updateWindow):
2830 (WebCore::PluginView::setFocus):
2831 (WebCore::PluginView::show):
2832 (WebCore::PluginView::hide):
2833 (WebCore::PluginView::paint):
2834 (WebCore::PluginView::setParent):
2835 (WebCore::PluginView::setParentVisible):
2836 (WebCore::PluginView::setNPWindowRect):
2837 (WebCore::PluginView::stop):
2838 (WebCore::PluginView::invalidateRect):
2839 (WebCore::PluginView::forceRedraw):
2840 (WebCore::PluginView::~PluginView):
2841 (WebCore::PluginView::init):
2843 2008-09-17 Sam Weinig <sam@webkit.org>
2847 * platform/Widget.cpp:
2848 (WebCore::Widget::setParent):
2850 2008-09-17 David Hyatt <hyatt@apple.com>
2852 Beginnings of Widget refactoring (in order to make the mixing of
2853 widgets with and without corresponding native widgets more cross-platform).
2855 This first patch makes the concept of a parent ScrollView cross-platform.
2857 Note the similarity of the show/hide methods on the three PluginViews. This
2858 will be refactored better in a later patch so that they can all share
2859 a base class Widget show/hide method. For now the changes were made
2860 simply to be able to bring WidgetWin's setParent method up into Widget.
2862 Reviewed by Sam Weinig
2865 * platform/ScrollView.h:
2866 * platform/Widget.cpp:
2867 (WebCore::Widget::init):
2868 (WebCore::Widget::setParent):
2869 * platform/Widget.h:
2870 (WebCore::Widget::isSelfVisible):
2871 (WebCore::Widget::isParentVisible):
2872 (WebCore::Widget::isVisible):
2873 (WebCore::Widget::setParentVisible):
2874 (WebCore::Widget::isPluginView):
2875 (WebCore::Widget::parent):
2876 (WebCore::Widget::handleEvent):
2877 (WebCore::Widget::geometryChanged):
2878 * platform/gtk/WidgetGtk.cpp:
2879 (WebCore::Widget::Widget):
2880 * platform/mac/ScrollViewMac.mm:
2881 (WebCore::ScrollView::addChild):
2882 (WebCore::ScrollView::removeChild):
2883 * platform/mac/ScrollbarMac.mm:
2884 (WebCore::ScrollbarMac::~ScrollbarMac):
2885 * platform/mac/WidgetMac.mm:
2886 (WebCore::Widget::Widget):
2887 (WebCore::Widget::~Widget):
2888 * platform/qt/WidgetQt.cpp:
2889 (WebCore::WidgetPrivate::WidgetPrivate):
2890 (WebCore::Widget::Widget):
2891 (WebCore::Widget::topLevel):
2892 * platform/win/ScrollViewWin.cpp:
2893 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
2894 (WebCore::ScrollView::setAncestorVisible):
2895 (WebCore::ScrollView::show):
2896 (WebCore::ScrollView::hide):
2897 * platform/win/WidgetWin.cpp:
2898 (WebCore::Widget::Widget):
2899 (WebCore::Widget::setParent):
2900 * platform/wx/WidgetWx.cpp:
2901 (WebCore::Widget::Widget):
2902 * plugins/PluginView.cpp:
2903 (WebCore::PluginView::PluginView):
2904 * plugins/PluginView.h:
2905 * plugins/gtk/PluginViewGtk.cpp:
2906 (WebCore::PluginView::show):
2907 (WebCore::PluginView::hide):
2908 (WebCore::PluginView::setParentVisible):
2909 * plugins/qt/PluginViewQt.cpp:
2910 (WebCore::PluginView::show):
2911 (WebCore::PluginView::hide):
2912 (WebCore::PluginView::setParentVisible):
2913 * plugins/win/PluginViewWin.cpp:
2914 (WebCore::PluginView::show):
2915 (WebCore::PluginView::hide):
2916 (WebCore::PluginView::setParentVisible):
2918 2008-09-17 Alexey Proskuryakov <ap@webkit.org>
2920 Reviewed by Adam Roben.
2922 <rdar://problem/6219577> Spew in console at launch about encoding mappings when running with ICU 4.0
2924 * platform/text/TextCodecICU.cpp:
2925 (WebCore::TextCodecICU::registerExtendedEncodingNames): Updated for new encoding names.
2927 2008-09-17 Tor Arne Vestbø <tavestbo@trolltech.com>
2929 Fix the QtWebKit/Mac build
2931 * platform/qt/ScrollViewQt.cpp: add include
2933 2008-09-17 David Hyatt <hyatt@apple.com>
2935 Add a #define to control whether or not to use an NSScroller on Mac.
2936 This ifdef will allow the new NSView-less NSScroller on Mac to be
2937 developed side by side with the current one.
2939 The new scroller paints a debug red if turned on (although due to
2940 Widget issues you won't see anything paint yet).
2944 * platform/Scrollbar.cpp:
2945 * platform/Scrollbar.h:
2946 * platform/mac/ScrollbarMac.h:
2947 * platform/mac/ScrollbarMac.mm:
2948 * platform/mac/ScrollbarThemeMac.cpp:
2949 (WebCore::ScrollbarThemeMac::paint):
2950 * platform/mac/ScrollbarThemeMac.h:
2952 2008-09-16 Marco Barisione <marco.barisione@collabora.co.uk>
2954 Reviewed by Alp Toker.
2956 http://bugs.webkit.org/show_bug.cgi?id=20854
2957 [GTK] Windows can be not realized in ScrollView::update
2959 Do not call gdk_window_invalidate_rect on a non-realized GtkWidget.
2961 * platform/gtk/ScrollViewGtk.cpp:
2962 (WebCore::ScrollView::update):
2964 2008-09-16 Alp Toker <alp@nuanti.com>
2966 Suggested by Dave Hyatt.
2968 Build fix and cleanup. Rename ScrollBar to Scrollbar.
2972 * WebCore.vcproj/WebCore.vcproj:
2973 * WebCore.xcodeproj/project.pbxproj:
2974 * WebCoreSources.bkl:
2975 * editing/EditorCommand.cpp:
2976 * page/EventHandler.cpp:
2977 * page/gtk/EventHandlerGtk.cpp:
2978 * page/mac/EventHandlerMac.mm:
2979 * page/mac/FrameMac.mm:
2980 * page/qt/EventHandlerQt.cpp:
2981 * page/wx/EventHandlerWx.cpp:
2982 * platform/PopupMenu.h:
2983 * platform/ScrollBar.cpp: Removed.
2984 * platform/ScrollBar.h: Removed.
2985 * platform/Scrollbar.cpp: Copied from WebCore/platform/ScrollBar.cpp.
2986 * platform/Scrollbar.h: Copied from WebCore/platform/ScrollBar.h.
2987 * platform/gtk/ScrollbarGtk.cpp:
2988 (ScrollbarGtk::ScrollbarGtk):
2989 * platform/gtk/ScrollbarGtk.h:
2990 * platform/mac/ScrollbarMac.h:
2991 * platform/qt/ScrollViewQt.cpp:
2992 * platform/qt/ScrollbarQt.cpp:
2993 * platform/qt/ScrollbarThemeQt.cpp:
2994 * platform/win/PlatformScrollBar.h:
2995 * platform/win/PopupMenuWin.cpp:
2996 * platform/win/ScrollViewWin.cpp:
2997 * platform/win/ScrollbarThemeWin.cpp:
2998 * platform/wx/ScrollViewWx.cpp:
2999 * platform/wx/TemporaryLinkStubs.cpp:
3000 * rendering/HitTestResult.cpp:
3001 * rendering/RenderLayer.cpp:
3002 * rendering/RenderTextControl.cpp:
3004 2008-09-16 David Hyatt <hyatt@apple.com>
3006 Fix Qt build bustage by making moveThumb a member of Scrollbar so that
3007 it can be called from ScrollbarQt.
3009 * platform/ScrollBar.cpp:
3010 (WebCore::Scrollbar::moveThumb):
3011 (WebCore::Scrollbar::handleMouseMoveEvent):
3012 (WebCore::Scrollbar::handleMousePressEvent):
3013 * platform/ScrollBar.h:
3014 * platform/qt/ScrollViewQt.cpp:
3015 * platform/qt/ScrollbarQt.cpp:
3016 (WebCore::Scrollbar::handleContextMenuEvent):
3018 2008-09-16 David Hyatt <hyatt@apple.com>
3020 Eliminate PlatformScrollbar. Mac and Gtk now have subclasses for their
3021 native-widget scrollbars (ScrollbarMac and ScrollbarGtk). Other platforms
3022 now just use Scrollbar.
3024 Reviewed by Sam Weinig
3028 * WebCore.vcproj/WebCore.vcproj:
3029 * WebCore.xcodeproj/project.pbxproj:
3030 * page/mac/FrameMac.mm:
3031 * platform/PopupMenu.h:
3032 (WebCore::PopupMenu::scrollbar):
3033 * platform/ScrollBar.cpp:
3034 (WebCore::createNativeScrollbar):
3035 * platform/ScrollBar.h:
3036 * platform/gtk/PlatformScrollBar.h: Removed.
3037 * platform/gtk/PlatformScrollBarGtk.cpp: Removed.
3038 * platform/gtk/ScrollbarGtk.cpp: Copied from platform/gtk/PlatformScrollBarGtk.cpp.
3039 (gtkScrollEventCallback):
3040 (ScrollbarGtk::ScrollbarGtk):
3041 (ScrollbarGtk::~ScrollbarGtk):
3042 (ScrollbarGtk::updateThumbPosition):
3043 (ScrollbarGtk::updateThumbProportion):
3044 (ScrollbarGtk::setFrameGeometry):
3045 (ScrollbarGtk::geometryChanged):
3046 (ScrollbarGtk::gtkValueChanged):
3047 * platform/gtk/ScrollbarGtk.h: Copied from platform/gtk/PlatformScrollBar.h.
3048 * platform/mac/PlatformScrollBar.h: Removed.
3049 * platform/mac/PlatformScrollBarMac.mm: Removed.
3050 * platform/mac/ScrollbarMac.h: Copied from platform/mac/PlatformScrollBar.h.
3051 * platform/mac/ScrollbarMac.mm: Copied from platform/mac/PlatformScrollBarMac.mm.
3052 (-[WebCoreScrollBar initWithScrollbarMac:]):
3053 (-[WebCoreScrollBar detachScrollbarMac]):
3054 (WebCore::Scrollbar::createNativeScrollbar):
3055 (WebCore::ScrollbarMac::ScrollbarMac):
3056 (WebCore::ScrollbarMac::~ScrollbarMac):
3057 (WebCore::ScrollbarMac::updateThumbPosition):
3058 (WebCore::ScrollbarMac::updateThumbProportion):
3059 (WebCore::ScrollbarMac::scrollbarHit):
3060 * platform/qt/PlatformScrollBar.h: Removed.
3061 * platform/qt/PlatformScrollBarQt.cpp: Removed.
3062 * platform/qt/ScrollbarQt.cpp: Copied from platform/qt/PlatformScrollBarQt.cpp.
3063 (WebCore::Scrollbar::handleContextMenuEvent):
3064 * rendering/HitTestResult.cpp:
3065 * rendering/RenderLayer.cpp:
3066 (WebCore::RenderLayer::createScrollbar):
3067 (WebCore::RenderLayer::destroyScrollbar):
3068 * rendering/RenderLayer.h:
3069 * rendering/RenderListBox.cpp:
3070 (WebCore::RenderListBox::~RenderListBox):
3071 (WebCore::RenderListBox::updateFromElement):
3072 (WebCore::RenderListBox::isPointInOverflowControl):
3073 * rendering/RenderObject.h:
3074 * rendering/RenderTextControl.cpp:
3076 2008-09-16 David Hyatt <hyatt@apple.com>
3078 Make the scrollbar resizer-dodging logic cross-platform in the
3081 Reviewed by Sam Weinig
3083 * platform/ScrollBar.cpp:
3084 (WebCore::Scrollbar::setFrameGeometry):
3085 (WebCore::Scrollbar::setParent):
3086 (WebCore::Scrollbar::windowClipRect):
3087 * platform/ScrollBar.h:
3088 * platform/ScrollView.h:
3089 (WebCore::ScrollView::windowResizerRect):
3090 (WebCore::ScrollView::resizerOverlapsContent):
3091 (WebCore::ScrollView::adjustOverlappingScrollbarCount):
3092 * platform/Widget.h:
3093 (WebCore::Widget::setParent):
3094 * platform/mac/WidgetMac.mm:
3095 (WebCore::Widget::convertToContainingWindow):
3096 * platform/win/PlatformScrollBar.h:
3097 * platform/win/PlatformScrollBarWin.cpp:
3099 2008-09-16 Dan Bernstein <mitz@apple.com>
3101 Reviewed by Darin Adler.
3103 - fix https://bugs.webkit.org/show_bug.cgi?id=15129
3104 <rdar://problem/4644824> adding a new line with DOM does unnecessary additional repaint
3106 Covered by fast/repaint/4776765.html
3108 * rendering/RenderBlock.cpp:
3109 (WebCore::RenderBlock::layoutBlock): Avoid repainting this object if it
3110 did not have layout in the beginning.
3111 (WebCore::RenderBlock::layoutBlockChildren): If a child did not have
3112 layout in the beginning, repaint it in its new position, to compensate
3113 for the above (regardless of whether it "moved").
3114 * rendering/RenderObject.cpp:
3115 (WebCore::RenderObject::checkForRepaintDuringLayout): Added a comment
3116 about generalizing this fix in the future.
3118 2008-09-16 Dan Bernstein <mitz@apple.com>
3120 Reviewed by Dave Hyatt.
3122 - fix https://bugs.webkit.org/show_bug.cgi?id=15384
3123 Div does not notice when grandparent changes height
3125 Test: fast/block/basic/quirk-percent-height-grandchild.html
3127 - fix https://bugs.webkit.org/show_bug.cgi?id=20714
3128 Resizing Gmail inbox vertically results in whitespace at the bottom of the window
3130 Test: fast/replaced/percent-height-in-anonymous-block.html
3132 Added a two-way mapping between boxes with percentage heights and
3133 their non-parent ancestors up to the one the height is computed relative
3134 to. In quirks mode (the first bug), this can be any number of containing
3135 block with auto height. In strict mode (the second bug) this can be
3136 the containing block of an anonymous block containing a replaced
3139 * rendering/RenderBlock.cpp:
3140 (WebCore::RenderBlock::~RenderBlock): Added code to remove the all the
3141 mapping to/from this block to percentage-height descendants.
3142 (WebCore::RenderBlock::layoutBlockChildren): Added code to mark
3143 percentage-height descendants (and their containing block ancestry chain
3144 up to this block) for layout. This ensures that those descendants whose
3145 height depends on the height of this block (or an ancestor) are updated.
3146 (WebCore::RenderBlock::addPercentHeightDescendant): Added. Establishes
3147 a two-way mapping between this block and the given box.
3148 (WebCore::RenderBlock::removePercentHeightDescendant): Added. Removes
3149 all the mapping to/from this box.
3150 * rendering/RenderBlock.h:
3151 * rendering/RenderBox.cpp:
3152 (WebCore::RenderBox::setStyle): Added calls to
3153 removePercentHeightDescendant() when style changes and the box
3154 previously had a percentage height. An exception is when the style
3155 change does not require layout, in which case the box still has
3156 a percentage height and the mappings are valid. In all other cases,
3157 any required mappings will be (re-)established during layout.
3158 (WebCore::RenderBox::destroy): Added a call to
3159 removePercentHeightDescendant.
3160 (WebCore::RenderBox::calcPercentageHeight): Added code that, in quirks
3161 mode, if a higher-than-parent containing block is affecting the box's
3162 height, creates a mapping between the box and that block.
3163 (WebCore::RenderBox::calcReplacedHeightUsing): Changed to skip over
3164 anonymous containing blocks, if any, and when that happens, use
3165 addPercentHeightDescendant() to ensure that the non-anonymous block
3166 is aware of the dependent percent-height box.
3168 2008-09-16 Dirk Schulze <vbs85@gmx.de>
3170 Reviewed by Oliver Hunt and Alp Toker.
3172 Implemented toDataURL in Cairo. Only PNG support
3175 Qt, Cairo and wx require toDataURL implementations
3176 https://bugs.webkit.org/show_bug.cgi?id=17719
3178 * platform/MIMETypeRegistry.cpp:
3179 (WebCore::initializeSupportedImageMIMETypesForEncoding):
3180 * platform/graphics/cairo/ImageBufferCairo.cpp:
3181 (WebCore::ImageBuffer::ImageBuffer):
3182 (WebCore::writeFunction):
3183 (WebCore::ImageBuffer::toDataURL):
3185 2008-09-16 Tor Arne Vestbø <tavestbo@trolltech.com>
3189 Hide unused media element controls in the QtWebKit port
3191 * platform/qt/html4-adjustments-qt.css
3193 2008-09-16 Ariya Hidayat <ariya.hidayat@trolltech.com>
3197 Fix compilation of the Qt scrollbar code.
3199 * platform/qt/PlatformScrollBarQt.cpp:
3201 (WebCore::styleOptionSlider):
3202 (WebCore::thumbLength):
3203 (WebCore::pixelPosToRangeValue):
3204 (WebCore::PlatformScrollbar::handleContextMenuEvent):
3206 2008-09-16 Adam Treat <treat@kde.org>
3208 Reviewed by Anders Carlsson.
3210 Prevent accesses off of the end of the buffer introduced in r36450
3211 and when checking for descriptions of mime. Also, coding style fix.
3213 * plugins/qt/PluginPackageQt.cpp:
3214 (WebCore::PluginPackage::fetchInfo):
3216 2008-09-15 Rob Buis <buis@kde.org>
3220 https://bugs.webkit.org/show_bug.cgi?id=20634
3221 SVG transform attribute is ignored by <use> in <clipPath>
3223 Transform the paths with the local transform when part
3226 Test: svg/custom/use-clipped-transform.svg
3228 * svg/SVGClipPathElement.cpp:
3229 (WebCore::SVGClipPathElement::canvasResource):
3230 * svg/SVGStyledTransformableElement.cpp:
3231 (WebCore::SVGStyledTransformableElement::toClipPath):
3232 * svg/SVGStyledTransformableElement.h:
3234 2008-09-15 Dave Hyatt <hyatt@apple.com>
3236 Convert Qt over to its ScrollbarTheme. Add cross-platform support for jumping the thumb location directly
3237 to a pressed location on the track (this is done with the middle mouse on Qt and with Shift-Click on Windows).
3239 Reviewed by Sam Weinig
3241 * platform/ScrollBar.cpp:
3242 (WebCore::thumbUnderMouse):
3243 (WebCore::Scrollbar::autoscrollPressedPart):
3244 (WebCore::Scrollbar::startTimerIfNeeded):
3245 (WebCore::moveThumb):
3246 (WebCore::Scrollbar::handleMouseMoveEvent):
3247 (WebCore::Scrollbar::handleMousePressEvent):
3248 * platform/ScrollBar.h:
3249 (WebCore::Scrollbar::pressedPos):
3250 (WebCore::Scrollbar::pixelStep):
3251 (WebCore::Scrollbar::setPressedPos):
3252 * platform/ScrollbarTheme.h:
3253 (WebCore::ScrollbarTheme::thumbPosition):
3254 (WebCore::ScrollbarTheme::thumbLength):
3255 (WebCore::ScrollbarTheme::trackPosition):
3256 (WebCore::ScrollbarTheme::trackLength):
3257 * platform/ScrollbarThemeComposite.cpp:
3258 (WebCore::ScrollbarThemeComposite::trackPosition):
3259 * platform/ScrollbarThemeComposite.h:
3260 * platform/qt/PlatformScrollBarQt.cpp:
3261 (WebCore::PlatformScrollbar::PlatformScrollbar):
3263 * platform/qt/ScrollbarThemeQt.cpp:
3264 (WebCore::styleOptionSlider):
3265 (WebCore::ScrollbarThemeQt::hitTest):
3266 (WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
3267 (WebCore::ScrollbarThemeQt::invalidatePart):
3268 (WebCore::ScrollbarThemeQt::thumbPosition):
3270 * platform/qt/ScrollbarThemeQt.h:
3271 * platform/win/ScrollbarThemeSafari.cpp:
3272 (WebCore::ScrollbarThemeSafari::shouldCenterOnThumb):
3273 * platform/win/ScrollbarThemeSafari.h:
3274 * platform/win/ScrollbarThemeWin.cpp:
3275 (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
3276 * platform/win/ScrollbarThemeWin.h:
3278 2008-09-15 David Smith <catfish.man@gmail.com>
3280 Reviewed by Sam Weinig.
3282 https://bugs.webkit.org/show_bug.cgi?id=20180
3284 Cache the result of parsing the an+b expression in :nth-child(an+b). Roughly a 2x speedup for :nth-child on SlickSpeed.
3286 * GNUmakefile.am: Add CSSNthSelector
3287 * WebCore.pro: Add CSSNthSelector
3288 * WebCore.vcproj/WebCore.vcproj: Add CSSNthSelector
3289 * WebCore.xcodeproj/project.pbxproj: Add CSSNthSelector
3290 * css/CSSGrammar.y: Create CSSNthSelectors instead of CSSSelectors for :nth-*
3291 * css/CSSNthSelector.cpp: Added.
3292 (WebCore::CSSNthSelector::parseNth): Moved from CSSStyleSelector and modified to cache
3293 (WebCore::CSSNthSelector::matchNth): Moved from CSSStyleSelector and modified to use the cache
3294 * css/CSSNthSelector.h: Added.
3295 (WebCore::CSSNthSelector::CSSNthSelector):
3296 (WebCore::CSSNthSelector::~CSSNthSelector):
3297 * css/CSSParser.cpp:
3298 (WebCore::CSSParser::createFloatingNthSelector):
3300 * css/CSSSelector.h: Use the free bit here to store a flag for CSSNthSelector
3301 (WebCore::CSSSelector::CSSSelector):
3302 * css/CSSStyleSelector.cpp:
3303 (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Take advantage of knowing that all :nth-* selectors are CSSNthSelectors
3305 2008-09-15 Matt Lilek <webkit@mattlilek.com>
3307 Reviewed by Tim Hatcher.
3309 Clean up some inspector JS callbacks to remove an extra return.
3311 * page/InspectorController.cpp:
3312 (WebCore::hideDOMNodeHighlight):
3314 (WebCore::unloading):
3317 (WebCore::startDebuggingAndReloadInspectedPage):
3318 (WebCore::stopDebugging):
3319 (WebCore::debuggerAttached):
3320 (WebCore::pauseOnExceptions):
3321 (WebCore::pauseInDebugger):
3322 (WebCore::resumeDebugger):
3323 (WebCore::stepOverStatementInDebugger):
3324 (WebCore::stepIntoStatementInDebugger):
3325 (WebCore::stepOutOfFunctionInDebugger):
3326 (WebCore::isWindowVisible):
3327 (WebCore::closeWindow):
3329 2008-09-15 Dave Hyatt <hyatt@apple.com>
3331 Completely switch Windows scrollbars over to ScrollbarTheme. The Aqua windows scrollbar and native scrollbar
3332 now share most of their code.
3334 Also removing mini size scrollbar support, since it would have crashed Windows had it ever been used, and it
3335 also is never used in our code anyway.
3337 Reviewed by Sam Weinig
3339 * WebCore.vcproj/WebCore.vcproj:
3340 * platform/ScrollTypes.h:
3342 * platform/ScrollbarThemeComposite.cpp:
3343 (WebCore::ScrollbarThemeComposite::splitTrack):
3344 (WebCore::ScrollbarThemeComposite::thumbLength):
3345 (WebCore::ScrollbarThemeComposite::minimumThumbLength):
3346 * platform/ScrollbarThemeComposite.h:
3347 * platform/mac/PlatformScrollBarMac.mm:
3348 (NSControlSizeForScrollBarControlSize):
3349 * platform/win/PlatformScrollBar.h:
3350 * platform/win/PlatformScrollBarSafari.cpp: Removed.
3351 * platform/win/PlatformScrollBarWin.cpp:
3352 (WebCore::PlatformScrollbar::PlatformScrollbar):
3353 * platform/win/ScrollbarThemeSafari.cpp:
3354 (WebCore::ScrollbarTheme::nativeTheme):
3356 (WebCore::scrollbarControlStateFromThemeState):
3357 (WebCore::ScrollbarThemeSafari::hasButtons):
3358 (WebCore::ScrollbarThemeSafari::hasThumb):
3359 (WebCore::buttonRepaintRect):
3360 (WebCore::ScrollbarThemeSafari::backButtonRect):
3361 (WebCore::ScrollbarThemeSafari::forwardButtonRect):
3362 (WebCore::trackRepaintRect):
3363 (WebCore::ScrollbarThemeSafari::trackRect):
3364 (WebCore::ScrollbarThemeSafari::minimumThumbLength):
3365 (WebCore::ScrollbarThemeSafari::paintTrack):
3366 (WebCore::ScrollbarThemeSafari::paintButton):
3367 (WebCore::ScrollbarThemeSafari::paintThumb):
3368 * platform/win/ScrollbarThemeSafari.h:
3369 * platform/win/ScrollbarThemeWin.cpp:
3370 * platform/win/ScrollbarThemeWin.h:
3372 2008-09-15 Chris Fleizach <cfleizach@apple.com>
3374 Reviewed by Darin Adler, Beth Dakin
3376 <rdar://problem/4003789> Expose lists as AXList
3377 <rdar://problem/5707399> VO: Definition lists not announced in Safari
3379 Lists are now exposed through AX. On the mac (in SnowLeopard) they use two new subroles
3380 AXContentList for <ul>, <ol> and AXDefinitionList for <dl>
3381 Inside the definition list, each <dt> "term" has an accessibility description ("term"),
3382 as does each <dd> tag ("definition")
3384 Test: accessibility/lists.html
3388 * WebCore.vcproj/WebCore.vcproj:
3389 * WebCore.xcodeproj/project.pbxproj:
3390 * WebCoreSources.bkl:
3391 * page/AXObjectCache.cpp:
3392 * page/AccessibilityList.cpp: Added.
3393 * page/AccessibilityList.h: Added.
3394 * page/AccessibilityObject.h:
3395 * page/AccessibilityRenderObject.cpp:
3396 * page/AccessibilityTable.cpp:
3397 * page/mac/AccessibilityObjectWrapper.mm:
3398 * page/mac/WebCoreViewFactory.h:
3399 * platform/LocalizedStrings.h:
3400 * platform/mac/LocalizedStringsMac.mm:
3401 * platform/qt/Localizations.cpp:
3403 2008-09-15 Nikolas Zimmermann <zimmermann@kde.org>
3407 Fixes: https://bugs.webkit.org/show_bug.cgi?id=20865
3408 Prepare HTMLScriptElement & SVGScriptElement unification, and unification of event handling.
3411 dispatchHTMLEvent -> dispatchEventForType
3412 setHTMLEventListener -> setEventListenerForType
3413 getHTMLEventListener -> eventListenerForType
3414 removeHTMLEventListener -> removeEventListenerForType
3415 isHTMLEventListener -> isAttachedToEventTargetNode
3418 Similar renames for the dispatch/get/set/*Window*Event functions.
3419 Kill JSSVGLazyEventListener and merge with JSLazyEventListener.
3421 Most important change: Rename setHTMLEventListener to setEventListenerForTypeAndAttribute,
3422 as there exists a generic createEventListener() method now, taking care of JSLazyEventListener creation.
3424 setHTMLEventListener() used createHTMLEventListener() before and was HTML specific.
3425 SVG is able to use the code as well now. This affects most files in html/.
3427 No functional changes.
3431 * WebCore.vcproj/WebCore.vcproj:
3432 * WebCore.xcodeproj/project.pbxproj:
3433 * bindings/js/JSDOMWindowBase.cpp:
3434 (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
3435 (WebCore::JSDOMWindowBase::setListener):
3436 (WebCore::JSDOMWindowBase::getListener):
3437 (WebCore::JSDOMWindowBase::findJSEventListener):
3438 (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
3439 (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
3440 (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
3441 (WebCore::JSDOMWindowBase::jsEventListenersAttachedToEventTargetNodes):
3442 (WebCore::JSDOMWindowBase::jsUnprotectedEventListenersAttachedToEventTargetNodes):
3443 * bindings/js/JSDOMWindowBase.h:
3444 * bindings/js/JSEventListener.cpp:
3445 (WebCore::JSAbstractEventListener::handleEvent):
3446 (WebCore::JSAbstractEventListener::isAttachedToEventTargetNode):
3447 (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
3448 (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
3449 (WebCore::JSEventListener::JSEventListener):
3450 (WebCore::JSEventListener::~JSEventListener):
3451 (WebCore::JSLazyEventListener::JSLazyEventListener):
3452 (WebCore::eventParameterName):
3453 (WebCore::JSLazyEventListener::parseCode):
3454 (WebCore::getNodeEventListener):
3455 * bindings/js/JSEventListener.h:
3456 (WebCore::JSAbstractEventListener::JSAbstractEventListener):
3457 (WebCore::JSUnprotectedEventListener::create):
3458 (WebCore::JSEventListener::create):
3459 (WebCore::JSLazyEventListener::):
3460 (WebCore::JSLazyEventListener::create):
3461 * bindings/js/JSEventTargetNode.cpp:
3462 (WebCore::JSEventTargetNode::setListener):
3463 (WebCore::JSEventTargetNode::getListener):
3464 * bindings/js/JSSVGLazyEventListener.cpp: Removed.
3465 * bindings/js/JSSVGLazyEventListener.h: Removed.
3466 * bindings/js/ScriptController.cpp:
3467 (WebCore::ScriptController::createHTMLEventHandler):
3468 (WebCore::ScriptController::createSVGEventHandler):
3470 (WebCore::Document::setFocusedNode):
3471 (WebCore::Document::handleWindowEvent):
3472 (WebCore::Document::setWindowEventListenerForType):
3473 (WebCore::Document::windowEventListenerForType):
3474 (WebCore::Document::removeWindowEventListenerForType):
3475 (WebCore::Document::addWindowEventListener):
3476 (WebCore::Document::hasWindowEventListener):
3477 (WebCore::Document::removePendingFrameBeforeUnloadEventCount):
3478 (WebCore::Document::createEventListener):
3479 (WebCore::Document::setWindowEventListenerForTypeAndAttribute):
3481 * dom/EventListener.h:
3482 (WebCore::EventListener::isAttachedToEventTargetNode):
3483 * dom/EventTargetNode.cpp:
3484 (WebCore::EventTargetNode::dispatchFocusEvent):
3485 (WebCore::EventTargetNode::dispatchBlurEvent):
3486 (WebCore::EventTargetNode::dispatchEventForType):
3487 (WebCore::EventTargetNode::removeEventListenerForType):
3488 (WebCore::EventTargetNode::setEventListenerForType):
3489 (WebCore::EventTargetNode::setEventListenerForTypeAndAttribute):
3490 (WebCore::EventTargetNode::eventListenerForType):
3491 * dom/EventTargetNode.h:
3492 * dom/XMLTokenizer.cpp:
3493 (WebCore::XMLTokenizer::notifyFinished):
3494 * editing/ReplaceSelectionCommand.cpp:
3495 (WebCore::ReplacementFragment::ReplacementFragment):
3496 * html/HTMLBodyElement.cpp:
3497 (WebCore::HTMLBodyElement::parseMappedAttribute):
3498 * html/HTMLButtonElement.cpp:
3499 (WebCore::HTMLButtonElement::parseMappedAttribute):
3500 * html/HTMLElement.cpp:
3501 (WebCore::HTMLElement::parseMappedAttribute):
3502 (WebCore::HTMLElement::checkDTD):
3503 * html/HTMLElement.h:
3504 * html/HTMLFormControlElement.cpp:
3505 (WebCore::HTMLFormControlElement::onChange):
3506 * html/HTMLFormElement.cpp:
3507 (WebCore::HTMLFormElement::prepareSubmit):
3508 (WebCore::HTMLFormElement::reset):
3509 (WebCore::HTMLFormElement::parseMappedAttribute):
3510 * html/HTMLFrameElementBase.cpp:
3511 (WebCore::HTMLFrameElementBase::parseMappedAttribute):
3512 * html/HTMLFrameSetElement.cpp:
3513 (WebCore::HTMLFrameSetElement::parseMappedAttribute):
3514 * html/HTMLImageElement.cpp:
3515 (WebCore::HTMLImageElement::parseMappedAttribute):
3516 * html/HTMLImageLoader.cpp:
3517 (WebCore::HTMLImageLoader::dispatchLoadEvent):
3518 * html/HTMLInputElement.cpp:
3519 (WebCore::HTMLInputElement::parseMappedAttribute):
3520 (WebCore::HTMLInputElement::setValueFromRenderer):
3521 (WebCore::HTMLInputElement::onSearch):
3522 * html/HTMLMediaElement.cpp:
3523 (WebCore::HTMLMediaElement::asyncEventTimerFired):
3524 (WebCore::HTMLMediaElement::load):
3525 (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
3526 (WebCore::HTMLMediaElement::setReadyState):
3527 (WebCore::HTMLMediaElement::seek):
3528 (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
3529 (WebCore::HTMLMediaElement::willSaveToCache):
3530 * html/HTMLObjectElement.cpp:
3531 (WebCore::HTMLObjectElement::parseMappedAttribute):
3532 * html/HTMLScriptElement.cpp:
3533 (WebCore::HTMLScriptElement::parseMappedAttribute):
3534 (WebCore::HTMLScriptElement::dispatchLoadEvent):
3535 (WebCore::HTMLScriptElement::dispatchErrorEvent):
3536 * html/HTMLSelectElement.cpp:
3537 (WebCore::HTMLSelectElement::parseMappedAttribute):
3538 * html/HTMLTextAreaElement.cpp:
3539 (WebCore::HTMLTextAreaElement::parseMappedAttribute):
3540 * html/HTMLTokenizer.cpp:
3541 (WebCore::HTMLTokenizer::notifyFinished):
3542 * page/AccessibilityRenderObject.cpp:
3543 (WebCore::AccessibilityRenderObject::mouseButtonListener):
3544 * page/EventHandler.cpp:
3545 (WebCore::EventHandler::canMouseDownStartSelect):
3546 (WebCore::EventHandler::canMouseDragExtendSelect):
3548 (WebCore::Frame::sendScrollEvent):
3550 (WebCore::networkStateChanged):
3551 * rendering/RenderListBox.cpp:
3552 (WebCore::RenderListBox::valueChanged):
3553 * rendering/RenderTextControl.cpp:
3554 (WebCore::RenderTextControl::selectionChanged):
3555 * svg/SVGDocumentExtensions.cpp:
3556 * svg/SVGDocumentExtensions.h:
3557 * svg/SVGElement.cpp:
3558 (WebCore::SVGElement::parseMappedAttribute):
3559 (WebCore::SVGElement::finishParsingChildren):
3561 * svg/SVGSVGElement.cpp:
3562 (WebCore::SVGSVGElement::parseMappedAttribute):
3563 * svg/SVGSVGElement.h:
3565 2008-09-15 Dave Hyatt <hyatt@apple.com>
3567 Convert PlatformScrollbarWin to use ScrollbarTheme for hit testing. PlatformScrollbarQt/Gtk still
3568 need to be converted.
3570 Reviewed by Sam Weinig
3572 * platform/ScrollBar.cpp:
3573 (WebCore::Scrollbar::Scrollbar):
3574 (WebCore::Scrollbar::updateThumbPosition):
3575 (WebCore::Scrollbar::updateThumbProportion):
3576 (WebCore::Scrollbar::autoscrollPressedPart):
3577 (WebCore::Scrollbar::startTimerIfNeeded):
3578 * platform/ScrollBar.h:
3579 * platform/ScrollbarTheme.h:
3580 (WebCore::ScrollbarTheme::invalidateParts):
3581 * platform/ScrollbarThemeComposite.cpp:
3582 (WebCore::ScrollbarThemeComposite::hitTest):
3583 (WebCore::ScrollbarThemeComposite::invalidatePart):
3584 (WebCore::ScrollbarThemeComposite::thumbPosition):
3585 (WebCore::ScrollbarThemeComposite::thumbLength):
3586 (WebCore::ScrollbarThemeComposite::trackLength):
3587 * platform/ScrollbarThemeComposite.h:
3588 * platform/win/PlatformScrollBarSafari.cpp:
3589 (WebCore::PlatformScrollbar::PlatformScrollbar):
3590 * platform/win/PlatformScrollBarWin.cpp:
3591 (WebCore::PlatformScrollbar::PlatformScrollbar):
3593 2008-09-15 David Smith <catfish.man@gmail.com>
3595 "Just do it"'d by Mark Rowe
3597 https://bugs.webkit.org/show_bug.cgi?id=20856
3598 Add missing license header
3600 * dom/NodeRenderStyle.h:
3602 2008-09-15 Dean Jackson <dino@apple.com>
3604 Reviewed by Tim Hatcher.
3606 Add default constructor for ShadowData
3607 https://bugs.webkit.org/show_bug.cgi?id=20757
3609 Test: transitions/shadow.html
3611 * rendering/style/RenderStyle.h:
3613 2008-09-15 Dean Jackson <dino@apple.com>
3615 Reviewed by Tim Hatcher.
3617 RenderStyle should update keyframes.
3618 http://bugs.webkit.org/show_bug.cgi?id=20756
3620 * rendering/style/RenderStyle.cpp:
3621 (WebCore::StyleRareNonInheritedData::updateKeyframes):
3623 2008-09-15 Dean Jackson <dino@apple.com>
3625 Reviewed by Tim Hatcher.
3627 Unnecessary ASSERT in ImplicitAnimation destructor.
3628 https://bugs.webkit.org/show_bug.cgi?id=20817
3630 * page/animation/ImplicitAnimation.cpp:
3631 (WebCore::ImplicitAnimation::~ImplicitAnimation):
3633 2008-09-15 Adam Treat <treat@kde.org>
3637 Fix plugin extension info. It was returning the mimetype where the
3638 extension was given.
3640 * plugins/qt/PluginPackageQt.cpp:
3641 (WebCore::PluginPackage::fetchInfo):
3643 2008-09-15 Dean Jackson <dino@apple.com>
3645 Reviewed by Tim Hatcher
3647 Coding style violation!!!! Cleanup AnimationBase.cpp
3649 * page/animation/AnimationBase.cpp:
3650 (WebCore::blendFunc):
3652 2008-09-15 David Hyatt <hyatt@apple.com>
3654 Move all hit testing code for scrollbars into the base class. Refactor
3655 it to accommodate all platform-specific behaviors using virtual ScrollbarTheme
3658 No platform is using this code yet. Although it has been moved and compiles
3659 (even on Mac), it is not being used on any platform.
3661 Reviewed by Sam Weinig
3663 * platform/ScrollBar.cpp:
3664 (WebCore::Scrollbar::autoscrollPressedPart):
3665 (WebCore::Scrollbar::startTimerIfNeeded):
3666 (WebCore::Scrollbar::handleMouseMoveEvent):
3667 (WebCore::Scrollbar::handleMouseOutEvent):
3668 (WebCore::Scrollbar::handleMouseReleaseEvent):
3669 (WebCore::Scrollbar::handleMousePressEvent):
3670 * platform/ScrollBar.h:
3671 (WebCore::Scrollbar::handleContextMenuEvent):
3672 * platform/ScrollbarTheme.h:
3673 (WebCore::ScrollbarTheme::hitTest):
3674 (WebCore::ScrollbarTheme::invalidateOnMouseEnterExit):
3675 (WebCore::ScrollbarTheme::invalidatePart):
3676 (WebCore::ScrollbarTheme::shouldCenterOnThumb):
3677 (WebCore::ScrollbarTheme::centerOnThumb):
3678 (WebCore::ScrollbarTheme::thumbPosition):
3679 (WebCore::ScrollbarTheme::thumbLength):
3680 (WebCore::ScrollbarTheme::trackLength):