1 2009-03-27 Darin Adler <darin@apple.com>
3 Reviewed by Sam Weinig.
5 To prepare for work on a form loading fix, remove some unused functions,
6 consolidate some functions, and make many more functions private in
9 * WebCore.base.exp: Remove some unused entry points, update another.
12 (WebCore::Document::detach): Clear m_frame directly instead of using
14 * dom/Document.h: Ditto.
16 * loader/FrameLoader.cpp:
17 (WebCore::FrameLoader::urlSelected): Consolidate the two functions
18 of this name into a single function. Also changed the event argument
19 to be PassRefPtr<Event>.
20 (WebCore::FrameLoader::submitForm): Changed the event argument to
22 (WebCore::FrameLoader::scheduleLocationChange): Call completeURL
23 explicitly so we can remove the version of changeLocation that does
25 (WebCore::FrameLoader::redirectionTimerFired): Ditto.
26 (WebCore::FrameLoader::loadURLIntoChildFrame): Set m_provisionalHistoryItem
27 directly so we don't need a setProvisionalHistoryItem function.
28 (WebCore::FrameLoader::canCachePageContainingThisFrame): Get at
29 m_quickRedirectComing directly so we don't need a isQuickRedirectComing
31 (WebCore::FrameLoader::logCanCacheFrameDecision): Ditto.
32 (WebCore::FrameLoader::loadFrameRequestWithFormAndValues): Changed the
33 event argument to be PassRefPtr<Event>.
34 (WebCore::FrameLoader::loadURL): Move the logic of the continueLoadWithData
35 function here because this is the only caller. If we want to make the
36 resulting function smaller we should refactor some other way. Also
37 streamlined the user-chosen encoding logic, but did not change what it does.
38 (WebCore::FrameLoader::finishedLoadingDocument): Changed the event argument
39 to be PassRefPtr<Event>.
40 (WebCore::FrameLoader::loadPostRequest): Ditto.
41 (WebCore::FrameLoader::receivedMainResourceError): Moved the logic from
42 the didNotOpenURL function here, since this was the only caller.
44 * loader/FrameLoader.h: Removed include of FormState.h and used a forward
45 declaration instead. Removed unneeded forward declation of Element.
46 Moved many functions into the private section, and removed some other
47 unused or uneeded functions.
49 2009-03-27 Xiaomei Ji <xji@chromium.org>
51 Reviewed by Dan Bernstein.
53 Fix https://bugs.webkit.org/show_bug.cgi?id=24303
54 Using keyboard select RTL text, Highlights goes to opposite direction from Firefox and IE.
56 Test: editing/selection/extend-selection.html
58 * editing/SelectionController.cpp:
59 (WebCore::SelectionController::directionOfEnclosingBlock): Added
60 (WebCore::SelectionController::modifyExtendingRight): Added. Currenctly
61 implemented for character and word granularity, all other granularities
62 are treated as "forward".
63 (WebCore::SelectionController::modifyExtendingForward): Renamed
64 modifyExtendingRightForward() to this.
65 (WebCore::SelectionController::modifyExtendingLeft): Added. Currenctly
66 implemented for character and word granularity, all other granularities
67 are treated as "backward".
68 (WebCore::SelectionController::modifyExtendingBackward): Renamed
69 modifyExtendingLeftBackward() to this.
70 (WebCore::SelectionController::modify): Change to call either the
71 left/right or backward/forward methods depending on the 'dir' argument
73 * editing/SelectionController.h:
75 2009-03-27 John Abd-El-Malek <jam@google.com>
77 Reviewed by Eric Seidel.
79 https://bugs.webkit.org/show_bug.cgi?id=24836
80 Fix navigator.plugins.refresh(false) in Chromium.
82 * plugins/chromium/PluginDataChromium.cpp:
83 (WebCore::PluginData::refresh):
85 2009-03-27 Timothy Hatcher <timothy@apple.com>
87 Make scrollLeft, scrollTop, scrollWidth, and scrollHeight
88 virtual to fix the broken layout tests from my last commit.
90 Reviewed by Mark Rowe.
93 (WebCore::Element::scrollLeft):
94 (WebCore::Element::scrollTop):
95 (WebCore::Element::scrollWidth):
96 (WebCore::Element::scrollHeight):
98 * html/HTMLBodyElement.h:
100 2009-03-27 Mark Rowe <mrowe@apple.com>
102 Reviewed by Sam Weinig.
104 Fix <https://bugs.webkit.org/show_bug.cgi?id=24876>.
105 Bug 24876: fast/forms/select-max-length.html times out in debug builds due to HTMLSelectElement::setLength being O(N^2)
107 * html/HTMLSelectElement.cpp:
108 (WebCore::HTMLSelectElement::setLength): Repeatedly calling remove to remove elements causes us to recalculate the list
109 items after each node is removed, leading to O(N^2) behaviour. By inlining the batch removal in to setLength we can avoid
110 this gratuitous recalcuation.
112 2009-03-27 Dirk Schulze <krit@webkit.org>
114 Reviewed by Eric Seidel.
116 We don't support images for GtkCursors yet. We need a placeholder to avoid crashes.
117 I took crosshair to have a common behavior with firefox.
119 [GTK] SVG - Crash on setting the cursor icon
120 https://bugs.webkit.org/show_bug.cgi?id=24565
122 * platform/gtk/CursorGtk.cpp:
123 (WebCore::Cursor::Cursor):
125 2009-03-27 Timothy Hatcher <timothy@apple.com>
127 Remove redundant attributes and functions from IDL files that have the
128 same attributes and functions defined in the super class.
130 Reviewed by Simon Fraser.
132 * WebCore.xcodeproj/project.pbxproj: Remove DOMHTMLBodyElementPrivate.h.
133 * bindings/objc/PublicDOMInterfaces.h: Remove focus and blur from DOMHTMLElement.
134 * html/HTMLBodyElement.idl: Remove scrollLeft, scrollTop, scrollWidth
136 * html/HTMLElement.idl: Remove blur and focus.
138 2009-03-27 Adam Roben <aroben@apple.com>
140 Don't include substitute data URLs in global history redirect chains
144 Reviewed by Darin Adler.
146 This might be testable if:
147 - support were added to DRT for providing substitute data on failed
149 - support were added to DRT for dumping redirect chains
151 I tried doing the above and was still unable to make a test.
153 * loader/FrameLoader.cpp:
154 (WebCore::FrameLoader::updateHistoryForStandardLoad):
155 (WebCore::FrameLoader::updateHistoryForRedirectWithLockedBackForwardList):
156 Call updateGlobalHistoryRedirectLinks only if the load succeeded
157 (i.e., there is no unreachableURL). Previous the FrameLoaderClient
158 implementations were unconditionally calling
159 updateGlobalHistoryRedirectLinks from within updateGlobalHistory.
161 2009-03-27 Peter Kasting <pkasting@google.com>
163 Reviewed by Eric Seidel.
165 https://bugs.webkit.org/show_bug.cgi?id=24861
166 Chromium port did not render decorations for <input type="search">.
167 This copies RenderThemeWin.*.
169 * css/themeChromiumWin.css: Removed.
170 * rendering/RenderThemeChromiumLinux.cpp:
171 (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
172 (WebCore::RenderThemeChromiumLinux::adjustSearchFieldCancelButtonStyle):
173 (WebCore::RenderThemeChromiumLinux::paintSearchFieldCancelButton):
174 (WebCore::RenderThemeChromiumLinux::adjustSearchFieldDecorationStyle):
175 (WebCore::RenderThemeChromiumLinux::adjustSearchFieldResultsDecorationStyle):
176 (WebCore::RenderThemeChromiumLinux::paintSearchFieldResultsDecoration):
177 (WebCore::RenderThemeChromiumLinux::adjustSearchFieldResultsButtonStyle):
178 (WebCore::RenderThemeChromiumLinux::paintSearchFieldResultsButton):
179 * rendering/RenderThemeChromiumLinux.h:
180 (WebCore::RenderThemeChromiumLinux::paintSearchField):
181 * rendering/RenderThemeChromiumWin.cpp:
183 (WebCore::RenderThemeChromiumWin::extraDefaultStyleSheet):
184 (WebCore::RenderThemeChromiumWin::adjustSearchFieldCancelButtonStyle):
185 (WebCore::RenderThemeChromiumWin::paintSearchFieldCancelButton):
186 (WebCore::RenderThemeChromiumWin::adjustSearchFieldDecorationStyle):
187 (WebCore::RenderThemeChromiumWin::adjustSearchFieldResultsDecorationStyle):
188 (WebCore::RenderThemeChromiumWin::paintSearchFieldResultsDecoration):
189 (WebCore::RenderThemeChromiumWin::adjustSearchFieldResultsButtonStyle):
190 (WebCore::RenderThemeChromiumWin::paintSearchFieldResultsButton):
191 * rendering/RenderThemeChromiumWin.h:
192 (WebCore::RenderThemeChromiumWin::paintSearchField):
194 2009-03-27 David Hyatt <hyatt@apple.com>
196 Reviewed by Simon Fraser
198 If an object has a self-painting layer, don't count it as part of a block's visual overflow.
199 This fix has only been made for block-level children. The inline-level case is still broken
200 (and covered by an existing bug).
202 Added fast/block/positioning/negative-rel-position.html
204 * rendering/InlineFlowBox.cpp:
205 (WebCore::InlineFlowBox::placeBoxesVertically):
206 * rendering/RenderBlock.cpp:
207 (WebCore::RenderBlock::layoutBlockChildren):
208 (WebCore::RenderBlock::lowestPosition):
209 (WebCore::RenderBlock::rightmostPosition):
210 (WebCore::RenderBlock::leftmostPosition):
212 2009-03-27 Anders Carlsson <andersca@apple.com>
214 Reviewed by Darin Adler.
216 <rdar://problem/6642221>
217 REGRESSION: With the Movie widget, movie trailer fails to load if movie had been previously viewed
219 Add a dashboard specific workaround so that we always create renderers for object elements, even if display:none is set.
221 I've filed <rdar://problem/6731022> against the Movies widget.
223 * html/HTMLObjectElement.cpp:
224 (WebCore::HTMLObjectElement::rendererIsNeeded):
226 2009-03-25 Timothy Hatcher <timothy@apple.com>
228 Expose new DOM methods as public Objective-C API.
230 <rdar://problem/5837350> Expose new DOM classes and methods
231 as public API (match the additions to the JavaScript DOM)
233 Reviewed by Mark Rowe and Darin Adler.
235 * WebCore.xcodeproj/project.pbxproj:
236 * bindings/objc/DOMHTML.h:
237 * bindings/objc/DOMPrivate.h:
238 * bindings/objc/PublicDOMInterfaces.h:
240 2009-03-27 Zack Rusin <zack@kde.org>
242 Reviewed by Simon Hausmann.
244 https://bugs.webkit.org/show_bug.cgi?id=24280
246 Fix propagation of fill rules when rendering paths in the Qt build.
248 * platform/graphics/qt/GraphicsContextQt.cpp:
249 (WebCore::toQtFillRule):
250 (WebCore::GraphicsContext::fillPath):
251 (WebCore::GraphicsContext::strokePath):
253 2009-03-27 Zack Rusin <zack@kde.org>
255 Reviewed by Tor Arne Vestbø.
257 https://bugs.webkit.org/show_bug.cgi?id=24275
259 Fix text field theming in the Qt build with the KDE 4 Oxygen
260 style by adjusting the size vertically and horizontally to
261 set padding on the element equal to the width of the style painted border.
263 * platform/qt/RenderThemeQt.cpp:
264 (WebCore::RenderThemeQt::RenderThemeQt):
265 (WebCore::RenderThemeQt::computeSizeBasedOnStyle):
266 (WebCore::RenderThemeQt::adjustTextFieldStyle):
267 (WebCore::RenderThemeQt::paintTextField):
268 * platform/qt/RenderThemeQt.h:
270 2009-03-27 Laszlo Gombos <laszlo.1.gombos@nokia.com>
272 Reviewed by Simon Hausmann.
274 https://bugs.webkit.org/show_bug.cgi?id=24852
275 Build fix for GNU mode RVCT compilation
277 * html/PreloadScanner.cpp:
279 2009-03-27 Erik L. Bunce <elbunce@xendom.com>
281 Reviewed by Simon Hausmann.
283 https://bugs.webkit.org/show_bug.cgi?id=24868
285 Make text of the writing direction items more user friendly.
287 * platform/qt/Localizations.cpp:
288 (WebCore::contextMenuItemTagLeftToRight):
289 (WebCore::contextMenuItemTagRightToLeft):
291 2009-03-27 Erik L. Bunce <elbunce@xendom.com>
293 Reviewed by Simon Hausmann.
295 https://bugs.webkit.org/show_bug.cgi?id=24274
297 Fixed the Qt 4.4 Mac build with netscape plugins enabled.
299 * plugins/mac/PluginViewMac.cpp:
301 2009-03-26 Mark Rowe <mrowe@apple.com>
303 Try and fix the Qt build.
305 * platform/text/TextEncodingDetectorNone.cpp:
306 (WebCore::detectTextEncoding):
308 2009-03-26 Eric Carlson <eric.carlson@apple.com>
310 Reviewed by Simon Fraser.
312 https://bugs.webkit.org/show_bug.cgi?id=24874
313 24874: HTMLMediaElement: 'duration' defaults to NaN, deal with it
315 The 'duration' attribute is NaN when no media is available, so the
316 media element should take care when comparing with duration().
318 * html/HTMLMediaElement.cpp:
319 (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Don't compare with duration when
321 (WebCore::HTMLMediaElement::endedPlayback): Ditto.
323 2009-03-26 Mark Rowe <mrowe@apple.com>
327 * platform/text/TextEncodingDetectorICU.cpp:
328 * platform/text/TextEncodingDetectorNone.cpp:
330 2009-03-26 Jungshik Shin <jshin@chromium.org>
332 Reviewed by Cameron Zwarich.
334 1. Fix the crash in setHintEncoding
335 2. Fix build failures on Tiger and Qt.
336 UnusedParam.h was not included by TextEncodingDetector{None,ICU}.cpp
337 in the patch landed in r42023
338 for http://bugs.webkit.org/show_bug.cgi?id=16482
340 * loader/TextResourceDecoder.h:
341 (WebCore::TextResourceDecoder::setHintEncoding):
342 * platform/text/TextEncodingDetectorICU.cpp:
343 * platform/text/TextEncodingDetectorNone.cpp:
345 2009-03-26 Simon Fraser <simon.fraser@apple.com>
347 Build fix when ACCELERATED_COMPOSITING is turned on.
349 * rendering/RenderLayerBacking.cpp:
350 (WebCore::RenderLayerBacking::canUseDirectCompositing):
352 2009-03-26 Eric Seidel <eric@webkit.org>
354 No additional review, committing previously reviewed files for build fix only.
356 Add files I missed when commiting Jungshik's patch in r42022.
357 https://bugs.webkit.org/show_bug.cgi?id=16482
359 * icu/unicode/ucsdet.h: Added.
360 * platform/text/TextEncodingDetector.h: Added.
361 * platform/text/TextEncodingDetectorICU.cpp: Added.
362 (WebCore::detectTextEncoding):
363 * platform/text/TextEncodingDetectorNone.cpp: Added.
364 (WebCore::detectTextEncoding):
366 2009-03-26 Jungshik Shin <jshin@chromium.org>
368 Reviewed by Alexey Proskuryakov.
370 Add an encoding detector 'hook' to TextResourceDecoder.
371 - add |usesEncodingDetector| to Settings. It's off by default.
372 - add a new encoding source type |EncodingFromParent|
373 to distinguish cases when the encoding is inherited from
374 the parent frame from cases when it's actually auto-detected.
375 - add TextEncodingDetector* to platform/text. Currently,
376 the only implementation uses ICU. Stub is added for
377 ports that do not use ICU and a build on Tiger. Mac OS
378 Tiger comes with ICU 3.2 that does not support encoding detector.
379 - add ucsdet.h to icu/unicode for ports using ICU.
381 Layout tests will be added once bug 20534 is fixed and a WebPreference
382 can be controlled in test_shell. With UsesEncodingDetector off, there
383 is no change to test.
385 http://bugs.webkit.org/show_bug.cgi?id=16482
387 * WebCore.vcproj/WebCore.vcproj:
388 * WebCore.xcodeproj/project.pbxproj:
389 * WebCore/GNUmakefile.am
390 * WebCore/WebCore.pro
391 * WebCore/WebCore.scons
392 * WebCore/WebCoreSources.bkl
394 * icu/unicode/ucsdet.h
395 * loader/FrameLoader.cpp:
396 (WebCore::FrameLoader::write): turn on/off encoding detector depending on Settings and set hintEncoding of TextResourceDecoder to the parent frame encoding if necessary and the security policy allows refering to the parent frame encoding.
397 * loader/TextResourceDecoder.cpp:
398 (WebCore::TextResourceDecoder::TextResourceDecoder):
399 (WebCore::TextResourceDecoder::checkForCSSCharset): add check for EncodingFromParentFrame
400 (WebCore::TextResourceDecoder::checkForHeadCharset): ditto
401 (WebCore::TextResourceDecoder::shouldAutoDetect):
402 (WebCore::TextResourceDecoder::decode): call encoding detector if shouldAutoDetect returns true.
403 (WebCore::TextResourceDecoder::flush): if encoding is not determined by now, call encoding detector if shouldAutoDetect returns true.
404 * loader/TextResourceDecoder.h:
405 (WebCore::TextResourceDecoder::):
406 (WebCore::TextResourceDecoder::create):
407 (WebCore::TextResourceDecoder::setHintEncoding):
408 (WebCore::TextResourceDecoder::source):
409 * page/Settings.cpp: add m_usesEncodingDetector
410 (WebCore::Settings::Settings):
411 (WebCore::Settings::setUsesEncodingDetector):
413 (WebCore::Settings::usesEncodingDetector):
414 * platform/text/TextEncodingDetector.h: Added.
415 * platform/text/TextEncodingDetectorICU.cpp: Added.
416 (WebCore::detectTextEncoding):
417 * platform/text/TextEncodingDetectorNone.cpp: Added.
418 (WebCore::detectTextEncoding):
420 2009-03-26 Darin Adler <darin@apple.com>
422 Reviewed by Geoff Garen.
424 Removed code that casts EventListener down to derived classes
425 without type checking. A crash could happen if you added event
426 listeners with Objective-C and then manipulated the class with
429 * bindings/js/JSDOMApplicationCacheCustom.cpp:
430 (WebCore::JSDOMApplicationCache::mark): Removed all the casts
431 and used the markIfNotNull function and mark functions on
432 EventListener instead.
433 * bindings/js/JSMessagePortCustom.cpp:
434 (WebCore::JSMessagePort::mark): Ditto.
435 * bindings/js/JSWorkerContextCustom.cpp:
436 (WebCore::JSWorkerContext::mark): Ditto.
437 * bindings/js/JSWorkerCustom.cpp:
438 (WebCore::JSWorker::mark): Ditto.
439 * bindings/js/JSXMLHttpRequestCustom.cpp:
440 (WebCore::JSXMLHttpRequest::mark): Ditto.
441 * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
442 (WebCore::JSXMLHttpRequestUpload::mark): Ditto.
444 * bindings/js/JSEventListener.cpp:
445 (WebCore::JSAbstractEventListener::handleEvent): Used function,
446 the new name for what used to be called listenerObj.
447 (WebCore::JSAbstractEventListener::virtualIsInline): Renamed since
448 this doesn't need to be virtual for callers who have a pointer to
449 this class, not the base class.
450 (WebCore::JSEventListener::function): Renamed from listenerObj.
451 (WebCore::JSProtectedEventListener::function): Ditto.
453 * bindings/js/JSEventListener.h: Removed unneeded forward class
454 declarations. Made all virtual functions private since there's no
455 need to call any of them on a particular derived class, only on
456 EventListener. Explicitly declare JSEventListener::mark as virtual
457 since it's now overriding a function in the EventListener base class.
458 Made JSProtectedEventListener::m_globalObject protected so the
459 JSLazyEventListener derived class can use it directly instead of using
460 a virtual function to get the pointer.
462 * bindings/js/JSLazyEventListener.cpp:
463 (WebCore::JSLazyEventListener::parseCode): Use m_globalObject instead
464 of globalObject since the latter is a virtual function and there's no
465 need to pay virtual function overhead.
466 (WebCore::JSLazyEventListener::function): Renamed from listenerObj.
468 * bindings/js/JSLazyEventListener.h: Moved forward declaration of the
469 Node class here from JSEventListener.h.
471 * bindings/scripts/CodeGeneratorJS.pm: Removed now-unneeded cast to
472 JSEventListener when getting the script object from a listener.
474 * dom/EventListener.h: Added virtual function and mark functions
475 so we can extract the JavaScript function object or mark a JavaScript
476 event listener in a type safe manner.
478 2009-03-26 Peter Kasting <pkasting@google.com>
480 Reviewed by Adele Peterson.
482 https://bugs.webkit.org/show_bug.cgi?id=24859
483 Use CSS file instead of code to adjust search field styling.
486 * rendering/RenderThemeWin.cpp:
487 * rendering/RenderThemeWin.h:
489 2009-03-26 Darin Adler <darin@apple.com>
491 Reviewed by Geoff Garen.
493 Split JSLazyEventListener out into its own separate source file.
494 We'll be removing JSAbstractEventListener and JSProtectedEventListener soon,
495 so leave those in the same file with JSEventListener.
497 * GNUmakefile.am: Added JSLazyEventListener.
498 * WebCore.pro: Ditto.
499 * WebCore.scons: Ditto.
500 * WebCore.vcproj/WebCore.vcproj: Ditto.
501 * WebCore.xcodeproj/project.pbxproj: Ditto.
502 * WebCoreSources.bkl: Ditto.
504 * bindings/js/JSEventListener.cpp: Removed the JSLazyEventListener part.
505 Removed unneeded includes. Removed incorrect ASSERT_CLASS_FITS_IN_CELL, since
506 JSAbstractEventListener is not derived from JSCell.
508 * bindings/js/JSEventListener.h: Removed the JSLazyEventListener part
509 and the now-unneeded include of PlatformString.h.
511 * bindings/js/JSLazyEventListener.cpp: Copied from bindings/js/JSEventListener.cpp.
512 Kept only the JSLazyEventListener part.
513 (WebCore::eventParameterName): Made this have internal linkage by adding "static".
514 Also moved the default case out of the switch statement so we will get a warning
515 if we omit any cases in the future.
517 * bindings/js/JSLazyEventListener.h: Copied from bindings/js/JSEventListener.h.
518 Kept only the JSLazyEventListener part.
520 * bindings/js/ScriptController.cpp: Removed unneeded includes and sorted the
521 remanining ones. Include JSLazyEventListener.h instead of JSEventListener.h.
523 2009-03-26 Darin Adler <darin@apple.com>
525 Reviewed by Geoff Garen.
527 Renamed JSUnprotectedEventListener to JSEventListener.
530 Soon Geoff will make all JavaScript event listeners use mark instead
531 of protect, so there's no need to emphasize "unprotected".
533 * bindings/js/JSDOMApplicationCacheCustom.cpp:
534 (WebCore::JSDOMApplicationCache::mark):
535 (WebCore::JSDOMApplicationCache::addEventListener):
536 (WebCore::JSDOMApplicationCache::removeEventListener):
537 * bindings/js/JSDOMGlobalObject.cpp:
538 (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
539 (WebCore::JSDOMGlobalObject::findJSEventListener):
540 (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
541 (WebCore::JSDOMGlobalObject::jsEventListeners):
542 (WebCore::JSDOMGlobalObject::jsInlineEventListeners):
543 * bindings/js/JSDOMGlobalObject.h:
544 * bindings/js/JSDOMWindowBase.h:
545 * bindings/js/JSEventListener.cpp:
546 (WebCore::JSEventListener::JSEventListener):
547 (WebCore::JSEventListener::~JSEventListener):
548 (WebCore::JSEventListener::listenerObj):
549 (WebCore::JSEventListener::globalObject):
550 (WebCore::JSEventListener::clearGlobalObject):
551 (WebCore::JSEventListener::mark):
552 * bindings/js/JSEventListener.h:
553 (WebCore::JSEventListener::create):
554 * bindings/js/JSMessagePortCustom.cpp:
555 (WebCore::JSMessagePort::mark):
556 (WebCore::JSMessagePort::addEventListener):
557 (WebCore::JSMessagePort::removeEventListener):
558 * bindings/js/JSWorkerContextCustom.cpp:
559 (WebCore::JSWorkerContext::mark):
560 (WebCore::JSWorkerContext::addEventListener):
561 (WebCore::JSWorkerContext::removeEventListener):
562 * bindings/js/JSWorkerCustom.cpp:
563 (WebCore::JSWorker::mark):
564 (WebCore::JSWorker::addEventListener):
565 (WebCore::JSWorker::removeEventListener):
566 * bindings/js/JSXMLHttpRequestCustom.cpp:
567 (WebCore::JSXMLHttpRequest::mark):
568 (WebCore::JSXMLHttpRequest::addEventListener):
569 (WebCore::JSXMLHttpRequest::removeEventListener):
570 * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
571 (WebCore::JSXMLHttpRequestUpload::mark):
572 (WebCore::JSXMLHttpRequestUpload::addEventListener):
573 (WebCore::JSXMLHttpRequestUpload::removeEventListener):
574 * bindings/scripts/CodeGeneratorJS.pm:
577 2009-03-26 Darin Adler <darin@apple.com>
579 Reviewed by Geoff Garen.
581 Renamed JSEventListener to JSProtectedEventListener.
584 Soon Geoff will make all JavaScript event listeners use mark instead
585 of protect, and so this class will be be obsolete. We will rename
586 JSUnrpotectedEventListener to JSEventListener in the next check-in,
587 since that one will remain.
589 * bindings/js/JSDOMGlobalObject.cpp:
590 (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
591 (WebCore::JSDOMGlobalObject::findJSProtectedEventListener):
592 (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener):
593 (WebCore::JSDOMGlobalObject::jsProtectedEventListeners):
594 (WebCore::JSDOMGlobalObject::jsProtectedInlineEventListeners):
595 * bindings/js/JSDOMGlobalObject.h:
596 * bindings/js/JSDOMWindowBase.h:
597 * bindings/js/JSDOMWindowCustom.cpp:
598 (WebCore::JSDOMWindow::addEventListener):
599 (WebCore::JSDOMWindow::removeEventListener):
600 * bindings/js/JSEventListener.cpp:
601 (WebCore::JSProtectedEventListener::JSProtectedEventListener):
602 (WebCore::JSProtectedEventListener::~JSProtectedEventListener):
603 (WebCore::JSProtectedEventListener::listenerObj):
604 (WebCore::JSProtectedEventListener::globalObject):
605 (WebCore::JSProtectedEventListener::clearGlobalObject):
606 (WebCore::JSLazyEventListener::JSLazyEventListener):
607 (WebCore::JSLazyEventListener::parseCode):
608 * bindings/js/JSEventListener.h:
609 (WebCore::JSProtectedEventListener::create):
610 * bindings/js/JSNodeCustom.cpp:
611 (WebCore::JSNode::addEventListener):
612 (WebCore::JSNode::removeEventListener):
613 * bindings/js/JSSVGElementInstanceCustom.cpp:
614 (WebCore::JSSVGElementInstance::addEventListener):
615 (WebCore::JSSVGElementInstance::removeEventListener):
616 * bindings/scripts/CodeGeneratorJS.pm:
619 2009-03-26 Dan Bernstein <mitz@apple.com>
621 Reviewed by Anders Carlsson.
623 - fix <rdar://problem/6725042> BidiResolver::createBidiRunsForLine can
624 create runs extending beyond the end
626 No test because Safari does not use this version of
627 createBidiRunsForLine() with the end iterator not pointing to the end
630 * platform/text/BidiResolver.h:
631 (WebCore::BidiResolver::appendRun): Cap the end of the run at the end
632 of the line and set the reachedEndOfLine flag. This mirrors the logic
633 in the specialized version of appendRun() in bidi.cpp, which is why the
634 problem did not show up in HTML. Also avoid creating empty runs.
636 2009-03-26 Simon Fraser <simon.fraser@apple.com>
638 Reviewed by Dave Hyatt
640 https://bugs.webkit.org/show_bug.cgi?id=24864
642 Change the terminology from "inner content layer" to "direct compositing"
643 for cases where we can push an image directly over to the compositing system,
644 without having to draw it.
646 Clean up much of the code which looks at style to determine if this is possible,
647 and fix some bugs when backgrounds change dynamically.
649 * rendering/RenderLayerBacking.cpp:
650 (WebCore::hasBorderOutlineOrShadow):
651 (WebCore::hasBoxDecorations):
652 (WebCore::hasBoxDecorationsWithBackgroundImage):
653 (WebCore::RenderLayerBacking::canBeSimpleContainerCompositingLayer):
654 (WebCore::RenderLayerBacking::canUseDirectCompositing):
655 (WebCore::RenderLayerBacking::detectDrawingOptimizations):
656 (WebCore::RenderLayerBacking::rendererContentChanged):
657 (WebCore::RenderLayerBacking::updateImageContents):
658 * rendering/RenderLayerBacking.h:
660 2009-03-26 Simon Fraser <simon.fraser@apple.com>
662 Reviewed by Dave Hyatt
664 https://bugs.webkit.org/show_bug.cgi?id=23914
666 Tests: compositing/overflow/ancestor-overflow.html
667 compositing/overflow/parent-overflow.html
669 * rendering/RenderLayer.cpp:
670 (WebCore::RenderLayer::calculateClipRects):
671 * rendering/RenderLayer.h:
672 (WebCore::ClipRects::infiniteRect):
673 New static method that returns a large rect that is used by the clipping
676 * rendering/RenderLayerBacking.cpp:
677 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
678 Use parentClipRects(), rather than calculateRects(), to compute the overflow
679 rect that we'll use to create a masking layer for composited clipping.
681 * rendering/RenderLayerCompositor.cpp:
682 (WebCore::RenderLayerCompositor::clippedByAncestor):
683 Use parentClipRects() to see whether there's a layer between us and our
684 compositing ancestor which applies clipping.
686 (WebCore::RenderLayerCompositor::clipsCompositingDescendants):
687 A layer which imposes clipping to its children doesn't have to be a stacking
688 context; it might be a normal flow layer; in either case, we can rely on the
689 hasCompositingDescendant() bit.
691 2009-03-26 Steve Falkenburg <sfalken@apple.com>
693 https://bugs.webkit.org/show_bug.cgi?id=24837
694 Escape key should dismiss select menu
696 Reviewed by Adam Roben.
698 * platform/win/PopupMenuWin.cpp:
699 (WebCore::PopupWndProc):
701 2009-03-26 Kevin Ollivier <kevino@theolliviers.com>
703 Reviewed by Alexey Proskuryakov.
705 Make sure the script uses LF line endings even on Windows.
707 https://bugs.webkit.org/show_bug.cgi?id=24805
709 * WebCore/make-generated-sources.sh: Change svn:eol-style to LF
711 2009-03-26 Eli Fidler <eli.fidler@torchmobile.com>
713 Reviewed by George Staikos.
715 Remove warnings all over the place by making operator precedence
716 explicit in cases like x && y || z. No functional change.
718 * css/CSSFontSelector.cpp:
719 (WebCore::CSSFontSelector::addFontFaceRule):
721 (WebCore::CSSParser::parseValue):
722 (WebCore::CSSParser::parseShadow):
724 (WebCore::Document::shouldScheduleLayout):
726 (WebCore::Node::isBlockFlowOrBlockTable):
728 (WebCore::Node::document):
730 (WebCore::Position::next):
731 (WebCore::Position::upstream):
732 (WebCore::Position::downstream):
733 (WebCore::Position::getInlineBoxAndOffset):
734 * dom/PositionIterator.cpp:
735 (WebCore::PositionIterator::atStart):
737 (WebCore::Range::intersectsNode):
738 * editing/Editor.cpp:
739 (WebCore::Editor::setBaseWritingDirection):
740 * editing/InsertParagraphSeparatorCommand.cpp:
741 (WebCore::InsertParagraphSeparatorCommand::doApply):
742 * editing/ReplaceSelectionCommand.cpp:
743 (WebCore::ReplaceSelectionCommand::doApply):
744 * editing/TextIterator.cpp:
745 (WebCore::TextIterator::advance):
746 (WebCore::SimplifiedBackwardsTextIterator::advance):
747 * editing/VisiblePosition.cpp:
748 (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
749 (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
750 (WebCore::VisiblePosition::canonicalPosition):
751 * editing/htmlediting.cpp:
752 (WebCore::isMailBlockquote):
753 (WebCore::lineBreakExistsAtPosition):
754 * html/HTMLSelectElement.cpp:
755 (WebCore::HTMLSelectElement::parseMappedAttribute):
756 * loader/FTPDirectoryDocument.cpp:
757 (WebCore::processFileDateString):
758 * loader/ImageLoader.cpp:
759 (WebCore::ImageLoader::updateFromElement):
760 * loader/TextResourceDecoder.cpp:
761 (WebCore::TextResourceDecoder::checkForHeadCharset):
762 * page/AccessibilityObject.cpp:
763 (WebCore::updateAXLineStartForVisiblePosition):
764 * page/EventHandler.cpp:
765 (WebCore::EventHandler::sendContextMenuEvent):
766 * page/animation/AnimationBase.cpp:
767 (WebCore::PropertyWrapperGetter::equals):
768 (WebCore::PropertyWrapperShadow::equals):
769 * platform/ContextMenu.cpp:
770 (WebCore::ContextMenu::populate):
771 * platform/ScrollView.cpp:
772 (WebCore::ScrollView::adjustScrollbarsAvoidingResizerCount):
773 * platform/text/Base64.cpp:
774 (WebCore::base64Encode):
775 * platform/text/BidiResolver.h:
776 (WebCore::::raiseExplicitEmbeddingLevel):
777 (WebCore::::createBidiRunsForLine):
778 * rendering/InlineTextBox.cpp:
779 (WebCore::InlineTextBox::placeEllipsisBox):
780 * rendering/RenderBlock.cpp:
781 (WebCore::RenderBlock::addChild):
782 (WebCore::RenderBlock::repaintOverhangingFloats):
783 (WebCore::RenderBlock::fillInlineSelectionGaps):
784 (WebCore::RenderBlock::positionForPoint):
785 (WebCore::RenderBlock::calcInlinePrefWidths):
786 (WebCore::RenderBlock::hasLineIfEmpty):
787 * rendering/RenderBox.cpp:
788 (WebCore::RenderBox::imageChanged):
789 (WebCore::RenderBox::localCaretRect):
790 (WebCore::RenderBox::positionForPoint):
791 (WebCore::RenderBox::shrinkToAvoidFloats):
792 * rendering/RenderObject.h:
793 (WebCore::objectIsRelayoutBoundary):
794 * rendering/RenderTableCell.cpp:
795 (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
796 * rendering/RenderText.cpp:
797 (WebCore::RenderText::calcPrefWidths):
798 * rendering/bidi.cpp:
799 (WebCore::RenderBlock::determineStartPosition):
800 (WebCore::textWidth):
801 * rendering/style/RenderStyle.cpp:
802 (WebCore::RenderStyle::diff):
803 * rendering/style/StyleInheritedData.cpp:
804 (WebCore::cursorDataEquivalent):
805 * rendering/style/StyleRareInheritedData.cpp:
806 (WebCore::StyleRareInheritedData::shadowDataEquivalent):
807 * rendering/style/StyleRareNonInheritedData.cpp:
808 (WebCore::StyleRareNonInheritedData::shadowDataEquivalent):
809 (WebCore::StyleRareNonInheritedData::animationDataEquivalent):
810 (WebCore::StyleRareNonInheritedData::transitionDataEquivalent):
812 2009-03-26 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
814 Reviewed by Holger Freyther.
816 https://bugs.webkit.org/show_bug.cgi?id=24804
817 [GTK] 401 responses cause rogue content to be loaded
819 Our soup code handles 401 responses itself, so we should not feed
820 the headers and data of those responses to the loader.
822 * platform/network/soup/ResourceHandleSoup.cpp:
823 (WebCore::gotHeadersCallback):
824 (WebCore::gotChunkCallback):
826 2009-03-25 Geoffrey Garen <ggaren@apple.com>
828 Reviewed by Oliver Hunt and Darin Adler.
830 Fixed <rdar://problem/6603167> Crash in WebKit!JSC::JSGlobalObject::resetPrototype
831 during Stress test (#3 & #7 WER crashes for Safari 4 Beta)
833 The problem was that allocation of the global object would, for just a
834 moment, leave the global object's prototype unprotected from GC. This
835 bug doesn't apply to non-global DOM objects because their prototypes are
836 cached and marked by the global object.
838 No test case because the crashing condition is hard to deterministically
839 produce in a normal build, and in a Windows Release build with
840 COLLECT_ON_EVERY_ALLOCATION set to 1, existing tests crash/hang.
842 * bindings/js/JSDOMWindowShell.cpp:
843 (WebCore::JSDOMWindowShell::setWindow):
844 * bindings/js/WorkerScriptController.cpp:
845 (WebCore::WorkerScriptController::initScript): Protect the global object's
846 prototype from GC during construction, since the global object does not
847 yet point to it, and therefore won't mark it.
849 2009-03-25 Dean Jackson <dino@apple.com>
851 Reviewed by Simon Fraser
853 https://bugs.webkit.org/show_bug.cgi?id=23361
855 When using hardware compositing, some images can be directly
856 rendered by the hardware - no need to draw them into a separate
857 context, therefore saving memory.
858 Only images with certain style properties can be directly
859 composited - basically anything that is not a simple image requires
860 the usual rendering path (eg. if the image has borders).
862 Test: compositing/direct-image-compositing.html
864 * manual-tests/resources/simple_image.png: Added.
865 * manual-tests/simple-image-compositing.html: Added.
866 * platform/graphics/Image.h:
867 (WebCore::Image::startAnimation):
868 - move this to public
869 * rendering/RenderImage.cpp:
870 (WebCore::RenderImage::imageChanged):
871 - poke compositing layer if image has changed
872 (WebCore::RenderImage::notifyFinished):
873 - let the compositing layer know that it can render the image
874 * rendering/RenderImage.h:
875 * rendering/RenderLayer.cpp:
876 (WebCore::RenderLayer::rendererContentChanged):
877 * rendering/RenderLayer.h:
878 * rendering/RenderLayerBacking.cpp:
879 (WebCore::RenderLayerBacking::canUseInnerContentLayer):
880 (WebCore::RenderLayerBacking::detectDrawingOptimizations):
881 (WebCore::RenderLayerBacking::rendererContentChanged):
882 * rendering/RenderLayerBacking.h:
883 - code to hook up direct compositing of images where
886 2009-03-25 David Levin <levin@chromium.org>
888 Reviewed by Dimitri Glazkov.
890 Chromium build fix. Fix #include in V8NodeFilterCondition.cpp due to the
891 rename of V8NodeFilter to V8NodeFilterCondition.
893 * bindings/v8/V8NodeFilterCondition.cpp:
895 2009-03-25 Simon Fraser <simon.fraser@apple.com>
897 Reviewed by Darin Adler
899 https://bugs.webkit.org/show_bug.cgi?id=24817
901 When the slider range is zero, avoid a divide by zero, which caused the
902 thumb to be positioned off in the weeds, which broke painting.
904 Test: media/video-empty-source.html
906 * rendering/RenderSlider.cpp:
907 (WebCore::SliderRange::proportionFromValue):
908 (WebCore::SliderRange::valueFromProportion):
909 (WebCore::sliderPosition):
910 (WebCore::RenderSlider::setValueForPosition):
912 2009-03-24 Eric Seidel <eric@webkit.org>
914 Reviewed by Darin Adler.
916 Remove dead code and style cleanup
917 https://bugs.webkit.org/show_bug.cgi?id=24684
919 * html/CanvasStyle.cpp:
920 (WebCore::CanvasStyle::CanvasStyle):
921 Coverty was annoyed that we didn't initialize all of our members. I agree, but I didn't
922 want to paste all 8 members each time, so I just cleaned up the existing constructors and left them.
923 * page/FocusController.cpp:
924 (WebCore::FocusController::setFocusedNode):
925 "node" was checked just above and is already known to be non-null
926 * rendering/RenderLayer.cpp:
927 (WebCore::RenderLayer::insertOnlyThisLayer):
928 We were already using parentLayer w/o a NULL check above, so just add an explicit ASSERT and use it w/o NULL check
929 (WebCore::RenderLayer::resize):
930 element is already ASSERTed above, no need to null check it here
931 * rendering/RenderTableSection.cpp:
932 (WebCore::RenderTableSection::addCell):
933 currentCell.cell was just assigned to the value "cell" which is known to be non-null, no need to null check again.
935 2009-03-24 Eric Seidel <eric@webkit.org>
937 Reviewed by Darin Adler.
939 Move ASSERT(foo) to before where foo-> is used
940 https://bugs.webkit.org/show_bug.cgi?id=24684
942 * platform/chromium/PasteboardChromium.cpp:
943 (WebCore::Pasteboard::writeImage):
944 Move ASSERTs to the top of the function, code was using "node" before ASSERT(node), once I moved
945 ASSERT(node) to the top of the function it made sense to move the rest of them there too.
946 * rendering/SVGRenderSupport.cpp:
947 (WebCore::prepareToRenderSVGContent):
948 move ASSERT(object) to *before* we use "object" :)
950 2009-03-24 Eric Seidel <eric@webkit.org>
952 Reviewed by Simon Fraser.
954 Make TextTokenizer ASSERT that the buffer was freed
955 https://bugs.webkit.org/show_bug.cgi?id=24684
957 * loader/TextDocument.cpp:
958 (WebCore::TextTokenizer::TextTokenizer):
959 (WebCore::TextTokenizer::~TextTokenizer):
960 (WebCore::TextTokenizer::finish):
961 Make it clear by adding a ~TextTokenizer that finish() will always be called and the memory never leaked.
963 2009-03-24 Eric Seidel <eric@webkit.org>
965 Reviewed by Darin Adler.
967 Fix case where lBreak.obj->isBR() when lBreak.obj was NULL
968 https://bugs.webkit.org/show_bug.cgi?id=24684
970 I don't have a test case where we were taking the wrong path here
971 However, adding an ASSERT(lBreak.obj) before this usage caused
972 multiple bidi tests to fail, so lBreak.obj can be null here.
974 * rendering/bidi.cpp:
975 (WebCore::RenderBlock::findNextLineBreak):
976 lBreak.obj can be null, so we can't call ->isBR() on it unconditionally.
978 2009-03-24 Eric Seidel <eric@webkit.org>
980 Reviewed by Simon Fraser.
982 Style cleanup and dead code removal in dom, editing
983 https://bugs.webkit.org/show_bug.cgi?id=24684
985 * dom/ContainerNode.cpp:
986 (WebCore::ContainerNode::getUpperLeftCorner):
987 (WebCore::ContainerNode::getLowerRightCorner):
988 (WebCore::ContainerNode::getRect):
989 Coverty was (rightly) confused as to what the hell "o" was being used for
990 and whether or not it would ever be NULL. I added some ASSERTS so that people (and machines)
991 would be less confused about the logic in getUpperLeftCorner/getLowerRightCorner
993 (WebCore::Document::recalcStyle):
994 Remove dead code, this block already checked that change == Force
995 * editing/ApplyStyleCommand.cpp:
996 (WebCore::ApplyStyleCommand::removeInlineStyle):
997 Coverty correctly identified that traversePreviousNodePostOrder can return NULL, thus
998 prev will be null, and we don't really explicitly handle it (like we probably should)
999 It's OK though, because we end up creating a null position object, which may not have
1000 been what we intended, but we certainly don't crash.
1001 * editing/InsertParagraphSeparatorCommand.cpp:
1002 (WebCore::InsertParagraphSeparatorCommand::doApply):
1003 Remove dead code, insertionPosition.node() is already checked to be non-null above.
1004 * editing/markup.cpp:
1005 (WebCore::appendStartMarkup):
1006 removed dead code, annotate is already known to be true at this point in the file
1007 !annotate was checked above, and break; was called.
1009 2009-03-24 Eric Seidel <eric@webkit.org>
1011 Reviewed by Simon Fraser.
1013 CSS dead code removal and cleanup from Coverty errors
1014 https://bugs.webkit.org/show_bug.cgi?id=24684
1016 * css/CSSStyleSelector.cpp:
1017 (WebCore::CSSStyleSelector::applyProperty):
1018 Every other place in the code we check settings() for NULL, so I made these places
1019 check too, even though we should never be resolving style against a document which has
1020 no frame (which I believe is the only time settings() can be null)
1021 * css/CSSStyleSheet.cpp:
1022 (WebCore::CSSStyleSheet::styleSheetChanged):
1023 Removing dead code, "root" can never be null here.
1024 * css/SVGCSSStyleSelector.cpp:
1025 (WebCore::colorFromSVGColorCSSValue):
1026 (WebCore::CSSStyleSelector::applySVGProperty):
1027 Extra returns in the old macros caused dead code. Removing the old macros and use modern
1029 Extra null checks to value were not needed. Added an ASSERT at the top of the function
1030 to make it clear that value will never be NULL.
1031 Added colorFromSVGColorCSSValue to clean up the code a little.
1033 2009-03-24 Eric Seidel <eric@webkit.org>
1035 Reviewed by Simon Fraser.
1037 Font fallback cleanup and added ASSERT for GlyphPageTreeNode
1038 https://bugs.webkit.org/show_bug.cgi?id=24684
1040 * css/CSSFontSelector.cpp:
1041 (WebCore::compareFontFaces):
1042 Coverty was concerned that it was possible to index off the end of weightFallbackRuleSets
1043 I can't read the code well enough to tell, so I tried to make the code clearer
1044 and added an ASSERT.
1045 * platform/graphics/GlyphPageTreeNode.cpp:
1046 (WebCore::GlyphPageTreeNode::initializePage):
1047 Coverty believes we can crash here due to j being larger than GlyphPage::size. I think to is already
1048 known to be < GlyphPage::size due to the min() statement above, but not being sure I added an ASSERT.
1050 2009-03-24 Eric Seidel <eric@webkit.org>
1052 Reviewed by Simon Fraser.
1054 Coverty inspired fixes in Animations/Transforms
1055 https://bugs.webkit.org/show_bug.cgi?id=24684
1057 * page/animation/AnimationBase.h:
1058 Fix animate() signatures to match so that the virtual methods actually override one another. :)
1059 * page/animation/AnimationController.cpp:
1060 (WebCore::AnimationControllerPrivate::removeFromStartTimeResponseWaitList):
1061 Attempt to fix this method, prevAnimation was never set to anything but NULL,
1062 as far as I can tell the author originally intended to update it at the end
1063 of the loop, which is what I changed this code to do.
1064 * page/animation/ImplicitAnimation.cpp:
1065 (WebCore::ImplicitAnimation::animate):
1066 Make method signature match AnimationBase::animate
1067 * page/animation/ImplicitAnimation.h:
1068 * page/animation/KeyframeAnimation.cpp:
1069 (WebCore::KeyframeAnimation::animate):
1070 Make method signature match AnimationBase::animate
1071 * page/animation/KeyframeAnimation.h:
1072 * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
1073 (WebCore::PerspectiveTransformOperation::blend):
1074 if (blendToIdentity) already returned above.
1075 * platform/graphics/transforms/RotateTransformOperation.cpp:
1076 (WebCore::RotateTransformOperation::blend):
1077 if (blendToIdentity) already returned above.
1079 2009-03-25 Eli Fidler <eli.fidler@torchmobile.com>
1081 Reviewed by George Staikos.
1083 Fix compiler warnings regarding assignments in if statements.
1085 * html/HTMLFormElement.cpp:
1086 (WebCore::HTMLFormElement::createFormData):
1087 * plugins/PluginPackage.cpp:
1088 (WebCore::PluginPackage::compare):
1090 2009-03-25 Dan Bernstein <mitz@apple.com>
1092 Reviewed by Dave Hyatt.
1094 - fix <rdar://problem/6472150> repro crash in
1095 RenderBlock::rightmostPosition(bool, bool) const at mercotte.fr using
1098 Test: fast/inline/continuation-positioned-reparenting.html
1100 * rendering/RenderInline.cpp:
1101 (WebCore::RenderInline::splitFlow): When repurposing the existing
1102 container as the "pre" block, clear its positioned objects list, because
1103 positioned descendants may end up in a different block after the split.
1105 2009-03-24 Simon Fraser <simon.fraser@apple.com>
1107 Reviewed by Dave Hyatt
1109 https://bugs.webkit.org/show_bug.cgi?id=24784
1111 Length values in transform operations need to take zoom into account.
1113 Test: fast/transforms/transforms-with-zoom.html
1115 * css/CSSStyleSelector.cpp:
1116 (WebCore::CSSStyleSelector::createTransformOperations):
1118 2009-03-25 David Hyatt <hyatt@apple.com>
1120 Reviewed by Simon Fraser.
1122 https://bugs.webkit.org/show_bug.cgi?id=24809, background-clip/origin don't use the correct
1123 values. Add support for the new values (while preserving the old values for backwards
1126 Changed some existing test cases to use the new values.
1128 * css/CSSParser.cpp:
1129 (WebCore::CSSParser::parseFillProperty):
1130 * css/CSSPrimitiveValueMappings.h:
1131 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1132 (WebCore::CSSPrimitiveValue::operator EFillBox):
1133 * css/CSSValueKeywords.in:
1135 2009-03-25 Brett Wilson <brettw@dhcp-172-22-71-191.mtv.corp.google.com>
1137 Reviewed by Dimitri Glazkov.
1139 Fix complex text opacity on the Chromium Windows port.
1140 https://bugs.webkit.org/show_bug.cgi?id=24757
1142 Test: fast/text/complex-text-opacity.html
1144 * platform/graphics/chromium/FontChromiumWin.cpp:
1146 (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::TransparencyAwareFontPainter):
1147 (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::init):
1148 (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI):
1149 (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
1150 (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::TransparencyAwareGlyphPainter):
1151 (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::~TransparencyAwareGlyphPainter):
1152 (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::estimateTextBounds):
1153 (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
1154 (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::hdc):
1155 (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::TransparencyAwareUniscribePainter):
1156 (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::~TransparencyAwareUniscribePainter):
1157 (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds):
1158 (WebCore::Font::drawGlyphs):
1159 (WebCore::Font::drawComplexText):
1161 2009-03-25 David Hyatt <hyatt@apple.com>
1163 Reviewed by Eric Seidel
1165 Fix for bug 23198, border images should not clip to border radii. The border-image should just ignore
1166 the border-radius, since the assumption is that any desired rounding will be built into the border-image
1169 Note that I do not agree with this change, but I am matching the spec.
1171 Added fast/borders/border-image-border-radius.html
1173 * rendering/RenderBoxModelObject.cpp:
1174 (WebCore::RenderBoxModelObject::paintNinePieceImage):
1176 2009-03-25 Gustavo Noronha Silva <gns@gnome.org>
1178 Reviewed by Holger Freyther.
1180 https://bugs.webkit.org/show_bug.cgi?id=24750
1181 [GTK] requests download instead of displaying page
1183 Fix the Content-Type headers we get from soup, so that we set a
1184 proper media type on the ResourceResponse.
1186 * platform/network/soup/ResourceHandleSoup.cpp:
1187 (WebCore::fillResponseFromMessage):
1189 2009-03-25 Gustavo Noronha Silva <gns@gnome.org>
1191 Reviewed by Holger Freyther.
1193 https://bugs.webkit.org/show_bug.cgi?id=24600
1194 [GTK] responses with status code >= 400 should not be given special treatment
1196 Do not special case requests that have HTTP responses >=
1197 400. Redirects are handled automatically by libsoup, but the rest
1198 of the responses should be treated like any other.
1200 * platform/network/soup/ResourceHandleSoup.cpp:
1202 (WebCore::gotHeadersCallback):
1203 (WebCore::gotChunkCallback):
1204 (WebCore::finishedCallback):
1206 2009-03-25 Darin Adler <darin@apple.com>
1208 Reviewed by John Sullivan.
1210 Tidy up LegacyWebArchive a bit. And don't include favicons in web archives when
1211 they are being used only for selections, not an entire document.
1213 * WebCore.base.exp: Remove exported function that's not used in WebKit.
1215 * loader/archive/cf/LegacyWebArchive.cpp:
1216 (WebCore::LegacyWebArchive::createPropertyListRepresentation): Made a static member
1217 function so it can share private things with other member functions. Added some FIXME
1218 comments to a branch of code I think is dead. Changed boolean argument into a named
1219 one. Renamed to match other similar functions.
1220 (WebCore::LegacyWebArchive::createResourceResponseFromPropertyListData): Ditto.
1221 (WebCore::LegacyWebArchive::createResource): Ditto.
1222 (WebCore::LegacyWebArchive::create): Merged the create and init functions.
1223 (WebCore::LegacyWebArchive::rawDataRepresentation): Added some assertions because
1224 we should never fail to write (we can fail to read).
1225 (WebCore::LegacyWebArchive::createResourceResponseFromMacArchivedData): Made a static
1226 member function as above.
1227 (WebCore::LegacyWebArchive::createFromSelection): Ditto.
1228 (WebCore::LegacyWebArchive::create): Iterate the vector with indices rather than
1229 iterators. Only include the favicon if the first node is the document since we don't
1230 want to include the favicon when copying and pasting.
1232 * loader/archive/cf/LegacyWebArchive.h: Made one of the create functions private.
1233 Made the Mac-specific functions be static member functions. Made other helpers be
1234 static member functions. Removed the nit function.
1236 * loader/archive/cf/LegacyWebArchiveMac.mm:
1237 (WebCore::LegacyWebArchive::createResourceResponseFromMacArchivedData): Updated
1238 comment and made this a static member function.
1239 (WebCore::LegacyWebArchive::createPropertyListRepresentation): Ditto. Also made
1240 it so we only type cast in one place.
1242 2009-03-25 Darin Adler <darin@apple.com>
1244 Reviewed by David Hyatt.
1246 Bug 24740: crash in RenderSlider::setPositionFromValue when calling pause() after setting <video> to display: none
1247 https://bugs.webkit.org/show_bug.cgi?id=24740
1248 rdar://problem/6679873
1250 Bug 12104: Native Slider: When the thumb's height is specified as a percentage, it is not centered properly
1251 https://bugs.webkit.org/show_bug.cgi?id=12104
1253 Test: media/video-display-none-crash.html
1255 The problem here was that RenderSlider was trying to position its thumb in a way that
1256 requires it to call updateLayout inside rendering code. The right way to position a
1257 child renderer is to do layout, so I had to write a layout function. And then fix a few
1258 other small problems shown by the same test case.
1260 * rendering/RenderSlider.cpp: Made defaultTrackLength have internal linkage.
1261 Renamed HTMLSliderThumbElement to SliderThumbElement because we only use the HTML
1262 prefix for public DOM classes, not elements used as implementation details.
1263 Made SliderThumbElement function members private and got rid of unneeded default
1264 argument value for shadowParent.
1265 (WebCore::SliderRange::SliderRange): Added. Parses precision, max, and min attributes.
1266 (WebCore::SliderRange::clampValue): Added. Does standard clamping based on the above.
1267 (WebCore::SliderRange::valueFromElement): Added. Reads the value from the element in
1268 a way that clamps to the range.
1269 (WebCore::sliderPosition): Added. Computes the slider position: a double.
1270 (WebCore::SliderThumbElement::SliderThumbElement): Removed unneeded explicit
1271 initialization of m_initialClickPoint.
1272 (WebCore::SliderThumbElement::defaultEventHandler): Call setValueForPosition instead
1273 of calling setCurrentPosition and valueChanged.
1274 (WebCore::RenderSlider::RenderSlider): Remove unneeded explicit initialization of m_thumb.
1275 (WebCore::RenderSlider::styleDidChange): Remove unneeded second argument to createThumbStyle.
1276 (WebCore::RenderSlider::createThumbStyle): Remove unneeded second argument. Get rid of code
1277 setting the position to relative and setting the left and top. We now handle positioning
1278 in a custom layout function.
1279 (WebCore::RenderSlider::layout): Rewrote to handle positioning of the thumb as layout.
1280 (WebCore::RenderSlider::updateFromElement): Added code to immediately update the value
1281 in the element if it's out of range. This clamping used to be done as a side effect of
1282 setPositionFromValue. Also, this has nothing to do with the renderer, so at some point
1283 it could be moved into HTMLInputElement. Removed call to setPositionFromValue
1284 and instead just rely on the call to setNeedsLayout. Fix the setNeedsLayout call to be
1285 a normal setNeedsLayout(true), not a setNeedsLayout(true, false), because we do want
1286 this to be propagated to the parent -- it's not called during layout.
1287 (WebCore::RenderSlider::setValueForPosition): Refactor to use the new SliderRange
1288 class. Also don't call setCurrentPosition; instead just call setNeedsLayout.
1289 (WebCore::RenderSlider::currentPosition): Use the actual position of the renderer rather
1290 than the style to find the position; that means this needs to be done after layout is done.
1291 Also removed unneeded runtime checks and replaced them with assertions, after checking
1292 all callers to see they already guarantee this.
1293 (WebCore::RenderSlider::trackSize): Removed unneeded runtime checks and replaced them
1294 with assertions, after checking all callers to see they already guarantee this.
1295 (WebCore::RenderSlider::inDragMode): Added a null check for m_thumb so this won't
1296 crash if called early on a brand new RenderSlider.
1298 * rendering/RenderSlider.h: Made all functions private except for forwardEvent and inDragMode.
1299 Renamed HTMLSliderThumbElement to SliderThumbElement because we only use the HTML
1300 prefix for public DOM classes, not elements used as implementation details. Made the
1301 mouseEventIsInThumb function non-virtual. Removed the return value and argument from
1302 setPositionFromValue. Removed valueChanged and setCurrentPosition. Removed the oldStyle
1303 argument to createThumbStyle (see above). Made SliderThumbElement a friend so it can use some
1304 private member functions.
1306 2009-03-25 Eli Fidler <eli.fidler@torchmobile.com>
1308 Reviewed by George Staikos.
1310 Fix ambiguous else cases by adding braces to nested if()s with elses.
1312 * loader/MainResourceLoader.cpp:
1313 (WebCore::MainResourceLoader::continueAfterContentPolicy):
1314 * page/EventHandler.cpp:
1315 (WebCore::EventHandler::updateDragAndDrop):
1316 * rendering/RenderListMarker.cpp:
1317 (WebCore::toArmenianUnder10000):
1318 * rendering/TextControlInnerElements.cpp:
1319 (WebCore::TextControlInnerTextElement::defaultEventHandler):
1321 2009-03-24 Eli Fidler <eli.fidler@torchmobile.com>
1323 Reviewed by George Staikos.
1325 Move variable into proper platform block to quiet warning.
1327 * html/CanvasRenderingContext2D.cpp:
1328 (WebCore::CanvasRenderingContext2D::drawTextInternal):
1330 2009-03-24 Eric Carlson <eric.carlson@apple.com>
1332 Reviewed by Antti Koivisto.
1334 Fix for <rdar://problem/6719375> Deal with QTKit loadstate changes when playing streaming movies
1336 * WebCore/html/HTMLMediaElement.cpp:
1337 (WebCore::HTMLMediaElement::setNetworkState): Deal with media engine reviving after having
1338 network state of NETWORK_NO_SOURCE.
1340 * WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1341 (WebCore::MediaPlayerPrivate::updateStates): Reset m_readyState at each state change since
1342 some types of movies currently cause QTKit's load state to bounce around. QTMovieLoadStatePlaythroughOK
1343 corresponds to HaveFutureData, not HaveEnoughData.
1345 2009-03-24 Adele Peterson <adele@apple.com>
1347 Reviewed by Darin Adler.
1349 Fix for https://bugs.webkit.org/show_bug.cgi?id=24707
1350 <rdar://problem/6593021> Deleting with a caret in a blank, quoted line decreases the quoting, but does not delete the line
1352 * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed):
1353 After breaking out of an empty mail blockquote, we still want continue with the deletion
1354 so actual content will get deleted, and not just the quote style.
1356 2009-03-24 Darin Adler <darin@apple.com>
1358 Reviewed by Brady Eidson.
1360 <rdar://problem/6624662> REGRESSION (r39904): can't save certain web pages as web archive (ones without favicons!)
1362 * loader/archive/cf/LegacyWebArchive.cpp:
1363 (WebCore::LegacyWebArchive::create): Added a null check.
1365 2009-03-24 Adam Langley <agl@google.com>
1367 Reviewed by Darin Fisher.
1369 https://bugs.webkit.org/show_bug.cgi?id=24685
1371 The Skia drawLine function takes subpixel values and attempts to draw
1372 a line with subpixel precision. This is complex and slow for drawing
1373 scrollbars which use only vertical and horizontal lines.
1375 This changes the Chromium Linux scrollbar code to use drawIRect.
1377 * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
1378 (WebCore::ScrollbarThemeChromium::invalidateOnMouseEnterExit):
1379 (WebCore::drawVertLine):
1380 (WebCore::drawHorizLine):
1382 (WebCore::ScrollbarThemeChromium::paintTrackPiece):
1383 (WebCore::ScrollbarThemeChromium::paintThumb):
1385 2009-03-24 David Kilzer <ddkilzer@apple.com>
1387 Bug 23310: Setting an absolute path (/abs) on an <iframe> with no src doesn't resolve the URL properly
1389 <https://bugs.webkit.org/show_bug.cgi?id=23310>
1391 Reviewed by Darin Adler.
1393 Test: fast/frames/iframe-no-src-set-location.html
1396 (WebCore::Document::completeURL): If m_baseURL is empty or is
1397 about:blank and we have a parent document, use the parent
1398 document's URL for the base when completing a new URL.
1400 2009-03-24 Simon Fraser <simon.fraser@apple.com>
1402 Reviewed by Dave Hyatt
1404 https://bugs.webkit.org/show_bug.cgi?id=24659
1406 When hit-testing 3d-transformed layers, it doesn't make sense to project the hitTestRect
1407 into the coordinate space of the layer, and doing so can result in pathalogical quads
1408 that break hit testing. In that case, simply use the same bounds as used for painting,
1409 which are the composited bounds for this layer.
1411 Test: transforms/3d/hit-testing/rotated-hit-test.html
1413 * rendering/RenderLayer.cpp:
1414 (WebCore::RenderLayer::hitTestLayer):
1416 2009-03-24 Simon Fraser <simon.fraser@apple.com>
1418 Reviewed by Dave Hyatt
1420 https://bugs.webkit.org/show_bug.cgi?id=24436
1422 When compositing is enabled, painting and hit testing end up using different
1423 clipping roots, because, for painting, every composited layer is a clipping root,
1424 but for hit testing only layers with transforms are. To fix this, we use
1425 temporary clip rects for hit testing, if the page is in compositing mode.
1427 * rendering/RenderLayer.cpp:
1428 (WebCore::RenderLayer::paintLayer):
1429 (WebCore::RenderLayer::hitTestLayer):
1430 (WebCore::RenderLayer::parentClipRects):
1431 (WebCore::RenderLayer::calculateRects):
1432 * rendering/RenderLayer.h:
1434 2009-03-24 Simon Fraser <simon.fraser@apple.com>
1436 Reviewed by Dan Bernstein
1438 https://bugs.webkit.org/show_bug.cgi?id=24782
1440 Fix regression with CSS clip rects with non-length values, by reverting to
1441 the original code, but passing the zoom multiplier through convertToLength().
1443 Also make stylistic change in createTransformOperations(), renaming 'inStyle'
1446 Tested by existing tests.
1448 * css/CSSStyleSelector.cpp:
1449 (WebCore::convertToLength):
1450 (WebCore::CSSStyleSelector::applyProperty):
1451 (WebCore::CSSStyleSelector::createTransformOperations):
1453 2009-03-24 David Hyatt <hyatt@apple.com>
1455 Reviewed by Simon Fraser
1457 https://bugs.webkit.org/show_bug.cgi?id=21789, overflow:hidden elements should clip their foreground contents
1460 This patch makes non-self-painting overflow layers and control clips work with border-radius. RenderLayers
1461 that should be clipped by overflow ancestors with border-radius are still broken.
1463 Added fast/clip/overflow-border-radius-clip.html
1465 * rendering/RenderBox.cpp:
1466 (WebCore::RenderBox::pushContentsClip):
1468 2009-03-24 David Hyatt <hyatt@apple.com>
1470 Reviewed by Simon Fraser
1472 https://bugs.webkit.org/show_bug.cgi?id=21789, overflow:hidden elements should clip their foreground contents.
1474 This first patch makes overflow:hidden properly clip the foreground contents of overflow:hidden replaced elements. Common
1475 replaced elements now default to overflow:hidden in the UA stylesheet (this is what the spec specifically recommends be
1478 Added fast/replaced/border-radius-clip.html
1481 * rendering/RenderReplaced.cpp:
1482 (WebCore::RenderReplaced::paint):
1483 * rendering/RenderWidget.cpp:
1484 (WebCore::RenderWidget::paint):
1486 2009-03-24 Adele Peterson <adele@apple.com>
1490 Only build these Mail quirks checks in on the Mac.
1492 * dom/Document.cpp: (WebCore::disableRangeMutation):
1493 * html/HTMLElement.cpp: (WebCore::HTMLElement::inEitherTagList):
1495 2009-03-24 Brent Fulgham <bfulgham@webkit.org>
1497 Build fix, no review.
1499 Remove ResourceLoaderCFNet.cpp from build list for Cairo Releas
1502 * WebCore.vcproj/WebCore.vcproj:
1504 2009-03-24 Eric Carlson <eric.carlson@apple.com>
1506 Fix layout tests broken by r41907.
1508 * html/HTMLMediaElement.cpp:
1509 (WebCore::HTMLMediaElement::setReadyState): Don't set "was playing" based on the new ready state
1511 2009-03-24 Dmitry Titov <dimich@chromium.org>
1513 Reviewed by Dimitri Glazkov.
1515 https://bugs.webkit.org/show_bug.cgi?id=24689
1516 Fix Chromium compilation errors.
1518 * bindings/v8/WorkerContextExecutionProxy.cpp:
1519 (WebCore::WorkerContextExecutionProxy::FindOrCreateEventListener):
1520 (WebCore::WorkerContextExecutionProxy::RemoveEventListener):
1522 2009-03-24 Yury Semikhatsky <yurys@chromium.org>
1524 Reviewed by Darin Adler.
1526 https://bugs.webkit.org/show_bug.cgi?id=24759
1527 Add missing methods Element.prototype.removeMatchingStyleClasses and
1528 Node.prototype.enclosingNodeOrSelfWithNodeNameInArray to SourceFrame content
1529 iframe. These methods are called by Element.prototype.removeStyleClass and
1530 Node.prototype.enclosingNodeOrSelfWithNodeName.
1532 * inspector/front-end/SourceFrame.js:
1533 (WebInspector.SourceFrame.prototype._loaded):
1535 2009-03-24 Mark Mentovai <mark@chromium.org>
1537 Reviewed by Mark Rowe.
1539 https://bugs.webkit.org/show_bug.cgi?id=24653
1540 WebKit should be buildable without prefix header injection.
1541 Adds missing #includes and forward declarations as needed.
1543 * editing/SmartReplaceCF.cpp:
1544 * platform/graphics/mac/ColorMac.mm:
1545 * platform/graphics/mac/FontCacheMac.mm:
1546 * platform/graphics/mac/FontCustomPlatformData.h:
1547 * platform/graphics/mac/FontMac.mm:
1548 * platform/graphics/mac/FontMacATSUI.mm:
1549 * platform/graphics/mac/FontPlatformData.h:
1550 * platform/graphics/mac/FontPlatformDataMac.mm:
1551 * platform/graphics/mac/GraphicsContextMac.mm:
1552 * platform/graphics/mac/SimpleFontDataMac.mm:
1553 * platform/mac/FoundationExtras.h:
1554 * platform/mac/LocalCurrentGraphicsContext.h:
1555 * platform/mac/WebCoreSystemInterface.h:
1556 * platform/mac/WebCoreSystemInterface.mm:
1557 * platform/mac/WebCoreTextRenderer.h:
1558 * platform/mac/WebCoreTextRenderer.mm:
1559 * platform/mac/WebFontCache.h:
1560 * platform/mac/WebFontCache.mm:
1561 * platform/text/PlatformString.h:
1562 * platform/text/mac/ShapeArabic.c:
1563 * platform/text/mac/StringMac.mm:
1564 * rendering/RenderThemeChromiumMac.h:
1566 2009-03-24 Dan Bernstein <mitz@apple.com>
1568 Reviewed by Darin Adler.
1570 - fix <rdar://problem/6107874> by capping the nesting depth of
1571 "block-level" elements generated by the parser
1573 Test: fast/parser/block-nesting-cap.html
1575 * html/HTMLParser.cpp:
1576 (WebCore::HTMLParser::HTMLParser):
1577 (WebCore::HTMLParser::insertNode):
1578 (WebCore::HTMLParser::pushBlock):
1579 (WebCore::HTMLParser::popOneBlockCommon):
1580 (WebCore::HTMLParser::freeBlock):
1581 * html/HTMLParser.h:
1583 2009-03-23 Greg Bolsinga <bolsinga@apple.com>
1585 Reviewed by David Kilzer.
1587 https://bugs.webkit.org/show_bug.cgi?id=24771
1589 DOMTimeStamps are based upon 1970.
1591 * platform/mac/GeolocationServiceMac.mm:
1592 (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):
1594 2009-03-23 Eric Seidel <eric@webkit.org>
1596 Build fix, no review.
1598 * rendering/RenderObject.cpp:
1599 (WebCore::RenderObject::createVisiblePosition): change .container to .isNotNull()
1601 2009-03-23 Eric Seidel <eric@webkit.org>
1603 Reviewed by Darin Adler.
1605 Rename Position::container to m_anchorNode and make it private
1606 https://bugs.webkit.org/show_bug.cgi?id=24760
1608 More code cleanup for Position.
1610 Change all uses of m_container to node()
1611 Eventually most uses of node() should change to anchorNode() to designate
1612 that it's the node the Position is anchored to, but not necessarily the
1613 container of the position (it could be the before/after neighbor).
1615 Remove any code which sets m_container, and change it to use a new
1616 Position::moveToPosition function which takes a node and offset.
1617 It never makes sense to change the node and leave the offset.
1620 (WebCore::Position::Position):
1621 (WebCore::Position::clear):
1622 (WebCore::Position::anchorNode):
1623 (WebCore::Position::node):
1624 (WebCore::Position::moveToPosition):
1625 (WebCore::Position::moveToOffset):
1626 (WebCore::Position::isNull):
1627 (WebCore::Position::isNotNull):
1628 (WebCore::operator==):
1630 (WebCore::Range::create):
1631 (WebCore::Range::compareBoundaryPoints):
1632 * dom/RangeBoundaryPoint.h:
1633 (WebCore::RangeBoundaryPoint::container):
1634 (WebCore::RangeBoundaryPoint::set):
1635 (WebCore::RangeBoundaryPoint::setOffset):
1636 (WebCore::RangeBoundaryPoint::setToChild):
1637 (WebCore::RangeBoundaryPoint::setToStart):
1638 (WebCore::RangeBoundaryPoint::setToEnd):
1640 2009-03-17 Eric Seidel <eric@webkit.org>
1642 Reviewed by David Hyatt.
1644 document.write() should be able to make a document strict mode
1645 https://bugs.webkit.org/show_bug.cgi?id=24336
1647 Remove an implicit write of "<html>" on the first document.write call
1648 this was added as part of a KDE import http://trac.webkit.org/changeset/798
1649 with no layout test or explanation. I can't think of any reason why
1650 an implicit <html> write is necessary (or correct), so I'm removing it and
1651 adding a test for the correct behavior. The parser will add any necessary
1652 HTMLHTMLElements during the write() anyway.
1654 Our behavior is now tested by fast/dom/Document/document-write-doctype
1655 and matches IE, FF fails this new test. Mozilla bug filed:
1656 https://bugzilla.mozilla.org/show_bug.cgi?id=483908
1659 (WebCore::Document::write):
1661 2009-03-23 Sam Weinig <sam@webkit.org>
1663 Reviewed by Dan Bernstein.
1665 Fix for <rdar://problem/6140966>
1666 Empty Caches does not clear the Cross-site XMLHttpRequest preflight cache
1669 * WebCore.xcodeproj/project.pbxproj:
1670 * loader/CrossOriginPreflightResultCache.cpp:
1671 (WebCore::CrossOriginPreflightResultCache::empty):
1672 * loader/CrossOriginPreflightResultCache.h:
1674 2009-03-23 Darin Adler <darin@apple.com>
1676 Reviewed by Adele Peterson.
1678 Bug 24726: hit testing doesn't work right when the click is on anonymous content
1679 https://bugs.webkit.org/show_bug.cgi?id=24726
1680 rdar://problem/6696992
1682 Test: editing/selection/hit-test-anonymous.html
1684 * rendering/RenderBR.cpp:
1685 (WebCore::RenderBR::positionForPoint): Call createVisiblePosition instead of
1686 creating a VisiblePosition directly. It will handle finding non-anonymous
1687 content nearby if node() is 0.
1688 * rendering/RenderBlock.cpp:
1689 (WebCore::positionForPointRespectingEditingBoundaries): Ditto.
1690 (WebCore::positionForPointWithInlineChildren): Ditto.
1691 (WebCore::RenderBlock::positionForPoint): Ditto.
1692 * rendering/RenderBox.cpp:
1693 (WebCore::RenderBox::positionForPoint): Ditto.
1694 * rendering/RenderObject.cpp:
1695 (WebCore::RenderObject::positionForPoint): Ditto.
1696 (WebCore::RenderObject::createVisiblePosition): Added.
1697 * rendering/RenderObject.h: Added createVisiblePosition.
1698 * rendering/RenderReplaced.cpp:
1699 (WebCore::RenderReplaced::positionForPoint): Call createVisiblePosition.
1700 * rendering/RenderSVGInlineText.cpp:
1701 (WebCore::RenderSVGInlineText::positionForPoint): Ditto.
1702 * rendering/RenderText.cpp:
1703 (WebCore::RenderText::positionForPoint): Ditto.
1705 2009-03-23 Adele Peterson <adele@apple.com>
1707 Reviewed by Darin Adler & Dave Hyatt.
1709 Fix for <rdar://problem/6621310> REGRESSION(35185): Apple Travel HTML emails missing some style after Safari 4 upgrade
1711 Leopard Mail doesn't expect <style> to be in the body. This change reverts back to the old behavior of
1712 moving <style> to <head> for that version of Mail.
1714 * html/HTMLElement.cpp: (WebCore::HTMLElement::inEitherTagList):
1716 2009-03-23 Adele Peterson <adele@apple.com>
1718 Reviewed by Mark Rowe & Dave Hyatt.
1720 Merge some of the individual Mail quirks into two settings that we can check for future quirks.
1724 (WebCore::disableRangeMutation):
1725 (WebCore::Document::nodeChildrenChanged):
1726 (WebCore::Document::nodeWillBeRemoved):
1727 (WebCore::Document::textInserted):
1728 (WebCore::Document::textRemoved):
1729 (WebCore::Document::textNodesMerged):
1730 (WebCore::Document::textNodeSplit):
1731 * page/Settings.cpp:
1732 (WebCore::Settings::Settings):
1733 (WebCore::Settings::setNeedsLeopardMailQuirks):
1734 (WebCore::Settings::setNeedsTigerMailQuirks):
1736 (WebCore::Settings::needsLeopardMailQuirks):
1737 (WebCore::Settings::needsTigerMailQuirks):
1739 2009-03-23 Ada Chan <adachan@apple.com>
1741 https://bugs.webkit.org/show_bug.cgi?id=24762
1742 Support text-indent in <option> elements on windows platform.
1744 Reviewed by Adele Peterson.
1747 * platform/PopupMenuStyle.h: We don't honor font specified on <option> elements right now. Make this
1748 explicit via windows themed default stylesheet.
1749 (WebCore::PopupMenuStyle::PopupMenuStyle): Also store text-indent and text-direction.
1750 (WebCore::PopupMenuStyle::textIndent):
1751 (WebCore::PopupMenuStyle::textDirection):
1752 * platform/win/PopupMenuWin.cpp:
1753 (WebCore::PopupMenu::paint): Adjust the text's x-coordinate if text-indent is supported for options and
1754 text-indent is specified with LTR direction.
1755 * rendering/RenderMenuList.cpp:
1756 (WebCore::RenderMenuList::updateOptionsWidth): Take text-indent into account if theme supports text-indent for options.
1757 (WebCore::RenderMenuList::itemStyle): Use new PopupMenuStyle constructor on windows.
1758 (WebCore::RenderMenuList::menuStyle): Ditto.
1759 * rendering/RenderTextControlSingleLine.cpp:
1760 (WebCore::RenderTextControlSingleLine::menuStyle): Ditto.
1761 * rendering/RenderTheme.h:
1762 (WebCore::RenderTheme::popupOptionSupportsTextIndent): Added. Default is false since we are only supporting it in windows for now.
1763 * rendering/RenderThemeWin.h:
1764 (WebCore::RenderThemeWin::popupOptionSupportsTextIndent): Returns true for windows.
1766 2009-03-23 Sam Weinig <sam@webkit.org>
1768 Reviewed by Anders Carlsson.
1770 Fix for https://bugs.webkit.org/show_bug.cgi?id=24699
1771 REGRESSION: Java Applets broken
1772 <rdar://problem/6707494>
1774 Fix loading Java applets without a codeBase. Only pass the base (up to the
1775 the last path component) of the baseURL to the plug-in.
1777 * html/HTMLAppletElement.cpp:
1778 (WebCore::HTMLAppletElement::createRenderer):
1779 * platform/KURL.cpp:
1780 (WebCore::KURL::baseAsString):
1783 2009-03-23 Darin Adler <darin@apple.com>
1785 Reviewed by Sam Weinig.
1787 * platform/KURL.h: Removed now-incorrect comments.
1788 None of the parts include the separator characters any more, now that
1789 query doesn't include the "?", so the comments explaining which do and do
1790 not are no-longer helpful.
1792 2009-03-23 David Levin <levin@chromium.org>
1794 Reviewed by Dimitri Glazkov.
1796 https://bugs.webkit.org/show_bug.cgi?id=24764
1798 Renamed files V8NodeFilter -> V8NodeFilterCondition to reflect
1799 class names. Also fixed some headers that got mangled in search/replace
1802 No change in behavior, so no test.
1804 * bindings/v8/V8NodeFilter.h: Removed.
1805 * bindings/v8/V8NodeFilterCondition.cpp: Renamed from WebCore/bindings/v8/V8NodeFilter.cpp.
1806 * bindings/v8/V8NodeFilterCondition.h: Added.
1807 * bindings/v8/custom/V8ClipboardCustom.cpp:
1808 * bindings/v8/custom/V8DocumentCustom.cpp:
1809 * bindings/v8/custom/V8ElementCustom.cpp:
1810 * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
1811 * bindings/v8/custom/V8NavigatorCustom.cpp:
1813 2009-03-23 Darin Fisher <darin@chromium.org>
1815 Reviewed by Antti Koivisto.
1817 https://bugs.webkit.org/show_bug.cgi?id=24741
1819 Adds a unique across-browser-sessions identifier to FormData, which may
1820 be used by ResourceHandle as a secondary cache key to enable cached
1823 At issue: two otherwise identical form submissions may result in
1824 completely independent responses, which may each be appropriate to
1825 store and reuse from cache.
1827 * html/HTMLFormElement.cpp: Added call to FormData::setIdentifier so that
1828 we only enable cached form submissions for those generated by HTML. This
1829 way we do not bother with POSTs generated by XMLHttpRequest.
1830 (WebCore::generateFormDataIdentifier):
1831 (WebCore::HTMLFormElement::createFormData):
1832 * platform/network/FormData.cpp: Initialize m_identifier to 0, which means
1833 the unspecified identifier. So by default there is no identifier and
1835 (WebCore::FormData::FormData):
1836 * platform/network/FormData.h: Added m_identifier with setter and getter.
1837 (WebCore::FormData::setIdentifier):
1838 (WebCore::FormData::identifier):
1840 2009-03-23 Simon Fraser <simon.fraser@apple.com>
1842 Reviewed by Antti Koivisto
1844 https://bugs.webkit.org/show_bug.cgi?id=24733
1846 Fix media controller with full-page zoom. Previously, the media controller
1847 shadow nodes never saw style changes on the RenderMedia, so did not respond
1848 to zooming at all. Now, we update the style on the shadow renderers
1849 whenever RenderMedia gets a style change. Also fix the video thumb in
1850 the theme to be scaled properly.
1852 Test: media/video-controls-zoomed.html
1854 * rendering/MediaControlElements.cpp:
1855 (WebCore::MediaControlShadowRootElement::updateStyle):
1856 (WebCore::MediaTextDisplayElement::MediaTextDisplayElement):
1857 (WebCore::MediaTextDisplayElement::updateStyle):
1858 (WebCore::MediaControlInputElement::MediaControlInputElement):
1859 (WebCore::MediaControlInputElement::updateStyle):
1860 * rendering/MediaControlElements.h:
1861 * rendering/RenderMedia.cpp:
1862 (WebCore::RenderMedia::styleDidChange):
1863 * rendering/RenderMedia.h:
1864 * rendering/RenderThemeMac.mm:
1865 (WebCore::RenderThemeMac::adjustSliderThumbSize):
1867 2009-03-23 Mike Belshe <mike@belshe.com>
1869 Reviewed by Darin Adler.
1871 https://bugs.webkit.org/show_bug.cgi?id=24739
1873 Rework StringImpl::create methods to try to allocate a single buffer
1874 rather than allocating both the StringImpl class and a separate data
1877 * platform/text/StringImpl.cpp:
1878 * platform/text/StringImpl.h:
1880 2009-03-23 Darin Adler <darin@apple.com>
1882 Reviewed by Antti Koivisto.
1884 Based on a patch by Nico Weber <nicolasweber@gmx.de>
1886 Bug 24755: LayoutTests/http/tests/misc/url-in-utf16le.html regression
1887 https://bugs.webkit.org/show_bug.cgi?id=24755
1889 * platform/text/TextEncoding.cpp:
1890 (WebCore::TextEncoding::isUTF7Encoding): Added. Checks if the current encoding
1891 is UTF7 without loading extended codecs.
1892 (WebCore::TextEncoding::encodingForFormSubmission): Use isUTF7Encoding() instead
1893 of comparing with UTF7Encoding(). Eliminate the explicit check of
1894 noExtendedTextEncodingNameUsed() because that's now handled by the functions
1895 that this function calls instead.
1897 * platform/text/TextEncoding.h: Added isUTF7Encoding function.
1898 Also tweaked formatting a bit.
1900 2009-03-20 Peter Kasting <pkasting@google.com>
1902 Reviewed by Darin Fisher.
1904 https://bugs.webkit.org/show_bug.cgi?id=24720
1905 RenderThemeChromium should draw something for Slider parts instead of
1906 dropping them on the floor.
1908 * platform/chromium/ChromiumBridge.h:
1909 * rendering/RenderThemeChromiumWin.cpp:
1910 (WebCore::RenderThemeChromiumWin::adjustSliderThumbSize):
1911 (WebCore::RenderThemeChromiumWin::paintSliderTrack):
1912 (WebCore::RenderThemeChromiumWin::determineSliderThumbState):
1913 (WebCore::RenderThemeChromiumWin::getThemeData):
1914 * rendering/RenderThemeChromiumWin.h:
1915 (WebCore::RenderThemeChromiumWin::paintSliderThumb):
1917 2009-03-23 Glen Murphy <glen@chromium.org>
1919 Reviewed by Darin Fisher.
1921 https://bugs.webkit.org/show_bug.cgi?id=24657
1923 Fix Skia drawing of highly scaled bitmaps; the conversion to
1924 IntRect produced visible layout test failures in highly scaled
1927 Test: svg/custom/image-small-width-height.svg
1929 * WebCore\platform\graphics\skia\ImageSkia.cpp:
1931 2009-03-23 David Kilzer <ddkilzer@apple.com>
1933 Provide JavaScript exception information after slow script timeout
1935 Reviewed by Oliver Hunt.
1937 * bindings/js/ScriptController.cpp:
1938 (WebCore::ScriptController::evaluate): Changed to report
1939 exceptions for the Interrupted completion type as well.
1941 2009-03-23 Simon Fraser <simon.fraser@apple.com>
1943 Reviewed by Darin Adler
1945 https://bugs.webkit.org/show_bug.cgi?id=24736
1947 Fix three mostly-unrelated problems with full-page zoom:
1950 (WebCore::Document::elementFromPoint):
1951 Document::elementFromPoint() needs to take full-page zoom into account.
1953 * dom/MouseRelatedEvent.cpp:
1954 (WebCore::MouseRelatedEvent::receivedTarget):
1955 Take full-page zoom into account when computing offsetX/offsetY.
1957 * html/HTMLSelectElement.cpp:
1958 (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
1959 Don't use offsetX/offsetY when hit testing list boxes; offsets were broken
1960 with full-page zoom, and using pageX/pageY is easier because we don't
1961 have to worry about the event target, and we already have a point in
1962 absolute coordinates.
1964 Tests: fast/forms/listbox-hit-test-zoomed.html
1965 fast/forms/search-zoomed.html
1966 fast/forms/slider-zoomed.html
1968 2009-03-23 Simon Fraser <simon.fraser@apple.com>
1970 Reviewed by Dan Bernstein
1972 https://bugs.webkit.org/show_bug.cgi?id=24753
1974 The rect for CSS 'clip' needs to have zooming applied to it.
1976 Test: fast/css/clip-zooming.html
1978 * css/CSSStyleSelector.cpp:
1979 (WebCore::CSSStyleSelector::applyProperty):
1981 2009-03-23 Eric Carlson <eric.carlson@apple.com>
1983 Reviewed by Adam Roben.
1985 <rdar://problem/6704282>
1986 https://bugs.webkit.org/show_bug.cgi?id=24719
1987 QTMovieWinTimer logic inversion
1989 Fix logic inversion in the Win32 timer used by QTMovieWin that caused it to always
1990 use SetTimer, even when the intervals was below USER_TIMER_MINIMUM. A side effect of
1991 this was that a movie timer would sometimes be blocked for significant amounts of time
1992 because WM_TIMER messages are not processed when the thread's message queue has any
1993 higher priority messages, and WebCore/Win's timer uses PostMessage for low interval
1994 timers. Also change SetTimer call to use HWND and custom message instead of
1995 timer function since the timer already has an HWND for processing PostMessage.
1997 Not possible to make a test for this because it is so timing dependant.
1999 * platform/graphics/win/QTMovieWinTimer.cpp:
2000 (TimerWindowWndProc):
2001 (setSharedTimerFireDelay):
2003 2009-03-23 Eric Carlson <eric.carlson@apple.com>
2005 Reviewed by Adele Peterson.
2007 https://bugs.webkit.org/show_bug.cgi?id=24588
2009 Update media element implementation to current HTML5 spec
2012 media/media-constants.html
2013 media/video-seek-no-src-exception.html
2014 media/video-source-add-src.html
2015 media/video-src-invalid-remove.html
2016 media/video-src-plus-source.html
2017 media/video-timeupdate-during-playback.html
2019 * dom/EventNames.h: Remove obsolute events, add new ones.
2020 * html/HTMLMediaElement.cpp:
2021 (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new member vars.
2022 (WebCore::HTMLMediaElement::attributeChanged): Trigger load() only when we don't
2024 (WebCore::HTMLMediaElement::removedFromDocument): Deal with state name changes.
2025 (WebCore::HTMLMediaElement::scheduleProgressEvent): New, create a progress event and
2026 add it to the event queue to be dispatch when the timer fires.
2027 (WebCore::HTMLMediaElement::scheduleEvent): New, create a generic event and add
2028 it to the event queue to be dispatch when the timer fires.
2029 (WebCore::HTMLMediaElement::enqueueEvent): Add an event to the queue and ticke the
2031 (WebCore::HTMLMediaElement::asyncEventTimerFired): Dispatch all pending events.
2032 (WebCore::HTMLMediaElement::loadTimerFired): Either trigger the initial load or
2033 try to load the next <source> url.
2034 (WebCore::HTMLMediaElement::load): Minor style change.
2035 (WebCore::HTMLMediaElement::loadInternal): The first part of the spec load algorithm, cleanup
2036 the current load (if any) and set up state for a new load.
2037 (WebCore::HTMLMediaElement::selectMediaResource): Deal with no 'src' or <source>, post 'loadstart'
2038 event, and initiate load from 'src' if present.
2039 (WebCore::HTMLMediaElement::loadNextSourceChild): Initiate load from next <source> url, or trigger
2040 noneSupported() if no more to consider.
2041 (WebCore::HTMLMediaElement::loadResource): Instantiate a new MediaPlayer and ask it to load a url.
2042 (WebCore::HTMLMediaElement::startProgressEventTimer): Start the repeating progress event timer.
2043 (WebCore::HTMLMediaElement::noneSupported): Post error event and set up state when no valid
2044 media url was found.
2045 (WebCore::HTMLMediaElement::mediaEngineError): Post error event and set up state when no valid
2046 media engine failed with a decode error or a network error.
2047 (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
2048 (WebCore::HTMLMediaElement::setNetworkState): Updated for new spec network states.
2049 (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
2050 (WebCore::HTMLMediaElement::setReadyState): Updated for new spec ready state.
2051 (WebCore::HTMLMediaElement::progressEventTimerFired): Bail if the network is not active.
2052 (WebCore::HTMLMediaElement::seek): Return INVALID_STATE_ERR exception if state is too low or
2053 if player hasn't been set up yet. This is necessary becase load() is async. Clear the flag
2054 we use to guard against sending 'ended' more than once.
2055 (WebCore::HTMLMediaElement::duration): Don't bother calling media engine before it has metadata.
2056 (WebCore::HTMLMediaElement::setDefaultPlaybackRate): Remove exception param, 0 is no longer an
2058 (WebCore::HTMLMediaElement::setPlaybackRate): Remove exception param, 0 is no longer an
2059 invalid rate. Cache rate being set so we can use it later if media engine isn't ready now.
2060 (WebCore::HTMLMediaElement::play): Remove exception param, play() before load() now just
2061 starts loading asynchronously.
2062 (WebCore::HTMLMediaElement::playInternal): Remove exception param. Fire 'waiting' or 'playing'
2063 event depending on current state.
2064 (WebCore::HTMLMediaElement::pause): Remove exception param, pause() before load() now just
2065 starts loading asynchronously.
2066 (WebCore::HTMLMediaElement::pauseInternal): Remove exception param.
2067 (WebCore::HTMLMediaElement::setVolume): dispatchEventAsync -> scheduleEvent
2068 (WebCore::HTMLMediaElement::setMuted): dispatchEventAsync -> scheduleEvent
2069 (WebCore::HTMLMediaElement::togglePlayState): Remove exception param.
2070 (WebCore::HTMLMediaElement::beginScrubbing): pause() doesn't take an exception param.
2071 (WebCore::HTMLMediaElement::startPlaybackProgressTimer): New, starts timer that fires 4 times per
2072 second when the movie is playing to timeupdate so we can post 'timeupdate' events.
2073 (WebCore::HTMLMediaElement::playbackProgressTimerFired): Timer proc.
2074 (WebCore::HTMLMediaElement::scheduleTimeupdateEvent): Bottleneck around scheduling a 'timeupdate'
2075 event because we both fire them them when the spec says we should and when the media engine
2076 says that time has jumped, but we don't want to fire more than one at a given movie time. We also
2077 use this bottleneck to keep track of the last time one was posted so we won't fire too often
2079 (WebCore::HTMLMediaElement::canPlay): readyState now tracks whether or not we have metadata.
2080 (WebCore::HTMLMediaElement::havePotentialSourceChild): New, checks to see if there are a <source>
2081 element with a 'src' attribute that we have not tried to load yet.
2082 (WebCore::HTMLMediaElement::nextSourceChild): New, returns the url and content type of the next
2083 <source> element that we haven't tried to load.
2084 (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Schedule 'seeked' event when seeking completes.
2085 Set a flag when we post the 'ended' event, clear it when time changed and we aren't at the end since
2086 some media engines call this proc more than once when playback reaches the end and stops, but we
2087 don't want to post 'ended' more than once.
2088 (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): New, added so media engine can inform
2089 when the movie duration changes and we can post 'durationchanged' event.
2090 (WebCore::HTMLMediaElement::mediaPlayerRateChanged): New, added so media engine can inform when
2091 the rate changed and we can updated our cached rate. This is useful because we only want to know
2092 post periodic 'timeupdate' events when the movie is actually playing, and because we want to know
2093 the actual playback rate when it differs from what we tried to set.
2094 (WebCore::HTMLMediaElement::mediaPlayerSizeChanged): New, added so media engine can inform when
2095 a movie's intrinsic size changes and we can inform the renderer.
2096 (WebCore::HTMLMediaElement::potentiallyPlaying): Renamed from activelyPlaying since the spec now
2097 uses "actively playing" for this concept. Update logic for new state names and un-comment calls
2098 to stoppedDueToErrors() and pausedForUserInteraction() since the spec says those condiditons
2099 are part of the answer.
2100 (WebCore::HTMLMediaElement::endedPlayback): Update logic for new state names.
2101 (WebCore::HTMLMediaElement::stoppedDueToErrors): New, spec says this logic should be part of
2102 the determination of "potentially playing".
2103 (WebCore::HTMLMediaElement::pausedForUserInteraction): New, placeholder for when (if) user
2104 agent supports this spec concept.
2105 (WebCore::HTMLMediaElement::updatePlayState): Stop timer used to fire periodic 'timeupdate'
2106 events when we pauses the movie. Set the media engine rate before calling play() in case it
2107 wasn't set up when the rate was changed.
2108 (WebCore::HTMLMediaElement::stopPeriodicTimers): New, stop the progress event and 'timeupate'
2110 (WebCore::HTMLMediaElement::userCancelledLoad): New, logic pulled out of documentWillBecomeInactive
2111 and updated for the current spec.
2112 (WebCore::HTMLMediaElement::documentWillBecomeInactive): Moved some logic to userCancelledLoad.
2113 (WebCore::HTMLMediaElement::documentDidBecomeActive): Update comments.
2114 (WebCore::HTMLMediaElement::initialURL): Update for refactoring of code that determines the
2116 * html/HTMLMediaElement.h: Change ReadyState and NetworkState enums to match names in the spec,
2117 update for changes in .cpp.
2118 (WebCore::HTMLMediaElement::):
2120 * html/HTMLMediaElement.idl: Update ready state and network state constants for spec changes.
2121 defaultPlaybackRate, playbackRate, play(), and pause() no longer raise exceptions.
2123 * html/HTMLSourceElement.cpp:
2124 (WebCore::HTMLSourceElement::insertedIntoDocument): Update for network state name changes.
2126 * html/HTMLVideoElement.cpp:
2127 (WebCore::HTMLVideoElement::updatePosterImage): Update for ready state name changes.
2129 * html/MediaError.h:
2130 (WebCore::MediaError::): add MEDIA_ERR_NONE_SUPPORTED.
2132 * html/MediaError.idl: add MEDIA_ERR_NONE_SUPPORTED.
2134 * loader/MediaDocument.cpp:
2135 (WebCore::MediaDocument::defaultEventHandler): play() and pause() don't take an exception.
2137 * platform/graphics/MediaPlayer.cpp:
2138 (WebCore::NullMediaPlayerPrivate::readyState): Update for newtork state name changes.
2139 (WebCore::MediaPlayer::sizeChanged): New, so engine can report intrinsic size changes.
2140 (WebCore::MediaPlayer::rateChanged): New, so engine can report rate changes.
2141 (WebCore::MediaPlayer::durationChanged): New, so engine can report duration changes.
2142 * platform/graphics/MediaPlayer.h: Update NetworkState and ReadyState enum names to match spec
2144 (WebCore::MediaPlayerClient::mediaPlayerDurationChanged): New.
2145 (WebCore::MediaPlayerClient::mediaPlayerRateChanged): New.
2146 (WebCore::MediaPlayerClient::mediaPlayerSizeChanged): New.
2147 (WebCore::MediaPlayer::):
2149 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
2150 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Update for network/ready state name changes.
2151 (WebCore::MediaPlayerPrivate::load): Ditto.
2152 (WebCore::MediaPlayerPrivate::updateStates): Ditto.
2153 (WebCore::MediaPlayerPrivate::loadingFailed): Ditto.
2155 * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Update for network/ready state name changes.
2156 Remove endPointTimer, it is no longer necessary. Add m_enabledTrackCount and m_duration.
2157 (WebCore::MediaPlayerPrivate::metaDataAvailable):
2158 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2159 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): No more m_endPointTimer or m_endTime. Initialize
2160 m_enabledTrackCount and m_duration. Update for network/ready state name changes.
2161 (WebCore::MediaPlayerPrivate::load): Update for network/ready state name changes.
2162 (WebCore::MediaPlayerPrivate::play): No more m_endPointTimer.
2163 (WebCore::MediaPlayerPrivate::pause): Ditto.
2164 (WebCore::MediaPlayerPrivate::currentTime): No more m_endTime.
2165 (WebCore::MediaPlayerPrivate::seek): Ditto.
2166 (WebCore::MediaPlayerPrivate::doSeek): Ditto, plus don't call setRate(0) when the rate is
2168 (WebCore::MediaPlayerPrivate::setEndTime): No more m_endTime.
2169 (WebCore::MediaPlayerPrivate::updateStates): Update for network/ready state name changes. Return
2170 different errors depending on what causes a failure. Watch for and report duration changes.
2171 (WebCore::MediaPlayerPrivate::rateChanged): Report rate changes.
2172 (WebCore::MediaPlayerPrivate::sizeChanged): Report size changes.
2173 (WebCore::MediaPlayerPrivate::didEnd): No more endpoint timer.
2174 (WebCore::MediaPlayerPrivate::setVisible): Update for network/ready state name changes.
2175 (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): Don't return number of unsupported
2176 tracks, store in m_enabledTrackCount so we can use it to help determine causes of failure.
2178 * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
2179 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Update for network/ready state name changes.
2180 (WebCore::MediaPlayerPrivate::load): Ditto.
2181 (WebCore::MediaPlayerPrivate::duration): Ditto.
2182 (WebCore::MediaPlayerPrivate::updateStates): Ditto.
2183 (WebCore::MediaPlayerPrivate::naturalSize): Ditto.
2185 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
2186 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): No more m_endPointTimer. Update for
2187 network/ready state name changes.
2188 (WebCore::MediaPlayerPrivate::load): Update for network/ready state name changes. No more
2190 (WebCore::MediaPlayerPrivate::play): No more m_endPointTimer.
2191 (WebCore::MediaPlayerPrivate::pause): Ditto.
2192 (WebCore::MediaPlayerPrivate::setEndTime): Ditto.
2193 (WebCore::MediaPlayerPrivate::updateStates): Update for network/ready state name changes.
2194 (WebCore::MediaPlayerPrivate::didEnd): No more m_endPointTimer.
2195 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
2197 * rendering/MediaControlElements.cpp:
2198 (WebCore::MediaControlPlayButtonElement::defaultEventHandler): Update for network/ready state
2200 (WebCore::MediaControlSeekButtonElement::defaultEventHandler): Ditto.
2202 2009-03-22 Kevin Ollivier <kevino@theolliviers.com>
2204 wxGTK build fix. Add missing header.
2206 * platform/wx/wxcode/gtk/non-kerned-drawing.cpp:
2208 2009-03-22 Simon Fraser <simon.fraser@apple.com>
2210 Reviewed by Dan Bernstein
2212 https://bugs.webkit.org/show_bug.cgi?id=24665
2214 Image-map code in RenderImage could result in RenderImage::nodeAtPoint()
2215 setting HitTestResult::innerNode(), but returning false, which violates
2216 hit testing rules. Use a temporary HitTestResult so that we only fill in
2217 result when we know we've hit.
2219 * rendering/RenderImage.cpp:
2220 (WebCore::RenderImage::nodeAtPoint):
2222 2009-03-22 Simon Fraser <simon.fraser@apple.com>
2224 Reviewed by Dan Bernstein
2226 https://bugs.webkit.org/show_bug.cgi?id=24743
2228 Fix hit testing regression from r41840. We need to pass the temporary
2229 HitTestResult when testing sublayers, then only copy to 'result' when
2230 the layer is known to have been hit.
2232 Test: fast/layers/zindex-hit-test.html
2234 * rendering/RenderLayer.cpp:
2235 (WebCore::RenderLayer::hitTestLayer):
2237 2009-03-20 Simon Fraser <simon.fraser@apple.com>
2239 Reviewed by Darin Adler
2241 https://bugs.webkit.org/show_bug.cgi?id=24733
2243 Fix hit testing on video controls after full page zoom by fixing wider issue
2244 with event->pageX(), pageY() with zooming. pageX and pageY are "fixed" to be
2245 invariant under zooming (for JavaScript), so we keep an actual page point around
2246 in MouseEvent::absoluteLocation() to avoid the need to factor in zooming everywhere.
2248 * dom/MouseRelatedEvent.cpp:
2249 (WebCore::MouseRelatedEvent::initCoordinates):
2250 (WebCore::MouseRelatedEvent::computePageLocation):
2251 * dom/MouseRelatedEvent.h:
2252 (WebCore::MouseRelatedEvent::absoluteLocation):
2253 (WebCore::MouseRelatedEvent::setAbsoluteLocation):
2254 Member var, and getter and setter for absoluteLocation.
2255 New method, computePageLocation(), to compute the actual page point,
2256 and call it when creating and initting mouse-related events.
2259 (WebCore::Node::dispatchMouseEvent):
2260 (WebCore::Node::dispatchWheelEvent):
2261 Keep non-adjusted pageX and pageY around, and call setAbsoluteLocation()
2262 on the event to replace a potentially rounded point.
2264 * html/HTMLInputElement.cpp:
2265 (WebCore::HTMLInputElement::defaultEventHandler):
2266 Clean up slider handling code.
2268 * html/HTMLSelectElement.cpp:
2269 (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
2270 Add FIXME comment for use of offsetX/offsetY.
2272 * page/ContextMenuController.cpp:
2273 (WebCore::ContextMenuController::handleContextMenuEvent):
2274 Use absoluteLocation() when hit testing for context menus.
2276 * rendering/RenderFrameSet.cpp:
2277 (WebCore::RenderFrameSet::userResize):
2278 Use absoluteLocation() when resizing frames.
2280 * rendering/RenderMedia.cpp:
2281 (WebCore::RenderMedia::forwardEvent):
2282 Use absoluteLocation() when hit testing media controls.
2284 * rendering/RenderSlider.cpp:
2285 (WebCore::HTMLSliderThumbElement::defaultEventHandler):
2286 (WebCore::RenderSlider::mouseEventIsInThumb):
2287 Use absoluteLocation() when handling slider events.
2289 (WebCore::RenderSlider::forwardEvent):
2290 Factor some code out of HTMLInputElement::defaultEventHandler().
2292 * rendering/RenderTextControlSingleLine.cpp:
2293 (WebCore::RenderTextControlSingleLine::forwardEvent):
2294 Use absoluteLocation() when hit testing search field buttons, which fixees
2295 bugs in the search field with zooming.
2297 2009-03-21 David Levin <levin@chromium.org>
2299 Reviewed by Dimitri Glazkov.
2301 https://bugs.webkit.org/show_bug.cgi?id=24727
2302 Add V8XMLHttpRequest*.
2304 * bindings/v8/V8XMLHttpRequestUtilities.cpp: Added.
2305 * bindings/v8/V8XMLHttpRequestUtilities.h: Added.
2306 * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: Added.
2307 * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: Added.
2308 * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp: Added.
2310 2009-03-21 David Levin <levin@chromium.org>
2312 Reviewed by Dimitri Glazkov.
2314 https://bugs.webkit.org/show_bug.cgi?id=24725
2317 * bindings/v8/V8NodeFilter.cpp: Added.
2318 * bindings/v8/V8NodeFilter.h: Added.
2320 2009-03-21 Dan Bernstein <mitz@apple.com>
2322 Rubber-stamped by Kevin Decker
2324 - remove some redundant #include statements
2326 * bindings/js/JSDOMWindowBase.cpp:
2328 2009-03-20 Dan Bernstein <mitz@apple.com>
2330 Reviewed by Mark Rowe.
2332 - fix <rdar://problem/6574185> REGRESSION (3.2.2-TOT): hang in text drawing code
2334 * platform/graphics/win/FontCGWin.cpp:
2335 (WebCore::drawGDIGlyphs): Changed glyph stroking to fill and stroke each
2336 glyph as a separate path, instead of all glyphs as a single path. This
2337 matches what CGContextShowGlyphsWithAdvances() does, and has comparable
2340 2009-03-20 Dean Jackson <dino@apple.com>
2342 Reviewed by Simon Fraser
2344 Build fix for ENABLE(3D_RENDERING)
2346 * rendering/RenderObject.h:
2347 (WebCore::makeMatrixRenderable):
2349 2009-03-20 Dave Moore <davemoore@google.com>
2351 Reviewed by Dimitri Glazkov.
2353 https://bugs.webkit.org/show_bug.cgi?id=24705
2355 A bug in the V8 bindings is preventing chromium from setting the href on the
2356 location object...any attempt throws a security error, not just for javascript
2359 * page/Location.idl:
2361 2009-03-20 Craig Schlenter <craig.schlenter@gmail.com>
2363 Reviewed by Dimitri Glazkov.
2365 https://bugs.webkit.org/show_bug.cgi?id=24608
2367 Include stdio.h needed for printf on gcc 4.4.0
2369 * platform/KURLGoogle.cpp:
2371 2009-03-20 Mike Belshe <mike@belshe.com>
2373 Reviewed by Darin Fisher.
2375 https://bugs.webkit.org/show_bug.cgi?id=24577
2377 Don't let comments at the end of an event handler
2378 break the event handler.
2380 No change in behavior, so no test.
2382 * bindings/v8/V8LazyEventListener.cpp:
2383 (WebCore::V8LazyEventListener::getWrappedListenerFunction):
2385 2009-03-20 Norbert Leser <norbert.leser@nokia.com>
2387 Reviewed by Darin Adler.
2389 https://bugs.webkit.org/show_bug.cgi?id=24535
2391 Fixes missing line terminator character (;) after macro call.
2392 It is common practice to add the trailing ";" where macros are substituted
2393 and not where they are defined with #define.
2394 This change is consistent with other macro declarations across webkit,
2395 and it also solves compilation failure with symbian compilers.
2397 No change in behavior, so no test.
2399 * bindings/js/JSDOMWindowShell.cpp:
2400 * bindings/js/JSEventListener.cpp:
2401 * bindings/js/JSImageConstructor.cpp:
2402 * bindings/js/JSInspectedObjectWrapper.cpp:
2403 * bindings/js/JSInspectorCallbackWrapper.cpp:
2404 * bindings/js/JSNamedNodesCollection.cpp:
2405 * bindings/js/JSNodeFilterCondition.cpp:
2406 * bindings/js/JSOptionConstructor.cpp:
2407 * bindings/js/JSQuarantinedObjectWrapper.cpp:
2408 * bindings/js/JSRGBColor.cpp:
2409 * bindings/js/JSWorkerContextBase.cpp:
2410 * bindings/js/JSXMLHttpRequestConstructor.cpp:
2411 * bindings/js/JSXSLTProcessorConstructor.cpp:
2412 * bindings/scripts/CodeGeneratorJS.pm:
2414 2009-03-20 Mike Belshe <mike@belshe.com>
2416 Reviewed by Dimitri Glazkov and Dave Hyatt.
2418 https://bugs.webkit.org/show_bug.cgi?id=24324
2420 Make the minimum timer configurable for different platforms.
2422 * page/DOMTimer.cpp:
2423 (WebCore::DOMTimer::DOMTimer):
2424 (WebCore::DOMTimer::fired):
2426 (WebCore::DOMTimer::minTimerInterval):
2427 (WebCore::DOMTimer::setMinTimerInterval):
2429 2009-03-20 Dean McNamee <deanm@chromium.org>
2431 Reviewed by Darin Adler.
2433 https://bugs.webkit.org/show_bug.cgi?id=22834
2435 Make sure to consistently match new/delete and fastMalloc/fastFree.
2437 * css/CSSSelectorList.cpp:
2438 (WebCore::CSSSelectorList::adoptSelectorVector):
2439 (WebCore::CSSSelectorList::deleteSelectors):
2441 2009-03-20 Dan Bernstein <mitz@apple.com>
2443 Reviewed by Dave Hyatt.
2445 - fix https://bugs.webkit.org/show_bug.cgi?id=23739
2446 <rdar://problem/6556371> REGRESSION (r36513): iframe isn't sized properly upon load
2448 * rendering/RenderBlock.cpp:
2449 (WebCore::RenderBlock::percentHeightDescendants): Added this accessor.
2450 * rendering/RenderBlock.h:
2451 * rendering/RenderTableSection.cpp:
2452 (WebCore::RenderTableSection::layoutRows): Extended the check for
2453 children that flex to include other descendants with percent height
2454 which is relative to the cell.
2456 2009-03-20 Dmitry Titov <dimich@chromium.org>
2458 Reviewed by Alexey Proskuryakov.
2460 https://bugs.webkit.org/show_bug.cgi?id=24706
2461 Remove ScriptExecutionContext::encoding() since Workers do not need it.
2462 WorkerContext::encoding() is simply removed, while Document::encoding()
2463 made non-virtual and private. Workers use UTF-8 now except when instructed
2464 otherwise by http header. Also updated test.
2466 * dom/Document.h: Made encoding() non-virtual and private.
2467 * dom/ScriptExecutionContext.h: removed encoding().
2469 * workers/Worker.cpp:
2470 (WebCore::Worker::Worker):
2471 (WebCore::Worker::notifyFinished):
2472 * workers/WorkerContext.cpp: removed encoding() implementation.
2473 (WebCore::WorkerContext::WorkerContext):
2474 (WebCore::WorkerContext::completeURL):
2475 * workers/WorkerContext.h: removed encoding()
2476 (WebCore::WorkerContext::create):
2477 * workers/WorkerContextProxy.h:
2478 * workers/WorkerImportScriptsClient.cpp:
2479 (WebCore::WorkerImportScriptsClient::didReceiveData):
2480 * workers/WorkerMessagingProxy.cpp:
2481 (WebCore::WorkerMessagingProxy::startWorkerContext):
2482 * workers/WorkerMessagingProxy.h:
2483 * workers/WorkerThread.cpp:
2484 (WebCore::WorkerThreadStartupData::create):
2485 (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
2486 (WebCore::WorkerThread::create):
2487 (WebCore::WorkerThread::WorkerThread):
2488 (WebCore::WorkerThread::workerThread):
2489 * workers/WorkerThread.h:
2490 In all these, removed storing encoding and 'inheriting' it from the parent.
2491 Instead, they are all using UTF-8 now.
2493 2009-03-20 Timothy Hatcher <timothy@apple.com>
2495 Change how threading exceptions are checked so they are reported
2496 by what round they were added. That way WebKit can decided the
2497 behavior per-round based on linked-on-or-after checks.
2499 <rdar://problem/6626741&6648478&6635474&6674079>
2501 Reviewed by Darin Adler.
2503 * WebCore.base.exp: Export the new symbols.
2504 * bindings/objc/DOMAbstractView.mm: Use the new WebCoreThreadViolationCheckRoundOne macro.
2505 * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
2506 * platform/ThreadCheck.h:
2507 * platform/mac/ThreadCheck.mm:
2508 (WebCore::readThreadViolationBehaviorFromUserDefaults): Refactor how the default is read.
2509 (WebCore::setDefaultThreadViolationBehavior): Take a round argument.
2510 (WebCore::reportThreadViolation): Ditto.
2511 (WebCoreReportThreadViolation): Ditto.
2513 2009-03-20 Geoffrey Garen <ggaren@apple.com>
2515 Reviewed by Sam Weinig.
2517 Fixed up an out-of-date comment.
2519 * bindings/js/JSDOMWindowCustom.h:
2520 (WebCore::JSDOMWindow::customPut):
2522 2009-03-20 Beth Dakin <bdakin@apple.com>
2524 Reviewed by Dave Hyatt.
2526 Fix for https://bugs.webkit.org/show_bug.cgi?id=20909 REGRESSION
2527 (r35318): A press release at pfizer.com does not display correctly
2528 - and corresponding -
2529 <rdar://problem/6680073>
2531 * rendering/RenderObject.cpp:
2532 (WebCore::RenderObject::invalidateContainerPrefWidths):
2533 * rendering/RenderObject.h:
2534 (WebCore::RenderObject::markContainingBlocksForLayout):
2536 2009-03-20 Eric Seidel <eric@webkit.org>
2538 Reviewed by Justin Garcia.
2540 maxDeepOffset is confusing and should be removed
2541 https://bugs.webkit.org/show_bug.cgi?id=24586
2543 Abstract some hard-to-read (but shared) logic into a new renderedAsNonInlineTableOrHR function.
2544 Add first/lastDeepEditingPositionForNode Position creation functions
2545 and deploy them to places we used to call maxDeepOffset.
2547 Rename Position::atStart and atEnd to atStartOfTree atEndOfTree
2548 Add a new Position::atFirst/atLastEditingPositionForNode() and use these
2549 to replace a few more callers for maxDeepOffset()
2551 Rename maxDeepOffset to lastEditingOffsetForNode (so that we mere mortals have some clue what it does)
2553 "Editing positions" are confusing because they have one
2554 of two behaviors, depending on if the container node is ignored
2555 by editing (if editingIgnoresContent(node) returns true) or not.
2556 Positions referring to nodes ignored by editing are
2557 neighbor-relative (they are before or after the node) where as
2558 positions reffering to other nodes are container-relative
2559 (they are between two child nodes of the container, identified
2560 by the offset() member). I will be fixing this confusion in
2561 future patches. These renames hopefully make the current behavior clearer.
2564 (WebCore::Position::previous):
2565 (WebCore::Position::next):
2566 (WebCore::Position::atFirstEditingPositionForNode):
2567 (WebCore::Position::atLastEditingPositionForNode):
2568 (WebCore::Position::atStartOfTree):
2569 (WebCore::Position::atEndOfTree):
2570 (WebCore::Position::previousCharacterPosition):
2571 (WebCore::Position::nextCharacterPosition):
2572 (WebCore::Position::upstream):
2573 (WebCore::Position::isCandidate):
2574 (WebCore::firstDeepEditingPositionForNode):
2575 (WebCore::lastDeepEditingPositionForNode):
2577 * dom/PositionIterator.cpp:
2578 (WebCore::PositionIterator::operator Position):
2579 (WebCore::PositionIterator::increment):
2580 (WebCore::PositionIterator::decrement):
2581 (WebCore::PositionIterator::atEnd):
2582 (WebCore::PositionIterator::atEndOfNode):
2583 * editing/CompositeEditCommand.cpp:
2584 (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
2585 * editing/DeleteSelectionCommand.cpp:
2586 (WebCore::isTableCellEmpty):
2587 (WebCore::DeleteSelectionCommand::removeNode):
2588 (WebCore::DeleteSelectionCommand::handleGeneralDelete):
2589 * editing/Editor.cpp:
2590 (WebCore::Editor::advanceToNextMisspelling):
2591 * editing/InsertLineBreakCommand.cpp:
2592 (WebCore::InsertLineBreakCommand::doApply):
2593 * editing/InsertListCommand.cpp:
2594 (WebCore::InsertListCommand::doApply):
2595 * editing/ReplaceSelectionCommand.cpp:
2596 (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
2597 * editing/TypingCommand.cpp:
2598 (WebCore::TypingCommand::forwardDeleteKeyPressed):
2599 * editing/VisiblePosition.cpp:
2600 (WebCore::VisiblePosition::previous):
2601 (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
2602 (WebCore::VisiblePosition::left):
2603 (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
2604 (WebCore::VisiblePosition::right):
2605 * editing/VisibleSelection.cpp:
2606 (WebCore::VisibleSelection::selectionFromContentsOfNode):
2607 (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
2608 * editing/htmlediting.cpp:
2609 (WebCore::nextVisuallyDistinctCandidate):
2610 (WebCore::previousVisuallyDistinctCandidate):
2611 (WebCore::firstEditablePositionAfterPositionInRoot):
2612 (WebCore::lastEditablePositionBeforePositionInRoot):
2613 (WebCore::lastOffsetForEditing):
2614 (WebCore::isFirstPositionAfterTable):
2615 (WebCore::isLastPositionBeforeTable):
2616 (WebCore::positionBeforeNode):
2617 (WebCore::positionAfterNode):
2618 (WebCore::enclosingEmptyListItem):
2619 (WebCore::caretMaxOffset):
2620 * editing/htmlediting.h:
2621 * editing/visible_units.cpp:
2622 (WebCore::renderedAsNonInlineTableOrHR):
2623 (WebCore::startOfParagraph):
2624 (WebCore::endOfParagraph):
2625 (WebCore::startOfEditableContent):
2626 (WebCore::endOfEditableContent):
2627 * page/AccessibilityObject.cpp:
2628 (WebCore::endOfStyleRange):
2629 * page/AccessibilityRenderObject.cpp:
2630 (WebCore::AccessibilityRenderObject::visiblePositionRange):
2631 * rendering/RenderBox.cpp:
2632 (WebCore::RenderBox::positionForPoint):
2634 2009-03-20 Dmitry Titov <dimich@chromium.org>
2636 Reviewed by Dimitri Glazkov.
2638 https://bugs.webkit.org/show_bug.cgi?id=24689
2639 Add (upstream) V8 bindings for Workers. Mostly style cleaning.
2641 * bindings/v8/WorkerContextExecutionProxy.cpp: Added.
2642 * bindings/v8/WorkerContextExecutionProxy.h: Added.
2643 * bindings/v8/WorkerScriptController.cpp: Added.
2644 * bindings/v8/WorkerScriptController.h: Added.
2645 * bindings/v8/V8Index.h: Added. This is just a wrapper for v8_index.h, like V8Proxy.h
2646 * bindings/v8/V8Proxy.h: Added domObjectMap() function that wraps GetDOMObjectMap().
2647 * bindings/v8/V8WorkerContextEventListener.cpp:
2648 (WebCore::V8WorkerContextEventListener::callListenerFunction): TrackEvent() renamed trackEvent()
2650 2009-03-20 Stephen White <senorblanco@chromium.org>
2652 Reviewed by Eric Seidel.
2654 Fix for LayoutTests/fast/canvas/canvas-text-alignment.html
2655 on chromium/skia. The problem was that the gradient matrix
2656 for text was being applied twice. Fixed by reverting some of
2657 https://bugs.webkit.org/show_bug.cgi?id=23957, so that skiaDrawText
2658 is no longer responsible for measuring the text and scaling up
2659 the gradient matrix. Instead, the text bounding box is passed
2660 in from SVGPaintServerGradient. I didn't make this change for CG,
2661 since it uses a different method (the gradient is drawn using the
2662 text as a pre-rendered mask).
2663 https://bugs.webkit.org/show_bug.cgi?id=24687
2665 * platform/graphics/skia/SkiaFontWin.cpp:
2666 (WebCore::skiaDrawText):
2667 * svg/graphics/SVGPaintServerGradient.cpp:
2668 (WebCore::SVGPaintServerGradient::setup):
2670 2009-03-20 Xan Lopez <xlopez@igalia.com>
2672 Rubber-stamped by Holger Freyther.
2674 There seems to be some rounding error in cairo (or in how we use
2675 cairo) with some fonts, like DejaVu Sans Mono, which makes cairo
2676 report a height smaller than ascent + descent, which is wrong and
2677 confuses WebCore's layout system. Workaround this while we figure
2678 out what's going on.
2680 * platform/graphics/gtk/SimpleFontDataGtk.cpp:
2681 (WebCore::SimpleFontData::platformInit):
2682 * platform/graphics/gtk/SimpleFontDataPango.cpp:
2683 (WebCore::SimpleFontData::platformInit):
2685 2009-03-19 Alexey Proskuryakov <ap@webkit.org>
2687 Reviewed by Darin Adler.
2689 https://bugs.webkit.org/show_bug.cgi?id=24122
2690 <rdar://problem/6674179>
2691 REGRESSION: DOM Range extractContents/deleteContents failures seen on Moxiecode tests
2693 Test: fast/dom/Range/deleted-range-endpoints.html
2695 * dom/Range.cpp: (WebCore::Range::processContents): Set the final range in accordance
2696 to the specification.
2698 2009-03-19 Anders Carlsson <andersca@apple.com>
2700 Reviewed by Dan Bernstein.
2702 <rdar://problem/6682554> Flash content not being rendered (Shockwave Flash 10.0 r22)
2704 If calling updateWidget for some reason resulted in another widget being added to m_widgetUpdateSet, then
2705 that object would never be updated.
2707 * page/FrameView.cpp:
2708 (WebCore::FrameView::updateWidgets):
2709 Factor the widget updating code out into this method. Return true if the update set is empty.
2711 (WebCore::FrameView::performPostLayoutTasks):
2712 Loop over the update set multiple times until all widgets have been updated or until we reach the cap.
2716 2009-03-18 Timothy Hatcher <timothy@apple.com>
2718 Make the defered data loading timer honor the Page's scheduled runloop pairs.
2719 Introduces a new RunLoopTimer class that has an API mimicking Timer but
2720 allows it to be scheduled with one or more SchedulePairs.
2722 <rdar://problem/6687342> -[WebView scheduleInRunLoop:forMode:] has no affect on timers
2724 Reviewed by Darin Adler.
2726 * WebCore.xcodeproj/project.pbxproj: Adds the new RunLoopTimer.{cpp,h} files.
2727 * loader/MainResourceLoader.cpp:
2728 (WebCore::MainResourceLoader::handleDataLoadNow): Use the MainResourceLoaderTimer typedef.
2729 (WebCore::MainResourceLoader::startDataLoadTimer): Added. Start the timer and on
2730 Mac platforms also schedule with the Page's SchedulePairs.
2731 (WebCore::MainResourceLoader::handleDataLoadSoon): Call startDataLoadTimer().
2732 (WebCore::MainResourceLoader::setDefersLoading): Ditto.
2733 * loader/MainResourceLoader.h:
2734 * platform/cf/RunLoopTimerCF.cpp: Added.
2735 (WebCore::RunLoopTimerBase::~RunLoopTimerBase):
2736 (WebCore::timerFired):
2737 (WebCore::RunLoopTimerBase::start):
2738 (WebCore::RunLoopTimerBase::schedule):
2739 (WebCore::RunLoopTimerBase::stop):
2740 (WebCore::RunLoopTimerBase::isActive):
2741 * platform/RunLoopTimer.h: Added.
2742 (WebCore::RunLoopTimerBase::RunLoopTimerBase):
2743 (WebCore::RunLoopTimerBase::startRepeating):
2744 (WebCore::RunLoopTimerBase::startOneShot):
2745 (WebCore::RunLoopTimer::RunLoopTimer):
2746 (WebCore::RunLoopTimer::fired):
2748 2009-03-19 Dimitri Glazkov <dglazkov@chromium.org>
2750 Reviewed by Darin Fisher.
2752 https://bugs.webkit.org/show_bug.cgi?id=24702
2753 Upstream miscellaneous bindings changes.
2755 * bindings/v8/ScheduledAction.cpp:
2756 (WebCore::ScheduledAction::execute): Changed to call lower-case evaluate.
2757 * bindings/v8/ScriptCallStack.h: Added an extra include.
2759 2009-03-19 Simon Fraser <simon.fraser@apple.com>
2761 Reviewed by Dave Hyatt
2763 https://bugs.webkit.org/show_bug.cgi?id=24686
2765 When hit testing a RenderLayer whose parent lives in a preserves-3D hierarchy,
2766 we need to compare the computed z-offset with the depth-test z-offset before
2767 deciding that such a RenderLayer was hit. This fixes an issue, tested by the
2768 3d-point-mapping-overlapping.html test, where the child of a transformed element
2769 is found by hit testing, even when some other element with greater Z overlaps
2772 Improved the code by adding a utility method, isHitCandidate(), which computes and tests
2773 z-depth when necessary.
2775 Tests: transforms/3d/point-mapping/3d-point-mapping-coplanar.html
2776 transforms/3d/point-mapping/3d-point-mapping-overlapping.html
2778 * rendering/RenderLayer.cpp:
2779 (WebCore::isHitCandidate):
2780 (WebCore::RenderLayer::hitTestLayer):
2782 2009-03-19 Jeremy Moskovich <jeremy@chromium.org>
2784 Reviewed by Dimitri Glazkov.
2786 https://bugs.webkit.org/show_bug.cgi?id=24456
2787 Split ColorChromium.cpp into Mac & Windows variants.
2788 Remove Chromium Dependency on platform/graphics/mac/ColorMac.mm since we
2789 ultimately need to take a different approach. For now, createCGColor()
2790 is copied from ColorMac.mm.
2792 No observable change in behavior, so no test.
2794 * platform/graphics/chromium/ColorChromium.cpp:
2795 (WebCore::focusRingColor):
2796 * platform/graphics/chromium/ColorChromiumMac.mm: Added.
2798 2009-03-19 Pavel Feldman <pfeldman@chromium.org>
2800 Reviewed by Dimitri Glazkov.
2802 https://bugs.webkit.org/show_bug.cgi?id=24675
2803 Unforking frontend: add custom InspectorController methods
2806 * bindings/v8/custom/V8InspectorControllerCustom.cpp: Added.
2808 2009-03-19 Jay Campan <jcampan@google.com>
2810 Reviewed by Dimitri Glazkov.
2812 https://bugs.webkit.org/show_bug.cgi?id=24625
2813 Adding an accessor to the currently selected index in the PopupMenuChromium.
2814 This is required for implementing the deletion of an autocomplete entry in Chromium.
2816 * platform/chromium/PopupMenuChromium.cpp:
2817 (WebCore::PopupContainer::selectedIndex):
2818 * platform/chromium/PopupMenuChromium.h:
2820 2009-03-19 Evan Stade <estade@chromium.org>
2822 Reviewed by Dimitri Glazkov.
2824 https://bugs.webkit.org/show_bug.cgi?id=24526
2825 Improve windows skia text stroking.
2827 Test: LayoutTests/svg/custom/struct-use-09-b.svg
2829 * platform/graphics/skia/SkiaFontWin.cpp: Close the path representing
2830 each font glyph polygon, rather than only closing the path once per
2831 letter. This fixes stroking for letters with multiple polygons, such
2833 (WebCore::getPathForGlyph):
2834 (WebCore::skiaDrawText):
2836 2009-03-19 Simon Hausmann <simon.hausmann@nokia.com>
2838 Reviewed by Tor Arne Vestbø.
2840 Fixed support for doing calls from JavaScript into NPAPI Plugins for the Qt port on Windows.
2842 Removed dead code for distinguishing between Widget and PluginView in the Qt port.
2844 * bindings/js/ScriptControllerQt.cpp:
2845 (WebCore::ScriptController::createScriptInstanceForWidget): Removed incorrect isNPAPI check.
2846 * plugins/PluginView.cpp:
2847 (WebCore::PluginView::PluginView): Removed m_isNPAPIPlugin variable.
2848 * plugins/PluginView.h: Removed setter/getter.
2849 * plugins/mac/PluginViewMac.cpp:
2850 (WebCore::PluginView::init): Removed call to setIsNPAPIPlugin.
2851 * plugins/qt/PluginViewQt.cpp:
2852 (WebCore::PluginView::init): Ditto.
2854 2009-03-19 Cameron Zwarich <cwzwarich@uwaterloo.ca>
2856 Reviewed by Oliver Hunt.
2858 Bug 24596: ASSERT in JSC::PropertySlot::slotBase @ iGoogle homepage
2859 <https://bugs.webkit.org/show_bug.cgi?id=24596>
2860 <rdar://problem/6686493>
2862 JSDOMWindow::customGetOwnPropertySlot() does an access check after calling
2863 JSGlobalObject::getOwnPropertySlot(). This causes the PropertySlot to be
2864 set twice, once to the value that is illegal to access, and then to undefined
2865 This causes an assertion failure in property access caching code.
2867 The fix is to do the access check before calling JSGlobalObject::getOwnPropertySlot().
2869 * bindings/js/JSDOMWindowCustom.h:
2870 (WebCore::JSDOMWindow::customGetOwnPropertySlot):
2872 2009-03-18 Alexey Proskuryakov <ap@webkit.org>
2874 Reviewed by Sam Weinig.
2876 https://bugs.webkit.org/show_bug.cgi?id=24676
2877 Simple cross-origin requests shouldn't dispatch upload progress events
2879 Test: http/tests/xmlhttprequest/simple-cross-origin-progress-events.html
2881 * loader/CrossOriginAccessControl.cpp: (WebCore::passesAccessControlCheck): Added a comment
2882 explaining the somewhat unexpected behavior of this function.
2884 * xml/XMLHttpRequestUpload.cpp: (WebCore::XMLHttpRequestUpload::hasListeners):
2885 * xml/XMLHttpRequestUpload.h:
2886 Report whether there are any event listeners registered.
2888 * xml/XMLHttpRequest.h: Added m_uploadEventsAllowed.
2890 * xml/XMLHttpRequest.cpp:
2891 (WebCore::XMLHttpRequest::createRequest): Set m_uploadEventsAllowed flag.
2892 (WebCore::XMLHttpRequest::makeSameOriginRequest): Ditto.
2893 (WebCore::XMLHttpRequest::makeCrossOriginAccessRequest): Ditto.
2894 (WebCore::XMLHttpRequest::makeSimpleCrossOriginAccessRequest): Set request body - it can be
2895 non-empty for POST requests.
2896 (WebCore::XMLHttpRequest::makeCrossOriginAccessRequestWithPreflight): Set m_uploadEventsAllowed flag.
2897 (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult): Ditto.
2898 (WebCore::XMLHttpRequest::abort): Only dispatch upload progress events if allowed.
2899 (WebCore::XMLHttpRequest::networkError): Ditto.
2900 (WebCore::XMLHttpRequest::abortError): Ditto.
2901 (WebCore::XMLHttpRequest::didSendData): Ditto.
2903 2009-03-18 Marc-Antoine Ruel <maruel@chromium.org>
2905 Reviewed by Darin Fisher.
2907 https://bugs.webkit.org/show_bug.cgi?id=24398
2908 Fix a crash when loading a svg file in Chromium's test_shell and
2909 then reloading the page.
2911 * history/BackForwardListChromium.cpp:
2912 (WebCore::BackForwardList::BackForwardList):
2913 (WebCore::BackForwardList::close):
2915 2009-03-18 Eric Carlson <eric.carlson@apple.com>
2917 Reviewed by Simon Fraser.
2919 Fix for <rdar://problem/6685235>
2920 <video> element poster cannot be set dynamically if not originally set up in HTML
2922 Allocate the media engine immediately so the plug-in proxy is available for
2923 scripting right away.
2925 * platform/graphics/MediaPlayer.cpp:
2926 (WebCore::MediaPlayer::MediaPlayer):
2928 2009-03-18 Beth Dakin <bdakin@apple.com>
2930 Reviewed by Dave Hyatt.
2932 Fix for <rdar://problem/6636747> REGRESSION (Safari 4 PB-r41326):
2933 Popup menu appears at the wrong location on page at http://
2934 www.signonsandiego.com/
2936 This was a regression from http://trac.webkit.org/changeset/40769,
2937 which changed the base class of RenderInline to
2938 RenderBoxModelObject rather than RenderBox.
2940 * rendering/RenderObject.cpp:
2941 (WebCore::RenderObject::offsetParent): offsetParent should return a
2942 RenderBoxModelObject rather than just a RenderBox, which is more
2945 2009-03-18 Anders Carlsson <andersca@apple.com>
2947 Reviewed by Darin Adler.
2949 <rdar://problem/6504776>
2950 CrashTracer: [USER] 188 crashes in Safari at com.apple.WebCore • WTF::HashTableIterator<WTF::RefPtr<WebCore::ResourceLoader>, ...
2952 Return early in case calling the client ends up spinning the run loop and completing/cancelling the load.
2954 * loader/NetscapePlugInStreamLoader.cpp:
2955 (WebCore::NetscapePlugInStreamLoader::didCancel):
2957 2009-03-18 David Levin <levin@chromium.org>
2959 Reviewed by Dimitri Glazkov.
2961 https://bugs.webkit.org/show_bug.cgi?id=24664
2962 Upstreaming v8 collection.h
2964 No change in behavior, so no test.
2966 * bindings/v8/V8Collection.h: Added.
2968 2009-03-18 Sam Weinig <sam@webkit.org>
2970 Reviewed by Simon Fraser.
2972 Fix for https://bugs.webkit.org/show_bug.cgi?id=23966
2973 REGRESSION: Custom arrow navigation functionality doesn't work at dropular.net
2974 <rdar://problem/6589657>
2976 Match the CSSOM spec for getClientRects and getBoundingClientRect by
2977 returning a 0x0 rect at the correct top/left position for empty inline
2980 * rendering/RenderInline.cpp:
2981 (WebCore::RenderInline::absoluteRects):
2982 (WebCore::RenderInline::absoluteQuads):
2984 2009-03-18 David Levin <levin@chromium.org>
2986 Reviewed by Eric Seidel.
2988 Match the changes done for windows in the bug
2989 https://bugs.webkit.org/show_bug.cgi?id=24530.
2991 No change in behavior, so no test.
2993 * rendering/RenderThemeChromiumLinux.cpp:
2994 (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
2996 2009-03-18 Dirk Schulze <krit@webkit.org>
2998 Reviewed by Holger Freyther.
3000 Added support for SVG's stroked texts to Qt.
3002 [Qt] SVGs stroked text support missing
3003 https://bugs.webkit.org/show_bug.cgi?id=24262
3005 * platform/graphics/qt/FontQt.cpp:
3006 (WebCore::Font::drawComplexText):
3008 2009-03-18 Mark Rowe <mrowe@apple.com>
3010 Reviewed by Alexey Proskuryakov.
3012 Fix fast/encoding/char-decoding.html with recent ICU.
3014 * platform/text/TextCodecICU.cpp:
3015 (WebCore::TextCodecICU::decode): Look for gb18030 case-insensitively,
3016 as newer versions of ICU use GB18030 as the canonical name.
3018 2009-03-17 David Levin <levin@chromium.org>
3020 Reviewed by Dimitri Glazkov.
3022 https://bugs.webkit.org/show_bug.cgi?id=24662
3023 Chromium build fixes.
3025 Bug https://bugs.webkit.org/show_bug.cgi?id=24663 tracks
3026 the invalid implementation of ScriptCallStack.
3028 No change in behavior, so no test.
3030 * bindings/v8/ScriptCallStack.h:
3031 (WebCore::ScriptCallStack::state):
3032 * platform/graphics/skia/PlatformContextSkia.cpp:
3033 (PlatformContextSkia::drawRect):
3035 2009-03-17 David Carson <dacarson@apple.com>
3037 Reviewed by David Hyatt.
3039 Add anchor elements to the simple style sheet so that applications that
3040 are using WebKit just for simple text and links will also take advantage
3043 * css/CSSStyleSelector.cpp:
3044 (WebCore::elementCanUseSimpleDefaultStyle):
3046 2009-03-17 Darin Adler <darin@apple.com>
3048 Reviewed by Adele Peterson.
3050 <rdar://problem/6687005> Need support for new move-left/right selectors.
3052 * editing/EditorCommand.cpp:
3053 (WebCore::executeMoveToLeftEndOfLine): Added.
3054 (WebCore::executeMoveToLeftEndOfLineAndModifySelection): Added.
3055 (WebCore::executeMoveToRightEndOfLine): Added.
3056 (WebCore::executeMoveToRightEndOfLineAndModifySelection): Added.
3057 Added command entries for the functions above.
3059 2009-03-17 Ojan Vafai <ojan@chromium.org>
3061 Reviewed by Adele Peterson.
3063 Put the padding inside scrollbars on textareas.
3064 https://bugs.webkit.org/show_bug.cgi?id=24370
3066 Put the padding inside the scrollbars on textareas. This is done by moving the
3067 overflow from the shadowNode to the RenderTextControlMultiline. As a result,
3068 all of the scroll handing methods that RenderTextControl overrides can be moved
3069 down into RenderTextControlSingleLine since RenderTextControlMultiline can now
3070 just use RenderBlock's versions. This also allows RenderTextControlMultiLine to
3071 no longer need a custom layout method since the shadowNode can now just size
3074 * css/CSSStyleSelector.cpp:
3075 (WebCore::CSSStyleSelector::adjustRenderStyle):
3076 * rendering/RenderTextControl.cpp:
3077 (WebCore::RenderTextControl::styleDidChange):
3078 (WebCore::RenderTextControl::selection):
3079 (WebCore::RenderTextControl::calcHeight):
3080 (WebCore::RenderTextControl::hitInnerTextElement):
3081 * rendering/RenderTextControl.h:
3082 * rendering/RenderTextControlMultiLine.cpp:
3083 (WebCore::RenderTextControlMultiLine::nodeAtPoint):
3084 (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
3085 * rendering/RenderTextControlMultiLine.h:
3086 * rendering/RenderTextControlSingleLine.cpp:
3087 (WebCore::RenderTextControlSingleLine::styleDidChange):
3088 (WebCore::RenderTextControlSingleLine::autoscroll):
3089 (WebCore::RenderTextControlSingleLine::scrollWidth):
3090 (WebCore::RenderTextControlSingleLine::scrollHeight):
3091 (WebCore::RenderTextControlSingleLine::scrollLeft):
3092 (WebCore::RenderTextControlSingleLine::scrollTop):
3093 (WebCore::RenderTextControlSingleLine::setScrollLeft):
3094 (WebCore::RenderTextControlSingleLine::setScrollTop):
3095 (WebCore::RenderTextControlSingleLine::scroll):
3096 * rendering/RenderTextControlSingleLine.h:
3097 * rendering/TextControlInnerElements.cpp:
3098 (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
3099 (WebCore::RenderTextControlInnerBlock::positionForPoint):
3100 (WebCore::TextControlInnerTextElement::createRenderer):
3102 2009-03-17 Darin Adler <darin@apple.com>
3104 Reviewed by David Hyatt.
3106 Bug 24517: REGRESSION (r41552): innerHTML does an updateLayout -- unneeded and can be slow
3107 https://bugs.webkit.org/show_bug.cgi?id=24517
3109 * editing/DeleteButtonController.cpp:
3110 (WebCore::DeleteButtonController::enable): Added a call to updateRendering, since
3111 determining whether to display the delete button involves style and updateRendering
3112 also updates style (should probably be named updateStyle, in fact). Not needed to fix
3113 this bug, but would have prevented the crash that led to this bug in the first place.
3115 * editing/EditCommand.cpp:
3116 (WebCore::EditCommand::EditCommand): Get rid of unneeded null check. All frames have
3117 delete button controllers.
3118 * editing/Editor.cpp:
3119 (WebCore::Editor::rangeForPoint): Ditto.
3121 * editing/markup.cpp:
3122 (WebCore::appendStartMarkup): Changed a "&" to a "&&" so that generating markup
3123 doesn't depend on renderers at all when the convertBlocksToInlines boolean is false.
3124 This allows us to omit the call to updateLayoutIgnorePendingStylesheets in the
3125 createMarkup function that's called by innerHTML.
3126 (WebCore::MarkupAccumulator::appendMarkup): Turned this into a class with a member
3127 function. Added a feature where the accumulator will skip a node. Moved arguments
3128 that don't change during recursion into an object. This function still is a bit
3129 inefficient, since it creates a new HashMap at every level as it recurses, but for now
3130 I did not tackle that. Also replaced the onlyIncludeChildren boolean with EChildrenOnly
3131 for consistency and clarity.
3132 (WebCore::createMarkup): Removed the call to updateLayoutIgnorePendingStylesheets.
3133 Instead of calling disable/enable on the delete button controller's container element,
3134 pass it in to the markup accumulator as a node to skip.
3136 2009-03-17 Scott Violet <sky@google.com>
3138 Reviewed by Eric Seidel.
3140 https://bugs.webkit.org/show_bug.cgi?id=24651
3141 Skia does not always render text fill/stroke pattern/gradient/color correctly
3143 Changes Skia's font rendering to only render gradient/pattern if current
3144 color space indicates the gradient/pattern should be used.
3145 This is covered by LayoutTests/fast/canvas/canvas-text-alignment.html .
3147 * platform/graphics/GraphicsContext.cpp:
3148 (WebCore::GraphicsContext::strokeColorSpace):
3149 (WebCore::GraphicsContext::fillColorSpace):
3150 * platform/graphics/GraphicsContext.h:
3152 * platform/graphics/GraphicsContextPrivate.h:
3153 * platform/graphics/skia/SkiaFontWin.cpp:
3154 (WebCore::paintSkiaText):
3156 2009-03-17 Adele Peterson <adele@apple.com>
3158 Reviewed by Darin Adler.
3160 Fix for https://bugs.webkit.org/show_bug.cgi?id=24655
3161 <rdar://problem/6633727> Hitting return at the end of a line with an anchor jumps me to the bottom of the message
3163 Test: editing/inserting/6633727.html
3165 This changes does a few things:
3166 1) Renames pos to insertionPosition.
3167 2) Eliminates "startNode". It doesn't work well to consider the node separately from the insertionPosition.
3168 The insertionPosition gets updated at various times, and it seems likely that startNode can get out of sync.
3169 3) Before building up a list of ancestors to move around when we insert the new block, make sure to use the deepest
3170 representation of the insertionPosition, so all ancestor nodes are correctly included.
3172 * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply):
3174 2009-03-17 Laszlo Gombos <laszlo.1.gombos@nokia.com>
3176 Reviewed by Kevin Ollivier.
3178 https://bugs.webkit.org/show_bug.cgi?id=24115
3179 Introduce platform independent stubs for plugins.
3181 * plugins/PluginDataNone.cpp: Copied from WebCore/plugins/wx/PluginDataWx.cpp.
3182 * plugins/PluginPackageNone.cpp: Copied from WebCore/plugins/wx/PluginPackageWx.cpp.
3183 * plugins/PluginViewNone.cpp: Copied from WebCore/plugins/wx/PluginViewWx.cpp.
3184 * plugins/wx/PluginDataWx.cpp: Removed.
3185 * plugins/wx/PluginPackageWx.cpp: Removed.
3186 * plugins/wx/PluginViewWx.cpp: Removed.
3189 2009-03-17 Darin Adler <darin@apple.com>
3191 Earlier version reviewed by Adele Peterson.
3193 Bug 24304: REGRESSION (r39864): Hitting the space bar to select an <input type=radio>
3194 or push an <input type=button> or <button> causes the page to scroll down.
3196 Would be best to add a regression test for Windows eventually; tested that this has
3197 no effect on the Mac OS X platform.
3199 * html/HTMLInputElement.cpp:
3200 (WebCore::HTMLInputElement::defaultEventHandler): Added FIXMEs and tweaked formatting.
3201 Use the code that calls the base class's defaultEventHandler early only in the cases
3202 where it's needed: keydown and keypress events in text fields. In other cases, do the
3203 more typical thing and call the default handler only at the end of the function.
3204 This function already had code to make sure the keypress event for space never gets
3205 through, but it was running too late since the scrolling code was moved into the
3206 base class default event handler.
3208 2009-03-17 Simon Fraser <simon.fraser@apple.com>
3210 Reviewed by Dave Hyatt
3212 https://bugs.webkit.org/show_bug.cgi?id=24632
3214 Fix repaint issues when composited layers come and go (only applies
3215 when ACCELERATED_COMPOSITING is turned on).
3217 * rendering/RenderLayer.cpp:
3218 (WebCore::RenderLayer::RenderLayer):
3219 * rendering/RenderLayer.h:
3220 (WebCore::RenderLayer::mustOverlayCompositedLayers):
3221 (WebCore::RenderLayer::setMustOverlayCompositedLayers):
3222 * rendering/RenderLayerBacking.cpp:
3223 (WebCore::RenderLayerBacking::RenderLayerBacking):
3224 * rendering/RenderLayerBacking.h:
3226 Move what used to be the 'forceCompositingLayer' flag from RenderLayerBacking
3227 to RenderLayer, because we don't want the side-effects of creating RenderLayerBacking
3228 when setting this flag.
3230 * rendering/RenderLayerCompositor.cpp:
3231 (WebCore::RenderLayerCompositor::updateLayerCompositingState):
3232 When a RenderLayer flips into or out of compositing mode, compute a repaint
3233 rect relative to the containerForRepaint, and repaint it.
3235 (WebCore::RenderLayerCompositor::computeCompositingRequirements):
3236 Call layer->setMustOverlayCompositedLayers() rather than setForcedCompositingLayer().
3238 (WebCore::RenderLayerCompositor::needsToBeComposited):
3239 (WebCore::RenderLayerCompositor::requiresCompositingLayer):
3240 (WebCore::RenderLayerCompositor::requiresCompositingForTransform):
3241 (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
3242 * rendering/RenderLayerCompositor.h:
3244 Rename requiresCompositingLayerForTransform() to requiresCompositingForTransform()
3245 and make it a class static method to match requiresCompositingForAnimation(). Both
3246 now take RenderObjects, rathern than RenderLayers.
3248 * rendering/style/RenderStyle.h:
3249 (WebCore::InheritedFlags::hasTransformRelatedProperty):
3250 Minor tidyup using convenience methods added in an earlier commit.
3252 2009-03-17 Simon Fraser <simon.fraser@apple.com>
3254 Reviewed by Darin Adler
3256 https://bugs.webkit.org/show_bug.cgi?id=24396
3259 Add WTF_USE_ACCELERATED_COMPOSITING, defined to 0 for now, and add some
3260 comments to make the #ifdefs more readable.
3262 * css/CSSComputedStyleDeclaration.cpp:
3263 (WebCore::computedTransform):
3264 Add a comment to mention that we don't flatten the matrix.
3266 * css/MediaQueryEvaluator.cpp:
3267 (WebCore::transform_3dMediaFeatureEval):
3268 Have the 'transform-3d' media query evaluate to 'true' if 3d-rendering
3271 * platform/graphics/mac/GraphicsLayerCA.mm:
3272 (WebCore::GraphicsLayerCA::animateTransform):
3273 No need for the #ifdef here. If we don't support 3d, we will have already flattened
3276 * platform/graphics/transforms/TransformationMatrix.cpp:
3277 (WebCore::TransformationMatrix::makeAffine):
3278 * platform/graphics/transforms/TransformationMatrix.h:
3279 New method to convert the matrix to an affine matrix by throwing a way the non-affine
3282 * rendering/RenderLayer.cpp:
3283 (WebCore::RenderLayer::updateTransform):
3284 (WebCore::RenderLayer::currentTransform):
3285 * rendering/RenderLayerBacking.cpp:
3286 (WebCore::RenderLayerBacking::updateLayerTransform):
3287 If 3d rendering is not supported, convert the matrix to an affine matrix
3288 which can be rendered, and used for hit testing.
3290 * rendering/RenderLayerCompositor.cpp:
3291 Change the name of the exported symbol that webkitdirs.pm uses to know if
3292 3d rendering is supported. There is no other 3d-rendering-specific symbol we can sniff.
3294 * rendering/RenderObject.cpp:
3295 (WebCore::RenderObject::transformFromContainer):
3296 Only take perspective into account if 3d rendering is supported.
3298 * rendering/RenderObject.h:
3299 (WebCore::makeMatrixRenderable):
3300 Utility method that flattens a matrix if 3d rendering is not supported.
3302 2009-03-17 Kevin Ollivier <kevino@theolliviers.com>
3304 wx build fix. Fix typo after mouse wheel changes.
3306 * platform/wx/MouseWheelEventWx.cpp:
3307 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3309 2009-03-17 Darin Adler <darin@apple.com>
3311 * inspector/ConsoleMessage.cpp:
3312 (WebCore::ConsoleMessage::isEqual): Fix build, remove stray parenthesis.
3314 2009-03-17 Darin Adler <darin@apple.com>
3316 Fix crash seen right away when running run-webkit-tests.
3318 * inspector/ConsoleMessage.cpp:
3319 (WebCore::ConsoleMessage::isEqual): Restore assertion to its behavior pre-refactoring.
3320 Also tweaked formatting a bit.
3322 2009-03-17 Alexey Proskuryakov <ap@webkit.org>
3324 Reviewed by Darin Adler.
3326 HTMLSelectElement::add() doesn't look at exception code returned from insertBefore(), so
3327 it doesn't need to zero it out before calling.
3329 * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::add): Removed "ec = 0" line.
3331 2009-03-17 Dan Bernstein <mitz@apple.com>
3333 Reviewed by Adam Roben.
3335 - WebCore part of adding a mechanism for controlling the caching of
3336 responses through WebFrameLoaderClient
3338 Mac already has such a mechanism, and this adds one for CFNetwork ports.
3340 * WebCore.vcproj/WebCore.vcproj: Added EmptyClients.h
3341 and ResourceLoaderCFNet.cpp.
3343 * loader/EmptyClients.h:
3344 (WebCore::EmptyFrameLoaderClient::shouldCacheResponse): Added an
3345 implementation that always returns true.
3347 * loader/FrameLoaderClient.h: Declared shouldCacheResponse().
3349 * loader/ResourceLoader.h: Ditto.
3351 * loader/cf/ResourceLoaderCFNet.cpp: Added.
3352 (WebCore::ResourceLoader::shouldCacheResponse): Added. Calls through to
3353 FrameLoaderClient::shouldCacheResponse().
3355 * platform/network/ResourceHandleClient.h:
3356 (WebCore::ResourceHandleClient::shouldCacheResponse): Added an
3357 implementation that always returns true.
3359 * platform/network/cf/ResourceHandleCFNet.cpp:
3360 (WebCore::willCacheResponse): Added a call to
3361 ResourceHandleClient::shouldCacheResponse(). If the client returns
3362 false, return 0, which will prevent CFNetwork from caching the response.
3364 2009-03-17 Alexey Proskuryakov <ap@webkit.org>
3366 Reviewed by Darin Adler.
3368 https://bugs.webkit.org/show_bug.cgi?id=13287
3369 Cannot change SELECT to a dynamically created option
3371 Tests: fast/forms/add-and-remove-option.html
3372 fast/forms/add-remove-option-modification-event.html
3373 fast/forms/add-selected-option.html
3374 fast/forms/select-cache-desynchronization.html
3376 * dom/ContainerNode.cpp:
3377 (WebCore::dispatchChildInsertionEvents): Increment DOM tree version. This will happen when
3378 dispatching DOMSubtreeModified again, but the version should be incremented for event
3379 listeners to have an up to date view of the DOM.
3380 (WebCore::dispatchChildRemovalEvents): Ditto.
3382 * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::insertedIntoTree):
3383 Make sure that the select element knows about its new selected option.
3385 * html/HTMLOptionElement.h: Use insertedIntoTree() instead of insertedIntoDocument(),
3386 because DOM also needs to be updated for forms that are not in document yet. Similar
3387 problems exist for node removing, but removedFromTree() is called at a wrong time, so
3388 those problems cannot be fixed without deeper refactoring.
3390 * html/HTMLSelectElement.cpp:
3391 (WebCore::HTMLSelectElement::setRecalcListItems): Reset m_activeSelectionAnchorIndex - it
3392 doesn't make sense to keep the anchor after programmatically changing the selection, and
3393 keeping it was causing a failure in fast/forms/listbox-selection.html.
3395 * html/HTMLSelectElement.h: Removed overrides for ContainerNode methods that only called
3396 base class versions.
3398 2009-03-17 Steve Falkenburg <sfalken@apple.com>
3400 <rdar://problem/6690324> Accessing FTP sites reads unallocated memory, can result in garbled entries or crashes
3402 Reviewed by Darin Adler.
3404 * loader/FTPDirectoryDocument.cpp:
3405 (WebCore::FTPDirectoryTokenizer::parseAndAppendOneLine): Assign CString to a local while we hold pointers into it.
3407 2009-03-16 David Hyatt <hyatt@apple.com>
3409 <rdar://problem/6648411> REGRESSION: Layout of page is wrong at http://www.popcap.com/
3411 Make sure that the initial shouldPaint check that looks at enclosingLayers properly skips over
3412 layers that don't paint themselves. This is done by adding a new enclosingSelfPaintingLayer method
3413 so that RenderObjects can walk up the enclosing layer chain and skip any layers that don't paint
3416 Reviewed by Darin Adler.
3418 Added fast/block/float/overlapping-floats-with-overflow-hidden.html
3421 * rendering/RenderBlock.cpp:
3422 (WebCore::RenderBlock::addOverhangingFloats):
3423 * rendering/RenderObject.cpp:
3424 (WebCore::RenderObject::enclosingSelfPaintingLayer):
3425 * rendering/RenderObject.h:
3427 2009-03-17 Xan Lopez <xlopez@igalia.com>
3429 Reviewed by Holger Freyther.
3431 https://bugs.webkit.org/show_bug.cgi?id=24592
3432 [GTK] Crash in FcPatternHash
3436 * platform/graphics/gtk/FontPlatformDataGtk.cpp:
3437 (WebCore::FontPlatformData::operator=):
3438 * platform/graphics/gtk/FontPlatformDataPango.cpp:
3440 2009-03-17 Xan Lopez <xlopez@igalia.com>
3442 Reviewed by Holger Freyther.
3444 https://bugs.webkit.org/show_bug.cgi?id=24592
3445 [GTK] Crash in FcPatternHash
3447 Sanitize memory management in pango fonts.
3449 Release memory allocated by FontPlatformDataPango in its own
3450 destructor instead of doing it from other classes, and add copy
3451 constructor and '=' operator to be able to track referenced
3454 * platform/graphics/gtk/FontPlatformDataPango.cpp:
3455 (WebCore::FontPlatformData::~FontPlatformData):
3456 (WebCore::FontPlatformData::operator=):
3457 (WebCore::FontPlatformData::FontPlatformData):
3458 * platform/graphics/gtk/SimpleFontDataPango.cpp:
3460 2009-03-17 Darin Adler <darin@apple.com>
3462 Reviewed by Alexey Proskuryakov.
3464 Bug 24624: Crash in imageLoadEventTimerFired after adoptNode used on <img>,
3465 seen with inspector, which uses adoptNode
3466 https://bugs.webkit.org/show_bug.cgi?id=24624
3467 rdar://problem/6422850
3469 Test: fast/dom/HTMLImageElement/image-load-cross-document.html
3472 (WebCore::Document::Document): Removed m_imageLoadEventTimer.
3473 (WebCore::Document::detach): Removed m_imageLoadEventDispatchSoonList and
3474 m_imageLoadEventDispatchingList.
3475 (WebCore::Document::implicitClose): Called ImageLoader::dispatchPendingLoadEvents
3476 instead of dispatchImageLoadEventsNow.
3478 * dom/Document.h: Removed ImageLoader, dispatchImageLoadEventSoon,
3479 dispatchImageLoadEventsNow, removeImage, m_imageLoadEventDispatchSoonList,
3480 m_imageLoadEventDispatchingList, m_imageLoadEventTimer, and imageLoadEventTimerFired.
3482 * loader/ImageLoader.cpp:
3483 (WebCore::loadEventSender): Added. Returns the single global ImageLoadEventSender
3484 object used privately as the target of the load event timer.
3485 (WebCore::ImageLoader::~ImageLoader): Call ImageLoadEventSender::cancelLoadEvent
3486 rather than Document::removeImage.
3487 (WebCore::ImageLoader::setImage): Use m_element directly, not element().
3488 (WebCore::ImageLoader::updateFromElement): Ditto. Also name the local variable
3489 document instead of doc.
3490 (WebCore::ImageLoader::notifyFinished): Call ImageLoadEventSender::dispatchLoadEventSoon
3491 rather than Document::dispatchImageLoadEventSoon.
3492 (WebCore::ImageLoader::dispatchPendingLoadEvent): Added. Handles the common logic
3493 about when load events can be dispatched so that dispatchLoadEvent only has to
3494 have the specific part for each derived class. This includes a check that the
3495 document is attached, which used to be handled by having documents empty out the
3496 image load event vectors in the detach function.
3497 (WebCore::ImageLoader::dispatchPendingLoadEvents): Added. Calls the appropriate
3498 function on the ImageLoadEventSender, which avoids the need to have that class be
3499 public in the ImageLoader header.
3500 (WebCore::ImageLoadEventSender::ImageLoadEventSender): Added. Has the code that
3501 was previously in the Document constructor.
3502 (WebCore::ImageLoadEventSender::dispatchLoadEventSoon): Added. Has the code that
3503 was previously in Document::dispatchImageLoadEventSoon.
3504 (WebCore::ImageLoadEventSender::cancelLoadEvent): Added. Has the code that was
3505 previously in Document::removeImage.
3506 (WebCore::ImageLoadEventSender::dispatchPendingLoadEvents): Added. Has the code
3507 that was previously in Document::dispatchImageLoadEventsNow.
3508 (WebCore::ImageLoadEventSender::timerFired): Added. Calls dispatchPendingLoadEvents.
3510 * loader/ImageLoader.h: Improved comments. Made the virtual functions private
3511 or protected rather than public. Added static dispatchPendingLoadEvents function
3512 for use by Document and private dispatchPendingLoadEvent function for use by
3513 ImageLoadEventSender. Made setLoadingImage private and eliminated
3514 setHaveFiredLoadEvent since that can all be done inside the class without any
3517 * html/HTMLImageLoader.cpp:
3518 (WebCore::HTMLImageLoader::dispatchLoadEvent): Removed logic to check whether a
3519 load event already fired and whether image() is 0. These are now both base class
3521 * svg/SVGImageLoader.cpp:
3522 (WebCore::SVGImageLoader::dispatchLoadEvent): Ditto.
3523 * wml/WMLImageLoader.cpp:
3524 (WebCore::WMLImageLoader::dispatchLoadEvent): Ditto.
3526 2009-03-17 Dimitri Glazkov <dglazkov@chromium.org>
3528 Reviewed by Timothy Hatcher.
3530 https://bugs.webkit.org/show_bug.cgi?id=24623
3531 Refactor ConsoleMessage to use ScriptFuncitonCall and eliminate JSC
3534 * bindings/js/ScriptFunctionCall.cpp:
3535 (WebCore::ScriptFunctionCall::appendArgument): Added uint and ScriptString-taking methods.
3536 * bindings/js/ScriptFunctionCall.h:
3537 * bindings/js/ScriptObjectQuarantine.cpp:
3538 (WebCore::quarantineValue): Added generic ScriptValue quarantine helper.
3539 * bindings/js/ScriptObjectQuarantine.h:
3540 * bindings/js/ScriptValue.cpp:
3541 (WebCore::ScriptValue::isEqual): Added.
3542 * bindings/js/ScriptValue.h:
3543 * inspector/ConsoleMessage.cpp:
3544 (WebCore::ConsoleMessage::ConsoleMessage):
3545 (WebCore::ConsoleMessage::addToConsole): Added.
3546 (WebCore::ConsoleMessage::isEqual): Changed to use ScriptValue::isEqual.
3547 * inspector/ConsoleMessage.h:
3548 (WebCore::ConsoleMessage::incrementCount): Added.
3549 * inspector/InspectorController.cpp:
3550 (WebCore::InspectorController::addConsoleMessage): Changed to use ConsoleMessage::addToConsole.
3551 (WebCore::InspectorController::populateScriptObjects): Ditto.
3552 * inspector/InspectorController.h:
3554 2009-03-17 Kevin Ollivier <kevino@theolliviers.com>
3556 Reviewed by Mark Rowe.
3558 Get BUILDING_ON_* defines from Platform.h.
3560 https://bugs.webkit.org/show_bug.cgi?id=24630
3564 2009-03-16 Xan Lopez <xlopez@igalia.com>
3566 Reviewed by Holger Freyther.
3568 https://bugs.webkit.org/show_bug.cgi?id=24592
3569 [GTK] Crash in FcPatternHash
3571 Sanitize memory management in gtk fonts.
3573 Release memory allocated by FontPlatformDataGtk in its own
3574 destructor instead of doing it from other classes, and add copy
3575 constructor and '=' operator to be able to track referenced
3578 * platform/graphics/gtk/FontPlatformData.h:
3579 * platform/graphics/gtk/FontPlatformDataGtk.cpp:
3580 (WebCore::FontPlatformData::operator=):
3581 (WebCore::FontPlatformData::FontPlatformData):
3582 (WebCore::FontPlatformData::~FontPlatformData):
3583 * platform/graphics/gtk/SimpleFontDataGtk.cpp:
3584 (WebCore::SimpleFontData::platformDestroy):
3586 2009-03-17 Ariya Hidayat <ariya.hidayat@nokia.com>
3588 Build fix for Qt < 4.5.
3590 As reported by Yael Aharon <yael.aharon@nokia.com>
3592 * platform/graphics/qt/GraphicsContextQt.cpp:
3593 (WebCore::GraphicsContext::drawLine):
3595 2009-03-17 Alexey Proskuryakov <ap@webkit.org>
3597 Reviewed by Sam Weinig.
3599 https://bugs.webkit.org/show_bug.cgi?id=24614
3600 Access control checks are different in cached and uncached cases
3602 Test: http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached.html
3604 * loader/CrossOriginAccessControl.cpp:
3605 (WebCore::isOnAccessControlSimpleRequestMethodWhitelist): Factored out simple method
3606 check for use in both cached and uncached cases. In cached case, an old definition that
3607 omitted HEAD was still used.
3608 (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist): Check that content type has an
3609 allowed value. This is needed in all call sites. Also changed to compare MIME type, not
3611 (WebCore::isSimpleCrossOriginAccessRequest): Use the above methods.
3613 * loader/CrossOriginAccessControl.h: Expose isOnAccessControlSimpleRequestMethodWhitelist.
3615 * loader/CrossOriginPreflightResultCache.cpp:
3616 (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod):
3617 (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
3618 Use the new checks for simple method and header.
3620 2009-03-16 Gustavo Noronha Silva <gns@gnome.org> and Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
3622 Reviewed by Mark Rowe.
3624 https://bugs.webkit.org/show_bug.cgi?id=24638
3625 [GTK] HTML5 media tags do not work
3627 Add a repaint-requested signal to the video sink, and use it to
3628 call MediaPlayerPrivate::repaint, so that the video actually
3631 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3632 (WebCore::mediaPlayerPrivateRepaintCallback):
3633 (WebCore::MediaPlayerPrivate::createGSTPlayBin):
3634 * platform/graphics/gtk/VideoSinkGStreamer.cpp:
3635 (webkit_video_sink_idle_func):
3636 (webkit_video_sink_render):
3637 (webkit_video_sink_class_init):
3639 2009-03-16 Gustavo Noronha Silva <gns@gnome.org> and Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
3641 Reviewed by Holger Freyther.
3643 https://bugs.webkit.org/show_bug.cgi?id=24638
3644 [GTK] HTML5 media tags do not work
3646 Work-around the fact that gst_element_query_duration returns true even
3647 though it is unable to figure out the duration when in stream (push)
3650 * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3651 (WebCore::MediaPlayerPrivate::duration):
3653 2009-03-16 Darin Adler <darin@apple.com>
3655 Reviewed by Kevin Decker.
3657 <rdar://problem/6642742> Top Sites malfunction when switching text zoom mode
3660 (WebCore::Frame::setNeedsReapplyStyles): Don’t do anything if the frame is
3661 currently showing a non-HTML view.
3663 2009-03-16 Darin Adler <darin@apple.com>
3665 Reviewed by Adele Peterson.
3667 Bug 24629: moving forward or backward a paragraph fails at edge of document
3668 https://bugs.webkit.org/show_bug.cgi?id=24629
3669 rdar://problem/6544413
3671 Test: editing/selection/move-paragraph-document-edges.html
3673 * editing/visible_units.cpp:
3674 (WebCore::previousParagraphPosition): Use the last result from
3675 previousLinePosition rather than going all the way back to what was originally
3676 passed in when we hit exception cases like null or not moving. This correctly
3677 inherits the behavior of previousLinePosition when we are in a paragraph at the
3679 (WebCore::nextParagraphPosition): Ditto.
3681 2009-03-16 Darin Adler <darin@apple.com>
3683 Reviewed by Adele Peterson.
3685 Bug 24619: RenderObject::selectionStartEnd does not need to be a virtual function
3686 https://bugs.webkit.org/show_bug.cgi?id=24619
3688 * rendering/RenderObject.h: Remove virtual keyword from selectionStartEnd declaration.
3689 * rendering/RenderView.h: Ditto.
3691 2009-03-16 Peter Kasting <pkasting@google.com>
3693 Reviewed by David Hyatt.
3695 https://bugs.webkit.org/show_bug.cgi?id=24368
3696 DOM scroll events should be based off the actual number of wheel
3697 ticks, not off the number of lines scrolled. This matches IE.
3700 (WebCore::Node::dispatchWheelEvent):
3701 * dom/WheelEvent.cpp:
3702 (WebCore::WheelEvent::WheelEvent):
3704 (WebCore::WheelEvent::create):
3705 * platform/PlatformWheelEvent.h:
3706 (WebCore::PlatformWheelEvent::wheelTicksX):
3707 (WebCore::PlatformWheelEvent::wheelTicksY):
3708 * platform/gtk/WheelEventGtk.cpp:
3709 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3710 * platform/mac/WheelEventMac.mm:
3711 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3712 * platform/qt/WheelEventQt.cpp:
3713 * platform/win/WheelEventWin.cpp:
3714 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3715 * platform/wx/MouseWheelEventWx.cpp:
3716 (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3718 2009-03-16 Simon Fraser <simon.fraser@apple.com>
3720 Reviewed by Eric Seidel
3722 Clean up a few issues in the Animation code:
3724 * page/animation/AnimationBase.cpp:
3725 (WebCore::AnimationBase::updateStateMachine):
3728 (WebCore::AnimationBase::willNeedService):
3729 Don't round to float, use std::max
3731 * page/animation/AnimationController.cpp:
3732 (WebCore::AnimationControllerPrivate::startTimeResponse):
3733 Fix erroneously copied line to null out m_lastResponseWaiter.
3735 2009-03-12 David Hyatt <hyatt@apple.com>
3737 Reviewed by Eric Seidel
3739 https://bugs.webkit.org/show_bug.cgi?id=13632
3741 Overflow scrolling needs to account for the bottom/right padding on the object itself as well
3742 as for bottom/right margins on children.
3744 Existing tests cover this.
3746 * rendering/RenderBlock.cpp:
3747 (WebCore::RenderBlock::lowestPosition):
3748 (WebCore::RenderBlock::rightmostPosition):
3750 2009-03-16 Sam Weinig <sam@webkit.org>
3752 Reviewed by Anders Carlsson.
3754 Fix for <rdar://problem/6320555>
3755 Add an upper limit for setting HTMLSelectElement.length.
3757 Test: fast/forms/select-max-length.html
3759 * html/HTMLSelectElement.cpp:
3760 (WebCore::HTMLSelectElement::setOption):
3761 (WebCore::HTMLSelectElement::setLength):
3763 2009-03-16 Eric Carlson <eric.carlson@apple.com>
3765 Reviewed by Simon Fraser.
3767 <rdar://problem/6686721> Media document crash in 64-bit WebKit
3769 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3770 (WebCore::MediaPlayerPrivate::createQTMovieView): QTMovieContentViewClass is only used when
3771 rendering inline with old versions of QuickTime, so don't look for it when we are in a
3774 2009-03-16 Dimitri Glazkov <dglazkov@chromium.org>
3776 Reviewed by Timothy Hatcher.
3778 https://bugs.webkit.org/show_bug.cgi?id=24590
3779 Refactor InspectorDOMStorageResource to use ScriptFunctionCall.
3781 * bindings/js/ScriptFunctionCall.cpp:
3782 (WebCore::ScriptFunctionCall::appendArgument): Added method for bool argument.
3783 * bindings/js/ScriptFunctionCall.h: Ditto, also cleaned up.
3784 * bindings/js/ScriptObjectQuarantine.cpp:
3785 (WebCore::getQuarantinedScriptObject): Added Storage helper.
3786 * bindings/js/ScriptObjectQuarantine.h: Ditto.
3787 * inspector/InspectorController.cpp:
3788 (WebCore::InspectorController::populateScriptObjects): Changed to use bind method.
3789 (WebCore::InspectorController::resetScriptObjects): Changed to use unbind method.
3790 (WebCore::InspectorController::didUseDOMStorage): Changed to use isSameHostAndType and bind methods.
3791 * inspector/InspectorController.h: Removed add/remove methods for DOM storage.
3792 * inspector/InspectorDOMStorageResource.cpp:
3793 (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
3794 (WebCore::InspectorDOMStorageResource::isSameHostAndType): Added.
3795 (WebCore::InspectorDOMStorageResource::bind): Added.
3796 (WebCore::InspectorDOMStorageResource::unbind): Added.
3797 * inspector/InspectorDOMStorageResource.h:
3799 2009-03-16 Mike Belshe <mike@belse.com>
3801 Reviewed by Dimitri Glazkov.
3803 https://bugs.webkit.org/show_bug.cgi?id=24580
3804 Fix query() to match KURL behavior, this time with the code that
3807 * platform/KURLGoogle.cpp:
3808 (WebCore::KURL::query): Fix copy/paste mistake.
3810 2009-03-16 Alexey Proskuryakov <ap@webkit.org>
3812 Reviewed by Darin Adler.
3814 https://bugs.webkit.org/show_bug.cgi?id=21752
3815 REGRESSION: referencing XHR constructor for a not yet loaded frame permanently breaks it
3817 Test: fast/dom/Window/window-early-properties-xhr.html
3819 For some transitions, the Window object is not replaced, but Document is. When this happened,
3820 window.document property was updated, but references to Document kept in cached constructors
3823 * bindings/js/JSAudioConstructor.cpp:
3824 (WebCore::JSAudioConstructor::JSAudioConstructor):
3825 (WebCore::JSAudioConstructor::document):
3826 (WebCore::JSAudioConstructor::mark):
3827 * bindings/js/JSAudioConstructor.h:
3828 * bindings/js/JSImageConstructor.cpp:
3829 (WebCore::JSImageConstructor::JSImageConstructor):
3830 (WebCore::JSImageConstructor::document):
3831 (WebCore::JSImageConstructor::mark):
3832 * bindings/js/JSImageConstructor.h:
3833 * bindings/js/JSMessageChannelConstructor.cpp:
3834 (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
3835 (WebCore::JSMessageChannelConstructor::scriptExecutionContext):
3836 (WebCore::JSMessageChannelConstructor::mark):
3837 * bindings/js/JSMessageChannelConstructor.h:
3838 * bindings/js/JSOptionConstructor.cpp:
3839 (WebCore::JSOptionConstructor::JSOptionConstructor):
3840 (WebCore::JSOptionConstructor::document):
3841 (WebCore::JSOptionConstructor::mark):
3842 * bindings/js/JSOptionConstructor.h:
3843 * bindings/js/JSXMLHttpRequestConstructor.cpp:
3844 (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
3845 (WebCore::JSXMLHttpRequestConstructor::scriptExecutionContext):
3846 (WebCore::JSXMLHttpRequestConstructor::mark):
3847 * bindings/js/JSXMLHttpRequestConstructor.h:
3848 Changed cached constructors to keep a reference to Window, not Document.
3850 2009-03-15 Alexey Proskuryakov <ap@webkit.org>
3852 Reviewed by Darin Adler.
3854 https://bugs.webkit.org/show_bug.cgi?id=24549
3855 Impose a limit on Access-Control-Max-Age value
3857 * loader/CrossOriginPreflightResultCache.cpp:
3858 (WebCore::CrossOriginPreflightResultCacheItem::parse):
3860 2009-03-15 Greg Bolsinga <bolsinga@apple.com>
3862 Reviewed by David Kilzer.
3864 <rdar://problem/6668875> Normalize Geolocation results
3866 * platform/mac/GeolocationServiceMac.mm:
3867 (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):
3869 2009-03-15 Greg Bolsinga <bolsinga@apple.com>
3871 Reviewed by David Kilzer.
3873 Update ::toString format as suggested by Darin Adler.
3875 * page/Geoposition.cpp:
3876 (WebCore::Geoposition::toString):
3878 2009-03-15 David Kilzer <ddkilzer@apple.com>
3880 <rdar://problem/6668238> WebCore is registering text encodings needlessly from KURL constructor.
3882 Reviewed by Darin Adler.
3884 Yet another case where we would trigger extended encoding loading needlessly.
3886 * platform/text/TextEncoding.cpp:
3887 (WebCore::TextEncoding::encodingForFormSubmission):
3889 2009-03-15 Simon Fraser <simon.fraser@apple.com>
3891 Build fix: no review.
3893 * rendering/style/ContentData.h:
3895 2009-03-15 David Kilzer <ddkilzer@apple.com>
3897 Bug 24542: Improve ContentData encapsulation
3899 <https://bugs.webkit.org/show_bug.cgi?id=24542>
3901 Reviewed by Simon Fraser.
3903 No tests since there is no change in behavior.
3905 * rendering/RenderObject.cpp:
3906 (WebCore::RenderObject::createObject): Used getter methods
3907 instead of data members on ContentData class. Used isImage()
3909 * rendering/RenderObjectChildList.cpp:
3910 (WebCore::RenderObjectChildList::updateBeforeAfterContent): Ditto.
3912 * rendering/style/ContentData.cpp:
3913 (WebCore::ContentData::clear): Extracted code into
3914 deleteContent() method.
3915 (WebCore::ContentData::dataEquivalent): Added. Extracted code
3916 from StyleRareNonInheritedData::contentDataEquivalent().
3917 (WebCore::ContentData::deleteContent): Added. Used by setter
3919 * rendering/style/ContentData.h: Made m_type, m_content and
3921 (WebCore::ContentData::isCounter): Added.
3922 (WebCore::ContentData::isImage): Added.
3923 (WebCore::ContentData::isNone): Added.
3924 (WebCore::ContentData::isText): Added.
3925 (WebCore::ContentData::type): Added.
3926 (WebCore::ContentData::dataEquivalent): Added.
3927 (WebCore::ContentData::image): Added.
3928 (WebCore::ContentData::setImage): Added.
3929 (WebCore::ContentData::text): Added.
3930 (WebCore::ContentData::setText): Added.
3931 (WebCore::ContentData::counter): Added.
3932 (WebCore::ContentData::setCounter): Added.
3933 (WebCore::ContentData::next): Added.
3934 (WebCore::ContentData::setNext): Added.
3936 * rendering/style/CounterContent.h:
3937 (WebCore::operator!=): Removed.
3938 (WebCore::operator==): Renamed operator!=() and reversed its
3939 logic after extracting code from
3940 StyleRareNonInheritedData::contentDataEquivalent() to create
3941 ContentData::dataEquivalent().
3943 * rendering/style/RenderStyle.cpp:
3944 (WebCore::RenderStyle::setContent): Used new getters and setters
3945 on ContentData class. Changed first argument from a StringImpl*
3946 to a PassRefPtr<StrimgImpl>. Used isText() convenience method.
3947 * rendering/style/RenderStyle.h:
3948 (WebCore::RenderStyle::setContent): Updated declaration.
3949 * rendering/style/StyleRareNonInheritedData.cpp:
3950 (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
3951 Extracted most logic in while() loop into
3952 ContentData::dataEquivalent().
3954 2009-03-15 Gustavo Noronha Silva <gns@gnome.org>
3956 Reviewed by Anders Carlsson.
3958 https://bugs.webkit.org/show_bug.cgi?id=24602
3959 [Gtk] Searching in thepiratebay.org doesn't work with more than 1 word
3961 Reintroduce the URI into the soup message after having set it in
3962 the KURL, on redirects, to make sure it is properly encoded. This
3963 fixes bad request problems when servers give bad URIs on their
3964 response's Location header.
3966 * platform/network/soup/ResourceHandleSoup.cpp:
3967 (WebCore::restartedCallback):
3969 2009-03-15 Alexey Proskuryakov <ap@webkit.org>
3971 Reviewed by Darin Adler.
3973 https://bugs.webkit.org/show_bug.cgi?id=19737
3974 No cursor and paste not enabled right clicking text field/area
3976 Test: fast/events/right-click-focus.html
3978 * page/EventHandler.cpp:
3979 (WebCore::EventHandler::handleMousePressEventSingleClick):
3980 (WebCore::EventHandler::handleMousePressEvent):
3981 Take normal code path for right clicks (we were taking it for Ctrl-clicks anyway).
3983 2009-03-15 Alexey Proskuryakov <ap@webkit.org>
3985 Reviewed by Adele Peterson.
3987 https://bugs.webkit.org/show_bug.cgi?id=23949
3988 HTMLSelectElement is in inconsistent state when handling mutation events
3990 Test: fast/forms/mutation-event-recalc.html
3992 * dom/ContainerNode.cpp:
3993 (WebCore::ContainerNode::insertBefore):
3994 (WebCore::ContainerNode::appendChild):
3995 Call childrenChanged() before dispatching modification events, not after.
3997 * html/HTMLOptGroupElement.cpp:
3998 (WebCore::HTMLOptGroupElement::insertBefore):
3999 (WebCore::HTMLOptGroupElement::replaceChild):
4000 (WebCore::HTMLOptGroupElement::removeChild):
4001 (WebCore::HTMLOptGroupElement::appendChild):
4002 (WebCore::HTMLOptGroupElement::removeChildren):
4003 * html/HTMLSelectElement.cpp:
4004 (WebCore::HTMLSelectElement::add):
4005 (WebCore::HTMLSelectElement::remove):
4006 (WebCore::HTMLSelectElement::insertBefore):
4007 (WebCore::HTMLSelectElement::replaceChild):
4008 (WebCore::HTMLSelectElement::removeChild):
4009 (WebCore::HTMLSelectElement::appendChild):
4010 (WebCore::HTMLSelectElement::removeChildren):
4011 Remove calls to recalcSelectOptions(). It is too late to recalc now, after mutation events
4012 were already dispatched.
4014 2009-03-14 Greg Bolsinga <bolsinga@apple.com>
4016 <rdar://problem/6683465>
4018 Geolocation has to be able to handle NULL Frames.
4020 Reviewed by Mark Rowe
4022 2009-03-14 Greg Bolsinga <bolsinga@apple.com>
4024 Reviewed by David Kilzer.
4026 Geoposition::toString was missing the Coordinates after the update.
4028 * page/Geoposition.cpp:
4029 (WebCore::Geoposition::toString):
4031 2009-03-14 Jan Michael Alonzo <jmalonzo@webkit.org>
4033 Reviewed by Mark Rowe.
4035 [Gtk] Build fix - pass a Coordinate to Geoposition::create
4036 https://bugs.webkit.org/show_bug.cgi?id=24603
4038 Gtk build fix per r41650
4039 https://bugs.webkit.org/show_bug.cgi?id=24506
4040 Geolocation in Safari differs from the spec, no Coordinates attribute on Position
4042 Pass a Coordinate to Geoposition::create.
4044 * platform/gtk/GeolocationServiceGtk.cpp:
4045 (WebCore::GeolocationServiceGtk::updatePosition):
4047 2009-03-14 Alexey Proskuryakov <ap@webkit.org>
4049 Reviewed by Darin Adler.
4051 https://bugs.webkit.org/show_bug.cgi?id=24545
4052 Make cross-site XHR simple request definition match current spec draft
4054 Tests: http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type.html
4055 http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers.html
4057 * loader/CrossOriginAccessControl.cpp:
4058 (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist): Added Content-Language.
4059 (WebCore::isSimpleCrossOriginAccessRequest): Added HEAD. Restricted content types to those
4060 that could be sent via form submission.
4062 2009-03-14 Alexey Proskuryakov <ap@webkit.org>
4064 Reviewed by Darin Adler.
4066 https://bugs.webkit.org/show_bug.cgi?id=15172
4067 object fallback - empty string for first argument of setAttributeNS does not work like null
4069 https://bugs.webkit.org/show_bug.cgi?id=24548
4070 createElementNS("", name) should create an element in null namespace
4072 Tests: fast/dom/createElementNS-empty-namespace.html
4073 fast/dom/setAttributeNS-empty-namespace.html
4075 * dom/QualifiedName.h: (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
4076 Convert empty namespaces to null.
4078 2009-03-13 Mark Rowe <mrowe@apple.com>
4080 Rubber-stamped by Dan Bernstein.
4082 Take advantage of the ability of recent versions of Xcode to easily switch the active
4085 * Configurations/DebugRelease.xcconfig:
4087 2009-03-13 John Abd-El-Malek <jam@google.com>
4089 Reviewed by Darin Fisher.
4091 https://bugs.webkit.org/show_bug.cgi?id=24593
4092 Added requestorID so we can track the request to its WebView without using frame (which was removed).
4094 * platform/network/chromium/ResourceRequest.h:
4095 (WebCore::ResourceRequest::ResourceRequest):
4096 (WebCore::ResourceRequest::requestorID):
4097 (WebCore::ResourceRequest::setRequestorID):
4098 (WebCore::ResourceRequest::setTargetType):
4099 (WebCore::ResourceRequest::policyURL):
4100 (WebCore::ResourceRequest::setPolicyURL):
4101 (WebCore::ResourceRequest::requestorPid):
4102 (WebCore::ResourceRequest::setRequestorPid):
4104 2009-03-13 Mike Belshe <mike@belshe.com>
4106 Reviewed by Dimitri Glazkov.
4108 https://bugs.webkit.org/show_bug.cgi?id=24561
4109 Add custom V8 bindings for HTMLElementCanvas, Location.
4111 * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: Added.
4112 * bindings/v8/custom/V8LocationCustom.cpp: Added.
4114 2009-03-13 Stephen White <senorblanco@chromium.org>
4116 Reviewed by Eric Seidel.
4118 https://bugs.webkit.org/show_bug.cgi?id=24584
4120 Fix transparent text rendering on Chromium. FontChromiumWin
4121 was calling beginTransparencyLayer()/endTransparencyLayer(), with
4122 a TransparencyWin inside to do GDI ClearType rendering over an
4123 opaque background. TransparencyWin does its special sauce
4124 in the destructor, but it was being called too late to be used
4125 correctly in the layer. Put the special sauce into a new function,
4126 composite(), and call that explicitly instead.
4128 * platform/graphics/chromium/FontChromiumWin.cpp:
4129 (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
4130 * platform/graphics/chromium/TransparencyWin.cpp:
4131 (WebCore::TransparencyWin::~TransparencyWin):
4132 (WebCore::TransparencyWin::composite):
4133 (WebCore::TransparencyWin::init):
4134 * platform/graphics/chromium/TransparencyWin.h:
4135 * rendering/RenderThemeChromiumWin.cpp:
4138 2009-03-13 Mike Belshe <mike@belshe.com>
4140 Reviewed by Dimitri Glazkov.
4142 https://bugs.webkit.org/show_bug.cgi?id=24562
4143 Add custom implementation for getCSSCanvasContext to V8 bindings.
4145 * bindings/v8/custom/V8DocumentCustom.cpp: Added new method.
4147 2009-03-13 Mike Belshe <mike@belse.com>
4149 Reviewed by Dimitri Glazkov.
4151 https://bugs.webkit.org/show_bug.cgi?id=24580
4152 Fix query() to match KURL behavior.
4154 * platform/KURLGoogle.cpp:
4155 (WebCore::KURL::query): remove extra logic around question mark.
4157 2009-03-13 Chris Fleizach <cfleizach@apple.com>