1 2008-10-01 Oliver Hunt <oliver@apple.com>
3 Reviewed by Maciej Stachowiak.
5 Bug 20315: Memory leak with Canvas getImageData
6 <https://bugs.webkit.org/show_bug.cgi?id=20315>
8 This wasn't a leak, the issue was that we were reporting the cost
9 of the CanvasPixelArray when creating the JSCanvasPixelArray wrapper
10 and we should have been reporting the cost when we create the
13 * WebCore.xcodeproj/project.pbxproj:
14 * bindings/js/JSCanvasPixelArrayCustom.cpp: Removed.
15 This was only needed to report the extra memory cost
17 * bindings/js/JSImageDataCustom.cpp:
19 We need a custom toJS function now so that we can report
20 the extra memory cost.
21 * bindings/scripts/CodeGeneratorJS.pm:
22 Need to replace the reference to CanvasPixelArray with ImageData
23 to be able to create the custom toJS implementation.
24 * html/CanvasPixelArray.idl:
27 2008-10-01 Dan Bernstein <mitz@apple.com>
29 Reviewed by Mark Rowe.
31 - https://bugs.webkit.org/show_bug.cgi?id=21293
32 REGRESSION: Crash beneath RenderSVGViewportContainer::viewportTransform() during SVGSVGElement destruction
34 * svg/SVGMarkerElement.cpp:
35 (WebCore::SVGMarkerElement::~SVGMarkerElement): Call detach() here so
36 that renderer destruction happens before the SVGMarkerElement is
38 * svg/SVGSVGElement.cpp:
39 (WebCore::SVGSVGElement::~SVGSVGElement): Ditto for SVGSVGElement.
41 2008-10-01 Evan Martin <evan@chromium.org>
43 Reviewed by Eric Seidel.
45 https://bugs.webkit.org/show_bug.cgi?id=20669
50 2008-10-01 Evan Martin <evan@chromium.org>
52 Reviewed by Eric Seidel.
54 * loader/icon/IconDatabase.h:
55 IconDatabase uses HashMap, so it needs to #include the header.
57 2008-10-01 Dan Bernstein <mitz@apple.com>
59 Reviewed by Mark Rowe.
61 - fix an assertion failure in http/tests/security/canvas-remote-read-svg-image.html due to re-entry into Cache::pruneDeadResources()
64 (WebCore::Cache::remove): Disable pruning temporarily during
65 CachedResource deletion.
67 2008-10-01 Dan Bernstein <mitz@apple.com>
69 Reviewed by Mark Rowe.
71 - fix SVGFontElement leaks seen on buildbot by breaking a ref cycle
73 * svg/SVGFontFaceElement.cpp:
74 (WebCore::SVGFontFaceElement::rebuildFontFace):
75 * svg/SVGFontFaceElement.h:
76 (WebCore::SVGFontFaceElement::associatedFontElement):
78 2008-10-01 Brett Wilson <brettw@chromium.org>
80 Reviewed by Maciej Stachowiak.
82 Document the rounding behavior of the mapRect(IntRect) function in
85 * platform/graphics/AffineTransform.h:
87 2008-10-01 David Hyatt <hyatt@apple.com>
89 Move prohibitsScrolling from the Frame to the ScrollView.
91 Reviewed by Sam Weinig
95 (WebCore::FramePrivate::FramePrivate):
97 * page/FramePrivate.h:
99 (WebCore::FrameView::scrollRectIntoViewRecursively):
100 (WebCore::FrameView::setScrollPosition):
101 * platform/ScrollView.cpp:
102 (WebCore::ScrollView::init):
103 (WebCore::ScrollView::scrollRectIntoViewRecursively):
104 (WebCore::ScrollView::setScrollPosition):
105 * platform/ScrollView.h:
106 (WebCore::ScrollView::setProhibitsScrolling):
107 (WebCore::ScrollView::prohibitsScrolling):
108 * platform/gtk/ScrollViewGtk.cpp:
109 (WebCore::ScrollView::updateScrollbars):
110 * platform/qt/ScrollViewQt.cpp:
111 (WebCore::ScrollView::updateScrollbars):
112 * platform/win/ScrollViewWin.cpp:
113 (WebCore::ScrollView::updateScrollbars):
115 2008-10-01 Mark Rowe <mrowe@apple.com>
117 Reviewed by Geoff Garen.
119 Fix leaks seen during http/tests/xmlhttprequest/access-control-basic-non-simple-allow.html.
121 * xml/XMLHttpRequest.cpp:
122 (WebCore::XMLHttpRequest::didFinishLoadingPreflight): Balance the ref and GC protect
123 that we do during the loadRequestAsynchronously of the preflight request with a deref and
126 2008-10-01 David Hyatt <hyatt@apple.com>
128 Rename allowsScrolling/setAllowsScrolling to canHaveScrollbars/setCanHaveScrollbars to make it more
129 clear that the boolean doesn't actually stop all scrolling. It just gets rid of scrollbars.
131 Reviewed by Tim Hatcher
134 * page/FrameView.cpp:
135 (WebCore::FrameView::setCanHaveScrollbars):
137 * platform/ScrollView.cpp:
138 (WebCore::ScrollView::setCanHaveScrollbars):
139 (WebCore::ScrollView::wheelEvent):
140 * platform/ScrollView.h:
141 (WebCore::ScrollView::canHaveScrollbars):
143 2008-10-01 Dan Bernstein <mitz@apple.com>
145 Reviewed by Mark Rowe.
147 - fix some CachedResource leaks seen on buildbot
149 The issue here was that emptying the cache was a no-op when it only
150 contained resources with no data. Changed to go after those
151 resources when the desired cache capacity is zero.
154 (WebCore::Cache::pruneLiveResources):
155 (WebCore::Cache::pruneDeadResources):
157 (WebCore::Cache::prune):
159 2008-10-01 David Hyatt <hyatt@apple.com>
161 Make isOffscreen cross-platform. Only Mac implements this method, so hold off on adding API to the
162 HostWindow object until other platforms decide they want this method. (We need it for Win though at some point.)
164 Reviewed by Adam Roben
166 * platform/ScrollView.cpp:
167 (WebCore::ScrollView::isOffscreen):
168 (WebCore::ScrollView::platformIsOffscreen):
169 * platform/ScrollView.h:
170 * platform/gtk/ScrollViewGtk.cpp:
171 * platform/mac/ScrollViewMac.mm:
172 (WebCore::ScrollView::platformIsOffscreen):
173 * platform/qt/ScrollViewQt.cpp:
174 * platform/wx/ScrollViewWx.cpp:
176 2008-10-01 David Hyatt <hyatt@apple.com>
178 Make show/hide/setParentVisible cross-platform on ScrollView.
180 Reviewed by Adam Roben
182 * platform/ScrollView.cpp:
183 (WebCore::ScrollView::setParentVisible):
184 (WebCore::ScrollView::show):
185 (WebCore::ScrollView::hide):
186 * platform/ScrollView.h:
187 * platform/win/ScrollViewWin.cpp:
189 2008-10-01 Kevin McCullough <kmccullough@apple.com>
191 Reviewed by Dan Bernstein.
193 https://bugs.webkit.org/show_bug.cgi?id=21284
194 Bug 21284: Max height affects max width
195 - Looks like a cut and paste bug
196 - Added layout test fast/css/max-height-and-max-width.html
198 * css/CSSComputedStyleDeclaration.cpp:
199 (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
201 2008-10-01 David Hyatt <hyatt@apple.com>
203 https://bugs.webkit.org/show_bug.cgi?id=21282
205 Make contentsToScreen/screenToContents cross-platform. Only implemented by Mac/Win right now.
207 Reviewed by Adam Roben
209 * loader/EmptyClients.h:
210 (WebCore::EmptyChromeClient::screenToWindow):
211 (WebCore::EmptyChromeClient::windowToScreen):
213 (WebCore::Chrome::screenToWindow):
214 (WebCore::Chrome::windowToScreen):
216 * page/ChromeClient.h:
217 * platform/HostWindow.h:
218 * platform/ScrollView.cpp:
219 (WebCore::ScrollView::contentsToScreen):
220 (WebCore::ScrollView::screenToContents):
221 (WebCore::ScrollView::platformContentsToScreen):
222 (WebCore::ScrollView::platformScreenToContents):
223 * platform/ScrollView.h:
224 * platform/mac/ScrollViewMac.mm:
225 (WebCore::ScrollView::platformContentsToScreen):
226 (WebCore::ScrollView::platformScreenToContents):
227 * platform/win/ScrollViewWin.cpp:
229 2008-10-01 Dan Bernstein <mitz@apple.com>
231 Reviewed by Darin Adler.
233 - fix <rdar://problem/6255862> domfuzz: null deref in WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks(WebCore::HTMLStackElem*)
235 Test: fast/parser/residual-style-close-across-removed-block.html
237 * html/HTMLParser.cpp:
238 (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Removed
239 an assertion that turned out to be wrong in this case, and changed to
240 terminate the algorithm at the first empty block.
242 2008-10-01 David Hyatt <hyatt@apple.com>
244 Make setFrameRect on ScrollView cross-platform.
246 Reviewed by Sam Weinig
249 (WebCore::FrameView::contentsResized):
250 * platform/ScrollView.cpp:
251 (WebCore::ScrollView::setFrameRect):
252 * platform/ScrollView.h:
253 * platform/gtk/ScrollViewGtk.cpp:
254 * platform/qt/ScrollViewQt.cpp:
255 * platform/win/ScrollViewWin.cpp:
257 2008-10-01 Sam Weinig <sam@webkit.org>
259 Reviewed by Adele Peterson.
261 Move setTimeout, clearTimeout, setInterval, clearInterval, atob and btoa
262 to JSDOMWindow from JSDOMWindowBase.
264 * WebCore.xcodeproj/project.pbxproj:
265 * bindings/js/JSDOMWindowBase.cpp:
266 (WebCore::JSDOMWindowBase::removeTimeout):
267 * bindings/js/JSDOMWindowBase.h:
268 * bindings/js/JSDOMWindowCustom.cpp:
269 (WebCore::setTimeoutOrInterval):
270 (WebCore::JSDOMWindow::setTimeout):
271 (WebCore::JSDOMWindow::clearTimeout):
272 (WebCore::JSDOMWindow::setInterval):
273 (WebCore::JSDOMWindow::clearInterval):
274 (WebCore::JSDOMWindow::atob):
275 (WebCore::JSDOMWindow::btoa):
276 * page/DOMWindow.idl:
278 2008-10-01 Dan Bernstein <mitz@apple.com>
284 2008-10-01 Timothy Hatcher <timothy@apple.com>
286 Prevent stealing focus from the search field when focusing a DOM node.
288 https://bugs.webkit.org/show_bug.cgi?id=21275
290 Reviewed by Kevin McCullough.
292 * page/inspector/ElementsPanel.js:
293 (WebInspector.ElementsPanel.treeOutline.focusedNodeChanged):
294 Don't steal focus if the current focus element is the search field.
296 2008-09-30 Sam Weinig <sam@webkit.org>
298 Reviewed by Nikolas Zimmermann and Alexey Proskuryakov.
300 Final patch for https://bugs.webkit.org/show_bug.cgi?id=21122
301 Autogenerate JS event listeners
303 - Generate getting/setting of EventListeners.
305 - Adding a new named EventListener now has the same process as adding any other DOM
306 attribute. (Add a method with the same name in the c++ file).
308 (The EventListeners for MessagePort have been intentionally left custom so that we
309 can continue to experiment with making those EventListeners work in a frame-less world.)
311 * bindings/js/JSDOMApplicationCacheCustom.cpp: Remove custom methods.
312 * bindings/js/JSDOMWindowCustom.cpp: ditto.
313 * bindings/js/JSEventTargetNodeCustom.cpp: ditto.
314 * bindings/js/JSXMLHttpRequestCustom.cpp: ditto.
315 * bindings/js/JSXMLHttpRequestUploadCustom.cpp: ditto.
316 * bindings/scripts/CodeGeneratorJS.pm: Add code to generate EventListener
318 * dom/EventTargetNode.cpp: Add getter/setters for named EventListener.
319 * dom/EventTargetNode.h: ditto.
320 * dom/EventTargetNode.idl: Mark EventListeners as Protected so that the codegenerator
321 will use JSEventListerner instead of JSUnprotectedEventListener.
322 * loader/appcache/DOMApplicationCache.idl: Remove custom attributes..
323 * page/DOMWindow.cpp: Add getter/setters for named EventListener
324 * page/DOMWindow.h: ditto.
325 * page/DOMWindow.idl: Mark EventListeners as Protected so that the codegenerator
326 will use JSEventListerner instead of JSUnprotectedEventListener.
327 * xml/XMLHttpRequest.idl: Remove custom attributes.
328 * xml/XMLHttpRequestUpload.idl: ditto.
330 2008-09-30 Mark Rowe <mrowe@apple.com>
332 Reviewed by Dan Bernstein.
334 Add a leak counter for CachedResources since we've had two recent leaks involving them.
336 * loader/CachedResource.cpp:
337 (WebCore::CachedResource::CachedResource):
338 (WebCore::CachedResource::~CachedResource):
340 2008-09-30 Dan Bernstein <mitz@apple.com>
342 Reviewed by Dave Hyatt.
344 - fix https://bugs.webkit.org/show_bug.cgi?id=21127
345 <rdar://problem/6259134> REGRESSION: CFF format fonts fail to load
347 If TTLoadEmbeddedFont fails, use AddFontMemResourceEx after changing
348 the font name in memory.
350 * WebCore.vcproj/WebCore.vcproj: Renamed GetEOTHeader.* to
353 * platform/graphics/win/FontCustomPlatformData.cpp:
354 (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added a call
355 to RemoveFontMemResourceEx to match AddFontMemResourceEx when it is
357 (WebCore::FontCustomPlatformData::fontPlatformData): Added a code path
358 for fonts loaded using AddFontMemResourceEx.
359 (WebCore::createFontCustomPlatformData): Added a call to
360 renameAndActivateFont() if TTLoadEmbeddedFont fails. If
361 TTLoadEmbeddedFont succeeds, set the font name to the null string, as
362 fontPlatformData() will retrieve the name from the font reference.
364 * platform/graphics/win/FontCustomPlatformData.h:
365 (WebCore::FontCustomPlatformData::FontCustomPlatformData): Added a
368 * platform/graphics/win/GetEOTHeader.cpp: Renamed.
369 * platform/graphics/win/GetEOTHeader.h: Renamed.
371 * platform/graphics/win/OpenTypeUtilities.cpp: Copied from platform/graphics/win/GetEOTHeader.cpp.
372 (WebCore::BigEndianUShort::BigEndianUShort): Added a constructor.
373 (WebCore::BigEndianULong::BigEndianULong): Ditto.
374 (WebCore::renameAndActivateFont): Added. Creates an in-memory copy of
375 the font data and modifies it to have the given name, then activates
376 it using AddFontMemResourceEx.
378 * platform/graphics/win/OpenTypeUtilities.h: Copied from platform/graphics/win/GetEOTHeader.h.
380 2008-09-30 Mark Rowe <mrowe@apple.com>
382 Reviewed by Dan Bernstein.
384 Fix many leaks seen on fast/backgrounds/svg-as-mask.html.
386 * rendering/RenderObject.cpp:
387 (WebCore::RenderObject::arenaDelete): Balance the calls to addClient on maskLayer's images
388 with calls to removeClient when we're being destroyed.
390 2008-09-30 Eric Carlson <eric.carlson@apple.com>
392 Reviewed by Antti Koivisto.
394 https://bugs.webkit.org/show_bug.cgi?id=21243
396 Fix loopstart and loopend default values.
398 Tests: media/loopend-limits.html
399 media/loopstart-limits.html
401 * html/HTMLMediaElement.cpp:
402 (WebCore::HTMLMediaElement::loopStart): the spec says start() is the default value
403 (WebCore::HTMLMediaElement::loopEnd): the spec says end() is the default value
405 2008-09-30 Kevin Ollivier <kevino@theolliviers.com>
407 wx build fixes. Add file to build and remove call to (now gone) ScrollView::update.
409 * WebCoreSources.bkl:
410 * platform/wx/ScrollViewWx.cpp:
411 (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
413 2008-09-30 Dan Bernstein <mitz@apple.com>
415 Reviewed by Sam Weinig.
417 - fix HTMLViewSourceDocument leaks by breaking a ref cycle which
418 was fixed in r17249 and re-introduced in r31435.
420 * html/HTMLViewSourceDocument.cpp:
421 (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
422 (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
423 (WebCore::HTMLViewSourceDocument::addLine):
424 (WebCore::HTMLViewSourceDocument::addLink):
425 * html/HTMLViewSourceDocument.h:
427 2008-09-30 Sam Weinig <sam@webkit.org>
429 Reviewed by Eric Seidel.
431 More for https://bugs.webkit.org/show_bug.cgi?id=21122
432 Autogenerate JS event listeners
434 - Make EventListener getter/setters names in c++ files match those in
435 JS (ie. onLoadListener -> onload).
436 - Add standard way to access the frame associated with the EventTarget
437 for EventListener lookup.
438 - Autogenerate dispatchEvent, it wasn't doing anything custom.
440 * bindings/js/JSDOMApplicationCacheCustom.cpp:
441 (WebCore::JSDOMApplicationCache::mark):
442 (WebCore::JSDOMApplicationCache::addEventListener):
443 (WebCore::JSDOMApplicationCache::removeEventListener):
444 (WebCore::JSDOMApplicationCache::setOnchecking):
445 (WebCore::JSDOMApplicationCache::onchecking):
446 (WebCore::JSDOMApplicationCache::setOnerror):
447 (WebCore::JSDOMApplicationCache::onerror):
448 (WebCore::JSDOMApplicationCache::setOnnoupdate):
449 (WebCore::JSDOMApplicationCache::onnoupdate):
450 (WebCore::JSDOMApplicationCache::setOndownloading):
451 (WebCore::JSDOMApplicationCache::ondownloading):
452 (WebCore::JSDOMApplicationCache::setOnprogress):
453 (WebCore::JSDOMApplicationCache::onprogress):
454 (WebCore::JSDOMApplicationCache::setOnupdateready):
455 (WebCore::JSDOMApplicationCache::onupdateready):
456 (WebCore::JSDOMApplicationCache::setOncached):
457 (WebCore::JSDOMApplicationCache::oncached):
458 * bindings/js/JSEventTargetNodeCustom.cpp:
459 (WebCore::JSEventTargetNode::addEventListener):
460 (WebCore::JSEventTargetNode::removeEventListener):
461 (WebCore::JSEventTargetNode::getListener):
462 (WebCore::JSEventTargetNode::setListener):
463 * bindings/js/JSMessagePortCustom.cpp:
464 (WebCore::JSMessagePort::mark):
465 (WebCore::JSMessagePort::addEventListener):
466 (WebCore::JSMessagePort::removeEventListener):
467 (WebCore::JSMessagePort::setOnmessage):
468 (WebCore::JSMessagePort::onmessage):
469 (WebCore::JSMessagePort::setOnclose):
470 (WebCore::JSMessagePort::onclose):
471 * bindings/js/JSXMLHttpRequestCustom.cpp:
472 (WebCore::JSXMLHttpRequest::mark):
473 (WebCore::JSXMLHttpRequest::onreadystatechange):
474 (WebCore::JSXMLHttpRequest::setOnreadystatechange):
475 (WebCore::JSXMLHttpRequest::onabort):
476 (WebCore::JSXMLHttpRequest::setOnabort):
477 (WebCore::JSXMLHttpRequest::onerror):
478 (WebCore::JSXMLHttpRequest::setOnerror):
479 (WebCore::JSXMLHttpRequest::onload):
480 (WebCore::JSXMLHttpRequest::setOnload):
481 (WebCore::JSXMLHttpRequest::onloadstart):
482 (WebCore::JSXMLHttpRequest::setOnloadstart):
483 (WebCore::JSXMLHttpRequest::onprogress):
484 (WebCore::JSXMLHttpRequest::setOnprogress):
485 (WebCore::JSXMLHttpRequest::addEventListener):
486 (WebCore::JSXMLHttpRequest::removeEventListener):
487 * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
488 (WebCore::JSXMLHttpRequestUpload::mark):
489 (WebCore::JSXMLHttpRequestUpload::onabort):
490 (WebCore::JSXMLHttpRequestUpload::setOnabort):
491 (WebCore::JSXMLHttpRequestUpload::onerror):
492 (WebCore::JSXMLHttpRequestUpload::setOnerror):
493 (WebCore::JSXMLHttpRequestUpload::onload):
494 (WebCore::JSXMLHttpRequestUpload::setOnload):
495 (WebCore::JSXMLHttpRequestUpload::onloadstart):
496 (WebCore::JSXMLHttpRequestUpload::setOnloadstart):
497 (WebCore::JSXMLHttpRequestUpload::onprogress):
498 (WebCore::JSXMLHttpRequestUpload::setOnprogress):
499 (WebCore::JSXMLHttpRequestUpload::addEventListener):
500 (WebCore::JSXMLHttpRequestUpload::removeEventListener):
501 * bindings/scripts/CodeGeneratorJS.pm:
503 * dom/EventTargetNode.cpp:
504 (WebCore::EventTargetNode::associatedFrame):
505 * dom/EventTargetNode.h:
506 * dom/EventTargetNode.idl:
507 * dom/MessagePort.cpp:
508 (WebCore::MessagePort::associatedFrame):
510 (WebCore::MessagePort::setOnmessage):
511 (WebCore::MessagePort::onmessage):
512 (WebCore::MessagePort::setOnclose):
513 (WebCore::MessagePort::onclose):
514 * dom/MessagePort.idl:
515 * loader/appcache/DOMApplicationCache.h:
516 (WebCore::DOMApplicationCache::setOnchecking):
517 (WebCore::DOMApplicationCache::onchecking):
518 (WebCore::DOMApplicationCache::setOnerror):
519 (WebCore::DOMApplicationCache::onerror):
520 (WebCore::DOMApplicationCache::setOnnoupdate):
521 (WebCore::DOMApplicationCache::onnoupdate):
522 (WebCore::DOMApplicationCache::setOndownloading):
523 (WebCore::DOMApplicationCache::ondownloading):
524 (WebCore::DOMApplicationCache::setOnprogress):
525 (WebCore::DOMApplicationCache::onprogress):
526 (WebCore::DOMApplicationCache::setOnupdateready):
527 (WebCore::DOMApplicationCache::onupdateready):
528 (WebCore::DOMApplicationCache::setOncached):
529 (WebCore::DOMApplicationCache::oncached):
530 (WebCore::DOMApplicationCache::associatedFrame):
531 * loader/appcache/DOMApplicationCache.idl:
532 * svg/EventTargetSVGElementInstance.cpp:
533 (WebCore::EventTargetSVGElementInstance::associatedFrame):
534 (WebCore::EventTargetSVGElementInstance::addEventListener):
535 (WebCore::EventTargetSVGElementInstance::removeEventListener):
536 (WebCore::EventTargetSVGElementInstance::dispatchEvent):
537 * svg/EventTargetSVGElementInstance.h:
538 * xml/XMLHttpRequest.cpp:
539 (WebCore::XMLHttpRequest::associatedFrame):
540 * xml/XMLHttpRequest.h:
541 (WebCore::XMLHttpRequest::setOnreadystatechange):
542 (WebCore::XMLHttpRequest::onreadystatechange):
543 (WebCore::XMLHttpRequest::setOnabort):
544 (WebCore::XMLHttpRequest::onabort):
545 (WebCore::XMLHttpRequest::setOnerror):
546 (WebCore::XMLHttpRequest::onerror):
547 (WebCore::XMLHttpRequest::setOnload):
548 (WebCore::XMLHttpRequest::onload):
549 (WebCore::XMLHttpRequest::setOnloadstart):
550 (WebCore::XMLHttpRequest::onloadstart):
551 (WebCore::XMLHttpRequest::setOnprogress):
552 (WebCore::XMLHttpRequest::onprogress):
553 * xml/XMLHttpRequest.idl:
554 * xml/XMLHttpRequestUpload.cpp:
555 (WebCore::XMLHttpRequestUpload::associatedFrame):
556 * xml/XMLHttpRequestUpload.h:
557 (WebCore::XMLHttpRequestUpload::setOnabort):
558 (WebCore::XMLHttpRequestUpload::onabort):
559 (WebCore::XMLHttpRequestUpload::setOnerror):
560 (WebCore::XMLHttpRequestUpload::onerror):
561 (WebCore::XMLHttpRequestUpload::setOnload):
562 (WebCore::XMLHttpRequestUpload::onload):
563 (WebCore::XMLHttpRequestUpload::setOnloadstart):
564 (WebCore::XMLHttpRequestUpload::onloadstart):
565 (WebCore::XMLHttpRequestUpload::setOnprogress):
566 (WebCore::XMLHttpRequestUpload::onprogress):
567 * xml/XMLHttpRequestUpload.idl:
569 2008-09-30 Darin Adler <darin@apple.com>
571 - roll out assertion breaking regression tests
573 * platform/ScrollView.cpp:
574 (WebCore::ScrollView::repaintContentRectangle): Temporarily remove assertion
575 that fires in regression tests. Hyatt can add it back later. The assertion
576 fires in the regression test because of layout that triggers repaint occuring
577 during the process of removing a frame.
579 2008-09-30 Adele Peterson <adele@apple.com>
581 Reviewed by Darin Adler.
583 Fix for https://bugs.webkit.org/show_bug.cgi?id=21227
584 <rdar://problem/6222134> add a way to set color for input placeholder text
586 Test: fast/forms/placeholder-pseudo-style.html
588 This change adds "-webkit-input-placeholder-mode" as a pseudo class that can be used to style
589 input elements when they are displaying the placeholder text.
591 * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Add case for inputPlaceholderMode.
592 * css/CSSSelector.h: (WebCore::CSSSelector::): Add PseudoInputPlaceholderMode.
593 * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
594 Add check for PseudoInputPlaceholderMode that asks the node if placeholderShouldBeVisible is true.
595 * css/html4.css: Add rule to make placeholder text default to darkGray.
597 * html/HTMLInputElement.cpp:
598 (WebCore::HTMLInputElement::init): Initialize m_placeholderShouldBeVisible.
599 (WebCore::HTMLInputElement::dispatchFocusEvent): Call updatePlaceholderVisibility.
600 (WebCore::HTMLInputElement::dispatchBlurEvent): ditto.
601 (WebCore::HTMLInputElement::parseMappedAttribute): ditto.
602 (WebCore::HTMLInputElement::setValue): ditto.
603 (WebCore::HTMLInputElement::setValueFromRenderer): ditto.
604 (WebCore::HTMLInputElement::updatePlaceholderVisibility): Sets m_placeholderShouldBeVisible based on the current value and the focus state.
605 This calculation used to be done in the renderer, but since the node knows everything about the state, it can make that decision, and the
606 renderer will just ask the node if it should draw the placeholder.
607 * html/HTMLInputElement.h: (WebCore::HTMLInputElement::placeholderShouldBeVisible):
609 * rendering/RenderTextControl.cpp:
610 (WebCore::disabledTextColor): Moved to the top of the file. If there's not very much contrast between the disabled color and the background color,
611 just leave the text color alone. We don't want to change a good contrast color scheme so that it has really bad contrast.
612 If the the contrast was already poor, then it doesn't do any good to change it to a different poor contrast color scheme.
613 (WebCore::RenderTextControl::createInnerTextStyle): If the node says the placeholder should be visible, prepare by overriding the text security to be "none".
614 This can only happen as a result of either a setStyle call (which will be followed by a call to updateFromElement) or from createSubtreeIfNeeded, which
615 is called directly from updateFromElement. updateFromElement will immediately update the text displayed.
616 (WebCore::RenderTextControl::updateFromElement): If the placeholder visibility has changed, update the text that is displayed.
617 (WebCore::RenderTextControl::forwardEvent): Remove calls to update the placeholder state. This is now done in HTMLInputElement.
618 * rendering/RenderTextControl.h:
620 2008-09-30 Beth Dakin <bdakin@apple.com>
622 Reviewed by Darin Adler.
624 Fix for https://bugs.webkit.org/show_bug.cgi?id=20396 Abort caused
625 by failed allocation due to invalid counter/attr
626 and corresponding: <rdar://problem/6152371>
629 (WebCore::CSSParser::parseCounterContent): The spec indicates that
630 only identifiers should be accepted here.
632 2008-09-30 Kevin McCullough <kmccullough@apple.com>
634 Reviewed by Oliver Hunt.
636 Bug 21255: console.profileEnd() without a console.profile() crashes the
640 (WebCore::Console::profileEnd):
642 2008-09-30 Kevin McCullough <kmccullough@apple.com>
644 Reviewed by Tim Hatcher.
646 Bug 21252: calling console.profile() with a title that is 2 chars or
647 shorter does not linkify it
649 - Previously we tried to not linkify very short URLs but since profile
650 titles can be any length this is not always true.
652 * page/inspector/inspector.js:
654 2008-09-30 Dave Hyatt <hyatt@apple.com>
656 Remove the update() method on ScrollView. This method was only called in one place, and its purpose
657 was to cause a display/flush to happen. Here is a breakdown of the method use on each platform:
660 (3) Used on Qt, but implemented incorrectly to cause a full repaint for no reason.
661 (4) Used on Gtk, but implemented incorrectly to cause a full repaint for no reason.
662 (5) Used on wx, but probably not needed (since wx has platform widgets like Mac).
664 There is now a paint method on HostWindow that does an immediate mode repaint of an empty rect to
665 cause the display/flush to happen if needed (thus saving an extra method on ChromeClient).
666 With the changes to this method, the new behavior is as follows:
669 (3) Nothing happens on Qt, but only because they have not implemented immediate mode updating.
670 (4) Gtk now behaves like Windows and will process updates but not do any incorrect additional invalidation.
673 This method was originally added for Windows. It's not clear the display/flush is really even necessary on the other
674 platforms. At the very least stopping unnecessary full invalidations on Qt/Gtk is a good thing. :)
676 Reviewed by Sam Weinig
680 (WebCore::Document::implicitClose):
681 * platform/HostWindow.h:
682 (WebCore::HostWindow::paint):
683 * platform/ScrollView.h:
684 * platform/gtk/ScrollViewGtk.cpp:
685 * platform/mac/ScrollViewMac.mm:
686 * platform/qt/ScrollViewQt.cpp:
687 * platform/win/ScrollViewWin.cpp:
688 * platform/wx/ScrollViewWx.cpp:
690 2008-09-30 Timothy Hatcher <timothy@apple.com>
692 Focus the DOM tree in the Web Inspector when a node is inspected.
693 So when the search field has focus, the focus moves to the tree,
694 allowing the arrow keys work. This can happen when using the new
695 find in page feature.
697 https://bugs.webkit.org/show_bug.cgi?id=21251
699 Reviewed by Geoff Garen.
701 * page/inspector/ElementsPanel.js:
702 (WebInspector.ElementsPanel): Set currentFocusElement to
703 the main-panels element if the panel is visible.
704 (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
705 Remove a set of currentFocusElement since this moved.
706 * page/inspector/inspector.js:
707 (WebInspector.set currentFocusElement): Always focus the element.
708 This ensures that when focus changes in the page and we don't
709 catch it, we will still focus the elements even if we think it
712 2008-09-30 Timothy Hatcher <timothy@apple.com>
714 Make the Web Inspector's toolbar icons darker when the mouse is
715 pressed on them. This matches the standard NSToolbar look.
717 https://bugs.webkit.org/show_bug.cgi?id=21249
718 rdar://problem/6033752
720 Reviewed by Adam Roben.
722 * page/inspector/Images/databasesIcon.png:
723 * page/inspector/Images/elementsIcon.png:
724 * page/inspector/Images/profilesIcon.png:
725 * page/inspector/Images/resourcesIcon.png:
726 * page/inspector/Images/scriptsIcon.png:
727 * page/inspector/Panel.js:
728 * page/inspector/inspector.css:
730 2008-09-30 Kevin McCullough <kmccullough@apple.com>
732 Reviewed by Tim Hatcher.
734 Bug 21139: Profiler log message is wrong
736 Don't call _format twice.
739 * page/inspector/Console.js:
740 * page/inspector/ProfilesPanel.js:
741 * page/inspector/inspector.js:
743 2008-09-30 Dave Hyatt <hyatt@apple.com>
745 http://bugs.webkit.org/show_bug.cgi?id=21250
747 Rename updateContents to repaintContentRectangle and make it cross-platform by always sending
748 repaints up through the ChromeClient.
750 Reviewed by Darin Adler
752 * loader/EmptyClients.h:
753 (WebCore::EmptyChromeClient::repaint):
755 (WebCore::Chrome::repaint):
757 * page/ChromeClient.h:
758 * page/FrameView.cpp:
759 (WebCore::FrameView::hostWindow):
760 (WebCore::FrameView::repaintContentRectangle):
762 * platform/HostWindow.h:
763 * platform/ScrollView.cpp:
764 (WebCore::ScrollView::repaintContentRectangle):
765 (WebCore::ScrollView::platformRepaintContentRectangle):
766 * platform/ScrollView.h:
767 * platform/gtk/ScrollViewGtk.cpp:
768 * platform/mac/ScrollViewMac.mm:
769 (WebCore::ScrollView::platformRepaintContentRectangle):
770 * platform/qt/ScrollViewQt.cpp:
771 * platform/win/ScrollViewWin.cpp:
772 * platform/wx/ScrollViewWx.cpp:
773 (WebCore::ScrollView::platformRepaintContentRectangle):
775 2008-09-30 Alexey Proskuryakov <ap@webkit.org>
781 * WebCore.vcproj/WebCore.vcproj:
782 * WebCoreSources.bkl:
784 Added DOMProtect.{cpp,h}.
786 2008-09-39 Kevin Decker <kdecker@apple.com>
788 Reviewed by John Sullivan.
790 * bridge/npapi.h: Added skeleton for a new plug-in drawing model, the NPCoreAnimationDrawingModel. This model will eventually pave the way
791 for hardware accelerated drawing in plug-ins and out of process plug-in rendering.
793 2008-09-29 Julien Chaffraix <jchaffraix@webkit.org>
795 Reviewed by Maciej Stachowiak.
797 Bug 21106: .in format discussed changes
798 https://bugs.webkit.org/show_bug.cgi?id=21106
800 - Removed "cppNamespace" global parameter and hard-coded "WebCore" as it
801 is the only namespace used.
803 - Removed "generateFactory" and "generateWrapperFactory" parameters and
804 re-introduced the command line options.
806 - Cleaned up the output of make_names.pl (removed unneeded new line).
808 * DerivedSources.make: Added factories command line options.
809 * GNUmakefile.am: Ditto.
810 * WebCore.pro: Ditto and removed some arguments that were migrated to
813 * dom/make_names.pl: Clean up (see above).
815 * html/HTMLAttributeNames.in: Removed "cppNamespace", "generateFactory"
816 and "generateWrapperFactory" occurences.
817 * html/HTMLTagNames.in: Ditto.
818 * svg/svgattrs.in: Ditto.
819 * svg/svgtags.in: Ditto.
820 * svg/xlinkattrs.in: Ditto.
821 * xml/xmlattrs.in: Ditto.
823 2008-09-29 Chris Fleizach <cfleizach@apple.com>
825 Reviewed by John Sullivan.
827 <rdar://problem/6255456> AX: <file> input button shouldn't have children exposed
828 Make sure that certain types of elements do not return children and, moreover, do not waste their
829 energy trying to return children
831 Test: accessibility/nochildren-elements.html
833 * page/AccessibilityObject.h:
834 (WebCore::AccessibilityObject::canHaveChildren):
835 * page/AccessibilityRenderObject.cpp:
836 (WebCore::AccessibilityRenderObject::canHaveChildren):
837 (WebCore::AccessibilityRenderObject::addChildren):
838 * page/AccessibilityRenderObject.h:
840 2008-09-30 Alexey Proskuryakov <ap@webkit.org>
842 Reviewed by Sam Weinig.
844 https://bugs.webkit.org/show_bug.cgi?id=21213
845 MessagePort crash when GC collects an object with a pending close event
847 Test: fast/events/message-channel-gc-2.html
848 fast/events/message-channel-listener-circular-ownership.html
850 * bindings/DOMProtect.cpp: Added.
851 (WebCore::gcProtectDOMObject):
852 (WebCore::gcUnprotectDOMObject):
853 * bindings/DOMProtect.h: Added.
854 Added an abstraction for GC protection to avoid the need to call JS bindings code from
855 DOM objects directly.
857 * dom/MessagePort.cpp:
858 (WebCore::CloseMessagePortTimer::fired):
859 (WebCore::MessagePort::queueCloseEvent):
860 GC protect MessagePort wrapper while there is a pending close event.
861 This may be necessary for message events, too, but that case is not a crasher, and actually
862 behaves to the letter of the current HTML5 text, so I'll consider it later.
864 * xml/XMLHttpRequest.cpp:
865 (WebCore::XMLHttpRequest::loadRequestAsynchronously):
866 (WebCore::XMLHttpRequest::dropProtection):
867 Use gcProtectDOMObject here, too. Unfortunately, XMLHttpRequest has more dependencies on JSC.
869 * bindings/js/JSMessagePortCustom.cpp:
870 (WebCore::JSMessagePort::addEventListener):
871 (WebCore::JSMessagePort::removeEventListener):
872 (WebCore::JSMessagePort::setOnmessage):
873 (WebCore::JSMessagePort::setOnclose):
874 Don't tell DOMWindowBase that MessagePort is a NodeEventTarget, this is not true. I do not
875 know if this was causing any real issues, but we shouldn't lie to DOMWindowBase.
877 * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
878 (WebCore::JSXMLHttpRequestUpload::mark):
879 While at it, changed to use a typedef for event listeners from XMLHttpRequestUpload, not
882 2008-09-30 Adam Roben <aroben@apple.com>
886 * DerivedSources.cpp: Add JSEventTargetNode.cpp.
888 2008-09-29 Sam Weinig <sam@webkit.org>
890 Reviewed by Tim Hatcher.
892 Patch for https://bugs.webkit.org/show_bug.cgi?id=21122
893 Autogenerate JS event listeners
895 - Generate EventTargetNode.
897 * DerivedSources.make:
900 * WebCore.vcproj/WebCore.vcproj:
901 * WebCore.xcodeproj/project.pbxproj:
902 * WebCoreSources.bkl:
903 * bindings/js/JSEventListener.cpp:
904 * bindings/js/JSEventTarget.cpp: Added.
906 * bindings/js/JSEventTarget.h: Added.
907 * bindings/js/JSEventTargetBase.cpp: Removed.
908 * bindings/js/JSEventTargetBase.h:
909 * bindings/js/JSEventTargetNode.cpp: Removed.
910 * bindings/js/JSEventTargetNode.h: Removed.
911 * bindings/js/JSEventTargetNodeCustom.cpp: Added.
912 (WebCore::JSEventTargetNode::addEventListener):
913 (WebCore::JSEventTargetNode::removeEventListener):
914 (WebCore::JSEventTargetNode::dispatchEvent):
915 (WebCore::JSEventTargetNode::getListener):
916 (WebCore::JSEventTargetNode::setListener):
917 (WebCore::JSEventTargetNode::pushEventHandlerScope):
918 * bindings/js/JSEventTargetSVGElementInstance.cpp:
920 (WebCore::JSEventTargetSVGElementInstancePrototype::self):
921 (WebCore::JSEventTargetSVGElementInstancePrototype::getOwnPropertySlot):
922 (jsEventTargetAddEventListener):
923 (jsEventTargetRemoveEventListener):
924 (jsEventTargetDispatchEvent):
925 * bindings/js/JSEventTargetSVGElementInstance.h:
926 (WebCore::JSEventTargetSVGElementInstancePrototype::JSEventTargetSVGElementInstancePrototype):
927 (WebCore::JSEventTargetSVGElementInstancePrototype::classInfo):
928 * bindings/scripts/CodeGeneratorJS.pm:
929 * dom/EventTargetNode.idl: Added.
931 2008-09-29 Darin Adler <darin@apple.com>
933 Reviewed by Sam Weinig.
935 - https://bugs.webkit.org/show_bug.cgi?id=21214
936 work on getting rid of ExecState
938 * bindings/js/JSDOMWindowBase.cpp:
939 (WebCore::JSDOMWindowBase::JSDOMWindowBase): Removed globalThisValue argument
940 for base class constructor.
942 2008-09-29 David Hyatt <hyatt@apple.com>
944 Add the new HostWindow base class. A HostWindow hosts a hierarchy of Widgets. The Chrome object on Page
945 now subclasses from HostWindow. The new class will allow objects in platform/ like Widgets, Scrollbars
946 and ScrollViews to talk to the HostWindow object in order to do backing store operations and invalidations.
947 (Right now the platform layering is simply being violated by ScrollViews going directly to the ChromeClient.)
949 Reviewed by Sam Weinig
951 * WebCore.xcodeproj/project.pbxproj:
953 * platform/HostWindow.h: Added.
954 (WebCore::HostWindow::HostWindow):
955 (WebCore::HostWindow::~HostWindow):
957 2008-09-29 Kevin Decker <kdecker@apple.com>
959 Reviewed by Anders Carlsson.
961 * bridge/npapi.h: Tweaked NPNVariable enum. NPNVsupportsCocoaBool, NPNVsupportsCarbonBool are now in the 3000 range instead of
964 2008-09-29 Dan Bernstein <mitz@apple.com>
966 Reviewed by Adam Roben.
968 - WebCore part of fixing <rdar://problem/6247906> REGRESSION (r19500): Crash on quit beneath CloseThemeData
970 * rendering/RenderThemeWin.cpp:
971 (WebCore::RenderThemeWin::setWebKitIsBeingUnloaded): Added.
972 (WebCore::RenderThemeWin::~RenderThemeWin): Check if WebKit is being
973 unloaded, to avoid calling uxtheme.dll functions after that library has
975 * rendering/RenderThemeWin.h:
977 2008-09-29 Chris Fleizach <cfleizach@apple.com>
979 Reviewed by John Sullivan
981 <rdar://problem/6240743> AXLoadComplete is sent for non-top level web areas and bogus web areas
983 Sends AXLoadComplete only when the top level web area is finished loading
986 (WebCore::Document::implicitClose):
988 2008-09-29 Timothy Hatcher <timothy@apple.com>
990 Makes the node highlight always show up when hovering a node in
991 the Web Inspector now that the highlight does not scroll to reveal
992 the node. Also adds a hover effect in the inspector when hovering
993 causes a highlight in the page. This ties the user hovering action
994 to the highlight so it is clear what causes the highlight to appear.
996 Also the highlight now temporarily shows up for 2 seconds after
997 selecting a node in the DOM tree. So arrowing around in the tree
998 will show the node on the page, providing feedback to the user.
1000 Plus fixes an issue where quickly moving away from hovering
1001 a node would keep showing the page highlight. This was happening
1002 in breadcrumbs and the DOM tree.
1004 https://bugs.webkit.org/show_bug.cgi?id=21220
1006 Reviewed by Kevin McCullough.
1008 * page/inspector/Console.js:
1009 (WebInspector.Console.prototype._mouseOverNode): Added. Used for
1010 hovering DOM nodes in the console.
1011 (WebInspector.Console.prototype._mouseOutOfNode): Ditto.
1012 (WebInspector.Console.prototype._formatnode): Use the new event
1013 listeners and add a class name to the anchor element.
1014 * page/inspector/ElementsPanel.js:
1015 (WebInspector.ElementsPanel): Add new event listeners to the
1016 crumbs element to do the node hovering highlight.
1017 (WebInspector.ElementsPanel.prototype.hide):
1018 (WebInspector.ElementsPanel.prototype.reset):
1019 (WebInspector.ElementsPanel.prototype._mouseMovedInCrumbs):
1020 (WebInspector.ElementsPanel.prototype._mouseMovedOutOfCrumbs):
1021 (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
1022 * page/inspector/ElementsTreeOutline.js:
1023 (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode):
1024 Show the node hishlight for 2 seconds then restore the highlight
1025 to the current hovered node.
1026 (WebInspector.ElementsTreeOutline.prototype._onmousemove): Set the
1027 hovered node and set the hovered state on the tree element.
1028 (WebInspector.ElementsTreeOutline.prototype._onmouseout): Set the
1029 hovered node to null and removed the hovered state from the previous
1030 hovered tree element.
1031 (WebInspector.ElementsTreeElement.prototype.set/get hovered): Adds
1032 the hovered class to the list item.
1033 (WebInspector.ElementsTreeElement.prototype.onattach): Ditto.
1034 * page/inspector/inspector.css:
1035 * page/inspector/inspector.js:
1036 (WebInspector.set hoveredDOMNode): Pass a delay to _updateHoverHighlightSoon
1037 based on the showingDOMNodeHighlight property of 50ms or 500ms. This
1038 causes the highlight to change sooner if there is one already showing
1039 and appear later if there isn't one showing. This is like tooltips,
1040 hovering a node for 500ms will cause highlight then mousing between nodes
1041 will keep the highlight and change to the new node.
1042 (WebInspector._updateHoverHighlightSoon): Take a delay being passed in and
1043 always reset the timeout so continuous mousing does not keep flasshing
1044 the highlight on the screen.
1045 (WebInspector._updateHoverHighlight): Removed the alt key check and added
1046 the showingDOMNodeHighlight property.
1047 (WebInspector.documentKeyDown): Removed the alt key check.
1048 (WebInspector.documentKeyUp): Ditto.
1049 (WebInspector.reset): Clear the hoveredDOMNode.
1051 2008-09-29 Simon Fraser <simon.fraser@apple.com>
1053 Reviewed by Anders Carlsson
1055 Fix RenderStyle leak in animation code, and assert that
1056 keyframe resolution in CSSStyleSelector is not going to clobber
1059 * css/CSSStyleSelector.cpp:
1060 (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
1061 * page/animation/KeyframeAnimation.cpp:
1062 (WebCore::KeyframeAnimation::~KeyframeAnimation):
1064 2008-09-29 Chris Marrin <cmarrin@apple.com>
1066 Reviewed by Dave Hyatt
1068 Fixed https://bugs.webkit.org/show_bug.cgi?id=20995
1069 Rewrite keyframe resolution to be like styleForElement()
1071 Test: animations/lineheight-animation.html
1073 * css/CSSStyleSelector.cpp:
1074 (WebCore::CSSStyleSelector::addKeyframeStyle):
1075 (WebCore::CSSStyleSelector::~CSSStyleSelector):
1076 (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
1077 (WebCore::CSSRuleSet::addRulesFromSheet):
1078 (WebCore::CSSStyleSelector::mapAnimationName):
1079 * css/CSSStyleSelector.h:
1080 * page/animation/CompositeAnimation.cpp:
1081 (WebCore::CompositeAnimation::updateKeyframeAnimations):
1082 * page/animation/KeyframeAnimation.cpp:
1083 (WebCore::KeyframeAnimation::KeyframeAnimation):
1084 (WebCore::KeyframeAnimation::animate):
1085 (WebCore::KeyframeAnimation::hasAnimationForProperty):
1086 (WebCore::KeyframeAnimation::sendAnimationEvent):
1087 (WebCore::KeyframeAnimation::overrideAnimations):
1088 (WebCore::KeyframeAnimation::resumeOverriddenAnimations):
1089 (WebCore::KeyframeAnimation::affectsProperty):
1090 (WebCore::KeyframeAnimation::validateTransformFunctionList):
1091 * page/animation/KeyframeAnimation.h:
1092 * rendering/style/Animation.cpp:
1093 (WebCore::Animation::animationsMatch):
1094 * rendering/style/Animation.h:
1095 * rendering/style/KeyframeList.cpp:
1096 (WebCore::KeyframeList::~KeyframeList):
1097 (WebCore::KeyframeList::clear):
1098 (WebCore::KeyframeList::insert):
1099 * rendering/style/KeyframeList.h:
1100 (WebCore::KeyframeValue::KeyframeValue):
1101 (WebCore::KeyframeList::KeyframeList):
1102 (WebCore::KeyframeList::operator!=):
1103 (WebCore::KeyframeList::animationName):
1104 (WebCore::KeyframeList::addProperty):
1105 (WebCore::KeyframeList::containsProperty):
1106 (WebCore::KeyframeList::beginProperties):
1107 (WebCore::KeyframeList::endProperties):
1108 (WebCore::KeyframeList::isEmpty):
1109 (WebCore::KeyframeList::size):
1110 (WebCore::KeyframeList::beginKeyframes):
1111 (WebCore::KeyframeList::endKeyframes):
1112 * rendering/style/RenderStyle.h:
1113 * rendering/style/StyleRareNonInheritedData.cpp:
1114 * rendering/style/StyleRareNonInheritedData.h:
1116 2008-09-29 Chris Marrin <cmarrin@apple.com>
1118 Reviewed by Eric Seidel
1120 Clean up fix in PropertyWrapperGetter::equals
1121 https://bugs.webkit.org/show_bug.cgi?id=21011
1123 Test: transitions/override-transition-crash.html
1125 * page/animation/AnimationBase.cpp:
1126 (WebCore::PropertyWrapperGetter::equals):
1127 * page/animation/CompositeAnimation.cpp:
1128 (WebCore::CompositeAnimation::updateTransitions):
1130 2008-09-29 Chris Marrin <cmarrin@apple.com>
1132 Reviewed by Eric Seidel
1134 https://bugs.webkit.org/show_bug.cgi?id=21001
1135 Starting transition after animation, when animation
1136 is finished, transition is wrong.
1138 Test: animations/transition-and-animation-2.html
1140 * page/animation/AnimationBase.h:
1141 * page/animation/CompositeAnimation.cpp:
1142 (WebCore::CompositeAnimation::updateTransitions):
1143 (WebCore::CompositeAnimation::updateKeyframeAnimations):
1144 (WebCore::CompositeAnimation::resetTransitions):
1145 (WebCore::CompositeAnimation::cleanupFinishedAnimations):
1146 * page/animation/ImplicitAnimation.cpp:
1147 (WebCore::ImplicitAnimation::ImplicitAnimation):
1148 (WebCore::ImplicitAnimation::~ImplicitAnimation):
1149 (WebCore::ImplicitAnimation::animate):
1150 (WebCore::ImplicitAnimation::reset):
1151 * page/animation/ImplicitAnimation.h:
1153 2008-09-29 Chris Marrin <cmarrin@apple.com>
1155 Reviewed by Sam Weinig
1157 https://bugs.webkit.org/show_bug.cgi?id=20921
1158 -webkit-animation-timing-function: inside of keyframes is ignored
1160 Test: animations/keyframe-timing-functions.html
1162 * page/animation/AnimationBase.cpp:
1163 (WebCore::AnimationBase::progress):
1164 * page/animation/AnimationBase.h:
1165 * page/animation/ImplicitAnimation.cpp:
1166 (WebCore::ImplicitAnimation::animate):
1167 * page/animation/KeyframeAnimation.cpp:
1168 (WebCore::KeyframeAnimation::animate):
1170 2008-09-29 Dan Bernstein <mitz@apple.com>
1174 * platform/ScrollView.cpp:
1175 (WebCore::ScrollView::platformScroll):
1177 2008-09-29 Dan Bernstein <mitz@apple.com>
1179 - another attempt at a Windows build fix
1181 * platform/ScrollView.cpp:
1182 (WebCore::platformScroll):
1184 2008-09-29 Dan Bernstein <mitz@apple.com>
1188 * platform/ScrollView.cpp:
1189 (WebCore::ScrollView::platformSetScrollPosition):
1191 2008-09-29 David Hyatt <hyatt@apple.com>
1193 https://bugs.webkit.org/show_bug.cgi?id=21218
1195 Accidentally removed a check to see if the scrollbar modes were equal. This caused a crash on Windows.
1196 It's silly that the code was this fragile, but for now just put the check back in.
1198 Reviewed by Dan Bernstein
1200 * platform/ScrollView.cpp:
1201 (WebCore::ScrollView::setScrollbarModes):
1203 2008-09-29 David Hyatt <hyatt@apple.com>
1205 https://bugs.webkit.org/show_bug.cgi?id=21216
1207 Make setScrollPosition and scroll() cross-platform.
1211 * platform/ScrollView.cpp:
1212 (WebCore::ScrollView::setScrollPosition):
1213 (WebCore::ScrollView::scroll):
1214 * platform/ScrollView.h:
1215 * platform/gtk/ScrollViewGtk.cpp:
1216 * platform/mac/ScrollViewMac.mm:
1217 (WebCore::ScrollView::platformSetScrollPosition):
1218 (WebCore::ScrollView::platformScroll):
1219 * platform/qt/ScrollViewQt.cpp:
1220 * platform/win/ScrollViewWin.cpp:
1221 * platform/wx/ScrollViewWx.cpp:
1222 (WebCore::ScrollView::platformSetScrollPosition):
1223 (WebCore::ScrollView::platformScroll):
1225 2008-09-29 Kevin McCullough <kmccullough@apple.com>
1229 Bug 21139: Profiler log message is wrong
1230 - Because _format was called twice the number in the log was incremented
1231 too many times, but we were passing it around in the link the whole time
1233 * page/inspector/ProfilesPanel.js:
1234 * page/inspector/inspector.js:
1236 2008-09-29 Sam Weinig <sam@webkit.org>
1238 Reviewed by Cameron Zwarich.
1240 Autogenerate EventListeners, addEventListener and removeEventListener
1243 * bindings/js/JSDOMWindowBase.cpp:
1244 * bindings/js/JSDOMWindowBase.h:
1245 * bindings/js/JSDOMWindowCustom.cpp:
1246 (WebCore::JSDOMWindow::onwebkitanimationstart):
1247 (WebCore::JSDOMWindow::setOnwebkitanimationstart):
1248 (WebCore::JSDOMWindow::onwebkitanimationiteration):
1249 (WebCore::JSDOMWindow::setOnwebkitanimationiteration):
1250 (WebCore::JSDOMWindow::onwebkitanimationend):
1251 (WebCore::JSDOMWindow::setOnwebkitanimationend):
1252 (WebCore::JSDOMWindow::onwebkittransitionend):
1253 (WebCore::JSDOMWindow::setOnwebkittransitionend):
1254 (WebCore::JSDOMWindow::addEventListener):
1255 (WebCore::JSDOMWindow::removeEventListener):
1256 (WebCore::JSDOMWindow::setListener):
1257 (WebCore::JSDOMWindow::getListener):
1258 * bindings/scripts/CodeGeneratorJS.pm:
1259 * page/DOMWindow.idl:
1261 2008-09-29 Thiago Macieira <thiago.macieira@nokia.com>
1265 Changed copyright from Trolltech ASA to Nokia.
1267 Nokia acquired Trolltech ASA, assets were transferred on September 26th 2008.
1269 * bindings/js/JSMimeTypeArrayCustom.cpp:
1270 * bindings/js/JSNavigatorCustom.cpp:
1271 * bindings/js/JSPluginArrayCustom.cpp:
1272 * bindings/js/JSPluginCustom.cpp:
1273 * bindings/js/ScriptControllerMac.mm:
1274 * bindings/js/ScriptControllerQt.cpp:
1275 * bridge/qt/qt_class.cpp:
1276 * bridge/qt/qt_class.h:
1277 * bridge/qt/qt_instance.cpp:
1278 * bridge/qt/qt_instance.h:
1279 * bridge/qt/qt_runtime.cpp:
1280 * bridge/qt/qt_runtime.h:
1281 * bridge/testqtbindings.cpp:
1282 * css/makegrammar.pl:
1284 * css/makevalues.pl:
1286 * dom/TagNodeList.cpp:
1287 * dom/TagNodeList.h:
1288 * dom/XMLTokenizer.cpp:
1289 * dom/XMLTokenizer.h:
1290 * dom/XMLTokenizerLibxml2.cpp:
1291 * dom/XMLTokenizerQt.cpp:
1292 * editing/Editor.cpp:
1293 * editing/EditorCommand.cpp:
1294 * html/CanvasRenderingContext2D.cpp:
1295 * html/CanvasStyle.cpp:
1296 * html/HTMLAppletElement.cpp:
1297 * html/HTMLEmbedElement.cpp:
1298 * html/HTMLObjectElement.cpp:
1299 * loader/FrameLoader.cpp:
1301 * page/EditorClient.h:
1304 * page/FramePrivate.h:
1305 * page/Navigator.cpp:
1307 * page/Navigator.idl:
1308 * page/mac/FrameMac.mm:
1309 * page/qt/EventHandlerQt.cpp:
1310 * platform/graphics/qt/FontCacheQt.cpp:
1311 * platform/graphics/qt/FontCustomPlatformData.cpp:
1312 * platform/graphics/qt/FontCustomPlatformData.h:
1313 * platform/graphics/qt/FontPlatformData.h:
1314 * platform/graphics/qt/FontQt.cpp:
1315 * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
1316 * platform/graphics/qt/GraphicsContextQt.cpp:
1317 * platform/graphics/qt/ImageDecoderQt.cpp:
1318 * platform/graphics/qt/ImageDecoderQt.h:
1319 * platform/graphics/qt/ImageSourceQt.cpp:
1320 * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
1321 * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
1322 * platform/graphics/qt/SimpleFontDataQt.cpp:
1323 * platform/gtk/MIMETypeRegistryGtk.cpp:
1324 * platform/mac/MIMETypeRegistryMac.mm:
1325 * platform/network/qt/QNetworkReplyHandler.cpp:
1326 * platform/network/qt/QNetworkReplyHandler.h:
1327 * platform/network/qt/ResourceHandleQt.cpp:
1328 * platform/network/qt/ResourceRequestQt.cpp:
1329 * platform/qt/ClipboardQt.cpp:
1330 * platform/qt/EventLoopQt.cpp:
1331 * platform/qt/KURLQt.cpp:
1332 * platform/qt/LoggingQt.cpp:
1333 * platform/qt/MIMETypeRegistryQt.cpp:
1334 * platform/qt/PasteboardQt.cpp:
1335 * platform/qt/PlatformScreenQt.cpp:
1336 * platform/qt/PopupMenuQt.cpp:
1337 * platform/qt/QWebPopup.cpp:
1338 * platform/qt/QWebPopup.h:
1339 * platform/qt/RenderThemeQt.cpp:
1340 * platform/qt/ScrollbarQt.cpp:
1341 * platform/qt/ScrollbarThemeQt.cpp:
1342 * platform/qt/WheelEventQt.cpp:
1343 * platform/qt/html4-adjustments-qt.css:
1344 * platform/wx/MimeTypeRegistryWx.cpp:
1345 * plugins/MimeType.cpp:
1346 * plugins/MimeType.h:
1347 * plugins/MimeType.idl:
1348 * plugins/MimeTypeArray.cpp:
1349 * plugins/MimeTypeArray.h:
1350 * plugins/MimeTypeArray.idl:
1351 * plugins/Plugin.cpp:
1353 * plugins/Plugin.idl:
1354 * plugins/PluginArray.cpp:
1355 * plugins/PluginArray.h:
1356 * plugins/PluginArray.idl:
1357 * plugins/PluginData.cpp:
1358 * plugins/PluginData.h:
1359 * plugins/gtk/PluginDataGtk.cpp:
1360 * plugins/mac/PluginDataMac.mm:
1361 * plugins/qt/PluginDataQt.cpp:
1362 * plugins/win/PluginDataWin.cpp:
1363 * rendering/RenderTableCol.cpp:
1364 * rendering/RenderTableCol.h:
1366 2008-09-29 Thiago Macieira <thiago.macieira@trolltech.com>
1370 Fix compilation with gcc 4.3
1372 gcc 4.3 is stricter and ctype.h isn't getting included
1373 automatically here by dependencies. So do it directly.
1375 * platform/qt/PlatformKeyboardEventQt.cpp:
1377 2008-09-29 Morten Sørvig <msorvig@trolltech.com>
1381 Fix compilation with Qt/Mac without plugins.
1383 * platform/qt/TemporaryLinkStubs.cpp:
1385 2008-09-29 Mark Rowe <mrowe@apple.com>
1387 Reviewed by Sam Weinig.
1389 Apply the ASCII fast path optimization from StringImpl::lower to StringImpl::upper.
1390 In the few places that we call .upper() in WebCore the strings represent things like
1391 tag and attribute names, which are nearly always going to be ASCII.
1393 * platform/text/StringImpl.cpp:
1394 (WebCore::StringImpl::lower): If we have to resize the buffer, be sure to pass the new length
1395 in to Unicode::toLower the second time.
1396 (WebCore::StringImpl::upper):
1398 2008-09-28 Mark Rowe <mrowe@apple.com>
1400 Reviewed by Sam Weinig.
1402 Speed up getPropertyValue('clip') by 25% by using a Vector<UChar> for building a string,
1403 rather than String::operator+=.
1405 * css/CSSPrimitiveValue.cpp:
1406 (WebCore::CSSPrimitiveValue::cssText):
1408 2008-09-28 Mark Rowe <mrowe@apple.com>
1410 Reviewed by Oliver Hunt.
1412 Speed up computedStyle.getPropertyValue('color') by 4.5x.
1414 Using a Vector<UChar> while building up the property's cssText is substantially cheaper than using String::operator+=
1415 as it avoids many memory reallocations.
1417 This also speeds up the jQuery .offset() benchmark at <http://dev.jquery.com/~john/speed/1.2.6/offset-1.2.6.html>
1418 by 20% due to jQuery's strange need to call getPropertyValue('color') when retrieving the computed styles for
1419 unrelated properties on an element.
1421 * css/CSSPrimitiveValue.cpp:
1422 (WebCore::CSSPrimitiveValue::cssText): Build the result for the color types into a Vector<UChar>
1423 and use appendNumber rather than the String::number in order to cut down on memory allocations.
1424 * platform/text/PlatformString.h:
1425 (WebCore::appendNumber): A helper function for formatting an unsigned character as a number
1426 into a Vector<UChar>.
1428 2008-09-28 Sam Weinig <sam@webkit.org>
1430 Reviewed by Anders Carlsson.
1432 Remove spurious call to lower().
1434 * css/MediaQueryEvaluator.cpp:
1435 (WebCore::MediaQueryEvaluator):
1437 2008-09-28 Sam Weinig <sam@webkit.org>
1439 Reviewed by Dan Bernstein.
1441 Use a CaseFoldingHash instead of calling lower on family strings.
1443 * css/CSSFontSelector.cpp:
1444 (WebCore::CSSFontSelector::addFontFaceRule):
1445 (WebCore::CSSFontSelector::getFontData):
1446 * css/CSSFontSelector.h:
1448 2008-09-28 Timothy Hatcher <timothy@apple.com>
1450 Remove the scrollIntoViewIfNeeded() call when drawing the
1451 Inspector node highlight.
1453 <rdar://problem/6115804> Don't scroll when highlighting (21000)
1454 https://bugs.webkit.org/show_bug.cgi?id=21000
1456 Reviewed by Dan Bernstein.
1458 * page/InspectorController.cpp:
1459 (WebCore::InspectorController::drawNodeHighlight):
1461 2008-09-28 David Hyatt <hyatt@apple.com>
1463 Fix crash when WebKit has no instantiated Scrollbars and the appearance prefs for scrollbars are
1466 Reviewed by Dan Bernstein
1468 * platform/mac/ScrollbarThemeMac.mm:
1469 (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
1471 2008-09-28 Timothy Hatcher <timothy@apple.com>
1473 Clear the current search results in the Inspector when
1474 the search query is less than 3 characters long. Incremental
1475 searches only occur for 3 characters or longer, but deleting
1476 under this limit would not clear the results unless the whole
1479 https://bugs.webkit.org/show_bug.cgi?id=21196
1481 Reviewed by Dan Bernstein.
1483 * page/inspector/inspector.js:
1484 (WebInspector.performSearch): Check for short queries in the
1485 if statement that triggers the clear.
1487 2008-09-28 Dan Bernstein <mitz@apple.com>
1489 Reviewed by Dave Hyatt.
1491 - fix <rdar://problem/6202962> "Tibetan Machine Uni" font does not work as a web font on Windows because TTLoadEmbeddedFont fails with E_NAMECHANGEFAILED
1493 * platform/graphics/win/FontCustomPlatformData.cpp:
1494 (WebCore::EOTStream::EOTStream): Added overlayDst, overlaySrc and
1495 overlayLength parameters.
1496 (WebCore::EOTStream::read): Added code to overlay the
1497 m_overlayLength bytes starting at m_overlayDst with the same number of
1498 bytes from m_overlaySrc.
1499 (WebCore::createFontCustomPlatformData): Changed to get overlay
1500 parameters from getEOTHeader.
1501 * platform/graphics/win/GetEOTHeader.cpp:
1502 (WebCore::getEOTHeader): Added code to specify overlaying of the
1503 family name with the prefix of the full name if they differ, because
1504 that such a difference causes TTLoadEmbeddedFont to fail.
1505 * platform/graphics/win/GetEOTHeader.h:
1507 2008-09-28 Alexey Proskuryakov <ap@webkit.org>
1509 Reviewed by Eric Seidel.
1511 https://bugs.webkit.org/show_bug.cgi?id=20366
1512 Reproducible test failure for editing/undo/undo-iframe-location-change.html
1514 * ChangeLog-2006-05-10: Added bug URLs for a fix that included this test.
1516 2008-09-28 Darin Adler <darin@apple.com>
1518 Reviewed by Sam Weinig (except for a few comment and header tweaks).
1520 - https://bugs.webkit.org/show_bug.cgi?id=21158
1521 reduce use of virtual functions in Node for speed
1523 Speeds up Dromaeo a bit less than 1%.
1525 * bindings/js/JSNamedNodesCollection.cpp: Include Element.h instead of
1526 Node.h now that some inlines are in there.
1528 * dom/Attr.h: Override both the virtual and non-virtual name functions.
1530 * dom/ChildNodeList.cpp:
1531 (WebCore::ChildNodeList::nodeMatches): Updated to take an Element.
1532 * dom/ChildNodeList.h: Ditto.
1533 * dom/ClassNodeList.cpp:
1534 (WebCore::ClassNodeList::nodeMatches): Ditto.
1535 * dom/ClassNodeList.h: Ditto.
1537 * dom/Document.h: Put the Node::isDocumentNode() function's inline
1538 definition here where it can see the Document class definition.
1540 * dom/DynamicNodeList.cpp:
1541 (WebCore::DynamicNodeList::length): Changed to pass an Element.
1542 (WebCore::DynamicNodeList::itemForwardsFromCurrent): Ditto.
1543 (WebCore::DynamicNodeList::itemBackwardsFromCurrent): Ditto.
1544 (WebCore::DynamicNodeList::itemWithName): Ditto.
1545 * dom/DynamicNodeList.h: Ditto.
1547 * dom/Element.cpp: Removed virtualHasTagName.
1548 * dom/Element.h: Made localName, prefix, namespaceURI, and
1549 styleForRenderer non-virtual. Added virtualPrefix, virtualLocalName,
1550 virtualNamespaceURI, and removed virtualHasTagName. Put the
1551 Node::hasTagName, Node::hasAttributes, and Node::attributes
1552 functions' inline definitions here where they can see the Element
1555 * dom/NameNodeList.cpp:
1556 (WebCore::NameNodeList::nodeMatches): Updated to take an Element.
1557 * dom/NameNodeList.h: Ditto.
1560 (WebCore::Node::virtualPrefix): Renamed from prefix.
1561 (WebCore::Node::virtualLocalName): Renamed from localName.
1562 (WebCore::Node::virtualNamespaceURI): Renamed from namespaceURI.
1563 (WebCore::Node::styleForRenderer): Handle the Element case here.
1565 * dom/Node.h: Removed definition of hasTagName that calls virtual,
1566 since we now have a non-virtual version. Made hasAttributes,
1567 attributes, remove, localName, namespaceURI, prefix, isDocumentNode,
1568 and styleForRenderer non-virtual. Added virtualPrefix,
1569 virtualLocalName, and virtualNamespaceURI. Removed isMalformed
1570 and setMalformed, which are used only on HTMLFormElement objects.
1572 * dom/TagNodeList.cpp:
1573 (WebCore::TagNodeList::nodeMatches): Updated to take an Element.
1574 * dom/TagNodeList.h: Ditto.
1576 * html/HTMLAnchorElement.cpp: Added a comment.
1577 * html/HTMLFormControlElement.cpp: Ditto.
1579 * html/HTMLAnchorElement.h: Removed unused, unimplemented setTabIndex
1580 function. Marked tabIndex function virtual explicitly for clarity.
1582 * html/HTMLAreaElement.h: Removed unused, unimplemented setTabIndex
1583 function. Marked isFocusable function virtual explicitly for clarity.
1585 * html/HTMLElement.h: Marked tabIndex function virtual explicitly for
1587 * html/HTMLFormControlElement.h: Ditto.
1589 * html/HTMLFormElement.h: Made isMalformed non-virtual.
1591 * html/HTMLParser.cpp:
1592 (WebCore::HTMLParser::handleError): Use the already-cast-to-HTMLElement
1593 pointer to call localName since that one does not need to call a virtual
1596 * rendering/RenderBlock.cpp:
1597 (WebCore::RenderBlock::layoutBlock): Cast to HTMLFormElement before
1598 calling isMalformed. We already did a tag name check so we know it's
1601 * xml/XPathUtil.cpp:
1602 (WebCore::XPath::isValidContextNode): Rewrote to not make so many calls
1603 to nodeType(), since it's a virtual function.
1605 2008-09-28 David Hyatt <hyatt@apple.com>
1607 Make frameRectsChanged() cross-platform on ScrollView.
1609 Reviewed by Oliver Hunt
1611 * platform/ScrollView.cpp:
1612 (WebCore::ScrollView::frameRectsChanged):
1613 * platform/ScrollView.h:
1614 * platform/gtk/ScrollViewGtk.cpp:
1615 * platform/qt/ScrollViewQt.cpp:
1616 * platform/win/ScrollViewWin.cpp:
1617 * platform/wx/ScrollViewWx.cpp:
1619 2008-09-28 Oliver Hunt <oliver@apple.com>
1621 Reviewed by Maciej Stachowiak.
1623 Bug 21141: REGRESSION: Exception messages for user entered commands are poor
1624 <https://bugs.webkit.org/show_bug.cgi?id=21141>
1626 The bug repsonsible for this was the the JSInspectedObjectWrapper instances
1627 were not initialising their StructureID's to indicate that the wrapper
1628 overrides hasInstance, etc. The solution is simply to use the createStructureID
1629 helper on JSQuarantinedObjectWrapper to create a correct StructureID.
1631 * bindings/js/JSInspectedObjectWrapper.cpp:
1632 (WebCore::JSInspectedObjectWrapper::wrap):
1634 2008-09-28 David Hyatt <hyatt@apple.com>
1636 Make sure pixel wheel scrolls (formerly "continuous" wheel events) send deltas to DOM wheel events in
1639 Reviewed by Oliver Hunt
1641 * dom/EventTargetNode.cpp:
1642 (WebCore::EventTargetNode::dispatchWheelEvent):
1644 2008-09-28 David Hyatt <hyatt@apple.com>
1646 https://bugs.webkit.org/show_bug.cgi?id=21191
1648 Rework mouse wheeling significantly to make the platform event less messy and to enable wheelEvent
1649 on ScrollView to be cross-platform.
1651 Give the wheel event a concept of granularity (pixel, line or page). What used to be called continuous
1652 events are now pixel wheel events.
1654 Page scrolling as implemented in bug 17589 was completely broken. It had the following problems:
1655 (1) Page scrolling has been corrected to be properly detected (on Windows
1656 page wheeling is only done in the vertical direction and it is keyed off a special return value of -1). The
1657 old code had some bizarre incorrect heuristic for "guessing" that you should page scroll and also thought
1658 you could page scroll horizontally.
1659 (2) Page scrolling a layer used the enclosing ScrollView's width/height instead of the layer's width/height.
1660 This caused the scroll amount for page scrolling to be way too large on layers.
1662 Bug 17589 got the default horizontal scrolling value wrong. It assumed 1, when the Vista default is 3.
1664 Incorporate WebCore's line multiplier right into the deltas of the event. This eliminates the need
1665 for separate multiplier fields (or for the need to ask if you're looking for line sensitivity).
1667 Reviewed by Oliver Hunt
1669 * editing/EditorCommand.cpp:
1670 (WebCore::verticalScrollDistance):
1671 * page/EventHandler.cpp:
1672 (WebCore::scrollAndAcceptEvent):
1673 (WebCore::EventHandler::handleWheelEvent):
1674 * platform/PlatformWheelEvent.h:
1676 (WebCore::PlatformWheelEvent::pos):
1677 (WebCore::PlatformWheelEvent::globalPos):
1678 (WebCore::PlatformWheelEvent::deltaX):
1679 (WebCore::PlatformWheelEvent::deltaY):
1680 (WebCore::PlatformWheelEvent::granularity):
1681 (WebCore::PlatformWheelEvent::x):
1682 (WebCore::PlatformWheelEvent::globalX):
1683 (WebCore::PlatformWheelEvent::ignore):
1684 (WebCore::PlatformWheelEvent::horizontalLineMultiplier):
1685 (WebCore::PlatformWheelEvent::verticalLineMultiplier):
1686 * platform/ScrollView.cpp:
1687 (WebCore::ScrollView::wheelEvent):
1688 * platform/Scrollbar.h:
1689 * platform/gtk/ScrollViewGtk.cpp:
1690 (WebCore::ScrollView::updateScrollbars):
1691 * platform/gtk/WheelEventGtk.cpp:
1692 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
1693 * platform/mac/ScrollViewMac.mm:
1694 * platform/mac/WheelEventMac.mm:
1695 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
1696 * platform/qt/ScrollViewQt.cpp:
1697 (WebCore::ScrollView::updateScrollbars):
1698 * platform/qt/WheelEventQt.cpp:
1699 * platform/win/ScrollViewWin.cpp:
1700 (WebCore::ScrollView::updateScrollbars):
1701 * platform/win/WheelEventWin.cpp:
1702 (WebCore::PlatformWheelEvent::horizontalLineMultiplier):
1703 (WebCore::PlatformWheelEvent::verticalLineMultiplier):
1704 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
1705 * platform/wx/ScrollViewWx.cpp:
1706 (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
1707 (WebCore::ScrollView::wheelEvent):
1708 * rendering/RenderLayer.cpp:
1709 (WebCore::RenderLayer::updateScrollInfoAfterLayout):
1711 2008-09-27 Eric Carlson <eric.carlson@apple.com>
1713 Reviewed by Sam Weinig.
1715 fix https://bugs.webkit.org/show_bug.cgi?id=20994
1716 <rdar://problem/6171023> HTMLVideoElement width and height attributes are now unsigned
1718 HTML5 spec says HTMLVideoElement width and height attributes should be unsigned. Convert
1719 all unsigned media attributes from string with toUInt() instead of toInt().
1721 * html/HTMLMediaElement.cpp:
1722 (WebCore::HTMLMediaElement::playCount): convert from attribute with toUInt().
1724 * html/HTMLVideoElement.cpp:
1725 (WebCore::HTMLVideoElement::videoWidth):
1726 (WebCore::HTMLVideoElement::videoHeight): return unsigned to match idl.
1727 (WebCore::HTMLVideoElement::width): convert from attribute with toUInt() and return
1729 (WebCore::HTMLVideoElement::height): Ditto.
1730 (WebCore::HTMLVideoElement::setWidth): take unsigned value.
1731 (WebCore::HTMLVideoElement::setHeight): Ditto.
1733 * html/HTMLVideoElement.h: width, height, videoWidth, and videoHeight are unsigned.
1735 * html/HTMLVideoElement.idl: make width and height unsigned to match HTML5 spec.
1737 2008-09-27 Timothy Hatcher <timothy@apple.com>
1739 Fixes an exception when typing a command in the Console.
1741 Reviewed by Oliver Hunt.
1743 * page/inspector/Console.js:
1744 (WebInspector.Console.prototype.addMessage): Null check
1745 this.previosMessage.
1747 2008-09-27 Timothy Hatcher <timothy@apple.com>
1749 Fixes a bug where the Profiles panel sidebar would be empty
1750 after closing and reopening the Web Inspector.
1752 https://bugs.webkit.org/show_bug.cgi?id=21179
1754 Reviewed by Sam Weinig.
1756 * page/inspector/ProfilesPanel.js:
1757 (WebInspector.ProfilesPanel.prototype.reset): Don't call
1758 populateInterface, it is called automatically.
1759 (WebInspector.ProfilesPanel.prototype._populateProfiles):
1760 Return early if the sidebar is already populated.
1762 2008-09-27 Dave Hyatt <hyatt@apple.com>
1764 Bug 21190. The line scroll amount on Windows is way too small. A patch for bug 17589 for wheel sensitivity
1765 incorrectly applied the tinier wheel step delta (unmultiplied) to line scrolling. Line scrolling with the
1766 scrollbar has nothing to do with mouse wheeling. This patch reverts the scrollbars to use the same line
1767 step as other platforms while leaving the wheel delta alone for use with wheel scrolling.
1769 There was a lot wrong with 17589, so more patches will be coming to deal with the fallout of this patch
1770 (which should never have landed in the first place).
1772 Reviewed by Tim Hatcher, Sam Weinig
1774 * platform/win/ScrollViewWin.cpp:
1775 (WebCore::adjustDeltaForPageScrollMode):
1776 (WebCore::ScrollView::updateScrollbars):
1777 (WebCore::ScrollView::wheelEvent):
1779 2008-09-27 David Hyatt <hyatt@apple.com>
1781 Make the scrollbarUnderMouse method cross-platform.
1783 Reviewed by Sam Weinig
1785 * platform/ScrollView.cpp:
1786 (WebCore::ScrollView::scrollbarUnderMouse):
1787 * platform/gtk/ScrollViewGtk.cpp:
1788 * platform/mac/ScrollViewMac.mm:
1789 * platform/qt/ScrollViewQt.cpp:
1790 * platform/win/ScrollViewWin.cpp:
1791 * platform/wx/ScrollViewWx.cpp:
1793 2008-09-27 Holger Hans Peter Freyther <zecke@selfish.org>
1797 * platform/gtk/ScrollViewGtk.cpp:
1798 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
1800 2008-09-27 Jan Michael Alonzo <jmalonzo@webkit.org>
1802 Reviewed by Holger Freyther.
1804 https://bugs.webkit.org/show_bug.cgi?id=20287
1805 [Gtk] disable plugins for gtk/directfb target
1807 Introduce WTF_PLATFORM_X11 for X11 builds.
1808 Also use target-specific packages when building the port
1810 * platform/gtk/PlatformScreenGtk.cpp:
1811 * plugins/gtk/PluginViewGtk.cpp:
1812 (WebCore::PluginView::updatePluginWidget):
1813 (WebCore::PluginView::getValueStatic):
1814 (WebCore::PluginView::getValue):
1815 (WebCore::PluginView::init):
1817 2008-09-27 David Hyatt <hyatt@apple.com>
1819 https://bugs.webkit.org/show_bug.cgi?id=21188
1821 Make scrollbar suppression and resizer avoidance cross-platform.
1825 * loader/FrameLoader.cpp:
1826 (WebCore::FrameLoader::transitionToCommitted):
1827 * page/FrameView.cpp:
1828 (WebCore::FrameView::resetScrollbars):
1829 (WebCore::FrameView::clear):
1830 (WebCore::FrameView::layout):
1831 (WebCore::FrameView::restoreScrollbar):
1832 (WebCore::FrameView::windowResizerRect):
1834 * platform/ScrollView.cpp:
1835 (WebCore::ScrollView::init):
1836 (WebCore::ScrollView::resizerOverlapsContent):
1837 (WebCore::ScrollView::adjustScrollbarsAvoidingResizerCount):
1838 (WebCore::ScrollView::setParent):
1839 (WebCore::ScrollView::setScrollbarsSuppressed):
1840 (WebCore::ScrollView::platformSetScrollbarsSuppressed):
1841 * platform/ScrollView.h:
1842 (WebCore::ScrollView::scrollbarsSuppressed):
1843 (WebCore::ScrollView::windowResizerRect):
1844 * platform/Scrollbar.cpp:
1845 (WebCore::Scrollbar::setFrameRect):
1846 (WebCore::Scrollbar::setParent):
1847 * platform/gtk/ScrollViewGtk.cpp:
1848 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
1849 (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
1850 (WebCore::ScrollView::updateScrollbars):
1851 (WebCore::ScrollView::paint):
1852 * platform/mac/ScrollViewMac.mm:
1853 (WebCore::ScrollView::ScrollView):
1854 (WebCore::ScrollView::~ScrollView):
1855 (WebCore::ScrollView::platformSetScrollbarsSuppressed):
1856 (WebCore::ScrollView::setScrollPosition):
1857 * platform/qt/ScrollViewQt.cpp:
1858 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
1859 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
1860 (WebCore::ScrollView::frameRectsChanged):
1861 (WebCore::ScrollView::updateScrollbars):
1862 (WebCore::ScrollView::paint):
1863 * platform/win/ScrollViewWin.cpp:
1864 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
1865 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
1866 (WebCore::ScrollView::updateScrollbars):
1867 (WebCore::ScrollView::paint):
1868 * platform/wx/ScrollViewWx.cpp:
1869 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
1871 2008-09-27 Holger Hans Peter Freyther <zecke@selfish.org>
1873 Rubber-stamped by Anders Carlsson.
1877 * plugins/PluginView.cpp:
1878 (WebCore::PluginView::load):
1880 2008-09-27 Mark Rowe <mrowe@apple.com>
1882 Rubber-stamped by Sam Weinig.
1884 Fix <https://bugs.webkit.org/show_bug.cgi?id=21184>.
1885 Bug 21184: REGRESSION: Reproducible crash below StringImpl::hash while running editing/deleting/5408255.html
1887 Remove an assertion that was incorrect and that if made correct would have duplicated a check that occurred earlier in the function.
1889 * loader/CachedResource.cpp:
1890 (WebCore::CachedResource::~CachedResource):
1892 2008-09-27 Holger Hans Peter Freyther <zecke@selfish.org>
1894 Reviewed by Simon Hausmann.
1896 [qt] Use QImageReader to figure out which image formats are supported
1897 - Qt can have many different plugins for different image formats. Instead
1898 of checking only for a few in WebCore use Qt to determine if this data
1899 can be treated as an image.
1901 * platform/graphics/qt/ImageSourceQt.cpp:
1902 (WebCore::canHandleImage):
1903 (WebCore::createDecoder):
1905 2008-09-27 Holger Hans Peter Freyther <zecke@selfish.org>
1908 [qt] Clean the pattern code
1909 - Use save/restore on the painter after manipulating the
1911 - Make the context and object null checking consistent. CG is using
1912 the object unconditionally so the Qt webkit platform can do the
1914 - Move code below the early exit. Only use the m_ownerElement before
1915 the early exit as the CG code is doing it.
1917 * svg/graphics/SVGPaintServerPattern.h:
1918 * svg/graphics/qt/SVGPaintServerPatternQt.cpp:
1919 (WebCore::SVGPaintServerPattern::setup):
1920 (WebCore::SVGPaintServerPattern::teardown):
1922 2008-09-27 Keishi Hattori <casey.hattori@gmail.com>
1924 Added support for console.trace.
1926 https://bugs.webkit.org/show_bug.cgi?id=19157
1928 Reviewed by Kevin McCullough and Tim Hatcher.
1930 * bindings/js/JSConsoleCustom.cpp:
1931 (WebCore::JSConsole::trace):
1933 (WebCore::Console::trace): Calls Machine::retrieveCaller to
1936 (WebCore::): Added TraceMessageLevel.
1937 * page/Console.idl: Added console.trace.
1938 * page/inspector/Console.js:
1939 (ConsoleMessage): Added case for TraceMessageLevel.
1941 2008-09-27 Anders Carlsson <andersca@apple.com>
1943 Reviewed by Sam Weinig.
1945 https://bugs.webkit.org/show_bug.cgi?id=21178
1946 <rdar://problem/6248651>
1948 Check if the plug-in is allowed to load the resource. This matches Firefox.
1950 Test: http/tests/plugins/local-geturl-from-remote.html
1952 * plugins/PluginView.cpp:
1953 (WebCore::PluginView::load):
1955 2008-09-22 Dirk Schulze <vbs85@gmx.de>
1957 Reviewed by Eric Seidel.
1959 Added SVG pattern support to Qt.
1961 [Qt] SVG patterns are missing
1962 https://bugs.webkit.org/show_bug.cgi?id=20973
1964 * svg/graphics/qt/SVGPaintServerPatternQt.cpp:
1965 (WebCore::SVGPaintServerPattern::setup):
1967 2008-09-27 Keishi Hattori <casey.hattori@gmail.com>
1969 Fixed a bug in the JS syntax highlighter with multiple line tokens.
1971 https://bugs.webkit.org/show_bug.cgi?id=21171
1973 Reviewed by Tim Hatcher.
1975 * page/inspector/SourceFrame.js:
1976 (syntaxHighlightJavascriptLine): Initialize previousMatchLength.
1978 2008-09-27 Timothy Hatcher <timothy@apple.com>
1980 Change searching in the Profiles panel to not match the
1981 Self and Total columns when there are no units. The only
1982 column that is matched for unitless number searches is
1983 now the Calls column.
1985 https://bugs.webkit.org/show_bug.cgi?id=21169
1987 Reviewed by Sam Weinig.
1989 * page/inspector/ProfileView.js:
1990 (WebInspector.ProfileView.prototype.performSearch):
1992 2008-09-27 David Hyatt <hyatt@apple.com>
1994 Rename boundsGeometry -> boundsRect. Rename geometryChanged -> frameRectsChanged.
1996 Reviewed by Sam Weinig
1998 * platform/ScrollView.h:
1999 * platform/Widget.h:
2000 (WebCore::Widget::boundsRect):
2001 (WebCore::Widget::invalidate):
2002 (WebCore::Widget::frameRectsChanged):
2003 * platform/gtk/ScrollViewGtk.cpp:
2004 (WebCore::ScrollViewScrollbar::frameRectsChanged):
2005 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
2006 (WebCore::ScrollView::setFrameRect):
2007 (WebCore::ScrollView::updateScrollbars):
2008 (WebCore::ScrollView::frameRectsChanged):
2009 * platform/gtk/ScrollbarGtk.cpp:
2010 (ScrollbarGtk::setFrameRect):
2011 (ScrollbarGtk::frameRectsChanged):
2012 * platform/gtk/ScrollbarGtk.h:
2013 * platform/gtk/WidgetGtk.cpp:
2014 * platform/qt/ScrollViewQt.cpp:
2015 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
2016 (WebCore::ScrollView::setFrameRect):
2017 (WebCore::ScrollView::frameRectsChanged):
2018 (WebCore::ScrollView::updateScrollbars):
2019 * platform/win/ScrollViewWin.cpp:
2020 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
2021 (WebCore::ScrollView::setFrameRect):
2022 (WebCore::ScrollView::updateScrollbars):
2023 (WebCore::ScrollView::frameRectsChanged):
2024 * plugins/PluginView.cpp:
2025 (WebCore::PluginView::frameRectsChanged):
2026 * plugins/PluginView.h:
2028 2008-09-27 Simon Hausmann <hausmann@webkit.org>
2030 Refix the previous build fix to compile on non-Qt platforms, too.
2032 * WebCore.pro: Don't pass -i to create_hashtable, added missing -n
2033 WebCore to generate the PrototypeTable in the WebCore namespace
2034 * bindings/js/JSEventTargetBase.h: Revert previous fix, the Prototype
2035 table remains in the Webcore namespace
2036 (WebCore::JSEventTargetBasePrototype::getOwnPropertySlot):
2038 2008-09-27 Simon Hausmann <hausmann@webkit.org>
2040 Fix compilation with gcc 4.3 (probably > 4.0)
2042 * bindings/js/JSDOMWindowBase.cpp: Don't define static property
2043 get/put functions inside the WebCore namespace.
2044 * bindings/js/JSEventTargetBase.cpp: Ditto.
2045 * bindings/js/JSEventTargetNode.cpp: Ditto.
2046 * bindings/js/JSEventTargetSVGElementInstance.cpp: Ditto.
2047 * bindings/js/JSEventTargetBase.h: Forward declare
2048 JSEventTargetPrototypeTable in the JSC namespace as the lut.h file
2049 defines it in the JSC namespace.
2050 (WebCore::JSEventTargetBasePrototype::getOwnPropertySlot): Add JSC::
2051 prefix for PrototypeTable symbol.
2053 2008-09-27 David Hyatt <hyatt@apple.com>
2055 Rename frameGeometry to frameRect. Rename setFrameGeometry to setFrameRect.
2057 Reviewed by Dan Bernstein
2060 * page/FrameView.cpp:
2061 (WebCore::FrameView::FrameView):
2062 (WebCore::FrameView::updateControlTints):
2063 * platform/ScrollView.h:
2064 * platform/Scrollbar.cpp:
2065 (WebCore::Scrollbar::Scrollbar):
2066 (WebCore::Scrollbar::paint):
2067 (WebCore::Scrollbar::setFrameRect):
2068 * platform/Scrollbar.h:
2069 * platform/ScrollbarThemeComposite.cpp:
2070 (WebCore::ScrollbarThemeComposite::paint):
2071 * platform/Widget.h:
2072 (WebCore::Widget::x):
2073 (WebCore::Widget::y):
2074 (WebCore::Widget::width):
2075 (WebCore::Widget::height):
2076 (WebCore::Widget::size):
2077 (WebCore::Widget::pos):
2078 (WebCore::Widget::resize):
2079 (WebCore::Widget::move):
2080 * platform/gtk/ScrollViewGtk.cpp:
2081 (WebCore::ScrollViewScrollbar::geometryChanged):
2082 (WebCore::ScrollView::update):
2083 (WebCore::ScrollView::setFrameRect):
2084 (WebCore::ScrollView::updateScrollbars):
2085 (WebCore::ScrollView::scrollbarUnderMouse):
2086 (WebCore::ScrollView::paint):
2087 * platform/gtk/ScrollbarGtk.cpp:
2088 (ScrollbarGtk::setFrameRect):
2089 (ScrollbarGtk::geometryChanged):
2090 * platform/gtk/ScrollbarGtk.h:
2091 * platform/gtk/WidgetGtk.cpp:
2092 (WebCore::Widget::frameRect):
2093 (WebCore::Widget::setFrameRect):
2094 * platform/mac/ScrollbarThemeMac.mm:
2095 (WebCore::ScrollbarThemeMac::trackRect):
2096 (WebCore::ScrollbarThemeMac::paint):
2097 * platform/mac/WidgetMac.mm:
2098 (WebCore::Widget::frameRect):
2099 (WebCore::Widget::setFrameRect):
2100 * platform/qt/ScrollViewQt.cpp:
2101 (WebCore::ScrollView::setFrameRect):
2102 (WebCore::ScrollView::updateScrollbars):
2103 (WebCore::ScrollView::scrollbarUnderMouse):
2104 (WebCore::ScrollView::paint):
2105 * platform/qt/ScrollbarThemeQt.cpp:
2106 (WebCore::styleOptionSlider):
2107 * platform/qt/WidgetQt.cpp:
2108 (WebCore::Widget::frameRect):
2109 (WebCore::Widget::setFrameRect):
2110 * platform/win/PopupMenuWin.cpp:
2111 (WebCore::PopupMenu::invalidateItem):
2112 (WebCore::PopupMenu::valueChanged):
2113 (WebCore::PopupWndProc):
2114 * platform/win/ScrollViewWin.cpp:
2115 (WebCore::ScrollView::setFrameRect):
2116 (WebCore::ScrollView::updateScrollbars):
2117 (WebCore::ScrollView::scrollbarUnderMouse):
2118 (WebCore::ScrollView::paint):
2119 * platform/win/ScrollbarThemeSafari.cpp:
2120 (WebCore::ScrollbarThemeSafari::trackRect):
2121 * platform/win/WidgetWin.cpp:
2122 (WebCore::Widget::frameRect):
2123 (WebCore::Widget::setFrameRect):
2124 * platform/wx/WidgetWx.cpp:
2125 (WebCore::Widget::frameRect):
2126 (WebCore::Widget::setFrameRect):
2127 * plugins/PluginView.cpp:
2128 (WebCore::PluginView::setFrameRect):
2129 * plugins/PluginView.h:
2130 * plugins/gtk/PluginViewGtk.cpp:
2131 (WebCore::PluginView::updatePluginWidget):
2132 (WebCore::PluginView::paint):
2133 (WebCore::PluginView::init):
2134 * plugins/qt/PluginViewQt.cpp:
2135 (WebCore::PluginView::updatePluginWidget):
2136 (WebCore::PluginView::init):
2137 * plugins/win/PluginViewWin.cpp:
2138 (WebCore::PluginView::updatePluginWidget):
2139 (WebCore::PluginView::paintMissingPluginIcon):
2140 (WebCore::PluginView::paint):
2141 (WebCore::PluginView::init):
2142 * rendering/RenderLayer.cpp:
2143 (WebCore::RenderLayer::positionOverflowControls):
2144 * rendering/RenderListBox.cpp:
2145 (WebCore::RenderListBox::paintScrollbar):
2146 * rendering/RenderPart.cpp:
2147 (WebCore::RenderPart::updateWidgetPosition):
2148 * rendering/RenderWidget.cpp:
2149 (WebCore::RenderWidget::setWidgetGeometry):
2150 (WebCore::RenderWidget::updateWidgetPosition):
2152 2008-09-27 David Hyatt <hyatt@apple.com>
2154 <rdar://problem/6252041> REGRESSION (4dp-TOT): Crash in Widget::platformWidget() when closing a PDF
2156 This crash was lurking for a while and basically got exposed by my changes to visibleContentRect() to
2157 access an actual member variable.
2159 Reviewed by Dan Bernstein
2161 * page/FocusController.cpp:
2162 (WebCore::FocusController::setFocusedFrame):
2164 2008-09-27 Jan Michael Alonzo <jmalonzo@webkit.org>
2166 Attempt to fix QT Build. Not reviewed.
2168 * WebCore.pro: add -n WebCore parameter to create_hash_table
2170 2008-09-26 Gwenole Beauchesne <gbeauchesne@splitted-desktop.org>
2172 Reviewed by Eric Seidel.
2174 http://bugs.webkit.org/show_bug.cgi?id=18905
2175 [GTK] Fix build with older pango (1.14.8)
2177 * platform/graphics/gtk/FontGtk.cpp:
2178 * platform/gtk/Language.cpp:
2179 (_pango_get_lc_ctype):
2180 (pango_language_get_default):
2182 2008-09-26 David Hyatt <hyatt@apple.com>
2184 https://bugs.webkit.org/show_bug.cgi?id=21168
2186 Make contentsToWindow/windowToContents cross-platform.
2188 Reviewed by Oliver Hunt
2190 * platform/ScrollView.cpp:
2191 (WebCore::ScrollView::windowToContents):
2192 (WebCore::ScrollView::contentsToWindow):
2193 * platform/ScrollView.h:
2194 * platform/gtk/ScrollViewGtk.cpp:
2195 * platform/mac/ScrollViewMac.mm:
2196 * platform/qt/ScrollViewQt.cpp:
2197 * platform/win/ScrollViewWin.cpp:
2198 * platform/wx/ScrollViewWx.cpp:
2200 2008-09-26 Sam Weinig <sam@webkit.org>
2206 2008-09-26 David Hyatt <hyatt@apple.com>
2208 Eliminate shouldUpdateWhileOffscreen from ScrollView. Make the concept of not invalidating while
2209 offscreen cross-platform. Rename the inWindow method to isOffscreen (which flips the boolean), since that
2210 more clearly conveys the intent of the method. Make isOffscreen also check NSWindow visibility on Mac.
2212 Reviewed by Oliver Hunt
2214 * page/FrameView.cpp:
2215 (WebCore::FrameView::repaintContentRectangle):
2217 * platform/ScrollView.h:
2218 * platform/gtk/ScrollViewGtk.cpp:
2219 (WebCore::ScrollView::isOffscreen):
2220 * platform/mac/ScrollViewMac.mm:
2221 (WebCore::ScrollView::updateContents):
2222 (WebCore::ScrollView::isOffscreen):
2223 * platform/qt/ScrollViewQt.cpp:
2224 (WebCore::ScrollView::isOffscreen):
2225 * platform/win/ScrollViewWin.cpp:
2226 (WebCore::ScrollView::isOffscreen):
2227 * platform/wx/ScrollViewWx.cpp:
2228 (WebCore::ScrollView::isOffscreen):
2229 * rendering/RenderObject.cpp:
2230 (WebCore::RenderObject::willRenderImage):
2232 2008-09-26 David Hyatt <hyatt@apple.com>
2234 https://bugs.webkit.org/show_bug.cgi?id=21164
2236 Rework concept of allowsScrolling/setAllowsScrolling to be cross-platform.
2238 Reviewed by Sam Weinig
2241 * page/FrameView.cpp:
2242 (WebCore::FrameView::setAllowsScrolling):
2244 * platform/ScrollView.cpp:
2245 (WebCore::ScrollView::setAllowsScrolling):
2246 * platform/ScrollView.h:
2247 (WebCore::ScrollView::allowsScrolling):
2248 * platform/win/ScrollViewWin.cpp:
2249 (WebCore::ScrollView::wheelEvent):
2251 2008-09-26 Kevin Ollivier <kevino@theolliviers.com>
2253 wx build fixes after Widget/ScrollView changes.
2255 * platform/wx/PopupMenuWx.cpp:
2256 (WebCore::PopupMenu::show):
2257 * platform/wx/ScrollViewWx.cpp:
2258 (WebCore::ScrollView::platformSetContentsSize):
2259 (WebCore::ScrollView::platformSetScrollbarModes):
2260 (WebCore::ScrollView::wheelEvent):
2261 * platform/wx/TemporaryLinkStubs.cpp:
2262 * platform/wx/WidgetWx.cpp:
2263 (WebCore::Widget::containingWindow):
2265 2008-09-26 Timothy Hatcher <timothy@apple.com>
2267 Allow searching for paths by always performing the
2268 three search methods in the Elements panel and not
2269 assume a search with a "/" is a XPath query.
2271 https://bugs.webkit.org/show_bug.cgi?id=21159
2273 Reviewed by Geoff Garen.
2275 * page/inspector/ElementsPanel.js:
2276 (WebInspector.ElementsPanel.prototype.performSearch):
2278 2008-09-26 Sam Weinig <sam@webkit.org>
2280 Reviewed by Darin Adler.
2282 Patch for https://bugs.webkit.org/show_bug.cgi?id=21152
2283 Speedup static property get/put
2285 * DerivedSources.make:
2288 * WebCore.vcproj/WebCore.vcproj:
2289 * WebCore.xcodeproj/project.pbxproj:
2290 * bindings/js/JSDOMBinding.cpp:
2291 * bindings/js/JSDOMBinding.h:
2292 * bindings/js/JSDOMWindowBase.cpp:
2293 (WebCore::getDOMConstructor):
2294 (WebCore::jsDOMWindowBaseCrypto):
2295 (WebCore::jsDOMWindowBaseEvent):
2296 (WebCore::jsDOMWindowBaseImage):
2297 (WebCore::jsDOMWindowBaseMessageChannel):
2298 (WebCore::jsDOMWindowBaseOption):
2299 (WebCore::jsDOMWindowBaseXMLHttpRequest):
2300 (WebCore::jsDOMWindowBaseAudio):
2301 (WebCore::jsDOMWindowBaseXSLTProcessor):
2302 (WebCore::jsDOMWindowBaseOnabort):
2303 (WebCore::jsDOMWindowBaseOnblur):
2304 (WebCore::jsDOMWindowBaseOnchange):
2305 (WebCore::jsDOMWindowBaseOnclick):
2306 (WebCore::jsDOMWindowBaseOndblclick):
2307 (WebCore::jsDOMWindowBaseOnerror):
2308 (WebCore::jsDOMWindowBaseOnfocus):
2309 (WebCore::jsDOMWindowBaseOnkeydown):
2310 (WebCore::jsDOMWindowBaseOnkeypress):
2311 (WebCore::jsDOMWindowBaseOnkeyup):
2312 (WebCore::jsDOMWindowBaseOnload):
2313 (WebCore::jsDOMWindowBaseOnmousedown):
2314 (WebCore::jsDOMWindowBaseOnmousemove):
2315 (WebCore::jsDOMWindowBaseOnmouseout):
2316 (WebCore::jsDOMWindowBaseOnmouseover):
2317 (WebCore::jsDOMWindowBaseOnmouseup):
2318 (WebCore::jsDOMWindowBaseOnMouseWheel):
2319 (WebCore::jsDOMWindowBaseOnreset):
2320 (WebCore::jsDOMWindowBaseOnresize):
2321 (WebCore::jsDOMWindowBaseOnscroll):
2322 (WebCore::jsDOMWindowBaseOnsearch):
2323 (WebCore::jsDOMWindowBaseOnselect):
2324 (WebCore::jsDOMWindowBaseOnsubmit):
2325 (WebCore::jsDOMWindowBaseOnbeforeunload):
2326 (WebCore::jsDOMWindowBaseOnunload):
2327 (WebCore::jsDOMWindowBaseOnWebKitAnimationStart):
2328 (WebCore::jsDOMWindowBaseOnWebKitAnimationIteration):
2329 (WebCore::jsDOMWindowBaseOnWebKitAnimationEnd):
2330 (WebCore::jsDOMWindowBaseOnWebKitTransitionEnd):
2331 (WebCore::JSDOMWindowBase::getOwnPropertySlot):
2332 (WebCore::JSDOMWindowBase::put):
2333 (WebCore::setJSDOMWindowBaseOnabort):
2334 (WebCore::setJSDOMWindowBaseOnblur):
2335 (WebCore::setJSDOMWindowBaseOnchange):
2336 (WebCore::setJSDOMWindowBaseOnclick):
2337 (WebCore::setJSDOMWindowBaseOndblclick):
2338 (WebCore::setJSDOMWindowBaseOnerror):
2339 (WebCore::setJSDOMWindowBaseOnfocus):
2340 (WebCore::setJSDOMWindowBaseOnkeydown):
2341 (WebCore::setJSDOMWindowBaseOnkeypress):
2342 (WebCore::setJSDOMWindowBaseOnkeyup):
2343 (WebCore::setJSDOMWindowBaseOnload):
2344 (WebCore::setJSDOMWindowBaseOnmousedown):
2345 (WebCore::setJSDOMWindowBaseOnmousemove):
2346 (WebCore::setJSDOMWindowBaseOnmouseout):
2347 (WebCore::setJSDOMWindowBaseOnmouseover):
2348 (WebCore::setJSDOMWindowBaseOnmouseup):
2349 (WebCore::setJSDOMWindowBaseOnMouseWheel):
2350 (WebCore::setJSDOMWindowBaseOnreset):
2351 (WebCore::setJSDOMWindowBaseOnresize):
2352 (WebCore::setJSDOMWindowBaseOnscroll):
2353 (WebCore::setJSDOMWindowBaseOnsearch):
2354 (WebCore::setJSDOMWindowBaseOnselect):
2355 (WebCore::setJSDOMWindowBaseOnsubmit):
2356 (WebCore::setJSDOMWindowBaseOnbeforeunload):
2357 (WebCore::setJSDOMWindowBaseOnunload):
2358 (WebCore::setJSDOMWindowBaseOnWebKitAnimationStart):
2359 (WebCore::setJSDOMWindowBaseOnWebKitAnimationIteration):
2360 (WebCore::setJSDOMWindowBaseOnWebKitAnimationEnd):
2361 (WebCore::setJSDOMWindowBaseOnWebKitTransitionEnd):
2362 (WebCore::setJSDOMWindowBaseEvent):
2363 (WebCore::setJSDOMWindowBaseAudio):
2364 (WebCore::setJSDOMWindowBaseImage):
2365 (WebCore::setJSDOMWindowBaseMessageChannel):
2366 (WebCore::setJSDOMWindowBaseOption):
2367 (WebCore::setJSDOMWindowBaseXMLHttpRequest):
2368 (WebCore::setJSDOMWindowBaseXSLTProcessor):
2369 * bindings/js/JSDOMWindowBase.h:
2370 * bindings/js/JSDOMWindowCustom.cpp:
2371 (WebCore::nonCachingStaticCloseFunctionGetter):
2372 (WebCore::nonCachingStaticBlurFunctionGetter):
2373 (WebCore::nonCachingStaticFocusFunctionGetter):
2374 (WebCore::nonCachingStaticPostMessageFunctionGetter):
2375 * bindings/js/JSDOMWindowCustom.h:
2376 (WebCore::JSDOMWindow::customGetOwnPropertySlot):
2377 * bindings/js/JSEventTargetBase.cpp:
2378 * bindings/js/JSEventTargetBase.h:
2379 (WebCore::JSEventTargetBasePrototype::getOwnPropertySlot):
2380 (WebCore::JSEventTargetBasePrototype::classInfo):
2381 * bindings/js/JSEventTargetNode.cpp:
2383 (WebCore::JSEventTargetNode::getOwnPropertySlot):
2384 (WebCore::JSEventTargetNode::put):
2385 * bindings/js/JSEventTargetNode.h:
2386 (WebCore::JSEventTargetNode::classInfo):
2387 (WebCore::JSEventTargetNode::prototypeClassName):
2388 * bindings/js/JSEventTargetSVGElementInstance.cpp:
2390 (WebCore::JSEventTargetSVGElementInstance::getOwnPropertySlot):
2391 (WebCore::JSEventTargetSVGElementInstance::put):
2392 * bindings/js/JSEventTargetSVGElementInstance.h:
2393 (WebCore::JSEventTargetSVGElementInstance::classInfo):
2394 (WebCore::JSEventTargetSVGElementInstance::prototypeClassName):
2395 * bindings/js/JSHTMLInputElementCustom.cpp:
2396 (WebCore::JSHTMLInputElement::customGetOwnPropertySlot):
2397 * bindings/js/JSHistoryCustom.cpp:
2398 (WebCore::nonCachingStaticBackFunctionGetter):
2399 (WebCore::nonCachingStaticForwardFunctionGetter):
2400 (WebCore::nonCachingStaticGoFunctionGetter):
2401 (WebCore::JSHistory::customGetOwnPropertySlot):
2402 * bindings/js/JSLocationCustom.cpp:
2403 (WebCore::nonCachingStaticReplaceFunctionGetter):
2404 (WebCore::nonCachingStaticReloadFunctionGetter):
2405 (WebCore::nonCachingStaticAssignFunctionGetter):
2406 (WebCore::JSLocation::customGetOwnPropertySlot):
2407 (WebCore::JSLocation::customPut):
2408 * bindings/scripts/CodeGeneratorJS.pm:
2410 2008-09-26 David Hyatt <hyatt@apple.com>
2412 https://bugs.webkit.org/show_bug.cgi?id=21149
2414 Make the concept of scroll modes cross-platform. Move the scrollbars up into ScrollView as well.
2415 Eliminate the unused isScrollable() method.
2417 Reviewed by Sam Weinig
2420 * page/FrameView.cpp:
2421 (WebCore::FrameView::resetScrollbars):
2422 (WebCore::FrameView::initScrollbars):
2423 (WebCore::FrameView::layout):
2425 * page/mac/WebCoreFrameView.h:
2426 * platform/ScrollView.cpp:
2427 (WebCore::ScrollView::init):
2428 (WebCore::ScrollView::setScrollbarModes):
2429 (WebCore::ScrollView::scrollbarModes):
2430 (WebCore::ScrollView::platformSetScrollbarModes):
2431 (WebCore::ScrollView::platformScrollbarModes):
2432 * platform/ScrollView.h:
2433 (WebCore::ScrollView::horizontalScrollbar):
2434 (WebCore::ScrollView::verticalScrollbar):
2435 (WebCore::ScrollView::isScrollViewScrollbar):
2436 (WebCore::ScrollView::setHorizontalScrollbarMode):
2437 (WebCore::ScrollView::setVerticalScrollbarMode):
2438 (WebCore::ScrollView::horizontalScrollbarMode):
2439 (WebCore::ScrollView::verticalScrollbarMode):
2440 (WebCore::ScrollView::convertSelfToChild):
2441 * platform/gtk/ScrollViewGtk.cpp:
2442 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
2443 (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
2444 (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
2445 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
2446 (WebCore::ScrollView::updateScrollbars):
2447 (WebCore::ScrollView::scrollbarUnderMouse):
2448 (WebCore::ScrollView::isScrollViewScrollbar):
2449 (WebCore::ScrollView::paint):
2450 (WebCore::ScrollView::scroll):
2451 * platform/mac/ScrollViewMac.mm:
2452 (WebCore::ScrollView::platformSetScrollbarModes):
2453 (WebCore::ScrollView::platformScrollbarModes):
2454 * platform/qt/ScrollViewQt.cpp:
2455 (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
2456 (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
2457 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
2458 (WebCore::ScrollView::horizontalScrollbar):
2459 (WebCore::ScrollView::verticalScrollbar):
2460 (WebCore::ScrollView::invalidateScrollbars):
2461 (WebCore::ScrollView::updateScrollbars):
2462 (WebCore::ScrollView::scrollbarUnderMouse):
2463 (WebCore::ScrollView::paint):
2464 (WebCore::ScrollView::scroll):
2465 * platform/win/ScrollViewWin.cpp:
2466 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
2467 (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
2468 (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
2469 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
2470 (WebCore::ScrollView::ScrollViewPrivate::setAllowsScrolling):
2471 (WebCore::ScrollView::ScrollViewPrivate::allowsScrolling):
2472 (WebCore::ScrollView::suppressScrollbars):
2473 (WebCore::ScrollView::updateScrollbars):
2474 (WebCore::ScrollView::scrollbarUnderMouse):
2475 (WebCore::ScrollView::paint):
2476 (WebCore::ScrollView::scroll):
2477 * platform/wx/ScrollViewWx.cpp:
2478 (WebCore::ScrollView::platformSetScrollbarModes):
2479 (WebCore::ScrollView::platformScrollbarModes):
2481 2008-09-26 David Kilzer <ddkilzer@apple.com>
2483 Fix Mac build with XPATH and XSLT disabled
2487 * bindings/objc/DOMUtility.mm:
2488 (JSC::createDOMWrapper): Conditionalize code with ENABLE(XPATH).
2489 * dom/XMLTokenizerLibxml2.cpp:
2490 (WebCore::errorFunc): Conditionalize method with ENABLE(XSLT) to
2491 prevent an unused code warning.
2493 2008-09-26 Kevin McCullough <kmccullough@apple.com>
2495 Rubber stamped by Tim Hatcher.
2497 Bug 21098: Crashing under Console::log
2498 - Speculative ASSERT to help find the problem.
2500 * page/InspectorController.cpp:
2501 (WebCore::ConsoleMessage::isEqual):
2503 2008-09-26 Holger Hans Peter Freyther <zecke@selfish.org>
2505 [gtk+] Build fix for the latest ScrollView changes
2507 * platform/gtk/ScrollViewGtk.cpp:
2508 (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
2509 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
2511 2008-09-26 Timothy Hatcher <timothy@apple.com>
2513 Fixes a bug where the console message repeat count would be wrong
2514 when typing commands in between repeated messages.
2516 https://bugs.webkit.org/show_bug.cgi?id=21145
2518 Reviewed by Kevin McCullough.
2520 * page/InspectorController.cpp:
2521 (WebCore::InspectorController::clearConsoleMessages): Reset m_groupLevel.
2522 (WebCore::InspectorController::didCommitLoad): Call clearConsoleMessages.
2523 * page/inspector/Console.js:
2524 (WebInspector.Console.prototype.addMessage): Remember the original repeat count
2525 for each message as totalRepeatCount, since we now modify repeatCount to mean
2526 repeats since previous console command. If repeatCountBeforeCommand is a number,
2527 subtract that value from the repeatCount.
2528 (WebInspector.Console.prototype.clearMessages): Delete the repeatCountBeforeCommand
2529 and commandSincePreviousMessage properties.
2531 2008-09-26 Eric Carlson <eric.carlson@apple.com>
2535 https://bugs.webkit.org/show_bug.cgi?id=21116
2536 <rdar://problem/5726325> Audio from <video> can still be heard after navigating
2537 back to page with <video>, then closing tab
2539 Rename willSaveToCache/didRestoreFromCache callbacks to documentWillBecomeInactive/
2540 documentDidBecomeActive, and post documentWillBecomeInactive when a page is marked for
2544 (WebCore::Document::documentWillBecomeInactive):
2545 (WebCore::Document::documentDidBecomeActive):
2546 (WebCore::Document::registerForDocumentActivationCallbacks):
2547 (WebCore::Document::unregisterForDocumentActivationCallbacks):
2550 (WebCore::Element::documentWillBecomeInactive):
2551 (WebCore::Element::documentDidBecomeActive):
2552 * history/CachedPage.cpp:
2553 (WebCore::CachedPage::CachedPage):
2554 * html/HTMLFormElement.cpp:
2555 (WebCore::HTMLFormElement::~HTMLFormElement):
2556 (WebCore::HTMLFormElement::parseMappedAttribute):
2557 (WebCore::HTMLFormElement::documentDidBecomeActive):
2558 (WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
2559 (WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
2560 * html/HTMLFormElement.h:
2561 * html/HTMLInputElement.cpp:
2562 (WebCore::HTMLInputElement::~HTMLInputElement):
2563 (WebCore::HTMLInputElement::setInputType):
2564 (WebCore::HTMLInputElement::parseMappedAttribute):
2565 (WebCore::HTMLInputElement::needsActivationCallback):
2566 (WebCore::HTMLInputElement::registerForActivationCallbackIfNeeded):
2567 (WebCore::HTMLInputElement::unregisterForActivationCallbackIfNeeded):
2568 (WebCore::HTMLInputElement::documentDidBecomeActive):
2569 (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
2570 (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
2571 * html/HTMLInputElement.h:
2572 * html/HTMLMediaElement.cpp:
2573 (WebCore::HTMLMediaElement::HTMLMediaElement):
2574 (WebCore::HTMLMediaElement::~HTMLMediaElement):
2575 (WebCore::HTMLMediaElement::documentWillBecomeInactive):
2576 (WebCore::HTMLMediaElement::documentDidBecomeActive):
2577 * html/HTMLMediaElement.h:
2578 (WebCore::HTMLMediaElement::inActiveDocument):
2579 * loader/FrameLoader.cpp:
2580 (WebCore::FrameLoader::opened):
2582 (WebCore::Page::~Page):
2583 * rendering/RenderMedia.cpp:
2584 (WebCore::RenderMedia::updateControls):
2585 * rendering/RenderVideo.cpp:
2586 (WebCore::RenderVideo::updatePlayer):
2587 * svg/SVGSVGElement.cpp:
2588 (WebCore::SVGSVGElement::SVGSVGElement):
2589 (WebCore::SVGSVGElement::~SVGSVGElement):
2590 (WebCore::SVGSVGElement::documentWillBecomeInactive):
2591 (WebCore::SVGSVGElement::documentDidBecomeActive):
2592 * svg/SVGSVGElement.h:
2594 2008-09-26 Ariya Hidayat <ariya.hidayat@trolltech.com>
2598 Fix the build inside Qt, don't create faulty prl files for now.
2602 2008-09-26 Simon Hausmann <hausmann@webkit.org>
2604 Fix compilation on Qt/Windows
2606 * Add WebCore/ to the include path so that config.h is found that enables JSC
2607 * Link against winmm for the multimedia timer functions
2608 * Include DateMath.h instead of JavaScriptCore/DateMath.h as file is in the kjs/
2610 * In PluginViewWin.cpp don't use setPlatformWidget with the HWND for the Qt/Windows port
2611 but set m_window directly as setPlatformWidget takes a QWidget*.
2614 * platform/win/SystemTimeWin.cpp:
2615 * plugins/win/PluginViewWin.cpp:
2616 (WebCore::PluginView::init):
2618 2008-09-26 Oliver Hunt <oliver@apple.com>
2620 Reviewed by Maciej Stachowiak.
2622 Bug 21054: Construction of certain DOM objects is heavily regressed by r36675
2623 <https://bugs.webkit.org/show_bug.cgi?id=21054>
2625 This performance regression is actually just a symptom of a correctness
2626 bug. The constructor objects for a number of properties that have security
2627 checks on access were returning new objects each time. The most obvious
2628 symptom of this bug is that window.Image != window.Image, etc.
2630 The solution to this is to make sure we cache these constructors
2631 in the same way as all the other DOM constructors. To achieve this
2632 without causing any refcount cycles it is necessary to replace the
2633 refcounted document pointer in the Image, MessageChannel, Option,
2634 XMLHttpRequest, and Audio constructor objects with a reference to
2635 the document's JS wrapper.
2637 Tests: fast/dom/constructors-cached-navigate.html
2638 fast/dom/constructors-cached.html
2640 * WebCore.xcodeproj/project.pbxproj:
2641 * bindings/js/JSAudioConstructor.cpp:
2642 (WebCore::JSAudioConstructor::mark):
2643 * bindings/js/JSAudioConstructor.h:
2644 (WebCore::JSAudioConstructor::document):
2645 * bindings/js/JSDOMWindowBase.cpp:
2646 (WebCore::getDOMConstructor):
2647 (WebCore::JSDOMWindowBase::getValueProperty):
2648 * bindings/js/JSDOMWindowBase.h:
2649 * bindings/js/JSHTMLOptionElementConstructor.cpp:
2650 (WebCore::JSHTMLOptionElementConstructor::mark):
2651 * bindings/js/JSHTMLOptionElementConstructor.h:
2652 (WebCore::JSHTMLOptionElementConstructor::document):
2653 * bindings/js/JSImageConstructor.cpp:
2654 (WebCore::JSImageConstructor::mark):
2655 * bindings/js/JSImageConstructor.h:
2656 (WebCore::JSImageConstructor::document):
2657 * bindings/js/JSXMLHttpRequestConstructor.cpp:
2658 (WebCore::JSXMLHttpRequestConstructor::mark):
2659 * bindings/js/JSXMLHttpRequestConstructor.h:
2660 (WebCore::JSXMLHttpRequestConstructor::document):
2662 2008-09-26 Simon Hausmann <hausmann@webkit.org>
2664 Unreviewed one-liner build fix for the Qt/Windows build.
2666 The build requires NPAPI support to be enabled, fix the condition in
2667 the .pro file for that.
2671 2008-09-26 Trenton Schulz <twschulz@trolltech.com>
2675 Fix compilation with the Qt/Cocoa port.
2677 * platform/qt/ScrollViewQt.cpp:
2678 (WebCore::ScrollView::updateScrollbars):
2680 2008-09-26 Simon Hausmann <hausmann@webkit.org>
2684 Fix compilation with VC9SP1, work around bug in TR1 library by
2689 2008-09-26 Simon Hausmann <hausmann@webkit.org>
2693 Fix an lupdate() warning.
2695 Don't use tr() in a class that is not a QObject, use
2696 QCoreApplication::translate() directly.
2698 * platform/qt/ScrollbarQt.cpp:
2699 (WebCore::Scrollbar::handleContextMenuEvent):
2701 2008-09-25 David Hyatt <hyatt@apple.com>
2703 Remove the scrollTo() method from FrameView, since it is not used by anyone.
2705 Reviewed by Oliver Hunt
2707 * page/FrameView.cpp:
2710 2008-09-25 David Hyatt <hyatt@apple.com>
2712 Make scrollRectIntoViewRecursively cross-platform.
2714 Reviewed by Oliver Hunt
2716 * platform/ScrollView.cpp:
2717 (WebCore::ScrollView::scrollRectIntoViewRecursively):
2718 * platform/gtk/ScrollViewGtk.cpp:
2719 * platform/mac/ScrollViewMac.mm:
2720 * platform/qt/ScrollViewQt.cpp:
2721 * platform/win/ScrollViewWin.cpp:
2722 * platform/wx/ScrollViewWx.cpp:
2724 2008-09-25 David Hyatt <hyatt@apple.com>
2726 https://bugs.webkit.org/show_bug.cgi?id=21133
2728 Rename resizeContents method on ScrollView to setContentsSize (to match contentsSize()). Make it
2731 Reviewed by Oliver Hunt
2733 * loader/FrameLoader.cpp:
2734 (WebCore::FrameLoader::begin):
2735 * page/FrameView.cpp:
2736 (WebCore::FrameView::adjustViewSize):
2737 * platform/ScrollView.cpp:
2738 (WebCore::ScrollView::setContentsSize):
2739 * platform/ScrollView.h:
2740 (WebCore::ScrollView::updateScrollbars):
2741 * platform/gtk/ScrollViewGtk.cpp:
2742 * platform/mac/ScrollViewMac.mm:
2743 (WebCore::ScrollView::platformSetContentsSize):
2744 * platform/qt/ScrollViewQt.cpp:
2745 * platform/win/ScrollViewWin.cpp:
2746 * platform/wx/ScrollViewWx.cpp:
2747 (WebCore::ScrollView::platformSetContentsSize):
2749 2008-09-25 David Hyatt <hyatt@apple.com>
2751 https://bugs.webkit.org/show_bug.cgi?id=21132
2753 Clean up the methods that actually do the scrolling in ScrollView.
2755 Reviewed by Oliver Hunt
2757 * html/HTMLBodyElement.cpp:
2758 (WebCore::HTMLBodyElement::setScrollLeft):
2759 (WebCore::HTMLBodyElement::setScrollTop):
2760 * loader/FrameLoader.cpp:
2761 (WebCore::FrameLoader::restoreScrollPositionAndViewState):
2762 * loader/ImageDocument.cpp:
2763 (WebCore::ImageDocument::imageClicked):
2764 * page/DOMWindow.cpp:
2765 (WebCore::DOMWindow::scrollBy):
2766 (WebCore::DOMWindow::scrollTo):
2767 * page/FrameView.cpp:
2768 (WebCore::FrameView::scrollTo):
2769 (WebCore::FrameView::setScrollPosition):
2771 * platform/ScrollView.cpp:
2772 (WebCore::ScrollView::maximumScrollPosition):
2773 * platform/ScrollView.h:
2774 (WebCore::ScrollView::contentsWidth):
2775 (WebCore::ScrollView::contentsHeight):
2776 (WebCore::ScrollView::scrollBy):
2777 * platform/gtk/ScrollViewGtk.cpp:
2778 (WebCore::ScrollView::setScrollPosition):
2779 * platform/mac/ScrollViewMac.mm:
2780 (WebCore::ScrollView::setScrollPosition):
2781 * platform/qt/ScrollViewQt.cpp:
2782 (WebCore::ScrollView::setScrollPosition):
2783 (WebCore::ScrollView::scrollRectIntoViewRecursively):
2784 * platform/win/ScrollViewWin.cpp:
2785 (WebCore::ScrollView::setScrollPosition):
2786 (WebCore::ScrollView::scrollRectIntoViewRecursively):
2787 * platform/wx/ScrollViewWx.cpp:
2788 (WebCore::ScrollView::setScrollPosition):
2789 * rendering/RenderLayer.cpp:
2790 (WebCore::RenderLayer::scrollByRecursively):
2791 (WebCore::RenderLayer::scrollRectToVisible):
2793 2008-09-25 Dan Bernstein <mitz@apple.com>
2795 - attempted Windows build fix
2797 * platform/win/ScrollViewWin.cpp:
2798 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
2799 (WebCore::ScrollView::setContentsPos):
2800 (WebCore::ScrollView::paint):
2802 2008-09-25 Timothy Hatcher <timothy@apple.com>
2804 Revert the padding changes done in r36905 to prevent the
2805 scrollbar from overlapping the URLs in the Console.
2807 https://bugs.webkit.org/show_bug.cgi?id=21126
2809 * page/inspector/inspector.css:
2811 2008-09-25 David Hyatt <hyatt@apple.com>
2813 https://bugs.webkit.org/show_bug.cgi?id=21129
2815 Refactor contents size and scroll offset to be cross-platform. Reduce further the number
2816 of platform-specific methods required of ScrollView implementations.
2818 Reviewed by Tim Hatcher
2820 * dom/MouseRelatedEvent.cpp:
2821 (WebCore::contentsX):
2822 (WebCore::contentsY):
2823 * html/HTMLBodyElement.cpp:
2824 (WebCore::HTMLBodyElement::scrollLeft):
2825 (WebCore::HTMLBodyElement::setScrollLeft):
2826 (WebCore::HTMLBodyElement::scrollTop):
2827 (WebCore::HTMLBodyElement::setScrollTop):
2828 * loader/FrameLoader.cpp:
2829 (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
2830 * page/DOMWindow.cpp:
2831 (WebCore::DOMWindow::scrollX):
2832 (WebCore::DOMWindow::scrollY):
2833 * page/EventHandler.cpp:
2834 (WebCore::EventHandler::hitTestResultAtPoint):
2835 * page/FrameView.cpp:
2836 (WebCore::FrameView::scrollTo):
2837 (WebCore::FrameView::windowClipRect):
2838 * platform/ScrollView.cpp:
2839 (WebCore::ScrollView::visibleContentRect):
2840 (WebCore::ScrollView::contentsSize):
2841 (WebCore::ScrollView::platformContentsSize):
2842 * platform/ScrollView.h:
2843 (WebCore::ScrollView::scrollPosition):
2844 (WebCore::ScrollView::scrollOffset):
2845 (WebCore::ScrollView::scrollX):
2846 (WebCore::ScrollView::scrollY):
2847 (WebCore::ScrollView::contentsWidth):
2848 (WebCore::ScrollView::contentsHeight):
2849 * platform/gtk/ScrollViewGtk.cpp:
2850 (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
2851 (WebCore::ScrollView::setGtkAdjustments):
2852 (WebCore::ScrollView::resizeContents):
2853 (WebCore::ScrollView::contentsWidth):
2854 (WebCore::ScrollView::contentsHeight):
2855 (WebCore::ScrollView::scrollOffset):
2856 (WebCore::ScrollView::maximumScroll):
2857 (WebCore::ScrollView::scrollBy):
2858 (WebCore::ScrollView::suppressScrollbars):
2859 (WebCore::ScrollView::setHScrollbarMode):
2860 (WebCore::ScrollView::setVScrollbarMode):
2861 (WebCore::ScrollView::setScrollbarsMode):
2862 (WebCore::ScrollView::setFrameGeometry):
2863 (WebCore::ScrollView::updateScrollbars):
2864 * platform/mac/ScrollViewMac.mm:
2865 (WebCore::ScrollView::platformContentsSize):
2866 (WebCore::ScrollView::scrollBy):
2867 * platform/mac/WidgetMac.mm:
2868 (WebCore::Widget::convertFromContainingWindow):
2869 (WebCore::Widget::convertToContainingWindow):
2870 * platform/qt/ScrollViewQt.cpp:
2871 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
2872 (WebCore::ScrollView::resizeContents):
2873 (WebCore::ScrollView::setFrameGeometry):
2874 (WebCore::ScrollView::scrollOffset):
2875 (WebCore::ScrollView::maximumScroll):
2876 (WebCore::ScrollView::scrollBy):
2877 (WebCore::ScrollView::setHScrollbarMode):
2878 (WebCore::ScrollView::setVScrollbarMode):
2879 (WebCore::ScrollView::setScrollbarsMode):
2880 (WebCore::ScrollView::updateScrollbars):
2881 * platform/win/ScrollViewWin.cpp:
2882 (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
2883 (WebCore::ScrollView::ScrollViewPrivate::setAllowsScrolling):
2884 (WebCore::ScrollView::resizeContents):
2885 (WebCore::ScrollView::setFrameGeometry):
2886 (WebCore::ScrollView::scrollOffset):
2887 (WebCore::ScrollView::maximumScroll):
2888 (WebCore::ScrollView::scrollBy):
2889 (WebCore::ScrollView::setHScrollbarMode):
2890 (WebCore::ScrollView::setVScrollbarMode):
2891 (WebCore::ScrollView::setScrollbarsMode):
2892 (WebCore::ScrollView::updateScrollbars):
2893 * platform/wx/ScrollViewWx.cpp:
2894 (WebCore::ScrollView::platformVisibleContentRect):
2895 (WebCore::ScrollView::platformContentsSize):
2896 * rendering/RenderBlock.cpp:
2897 (WebCore::RenderBlock::nodeAtPoint):
2898 * rendering/RenderLayer.cpp:
2899 (WebCore::RenderLayer::scrollRectToVisible):
2900 (WebCore::RenderLayer::calculateClipRects):
2901 (WebCore::RenderLayer::calculateRects):
2902 * rendering/RenderView.cpp:
2903 (WebCore::RenderView::absolutePosition):
2904 (WebCore::RenderView::computeAbsoluteRepaintRect):
2906 2008-09-25 David Smith <catfish.man@gmail.com>
2908 Reviewed by Dave Hyatt.
2910 Fix a nasty regression I introduced in the previous commit, which caused infinite recursion on facebook.
2913 (WebCore::Element::rareData):
2916 (WebCore::Node::rareData):
2919 2008-09-25 David Smith <catfish.man@gmail.com>
2921 Reviewed by Darin Adler.
2923 https://bugs.webkit.org/show_bug.cgi?id=20980
2924 Split off uncommonly used data from Node similar to ElementRareData
2926 Saves an OwnPtr and a short on Node, as well as providing room for an isContainer bit,
2927 which in turn allows inlining firstChild(), lastChild(), childNodeCount(), and childNode()
2928 for a 5-10+% performance win on SlickSpeed and assorted speedups on other tests.
2931 * WebCore.xcodeproj/project.pbxproj:
2932 * dom/ChildNodeList.cpp: Include ContainerNode to pick up its definitions for childNodeCount(), etc...
2933 * dom/ContainerNode.cpp: Set isContainer to true
2934 (WebCore::ContainerNode::ContainerNode):
2935 * dom/ContainerNode.h: These Node inlines are here to avoid including ContainerNode.h in Node.h
2936 (WebCore::Node::containerChildNodeCount): Use ContainerNode's definition, having proved that the Node is a container
2937 (WebCore::Node::containerChildNode): ditto
2938 (WebCore::Node::containerFirstChild): ditto
2939 (WebCore::Node::containerLastChild): ditto
2940 * dom/Element.cpp: Most of the changes here are moving ElementRareData to ElementRareData.h and NodeRareData.h
2941 (WebCore::Element::Element):
2942 (WebCore::Element::~Element):
2943 (WebCore::Element::rareData):
2944 (WebCore::Element::ensureRareData): Renamed from createRareData
2945 (WebCore::Element::createRareData): Used by ensureRareData to get the correct rareData type
2946 (WebCore::Element::attach): Check hasRareData rather than null-checking rareData()
2947 (WebCore::Element::detach): ditto
2948 (WebCore::Element::recalcStyle): ditto
2949 (WebCore::Element::focus):
2950 (WebCore::Element::minimumSizeForResizing): ditto
2951 (WebCore::Element::setMinimumSizeForResizing): ditto
2952 (WebCore::Element::computedStyle):
2953 (WebCore::Element::cancelFocusAppearanceUpdate): ditto
2955 * dom/ElementRareData.h: Added; everything copied from Element.cpp
2956 (WebCore::defaultMinimumSizeForResizing):
2957 (WebCore::ElementRareData::ElementRareData):
2958 (WebCore::ElementRareData::resetComputedStyle):
2959 * dom/EventTargetNode.cpp:
2960 (WebCore::EventTargetNode::EventTargetNode): Pass the isContainer flag up the chain
2961 * dom/EventTargetNode.h:
2963 (WebCore::Node::Node):
2964 (WebCore::Node::~Node): rareData cleanup code moved from Element and changed to use hasRareData
2965 (WebCore::Node::rareData):
2966 (WebCore::Node::ensureRareData):
2967 (WebCore::Node::createRareData):
2968 (WebCore::Node::tabIndex): nonzero tab indexes are now in rareData
2969 (WebCore::Node::setTabIndexExplicitly):
2970 (WebCore::Node::childNodes): NodeLists are now in rareData
2971 (WebCore::Node::setFocus):
2972 (WebCore::Node::rareDataFocused):
2973 (WebCore::Node::isFocusable):
2974 (WebCore::Node::isKeyboardFocusable):
2975 (WebCore::Node::registerDynamicNodeList): NodeLists are now in rareData
2976 (WebCore::Node::unregisterDynamicNodeList): ditto
2977 (WebCore::Node::notifyLocalNodeListsAttributeChanged): ditto
2978 (WebCore::Node::notifyLocalNodeListsChildrenChanged): ditto
2979 (WebCore::Node::getElementsByName): ditto
2980 (WebCore::Node::getElementsByClassName): ditto
2982 (WebCore::Node::firstChild): Use isContainerNode() to devirtualize
2983 (WebCore::Node::lastChild): ditto
2984 (WebCore::Node::isContainerNode): Take advantage of a newly freed bit to store whether we're a container
2985 (WebCore::Node::focused): focus is in rareData if set
2986 (WebCore::Node::childTypeAllowed):
2987 (WebCore::Node::childNodeCount): Use isContainerNode() to devirtualize
2988 (WebCore::Node::childNode): ditto
2989 (WebCore::Node::hasRareData): Use another newly freed bit to store whether we have rare data; avoids doing hash lookups in the common case
2990 * dom/NodeRareData.h: Added. Most of this is just properties moved from Node
2991 (WebCore::NodeListsNodeData::~NodeListsNodeData): Moved from Node.cpp since we NodeRareData needs to put them in a HashTable :(
2992 (WebCore::NodeRareData::NodeRareData):
2993 (WebCore::NodeRareData::rareDataMap):
2994 (WebCore::NodeRareData::rareDataFromMap):
2995 (WebCore::NodeRareData::clearNodeLists):
2996 (WebCore::NodeRareData::setNodeLists):
2997 (WebCore::NodeRareData::nodeLists):
2998 (WebCore::NodeRareData::tabIndex):
2999 (WebCore::NodeRareData::setTabIndex):
3000 (WebCore::NodeRareData::tabIndexSetExplicitly):
3001 * dom/TreeWalker.cpp: Include ContainerNode to pick up its definitions for childNodeCount(), etc...
3002 * xml/XPathUtil.cpp: Include ContainerNode to pick up its definitions for childNodeCount(), etc...
3004 2008-09-25 Holger Hans Peter Freyther <zecke@selfish.org>
3006 Reviewed by Simon Hausmann.
3008 [qt] ImageBuffer::toDataURL implementation
3010 There needs to be a Qt specific test result for the above mentioned
3013 * platform/graphics/qt/ImageBufferQt.cpp:
3014 (WebCore::ImageBuffer::toDataURL):
3016 2008-09-25 Holger Hans Peter Freyther <zecke@selfish.org>
3018 Reviewed by Simon Hausmann.
3020 [qt] Implement SharedBuffer for Qt.
3023 * platform/qt/SharedBufferQt.cpp: Added.
3024 (WebCore::SharedBuffer::createWithContentsOfFile):
3025 * platform/qt/TemporaryLinkStubs.cpp:
3027 2008-09-25 Feng Qian <feng@chromium.org>
3029 Fix bug: https://bugs.webkit.org/show_bug.cgi?id=21032
3030 <rdar://problem/6243032>
3032 Reviewed by Dave Hyatt.
3034 Test: fast/dom/attribute-downcast-right.html
3036 Add isMappedAttribute function to Attribute for checking if an object
3037 is an instance of MappedAttribute. Removed attributeItem,
3038 getAttributeItem functions from NamedMappedAttrMap, and callers
3039 expecting MappedAttribute have to check isMappedAttribute before
3040 downcasting the return value to MappedAttribute.
3042 * css/CSSStyleSelector.cpp:
3043 (WebCore::CSSStyleSelector::styleForElement):
3045 (WebCore::Attribute::isMappedAttribute):
3046 * dom/MappedAttribute.h:
3047 (WebCore::MappedAttribute::isMappedAttribute):
3048 * dom/NamedMappedAttrMap.cpp:
3049 (WebCore::NamedMappedAttrMap::declCount):
3050 (WebCore::NamedMappedAttrMap::mapsEquivalent):
3051 * dom/NamedMappedAttrMap.h:
3052 * dom/StyledElement.cpp:
3053 (WebCore::StyledElement::attributeChanged):
3054 * html/HTMLInputElement.cpp:
3055 (WebCore::HTMLInputElement::setInputType):
3056 * svg/SVGForeignObjectElement.cpp:
3057 (WebCore::addCSSPropertyAndNotifyAttributeMap):
3058 * svg/SVGStyledElement.cpp:
3059 (WebCore::SVGStyledElement::getPresentationAttribute):
3061 2008-09-25 David Hyatt <hyatt@apple.com>
3063 https://bugs.webkit.org/show_bug.cgi?id=21120
3065 Make visibleContentRect cross-platform. Note this does add new horizontal/verticalScrollbar accessors
3066 to a bunch of platforms. This is a temporary evil until the scrollbars get made cross-platform (and I
3067 didn't want to mix that change in with this patch).
3069 Reviewed by Sam Weinig
3072 (WebCore::Frame::markAllMatchesForText):
3073 * page/FrameView.cpp:
3074 (WebCore::FrameView::repaintContentRectangle):
3075 (WebCore::FrameView::windowClipRect):
3076 (WebCore::FrameView::updateControlTints):
3077 * platform/ScrollView.cpp:
3078 (WebCore::ScrollView::visibleContentRect):
3079 (WebCore::ScrollView::platformVisibleContentRect):
3080 * platform/ScrollView.h:
3081 (WebCore::ScrollView::visibleWidth):
3082 (WebCore::ScrollView::visibleHeight):
3083 * platform/gtk/ScrollViewGtk.cpp:
3084 (WebCore::ScrollView::horizontalScrollbar):
3085 (WebCore::ScrollView::verticalScrollbar):
3086 * platform/mac/ScrollViewMac.mm:
3087 (WebCore::ScrollView::horizontalScrollbar):
3088 (WebCore::ScrollView::verticalScrollbar):
3089 (WebCore::ScrollView::platformVisibleContentRect):
3090 * platform/qt/ScrollViewQt.cpp:
3091 (WebCore::ScrollView::horizontalScrollbar):
3092 (WebCore::ScrollView::verticalScrollbar):
3093 * platform/win/ScrollViewWin.cpp:
3094 (WebCore::ScrollView::horizontalScrollbar):
3095 (WebCore::ScrollView::verticalScrollbar):
3096 * platform/wx/ScrollViewWx.cpp:
3097 (WebCore::ScrollView::platformVisibleContentRect):
3098 (WebCore::ScrollView::horizontalScrollbar):
3099 (WebCore::ScrollView::verticalScrollbar):
3100 * rendering/RenderLayer.cpp:
3101 (WebCore::RenderLayer::scrollRectToVisible):
3102 (WebCore::frameVisibleRect):
3103 * rendering/RenderView.cpp:
3104 (WebCore::RenderView::viewRect):
3106 2008-09-25 David Smith <catfish.man@gmail.com>
3108 Reviewed by Timothy Hatcher
3110 https://bugs.webkit.org/show_bug.cgi?id=21052
3111 Generalize id selector special case for querySelectorAll
3113 By checking the element we get with getElementById against the selector, we can use the special case in many more circumstances.
3114 Changes results on http://native.khan.mozilla.org
3126 (WebCore::Node::querySelector):
3127 * dom/SelectorNodeList.cpp:
3128 (WebCore::createSelectorNodeList):
3130 2008-09-25 David Hyatt <hyatt@apple.com>
3132 https://bugs.webkit.org/show_bug.cgi?id=21118
3134 Make the concept of whether you can blit on scroll cross-platform on ScrollView.
3136 Reviewed by Sam Weinig
3138 * page/FrameView.cpp:
3139 (WebCore::FrameView::clear):
3140 (WebCore::FrameView::layout):
3141 (WebCore::FrameView::setUseSlowRepaints):
3142 (WebCore::FrameView::addSlowRepaintObject):
3143 (WebCore::FrameView::removeSlowRepaintObject):
3144 * platform/ScrollView.cpp:
3145 (WebCore::ScrollView::init):
3146 (WebCore::ScrollView::addChild):
3147 (WebCore::ScrollView::removeChild):
3148 (WebCore::ScrollView::setCanBlitOnScroll):
3149 * platform/ScrollView.h:
3150 (WebCore::ScrollView::canBlitOnScroll):
3151 * platform/gtk/ScrollViewGtk.cpp:
3152 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
3153 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
3154 (WebCore::ScrollView::ScrollView):
3155 * platform/mac/ScrollViewMac.mm:
3156 (WebCore::ScrollView::ScrollView):
3157 (WebCore::ScrollView::platformAddChild):
3158 (WebCore::ScrollView::platformRemoveChild):
3159 (WebCore::ScrollView::platformSetCanBlitOnScroll):
3160 * platform/qt/ScrollViewQt.cpp:
3161 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
3162 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
3163 (WebCore::ScrollView::ScrollView):
3164 * platform/win/ScrollViewWin.cpp:
3165 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
3166 (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
3167 (WebCore::ScrollView::ScrollView):
3168 * platform/wx/ScrollViewWx.cpp:
3169 (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
3170 (WebCore::ScrollView::ScrollView):
3171 (WebCore::ScrollView::scrollBy):
3173 2008-09-25 Kevin McCullough <kmccullough@apple.com>
3175 Reviewed by Tim Hatcher.
3177 Bug 21109: Console should right-align urls
3179 * page/inspector/Console.js: Re-order the message elements so that when
3180 it overflows it doesn't get mixed in with the next message.
3181 * page/inspector/inspector.css:
3183 2008-09-25 David Hyatt <hyatt@apple.com>
3185 https://bugs.webkit.org/show_bug.cgi?id=21113
3187 Putting r36771 back in with a fix to the addPendingSheet check in CSSImportRule::insertedIntoParent.
3189 Reviewed by Darin Adler
3191 * css/CSSImportRule.cpp:
3192 (WebCore::CSSImportRule::insertedIntoParent):
3194 (WebCore::CSSRule::parentStyleSheet):
3195 (WebCore::CSSRule::parentRule):
3196 * css/CSSStyleSheet.cpp:
3197 (WebCore::CSSStyleSheet::CSSStyleSheet):
3198 * css/CSSStyleSheet.h:
3200 2008-09-25 Darin Adler <darin@apple.com>
3202 Reviewed by Adele Peterson.
3204 - fix https://bugs.webkit.org/show_bug.cgi?id=21115
3205 <rdar://problem/6245773> REGRESSION (r34702): Safari no longer zips
3208 * html/HTMLFormElement.cpp:
3209 (WebCore::HTMLFormElement::formData): Use files() instead of value()
3210 to get the path, since value() now returns just the basename.
3212 2008-09-25 Brady Eidson <beidson@apple.com>
3214 Rubberstamped by Mark Rowe
3216 Roll out 36771 as it caused <rdar://problem/6246554>
3217 "nytimes.com doesn't display after returning to it with back/forward"
3219 * css/CSSImportRule.cpp:
3220 (WebCore::CSSImportRule::insertedIntoParent):
3222 (WebCore::CSSRule::parentStyleSheet):
3223 (WebCore::CSSRule::parentRule):
3224 * css/CSSStyleSheet.cpp:
3225 (WebCore::CSSStyleSheet::CSSStyleSheet):
3226 (WebCore::CSSStyleSheet::docLoader):
3227 * css/CSSStyleSheet.h:
3228 (WebCore::CSSStyleSheet::doc):
3230 2008-09-25 Adam Roben <aroben@apple.com>
3234 * WebCore.vcproj/WebCore.vcproj: Add ScrollView.cpp to the project.
3236 2008-09-25 Dan Bernstein <mitz@apple.com>
3240 * platform/win/ScrollViewWin.cpp:
3241 (WebCore::ScrollView::addChildPlatformWidget):
3242 (WebCore::ScrollView::removeChildPlatformWidget):
3244 2008-09-25 Timothy Hatcher <timothy@apple.com>
3246 Fixes a leak of ConsoleMessage seen when repeated console
3249 Reviewed by Mark Rowe.
3251 * page/InspectorController.cpp:
3252 (WebCore::InspectorController::addConsoleMessage): Delete the repeat
3253 since we don't add it to m_consoleMessages.
3255 2008-09-25 Kevin McCullough <kmccullough@apple.com>
3257 Reviewed by Dan Bernstein.
3259 Bug 21105: XHRs logged in the console may show the wrong URL for the
3261 - Get the url at the time of the send() and pass it on to the XHR.
3263 * bindings/js/JSXMLHttpRequestCustom.cpp:
3264 (WebCore::JSXMLHttpRequest::send):
3265 * xml/XMLHttpRequest.cpp:
3266 (WebCore::XMLHttpRequest::didFinishLoading):
3267 * xml/XMLHttpRequest.h:
3268 (WebCore::XMLHttpRequest::setLastSendURL):
3270 2008-09-25 Kevin McCullough <kmccullough@apple.com>
3272 Reviewed by Geoff and Tim.
3274 Bug 20322: XHRs logged in the console do not have line numbers
3275 - Get the line number at the time of the send and pass it on to the XHR.
3277 * bindings/js/JSXMLHttpRequestCustom.cpp:
3278 (WebCore::JSXMLHttpRequest::send):
3279 * xml/XMLHttpRequest.cpp:
3280 (WebCore::XMLHttpRequest::XMLHttpRequest):
3281 (WebCore::XMLHttpRequest::didFinishLoading):
3282 * xml/XMLHttpRequest.h:
3283 (WebCore::XMLHttpRequest::setLastSendLineNumber):
3285 2008-09-25 Eric Carlson <eric.carlson@apple.com>
3287 Reviewed by Eric Seidel.
3289 <rdar://problem/6171047> HTMLMediaElement "begin" event is now "loadstart"
3290 https://bugs.webkit.org/show_bug.cgi?id=21003
3292 * dom/EventNames.h: remove "begin" event
3293 * html/HTMLMediaElement.cpp:
3294 (WebCore::HTMLMediaElement::load): Post "loadstart" event instead of "begin"
3296 2008-09-25 Alexey Proskuryakov <ap@webkit.org>
3298 Reviewed by Eric Seidel.
3300 https://bugs.webkit.org/show_bug.cgi?id=21097
3301 Calling a MessageChannel constructor from a destroyed document results in a crash
3303 Test: fast/events/message-port-constructor-for-deleted-document.html
3305 * bindings/js/JSMessageChannelConstructor.cpp:
3306 (WebCore::JSMessageChannelConstructor::construct):
3307 * bindings/js/JSMessageChannelConstructor.h:
3308 Made m_document a RefPtr.
3310 2008-09-24 Alexey Proskuryakov <ap@webkit.org>
3312 Reviewed by Sam Weinig, Anders Carlsson, and (unofficially) Adam Barth.
3314 https://bugs.webkit.org/show_bug.cgi?id=20879
3315 Implement HTML5 channel messaging
3317 Tests: fast/events/message-channel-gc.html
3318 fast/events/message-port-deleted-document.html
3319 fast/events/message-port-deleted-frame.html
3320 fast/events/message-port-inactive-document.html
3321 fast/events/message-port.html
3322 http/tests/security/MessagePort/event-listener-context.html
3324 * Configurations/WebCore.xcconfig:
3325 Removed unused ENABLE_CROSS_DOCUMENT_MESSAGING macro.
3327 * DerivedSources.make:
3328 Added MessageChannel and MessagePort.
3330 * WebCore.pro: Made MessageEvent compilation unconditional, as it could not possibly be
3331 turmed off anyway. Added new files.
3335 * WebCore.vcproj/WebCore.vcproj:
3336 * WebCore.xcodeproj/project.pbxproj:
3337 * WebCoreSources.bkl:
3340 * bindings/js/JSDOMWindowBase.h:
3341 * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::getValueProperty):
3342 Added suport for window.MessageChannel constructor.
3344 * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::postMessage):
3345 * page/DOMWindow.cpp:
3346 (WebCore::DOMWindow::postMessage):
3348 * page/DOMWindow.idl:
3349 Added support for three-argument postMessage (that posts a MessagePort).
3351 * dom/EventTarget.cpp:
3352 (WebCore::EventTarget::toMessagePort):
3353 * dom/EventTarget.h:
3354 * bindings/js/JSEventTargetBase.cpp: (WebCore::toJS): Added MessagePort as yet another
3355 EventTarget variant.
3357 * bindings/js/JSMessageChannelConstructor.h:
3358 * bindings/js/JSMessageChannelConstructor.cpp: Added a custom constructor, so that it could
3359 take a browsing context (document) parameter.
3361 * bindings/js/JSMessageChannelCustom.cpp: Added.
3362 (WebCore::JSMessageChannel::mark): JSMessageChannel uses a custom mark function to mark
3363 port1 and port2 that it owns.
3365 * bindings/js/JSMessagePortCustom.cpp: Added.
3366 (WebCore::JSMessagePort::startConversation):
3367 (WebCore::JSMessagePort::addEventListener):
3368 (WebCore::JSMessagePort::removeEventListener):
3369 (WebCore::JSMessagePort::dispatchEvent):
3370 (WebCore::JSMessagePort::setOnmessage):
3371 (WebCore::JSMessagePort::onmessage):
3372 (WebCore::JSMessagePort::setOnclose):
3373 (WebCore::JSMessagePort::onclose):
3374 (WebCore::JSMessagePort::mark):
3375 * dom/MessagePort.cpp: Added.
3376 * dom/MessagePort.h: Added.
3377 * dom/MessagePort.idl: Added.
3378 Added a MessagePort implementation. Currently, it is not thread-safe at all, and only works
3379 with Documents as contexts, but in the future, it will be used for communication with worker
3382 * bindings/objc/DOMInternal.h: Include "DOMMessagePortInternal.h". The new APIs do not
3383 really have Obj-C bindings, as they are far from being final, but a MessagePort stub is
3384 needed for MessageEvent.
3386 * bindings/scripts/CodeGeneratorJS.pm: Include PlatformString.h for MessagePort happiness.
3389 (WebCore::MessagePortTimer::MessagePortTimer):
3390 (WebCore::MessagePortTimer::fired):
3391 (WebCore::Document::processMessagePortMessagesSoon):
3392 (WebCore::Document::~Document):
3393 (WebCore::Document::dispatchMessagePortEvents):
3394 (WebCore::Document::createdMessagePort):
3395 (WebCore::Document::destroyedMessagePort):
3397 Document keeps track of all MessagePort objects that were created when it was fully active
3400 * dom/EventNames.h: Added closeEvent.
3402 * dom/MessageChannel.cpp: Added.
3403 (WebCore::MessageChannel::MessageChannel):
3404 (WebCore::MessageChannel::~MessageChannel):
3405 * dom/MessageChannel.h: Added.
3406 (WebCore::MessageChannel::create):
3407 (WebCore::MessageChannel::port1):
3408 (WebCore::MessageChannel::port2):
3409 * dom/MessageChannel.idl: Added.
3410 Addded JSMessageChannel implementation.
3412 * dom/MessageEvent.cpp:
3413 (WebCore::MessageEvent::MessageEvent):
3414 (WebCore::MessageEvent::initMessageEvent):
3415 * dom/MessageEvent.h:
3416 (WebCore::MessageEvent::create):
3417 (WebCore::MessageEvent::messagePort):
3418 * dom/MessageEvent.idl:
3419 MessageEvent has a MessagePort member now, making it possible to pass ports across
3422 2008-09-25 David Smith <catfish.man@gmail.com>
3424 Reviewed by Eric Seidel
3426 fix https://bugs.webkit.org/show_bug.cgi?id=21091
3427 Regression: querySelector matches tag names case sensitively
3429 Tests: fast/dom/SelectorAPI/caseTag.html
3430 fast/dom/SelectorAPI/caseTagX.xhtml
3432 * css/CSSParser.cpp:
3433 (WebCore::CSSParser::parseSelector): Add a Document argument, since tag case sensitivity is different for HTML documents
3436 (WebCore::Node::querySelector):
3437 (WebCore::Node::querySelectorAll):
3439 2008-09-24 David Hyatt <hyatt@apple.com>
3441 https://bugs.webkit.org/show_bug.cgi?id=21084
3443 Make the m_children member of ScrollView cross-platform. Consolidate children add/remove
3444 functionality. Add platform stubs for connecting/disconnecting the platform widgets.
3446 Reviewed by Sam Weinig
3450 * WebCore.vcproj/WebCore.vcproj:
3451 * WebCore.xcodeproj/project.pbxproj:
3452 * WebCoreSources.bkl:
3453 * platform/ScrollView.h:
3454 (WebCore::ScrollView::children):
3455 * platform/Widget.h:
3456 * platform/gtk/ScrollViewGtk.cpp:
3457 (WebCore::ScrollView::addChildPlatformWidget):
3458 (WebCore::ScrollView::removeChildPlatformWidget):
3459 (WebCore::ScrollView::geometryChanged):
3460 * platform/mac/ScrollViewMac.mm:
3461 (WebCore::ScrollView::addChildPlatformWidget):
3462 (WebCore::ScrollView::removeChildPlatformWidget):
3463 * platform/qt/ScrollViewQt.cpp:
3464 (WebCore::ScrollView::geometryChanged):
3465 (WebCore::ScrollView::addChildPlatformWidget):
3466 (WebCore::ScrollView::removeChildPlatformWidget):
3467 * platform/win/ScrollViewWin.cpp:
3468 (WebCore::ScrollView::geometryChanged):
3469 (WebCore::ScrollView::setParentVisible):
3470 (WebCore::ScrollView::show):
3471 (WebCore::ScrollView::hide):
3472 * platform/wx/ScrollViewWx.cpp:
3473 (WebCore::ScrollView::addChildPlatformWidget):
3474 (WebCore::ScrollView::removeChildPlatformWidget):
3476 2008-09-25 Dan Bernstein <mitz@apple.com>
3478 Reviewed by Dave Hyatt.
3480 - fix https://bugs.webkit.org/show_bug.cgi?id=21024
3481 <rdar://problem/6240821> Scrollbar not painted until hovered
3483 * rendering/RenderWidget.cpp:
3484 (WebCore::RenderWidget::setWidgetGeometry): Replaced resizeWidget with
3485 this method, which sets both the location and the size.
3486 (WebCore::RenderWidget::setWidget): Replaced the call to resizeWidget
3487 with a call to the new method setWidgetGeometry. Positioning the
3488 widget correctly ensures that the scroll bars invalidate correctly when
3489 they are created and resized.
3490 * rendering/RenderWidget.h:
3492 2008-09-24 Dan Bernstein <mitz@apple.com>
3494 Rubber-stamped by Sam Weinig.
3496 - create a "style" subfolder under "rendering" and move style files to that folder
3498 * WebCore.vcproj/WebCore.vcproj:
3500 2008-09-24 Sam Weinig <sam@webkit.org>
3502 Reviewed by Maciej Stachowiak.
3504 Remove staticFunctionGetter. There is only one remaining user of
3505 staticFunctionGetter and it can be converted to use setUpStaticFunctionSlot.
3507 * bindings/js/JSDOMWindowBase.cpp:
3508 (WebCore::JSDOMWindowBase::getOwnPropertySlot):
3510 2008-09-24 Jeremy Moskovich <jeremy@chromium.org>
3512 Reviewed by Dan Bernstein.
3514 Test: editing/spelling/inline_spelling_markers.html
3516 - https://bugs.webkit.org/show_bug.cgi?id=20092
3517 Spelling markers positioned incorrectly in RTL text
3519 Measure spelling markers with selectionRectForText() to fix RTL.
3521 This patch also fixes hit-testing for spelling marker tool tips,
3522 which used to work only on the first line.
3524 * rendering/InlineTextBox.cpp:
3525 (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
3527 2008-09-24 David Hyatt <hyatt@apple.com>
3529 https://bugs.webkit.org/show_bug.cgi?id=21074
3531 Make sure the viewless scrollbar knows how to paint properly when transformed.
3533 Reviewed by Sam Weinig
3535 * platform/mac/ScrollbarThemeMac.mm:
3536 (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
3537 (WebCore::ScrollbarThemeMac::paint):
3539 2008-09-24 Nikolas Zimmermann <zimmermann@kde.org>
3541 Not reviewed. Try to fix win build.
3543 * bindings/js/JSSVGElementInstanceCustom.cpp:
3545 * dom/ContainerNodeAlgorithms.h:
3546 (WebCore::removeAllChildrenInContainer):
3547 (WebCore::appendChildToContainer):
3548 (WebCore::Private::addChildNodesToDeletionQueue):
3550 2008-09-24 Nikolas Zimmermann <zimmermann@kde.org>
3554 Add ContainerNodeAlgorithms.h, as central place to share algorithms
3555 operating on TreeShared-derived classes with a Node-style interface.
3557 This allows SVGElementInstance & ContainerNode to share code.
3559 * dom/ContainerNode.cpp:
3560 (WebCore::ContainerNode::removeAllChildren):
3561 (WebCore::ContainerNode::addChild):
3562 * dom/ContainerNode.h:
3563 * dom/ContainerNodeAlgorithms.h: Added.
3564 (WebCore::removeAllChildrenInContainer):
3565 (WebCore::appendChildToContainer):
3566 (WebCore::Private::NodeRemovalDispatcher::dispatch):
3567 (WebCore::Private::addChildNodesToDeletionQueue):
3569 2008-09-24 Simon Fraser <simon.fraser@apple.com>
3571 Reviewed by Dave Hyatt
3573 Wrap up dirtying the z-order list of the stacking context
3574 RenderLayer into a method.
3575 https://bugs.webkit.org/show_bug.cgi?id=21072
3577 * rendering/RenderLayer.cpp:
3578 (WebCore::RenderLayer::setHasVisibleContent):
3579 (WebCore::RenderLayer::addChild):
3580 (WebCore::RenderLayer::removeChild):
3581 (WebCore::RenderLayer::dirtyStackingContextZOrderLists):
3582 (WebCore::RenderLayer::styleChanged):
3583 * rendering/RenderLayer.h:
3584 * rendering/RenderObject.cpp:
3585 (WebCore::RenderObject::setStyle):
3587 2008-09-24 Kevin McCullough <kmccullough@apple.com>
3591 Bug 21070: REGRESSION Repeated messages with arguments are not repeated
3592 or displayed multiple times
3593 - The Insepctor Controller was comparing JSValue pointers so thought the
3594 message was not a repeat, but the JS of the inspector compared the
3595 strings and so knew it was the same message and so overwrote the old
3598 * page/InspectorController.cpp:
3599 (WebCore::ConsoleMessage::isEqual):
3600 (WebCore::InspectorController::addMessageToConsole):
3601 (WebCore::InspectorController::addConsoleMessage):
3602 (WebCore::InspectorController::startGroup):
3603 (WebCore::InspectorController::endGroup):
3604 * page/InspectorController.h: