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