2010-12-07 Simon Fraser <simon.fraser@apple.com>
[WebKit-https.git] / WebCore / ChangeLog
1 2010-12-07  Simon Fraser  <simon.fraser@apple.com>
2
3         Reviewed by Dan Bernstein.
4
5         -webkit-transition Fails on Multiple text-shadow Shadows
6         https://bugs.webkit.org/show_bug.cgi?id=42281
7         
8         When transitioning multiple shadows, the blend function for
9         ShadowData dropped all but the first and last shadow because
10         of a failure to append to the end of the list. Fixed.
11
12         Test: transitions/multiple-text-shadow-transition.html
13
14         * page/animation/AnimationBase.cpp:
15         (WebCore::PropertyWrapperShadow::blend):
16
17 2010-12-07  Simon Fraser  <simon.fraser@apple.com>
18
19         Reviewed by Beth Dakin.
20
21         CSS animation doesn't work for border-radius
22         https://bugs.webkit.org/show_bug.cgi?id=48340
23         
24         Include CSSPropertyBorderRadius in the list of shorthand
25         properties, so that the individual border-radius properties
26         get animated.
27
28         Test: transitions/border-radius-transition.html
29
30         * page/animation/AnimationBase.cpp:
31         (WebCore::addShorthandProperties):
32
33 2010-12-07  Maciej Stachowiak  <mjs@apple.com>
34
35         Reviewed by Kent Tamura.
36
37         Implement HTML5 hidden attribute
38         https://bugs.webkit.org/show_bug.cgi?id=40511
39
40         Test: fast/html/hidden-attr.html
41
42         * html/HTMLElement.cpp:
43         (WebCore::HTMLElement::mapToEntry): Pick up hidden as a global mapped attribute.
44         (WebCore::HTMLElement::parseMappedAttribute): Map hidden attribute to display: none.
45
46 2010-12-07  Kenneth Russell  <kbr@google.com>
47
48         Reviewed by David Levin.
49
50         Fix compilation of core web audio files on Windows
51         https://bugs.webkit.org/show_bug.cgi?id=50603
52
53         Changed a few constructs using C99 features of math.h to use
54         wtf/MathExtras.h instead. Changed inline definitions of a couple of
55         const static doubles in classes to out-of-line. Built Chrome with
56         web audio enabled on Windows and Mac OS X to test these changes.
57
58         No new tests since audio API is not yet implemented.
59
60         * WebCore.gypi:
61         * platform/audio/AudioResampler.cpp:
62         * platform/audio/Biquad.cpp:
63         (WebCore::Biquad::setLowpassParams):
64         (WebCore::Biquad::setHighpassParams):
65         (WebCore::Biquad::setLowShelfParams):
66         * platform/audio/Cone.cpp:
67         (WebCore::ConeEffect::gain):
68         * platform/audio/EqualPowerPanner.cpp:
69         (WebCore::EqualPowerPanner::pan):
70         * platform/audio/FFTFrame.cpp:
71         (WebCore::FFTFrame::interpolateFrequencyComponents):
72         (WebCore::FFTFrame::extractAverageGroupDelay):
73         (WebCore::FFTFrame::addConstantGroupDelay):
74         * platform/audio/HRTFKernel.cpp:
75         * platform/audio/HRTFPanner.cpp:
76         * webaudio/AudioBufferSourceNode.cpp:
77         (WebCore::AudioBufferSourceNode::readFromBufferWithGrainEnvelope):
78         * webaudio/AudioPannerNode.cpp:
79         (WebCore::AudioPannerNode::getAzimuthElevation):
80         * webaudio/AudioParam.cpp: Added.
81         (AudioParam::setValue):
82         (AudioParam::smooth):
83         * webaudio/AudioParam.h:
84         * webaudio/RealtimeAnalyser.cpp:
85
86 2010-11-25  Philippe Normand  <pnormand@igalia.com>
87
88         Reviewed by Martin Robinson.
89
90         [GStreamer] faster elements linking
91         https://bugs.webkit.org/show_bug.cgi?id=50067
92
93         Perform less checks during GStreamer elements linking if building
94         against GStreamer >= 0.10.30.
95
96         * platform/graphics/gstreamer/GStreamerGWorld.cpp:
97         (WebCore::GStreamerGWorld::enterFullscreen):
98         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
99         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
100
101 2010-12-07  Philippe Normand  <pnormand@igalia.com>
102
103         Reviewed by Gustavo Noronha Silva.
104
105         [GStreamer] ::buffered() should return multiple ranges in some cases
106         https://bugs.webkit.org/show_bug.cgi?id=45101
107
108         Improved the ::buffered() method thanks to the new buffering query
109         support that landed in GStreamer 0.10.31. The method now
110         queries the media buffered-ranges on the pipeline and queue2
111         handles it if it's buffering the media to disk.
112
113         The webkitwebsrc element also gained BYTES duration query
114         support. This is needed in the rare cases where uridecodebin
115         configures its queue before the HTTP server returns the media
116         Content-Length.
117
118         Test: http/tests/media/video-buffered.html
119
120         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
121         (WebCore::MediaPlayerPrivateGStreamer::buffered):
122         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
123         (webkit_web_src_init):
124         (webKitWebSrcQuery): Make webkitwebsrc handle the duration queries
125         if it's aware of the media content-length.
126         * platform/gtk/RenderThemeGtk.cpp:
127         (WebCore::RenderThemeGtk::paintMediaSliderTrack): Fix position of
128         the second and next buffered ranges.
129
130 2010-12-07  Yael Aharon  <yael.aharon@nokia.com>
131
132         Reviewed by Antonio Gomes.
133
134         Spatial navigation not Working for Map and Area Tags
135         https://bugs.webkit.org/show_bug.cgi?id=47142
136
137         Give area elements special treatment in spatial navigation algorithm by getting the
138         rect of the area from the associated image. Since area elements are likely to overlap
139         if they are not rects, or if authors are not careful, we flatten the rect of area elements.
140
141         Tests: fast/spatial-navigation/snav-imagemap-area-not-focusable.html
142                fast/spatial-navigation/snav-imagemap-area-without-image.html
143                fast/spatial-navigation/snav-imagemap-overlapped-areas.html
144                fast/spatial-navigation/snav-imagemap-simple.html
145
146         * page/FocusController.cpp:
147         (WebCore::FocusController::findFocusCandidateInContainer):
148         (WebCore::FocusController::advanceFocusDirectionallyInContainer):
149         (WebCore::FocusController::advanceFocusDirectionally):
150         * page/SpatialNavigation.cpp:
151         (WebCore::FocusCandidate::FocusCandidate):
152         (WebCore::virtualRectForDirection):
153         (WebCore::virtualRectForAreaElementAndDirection):
154         * page/SpatialNavigation.h:
155         (WebCore::FocusCandidate::FocusCandidate):
156
157 2010-12-07  Darin Adler  <darin@apple.com>
158
159         Try to fix V8 build.
160
161         * bindings/generic/BindingDOMWindow.h:
162         (WebCore::BindingDOMWindow::createWindow): Pass security origin.
163
164 2010-12-07  Darin Adler  <darin@apple.com>
165
166         Another build fix.
167
168         * loader/CrossOriginAccessControl.cpp: Added a missing include.
169
170 2010-12-07  Darin Adler  <darin@apple.com>
171
172         Try to fix build.
173
174         * plugins/PluginView.cpp:
175         (WebCore::PluginView::start): Pass security origin.
176         (WebCore::PluginView::getURLNotify): Ditto.
177         (WebCore::PluginView::getURL): Ditto.
178         (WebCore::PluginView::handlePost): Ditto.
179
180 2010-12-06  Darin Adler  <darin@apple.com>
181
182         Reviewed by Sam Weinig.
183
184         Pass security origin to make local file decision correctly
185         https://bugs.webkit.org/show_bug.cgi?id=48603
186
187         * bindings/generic/BindingDOMWindow.h:
188         (WebCore::BindingDOMWindow::createWindow): Pass security origin.
189         (WebCore::BindingDOMWindow::open): Ditto.
190         * bindings/generic/BindingFrame.h:
191         (WebCore::BindingFrame::navigateIfAllowed): Ditto.
192
193         * bindings/js/JSDOMWindowCustom.cpp:
194         (WebCore::JSDOMWindow::setLocation): Pass security origin.
195         (WebCore::createWindow): Ditto.
196         (WebCore::JSDOMWindow::open): Ditto.
197
198         * bindings/js/JSDocumentCustom.cpp:
199         (WebCore::JSDocument::setLocation): Pass security origin.
200
201         * dom/Document.cpp:
202         (WebCore::Document::processHttpEquiv): Pass security origin.
203
204         * inspector/InspectorController.cpp:
205         (WebCore::InspectorController::openInInspectedWindow):
206         Pass security origin.
207
208         * loader/FrameLoader.cpp:
209         (WebCore::FrameLoader::changeLocation): Added a security origin
210         argument, passed through to urlSelected.
211         (WebCore::FrameLoader::urlSelected): Replaced the resource request
212         and frame name arguments with a frame load request arguments in one
213         overload, and changed the other overload to pass in the current
214         frame's document for the security origin.
215         (WebCore::FrameLoader::loadFrameRequest): Moved the canDisplay
216         check before the referrer computation because it no longer needs
217         to look at the referrer. Replaced the call to canDisplay that
218         used the target frame's security origin and the call to
219         deprecatedCanDisplay with a single call to canDisplay that uses
220         the requester security origin.
221
222         * loader/FrameLoader.h: Updated for argument changes above.
223
224         * loader/NavigationScheduler.cpp:
225         (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Added
226         a security origin.
227         (WebCore::ScheduledURLNavigation::fire): Pass the security origin
228         in to FrameLoader::changeLocation.
229         (WebCore::ScheduledURLNavigation::securityOrigin): Added.
230         (WebCore::ScheduledRedirect::ScheduledRedirect): Added a security
231         origin argument.
232         (WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
233         (WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
234         (WebCore::ScheduledRefresh::fire): Pass the security origin in to
235         FrameLoader::changeLocation.
236         (WebCore::ScheduledFormSubmission::fire): Include the security
237         origin when constructing form submission.
238         (WebCore::NavigationScheduler::scheduleRedirect): Include the security
239         origin when creating the scheduled navigation object.
240         (WebCore::NavigationScheduler::scheduleLocationChange): Ditto.
241         (WebCore::NavigationScheduler::scheduleRefresh): Ditto.
242
243         * loader/NavigationScheduler.h: Added the security origin argument
244         to scheduleLocationChange.
245
246         * loader/SubframeLoader.cpp:
247         (WebCore::SubframeLoader::loadOrRedirectSubframe): Pass in the security
248         origin when calling scheduleLocationChange.
249         * loader/appcache/ApplicationCacheGroup.cpp:
250         (WebCore::ApplicationCacheGroup::selectCache): Ditto.
251
252         * page/ContextMenuController.cpp:
253         (WebCore::openNewWindow): Pass in the security origin.
254         (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
255
256         * page/FrameLoadRequest.h: Added a security origin called the requester
257         to all FrameLoadRequest objects.
258
259         * page/XSSAuditor.cpp:
260         (WebCore::XSSAuditor::findInRequest): Added the security origin.
261
262 2010-12-07  Yury Semikhatsky  <yurys@chromium.org>
263
264         Reviewed by Pavel Feldman.
265
266         Web Inspector: avoid initializing Context on when creating attaching listener to ScriptDebugServer
267         https://bugs.webkit.org/show_bug.cgi?id=50627
268
269         * bindings/v8/ScriptDebugServer.cpp:
270         (WebCore::ScriptDebugServer::addListener): don't try to collect already parsed scripts if context has
271         not been initialized yet.
272
273 2010-12-07  Csaba OsztrogonĂ¡c  <ossy@webkit.org>
274
275         Unreviewed. Rolling out r73421, because it made transitions/color-transition-all.html flakey.
276
277         * page/animation/AnimationBase.cpp:
278         (WebCore::addShorthandProperties):
279
280 2010-12-07  Martin Robinson  <mrobinson@igalia.com>
281
282         Unreviewed, rolling out r73392.
283         http://trac.webkit.org/changeset/73392
284         https://bugs.webkit.org/show_bug.cgi?id=50489
285
286         This commit caused crashes on the GTK+ bots
287
288         * bindings/ScriptControllerBase.cpp:
289         (WebCore::ScriptController::executeIfJavaScriptURL):
290         * dom/Document.cpp:
291         (WebCore::Document::Document):
292         (WebCore::Document::close):
293         (WebCore::Document::lastModified):
294         (WebCore::Document::finishedParsing):
295         (WebCore::Document::initSecurityContext):
296         (WebCore::Document::updateURLForPushOrReplaceState):
297         * dom/Document.h:
298         * dom/ProcessingInstruction.cpp:
299         (WebCore::ProcessingInstruction::checkStyleSheet):
300         * dom/ScriptElement.cpp:
301         (WebCore::ScriptElement::scriptCharset):
302         * html/HTMLLinkElement.cpp:
303         (WebCore::HTMLLinkElement::process):
304         * html/MediaDocument.cpp:
305         (WebCore::MediaDocument::replaceMediaElementTimerFired):
306         * html/PluginDocument.cpp:
307         (WebCore::PluginDocumentParser::createDocumentStructure):
308         * loader/DocumentLoader.cpp:
309         (WebCore::DocumentLoader::DocumentLoader):
310         (WebCore::DocumentLoader::finishedLoading):
311         (WebCore::DocumentLoader::commitData):
312         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
313         (WebCore::DocumentLoader::setFrame):
314         * loader/DocumentLoader.h:
315         * loader/DocumentWriter.cpp:
316         (WebCore::DocumentWriter::begin):
317         * loader/DocumentWriter.h:
318         * loader/FrameLoader.cpp:
319         (WebCore::FrameLoader::FrameLoader):
320         (WebCore::FrameLoader::init):
321         (WebCore::FrameLoader::clear):
322         (WebCore::FrameLoader::receivedFirstData):
323         (WebCore::FrameLoader::transitionToCommitted):
324         (WebCore::FrameLoader::open):
325         (WebCore::FrameLoader::finishedLoadingDocument):
326         (WebCore::FrameLoader::addExtraFieldsToRequest):
327         * loader/FrameLoader.h:
328         (WebCore::FrameLoader::writer):
329         * loader/cache/CachedResourceLoader.cpp:
330         (WebCore::CachedResourceLoader::requestPreload):
331         * platform/network/FormDataBuilder.cpp:
332         (WebCore::FormDataBuilder::encodingFromAcceptCharset):
333         * svg/graphics/SVGImage.cpp:
334         (WebCore::SVGImage::dataChanged):
335
336 2010-12-07  Patrick Gansterer  <paroga@webkit.org>
337
338         Reviewed by Andreas Kling.
339
340         [CMake] Remove WebKitGenerators
341         https://bugs.webkit.org/show_bug.cgi?id=50445
342
343         Move remaining logic into main CMakeLists.txt.
344
345         * CMakeLists.txt:
346
347 2010-12-07  Justin Schuh  <jschuh@chromium.org>
348
349         Reviewed by Nikolas Zimmermann.
350
351         Clear old SVG cursor entry before adding a new one
352         https://bugs.webkit.org/show_bug.cgi?id=50549
353
354         Test: svg/css/cursor-replace.svg
355
356         * css/CSSCursorImageValue.cpp:
357         (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
358         * svg/SVGCursorElement.cpp:
359         (WebCore::SVGCursorElement::~SVGCursorElement):
360         (WebCore::SVGCursorElement::removeClient):
361         (WebCore::SVGCursorElement::removeReferencedElement):
362         * svg/SVGCursorElement.h:
363         * svg/SVGElement.cpp:
364         (WebCore::SVGElement::setCursorElement):
365         (WebCore::SVGElement::cursorElementRemoved):
366         (WebCore::SVGElement::setCursorImageValue):
367         (WebCore::SVGElement::cursorImageElementRemoved):
368         * svg/SVGElement.h:
369
370 2010-12-07  Kenichi Ishibashi  <bashi@google.com>
371
372         Reviewed by Kent Tamura.
373
374         Let HTMLObjectElement be a form associated element
375         https://bugs.webkit.org/show_bug.cgi?id=48821
376
377         Introduces FormAssociatedElement class which would be a super class
378         of form assocated elements. Some of member functions and variables of
379         HTMLFormControlElement are migrated into this class.
380         Following the HTML5 spec, HTMLFormControlElement class and
381         HTMLObjectElement class are subclasses of it for now.
382
383         Test: fast/forms/form-collection-elements-order.html
384
385         * Android.mk: Added FormAssociatedElement.cpp
386         * CMakeLists.txt: Ditto.
387         * GNUmakefile.am: Added FormAssociatedElement.{cpp,h}
388         * WebCore.exp.in: Added the symbol for toHTMLElement(FormAssociatedElement*)
389         * WebCore.gypi: Added FormAssociatedElement.{cpp,h}
390         * WebCore.pro: Ditto.
391         * WebCore.vcproj/WebCore.vcproj: Ditto.
392         * WebCore.xcodeproj/project.pbxproj: Ditto.
393         * dom/CheckedRadioButtons.h: Fixed class forward declaration order.
394         * dom/Document.cpp:
395         (WebCore::Document::registerFormElementWithFormAttribute): Modified to
396         use FormAssociatedElement instead of HTMLFormControlElement
397         (WebCore::Document::unregisterFormElementWithFormAttribute): Ditto.
398         (WebCore::Document::resetFormElementsOwner):
399         * dom/Document.h: Ditto.
400         * html/DOMFormData.cpp: Ditto.
401         (WebCore::DOMFormData::DOMFormData):
402         * html/FormAssociatedElement.cpp: Copied and renamed from WebCore/html/HTMLFormControlElement.cpp.
403         (WebCore::FormAssociatedElement::FormAssociatedElement):
404         (WebCore::FormAssociatedElement::~FormAssociatedElement):
405         (WebCore::FormAssociatedElement::validity):
406         (WebCore::FormAssociatedElement::insertedIntoTree):
407         (WebCore::FormAssociatedElement::removedFromTree):
408         (WebCore::FormAssociatedElement::removeFromForm):
409         (WebCore::FormAssociatedElement::resetFormOwner):
410         (WebCore::FormAssociatedElement::formAttributeChanged):
411         (WebCore::toHTMLElement):
412         * html/FormAssociatedElement.h: Ditto.
413         (WebCore::FormAssociatedElement::ref):
414         (WebCore::FormAssociatedElement::deref):
415         (WebCore::FormAssociatedElement::formDestroyed):
416         (WebCore::FormAssociatedElement::setForm):
417         * html/HTMLElement.h: Changed the access level of findFormAncestor().
418         * html/HTMLFormCollection.cpp:
419         (WebCore::HTMLFormCollection::item): Modified to use FormAssociatedElement
420         instead of HTMLFormControlElement.
421         (WebCore::HTMLFormCollection::getNamedFormItem): Ditto.
422         (WebCore::HTMLFormCollection::updateNameCache): Ditto.
423         * html/HTMLFormControlElement.cpp: Modified regarding with the change of class
424         hierarchy.
425         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
426         (WebCore::HTMLFormControlElement::~HTMLFormControlElement):
427         (WebCore::HTMLFormControlElement::insertedIntoTree):
428         (WebCore::HTMLFormControlElement::removedFromTree):
429         (WebCore::HTMLFormControlElement::supportsFocus):
430         (WebCore::HTMLFormControlElement::checkValidity):
431         (WebCore::HTMLFormControlElement::virtualForm):
432         (WebCore::HTMLFormControlElement::isDefaultButtonForForm):
433         (WebCore::HTMLFormControlElement::attributeChanged):
434         * html/HTMLFormControlElement.h: Ditto.
435         (WebCore::HTMLFormControlElement::form):
436         (WebCore::HTMLFormControlElement::disabled):
437         (WebCore::HTMLFormControlElement::type):
438         (WebCore::HTMLFormControlElement::refFormAssociatedElement):
439         (WebCore::HTMLFormControlElement::derefFormAssociatedElement):
440         * html/HTMLFormElement.cpp: Modified to use FormAssociatedElement
441         instead of HTMLFormControlElement.
442         (WebCore::HTMLFormElement::submitImplicitly):
443         (WebCore::HTMLFormElement::validateInteractively):
444         (WebCore::HTMLFormElement::submit):
445         (WebCore::HTMLFormElement::reset):
446         (WebCore::HTMLFormElement::formElementIndexWithFormAttribute):
447         (WebCore::HTMLFormElement::formElementIndex):
448         (WebCore::HTMLFormElement::registerFormElement):
449         (WebCore::HTMLFormElement::removeFormElement):
450         (WebCore::HTMLFormElement::defaultButton):
451         (WebCore::HTMLFormElement::checkValidity):
452         (WebCore::HTMLFormElement::collectUnhandledInvalidControls):
453         (WebCore::HTMLFormElement::documentDidBecomeActive):
454         * html/HTMLFormElement.h: Ditto.
455         (WebCore::HTMLFormElement::associatedElements):
456         * html/HTMLInputElement.cpp: Ditto.
457         (WebCore::HTMLInputElement::updateCheckedRadioButtons):
458         * html/HTMLObjectElement.cpp: Modified regarding with the change of class
459         hierarchy.
460         (WebCore::HTMLObjectElement::HTMLObjectElement):
461         (WebCore::HTMLObjectElement::~HTMLObjectElement):
462         (WebCore::HTMLObjectElement::create):
463         (WebCore::HTMLObjectElement::attributeChanged):
464         (WebCore::HTMLObjectElement::insertedIntoTree):
465         (WebCore::HTMLObjectElement::removedFromTree):
466         (WebCore::HTMLObjectElement::appendFormData):
467         (WebCore::HTMLObjectElement::formControlName):
468         * html/HTMLObjectElement.h: Ditto.
469         (WebCore::HTMLObjectElement::form):
470         (WebCore::HTMLObjectElement::isFormControlElement):
471         (WebCore::HTMLObjectElement::isEnumeratable):
472         (WebCore::HTMLObjectElement::refFormAssociatedElement):
473         (WebCore::HTMLObjectElement::derefFormAssociatedElement):
474         * html/HTMLTagNames.in: Added constructorNeedsFormElement to object tag.
475         * html/ValidationMessage.cpp: Modified to use FormAssociatedElement
476         instead of HTMLFormControlElement.
477         (WebCore::ValidationMessage::ValidationMessage):
478         (WebCore::ValidationMessage::create):
479         * html/ValidationMessage.h: Ditto.
480         * html/ValidityState.cpp: Ditto.
481         (WebCore::ValidityState::validationMessage):
482         (WebCore::ValidityState::setCustomErrorMessage):
483         (WebCore::ValidityState::valueMissing):
484         (WebCore::ValidityState::typeMismatch):
485         (WebCore::ValidityState::patternMismatch):
486         (WebCore::ValidityState::tooLong):
487         (WebCore::ValidityState::rangeUnderflow):
488         (WebCore::ValidityState::rangeOverflow):
489         (WebCore::ValidityState::stepMismatch):
490         * html/ValidityState.h: Ditto.
491         (WebCore::ValidityState::create):
492         (WebCore::ValidityState::ValidityState):
493         * loader/FormSubmission.cpp: Ditto.
494         (WebCore::FormSubmission::create):
495
496 2010-12-06  Pavel Feldman  <pfeldman@chromium.org>
497
498         Not reviewed. Rolling out r72988 for breaking iframes.
499
500         * css/CSSImportRule.cpp:
501         (WebCore::CSSImportRule::insertedIntoParent):
502
503 2010-12-06  Hironori Bono  <hbono@chromium.org>
504
505         Reviewed by David Levin.
506
507         [Chromium] Refactor FontCacheChromiumWin.cpp
508         https://bugs.webkit.org/show_bug.cgi?id=50611
509         
510         This change just moved the helper functions for the WebCore::FontCache class to the beginning of ths file.
511
512         No new tests are added since this is a refactoring.
513
514         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
515         (WebCore::fontDataFromDescriptionAndLogFont): Moved to the beginning of the file.
516         (WebCore::toGDIFontWeight): Moved to the beginning of the file.
517         (WebCore::FillLogFont): Moved to the beginning of the file.
518         (WebCore::TraitsInFamilyProcData::TraitsInFamilyProcData): Moved to the beginning of the file.
519         (WebCore::traitsInFamilyEnumProc): Moved to the beginning of the file.
520         (WebCore::FontCache::platformInit): Moved after the static functions.
521
522 2010-12-06  Alexey Marinichev  <amarinichev@chromium.org>
523
524         Reviewed by Kenneth Russell.
525
526         Throw webglcontextlost and webglcontextrestored events when a WebGL context is lost and restored.
527         https://bugs.webkit.org/show_bug.cgi?id=50364
528
529         No new tests since there is currently no way to force a context lost event.
530
531         * html/canvas/WebGLRenderingContext.cpp:
532         (WebCore::WebGLRenderingContext::WebGLRenderingContextRestoreTimer::fired):
533         (WebCore::WebGLRenderingContext::create):
534         (WebCore::WebGLRenderingContext::WebGLRenderingContext):
535         (WebCore::WebGLRenderingContext::isContextLost):
536         (WebCore::WebGLRenderingContext::loseContext):
537         (WebCore::WebGLRenderingContext::restoreContext):
538         * html/canvas/WebGLRenderingContext.h:
539         (WebCore::WebGLRenderingContext::WebGLRenderingContextRestoreTimer::WebGLRenderingContextRestoreTimer):
540
541 2010-12-06  David Hyatt  <hyatt@apple.com>
542
543         Reviewed by Simon Fraser.
544
545         https://bugs.webkit.org/show_bug.cgi?id=50593
546         
547         Fix background canvas painting for documents with left/top overflow.  The math from the original RTL patch was incorrect.
548         
549         Just use the RenderView's document dimensions always.
550
551         * rendering/RenderBox.cpp:
552         (WebCore::RenderBox::paintRootBoxDecorations):
553
554 2010-12-06  Simon Fraser  <simon.fraser@apple.com>
555
556         Reviewed by Beth Dakin.
557
558         CSS animation doesn't work for border-radius
559         https://bugs.webkit.org/show_bug.cgi?id=48340
560         
561         Include CSSPropertyBorderRadius in the list of shorthand
562         properties, so that the individual border-radius properties
563         get animated.
564
565         Test: transitions/border-radius-transition.html
566
567         * page/animation/AnimationBase.cpp:
568         (WebCore::addShorthandProperties):
569
570 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
571
572         Reviewed by Tony Chang.
573
574         ApplyStyleCommand should take EditingStyle instead of CSSStyleDeclaration
575         https://bugs.webkit.org/show_bug.cgi?id=49938
576
577         Modified ApplyStyleCommand::ApplyStyleCommand and ApplyStyleCommand::create to take EditingStyle*
578         instead of CSSStyleDeclaration*. Also replaced much of code in Editor::computeAndSetTypingStyle
579         by calls to EditingStyle's member functions and extracted EditingStyle::overrideWith and
580         EditingStyle::extractAndRemoveBlockProperties.
581
582         No new tests are added since this is a refactoring.
583
584         * WebCore.exp.in: Added SelectionController::copyTypingStyle and EditingStyle::~EditingStyle.
585         * css/CSSMutableStyleDeclaration.cpp: Made CSSMutableStyleDeclaration* in the argument list const.
586         (WebCore::CSSMutableStyleDeclaration::merge):
587         * css/CSSMutableStyleDeclaration.h:
588         * editing/ApplyStyleCommand.cpp:
589         (WebCore::ApplyStyleCommand::ApplyStyleCommand): Takes EditingStyle* instead of CSSStyleDeclaration*.
590         (WebCore::ApplyStyleCommand::doApply): Uses EditingStyle.
591         * editing/ApplyStyleCommand.h: m_style is now a ref-pointer to EditingStyle instead of CSSMutableStyleDeclaration.
592         (WebCore::ApplyStyleCommand::create): Takes EditingStyle* instead of CSSStyleDeclaration*.
593         * editing/CompositeEditCommand.cpp:
594         (WebCore::CompositeEditCommand::applyStyle): Ditto.
595         (WebCore::CompositeEditCommand::moveParagraphs): Calls applyStyle.
596         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Ditto.
597         * editing/CompositeEditCommand.h:
598         * editing/DeleteSelectionCommand.cpp:
599         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Ditto.
600         * editing/EditCommand.cpp:
601         * editing/EditCommand.h:
602         * editing/EditingStyle.cpp:
603         (WebCore::EditingStyle::~EditingStyle): Added.
604         (WebCore::EditingStyle::overrideWithStyle): Extracted from Editor::calculateTypingStyleAfterDelete.
605         (WebCore::EditingStyle::copy): Added.
606         (WebCore::EditingStyle::extractAndRemoveBlockProperties): Extracted from Editor::calculateTypingStyleAfterDelete.
607         * editing/EditingStyle.h:
608         * editing/Editor.cpp:
609         (WebCore::Editor::applyStyle): Calls ApplyStyleCommand::create.
610         (WebCore::Editor::applyParagraphStyle): Ditto.
611         (WebCore::Editor::computeAndSetTypingStyle): Ditto.
612         * editing/InsertLineBreakCommand.cpp:
613         (WebCore::InsertLineBreakCommand::doApply): Calls applyStyle.
614         * editing/InsertParagraphSeparatorCommand.cpp:
615         (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Ditto.
616         * editing/InsertTextCommand.cpp:
617         (WebCore::InsertTextCommand::input): Ditto.
618         * editing/RemoveFormatCommand.cpp:
619         (WebCore::RemoveFormatCommand::doApply): Calls ApplyStyleCommand::create.
620         * editing/ReplaceSelectionCommand.cpp:
621         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement): Calls applyStyle.
622         * editing/SelectionController.cpp:
623         (WebCore::SelectionController::copyTypingStyle): Moved from SelectionController.h
624         * editing/SelectionController.h:
625
626 2010-12-05  Ryosuke Niwa  <rniwa@webkit.org>
627
628         Reviewed by Tony Chang.
629
630         Executing FormatBlock on multiple paragraphs inside pre does not remove the outer pre
631         https://bugs.webkit.org/show_bug.cgi?id=47300
632
633         The bug was caused by FormatBlockCommand::formatRange's not removing refNode when the refNode
634         contains more than one paragraphs even when the refNode is fully selected.
635
636         Fixed the bug by modifying FormatBlockCommand::formatRange to correctly remove the node in
637         such a situation.
638
639         Also fixed a bug in ApplyBlockElementCommand::formatSelection that the end of selection
640         is not properly updated when the end of selection resides in the node split by
641         rangeForParagraphSplittingTextNodesIfNeeded or endOfNextParagrahSplittingTextNodesIfNeeded.
642
643         Test: editing/execCommand/format-block-multiple-paragraphs-in-pre.html
644
645         * editing/ApplyBlockElementCommand.cpp:
646         (WebCore::ApplyBlockElementCommand::formatSelection): Calls formatRange with m_endOfLastParagraph.
647         (WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded): Updates
648         m_endOfLastParagraph when the position points to the node split by this function.
649         (WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded): Ditto.
650         * editing/ApplyBlockElementCommand.h: Added m_endOfLastParagraph as a member variable.
651         * editing/FormatBlockCommand.cpp:
652         (WebCore::FormatBlockCommand::formatRange): See above.
653         * editing/FormatBlockCommand.h:
654         * editing/IndentOutdentCommand.cpp:
655         (WebCore::IndentOutdentCommand::formatRange): Ignores the end of selection.
656         * editing/IndentOutdentCommand.h:
657
658 2010-12-03  Zhenyao Mo  <zmo@google.com>
659
660         Reviewed by Kenneth Russell.
661
662         Postpone gl delete* calls until shaders/programs are no longer attached
663         https://bugs.webkit.org/show_bug.cgi?id=50501
664
665         * html/canvas/WebGLBuffer.cpp:
666         (WebCore::WebGLBuffer::deleteObjectImpl): Simply delete GL resource.
667         * html/canvas/WebGLFramebuffer.cpp:
668         (WebCore::WebGLFramebuffer::deleteObjectImpl): Ditto.
669         * html/canvas/WebGLObject.cpp:
670         (WebCore::WebGLObject::deleteObject): Tracking whether deleteObjectImpl should be called or not.
671         * html/canvas/WebGLObject.h:
672         (WebCore::WebGLObject::detachContext): Set attachmentCount to 0 to ensure OpenGL resource deletion.
673         (WebCore::WebGLObject::onDetached): No need to track attachmentCount here as we track it in deleteObject.
674         (WebCore::WebGLObject::isDeleted): Make this public.
675         * html/canvas/WebGLProgram.cpp:
676         (WebCore::WebGLProgram::deleteObjectImpl): Simply delete GL resource.
677         * html/canvas/WebGLRenderbuffer.cpp:
678         (WebCore::WebGLRenderbuffer::deleteObjectImpl): Ditto.
679         * html/canvas/WebGLRenderingContext.cpp:
680         (WebCore::WebGLRenderingContext::getProgramParameter): intercept DELETE_STATUS.
681         (WebCore::WebGLRenderingContext::getShaderParameter): Ditto.
682         * html/canvas/WebGLShader.cpp:
683         (WebCore::WebGLShader::deleteObjectImpl): Simply delete GL resource.
684         * html/canvas/WebGLTexture.cpp:
685         (WebCore::WebGLTexture::deleteObjectImpl): Simply delete GL resource.
686
687 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
688
689         Yet unreviewed another Leopard build fix for r73380.
690
691         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
692         (PlatformCAAnimation::setKeyTimes):
693         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
694         (PlatformCALayer::platformCALayer):
695
696 2010-12-06  Andy Estes  <aestes@apple.com>
697
698         Reviewed by Darin Adler.
699
700         Marquee elements do not stop animating when scrollAmount is set to 0.
701         https://bugs.webkit.org/show_bug.cgi?id=50434
702
703         Test: fast/html/marquee-scrollamount.html
704
705         * rendering/RenderMarquee.cpp:
706         (WebCore::RenderMarquee::timerFired): Allow increment to be 0.
707
708 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
709
710         Unreviewed Leopard buildfix for r73380.
711
712         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
713         (PlatformCAAnimation::setTimingFunctions):
714         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
715         (PlatformCALayer::PlatformCALayer):
716
717 2010-12-06  Philippe Normand  <pnormand@igalia.com>
718
719         Reviewed by Martin Robinson.
720
721         [GStreamer] use ResourceHandle::setDefersLoading in WebKitWebSourceGStreamer
722         https://bugs.webkit.org/show_bug.cgi?id=44157
723
724         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
725         (webKitWebSrcNeedDataMainCb):
726         (webKitWebSrcEnoughDataMainCb): Replaced platform-specific code
727         with cross-platform ResourceHandle::setDefersLoading calls.
728
729 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
730
731         Unreviewed Leopard build fix for r73388.
732
733         * accessibility/AccessibilitySlider.cpp:
734         (WebCore::AccessibilitySlider::maxValueForRange):
735         (WebCore::AccessibilitySlider::minValueForRange):
736
737 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
738
739         Unreviewed build fix for Leopard after r73379.
740
741         * platform/graphics/cg/GraphicsContextCG.cpp:
742         (WebCore::GraphicsContext::setAllowsFontSmoothing):
743
744 2010-12-06  Nate Chapin  <japhet@chromium.org>
745
746         Reviewed by Adam Barth.
747
748         Make DocumentWriter a member of DocumentLoader
749         instead of FrameLoader.
750         https://bugs.webkit.org/show_bug.cgi?id=50489
751
752         Refactor, no new tests.
753
754         * bindings/ScriptControllerBase.cpp:
755         (WebCore::ScriptController::executeIfJavaScriptURL):
756         * dom/Document.cpp:
757         (WebCore::Document::Document):
758         (WebCore::Document::close):
759         (WebCore::Document::lastModified):
760         (WebCore::Document::finishedParsing):
761         (WebCore::Document::initSecurityContext):
762         (WebCore::Document::updateURLForPushOrReplaceState):
763         * dom/Document.h:
764         (WebCore::Document::setDocumentLoader):
765         (WebCore::Document::loader):
766         * dom/ProcessingInstruction.cpp:
767         (WebCore::ProcessingInstruction::checkStyleSheet):
768         * dom/ScriptElement.cpp:
769         (WebCore::ScriptElement::scriptCharset):
770         * html/HTMLLinkElement.cpp:
771         (WebCore::HTMLLinkElement::process):
772         * html/MediaDocument.cpp:
773         (WebCore::MediaDocument::replaceMediaElementTimerFired):
774         * html/PluginDocument.cpp:
775         (WebCore::PluginDocumentParser::createDocumentStructure):
776         * loader/DocumentLoader.cpp:
777         (WebCore::DocumentLoader::DocumentLoader):
778         (WebCore::DocumentLoader::finishedLoading):
779         (WebCore::DocumentLoader::commitData):
780         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
781         (WebCore::DocumentLoader::setFrame):
782         * loader/DocumentLoader.h:
783         (WebCore::DocumentLoader::writer):
784         * loader/DocumentWriter.h:
785         (WebCore::DocumentWriter::setFrame):
786         * loader/FrameLoader.cpp:
787         (WebCore::FrameLoader::FrameLoader):
788         (WebCore::FrameLoader::init):
789         (WebCore::FrameLoader::clear):
790         (WebCore::FrameLoader::receivedFirstData):
791         (WebCore::FrameLoader::transitionToCommitted):
792         (WebCore::FrameLoader::open):
793         (WebCore::FrameLoader::finishedLoadingDocument):
794         (WebCore::FrameLoader::addExtraFieldsToRequest):
795         * loader/FrameLoader.h:
796         (WebCore::FrameLoader::notifier):
797         * loader/cache/CachedResourceLoader.cpp:
798         (WebCore::CachedResourceLoader::requestPreload):
799         * platform/network/FormDataBuilder.cpp:
800         (WebCore::FormDataBuilder::encodingFromAcceptCharset):
801         * svg/graphics/SVGImage.cpp:
802         (WebCore::SVGImage::dataChanged):
803
804 2010-12-06  Mark Rowe  <mrowe@apple.com>
805
806         Build fix.
807
808         * WebCore.xcodeproj/project.pbxproj: Don't force WebCore to build against the 10.5 SDK.
809         That's just plain wrong.
810
811 2010-12-06  Chris Fleizach  <cfleizach@apple.com>
812
813         Reviewed by Darin Adler.
814
815         HTML5 Slider does not work correctly with VoiceOver
816         https://bugs.webkit.org/show_bug.cgi?id=50505
817
818         Address a few problems with the Mac implementation for the accessibility slider.
819             1) The value indicator is not hit testable.
820             2) The value indicator does not return an AXValue.
821             3) In the slider, the min/max values are not correct when min/max attributes are not present.
822             4) When you change the value with the keyboard, it doesn't send out the right notification.
823             5) Sliders were returning AXValue and AXTopLevelUIElement attributes twice in their list of attributes.
824  
825         Test: platform/mac/accessibility/html-slider-indicator.html
826
827         * accessibility/AccessibilityObject.cpp:
828         (WebCore::AccessibilityObject::getAttribute):
829             Use fastGetAttribute on Element, instead of getAttribute.
830         * accessibility/AccessibilityObject.h:
831         (WebCore::AccessibilityObject::isInputSlider):
832         * accessibility/AccessibilityRenderObject.cpp:
833         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
834         * accessibility/AccessibilitySlider.cpp:
835         (WebCore::AccessibilitySlider::doAccessibilityHitTest):
836         (WebCore::AccessibilitySlider::maxValueForRange):
837         (WebCore::AccessibilitySlider::minValueForRange):
838         * accessibility/AccessibilitySlider.h:
839         (WebCore::AccessibilitySlider::isInputSlider):
840         * accessibility/mac/AccessibilityObjectWrapper.mm:
841         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
842         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
843         * html/HTMLInputElement.cpp:
844         (WebCore::HTMLInputElement::applyStep):
845
846 2010-12-06  David Hyatt  <hyatt@apple.com>
847
848         Reviewed by Simon Fraser.
849
850         Fix for https://bugs.webkit.org/show_bug.cgi?id=49220 <<rdar://problem/8644849>, REGRESSION: transforms now
851         O(n^3) from pathological behavior in lowestPosition, rightmostPosition, leftmostPosition and topmostPosition.
852
853         This patch throws out the lowest/rightmost/leftmost/topmostPosition functions and re-architects layout overflow
854         in the engine to cache all the information required to properly handle scrolling.
855
856         In the old code, there were two types of overflow: layout overflow and visual overflow.  The former could
857         affect scrolling and the latter could not.  The distinction was largely meaningless, since layout overflow
858         wasn't actually used to determine scroll width or scroll height.  It didn't propagate across self-painting layer
859         boundaries either.  In the old code, the term visible overflow meant the union of the layout overflow and
860         visual overflow rects.
861
862         In the new code, the two types of overflow remain, but the distinction between the two is now clear.  Visual overflow
863         is used purely for painting and hit testing checks and layout overflow is used specifically for scrolling.  It has
864         been expanded to propagate across self-painting layers, to factor in relative positioning and transforms, and to
865         work with writing modes.
866
867         In order to minimize layout test changes, layers no longer incorporate right/bottom overflow into their width/height members.
868         Doing so uncovered two bugs where left/top overflow was ignored (proof that even having layer dimensions is harmful).
869         A render tree dump hack has been put into the code to keep this overflow dumping for the RenderView's layer, since otherwise
870         a huge number of tests would change.
871
872         Added fast/overflow/overflow-rtl-vertical.html to test vertical writing-mode overflow.  Existing tests cover the rest.
873
874         * page/FrameView.cpp:
875         (WebCore::FrameView::adjustViewSize):
876         (WebCore::FrameView::forceLayoutForPagination):
877         Changed to use RenderView's docTop/Left/Width/Height accessors, which simply grab the overflow and properly flip it
878         to account for writing modes.
879
880         * platform/graphics/IntRect.h:
881         (WebCore::IntRect::shiftLeftEdgeTo):
882         (WebCore::IntRect::shiftRightEdgeTo):
883         (WebCore::IntRect::shiftTopEdgeTo):
884         (WebCore::IntRect::shiftBottomEdgeTo):
885         New helper functions for sliding the edge of a rectangle without moving any of the other three edges.
886
887         * rendering/InlineBox.h:
888         (WebCore::InlineBox::frameRect):
889         frameRect is a helper for obtaining the x, y, width, height of an InlineBox as an IntRect.
890
891         * rendering/InlineFlowBox.cpp:
892         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
893         All of the overflow setting in the inline direction has been removed from this function.  All line overflow is computed
894         at once now in a single function: computeOverflow.
895
896         (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
897         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
898         (WebCore::InlineFlowBox::addReplacedChildOverflow):
899         Helper for propagating overflow from specific types of children that occur on a line into the InlineFlowBox's overflow.
900
901         (WebCore::InlineFlowBox::computeOverflow):
902         The new function that computes both horizontal and vertical overflow for a line box.
903
904         (WebCore::InlineFlowBox::setLayoutOverflow):
905         (WebCore::InlineFlowBox::setVisualOverflow):
906         (WebCore::InlineFlowBox::setOverflowFromLogicalRects):
907         New functions that set the overflow computed by computeOverflow.  These replace setBlockDirectionOverflowPositions
908         and setInlineDirectionOverflowPositions.  They essentially do the same thing, but they operate on rectangles.
909
910         (WebCore::InlineFlowBox::nodeAtPoint):
911         (WebCore::InlineFlowBox::paint):
912         Changed to use visual overflow instead of visible overflow.  (Visible overflow as a union of layout and visual
913         overflow is no longer necessary, since visual overflow is now equivalent to the old visible overflow concept.)
914
915         * rendering/InlineFlowBox.h:
916         (WebCore::InlineFlowBox::logicalLayoutOverflowRect):
917         (WebCore::InlineFlowBox::logicalVisualOverflowRect):
918         Helpers for obtaining logical overflow rectangles, since lines compute their overflow in logical terms before
919         converting to block coordinates at the end.
920
921         * rendering/RenderBlock.cpp:
922         (WebCore::RenderBlock::layoutBlock):
923         (WebCore::RenderBlock::addOverflowFromChildren):
924         (WebCore::RenderBlock::computeOverflow):
925         (WebCore::RenderBlock::addOverflowFromFloats):
926         (WebCore::RenderBlock::addOverflowFromPositionedObjects):
927         Blocks now have a computeOverflow function called at the end of layout that adds in all the types of overflow.  The addOverflowFromChildren
928         method is virtual so that RenderListItem and RenderTable can subclass it.  RenderListItem has to position its list marker and
929         propagate marker overflow up, and RenderTable adds in overflow from its sections.
930
931         (WebCore::RenderBlock::layoutOnlyPositionedObjects):
932         (WebCore::RenderBlock::layoutPositionedObjects):
933         When only positioned objects lay out, overflow must still be recomputed.  The refactoring of overflow computation into a single
934         callable method: computeOverflow, makes it possible for this to be done easily.
935
936         (WebCore::RenderBlock::paint):
937         visible -> visual.
938
939         (WebCore::RenderBlock::addOverhangingFloats):
940         The propagation of float overflow has changed substantially.  The basic rules are:
941             (1) The float must be in our floating objects list to contribute to overflow.
942             (2) The float must be a descendant to contribute to overflow.
943             (3) The block must have the outermost list that contains the float, or it has a self-painting layer and
944                 so the float needs to be included in its overflow.
945
946         (WebCore::RenderBlock::nodeAtPoint):
947         visible -> visual.
948
949         (WebCore::RenderBlock::layoutColumns):
950         Remove column overflow computation from layoutColumns and move it to computeOverflow.
951
952         (WebCore::RenderBlock::adjustLinePositionForPagination):
953         visible -> visual.
954
955         * rendering/RenderBlock.h:
956         (WebCore::RenderBlock::scrollbarsChanged):
957         Added a new virtual method used by table cells when scrollbars in an overflow:auto/scroll table cell come and go.
958
959         * rendering/RenderBlockLineLayout.cpp:
960         (WebCore::RenderBlock::layoutInlineChildren):
961         (WebCore::RenderBlock::determineStartPosition):
962         (WebCore::RenderBlock::matchedEndLine):
963         (WebCore::RenderBlock::addOverflowFromInlineChildren):
964         (WebCore::RenderBlock::beforeSideVisualOverflowForLine):
965         (WebCore::RenderBlock::afterSideVisualOverflowForLine):
966         visible -> visual.
967
968         * rendering/RenderBox.cpp:
969         (WebCore::RenderBox::scrollWidth):
970         (WebCore::RenderBox::scrollHeight):
971         Patched to use layoutOverflow functions instead of the old rightmost/leftmostPosition functions.
972
973         (WebCore::RenderBox::paintRootBoxDecorations):
974         Use docLeft and docTop here, so that writing modes are handled.
975
976         (WebCore::RenderBox::clippedOverflowRectForRepaint):
977         visible -> visual.
978
979         (WebCore::RenderBox::addOverflowFromChild):
980         (WebCore::RenderBox::addLayoutOverflow):
981         (WebCore::RenderBox::addVisualOverflow):
982         (WebCore::RenderBox::logicalVisualOverflowRectForPropagation):
983         (WebCore::RenderBox::visualOverflowRectForPropagation):
984         (WebCore::RenderBox::logicalLayoutOverflowRectForPropagation):
985         (WebCore::RenderBox::layoutOverflowRectForPropagation):
986         * rendering/RenderBox.h:
987         The new overflow system for boxes.  Layout overflow now crosses self-painting layer boundaries and adjusts child boxes
988         for transforms, relative positioning and writing mode differences.
989
990         (WebCore::RenderBox::layoutOverflowRect):
991         (WebCore::RenderBox::topLayoutOverflow):
992         (WebCore::RenderBox::bottomLayoutOverflow):
993         (WebCore::RenderBox::leftLayoutOverflow):
994         (WebCore::RenderBox::rightLayoutOverflow):
995         Changed the default rectangle for layout overflow to be the client box to match the scrollable areas of overflow regions.
996
997         (WebCore::RenderBox::clientLogicalBottom):
998         New helper for obtaining the logical bottom of the client box.
999
1000         (WebCore::RenderBox::clientBoxRect):
1001         New helper for obtaining the clientLeft/Top/Width/Height box.
1002
1003         * rendering/RenderBoxModelObject.h:
1004         (WebCore::RenderBoxModelObject::relativePositionLogicalOffset):
1005         Helper for obtaining the relative position offset transposed for vertical writing modes.  Used by line overflow.
1006
1007         * rendering/RenderFlexibleBox.cpp:
1008         (WebCore::RenderFlexibleBox::layoutBlock):
1009         Changed flexible boxes to just call the base class computeOverflow method.
1010
1011         * rendering/RenderInline.cpp:
1012         (WebCore::RenderInline::linesVisualOverflowBoundingBox):
1013         (WebCore::RenderInline::clippedOverflowRectForRepaint):
1014         visible -> visual.
1015
1016         * rendering/RenderInline.h:
1017         * rendering/RenderLayer.cpp:
1018         (WebCore::RenderLayer::updateLayerPosition):
1019         Changed layers to no longer incorporate right/bottom overflow into width/height.  This is the reason many layout
1020         tests change.  (Not doing this makes the layout test changes far worse, since overflow propagates across self-painting
1021         layers now.)
1022
1023         (WebCore::RenderLayer::overflowTop):
1024         (WebCore::RenderLayer::overflowBottom):
1025         (WebCore::RenderLayer::overflowLeft):
1026         (WebCore::RenderLayer::overflowRight):
1027         overflowTop/Bottom/Left/Right return overflow that accounts for writing modes, i.e., purely physical overflow that can be used
1028         to set up the scroll area.
1029
1030         (WebCore::RenderLayer::computeScrollDimensions):
1031         Drastically simplified this method now that overflowTop/Bottom/Left/Right just do the right thing regarding unreachable overflow.
1032
1033         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
1034         Make sure to explicitly set the vertical scrollbar's position just as we did with horizontal scrollbars, so that clamping to the
1035         bottom works.
1036
1037         (WebCore::performOverlapTests):
1038         (WebCore::RenderLayer::paintLayer):
1039         Fix a bug in performOverlapTests.  It incorrectly used the layer's bounds, and so it didn't account for left/top overflow out
1040         of the layer (see why I hate layers even having dimensions?).  Changed it to use the bounding box of the layer instead.
1041
1042         (WebCore::RenderLayer::hitTest):
1043         Fix a bug in hit testing.  It incorrectly used the root layer's bounds as the limit of the hit test, and so it didn't account
1044         for left/top overflow in a ScrollView (hate hate hate layers having dimensions).  I changed it to use the hit test rect instead,
1045         so that the damage rect never stops the point from being tested (unless the hit test request says not to ignore clipping).
1046
1047         (WebCore::RenderLayer::localBoundingBox):
1048         visible -> visual.
1049
1050         * rendering/RenderLayer.h:
1051         Added the new overflowTop/Left/Right/Bottom accessors.
1052
1053         * rendering/RenderLineBoxList.cpp:
1054         (WebCore::RenderLineBoxList::anyLineIntersectsRect):
1055         (WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
1056         (WebCore::RenderLineBoxList::paint):
1057         (WebCore::RenderLineBoxList::hitTest):
1058         visible -> visual.
1059
1060         * rendering/RenderListItem.cpp:
1061         (WebCore::RenderListItem::addOverflowFromChildren):
1062         (WebCore::RenderListItem::positionListMarker):
1063         * rendering/RenderListItem.h:
1064         RenderListItem now positions the list marker when computing its overflow, since the marker propagates overflow back up to the list item.
1065
1066         * rendering/RenderListMarker.cpp:
1067         (WebCore::RenderListMarker::paint):
1068         visible -> visual.
1069
1070         * rendering/RenderMarquee.cpp:
1071         (WebCore::RenderMarquee::computePosition):
1072         Changed to use overflow functions instead of rightmost/lowestPosition.
1073
1074         * rendering/RenderMedia.cpp:
1075         * rendering/RenderMedia.h:
1076         Removed the lowest/topmost/rightmost/leftmostPosition functions, since control overflow is handled properly already.
1077
1078         * rendering/RenderOverflow.h:
1079         (WebCore::RenderOverflow::RenderOverflow):
1080         (WebCore::RenderOverflow::setLayoutOverflow):
1081         (WebCore::RenderOverflow::setVisualOverflow):
1082         Add new setters for layout and visual overflow as rects.
1083
1084         * rendering/RenderReplaced.cpp:
1085         (WebCore::RenderReplaced::shouldPaint):
1086         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
1087         visible -> visual.
1088
1089         * rendering/RenderRubyRun.cpp:
1090         (WebCore::RenderRubyRun::layout):
1091         Call computeOverflow to recompute our overflow information after we adjust the ruby.
1092
1093         * rendering/RenderTable.cpp:
1094         (WebCore::RenderTable::layout):
1095         (WebCore::RenderTable::addOverflowFromChildren):
1096         (WebCore::RenderTable::paint):
1097         * rendering/RenderTable.h:
1098         Move section overflow propagation into addOverflowFromChildren, and change RenderTable to just call computeOverflow.
1099
1100         * rendering/RenderTableCell.cpp:
1101         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
1102         visible -> visual.
1103
1104         (WebCore::RenderTableCell::scrollbarsChanged):
1105         Adding unreachable overflow support (something that in the old code only existed for positioned objects in the root view) exposed
1106         a bug in table layout.  If scrollbars are added during the layout that occurs after intrinsic padding was incorporated into the
1107         cell, then the cell won't lay out properly the second time (after the scrollbars have been added).  We have to adjust the intrinsic
1108         padding accounting for the presence of the new scrollbar so the second layout will get the right dimensions.
1109
1110         * rendering/RenderTableCell.h:
1111         (WebCore::RenderTableCell::hasVisualOverflow):
1112         visible -> visual.
1113
1114         * rendering/RenderTableSection.cpp:
1115         (WebCore::RenderTableSection::layoutRows):
1116         * rendering/RenderTableSection.h:
1117         visible -> visual.  Removed the leftmost/rightmost/topmost/bottommostPosition functions.
1118
1119         * rendering/RenderTreeAsText.cpp:
1120         (WebCore::writeLayers):
1121         Added a hack to render tree dumping to include right/bottom overflow for the root layer only.  This keeps a zillion layout tests
1122         from failing.
1123
1124         * rendering/RenderView.cpp:
1125         (WebCore::RenderView::layout):
1126         (WebCore::RenderView::docTop):
1127         (WebCore::RenderView::docBottom):
1128         (WebCore::RenderView::docLeft):
1129         (WebCore::RenderView::docRight):
1130         * rendering/RenderView.h:
1131         (WebCore::RenderView::docHeight):
1132         (WebCore::RenderView::docWidth):
1133         RenderView now uses docLeft/Top/Height/Width functions, which are just overflow queries that account for writing modes.  These methods
1134         are now the preferred way to query for the physical dimensions of a document.
1135
1136         * rendering/RootInlineBox.cpp:
1137         (WebCore::RootInlineBox::addHighlightOverflow):
1138         Changed to call setOverflowFromLogicalRects instead of the block/inline position functions.
1139
1140         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
1141         Remove the computation of block direction overflow, since it now all happens at once after the line is built.
1142
1143         (WebCore::RootInlineBox::paddedLayoutOverflowRect):
1144         * rendering/RootInlineBox.h:
1145         Added a new helper function for incorporating the end padding into a line.  This end padding also includes the single pixel for a caret
1146         in LTR if needed.
1147
1148 2010-12-06  Chris Marrin  <cmarrin@apple.com>
1149
1150         Reviewed by Simon Fraser.
1151
1152         Share code between Mac (CA) and Windows (CACF) GraphicsLayer implementations
1153         https://bugs.webkit.org/show_bug.cgi?id=49388
1154
1155         Replaced GraphicsLayerMac with GraphicsLayerCA. GraphicsLayerCA is essentially 
1156         identical to GraphicsLayerMac, but replaces all the CoreAnimation specific calls 
1157         with calls to PlatformCALayer and PlatformCAAnimation. This makes GraphicsLayerCA 
1158         platform neutral as long as implementations of those two classes are available. 
1159         Added implementations in PlatformCALayerMac and PlatformCAAnimationMac. Also got 
1160         rid of GraphicsLayer::nativeLayer() and replaced it with GraphicsLayer::platformLayer() 
1161         to avoid confusion since both names were used to refer to the same thing. 
1162
1163         This patch is only for Mac. Windows implementation has not changed.
1164
1165         * WebCore.xcodeproj/project.pbxproj:
1166         * platform/graphics/GraphicsLayer.h:
1167         * platform/graphics/ca/GraphicsLayerCA.cpp: Copied from WebCore/platform/graphics/ca/GraphicsLayerCA.cpp.
1168         * platform/graphics/ca/GraphicsLayerCA.h: Copied from WebCore/platform/graphics/ca/GraphicsLayerCA.h.
1169         * platform/graphics/ca/PlatformCAAnimation.h: Copied from WebCore/platform/graphics/ca/PlatformCAAnimation.h.
1170         * platform/graphics/ca/PlatformCALayer.h: Copied from WebCore/platform/graphics/ca/PlatformCALayer.h.
1171         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm: Copied from WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm.
1172         (toCAMediaTimingFunction):
1173         * platform/graphics/ca/mac/PlatformCALayerMac.mm: Copied from WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm.
1174         (PlatformCALayer::PlatformCALayer):
1175         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1176         * platform/graphics/chromium/GraphicsLayerChromium.h:
1177         * platform/graphics/mac/GraphicsLayerMac.h: Removed.
1178         * platform/graphics/mac/GraphicsLayerMac.mm: Removed.
1179         * platform/graphics/mac/WebLayer.h:
1180         * platform/graphics/mac/WebLayer.mm:
1181         (-[WebLayer setNeedsDisplay]):
1182         (-[WebLayer setNeedsDisplayInRect:]):
1183         (-[WebLayer display]):
1184         (-[WebLayer drawInContext:]):
1185         * platform/graphics/mac/WebTiledLayer.h:
1186         * platform/graphics/mac/WebTiledLayer.mm:
1187         (-[WebTiledLayer setNeedsDisplay]):
1188         (-[WebTiledLayer setNeedsDisplayInRect:]):
1189         (-[WebTiledLayer display]):
1190         (-[WebTiledLayer drawInContext:]):
1191         * platform/graphics/qt/GraphicsLayerQt.cpp:
1192         (WebCore::GraphicsLayerQtImpl::flushChanges):
1193         * platform/graphics/qt/GraphicsLayerQt.h:
1194         * platform/graphics/win/GraphicsLayerCACF.cpp:
1195         * platform/graphics/win/GraphicsLayerCACF.h:
1196
1197 2010-12-06  Simon Fraser  <simon.fraser@apple.com>
1198
1199         Reviewed by Dan Bernstein.
1200
1201         Font antialiasing (smoothing) changes when elements are rendered into compositing layers
1202         https://bugs.webkit.org/show_bug.cgi?id=23364
1203
1204         Text rendered by Core Graphics over a transparent background looks bad because of 
1205         font smoothing, so turn off smoothing when rendering text into compositing layers.
1206
1207         * platform/graphics/GraphicsContext.h:
1208         * platform/graphics/cg/GraphicsContextCG.cpp:
1209         (WebCore::GraphicsContext::setAllowsFontSmoothing):
1210         * platform/graphics/mac/WebLayer.mm:
1211         (drawLayerContents):
1212
1213 2010-12-06  Patrick Gansterer  <paroga@webkit.org>
1214
1215         Reviewed by Andreas Kling.
1216
1217         [WINCE] Add build system
1218         https://bugs.webkit.org/show_bug.cgi?id=50522
1219
1220         * CMakeListsWinCE.txt: Added.
1221
1222 2010-12-06  Chris Fleizach  <cfleizach@apple.com>
1223
1224         Reviewed by Oliver Hunt.
1225
1226         AX does not support HTML5 "required"
1227         https://bugs.webkit.org/show_bug.cgi?id=50507
1228
1229         Test: platform/mac/accessibility/html5-required-attribute.html
1230
1231         * accessibility/AccessibilityRenderObject.cpp:
1232         (WebCore::AccessibilityRenderObject::isRequired):
1233
1234 2010-12-06  Alejandro G. Castro  <alex@igalia.com>
1235
1236         Reviewed by Martin Robinson.
1237
1238         [GTK] using shadows leaks memory
1239         https://bugs.webkit.org/show_bug.cgi?id=50541
1240
1241         Fixed leaks in the shadow code.
1242         * platform/graphics/cairo/CairoUtilities.cpp:
1243         (WebCore::drawPatternToCairoContext): adoptRef instead of just
1244         getting a new reference.
1245         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1246         (WebCore::drawPathShadow): handle cairo_path_t with smart
1247         pointers.
1248
1249 2010-12-06  Yury Semikhatsky  <yurys@chromium.org>
1250
1251         Reviewed by Pavel Feldman.
1252
1253         [v8] Web Inspector: remove duplicate code for capturing stack trace
1254         https://bugs.webkit.org/show_bug.cgi?id=50461
1255
1256         No new tests. Covered with existing inspector tests.
1257
1258         * bindings/js/ScriptCallStackFactory.cpp:
1259         (WebCore::createScriptCallStack):
1260         * bindings/js/ScriptCallStackFactory.h:
1261         * bindings/v8/ScriptCallStackFactory.cpp:
1262         (WebCore::toScriptCallFrame):
1263         (WebCore::toScriptCallFramesVector):
1264         (WebCore::createScriptCallStack):
1265         * bindings/v8/ScriptCallStackFactory.h:
1266         * bindings/v8/V8ConsoleMessage.cpp:
1267         (WebCore::V8ConsoleMessage::handler):
1268         * inspector/ScriptCallFrame.cpp:
1269         (WebCore::ScriptCallFrame::ScriptCallFrame):
1270         (WebCore::ScriptCallFrame::isEqual):
1271         (WebCore::ScriptCallFrame::buildInspectorObject):
1272         * inspector/ScriptCallFrame.h:
1273         (WebCore::ScriptCallFrame::sourceURL):
1274         * inspector/ScriptCallStack.h:
1275         * inspector/TimelineRecordFactory.cpp:
1276         (WebCore::TimelineRecordFactory::createGenericRecord):
1277         * inspector/front-end/ConsoleView.js:
1278         (WebInspector.ConsoleMessage.prototype._populateStackTraceTreeElement):
1279
1280 == Rolled over to ChangeLog-2010-12-06 ==