[chromium] Animating opacity is not opaque and should create a render surface on...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-18  Dana Jansens  <danakj@chromium.org>
2
3         [chromium] Animating opacity is not opaque and should create a render surface on main thread
4         https://bugs.webkit.org/show_bug.cgi?id=81401
5
6         Reviewed by James Robinson.
7
8         Unit test: CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy
9
10         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
11         (WebCore::layerOpacityIsOpaque):
12         (WebCore):
13         (WebCore::subtreeShouldRenderToSeparateSurface):
14
15 2012-03-18  Sam Weinig  <sam@webkit.org>
16
17         WebCore::BitmapImage::getCGImageRef should not be used off the main thread.
18         https://bugs.webkit.org/show_bug.cgi?id=81441
19
20         Reviewed by Anders Carlsson.
21
22         Covered by existing tests.
23
24         * loader/cache/MemoryCache.cpp:
25         (WebCore::memoryCache):
26         (WebCore::MemoryCache::add):
27         (WebCore::MemoryCache::revalidationFailed):
28         (WebCore::MemoryCache::resourceForURL):
29         (WebCore::MemoryCache::evict):
30         Add back main thread assertions.
31
32         * platform/graphics/cg/PatternCG.cpp:
33         (PatternCallbackData):
34         (WebCore::patternCallback):
35         (WebCore::patternReleaseOnMainThreadCallback):
36         (WebCore::Pattern::createPlatformPattern):
37         Instead of pulling out the CGImageRef in the pattern callback, do it upfront.
38
39 2012-03-18  Alexander Færøy  <alexander.faeroy@nokia.com>
40
41         [Qt] Don't prepare SQL statements when the database is not open
42         https://bugs.webkit.org/show_bug.cgi?id=81470
43
44         Reviewed by Kenneth Rohde Christiansen.
45
46         Already covered by existing tests.
47
48         * platform/qt/CookieJarQt.cpp:
49         (WebCore::SharedCookieJarQt::deleteCookiesForHostname):
50         (WebCore::SharedCookieJarQt::deleteAllCookies):
51         (WebCore::SharedCookieJarQt::setCookiesFromUrl):
52         (WebCore::SharedCookieJarQt::loadCookies):
53
54 2012-03-18  Kentaro Hara  <haraken@chromium.org>
55
56         Unreviewed, rolling out r110994 due to Chromium crash
57
58         * CMakeLists.txt:
59         * DerivedSources.make:
60         * DerivedSources.pri:
61         * GNUmakefile.list.am:
62         * Target.pri:
63         * WebCore.gypi:
64         * WebCore.vcproj/WebCore.vcproj:
65         * WebCore.xcodeproj/project.pbxproj:
66         * notifications/DOMWindowNotifications.cpp: Removed.
67         * notifications/DOMWindowNotifications.h: Removed.
68         * notifications/DOMWindowNotifications.idl: Removed.
69         * page/DOMWindow.cpp:
70         (WebCore::DOMWindow::~DOMWindow):
71         (WebCore::DOMWindow::willDetachPage):
72         (WebCore::DOMWindow::disconnectDOMWindowProperties):
73         (WebCore::DOMWindow::clearDOMWindowProperties):
74         (WebCore):
75         (WebCore::DOMWindow::webkitNotifications):
76         (WebCore::DOMWindow::resetNotifications):
77         * page/DOMWindow.h:
78         (WebCore):
79         (DOMWindow):
80         * page/DOMWindow.idl:
81         * page/Frame.cpp:
82         (WebCore::Frame::willDetachPage):
83         (WebCore::Frame::transferChildFrameToNewDocument):
84
85 2012-03-18  Kentaro Hara  <haraken@chromium.org>
86
87         Unreviewed, rolling out r111086.
88         http://trac.webkit.org/changeset/111086
89         https://bugs.webkit.org/show_bug.cgi?id=81374
90
91         Chromium crash
92
93         * notifications/DOMWindowNotifications.cpp:
94         (WebCore::DOMWindowNotifications::disconnectFrame):
95
96 2012-03-18  David Reveman  <reveman@chromium.org>
97
98         Invalidation issue when creating backing layer for fixed positioned element.
99         https://bugs.webkit.org/show_bug.cgi?id=80647
100
101         Reviewed by James Robinson.
102
103         Ensure that root layer is correctly invalidated by handling scroll and
104         invalidation from movement of fixed position elements prior to creating
105         any backing layers.
106
107         Test: compositing/layer-creation/fixed-position-scroll.html
108
109         * page/FrameView.cpp:
110         (WebCore::FrameView::repaintFixedElementsAfterScrolling):
111         (WebCore):
112         (WebCore::FrameView::updateFixedElementsAfterScrolling):
113         * page/FrameView.h:
114         (FrameView):
115         * platform/ScrollView.cpp:
116         (WebCore::ScrollView::scrollTo):
117         * platform/ScrollView.h:
118         (WebCore::ScrollView::repaintFixedElementsAfterScrolling):
119         (WebCore::ScrollView::updateFixedElementsAfterScrolling):
120
121 2012-03-18  Dana Jansens  <danakj@chromium.org>
122
123         [chromium] Transform animation state should be inherited from parents
124         https://bugs.webkit.org/show_bug.cgi?id=81363
125
126         Reviewed by Adrienne Walker.
127
128         Adds a drawTransformIsAnimating() and screenSpaceTransformIsAnimating()
129         to the layer classes, and similar to the surface classes. These inherit
130         the values from their parents in the same way that the transforms
131         themselves do, and reflect if the layer's transform is being affected
132         by some active animation.
133
134         These can be used in main-thread culling when determining if the layer's
135         position is static in the given coordinate space or being animated.
136
137         Unit test: CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy
138
139         * platform/graphics/chromium/LayerChromium.cpp:
140         (WebCore::LayerChromium::LayerChromium):
141         * platform/graphics/chromium/LayerChromium.h:
142         (LayerChromium):
143         (WebCore::LayerChromium::drawTransformIsAnimating):
144         (WebCore::LayerChromium::setDrawTransformIsAnimating):
145         (WebCore::LayerChromium::screenSpaceTransformIsAnimating):
146         (WebCore::LayerChromium::setScreenSpaceTransformIsAnimating):
147         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
148         (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
149         * platform/graphics/chromium/RenderSurfaceChromium.h:
150         (WebCore::RenderSurfaceChromium::targetSurfaceTransformsAreAnimating):
151         (WebCore::RenderSurfaceChromium::setTargetSurfaceTransformsAreAnimating):
152         (WebCore::RenderSurfaceChromium::screenSpaceTransformsAreAnimating):
153         (WebCore::RenderSurfaceChromium::setScreenSpaceTransformsAreAnimating):
154         (RenderSurfaceChromium):
155         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
156         (WebCore::CCLayerImpl::CCLayerImpl):
157         * platform/graphics/chromium/cc/CCLayerImpl.h:
158         (CCLayerImpl):
159         (WebCore::CCLayerImpl::drawTransformIsAnimating):
160         (WebCore::CCLayerImpl::setDrawTransformIsAnimating):
161         (WebCore::CCLayerImpl::screenSpaceTransformIsAnimating):
162         (WebCore::CCLayerImpl::setScreenSpaceTransformIsAnimating):
163         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
164         (WebCore::subtreeShouldBeSkipped):
165         (WebCore::calculateDrawTransformsAndVisibilityInternal):
166         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
167         (WebCore::CCRenderSurface::CCRenderSurface):
168         * platform/graphics/chromium/cc/CCRenderSurface.h:
169         (WebCore::CCRenderSurface::targetSurfaceTransformsAreAnimating):
170         (WebCore::CCRenderSurface::setTargetSurfaceTransformsAreAnimating):
171         (WebCore::CCRenderSurface::screenSpaceTransformsAreAnimating):
172         (WebCore::CCRenderSurface::setScreenSpaceTransformsAreAnimating):
173         (CCRenderSurface):
174
175 2012-03-18  Pratik Solanki  <psolanki@apple.com>
176
177         Fix compile when FULLSCREEN_API is not enabled on Mac
178         https://bugs.webkit.org/show_bug.cgi?id=81474
179
180         Reviewed by Ada Chan.
181
182         Guard the full screen api code inside ENABLE(FULLSCREEN_API).
183
184         No new tests because no functional changes.
185
186         * platform/mac/WebCoreFullScreenWindow.h:
187         * platform/mac/WebCoreFullScreenWindow.mm:
188
189 2012-03-18  Kentaro Hara  <haraken@chromium.org>
190
191         Change the initial buffer size of a plain text
192         https://bugs.webkit.org/show_bug.cgi?id=81192
193
194         Reviewed by Dimitri Glazkov.
195
196         r111109 changed the initial buffer size of a plain text
197         from 1<<16 to 1<<15 in Chromium/Mac only, for the following reasons:
198
199         - As far as I experimented locally, while 1<<15 is better than 1<<16 in Chromium/Mac,
200         1<<15 and 1<<16 are the same in AppleWebKit/Mac and Chromium/Linux (their performance
201         "gap" exists at between 1<<17 and 1<<18).
202         - The reason why I changed 1<<16 to 1<<15 in Chromium/Mac only is that
203         the value highly depends on the underlying malloc system and I was a bit afraid
204         that changing to 1<<15 _might_ cause unintentional performance regression in some
205         platform.
206
207         That being said, it seems that 1<<15 would not be worse than 1<<16 in all platforms,
208         and we should just keep the value consistent. In the first place, according to anttik
209         (who wrote 1<<16 a long time ago), there was no strong reason for 1<<16.
210
211         Based on these observations (See https://bugs.webkit.org/show_bug.cgi?id=81192
212         for more details), this patch unifies the value to 1<<15 in all platforms.
213
214         No tests. No change in behavior.
215
216         * editing/TextIterator.cpp:
217         (WebCore::plainTextToMallocAllocatedBuffer):
218
219 2012-02-13  Robert Hogan  <robert@webkit.org>
220
221         CSS 2.1 failure: eof-003.htm fails
222         https://bugs.webkit.org/show_bug.cgi?id=78538
223
224         Reviewed by Antti Koivisto.
225
226         Tests: css2.1/20110323/eof-001.htm
227                css2.1/20110323/eof-003.htm
228                css2.1/20110323/eof-004.htm
229                css2.1/20110323/eof-005.htm
230                css2.1/20110323/eof-006.htm
231                css2.1/20110323/eof-007.htm
232
233         This patch fixes eof-003.htm, eof-005.htm and eof-006.htm. The other eof-* tests already pass.
234
235         * css/CSSGrammar.y: Allow EOF as well as ';' to terminate import rules.
236                             This should probably be done for other rules in a separate patch.
237         * css/CSSParser.cpp:
238         (WebCore::CSSParser::checkAndSkipString): Allow strings to end with EOF.
239         (WebCore::CSSParser::parseString): ditto
240
241 2012-03-17  David Reveman  <reveman@chromium.org>
242
243         [Chromium] PlatformContextSkia::m_drawingToImageBuffer is not correctly set when using per-tile painting.
244         https://bugs.webkit.org/show_bug.cgi?id=81463
245
246         Reviewed by James Robinson.
247
248         Call PlatformContextSkia::setDrawingToImageBuffer() from
249         SkPictureCanvasLayerTextureUpdater::prepareToUpdate so that sub-pixel
250         text rendering is not used incorrectly with per-tile painting.
251
252         No new tests.
253
254         * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
255         (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
256
257 2012-03-17  Robert Kroeger  <rjkroege@chromium.org>
258
259         [chromium] Make pixel-accurate wheel scrolling be unanimated
260         https://bugs.webkit.org/show_bug.cgi?id=81457
261
262         Reviewed by James Robinson.
263
264         * platform/ScrollAnimatorNone.cpp:
265         (WebCore::ScrollAnimatorNone::scroll):
266
267 2012-03-17  Rob Buis  <rbuis@rim.com>
268
269         [BlackBerry] Implement openTemporaryFile in FileSystem
270         https://bugs.webkit.org/show_bug.cgi?id=81373
271
272         Reviewed by George Staikos.
273
274         Move the Efl implementation to Posix, this way BlackBerry port can reuse it.
275
276         * platform/blackberry/FileSystemBlackBerry.cpp:
277         * platform/efl/FileSystemEfl.cpp:
278         * platform/posix/FileSystemPOSIX.cpp:
279         (WebCore::openTemporaryFile):
280         (WebCore):
281
282 2012-03-17  Joe Thomas  <joethomas@motorola.com>
283
284         move calc*Value functions out from Length (and platform)
285         https://bugs.webkit.org/show_bug.cgi?id=80897
286
287         Moving the Length calc*Value functions out from Length structure and also from /WebCore/platform/ folder.
288         This helps to avoid the layering violation while length calculation. Otherwise layer violation can be avoided only by adding a virtual interface(bug 27160).
289
290         Reviewed by Antti Koivisto.
291
292         * GNUmakefile.list.am: Build system changes for adding new files.
293         * Target.pri: Ditto.
294         * WebCore.gypi: Ditto.
295         * WebCore.vcproj/WebCore.vcproj: Ditto.
296         * WebCore.xcodeproj/project.pbxproj: Ditto.
297         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
298         (getAttributeSetForAccessibilityObject):
299         * css/CSSComputedStyleDeclaration.cpp:
300         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
301         * css/LengthFunctions.h: Added. Moved calc*Value functions of Length.
302         (WebCore):
303         (WebCore::calculateMinimumValue):
304         (WebCore::calculateValue):
305         (WebCore::calculateFloatValue):
306         * dom/Document.cpp:
307         (WebCore::Document::pageSizeAndMarginsInPixels):
308         * html/HTMLAreaElement.cpp:
309         (WebCore::HTMLAreaElement::getRegion):
310         * platform/CalculationValue.h:
311         (WebCore::CalcExpressionLength::evaluate):
312         * platform/Length.h: Removed the calc*Value functions from Length structure.
313         (Length):
314         (WebCore::Length::getFloatValue):
315         (WebCore::Length::getIntValue):
316         * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
317         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
318         (PlatformCALayer::setFilters):
319         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
320         (WebCore::CCRenderSurfaceFilters::apply):
321         * platform/graphics/filters/FilterOperations.cpp:
322         (WebCore::FilterOperations::getOutsets):
323         * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
324         (WebCore::PerspectiveTransformOperation::blend):
325         * platform/graphics/transforms/PerspectiveTransformOperation.h:
326         (WebCore::PerspectiveTransformOperation::isIdentity):
327         (WebCore::PerspectiveTransformOperation::apply):
328         * platform/graphics/transforms/TranslateTransformOperation.h:
329         (WebCore::TranslateTransformOperation::x):
330         (WebCore::TranslateTransformOperation::y):
331         (WebCore::TranslateTransformOperation::z):
332         (WebCore::TranslateTransformOperation::isIdentity):
333         * platform/win/PopupMenuWin.cpp:
334         (WebCore::PopupMenuWin::paint):
335         * rendering/AutoTableLayout.cpp:
336         (WebCore::AutoTableLayout::layout):
337         * rendering/FilterEffectRenderer.cpp:
338         (WebCore::FilterEffectRenderer::build):
339         * rendering/FixedTableLayout.cpp:
340         (WebCore::FixedTableLayout::layout):
341         * rendering/RenderBlock.cpp:
342         (WebCore::RenderBlock::textIndentOffset):
343         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
344         * rendering/RenderBox.cpp:
345         (WebCore::RenderBox::reflectionOffset):
346         (WebCore::RenderBox::clipRect):
347         (WebCore::RenderBox::computeLogicalWidthInRegion):
348         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
349         (WebCore::RenderBox::computeInlineDirectionMargins):
350         (WebCore::RenderBox::computePercentageLogicalHeight):
351         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
352         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
353         (WebCore::RenderBox::availableLogicalHeightUsing):
354         (WebCore::RenderBox::computeBlockDirectionMargins):
355         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
356         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
357         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
358         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
359         * rendering/RenderBoxModelObject.cpp:
360         (WebCore::RenderBoxModelObject::relativePositionOffsetX):
361         (WebCore::RenderBoxModelObject::relativePositionOffsetY):
362         (WebCore::RenderBoxModelObject::paddingTop):
363         (WebCore::RenderBoxModelObject::paddingBottom):
364         (WebCore::RenderBoxModelObject::paddingLeft):
365         (WebCore::RenderBoxModelObject::paddingRight):
366         (WebCore::RenderBoxModelObject::paddingBefore):
367         (WebCore::RenderBoxModelObject::paddingAfter):
368         (WebCore::RenderBoxModelObject::paddingStart):
369         (WebCore::RenderBoxModelObject::paddingEnd):
370         (WebCore::RenderBoxModelObject::calculateFillTileSize):
371         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
372         (WebCore::computeBorderImageSide):
373         (WebCore::RenderBoxModelObject::paintNinePieceImage):
374         * rendering/RenderFlexibleBox.cpp:
375         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
376         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
377         (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithm):
378         * rendering/RenderFrameSet.cpp:
379         (WebCore::RenderFrameSet::layOutAxis):
380         * rendering/RenderInline.cpp:
381         (WebCore::computeMargin):
382         * rendering/RenderLayer.cpp:
383         (WebCore::RenderLayer::perspectiveTransform):
384         (WebCore::RenderLayer::perspectiveOrigin):
385         * rendering/RenderLayerBacking.cpp:
386         (WebCore::RenderLayerBacking::computeTransformOrigin):
387         (WebCore::RenderLayerBacking::computePerspectiveOrigin):
388         * rendering/RenderMarquee.cpp:
389         (WebCore::RenderMarquee::timerFired):
390         * rendering/RenderMenuList.cpp:
391         (WebCore::RenderMenuList::updateOptionsWidth):
392         * rendering/RenderObject.cpp:
393         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
394         * rendering/RenderReplaced.cpp:
395         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
396         * rendering/RenderScrollbarPart.cpp:
397         (WebCore::calcScrollbarThicknessUsing):
398         (WebCore::RenderScrollbarPart::computeScrollbarWidth):
399         (WebCore::RenderScrollbarPart::computeScrollbarHeight):
400         * rendering/RenderTable.cpp:
401         (WebCore::RenderTable::computeLogicalWidth):
402         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
403         * rendering/RenderTableCell.cpp:
404         (WebCore::RenderTableCell::logicalHeightForRowSizing):
405         * rendering/RenderTableSection.cpp:
406         (WebCore::RenderTableSection::calcRowLogicalHeight):
407         * rendering/RenderText.h:
408         (WebCore::RenderText::marginLeft):
409         (WebCore::RenderText::marginRight):
410         * rendering/RootInlineBox.cpp:
411         (WebCore::RootInlineBox::verticalPositionForBox):
412         * rendering/style/RenderStyle.cpp:
413         (WebCore::RenderStyle::applyTransform):
414         (WebCore::calcRadiiFor):
415         * rendering/style/RenderStyle.h:
416         * rendering/svg/RenderSVGRoot.cpp:
417         (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
418         (WebCore::resolveLengthAttributeForSVG):
419         * svg/SVGSVGElement.cpp:
420         (WebCore::SVGSVGElement::currentViewBoxRect):
421         (WebCore::SVGSVGElement::currentViewportSize):
422         * svg/graphics/SVGImage.cpp:
423         (WebCore::SVGImage::computeIntrinsicDimensions):
424
425 2012-03-17  Nikolas Zimmermann  <nzimmermann@rim.com>
426
427         Enable animVal support for SVGNumberOptionalNumber
428         https://bugs.webkit.org/show_bug.cgi?id=81448
429
430         Reviewed by Antti Koivisto.
431
432         Enable animVal support for SVGNumberOptionalNumber. Its a special case as two SVG DOM properties
433         eg. stdDeviationX/stdDeviationY are mapped to a single XML attribute: SVGNames::stdDeviationAttr.
434
435         When animating properties like this, both animVal wrappers need to reflect changes.
436         Generalize the current animVal code to support more than one SVGAnimatedProperty that gets
437         animated for a single attributeName. This allows us to remove SVGAnimatedType::variantValue/setVariantValue
438         which paves the way for removing SVGGenericAnimatedType from even more places.
439
440         Covered by existing tests.
441
442         * svg/SVGAnimateElement.cpp:
443         (WebCore::SVGAnimateElement::SVGAnimateElement):
444         (WebCore::SVGAnimateElement::calculateAnimatedValue):
445         (WebCore::SVGAnimateElement::resetToBaseValue):
446         (WebCore::SVGAnimateElement::targetElementWillChange):
447         * svg/SVGAnimateElement.h:
448         (SVGAnimateElement):
449         * svg/SVGAnimatedLength.cpp:
450         (WebCore::SVGAnimatedLengthAnimator::constructFromBaseValue):
451         (WebCore):
452         (WebCore::SVGAnimatedLengthAnimator::resetAnimatedTypeToBaseValue):
453         * svg/SVGAnimatedLength.h:
454         (SVGAnimatedLengthAnimator):
455         * svg/SVGAnimatedLengthList.cpp:
456         (WebCore::SVGAnimatedLengthListAnimator::constructFromBaseValue):
457         (WebCore):
458         (WebCore::SVGAnimatedLengthListAnimator::resetAnimatedTypeToBaseValue):
459         * svg/SVGAnimatedLengthList.h:
460         (SVGAnimatedLengthListAnimator):
461         * svg/SVGAnimatedNumber.cpp:
462         (WebCore::SVGAnimatedNumberAnimator::constructFromBaseValue):
463         (WebCore):
464         (WebCore::SVGAnimatedNumberAnimator::resetAnimatedTypeToBaseValue):
465         * svg/SVGAnimatedNumber.h:
466         (SVGAnimatedNumberAnimator):
467         * svg/SVGAnimatedNumberList.cpp:
468         (WebCore::SVGAnimatedNumberListAnimator::constructFromBaseValue):
469         (WebCore):
470         (WebCore::SVGAnimatedNumberListAnimator::resetAnimatedTypeToBaseValue):
471         * svg/SVGAnimatedNumberList.h:
472         (SVGAnimatedNumberListAnimator):
473         * svg/SVGAnimatedNumberOptionalNumber.cpp:
474         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::constructFromBaseValue):
475         (WebCore):
476         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimatedTypeToBaseValue):
477         * svg/SVGAnimatedNumberOptionalNumber.h:
478         (WebCore):
479         (SVGAnimatedNumberOptionalNumberAnimator):
480         * svg/SVGAnimatedTransformList.cpp:
481         (WebCore::SVGAnimatedTransformListAnimator::constructFromBaseValue):
482         (WebCore::SVGAnimatedTransformListAnimator::resetAnimatedTypeToBaseValue):
483         (WebCore):
484         * svg/SVGAnimatedTransformList.h:
485         (SVGAnimatedTransformListAnimator):
486         * svg/SVGAnimatedType.cpp:
487         (WebCore::SVGAnimatedType::supportsAnimVal):
488         * svg/SVGAnimatedType.h:
489         (SVGAnimatedType):
490         * svg/SVGAnimatedTypeAnimator.h:
491         (SVGAnimatedTypeAnimator):
492         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue):
493         (WebCore::SVGAnimatedTypeAnimator::resetAnimatedTypeToBaseValue):
494         (WebCore::SVGAnimatedTypeAnimator::currentBaseValueVariant):
495         (WebCore::SVGAnimatedTypeAnimator::constructFromOneBaseValue):
496         (WebCore::SVGAnimatedTypeAnimator::resetAnimatedTypeFromOneBaseValue):
497         (WebCore::SVGAnimatedTypeAnimator::constructFromTwoBaseValues):
498         (WebCore::SVGAnimatedTypeAnimator::resetAnimatedTypeFromTwoBaseValues):
499         * svg/SVGAnimationElement.cpp:
500         (WebCore::findMatchingAnimatedProperties):
501         (WebCore::SVGAnimationElement::applyAnimatedValue):
502         (WebCore::notifyAnimatedPropertyAboutAnimationBeginEnd):
503         (WebCore::SVGAnimationElement::animationStarted):
504         (WebCore::SVGAnimationElement::animationEnded):
505         (WebCore::SVGAnimationElement::animatedPropertiesForType):
506         * svg/SVGAnimationElement.h:
507         * svg/properties/SVGAnimatedListPropertyTearOff.h:
508         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValueVariant):
509         (WebCore::SVGAnimatedListPropertyTearOff::animationStarted):
510         * svg/properties/SVGAnimatedProperty.h:
511         (SVGAnimatedProperty):
512         * svg/properties/SVGAnimatedPropertyTearOff.h:
513         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValueVariant):
514         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
515         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
516         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValueVariant):
517         (WebCore::SVGAnimatedStaticPropertyTearOff::animationStarted):
518
519 2012-03-12  Philippe Normand  <pnormand@igalia.com>
520
521         [GStreamer] run AudioFileReader in a nested loop
522         https://bugs.webkit.org/show_bug.cgi?id=80823
523
524         Reviewed by Martin Robinson.
525
526         Use a separate main loop for the file reader, this approach is
527         much cleaner than polling the default GLib main context.
528
529         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
530         (AudioFileReader):
531         (WebCore::enteredMainLoopCallback):
532         (WebCore):
533         (WebCore::AudioFileReader::AudioFileReader):
534         (WebCore::AudioFileReader::handleMessage):
535         (WebCore::AudioFileReader::start):
536         (WebCore::AudioFileReader::createBus):
537
538 2012-02-07  Robert Hogan  <robert@webkit.org>
539
540         CSS 2.1 failure: fixed-table-layout-013 and fixed-table-layout-015 fail
541         https://bugs.webkit.org/show_bug.cgi?id=78027
542
543         Reviewed by Julien Chaffraix.
544
545         Both of these test the (slightly implicit) rule that width set on column-groups cannot
546         affect the width of columns in a fixed layout table: http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout
547         FF, Opera and IE all pass these two tests.
548
549         Tests: css2.1/20110323/fixed-table-layout-013.htm
550                css2.1/20110323/fixed-table-layout-015.htm
551                fast/table/fixed-table-layout-toggle-colwidth.html
552
553         * rendering/FixedTableLayout.cpp:
554         (WebCore::nextCol): A helper function for finding the next column along.
555         (WebCore::FixedTableLayout::calcWidthArray): Ignore width specified by column groups.
556         * rendering/RenderTableCol.h:
557         (WebCore::RenderTableCol::isTableColGroup): Convenience function for identifying column groups.
558
559 2012-03-16  Leo Yang  <leo.yang@torchmobile.com.cn>
560
561         [BlackBerry] Add BlackBerry to NavigatorBase.cpp
562         https://bugs.webkit.org/show_bug.cgi?id=81303
563
564         Reviewed by Rob Buis.
565
566         * page/NavigatorBase.cpp:
567
568 2012-03-16  Leo Yang  <leo.yang@torchmobile.com.cn>
569
570         [BlackBerry] Add typedef of DragDataRef for blackberry
571         https://bugs.webkit.org/show_bug.cgi?id=81301
572
573         Reviewed by Rob Buis.
574
575         * platform/DragData.h:
576
577 2012-03-16  James Robinson  <jamesr@chromium.org>
578
579         [chromium] Unify the drawing logic for different layer types that output textures to the compositor
580         https://bugs.webkit.org/show_bug.cgi?id=81286
581
582         Reviewed by Adrienne Walker.
583
584         Currently canvas 2d, webgl, and plugin layers all export a texture to the compositor that then needs to be
585         drawn.  There are a small set of operations that can be applied to the texture at draw time - do a Y flip,
586         stretch a subrect to the layer bounds, set the blend mode etc but they are fundamentally the same thing. This
587         collapses the nearly-redundant code into a single impl-side layer type for a texture-backed layer that can
588         handle the union of the bits needed for each layer type.
589
590         Canvas 2d, WebGL and plugin composited rendering are all covered by layout tests.
591
592         * WebCore.gypi:
593         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
594         (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
595         * platform/graphics/chromium/CanvasLayerChromium.cpp:
596         (WebCore::CanvasLayerChromium::createCCLayerImpl):
597         * platform/graphics/chromium/LayerRendererChromium.cpp:
598         (WebCore::LayerRendererChromium::drawQuad):
599         (WebCore::TexStretchTextureProgramBinding::set):
600         (WebCore::TexTransformTextureProgramBinding::set):
601         (WebCore::LayerRendererChromium::drawTextureQuad):
602         (WebCore::LayerRendererChromium::textureLayerProgramFlip):
603         (WebCore::LayerRendererChromium::textureLayerProgramStretch):
604         (WebCore::LayerRendererChromium::textureLayerProgramStretchFlip):
605         (WebCore::LayerRendererChromium::textureLayerTexRectProgram):
606         (WebCore::LayerRendererChromium::textureLayerTexRectProgramFlip):
607         (WebCore::LayerRendererChromium::cleanupSharedObjects):
608         * platform/graphics/chromium/LayerRendererChromium.h:
609         (WebCore):
610         (LayerRendererChromium):
611         * platform/graphics/chromium/PluginLayerChromium.cpp:
612         (WebCore::PluginLayerChromium::PluginLayerChromium):
613         (WebCore::PluginLayerChromium::createCCLayerImpl):
614         (WebCore::PluginLayerChromium::setIOSurfaceProperties):
615         (WebCore::PluginLayerChromium::pushPropertiesTo):
616         * platform/graphics/chromium/PluginLayerChromium.h:
617         (PluginLayerChromium):
618         * platform/graphics/chromium/WebGLLayerChromium.cpp:
619         (WebCore::WebGLLayerChromium::pushPropertiesTo):
620         * platform/graphics/chromium/cc/CCCanvasDrawQuad.cpp: Removed.
621         * platform/graphics/chromium/cc/CCCanvasDrawQuad.h: Removed.
622         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp: Removed.
623         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h: Removed.
624         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
625         (WebCore::CCDrawQuad::toTextureDrawQuad):
626         * platform/graphics/chromium/cc/CCDrawQuad.h:
627         (WebCore):
628         (CCDrawQuad):
629         * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCPluginDrawQuad.cpp.
630         (WebCore):
631         (WebCore::CCTextureDrawQuad::create):
632         (WebCore::CCTextureDrawQuad::CCTextureDrawQuad):
633         * platform/graphics/chromium/cc/CCTextureDrawQuad.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCPluginDrawQuad.h.
634         (WebCore):
635         (CCTextureDrawQuad):
636         (WebCore::CCTextureDrawQuad::textureId):
637         (WebCore::CCTextureDrawQuad::hasAlpha):
638         (WebCore::CCTextureDrawQuad::premultipliedAlpha):
639         (WebCore::CCTextureDrawQuad::uvRect):
640         (WebCore::CCTextureDrawQuad::flipped):
641         (WebCore::CCTextureDrawQuad::ioSurfaceSize):
642         (WebCore::CCTextureDrawQuad::ioSurfaceTextureId):
643         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCPluginLayerImpl.cpp.
644         (WebCore):
645         (WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
646         (WebCore::CCTextureLayerImpl::~CCTextureLayerImpl):
647         (WebCore::CCTextureLayerImpl::willDraw):
648         (WebCore::CCTextureLayerImpl::appendQuads):
649         (WebCore::CCTextureLayerImpl::dumpLayerProperties):
650         (WebCore::CCTextureLayerImpl::didLoseContext):
651         (WebCore::CCTextureLayerImpl::setIOSurfaceProperties):
652         * platform/graphics/chromium/cc/CCTextureLayerImpl.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCPluginLayerImpl.h.
653         (WebCore):
654         (CCTextureLayerImpl):
655         (WebCore::CCTextureLayerImpl::create):
656         (WebCore::CCTextureLayerImpl::textureId):
657         (WebCore::CCTextureLayerImpl::setTextureId):
658         (WebCore::CCTextureLayerImpl::setHasAlpha):
659         (WebCore::CCTextureLayerImpl::setPremultipliedAlpha):
660         (WebCore::CCTextureLayerImpl::setFlipped):
661         (WebCore::CCTextureLayerImpl::setUVRect):
662         (WebCore::CCTextureLayerImpl::layerTypeAsString):
663
664 2012-03-16  Martin Robinson  <mrobinson@igalia.com>
665
666         [Cairo] Text extent of shadowed text is calculated incorrectly
667         https://bugs.webkit.org/show_bug.cgi?id=65035
668
669         Reviewed by Martin Robinson.
670
671         No new tests. This is already covered by fast/canvas/fillText-shadow.html.
672
673         Correct determine the size of rendered text using x and y bearing from the font
674         extents.
675
676         * platform/graphics/cairo/FontCairo.cpp:
677         (WebCore::drawGlyphsShadow): Use the x and y bearing to calculate text extents.
678         This gives a more accurate sizing and avoids clipping the edges of the shadow.
679
680 2012-03-16  Kentaro Hara  <haraken@chromium.org>
681
682         [Chromium][Performance] Optimize innerText and outerText in Chromium/Mac
683         https://bugs.webkit.org/show_bug.cgi?id=81192
684
685         Reviewed by Dimitri Glazkov.
686
687         This patch makes innerText and outerText 4 times faster on Chromium/Mac.
688         A similar performance improvement will be also observed in APIs that are using
689         TextIterator::plainText() (e.g. Editting, SpellChecker, Clipboard, Pasteboard etc).
690
691         Performance test: https://bugs.webkit.org/attachment.cgi?id=131989
692
693         - AppleWebKit/JavaScriptCore/Mac:
694         div.innerText : 2978.4ms
695         div.outerText : 2944.4ms
696
697         - Chromium/V8/Mac without the patch:
698         div.innerText : 10050.8ms
699         div.outerText : 10072.2ms
700
701         - Chromium/V8/Mac with the patch:
702         div.innerText: 2536.4ms
703         div.outerText: 2714ms
704
705         This patch just changes the initial buffer size of a plain text buffer on Chromium/Mac.
706         As shown below, in my local Chromium/Mac environment the performance changes
707         dramatically between 1<<15 and 1<<16, and in my local Chromium/Linux environment
708         the performance changes between 1<<17 and 1<<18. I am not yet sure what determines
709         these figures, but it seems there exists a performance gap at some point
710         depending on a malloc mechanism.
711
712         - div.innerText results on Chromium/V8/Mac:
713         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 14 ==> 2465.6 ms
714         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 15 ==> 2447.2 ms   <--- after this patch
715         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 16 ==> 10250.8 ms  <--- before this patch
716         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 17 ==> 10278.2 ms
717
718         - div.innerText results on Chromium/V8/Linux:
719         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 14 ==> 1569.8 ms
720         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 15 ==> 1531.8 ms
721         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 16 ==> 1543.2 ms  <--- before/after this patch
722         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 17 ==> 1541.6 ms
723         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 18 ==> 12540.8 ms
724         WTF_TEXT_ITERATOR_BUFFER_INITIAL_CAPACITY = 1 << 19 ==> 12340.8 ms
725
726         * editing/TextIterator.cpp:
727         (WebCore::plainTextToMallocAllocatedBuffer):
728
729 2012-03-16  Dmitry Titov  <dimich@chromium.org>
730
731         HTMLFrameElementBase::m_remainsAliveOnRemovalFromTree can be cleared without unloading the frame.
732         https://bugs.webkit.org/show_bug.cgi?id=80766
733
734         Reviewed by Adam Barth.
735
736         * html/HTMLFrameElementBase.cpp:
737         (WebCore::HTMLFrameElementBase::insertedIntoDocument):
738         (WebCore::HTMLFrameElementBase::setRemainsAliveOnRemovalFromTree):
739         if adoptNode() is called on a detached iframe or with a detached document,
740         unload the iframe to avoid live iframe to hang around w/o being attached to
741         a document.
742
743 2012-03-16  Joe Thomas  <joethomas@motorola.com>
744
745         Xcode project file is not sorted.
746         https://bugs.webkit.org/show_bug.cgi?id=81439
747
748         Sorted the project file entries using sort-Xcode-project-file script.
749
750         Reviewed by Eric Seidel.
751
752         * WebCore.xcodeproj/project.pbxproj:
753
754 2012-03-16  Yael Aharon  <yael.aharon@nokia.com>
755
756         Unreviewed build fix after r111075.
757         Correct the path of WebKitBlobBuilder.idl.
758
759         * DerivedSources.pri:
760
761 2012-03-16  David Levin  <levin@chromium.org>
762
763         Fix for test runs for non-chromium platforms.
764
765         * loader/cache/MemoryCache.cpp:
766         (WebCore::memoryCache):
767         (WebCore::MemoryCache::add):
768         (WebCore::MemoryCache::revalidationFailed):
769         (WebCore::MemoryCache::resourceForURL):
770         (WebCore::MemoryCache::evict):
771
772 2012-03-16  Tony Chang  <tony@chromium.org>
773
774         Unreviewed, rolling out r111094.
775         http://trac.webkit.org/changeset/111094
776         https://bugs.webkit.org/show_bug.cgi?id=80882
777
778         broke test on chromium-win
779
780         * rendering/RenderFlexibleBox.cpp:
781         (WebCore::RenderFlexibleBox::alignChildren):
782         * rendering/RenderFlexibleBox.h:
783         (RenderFlexibleBox):
784
785 2012-03-16  Anders Carlsson  <andersca@apple.com>
786
787         REGRESSION (r110737): Height element changes on scrolled page causes failure
788         https://bugs.webkit.org/show_bug.cgi?id=81381
789         <rdar://problem/11066006>
790
791         Reviewed by Sam Weinig.
792
793         Limit the fix made in r110737 to check if there's a rubber-band gesture in progress and only ignore the range if that is the case.
794
795         * platform/ScrollAnimator.h:
796         (WebCore::ScrollAnimator::isRubberBandInProgress):
797         (ScrollAnimator):
798         * platform/ScrollView.cpp:
799         (WebCore::ScrollView::updateScrollbars):
800         * platform/mac/ScrollAnimatorMac.h:
801         (ScrollAnimatorMac):
802         * platform/mac/ScrollAnimatorMac.mm:
803         (WebCore::ScrollAnimatorMac::isRubberBandInProgress):
804         (WebCore):
805         * platform/mac/ScrollElasticityController.h:
806         (ScrollElasticityController):
807         * platform/mac/ScrollElasticityController.mm:
808         (WebCore::ScrollElasticityController::isRubberBandInProgress):
809         (WebCore):
810
811 2012-03-16  Robert Kroeger  <rjkroege@chromium.org>
812
813         GestureTapDown needs to pin in-progress flings
814         https://bugs.webkit.org/show_bug.cgi?id=80875
815
816         Reviewed by Adam Barth.
817
818         * page/EventHandler.cpp:
819         (WebCore):
820         (WebCore::EventHandler::handleGestureTapDown):
821         * page/EventHandler.h:
822         (EventHandler):
823
824 2012-03-16  Chris Rogers  <crogers@google.com>
825
826         Account for sample-rate in convolution normalization
827         https://bugs.webkit.org/show_bug.cgi?id=81432
828
829         Reviewed by James Robinson.
830
831         * platform/audio/Reverb.cpp:
832         (WebCore):
833         (WebCore::calculateNormalizationScale):
834         * webaudio/ConvolverNode.cpp:
835         (WebCore::ConvolverNode::setBuffer):
836
837 2012-03-16  Tom Sepez  <tsepez@chromium.org>
838
839         Make V8 window.open.call(), window.open.showModalDialog() results more closely match JSC. 
840         https://bugs.webkit.org/show_bug.cgi?id=81260
841         https://bugs.webkit.org/show_bug.cgi?id=39897
842
843         Reviewed by Adam Barth.
844
845         Tested via http/tests/security/cross-frame-access-call.htm
846
847         * bindings/v8/custom/V8DOMWindowCustom.cpp:
848         (WebCore::V8DOMWindow::showModalDialogCallback):
849         (WebCore::V8DOMWindow::openCallback):
850
851 2012-03-16  Matt Lilek  <mrl@apple.com>
852
853         Use modern NSNumberFormatter API in LocalizedNumberMac.mm
854         https://bugs.webkit.org/show_bug.cgi?id=81429
855
856         Reviewed by Dan Bernstein.
857
858         No new tests as no change in behavior.
859
860         * platform/text/mac/LocalizedNumberMac.mm:
861         (WebCore::createFormatterForCurrentLocaleForDisplay):
862
863 2012-03-16  Tony Chang  <tony@chromium.org>
864
865         flex-item-align: stretch should only grow, never shrink
866         https://bugs.webkit.org/show_bug.cgi?id=80882
867
868         Reviewed by Ojan Vafai.
869
870         New test cases in css3/flexbox/flex-align-stretch.html.
871
872         * rendering/RenderFlexibleBox.cpp:
873         (WebCore::RenderFlexibleBox::alignChildren): Move stretch code into a separate function.
874         (WebCore::RenderFlexibleBox::alignChildStretch): Add an early return if our height is shrinking.
875         (WebCore):
876         * rendering/RenderFlexibleBox.h:
877         (RenderFlexibleBox):
878
879 2012-03-16  Raphael Kubo da Costa  <kubo@profusion.mobi>
880
881         [EFL] Unreviewed, fix build after r111041.
882
883         * platform/efl/RenderThemeEfl.cpp:
884         (WebCore::RenderThemeEfl::emitMediaButtonSignal): Rename
885         MediaFullscreenButton to MediaEnterFullscreenButton.
886         (WebCore::RenderThemeEfl::paintMediaFullscreenButton): Ditto.
887
888 2012-03-16  Dmitry Lomov  <dslomov@google.com>
889
890         REGRESSION: DOMURL::revokeObjectURL accesses memoryCache on worker thread.
891         https://bugs.webkit.org/show_bug.cgi?id=80889
892         On worker threads, post a task to main thread to evict from cache.
893         ASSERT that MemoryCache is only accessed from main thread.
894
895         Reviewed by David Levin.
896
897         * html/DOMURL.cpp:
898         (WebCore::DOMURL::revokeObjectURL):
899         * loader/cache/MemoryCache.cpp:
900         (WebCore::memoryCache):
901         (WebCore::MemoryCache::add):
902         (WebCore::MemoryCache::revalidationFailed):
903         (WebCore::MemoryCache::resourceForURL):
904         (WebCore::MemoryCache::evict):
905         (WebCore):
906         (WebCore::MemoryCache::removeUrlFromCache):
907         (WebCore::MemoryCache::removeUrlFromCacheImpl):
908         * loader/cache/MemoryCache.h:
909         (WebCore):
910         (MemoryCache):
911
912 2012-03-16  Jacky Jiang  <zhajiang@rim.com>
913
914         [BlackBerry] Upstream ScriptControllerBlackBerry.cpp
915         https://bugs.webkit.org/show_bug.cgi?id=81397
916
917         Reviewed by Rob Buis.
918
919         Initial upstream, no new tests.
920
921         * bindings/js/ScriptControllerBlackBerry.cpp: Added.
922
923 2012-03-16  Adam Barth  <abarth@webkit.org>
924
925         remove-body-during-body-replacement2.html is triggering crashes on all platforms
926         https://bugs.webkit.org/show_bug.cgi?id=81374
927
928         Reviewed by Eric Seidel.
929
930         When overriding disconnectFrame, we need to call the base class version
931         of the method so that it can clear the m_frame pointer.
932
933         Tests: This patch fixes a large number of crashes in tests.
934
935         * notifications/DOMWindowNotifications.cpp:
936         (WebCore::DOMWindowNotifications::disconnectFrame):
937
938 2012-03-16  Leo Yang  <leo.yang@torchmobile.com.cn>
939
940         [BlackBerry] Upstream the BlackBerry change to platform/Widget.h
941         https://bugs.webkit.org/show_bug.cgi?id=81304
942
943         Reviewed by Rob Buis.
944
945         typedefs of PlatformWidget and PlatformPageClient for the BlackBerry.
946
947         * platform/Widget.h:
948
949 2012-03-16  David Barton  <dbarton@mathscribe.com>
950
951         MathML internals - factor code for almost anonymous blocks
952         https://bugs.webkit.org/show_bug.cgi?id=81387
953
954         Reviewed by Eric Seidel.
955
956         MathML uses "almost anonymous" blocks to layout parts of mathematical expressions. These
957         will be converted to true anonymous blocks in a later patch. Here we factor out the code
958         to create them into RenderMathMLBlock::createAlmostAnonymousBlock().
959
960         No new tests. Some tree dump output is modified for existing tests. <munder>, <mover>,
961         and <munderover> renderers already used true anonymous blocks, so we change them to call
962         RenderBlock::createAnonymousBlock(). In the other direction, <mroot>'s almost anonymous
963         blocks are now made RenderMathMLBlock not just RenderBlock, in agreement with other
964         current MathML renderers.
965
966         * rendering/mathml/RenderMathMLBlock.cpp:
967         (WebCore::RenderMathMLBlock::createAlmostAnonymousBlock):
968         * rendering/mathml/RenderMathMLBlock.h:
969         (RenderMathMLBlock):
970         (WebCore::RenderMathMLBlock::getBoxModelObjectWidth):
971         * rendering/mathml/RenderMathMLFenced.cpp:
972         (WebCore::RenderMathMLFenced::addChild):
973         * rendering/mathml/RenderMathMLFraction.cpp:
974         (WebCore::RenderMathMLFraction::updateFromElement):
975             - improve some variable names
976         (WebCore::RenderMathMLFraction::addChild):
977         (WebCore::RenderMathMLFraction::layout):
978         (WebCore::RenderMathMLFraction::paint):
979         (WebCore::RenderMathMLFraction::baselinePosition):
980         * rendering/mathml/RenderMathMLRoot.cpp:
981         (WebCore::RenderMathMLRoot::addChild):
982         * rendering/mathml/RenderMathMLSubSup.cpp:
983         (WebCore::RenderMathMLSubSup::addChild):
984         * rendering/mathml/RenderMathMLSubSup.h:
985         * rendering/mathml/RenderMathMLUnderOver.cpp:
986         (WebCore::RenderMathMLUnderOver::addChild):
987
988 2012-03-16  Levi Weintraub  <leviw@chromium.org>
989
990         Prepare RenderObject for FractionalLayoutUnits
991         https://bugs.webkit.org/show_bug.cgi?id=81178
992
993         Reviewed by Eric Seidel.
994
995         This readies RenderObject to deal with FractionalLayoutUnits as a backend for the
996         LayoutUnit abstraction.
997
998         No new tests. No change in behavior.
999
1000         * rendering/RenderObject.cpp:
1001         (WebCore::RenderObject::pixelSnappedAbsoluteClippedOverflowRect): Convenience method to be
1002         used instead of absouluteClippedOverflowRect in platform code. Platform updates will come
1003         in a separate patch.
1004         (WebCore):
1005         (WebCore::RenderObject::repaintAfterLayoutIfNeeded): Borders remain ints when we move to
1006         sub-pixel layout. This adjusts border variables for this, and adds compiler fixes when
1007         using std::max and std::min with mixed int/LayoutUnits.
1008         (WebCore::RenderObject::adjustRectForOutlineAndShadow): Outlines, like borders, remain
1009         ints in the new sub-pixel world. Using variables that reflect that.
1010         * rendering/RenderObject.h:
1011         (RenderObject):
1012         (WebCore::adjustForAbsoluteZoom): Handles FractionalLayoutUnit values. Flooring is what
1013         JavaScript requires since this is used with values that must return ints.
1014         (WebCore): Adding FractionalLayoutUnit.h to support the new adjusteForAbsoluteZoom method.
1015
1016 2012-03-16  Brady Eidson  <beidson@apple.com>
1017
1018         <rdar://problem/11027997> and https://bugs.webkit.org/show_bug.cgi?id=81412
1019         REGRESSION (r107435) Copy a link and paste to Mail: Nothing is pasted
1020
1021         Reviewed by Geoff Garen.
1022
1023         WebKit API test WebViewCanPasteURL.mm added.
1024
1025         * WebCore.exp.in:
1026
1027         Add a strategy method specifically for getting the URL:
1028         * platform/PasteboardStrategy.h:
1029
1030         Use that strategy method when creating the fragment for a URL:
1031         * platform/mac/PasteboardMac.mm:
1032         (WebCore::Pasteboard::documentFragment):
1033
1034         Add a platform pasteboard accessor to "do the right thing" for getting a URL:
1035         * platform/PlatformPasteboard.h:
1036         * platform/mac/PlatformPasteboardMac.mm:
1037         (WebCore::PlatformPasteboard::url):
1038
1039 2012-03-16  Joseph Pecoraro  <pecoraro@apple.com>
1040
1041         <http://webkit.org/b/81380> clang warning unused variable when ENABLE(TEXT_CARET) is disabled
1042
1043         Reviewed by Dan Bernstein.
1044
1045         * editing/FrameSelection.cpp:
1046         (WebCore::FrameSelection::recomputeCaretRect):
1047         Put the variable inside of a guard because it is only
1048         used inside of a guard.
1049
1050 2012-03-16  Andreas Kling  <kling@webkit.org>
1051
1052         Shrink BorderValue.
1053         <http://webkit.org/b/69521>
1054
1055         Reviewed by Anders Carlsson.
1056
1057         Split BorderValue's Color member into RGBA32/bool buddies and stash the bool in
1058         the BorderValue bitfield.
1059
1060         This shrinks BorderValue by 4 bytes, in turn shrinking BorderData by 16 bytes.
1061         Altogether this yields ~800 kB in reduced memory consumption when viewing the full
1062         HTML5 spec at <http://whatwg.org/c>
1063
1064         * rendering/style/BorderValue.h:
1065         (WebCore::BorderValue::BorderValue):
1066         (WebCore::BorderValue::isTransparent):
1067         (WebCore::BorderValue::operator==):
1068         (BorderValue):
1069         (WebCore::BorderValue::setColor):
1070         (WebCore::BorderValue::color):
1071         * rendering/style/OutlineValue.h:
1072         (WebCore::OutlineValue::operator==):
1073         * rendering/style/RenderStyle.cpp:
1074         (SameSizeAsBorderValue):
1075         * rendering/style/RenderStyle.h:
1076
1077 2012-03-16  Mark Pilgrim  <pilgrim@chromium.org>
1078
1079         Moves remaining filesystem files to Modules/filesystem/
1080         https://bugs.webkit.org/show_bug.cgi?id=81353
1081
1082         Reviewed by Adam Barth.
1083
1084         No new tests, all existing tests pass.
1085
1086         * CMakeLists.txt:
1087         * DerivedSources.make:
1088         * DerivedSources.pri:
1089         * GNUmakefile.list.am:
1090         * Modules/filesystem/AsyncFileWriter.h: Copied from Source/WebCore/fileapi/AsyncFileWriter.h.
1091         * Modules/filesystem/AsyncFileWriterClient.h: Copied from Source/WebCore/fileapi/AsyncFileWriterClient.h.
1092         * Modules/filesystem/DOMFilePath.cpp: Copied from Source/WebCore/fileapi/DOMFilePath.cpp.
1093         * Modules/filesystem/DOMFilePath.h: Copied from Source/WebCore/fileapi/DOMFilePath.h.
1094         * Modules/filesystem/DOMFileSystem.cpp: Copied from Source/WebCore/fileapi/DOMFileSystem.cpp.
1095         * Modules/filesystem/DOMFileSystem.h: Copied from Source/WebCore/fileapi/DOMFileSystem.h.
1096         * Modules/filesystem/DOMFileSystem.idl: Copied from Source/WebCore/fileapi/DOMFileSystem.idl.
1097         * Modules/filesystem/DOMFileSystemBase.cpp: Copied from Source/WebCore/fileapi/DOMFileSystemBase.cpp.
1098         * Modules/filesystem/DOMFileSystemBase.h: Copied from Source/WebCore/fileapi/DOMFileSystemBase.h.
1099         * Modules/filesystem/DOMFileSystemSync.cpp: Copied from Source/WebCore/fileapi/DOMFileSystemSync.cpp.
1100         * Modules/filesystem/DOMFileSystemSync.h: Copied from Source/WebCore/fileapi/DOMFileSystemSync.h.
1101         * Modules/filesystem/DOMFileSystemSync.idl: Copied from Source/WebCore/fileapi/DOMFileSystemSync.idl.
1102         * Modules/filesystem/Entry.cpp: Copied from Source/WebCore/fileapi/Entry.cpp.
1103         * Modules/filesystem/Entry.h: Copied from Source/WebCore/fileapi/Entry.h.
1104         * Modules/filesystem/Entry.idl: Copied from Source/WebCore/fileapi/Entry.idl.
1105         * Modules/filesystem/EntryArray.cpp: Copied from Source/WebCore/fileapi/EntryArray.cpp.
1106         * Modules/filesystem/EntryArray.h: Copied from Source/WebCore/fileapi/EntryArray.h.
1107         * Modules/filesystem/EntryArray.idl: Copied from Source/WebCore/fileapi/EntryArray.idl.
1108         * Modules/filesystem/EntryArraySync.cpp: Copied from Source/WebCore/fileapi/EntryArraySync.cpp.
1109         * Modules/filesystem/EntryArraySync.h: Copied from Source/WebCore/fileapi/EntryArraySync.h.
1110         * Modules/filesystem/EntryArraySync.idl: Copied from Source/WebCore/fileapi/EntryArraySync.idl.
1111         * Modules/filesystem/EntryBase.cpp: Copied from Source/WebCore/fileapi/EntryBase.cpp.
1112         * Modules/filesystem/EntryBase.h: Copied from Source/WebCore/fileapi/EntryBase.h.
1113         * Modules/filesystem/EntryCallback.h: Copied from Source/WebCore/fileapi/EntryCallback.h.
1114         * Modules/filesystem/EntryCallback.idl: Copied from Source/WebCore/fileapi/EntryCallback.idl.
1115         * Modules/filesystem/EntrySync.cpp: Copied from Source/WebCore/fileapi/EntrySync.cpp.
1116         * Modules/filesystem/EntrySync.h: Copied from Source/WebCore/fileapi/EntrySync.h.
1117         * Modules/filesystem/EntrySync.idl: Copied from Source/WebCore/fileapi/EntrySync.idl.
1118         * Modules/filesystem/ErrorCallback.h: Copied from Source/WebCore/fileapi/ErrorCallback.h.
1119         * Modules/filesystem/ErrorCallback.idl: Copied from Source/WebCore/fileapi/ErrorCallback.idl.
1120         * Modules/filesystem/FileCallback.h: Copied from Source/WebCore/fileapi/FileCallback.h.
1121         * Modules/filesystem/FileCallback.idl: Copied from Source/WebCore/fileapi/FileCallback.idl.
1122         * Modules/filesystem/FileEntry.cpp: Copied from Source/WebCore/fileapi/FileEntry.cpp.
1123         * Modules/filesystem/FileEntry.h: Copied from Source/WebCore/fileapi/FileEntry.h.
1124         * Modules/filesystem/FileEntry.idl: Copied from Source/WebCore/fileapi/FileEntry.idl.
1125         * Modules/filesystem/FileEntrySync.cpp: Copied from Source/WebCore/fileapi/FileEntrySync.cpp.
1126         * Modules/filesystem/FileEntrySync.h: Copied from Source/WebCore/fileapi/FileEntrySync.h.
1127         * Modules/filesystem/FileEntrySync.idl: Copied from Source/WebCore/fileapi/FileEntrySync.idl.
1128         * Modules/filesystem/FileSystemCallback.h: Copied from Source/WebCore/fileapi/FileSystemCallback.h.
1129         * Modules/filesystem/FileSystemCallback.idl: Copied from Source/WebCore/fileapi/FileSystemCallback.idl.
1130         * Modules/filesystem/FileSystemCallbacks.cpp: Copied from Source/WebCore/fileapi/FileSystemCallbacks.cpp.
1131         * Modules/filesystem/FileSystemCallbacks.h: Copied from Source/WebCore/fileapi/FileSystemCallbacks.h.
1132         * Modules/filesystem/FileWriter.cpp: Copied from Source/WebCore/fileapi/FileWriter.cpp.
1133         * Modules/filesystem/FileWriter.h: Copied from Source/WebCore/fileapi/FileWriter.h.
1134         * Modules/filesystem/FileWriter.idl: Copied from Source/WebCore/fileapi/FileWriter.idl.
1135         * Modules/filesystem/FileWriterBase.cpp: Copied from Source/WebCore/fileapi/FileWriterBase.cpp.
1136         * Modules/filesystem/FileWriterBase.h: Copied from Source/WebCore/fileapi/FileWriterBase.h.
1137         * Modules/filesystem/FileWriterBaseCallback.h: Copied from Source/WebCore/fileapi/FileWriterBaseCallback.h.
1138         * Modules/filesystem/FileWriterCallback.h: Copied from Source/WebCore/fileapi/FileWriterCallback.h.
1139         * Modules/filesystem/FileWriterCallback.idl: Copied from Source/WebCore/fileapi/FileWriterCallback.idl.
1140         * Modules/filesystem/FileWriterSync.cpp: Copied from Source/WebCore/fileapi/FileWriterSync.cpp.
1141         * Modules/filesystem/FileWriterSync.h: Copied from Source/WebCore/fileapi/FileWriterSync.h.
1142         * Modules/filesystem/FileWriterSync.idl: Copied from Source/WebCore/fileapi/FileWriterSync.idl.
1143         * Modules/filesystem/LocalFileSystem.cpp: Copied from Source/WebCore/fileapi/LocalFileSystem.cpp.
1144         * Modules/filesystem/LocalFileSystem.h: Copied from Source/WebCore/fileapi/LocalFileSystem.h.
1145         * Modules/filesystem/Metadata.h: Copied from Source/WebCore/fileapi/Metadata.h.
1146         * Modules/filesystem/Metadata.idl: Copied from Source/WebCore/fileapi/Metadata.idl.
1147         * Modules/filesystem/MetadataCallback.h: Copied from Source/WebCore/fileapi/MetadataCallback.h.
1148         * Modules/filesystem/MetadataCallback.idl: Copied from Source/WebCore/fileapi/MetadataCallback.idl.
1149         * Modules/filesystem/SyncCallbackHelper.h: Copied from Source/WebCore/fileapi/SyncCallbackHelper.h.
1150         * Modules/filesystem/WebKitFlags.h: Copied from Source/WebCore/fileapi/WebKitFlags.h.
1151         * Modules/filesystem/WorkerContextFileSystem.cpp: Copied from Source/WebCore/fileapi/WorkerContextFileSystem.cpp.
1152         * Modules/filesystem/WorkerContextFileSystem.h: Copied from Source/WebCore/fileapi/WorkerContextFileSystem.h.
1153         * Modules/filesystem/WorkerContextFileSystem.idl: Copied from Source/WebCore/fileapi/WorkerContextFileSystem.idl.
1154         * Target.pri:
1155         * WebCore.gyp/WebCore.gyp:
1156         * WebCore.gypi:
1157         * WebCore.vcproj/WebCore.vcproj:
1158         * WebCore.xcodeproj/project.pbxproj:
1159         * fileapi/AsyncFileWriter.h: Removed.
1160         * fileapi/AsyncFileWriterClient.h: Removed.
1161         * fileapi/DOMFilePath.cpp: Removed.
1162         * fileapi/DOMFilePath.h: Removed.
1163         * fileapi/DOMFileSystem.cpp: Removed.
1164         * fileapi/DOMFileSystem.h: Removed.
1165         * fileapi/DOMFileSystem.idl: Removed.
1166         * fileapi/DOMFileSystemBase.cpp: Removed.
1167         * fileapi/DOMFileSystemBase.h: Removed.
1168         * fileapi/DOMFileSystemSync.cpp: Removed.
1169         * fileapi/DOMFileSystemSync.h: Removed.
1170         * fileapi/DOMFileSystemSync.idl: Removed.
1171         * fileapi/Entry.cpp: Removed.
1172         * fileapi/Entry.h: Removed.
1173         * fileapi/Entry.idl: Removed.
1174         * fileapi/EntryArray.cpp: Removed.
1175         * fileapi/EntryArray.h: Removed.
1176         * fileapi/EntryArray.idl: Removed.
1177         * fileapi/EntryArraySync.cpp: Removed.
1178         * fileapi/EntryArraySync.h: Removed.
1179         * fileapi/EntryArraySync.idl: Removed.
1180         * fileapi/EntryBase.cpp: Removed.
1181         * fileapi/EntryBase.h: Removed.
1182         * fileapi/EntryCallback.h: Removed.
1183         * fileapi/EntryCallback.idl: Removed.
1184         * fileapi/EntrySync.cpp: Removed.
1185         * fileapi/EntrySync.h: Removed.
1186         * fileapi/EntrySync.idl: Removed.
1187         * fileapi/ErrorCallback.h: Removed.
1188         * fileapi/ErrorCallback.idl: Removed.
1189         * fileapi/FileCallback.h: Removed.
1190         * fileapi/FileCallback.idl: Removed.
1191         * fileapi/FileEntry.cpp: Removed.
1192         * fileapi/FileEntry.h: Removed.
1193         * fileapi/FileEntry.idl: Removed.
1194         * fileapi/FileEntrySync.cpp: Removed.
1195         * fileapi/FileEntrySync.h: Removed.
1196         * fileapi/FileEntrySync.idl: Removed.
1197         * fileapi/FileSystemCallback.h: Removed.
1198         * fileapi/FileSystemCallback.idl: Removed.
1199         * fileapi/FileSystemCallbacks.cpp: Removed.
1200         * fileapi/FileSystemCallbacks.h: Removed.
1201         * fileapi/FileWriter.cpp: Removed.
1202         * fileapi/FileWriter.h: Removed.
1203         * fileapi/FileWriter.idl: Removed.
1204         * fileapi/FileWriterBase.cpp: Removed.
1205         * fileapi/FileWriterBase.h: Removed.
1206         * fileapi/FileWriterBaseCallback.h: Removed.
1207         * fileapi/FileWriterCallback.h: Removed.
1208         * fileapi/FileWriterCallback.idl: Removed.
1209         * fileapi/FileWriterSync.cpp: Removed.
1210         * fileapi/FileWriterSync.h: Removed.
1211         * fileapi/FileWriterSync.idl: Removed.
1212         * fileapi/LocalFileSystem.cpp: Removed.
1213         * fileapi/LocalFileSystem.h: Removed.
1214         * fileapi/Metadata.h: Removed.
1215         * fileapi/Metadata.idl: Removed.
1216         * fileapi/MetadataCallback.h: Removed.
1217         * fileapi/MetadataCallback.idl: Removed.
1218         * fileapi/SyncCallbackHelper.h: Removed.
1219         * fileapi/WebKitFlags.h: Removed.
1220         * fileapi/WorkerContextFileSystem.cpp: Removed.
1221         * fileapi/WorkerContextFileSystem.h: Removed.
1222         * fileapi/WorkerContextFileSystem.idl: Removed.
1223
1224 2012-03-16  Mark Pilgrim  <pilgrim@chromium.org>
1225
1226         Collapse ENABLE(BLOB)|ENABLE(FILE_SYSTEM) to just ENABLE(BLOB) in OperationNotAllowedException.idl
1227         https://bugs.webkit.org/show_bug.cgi?id=81391
1228
1229         Reviewed by Adam Barth.
1230
1231         No new tests, all existing tests pass.
1232
1233         * fileapi/OperationNotAllowedException.idl:
1234
1235 2012-03-16  Emil A Eklund  <eae@chromium.org>
1236
1237         Fix rounding and usage of LayoutUnits in RenderBoxModelObject
1238         https://bugs.webkit.org/show_bug.cgi?id=81057
1239
1240         Reviewed by Julien Chaffraix.
1241
1242         No new tests.
1243
1244         (WebCore):
1245         * rendering/RenderBoxModelObject.cpp:
1246         (WebCore::RenderBoxModelObject::pixelSnappedOffsetWidth):
1247         (WebCore::RenderBoxModelObject::pixelSnappedOffsetHeight):
1248         Fix implementation of pixelSnappedOffsetWidth/Height. The location
1249         parameter will be ignored until we enable subpixel support.
1250
1251         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1252         Use ints for border widths.
1253         
1254         (WebCore::resolveWidthForRatio):
1255         (WebCore::resolveHeightForRatio):
1256         (WebCore::resolveAgainstIntrinsicWidthOrHeightAndRatio):
1257         (WebCore::resolveAgainstIntrinsicRatio):
1258         Change resolve*Ratio methods to operate on IntSizes as none of the
1259         callers need subpixel precision.
1260
1261         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
1262         (WebCore::RenderBoxModelObject::paintNinePieceImage):
1263         Pixel snap paintRect when computing image geometry.
1264
1265 2012-03-16  Terry Anderson  <tdanderson@chromium.org>
1266
1267         100% height elements to not respond to vertical browser rescaling
1268         https://bugs.webkit.org/show_bug.cgi?id=43022
1269
1270         Reviewed by Julien Chaffraix.
1271
1272         Test: fast/replaced/vertical-resize-100percent-element.html
1273
1274         * rendering/RenderBox.cpp:
1275         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
1276             For the case where a replaced element has a percentage height,
1277             we update the entries in RenderBlock::gPercentHeightDescendantsMap
1278             corresponding to all ancestors of the replaced element.
1279
1280 2012-03-15  Daniel Cheng  <dcheng@chromium.org>
1281
1282         [chromium] Refactor ClipboardChromium and DataTransferItemList/DataTransferItem to support HTML spec
1283         https://bugs.webkit.org/show_bug.cgi?id=76598
1284
1285         Reviewed by Tony Chang.
1286
1287         We no longer store drag/clipboard data in named fields. We used to maintain the data store
1288         list separately, which resulted in a lot of complicated code to try to make sure that
1289         ChromiumDataObject and this list stayed in sync. We now just store what is essentially a
1290         list MIME type/data pairs directly in ChromiumDataObject. This has the benefit of letting us
1291         easily add write support during dragstart/copy operations using DataTransferItemList.
1292
1293         Tests: fast/events/clipboard-dataTransferItemList.html
1294                fast/events/drag-dataTransferItemList.html
1295
1296         * platform/chromium/ChromiumDataObject.cpp:
1297         (WebCore::findItem):
1298         (WebCore::ChromiumDataObject::createFromPasteboard):
1299         (WebCore::ChromiumDataObject::create):
1300         (WebCore::ChromiumDataObject::copy):
1301         (WebCore::ChromiumDataObject::items):
1302         (WebCore::ChromiumDataObject::clearData):
1303         (WebCore::ChromiumDataObject::clearAll):
1304         (WebCore::ChromiumDataObject::clearAllExceptFiles):
1305         (WebCore::ChromiumDataObject::types):
1306         (WebCore::ChromiumDataObject::getData):
1307         (WebCore::ChromiumDataObject::setData):
1308         (WebCore::ChromiumDataObject::urlAndTitle):
1309         (WebCore::ChromiumDataObject::setURLAndTitle):
1310         (WebCore::ChromiumDataObject::htmlAndBaseURL):
1311         (WebCore::ChromiumDataObject::setHTMLAndBaseURL):
1312         (WebCore::ChromiumDataObject::containsFilenames):
1313         (WebCore):
1314         (WebCore::ChromiumDataObject::filenames):
1315         (WebCore::ChromiumDataObject::addFilename):
1316         (WebCore::ChromiumDataObject::addSharedBuffer):
1317         (WebCore::ChromiumDataObject::ChromiumDataObject):
1318         * platform/chromium/ChromiumDataObject.h:
1319         (WebCore):
1320         (ChromiumDataObject):
1321         * platform/chromium/ClipboardChromium.cpp:
1322         (WebCore::normalizeType):
1323         (WebCore::ClipboardChromium::ClipboardChromium):
1324         (WebCore::ClipboardChromium::clearData):
1325         (WebCore::ClipboardChromium::clearAllData):
1326         (WebCore::ClipboardChromium::getData):
1327         (WebCore::ClipboardChromium::setData):
1328         (WebCore::ClipboardChromium::types):
1329         (WebCore::ClipboardChromium::files):
1330         (WebCore::writeImageToDataObject):
1331         (WebCore::ClipboardChromium::declareAndWriteDragImage):
1332         (WebCore::ClipboardChromium::writeURL):
1333         (WebCore::ClipboardChromium::writeRange):
1334         (WebCore::ClipboardChromium::writePlainText):
1335         (WebCore::ClipboardChromium::hasData):
1336         (WebCore::ClipboardChromium::items):
1337         * platform/chromium/ClipboardChromium.h:
1338         (WebCore):
1339         (ClipboardChromium):
1340         (WebCore::ClipboardChromium::frame):
1341         * platform/chromium/ClipboardUtilitiesChromium.cpp:
1342         (WebCore::convertURIListToURL):
1343         (WebCore):
1344         * platform/chromium/ClipboardUtilitiesChromium.h:
1345         (WebCore):
1346         * platform/chromium/DataTransferItemChromium.cpp:
1347         (WebCore::DataTransferItemChromium::createFromString):
1348         (WebCore::DataTransferItemChromium::createFromFile):
1349         (WebCore::DataTransferItemChromium::createFromURL):
1350         (WebCore::DataTransferItemChromium::createFromHTML):
1351         (WebCore):
1352         (WebCore::DataTransferItemChromium::createFromSharedBuffer):
1353         (WebCore::DataTransferItemChromium::createFromPasteboard):
1354         (WebCore::DataTransferItemChromium::DataTransferItemChromium):
1355         (WebCore::DataTransferItemChromium::getAsString):
1356         (WebCore::DataTransferItemChromium::getAsFile):
1357         (WebCore::DataTransferItemChromium::internalGetAsString):
1358         (WebCore::DataTransferItemChromium::isFilename):
1359         * platform/chromium/DataTransferItemChromium.h:
1360         (WebCore):
1361         (DataTransferItemChromium):
1362         (WebCore::DataTransferItemChromium::kind):
1363         (WebCore::DataTransferItemChromium::type):
1364         (WebCore::DataTransferItemChromium::sharedBuffer):
1365         (WebCore::DataTransferItemChromium::title):
1366         (WebCore::DataTransferItemChromium::baseURL):
1367         * platform/chromium/DataTransferItemListChromium.cpp:
1368         (WebCore::DataTransferItemListChromium::create):
1369         (WebCore::DataTransferItemListChromium::createFromPasteboard):
1370         (WebCore):
1371         (WebCore::DataTransferItemListChromium::DataTransferItemListChromium):
1372         (WebCore::DataTransferItemListChromium::length):
1373         (WebCore::DataTransferItemListChromium::item):
1374         (WebCore::DataTransferItemListChromium::deleteItem):
1375         (WebCore::DataTransferItemListChromium::clear):
1376         (WebCore::DataTransferItemListChromium::add):
1377         (WebCore::DataTransferItemListChromium::internalAddStringItem):
1378         (WebCore::DataTransferItemListChromium::internalAddFileItem):
1379         * platform/chromium/DataTransferItemListChromium.h:
1380         (WebCore):
1381         (DataTransferItemListChromium):
1382         * platform/chromium/DragDataChromium.cpp:
1383         (WebCore::DragData::asURL):
1384         (WebCore::DragData::asPlainText):
1385         (WebCore::DragData::asFragment):
1386
1387 2012-03-16  Matt Lilek  <mrl@apple.com>
1388
1389         Don't install libWebCoreTestSupport on OS X production builds
1390         https://bugs.webkit.org/show_bug.cgi?id=81087
1391
1392         Reviewed by Mark Rowe.
1393
1394         * Configurations/WebCoreTestSupport.xcconfig:
1395
1396 2012-03-16  Tony Chang  <tony@chromium.org>
1397
1398         incorrectly removing scrollbar height for auto height flexbox children
1399         https://bugs.webkit.org/show_bug.cgi?id=81388
1400
1401         Reviewed by Ojan Vafai.
1402
1403         In a column flexbox, when computing the preferred height of an auto
1404         height child, we were subtracting out the horizontal scrollbar height.
1405
1406         New test case in css3/flexbox/columns-auto-size.html.
1407
1408         * rendering/RenderFlexibleBox.cpp:
1409         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
1410
1411 2012-03-16  Adam Klein  <adamk@chromium.org>
1412
1413         Out-of-document radio buttons should be grouped when associated with a form
1414         https://bugs.webkit.org/show_bug.cgi?id=81268
1415
1416         Reviewed by Kent Tamura.
1417
1418         Per the HTML spec, and the behavior of Firefox and IE 8/9, radio buttons
1419         with a form owner should be grouped, even if that form is not in the document.
1420
1421         r104668 added many inDocument() tests to radio button grouping code.
1422         While those are necessary to avoid unattached <input type=radio>
1423         elements being grouped together, it also kept them from being grouped
1424         when associated with a form outside the document.
1425
1426         This patch changes the HTMLInputElement::checkedRadioButtons() method
1427         to return either a pointer to the proper CheckedRadioButtons instance
1428         (either the document's or a form's), but will return null if the
1429         element should not be associated with any radio button group.
1430
1431         The main fallout of this was that the callers of checkedRadioButtons()
1432         now have to check for null, resulting in the creation of a few helper
1433         methods in HTMLInputElement to wrap the null checks.
1434
1435         This refactoring has the pleasant side-effect of exposing a cleaner API between
1436         HTMLInputElement and RadioInputType, and making a clearer contract
1437         between HTMLInputElement and CheckedRadioButtons (e.g., all
1438         CheckedRadioButtons methods that take an element can now assume that
1439         it is a radio button, where previously some checked for that and
1440         others asserted it).
1441
1442         Test: fast/forms/radio/radio-group-in-detached-form.html
1443
1444         * dom/CheckedRadioButtons.cpp:
1445         (WebCore): Removed shouldMakeRadioGroup() helper function.
1446         (WebCore::CheckedRadioButtons::addButton): Replace call to shouldMakeRadioGroup
1447         with appropriate assert and name check.
1448         (WebCore::CheckedRadioButtons::updateCheckedState): ditto.
1449         (WebCore::CheckedRadioButtons::requiredAttributeChanged): ditto.
1450         (WebCore::CheckedRadioButtons::isRequiredGroup): Renamed from isInRequiredGroup,
1451         changed to take only a group name, not an element.
1452         (WebCore::CheckedRadioButtons::removeButton): Replace call to shouldMakeRadioGroup.
1453         with appropriate assert and name check.
1454         * dom/CheckedRadioButtons.h:
1455         (CheckedRadioButtons):
1456         * html/HTMLInputElement.cpp:
1457         (WebCore::HTMLInputElement::~HTMLInputElement): Added isRadioButton check
1458         now that it's asserted in CheckedRadioButtons.
1459         (WebCore::HTMLInputElement::updateType): Call helper method instead of
1460         calling directly into CheckedRadioButtons.
1461         (WebCore::HTMLInputElement::parseAttribute): ditto.
1462         (WebCore::HTMLInputElement::setChecked): ditto.
1463         (WebCore::HTMLInputElement::willChangeForm): ditto.
1464         (WebCore::HTMLInputElement::didChangeForm): ditto.
1465         (WebCore::HTMLInputElement::insertedIntoDocument): ditto.
1466         (WebCore::HTMLInputElement::removedFromDocument): ditto.
1467         (WebCore::HTMLInputElement::didMoveToNewDocument): Added isRadioButton check.
1468         (WebCore::HTMLInputElement::requiredAttributeChanged): Check for membership in a group
1469         before calling into CheckedRadioButtons.
1470         (WebCore::HTMLInputElement::isInRequiredRadioButtonGroup): Added helper method for use by RadioInputType.
1471         (WebCore):
1472         (WebCore::HTMLInputElement::checkedRadioButtonForGroup): ditto.
1473         (WebCore::HTMLInputElement::checkedRadioButtons): Changed to return a
1474         pointer, only return non-null if actually a member of a group.
1475         (WebCore::HTMLInputElement::addToRadioButtonGroup): Helper method for
1476         use in HTMLInputElement.
1477         (WebCore::HTMLInputElement::removeFromRadioButtonGroup): ditto.
1478         * html/HTMLInputElement.h:
1479         (HTMLInputElement): Added/removed methods, removed outdated comment about visibility.
1480         * html/RadioInputType.cpp:
1481         (WebCore::RadioInputType::valueMissing): Call new HTMLInputElement methods instead
1482         of interacting directly with CheckedRadioButtons.
1483         (WebCore::RadioInputType::isKeyboardFocusable): ditto.
1484         (WebCore::RadioInputType::willDispatchClick): ditto.
1485
1486 2012-03-16  David Hyatt  <hyatt@apple.com>
1487
1488         https://bugs.webkit.org/show_bug.cgi?id=81366
1489         
1490         Add RenderMultiColumnBlock subclass of RenderBlock. This new class will hold all of the multi-column
1491         logic (as well as painting/hit testing). That way the column code can be kept out of the base class
1492         and be more cleanly factored.
1493
1494         Patch Node::diff so that we detach and re-attach the renderer if column counts or widths change
1495         from auto to non-auto (and vice versa) to ensure the right renderer gets made.
1496         
1497         Patch RenderObject::createObject to make a RenderMultiColumnBlock if either the column count or
1498         column width is non-auto.
1499         
1500         Patch RenderBlock::calcColumnWidth to "turn off" the old implementation of columns if the pref to use
1501         the new column implementation is set. This single chokepoint should be sufficient for disabling the old
1502         columns in favor of the new.
1503
1504         Reviewed by Dan Bernstein.
1505
1506         * CMakeLists.txt:
1507         * GNUmakefile.list.am:
1508         * WebCore.gypi:
1509         * WebCore.vcproj/WebCore.vcproj:
1510         * WebCore.xcodeproj/project.pbxproj:
1511         * dom/Document.cpp:
1512         (WebCore::Document::regionBasedColumnsEnabled):
1513         (WebCore):
1514         (WebCore::Document::recalcStyle):
1515         * dom/Document.h:
1516         (Document):
1517         * dom/Element.cpp:
1518         (WebCore::Element::recalcStyle):
1519         * dom/Node.cpp:
1520         (WebCore::Node::diff):
1521         * dom/Node.h:
1522         * rendering/RenderBlock.cpp:
1523         (WebCore::RenderBlock::calcColumnWidth):
1524         (WebCore::RenderBlock::updateFirstLetterStyle):
1525         * rendering/RenderMultiColumnBlock.cpp: Added.
1526         (WebCore):
1527         (WebCore::RenderMultiColumnBlock::RenderMultiColumnBlock):
1528         (WebCore::RenderMultiColumnBlock::renderName):
1529         * rendering/RenderMultiColumnBlock.h: Added.
1530         (WebCore):
1531         (RenderMultiColumnBlock):
1532         * rendering/RenderObject.cpp:
1533         (WebCore::RenderObject::createObject):
1534         * rendering/RenderObjectChildList.cpp:
1535         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
1536
1537 2012-03-16  Stephen White  <senorblanco@chromium.org>
1538
1539         [chromium] Improve CSS3 filter blur performance.
1540         https://bugs.webkit.org/show_bug.cgi?id=81360
1541
1542         This change improves blur performance by 2-2.5X on blurred CSS
1543         3D transforms and accelerated canvas demos by skipping an unnecessary
1544         texture allocation and bitmap draw.
1545
1546         Reviewed by James Robinson.
1547
1548         Covered by existing layout tests in css3/filters.
1549
1550         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
1551         (WebCore::CCRenderSurfaceFilters::apply):
1552         Call SkCanvas::drawSprite() directly instead of using
1553         saveLayer()/restore().
1554
1555 2012-03-16  Joshua Bell  <jsbell@chromium.org>
1556
1557         [Chromium] IndexedDB: Assertion failure when storing File objects
1558         https://bugs.webkit.org/show_bug.cgi?id=76746
1559
1560         The blob data in Blob/File/FileList objects is serialized "by reference" (the
1561         internal URL) rather than "by value" (the actual data); this is sufficient for
1562         postMessage() but not for IndexedDB since the referenced data is not retained
1563         Expose a mechanism to enumerate the URLs so that SSVs can be rejected by IDB
1564         until blob data serialization can is implemented (outside the SSV mechanism, and
1565         potentially asynchronously).
1566
1567         Also, correct issue in V8DOMWrapper::instantiateV8Object where context is assumed
1568         to be a Worker context if it's not a Window, which is incorrect for the
1569         Chromium utility process; this is hit if Blobs are not blocked.
1570
1571         Reviewed by Tony Chang.
1572
1573         Test: storage/indexeddb/noblobs.html
1574
1575         * Modules/indexeddb/IDBCursor.cpp:
1576         (WebCore::IDBCursor::update): Reject SSVs that contain blob references.
1577         * Modules/indexeddb/IDBObjectStore.cpp:
1578         (WebCore::IDBObjectStore::add): Reject SSVs that contain blob references.
1579         (WebCore::IDBObjectStore::put): Reject SSVs that contain blob references.
1580         * bindings/js/SerializedScriptValue.cpp:
1581         (WebCore::CloneSerializer::serialize):
1582         (WebCore::CloneSerializer::CloneSerializer):
1583         (WebCore::CloneSerializer::dumpIfTerminal):
1584         (WebCore::CloneSerializer::write):
1585         (CloneSerializer):
1586         (WebCore::SerializedScriptValue::SerializedScriptValue):
1587         (WebCore::SerializedScriptValue::create):
1588         (WebCore::SerializedScriptValue::undefinedValue):
1589         (WebCore::SerializedScriptValue::booleanValue):
1590         * bindings/js/SerializedScriptValue.h: New API to enable the clients to be picky.
1591         * bindings/v8/SerializedScriptValue.cpp:
1592         (WebCore::SerializedScriptValue::SerializedScriptValue):
1593         * bindings/v8/SerializedScriptValue.h: New API to enable the clients to be picky.
1594         (WebCore::SerializedScriptValue::blobURLs):
1595         (SerializedScriptValue):
1596         * bindings/v8/V8DOMWrapper.cpp:
1597         (WebCore::V8DOMWrapper::instantiateV8Object):  Ensure context is a worker context before treating it as such.
1598
1599 2012-03-16  Erik Arvidsson  <arv@chromium.org>
1600
1601         [V8] Ensure that invalid syntax in inline event handlers does not cause a crash
1602         https://bugs.webkit.org/show_bug.cgi?id=81385
1603
1604         Reviewed by Nate Chapin.
1605
1606         The way that V8 does its inline event handler involves concatting strings and
1607         if the attribute value is crafted in a special way this could cause a crash.
1608
1609         Test: fast/dom/inline-event-attributes-crash.html
1610
1611         * bindings/v8/V8LazyEventListener.cpp:
1612         (WebCore::V8LazyEventListener::prepareListenerObject):
1613
1614 2012-03-14  Jer Noble  <jer.noble@apple.com>
1615
1616         Wrong icon to restore to windowed mode in full screen video panel
1617         https://bugs.webkit.org/show_bug.cgi?id=70437
1618
1619         Reviewed by Eric Carlson.
1620
1621         No new tests. Updated platform/mac/accessibility/media-element-expected.txt.
1622
1623         Renamed MediaFullscreenButton to MediaEnterFullscreenButton and added MediaExitFullscreenButton:
1624         * accessibility/AccessibilityMediaControls.cpp:
1625         (WebCore::AccessibilityMediaControl::controlTypeName):
1626         (WebCore::AccessibilityMediaControl::roleValue):
1627         * html/shadow/MediaControlElements.cpp:
1628         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
1629         * css/CSSPrimitiveValueMappings.h:
1630         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1631         * css/CSSValueKeywords.in:
1632         * platform/ThemeTypes.h:
1633
1634         Added setIsFullscreen which controls the display of the enter/exit fullscreen button:
1635         * html/shadow/MediaControlElements.cpp:
1636         (WebCore::MediaControlFullscreenButtonElement::setIsFullscreen): Added.
1637         * html/shadow/MediaControlElements.h:
1638         * html/shadow/MediaControlRootElement.cpp:
1639         (WebCore::MediaControlRootElement::enteredFullscreen):
1640         (WebCore::MediaControlRootElement::exitedFullscreen):
1641
1642         Paint the enter/exit fullscreen button accordingly:
1643         * rendering/RenderMediaControlsChromium.cpp:
1644         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
1645         * rendering/RenderTheme.cpp:
1646         (WebCore::RenderTheme::paint):
1647         * rendering/RenderThemeChromiumAndroid.cpp:
1648         (WebCore::RenderThemeChromiumAndroid::paintMediaFullscreenButton):
1649         * rendering/RenderThemeMac.mm:
1650         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
1651         * rendering/RenderMediaControls.cpp:
1652         (WebCore::RenderMediaControls::paintMediaControlsPart):
1653         * rendering/RenderThemeSafari.cpp:
1654         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
1655
1656         Update the localized strings for the exit and enter fullscreen buttons:
1657         * English.lproj/Localizable.strings:
1658         * platform/LocalizedStrings.cpp:
1659         (WebCore::localizedMediaControlElementString):
1660         * platform/gtk/LocalizedStringsGtk.cpp:
1661         (WebCore::localizedMediaControlElementString):
1662         (WebCore::localizedMediaControlElementHelpText):
1663         * platform/qt/LocalizedStringsQt.cpp:
1664         (WebCore::localizedMediaControlElementString):
1665         (WebCore::localizedMediaControlElementHelpText):
1666
1667 2012-03-16  Levi Weintraub  <leviw@chromium.org>
1668
1669         Update LayoutUnit usage in RenderListBox
1670         https://bugs.webkit.org/show_bug.cgi?id=81038
1671
1672         Reviewed by Julien Chaffraix.
1673
1674         Bringing RenderListBox in line with the rules listed in
1675         https://trac.webkit.org/wiki/LayoutUnit
1676
1677         No new tests. No change in behavior.
1678
1679         * rendering/RenderListBox.cpp:
1680         (WebCore::RenderListBox::paintScrollbar): Pixel snapping before handing off scrollbar
1681         painting to the platform.
1682         (WebCore::RenderListBox::paintItemForeground): Rounding the offset for text painting.
1683         (WebCore::RenderListBox::paintItemBackground): Pixel snapping the background rect.
1684         (WebCore::RenderListBox::panScroll): EventHandler::currentMousePosition is an IntPoint,
1685         so it doesn't require additional rounding in RenderListBox.
1686
1687 2012-03-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1688
1689         Unreviewed, rolling out r111020.
1690         http://trac.webkit.org/changeset/111020
1691         https://bugs.webkit.org/show_bug.cgi?id=81377
1692
1693         Broke Chromium Win compile (Requested by pkasting on #webkit).
1694
1695         * GNUmakefile.list.am:
1696         * WebCore.gypi:
1697         * platform/mediastream/PeerConnection00Handler.cpp: Removed.
1698         * platform/mediastream/PeerConnection00Handler.h: Removed.
1699         * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
1700
1701 2012-03-16  Dominic Mazzoni  <dmazzoni@google.com>
1702
1703         File input control accessibility can cause a crash
1704         https://bugs.webkit.org/show_bug.cgi?id=80896
1705
1706         Reviewed by Chris Fleizach.
1707
1708         Test: accessibility/input-file-causes-crash.html
1709
1710         * accessibility/AccessibilityRenderObject.cpp:
1711         (WebCore::AccessibilityRenderObject::textUnderElement):
1712
1713 2012-03-08  Jer Noble  <jer.noble@apple.com>
1714
1715         Support W3C Full Screen API proposal
1716         https://bugs.webkit.org/show_bug.cgi?id=80660
1717
1718         Reviewed by Alexey Proskuryakov.
1719
1720         Tests: fullscreen/full-screen-element-stack.html
1721                fullscreen/full-screen-enabled.html
1722                fullscreen/full-screen-restrictions.html
1723
1724         The W3C proposal for taking arbitrary elements into full-screen mode is significantly
1725         different than the Mozilla proposal. For example, the W3C has proposed a lower-case "s"
1726         in "Fullscreen", which means the W3C and Mozilla "requestFullscreen" APIs differ only by
1727         in that lower-case "s". Annoying as this is, it does allow us to retain the semantics for
1728         the Mozilla case (har!).
1729
1730         A significant difficulty is obeying the new W3C spec rules is that we would like to apply the
1731         fullscreen CSS rules while exiting fullscreen mode, though the W3C spec insists that the
1732         webkitFullscreenElement returns the new value immediately.  As such, we retain the m_fullScreenElement
1733         variable (distinct from the top of the m_fullScreenElements stack) which is controlled by the
1734         webkit{Will,Did}{Enter,Exit}FullScreen functions.
1735
1736         New APIs for the W3C Fullscreen spec:
1737         * dom/Document.h:
1738         (WebCore::Document::webkitFullscreenElement):
1739         (WebCore::Document::webkitFullscreenEnabled):
1740         * dom/Document.idl:
1741         * dom/Element.cpp:
1742         (WebCore::Element::webkitRequestFullscreen):
1743         * dom/Element.h:
1744         * dom/Element.idl:
1745
1746         * dom/Document.cpp:
1747         (WebCore::Document::removedLastRef): Clear m_fullScreenElementStack.
1748         (WebCore::Document::requestFullScreenForElement): Implement the W3C requirements.
1749         (WebCore::Document::webkitExitFullscreen): Ditto.
1750         (WebCore::Document::webkitCancelFullScreen): Implement in terms of webkitCancelFullscreen.
1751         (WebCore::Document::webkitDidEnterFullScreenForElement): 
1752         (WebCore::Document::webkitWillExitFullScreenForElement):
1753         (WebCore::Document::webkitDidExitFullScreenForElement):
1754         (WebCore::Document::fullScreenChangeDelayTimerFired): Protect against items being
1755             added to the event and error queue by swapping out empty queues before starting.
1756         (WebCore::Document::clearFullscreenElementStack): Simple accessor.
1757         (WebCore::Document::popFullscreenElementStack): Ditto.
1758         (WebCore::Document::pushFullscreenElementStack): Ditto.
1759         * dom/Element.cpp:
1760         (WebCore::Element::webkitRequestFullScreen):
1761
1762         Add new RuntimeEnabledFeatures functions for the added Document and Element functions.
1763         * bindings/generic/RuntimeEnabledFeatures.h:
1764         (RuntimeEnabledFeatures):
1765         (WebCore::RuntimeEnabledFeatures::webkitFullscreenEnabledEnabled):
1766         (WebCore::RuntimeEnabledFeatures::webkitFullscreenElementEnabled):
1767         (WebCore::RuntimeEnabledFeatures::webkitExitFullscreenEnabled):
1768         (WebCore::RuntimeEnabledFeatures::webkitRequestFullscreenEnabled):
1769
1770
1771 2012-03-16  Adam Klein  <adamk@chromium.org>
1772
1773         Make HTMLInputElement::isRadioButton non-virtual and remove unused HTMLFormControlElement::isRadioButton method
1774         https://bugs.webkit.org/show_bug.cgi?id=81255
1775
1776         Reviewed by Kent Tamura.
1777
1778         No new tests, no change in behavior.
1779
1780         * html/HTMLFormControlElement.h:
1781         * html/HTMLInputElement.h:
1782         (HTMLInputElement):
1783
1784 2012-03-16  Tay Grigg  <tgrigg@rim.com>
1785
1786         [BlackBerry] Update NetworkJob to accept batched headers
1787         https://bugs.webkit.org/show_bug.cgi?id=81273
1788
1789         Batch up the headers into a vector before they come into
1790         webkit to increase performance, and simplify the API.
1791
1792         Reviewed by George Staikos.
1793
1794         * platform/network/blackberry/NetworkJob.cpp:
1795         (WebCore::NetworkJob::notifyHeadersReceived):
1796         * platform/network/blackberry/NetworkJob.h:
1797         (NetworkJob):
1798
1799 2012-03-16  Dana Jansens  <danakj@chromium.org>
1800
1801         [chromium] Add overdraw metrics for texture uploads
1802         https://bugs.webkit.org/show_bug.cgi?id=81175
1803
1804         Reviewed by Adrienne Walker.
1805
1806         Record texture upload metrics during paint. To properly record
1807         the amount of pixels culled, we must compute the amount of pixels we
1808         would have uploaded for a tile. This requires knowing the dirty rect of
1809         the tile, but the dirty rect can be changed by WebKit during a paint, so
1810         we always store the dirtyRect in the tile's updateRect. We add an
1811         m_updateCulled bool to the UpdatableTile structure, to identify tiles
1812         that were not updated, and know a tile was updated if updateRect is not
1813         empty and updateCulled is false.
1814
1815         Tested by all TiledLayerChromiumTests that use occlusion tracker.
1816
1817         * platform/graphics/chromium/TiledLayerChromium.cpp:
1818         (UpdatableTile):
1819         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1820         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1821         (WebCore::CCLayerTreeHost::paintLayerContents):
1822
1823 2012-03-16  Jer Noble  <jer.noble@apple.com>
1824
1825         Allow AudioContext::create() to emit an ExceptionCode.
1826         https://bugs.webkit.org/show_bug.cgi?id=81049
1827
1828         Reviewed by Kentaro Hara.
1829
1830         No new tests; no change in functionality.
1831
1832         Pass through an ExceptionCode parameter to AudioContext::create().  It is currently
1833         never modified, but exceptions will be added in the future.
1834
1835         * bindings/js/JSAudioContextCustom.cpp:
1836         (WebCore::JSAudioContextConstructor::constructJSAudioContext):
1837         * bindings/v8/custom/V8AudioContextCustom.cpp:
1838         (WebCore::V8AudioContext::constructorCallback):
1839         * webaudio/AudioContext.cpp:
1840         (WebCore::AudioContext::create):
1841         * webaudio/AudioContext.h:
1842
1843 2012-03-16  Dana Jansens  <danakj@chromium.org>
1844
1845         [chromium] Remove surface damage client from occlusion tracker
1846         https://bugs.webkit.org/show_bug.cgi?id=81242
1847
1848         Reviewed by Adrienne Walker.
1849
1850         Code was not used yet, so no new tests. Removing tests instead!
1851
1852         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1853         (WebCore::::CCOcclusionTrackerBase):
1854         (WebCore::::layerScissorRectInTargetSurface):
1855         (WebCore):
1856         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
1857         (WebCore):
1858         (CCOcclusionTrackerBase):
1859
1860 2012-03-16  Tommy Widenflycht  <tommyw@google.com>
1861
1862         MediaStream API (JSEP): Introducing PeerConnection00Handler
1863         https://bugs.webkit.org/show_bug.cgi?id=81333
1864
1865         Reviewed by Adam Barth.
1866
1867         In preparation of the last WebCore patch that will introduce PeerConnection00 here's its platform representation.
1868
1869         Not possible to test until the entire JSEP feature is commited.
1870
1871         * GNUmakefile.list.am:
1872         * WebCore.gypi:
1873         * platform/mediastream/PeerConnection00Handler.cpp: Added.
1874         (WebCore):
1875         (WebCore::PeerConnection00Handler::create):
1876         (WebCore::PeerConnection00Handler::PeerConnection00Handler):
1877         (WebCore::PeerConnection00Handler::~PeerConnection00Handler):
1878         (WebCore::PeerConnection00Handler::createOffer):
1879         (WebCore::PeerConnection00Handler::createAnswer):
1880         (WebCore::PeerConnection00Handler::setLocalDescription):
1881         (WebCore::PeerConnection00Handler::setRemoteDescription):
1882         (WebCore::PeerConnection00Handler::localDescription):
1883         (WebCore::PeerConnection00Handler::remoteDescription):
1884         (WebCore::PeerConnection00Handler::startIce):
1885         (WebCore::PeerConnection00Handler::processIceMessage):
1886         (WebCore::PeerConnection00Handler::addStream):
1887         (WebCore::PeerConnection00Handler::removeStream):
1888         (WebCore::PeerConnection00Handler::stop):
1889         * platform/mediastream/PeerConnection00Handler.h: Added.
1890         (WebCore):
1891         (PeerConnection00Handler):
1892         * platform/mediastream/PeerConnection00HandlerClient.h: Added.
1893         (WebCore):
1894         (PeerConnection00HandlerClient):
1895         (WebCore::PeerConnection00HandlerClient::~PeerConnection00HandlerClient):
1896
1897 2012-03-16  Pavel Podivilov  <podivilov@chromium.org>
1898
1899         Web Inspector: fix exception when hovering over bound function in heap profiler.
1900         https://bugs.webkit.org/show_bug.cgi?id=81362
1901
1902         Reviewed by Yury Semikhatsky.
1903
1904         * inspector/front-end/DebuggerPresentationModel.js:
1905         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyRawLocation):
1906
1907 2012-03-16  Yoshifumi Inoue  <yosin@chromium.org>
1908
1909         [Forms] The "progress" element should not be a form-associated element.
1910         https://bugs.webkit.org/show_bug.cgi?id=80240
1911
1912         Reviewed by Kent Tamura.
1913
1914         This patch changes base class of HTMLProgressElement to LabelableElement from
1915         HTMLFormControlElement for saving memory space and iteration time of
1916         extra "progress" elements in HTMLFormElement::m_formAssociatedElements
1917         and matching the HTML5 specification for ease of maintenance.
1918
1919         Changes of TextIterator is lead by usage of isFormControlElement. This
1920         changes will be replaced with more meaningful predicate as part of
1921         https://bugs.webkit.org/show_bug.cgi?id=80381
1922
1923         No new tests. Update existing tests to cover this change.
1924
1925         * css/CSSStyleSelector.cpp:
1926         (WebCore::CSSStyleSelector::canShareStyleWithElement): Moved the "progress" element support code from canShareStyleWithControl.
1927         (WebCore::CSSStyleSelector::canShareStyleWithControl):
1928         * css/SelectorChecker.cpp:
1929         (WebCore::SelectorChecker::checkOneSelector): Remove isFormControlElement check for PseudoIndeterminate.
1930         * editing/TextIterator.cpp:
1931         (WebCore::TextIterator::advance): Check HTMLProgressElement in addition to isFormControlElement. This change is for text dump in LayoutTests implemented by document.innerText attribute.
1932         * html/HTMLProgressElement.cpp: Remove unused include file.
1933         (WebCore::HTMLProgressElement::HTMLProgressElement): Changed base class to LabelableElement.
1934         (WebCore::HTMLProgressElement::create): Remove form paraprogress.
1935         (WebCore::HTMLProgressElement::parseAttribute): Replace HTMLFormControlElement to LabelableElement.
1936         (WebCore::HTMLProgressElement::attach): Replace HTMLFormControlElement to LabelableElement.
1937         * html/HTMLProgressElement.h:
1938         (HTMLProgressElement):
1939         * html/HTMLProgressElement.idl: Remove the "form" attribute which isn't listed in the HTML5 specification.
1940         * html/HTMLTagNames.in: Remove "constructorNeedsFormElement" for not passing "form" parameter in HTMLElementFactory.
1941
1942 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
1943
1944         Web Inspector: Heap Snapshot: Unreviewed single line fix for isWindow getter.
1945
1946         * inspector/front-end/HeapSnapshot.js:
1947         (WebInspector.HeapSnapshotNode.prototype.get isWindow):
1948
1949 2012-03-16  Tommy Widenflycht  <tommyw@google.com>
1950
1951         MediaStream API (JSEP): Fixing a few nits
1952         https://bugs.webkit.org/show_bug.cgi?id=81322
1953
1954         Reviewed by Adam Barth.
1955
1956         Addressing the nits from bugs 81206 and 81207.
1957
1958         Nothing to test.
1959
1960         * Modules/mediastream/SessionDescription.idl:
1961         * platform/mediastream/IceOptions.h:
1962         (WebCore::IceOptions::IceOptions):
1963         * platform/mediastream/SessionDescriptionDescriptor.h:
1964         (SessionDescriptionDescriptor):
1965
1966 2012-03-16  Peter Rybin  <peter.rybin@gmail.com>
1967
1968         Web Inspector: TypeBuilder: Introduce OptOutput class for optional output parameters
1969         https://bugs.webkit.org/show_bug.cgi?id=80789
1970
1971         Reviewed by Yury Semikhatsky.
1972
1973         OptOutput class is added for optional return parameters.
1974
1975         Strict mode added to Generator that makes all parameter types strict
1976         and drop pre-set default values for return parameters.
1977
1978         Debugger and Page domain is switched to strict mode.
1979
1980         * inspector/CodeGeneratorInspector.py:
1981         (CommandReturnPassModel.OptOutput):
1982         (CommandReturnPassModel.OptOutput.__init__):
1983         (CommandReturnPassModel.OptOutput.get_return_var_type):
1984         (CommandReturnPassModel.OptOutput.get_output_argument_prefix):
1985         (CommandReturnPassModel.OptOutput.get_output_to_raw_expression):
1986         (CommandReturnPassModel.OptOutput.get_output_parameter_type):
1987         (CommandReturnPassModel):
1988         (CommandReturnPassModel.OptOutput.get_set_return_condition):
1989         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
1990         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
1991         (OptOutput):
1992         (Generator.process_event):
1993         (Generator.process_command):
1994         * inspector/ContentSearchUtils.cpp:
1995         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
1996         (WebCore::ContentSearchUtils::searchInTextByLines):
1997         * inspector/ContentSearchUtils.h:
1998         (ContentSearchUtils):
1999         * inspector/InjectedScript.cpp:
2000         (WebCore::InjectedScript::evaluate):
2001         (WebCore::InjectedScript::callFunctionOn):
2002         (WebCore::InjectedScript::evaluateOnCallFrame):
2003         (WebCore::InjectedScript::makeEvalCall):
2004         * inspector/InjectedScript.h:
2005         (InjectedScript):
2006         * inspector/InspectorDOMDebuggerAgent.cpp:
2007         (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
2008         (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
2009         (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
2010         (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
2011         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
2012         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
2013         * inspector/InspectorDebuggerAgent.cpp:
2014         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
2015         (WebCore::InspectorDebuggerAgent::setBreakpoint):
2016         (WebCore::InspectorDebuggerAgent::searchInContent):
2017         (WebCore::InspectorDebuggerAgent::setScriptSource):
2018         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
2019         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
2020         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
2021         (WebCore::InspectorDebuggerAgent::didPause):
2022         (WebCore::InspectorDebuggerAgent::breakProgram):
2023         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
2024         * inspector/InspectorDebuggerAgent.h:
2025         (InspectorDebuggerAgent):
2026         * inspector/InspectorPageAgent.cpp:
2027         (WebCore::buildObjectForCookie):
2028         (WebCore::buildArrayForCookies):
2029         (WebCore::InspectorPageAgent::getCookies):
2030         (WebCore::InspectorPageAgent::getResourceTree):
2031         (WebCore::InspectorPageAgent::searchInResource):
2032         (WebCore::InspectorPageAgent::searchInResources):
2033         (WebCore::InspectorPageAgent::buildObjectForFrame):
2034         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
2035         * inspector/InspectorPageAgent.h:
2036         * inspector/InspectorRuntimeAgent.cpp:
2037         (WebCore::InspectorRuntimeAgent::evaluate):
2038         (WebCore::InspectorRuntimeAgent::callFunctionOn):
2039
2040 2012-03-16  Kentaro Hara  <haraken@chromium.org>
2041
2042         The IDL parser should support sequence<T> type
2043         https://bugs.webkit.org/show_bug.cgi?id=81345
2044
2045         Reviewed by Adam Barth.
2046
2047         This patch makes the IDL parser support sequence<T> type.
2048         This patch just makes sequence<T> parseable, and the generated code
2049         for sequence<T> is wrong. This issue will be soon fixed in bug 80696.
2050         This is a preparing patch for bug 80696.
2051
2052         Test: bindings/scripts/test/TestObj.idl
2053
2054         * bindings/scripts/test/TestObj.idl: Added tests for sequence<T>.
2055
2056         * bindings/scripts/IDLStructure.pm: Updated the regular expressions to support sequence<T>.
2057
2058         * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
2059         (WebDOMTestObj::sequenceAttr):
2060         (WebDOMTestObj::setSequenceAttr):
2061         (WebDOMTestObj::methodWithSequenceArg):
2062         (WebDOMTestObj::methodReturningSequence):
2063         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2064         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2065         (webkit_dom_test_obj_method_with_sequence_arg):
2066         (webkit_dom_test_obj_method_returning_sequence):
2067         (webkit_dom_test_obj_get_sequence_attr):
2068         (webkit_dom_test_obj_set_sequence_attr):
2069         (webkit_dom_test_obj_get_property):
2070         (webkit_dom_test_obj_class_init):
2071         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2072         * bindings/scripts/test/JS/JSTestObj.cpp:
2073         (WebCore):
2074         (WebCore::jsTestObjSequenceAttr):
2075         (WebCore::setJSTestObjSequenceAttr):
2076         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
2077         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
2078         * bindings/scripts/test/JS/JSTestObj.h:
2079         (WebCore):
2080         * bindings/scripts/test/ObjC/DOMTestObj.h:
2081         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2082         (-[DOMTestObj sequenceAttr]):
2083         (-[DOMTestObj setSequenceAttr:]):
2084         (-[DOMTestObj methodWithSequenceArg:]):
2085         (-[DOMTestObj methodReturningSequence:]):
2086         * bindings/scripts/test/V8/V8TestObj.cpp:
2087         (WebCore::TestObjInternal::sequenceAttrAttrGetter):
2088         (TestObjInternal):
2089         (WebCore::TestObjInternal::sequenceAttrAttrSetter):
2090         (WebCore::TestObjInternal::methodWithSequenceArgCallback):
2091         (WebCore::TestObjInternal::methodReturningSequenceCallback):
2092         (WebCore):
2093         (WebCore::ConfigureV8TestObjTemplate):
2094
2095 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
2096
2097         Web Inspector: HeapSnapshot: merge two long operations into one.
2098         https://bugs.webkit.org/show_bug.cgi?id=81347
2099
2100         Reviewed by Yury Semikhatsky.
2101
2102         * inspector/front-end/HeapSnapshot.js:
2103         (WebInspector.HeapSnapshot.prototype.aggregates):
2104         (WebInspector.HeapSnapshot.prototype._buildAggregates):
2105         (WebInspector.HeapSnapshot.prototype._buildAggregates.forDominatedNodes):
2106
2107 2012-03-16  Gavin Peters  <gavinp@chromium.org>
2108
2109         Add asserts and improve logging in PageCache.
2110         https://bugs.webkit.org/show_bug.cgi?id=81179
2111
2112         Reviewed by Brady Eidson.
2113
2114         The early exits from logCanCacheFrameDecision had the potential to skew histogram data.  Moving
2115         the DocumentLoader check to the top, but eliminating the early exits is a compromise that keeps
2116         the logged data mostly accurate.
2117
2118         * history/PageCache.cpp:
2119         (WebCore::logCanCacheFrameDecision):
2120
2121 2012-03-16  Yoshifumi Inoue  <yosin@chromium.org>
2122
2123         [Forms] label.form attribute doesn't work
2124         https://bugs.webkit.org/show_bug.cgi?id=80499
2125
2126         Reviewed by Kent Tamura.
2127
2128         This patch changes implementation of label.form of IDL attribute to
2129         compute it to the form element specified by the "form" HTML attribute
2130         or form ancestor when the "form" HTML attribute isn't in HTML.
2131
2132         This patch introduces new function FormAssociatedElement::findAssociatedForm
2133         for sharing code among FormAssociateElement::insertedIntoTree, resetFormOwner
2134         and HTMLLabelElement::form.
2135
2136         No new tests. Update existing tests.
2137
2138         * html/FormAssociatedElement.cpp:
2139         (WebCore::FormAssociatedElement::findAssociatedForm): Added.
2140         (WebCore):
2141         (WebCore::FormAssociatedElement::insertedIntoTree):
2142         (WebCore::FormAssociatedElement::resetFormOwner):
2143         * html/FormAssociatedElement.h:
2144         (FormAssociatedElement):
2145         * html/HTMLLabelElement.cpp: Remove unused include files
2146         (WebCore::HTMLLabelElement::form): Added.
2147
2148 2012-03-16  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2149
2150         Use the normalize method of FloatPoint instead of normalizing manually
2151         https://bugs.webkit.org/show_bug.cgi?id=81343
2152
2153         Reviewed by Simon Hausmann.
2154
2155         * platform/graphics/TiledBackingStore.cpp:
2156         (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
2157         (WebCore::TiledBackingStore::computeCoverAndKeepRect):
2158
2159 2012-03-16  Kentaro Hara  <haraken@chromium.org>
2160
2161         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl
2162         https://bugs.webkit.org/show_bug.cgi?id=79636
2163
2164         Reviewed by Adam Barth.
2165
2166         For WebKit modularization, this patch moves Notifications-related APIs
2167         from DOMWindow.idl to DOMWindowNotifications.idl.
2168
2169         Tests: fast/notifications/* (No change in test results)
2170
2171         * CMakeLists.txt: Added DOMWindowNotifications.{h,cpp,idl}.
2172         * DerivedSources.make: Ditto.
2173         * DerivedSources.pri: Ditto.
2174         * GNUmakefile.list.am: Ditto.
2175         * Target.pri: Ditto.
2176         * WebCore.gypi: Ditto.
2177         * WebCore.vcproj/WebCore.vcproj: Ditto.
2178
2179         * WebCore.exp.in: Added mangled signatures of webkitNotifications().
2180
2181         * notifications/DOMWindowNotifications.cpp: Added.
2182         (WebCore):
2183         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
2184         (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
2185         (WebCore::DOMWindowNotifications::from):
2186         (WebCore::DOMWindowNotifications::webkitNotifications):
2187         (WebCore::DOMWindowNotifications::ensureWebkitNotifications):
2188         (WebCore::DOMWindowNotifications::disconnectFrame):
2189         * notifications/DOMWindowNotifications.h: Added.
2190         (WebCore):
2191         (DOMWindowNotifications):
2192         * notifications/DOMWindowNotifications.idl: Added.
2193
2194         * page/DOMWindow.cpp: Removed ENABLE(NOTIFICATIONS).
2195         (WebCore::DOMWindow::~DOMWindow):
2196         (WebCore::DOMWindow::willDetachPage):
2197         (WebCore::DOMWindow::clear):
2198         * page/DOMWindow.h: Ditto.
2199         (WebCore):
2200         (DOMWindow):
2201         * page/DOMWindow.idl: Ditto.
2202         * page/Frame.cpp: Ditto.
2203         (WebCore::Frame::willDetachPage):
2204         (WebCore::Frame::transferChildFrameToNewDocument):
2205
2206 2012-03-16  Kentaro Hara  <haraken@chromium.org>
2207
2208         [Performance] Optimize innerHTML and outerHTML
2209         https://bugs.webkit.org/show_bug.cgi?id=81214
2210
2211         Reviewed by Adam Barth.
2212
2213         This patch makes innerHTML and outerHTML 2.4 times faster.
2214
2215         Performance test: https://bugs.webkit.org/attachment.cgi?id=132034
2216         The performance test measures body.innerHTML for 3000 lines of HTML,
2217         which is copied from the HTML spec.
2218
2219         - Chromium/Mac without the patch
2220         div.innerHTML: 1658.6 ms
2221         div.outerHTML: 4859.6 ms
2222         body.innerHTML: 640.2 ms
2223         body.outerHTML: 641.8 ms
2224
2225         - Chromium/Mac with the patch
2226         div.innerHTML:  751.0 ms
2227         div.outerHTML: 2096.0 ms
2228         body.innerHTML: 271.2 ms
2229         body.outerHTML: 271.2 ms
2230
2231         - Chromium/Linux without the patch
2232         div.innerHTML:  950.4 ms
2233         div.outerHTML: 2257.8 ms
2234         body.innerHTML: 452.8 ms
2235         body.outerHTML: 457.6 ms
2236
2237         - Chromium/Linux with the patch
2238         div.innerHTML:  582.4 ms
2239         div.outerHTML: 1283.0 ms
2240         body.innerHTML: 233.0 ms
2241         body.outerHTML: 233.4 ms
2242
2243         - AppleWebKit/Mac without the patch
2244         div.innerHTML:  900.6 ms
2245         div.outerHTML: 2245.2 ms
2246         body.innerHTML: 462.6 ms
2247         body.outerHTML: 468.0 ms
2248
2249         - AppleWebKit/Mac with the patch
2250         div.innerHTML:  529.8  ms
2251         div.outerHTML: 1090.2 ms
2252         body.innerHTML: 239.2 ms
2253         body.outerHTML: 239.2 ms
2254
2255         This patch applies the following two optimizations:
2256
2257         (a) Remove redundant copies between Vector<String> and StringBuilders
2258         in MarkupAccumulator::serializeNodes(), MarkupAccumulator::appendStartTag(),
2259         and MarkupAccumulator::appendEndTag().
2260
2261             (Previous behavior)
2262             - Create a StringBuilder for each tag.
2263             - Append a created string in each StringBuilder to Vector<String>,
2264               parsing the DOM tree.
2265             - After the parsing, allocate a StringBuilder whose size is the sum
2266               of all Strings in Vector<String>.
2267             - Append all Strings in Vector<String> to the StringBuilder.
2268             (New behavior)
2269             - Allocate a StringBuilder with a default buffer size.
2270             - Append created strings to the StringBuilder, incrementally parsing
2271               the DOM tree.
2272
2273         (b) Optimize stringBuilder.append().
2274             (b-1) Replace stringBuilder.append("A") with stringBuilder.append('A').
2275                   stringBuilder.append("A") requires to cast the characters to LChar*,
2276                   and then call strlen("A"). stringBuilder.append('A') is faster.
2277             (b-2) Replace stringBuilder.append("AB") with stringBuilder.append('A')
2278                   and stringBuilder.append('B'). In my experiment, appending characters
2279                   one by one is faster than appending the characters at a breath if the
2280                   number of characters is less than 3.
2281             (b-3) Hard-code a string length; i.e. replace stringBuilder.append("ABCDE")
2282                   with stringBuilder.append("ABCDE", 5). While the former requires to call
2283                   strlen("ABCDE"), the latter does not.
2284
2285         (a) improves performance by 170% ~ 200%. (b) improves performance by 30 ~ 40%.
2286
2287         Tests: fast/dom/Range/range-extract-contents.html
2288                fast/dom/serialize-nodes.xhtml
2289                fast/dom/XMLSerializer.html
2290                and all other tests that use innerHTML or outerHTML.
2291                No change in the test results.
2292
2293         * editing/MarkupAccumulator.cpp:
2294         (WebCore::MarkupAccumulator::serializeNodes):
2295         (WebCore::MarkupAccumulator::appendString):
2296         (WebCore::MarkupAccumulator::appendStartTag):
2297         (WebCore::MarkupAccumulator::appendEndTag):
2298         (WebCore::MarkupAccumulator::concatenateMarkup):
2299         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
2300         (WebCore::MarkupAccumulator::appendComment):
2301         (WebCore::MarkupAccumulator::appendDocumentType):
2302         (WebCore::MarkupAccumulator::appendProcessingInstruction):
2303         (WebCore::MarkupAccumulator::appendOpenTag):
2304         (WebCore::MarkupAccumulator::appendAttribute):
2305         (WebCore::MarkupAccumulator::appendCDATASection):
2306         * editing/MarkupAccumulator.h:
2307         (MarkupAccumulator):
2308
2309 2012-03-16  Kihong Kwon  <kihong.kwon@samsung.com>
2310
2311         Support for Battery Status API
2312         https://bugs.webkit.org/show_bug.cgi?id=62698
2313
2314         Battery Status API is implemented under the Navigator class.
2315         Battery Status API has four types of events, and all events are operated based on a callback mechanism.
2316          : onchargingchange, onchargingtimechange, ondischargingtimechange, onlevelchange.
2317         The battery status can be accessed using BatteryManager(navigator.webkitBattery), and battery status is controlled by BatteryController which manages instances of BatteryManager.
2318         When battery status event is raised, BatteryController calls all registered BatteryManager's event dispatcher.
2319         http://www.w3.org/TR/battery-status/
2320
2321         Reviewed by Adam Barth.
2322
2323         Tests: batterystatus/add-listener-from-callback.html
2324                batterystatus/basic-all-types-of-events.html
2325                batterystatus/basic-operation.html
2326                batterystatus/event-after-navigation.html
2327                batterystatus/multiple-frames.html
2328                batterystatus/updates.html
2329                batterystatus/window-property.html
2330
2331         * CMakeLists.txt:
2332         * Modules/battery/BatteryClient.h: Added.
2333         (WebCore):
2334         (BatteryClient):
2335         (WebCore::BatteryClient::~BatteryClient):
2336         * Modules/battery/BatteryController.cpp: Added.
2337         (WebCore):
2338         (WebCore::BatteryController::BatteryController):
2339         (WebCore::BatteryController::~BatteryController):
2340         (WebCore::BatteryController::create):
2341         (WebCore::BatteryController::addListener):
2342         (WebCore::BatteryController::removeListener):
2343         (WebCore::BatteryController::didChangeBatteryStatus):
2344         (WebCore::BatteryController::supplementName):
2345         (WebCore::BatteryController::isActive):
2346         (WebCore::provideBatteryTo):
2347         * Modules/battery/BatteryController.h: Added.
2348         (WebCore):
2349         (BatteryController):
2350         (WebCore::BatteryController::client):
2351         (WebCore::BatteryController::from):
2352         * Modules/battery/BatteryManager.cpp: Added.
2353         (WebCore):
2354         (WebCore::BatteryManager::create):
2355         (WebCore::BatteryManager::~BatteryManager):
2356         (WebCore::BatteryManager::BatteryManager):
2357         (WebCore::BatteryManager::charging):
2358         (WebCore::BatteryManager::chargingTime):
2359         (WebCore::BatteryManager::dischargingTime):
2360         (WebCore::BatteryManager::level):
2361         (WebCore::BatteryManager::didChangeBatteryStatus):
2362         (WebCore::BatteryManager::suspend):
2363         (WebCore::BatteryManager::resume):
2364         (WebCore::BatteryManager::stop):
2365         * Modules/battery/BatteryManager.h: Added.
2366         (WebCore):
2367         (BatteryManager):
2368         (WebCore::BatteryManager::interfaceName):
2369         (WebCore::BatteryManager::scriptExecutionContext):
2370         (WebCore::BatteryManager::batteryControllerDestroyed):
2371         (WebCore::BatteryManager::canSuspend):
2372         (WebCore::BatteryManager::eventTargetData):
2373         (WebCore::BatteryManager::ensureEventTargetData):
2374         (WebCore::BatteryManager::refEventTarget):
2375         (WebCore::BatteryManager::derefEventTarget):
2376         * Modules/battery/BatteryManager.idl: Added.
2377         * Modules/battery/BatteryStatus.cpp: Added.
2378         (WebCore):
2379         (WebCore::BatteryStatus::create):
2380         (WebCore::BatteryStatus::BatteryStatus):
2381         * Modules/battery/BatteryStatus.h: Added.
2382         (WebCore):
2383         (BatteryStatus):
2384         (WebCore::BatteryStatus::charging):
2385         (WebCore::BatteryStatus::chargingTime):
2386         (WebCore::BatteryStatus::dischargingTime):
2387         (WebCore::BatteryStatus::level):
2388         * Modules/battery/NavigatorBattery.cpp: Added.
2389         (WebCore):
2390         (WebCore::NavigatorBattery::NavigatorBattery):
2391         (WebCore::NavigatorBattery::~NavigatorBattery):
2392         (WebCore::NavigatorBattery::webkitBattery):
2393         (WebCore::NavigatorBattery::from):
2394         (WebCore::NavigatorBattery::batteryManager):
2395         * Modules/battery/NavigatorBattery.h: Added.
2396         (WebCore):
2397         (NavigatorBattery):
2398         * Modules/battery/NavigatorBattery.idl: Added.
2399         * dom/EventNames.h:
2400         (WebCore):
2401         * dom/EventTargetFactory.in:
2402         * testing/Internals.cpp:
2403         (WebCore::Internals::setBatteryStatus):
2404         (WebCore):
2405         * testing/Internals.h:
2406         (Internals):
2407         * testing/Internals.idl:
2408
2409 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
2410
2411         Web Inspector: HeapSnapshot: speedup buildReverseIndex.
2412         https://bugs.webkit.org/show_bug.cgi?id=81327
2413
2414         Reviewed by Yury Semikhatsky.
2415
2416         * inspector/front-end/HeapSnapshot.js:
2417         (WebInspector.HeapSnapshot.prototype.get maxNodeId):
2418         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
2419         (WebInspector.HeapSnapshot.prototype._findNearestNodeIndex):
2420         (WebInspector.HeapSnapshot.prototype._getRetainerIndex):
2421         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
2422         (WebInspector.HeapSnapshot.prototype):
2423
2424 2012-03-16  Sheriff Bot  <webkit.review.bot@gmail.com>
2425
2426         Unreviewed, rolling out r110976.
2427         http://trac.webkit.org/changeset/110976
2428         https://bugs.webkit.org/show_bug.cgi?id=81330
2429
2430         webkit_unit_tests crashes. (Requested by morrita on #webkit).
2431
2432         * loader/cache/CachedCSSStyleSheet.cpp:
2433         (WebCore::CachedCSSStyleSheet::error):
2434         (WebCore):
2435         * loader/cache/CachedCSSStyleSheet.h:
2436         (CachedCSSStyleSheet):
2437         * loader/cache/CachedFont.cpp:
2438         (WebCore):
2439         (WebCore::CachedFont::error):
2440         * loader/cache/CachedFont.h:
2441         (CachedFont):
2442         * loader/cache/CachedImage.cpp:
2443         (WebCore::CachedImage::error):
2444         * loader/cache/CachedResource.h:
2445         (CachedResource):
2446         * loader/cache/CachedScript.cpp:
2447         (WebCore::CachedScript::error):
2448         (WebCore):
2449         * loader/cache/CachedScript.h:
2450         (CachedScript):
2451         * loader/cache/CachedXSLStyleSheet.cpp:
2452         (WebCore::CachedXSLStyleSheet::error):
2453         (WebCore):
2454         * loader/cache/CachedXSLStyleSheet.h:
2455         (CachedXSLStyleSheet):
2456
2457 2012-03-16  Luke Macpherson   <macpherson@chromium.org>
2458
2459         Implement cast between CSSPrimitiveValue and LineClampValue.
2460         https://bugs.webkit.org/show_bug.cgi?id=76806
2461
2462         Reviewed by Andreas Kling.
2463
2464         Covered by many existing LayoutTests.
2465
2466         This simplifies code in CSSStyleSelector and future mapping to CSSStyleApplyProperty.
2467
2468         * css/CSSPrimitiveValueMappings.h:
2469         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2470         (WebCore::CSSPrimitiveValue::operator LineClampValue):
2471         * css/CSSStyleSelector.cpp:
2472         (WebCore::CSSStyleSelector::applyProperty):
2473
2474 2012-03-16  Nat Duca  <nduca@chromium.org>
2475
2476         [chromium] Bump textureUpdatesPerFrame to 32 to favor updating the screen over jank prevention
2477         https://bugs.webkit.org/show_bug.cgi?id=81298
2478
2479         Reviewed by James Robinson.
2480
2481         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2482         (WTF):
2483
2484 2012-03-16  Levi Weintraub  <leviw@chromium.org>
2485
2486         Update usage of LayoutUnits in RenderBlock*
2487         https://bugs.webkit.org/show_bug.cgi?id=80437
2488
2489         Reviewed by Julien Chaffraix.
2490
2491         Updating LayoutUnit usage in RenderBlock and RenderBlockLineLayout. This better readies trunk for
2492         the transition to subpixel layout.
2493
2494         See https://trac.webkit.org/wiki/LayoutUnit for more details.
2495
2496         No new tests. No changed behavior.
2497
2498         * rendering/InlineTextBox.cpp:
2499         (WebCore::InlineTextBox::paint): Adding the paint offset rounding previously in RenderBlock::paint.
2500         * rendering/LayoutTypes.h:
2501         (WebCore::floorToInt): Will floor a LayoutUnit to an integer once we switch to
2502         FractionalLayoutUnits.
2503         (WebCore::boundedMultiply): Method that will return the multiplied result of two LayoutUnits
2504         or the max/min LayoutUnit if the result overflows. Only does a regular multiply while
2505         LayoutUnits are integers instead of FractionalLayoutUnits.
2506         (WebCore):
2507         * rendering/RenderBlock.cpp:
2508         (WebCore::RenderBlock::paintContents): Rounding the paintOffset here didn't work for all
2509         inline blocks. This rounding is actually only needed for InlineTextBoxes, so the logic has
2510         been moved there.
2511         (WebCore::RenderBlock::newLine): Use a LayoutUnit for the y position.
2512         (WebCore::RenderBlock::isPointInOverflowControl): Points for hit testing need to be rounded.
2513         (WebCore::RenderBlock::layoutColumns): Using boundedMultiply for a calculation prone to overflow.
2514         (WebCore::updatePreferredWidth): Reverting back to using ceilf. ceiledLayoutUnit was to be ultimately
2515         converted to just a straight LayoutUnit constructor to preserve precision. This precision doesn't work
2516         for us here as we still paint Boxes/Blocks on pixel boundaries, so we need to expand to a pixel size
2517         that encloses the contained text.
2518         (WebCore::RenderBlock::setPageLogicalOffset): LogicalOffset should be a LayoutUnit.
2519         (WebCore::RenderBlock::marginValuesForChild): Margins should have subpixel resolution.
2520         (WebCore::RenderBlock::FloatingObjects::intervalForFloatingObject): Intervals for floating objects
2521         need to use pixel snapped values to give the proper results.
2522         * rendering/RenderBlock.h:
2523         (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Only moved.
2524         (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine): While we can round the left offset,
2525         columns add an extra offset at paint that can't currently be planned for at line-layout time. To
2526         avoid laying out lines that run off the end of columns, we floor the right offset. The resulting
2527         lines will be up to 1 pixel shorter than they potentially could be.
2528         (RenderBlock):
2529         (WebCore::RenderBlock::FloatingObject::pixelSnappedX): Using corresponding pixelSnappedX value from
2530         LayoutRects.
2531         (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxX): Ditto.
2532         (WebCore::RenderBlock::FloatingObject::pixelSnappedY): Ditto.
2533         (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxY): Ditto.
2534         (WebCore::RenderBlock::FloatingObject::pixelSnappedWidth): Ditto.
2535         (WebCore::RenderBlock::FloatingObject::pixelSnappedHeight): Ditto.
2536         * rendering/RenderBlockLineLayout.cpp:
2537         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): LogicalHeight is a LayoutUnit. Also
2538         flooring textIndentOffset to an integer to match old behavior.
2539         (WebCore::LineWidth::fitBelowFloats): Using LayoutUnits for float logical top and bottoms.
2540         (WebCore::LineLayoutState::endLineLogicalTop): Changing to a LayoutUnit.
2541         (WebCore::LineLayoutState::setEndLineLogicalTop): Ditto.
2542         (LineLayoutState): Ditto.
2543         (WebCore::RenderBlock::linkToEndLineIfNeeded): Calculating overflow with LayoutUnits.
2544         (WebCore::RenderBlock::layoutInlineChildren): LowestAllowedPosition should be subpixel.
2545         (WebCore::RenderBlock::checkLinesForTextOverflow): Reverting ellipsis width calculation to integers
2546         as this value can be seen as representing pixels on screen.
2547
2548 2012-03-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2549
2550         Follow up to: window.innerWidth/Height should not include page scale
2551         https://bugs.webkit.org/show_bug.cgi?id=76555
2552
2553         Reviewed by Simon Hausmann.
2554
2555         Introduce mapping methods for converting between CSS and layout units.
2556
2557         * page/DOMWindow.cpp:
2558         (WebCore::DOMWindow::innerHeight):
2559         (WebCore::DOMWindow::innerWidth):
2560         (WebCore::DOMWindow::scrollX):
2561         (WebCore::DOMWindow::scrollY):
2562         (WebCore::DOMWindow::scrollTo):
2563         * page/FrameView.h:
2564         (FrameView):
2565         (WebCore::FrameView::mapFromLayoutToCSSUnits):
2566         (WebCore):
2567         (WebCore::FrameView::mapFromCSSToLayoutUnits):
2568
2569 2012-03-16  Ian Vollick  <vollick@chromium.org>
2570
2571         [chromium] Threaded opacity animation jump to opacity of 0
2572         https://bugs.webkit.org/show_bug.cgi?id=80744
2573
2574         Reviewed by James Robinson.
2575
2576         Tested in CCLayerTreeHostTestDoNotSkipLayersWithAnimatedOpacity
2577
2578         * platform/graphics/chromium/LayerChromium.cpp:
2579         (WebCore::LayerChromium::LayerChromium):
2580         (WebCore::LayerChromium::opacityIsAnimating):
2581         (WebCore):
2582         (WebCore::LayerChromium::transformIsAnimating):
2583         * platform/graphics/chromium/LayerChromium.h:
2584         (LayerChromium):
2585         (WebCore::LayerChromium::drawOpacityIsAnimating):
2586         (WebCore::LayerChromium::setDrawOpacityIsAnimating):
2587         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
2588         (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
2589         * platform/graphics/chromium/RenderSurfaceChromium.h:
2590         (WebCore::RenderSurfaceChromium::drawOpacityIsAnimating):
2591         (WebCore::RenderSurfaceChromium::setDrawOpacityIsAnimating):
2592         (RenderSurfaceChromium):
2593         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2594         (WebCore::CCLayerAnimationController::isAnimatingProperty):
2595         (WebCore):
2596         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
2597         (CCLayerAnimationController):
2598         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp:
2599         (WebCore::CCLayerAnimationControllerImpl::isAnimatingProperty):
2600         (WebCore):
2601         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h:
2602         (CCLayerAnimationControllerImpl):
2603         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2604         (WebCore::CCLayerImpl::CCLayerImpl):
2605         (WebCore::CCLayerImpl::opacityIsAnimating):
2606         (WebCore):
2607         (WebCore::CCLayerImpl::transformIsAnimating):
2608         * platform/graphics/chromium/cc/CCLayerImpl.h:
2609         (CCLayerImpl):
2610         (WebCore::CCLayerImpl::drawOpacityIsAnimating):
2611         (WebCore::CCLayerImpl::setDrawOpacityIsAnimating):
2612         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2613         (WebCore::CCLayerTreeHost::paintLayerContents):
2614         (WebCore::CCLayerTreeHost::updateCompositorResources):
2615         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
2616         (WebCore::layerShouldBeSkipped):
2617         (WebCore::subtreeShouldBeSkipped):
2618         (WebCore):
2619         (WebCore::LayerChromium):
2620         (WebCore::calculateDrawTransformsAndVisibilityInternal):
2621         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2622         (WebCore::CCRenderSurface::CCRenderSurface):
2623         * platform/graphics/chromium/cc/CCRenderSurface.h:
2624         (WebCore::CCRenderSurface::drawOpacityIsAnimating):
2625         (WebCore::CCRenderSurface::setDrawOpacityIsAnimating):
2626         (CCRenderSurface):
2627
2628 2012-03-15  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2629
2630         [TexMap] Reuse textures following the same rules as they do internally.
2631         https://bugs.webkit.org/show_bug.cgi?id=80843
2632
2633         Reviewed by Noam Rosenthal.
2634
2635         BitmapTextures were recently changed to be the same size as their contents.
2636         This would obsolete the logic in acquireTextureFromPool which would
2637         assume that a BitmapTexture has good chances of being reused if its
2638         size is bigger or equal to the new size.
2639
2640         This asks the texture instead if it can be reused which now simply
2641         check for an exact size match.
2642
2643         * platform/graphics/texmap/TextureMapper.cpp:
2644         (WebCore::TextureMapper::acquireTextureFromPool):
2645         * platform/graphics/texmap/TextureMapper.h:
2646         (WebCore::BitmapTexture::canReuseWith):
2647         (WebCore::BitmapTexture::reset):
2648         (WebCore::BitmapTexture::didReset):
2649         * platform/graphics/texmap/TextureMapperGL.cpp:
2650         (WebCore::BitmapTextureGL::canReuseWith):
2651         (WebCore):
2652         * platform/graphics/texmap/TextureMapperGL.h:
2653         (BitmapTextureGL):
2654
2655 2012-03-16  Robert Kroeger  <rjkroege@chromium.org>
2656
2657         Connect up fling event delivery to gesture curve animation framework
2658         https://bugs.webkit.org/show_bug.cgi?id=80858
2659
2660         Reviewed by Adam Barth.
2661
2662         * platform/ScrollAnimatorNone.cpp:
2663         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
2664
2665 2012-03-16  Nate Chapin  <japhet@chromium.org>
2666
2667         Remove duplicate error() impls in CachedResource subclasses
2668         https://bugs.webkit.org/show_bug.cgi?id=81161
2669
2670         Reviewed by Alexey Proskuryakov.
2671
2672         No new tests, refactor only.
2673
2674         * loader/cache/CachedCSSStyleSheet.cpp:
2675         * loader/cache/CachedCSSStyleSheet.h:
2676         * loader/cache/CachedFont.cpp:
2677         * loader/cache/CachedFont.h:
2678         * loader/cache/CachedImage.cpp:
2679         * loader/cache/CachedResource.h: Make checkNotify()
2680              virtual, so the right checkNotify() gets called in error().
2681         * loader/cache/CachedScript.cpp:
2682         * loader/cache/CachedScript.h:
2683         * loader/cache/CachedXSLStyleSheet.cpp:
2684         * loader/cache/CachedXSLStyleSheet.h:
2685
2686 2012-03-16  Dana Jansens  <danakj@chromium.org>
2687
2688         [chromium] Changes to overdraw metrics to allow upload tracking
2689         https://bugs.webkit.org/show_bug.cgi?id=81222
2690
2691         Reviewed by Adrienne Walker.
2692
2693         Stick CCOverdrawMetrics into CCOcclusionTracker, so that it is available
2694         everywhere that culling/drawing/painting is going on. Then we can stop
2695         plumbing a metrics object through CCQuadCuller.
2696
2697         Rename the CCOverdrawMetrics "painting" stuff to "uploading" as this will
2698         measure texture uploads rather than pixels painted in main memory.
2699
2700         Covered by existing tests.
2701
2702         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2703         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2704         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2705         (WebCore::::CCOcclusionTrackerBase):
2706         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
2707         (CCOcclusionTrackerBase):
2708         (WebCore::CCOcclusionTrackerBase::overdrawMetrics):
2709         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
2710         (WebCore::CCOverdrawMetrics::didCull):
2711         (WebCore):
2712         (WebCore::CCOverdrawMetrics::didDraw):
2713         (WebCore::CCOverdrawMetrics::recordMetrics):
2714         (WebCore::CCOverdrawMetrics::recordMetricsInternal):
2715         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
2716         (WebCore):
2717         (WebCore::CCOverdrawMetrics::create):
2718         (CCOverdrawMetrics):
2719         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2720         (WebCore::CCQuadCuller::CCQuadCuller):
2721         (WebCore::CCQuadCuller::append):
2722         * platform/graphics/chromium/cc/CCQuadCuller.h:
2723         (CCQuadCuller):
2724         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2725         (WebCore::CCRenderPass::appendQuadsForLayer):
2726         * platform/graphics/chromium/cc/CCRenderPass.h:
2727         (WebCore):
2728         (CCRenderPass):
2729
2730 2012-03-16  Greg Billock  <gbillock@google.com>
2731
2732         Add TransferList IDL modifier, with support in V8 code gen.
2733         https://bugs.webkit.org/show_bug.cgi?id=81127
2734
2735         Reviewed by Adam Barth.
2736
2737         * bindings/scripts/CodeGeneratorV8.pm:
2738         (GenerateFunctionCallback):
2739         (GetIndexOf):
2740         (GenerateParametersCheck):
2741         (GenerateConstructorCallback):
2742         (GenerateNamedConstructorCallback):
2743         (GenerateFunctionCallString):
2744         * bindings/scripts/IDLAttributes.txt:
2745         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
2746         (WebDOMTestSerializedScriptValueInterface::acceptTransferList):
2747         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
2748         (WebDOMTestSerializedScriptValueInterface):
2749         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
2750         (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
2751         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
2752         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2753         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
2754         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
2755         (WebCore):
2756         (WebCore::JSTestSerializedScriptValueInterfacePrototype::getOwnPropertySlot):
2757         (WebCore::JSTestSerializedScriptValueInterfacePrototype::getOwnPropertyDescriptor):
2758         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
2759         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
2760         (JSTestSerializedScriptValueInterfacePrototype):
2761         (WebCore):
2762         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
2763         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
2764         (-[DOMTestSerializedScriptValueInterface acceptTransferList:transferList:]):
2765         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
2766         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2767         (WebCore::TestSerializedScriptValueInterfaceInternal::acceptTransferListCallback):
2768         (TestSerializedScriptValueInterfaceInternal):
2769         (WebCore):
2770         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
2771         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
2772
2773 2012-03-16  Dana Jansens  <danakj@chromium.org>
2774
2775         [chromium] Quads that become fully opaque after culling should not use blending
2776         https://bugs.webkit.org/show_bug.cgi?id=81235
2777
2778         Reviewed by Adrienne Walker.
2779
2780         Unit test: CCLayerTreeHostImplTest.blendingOffWhenDrawingOpaqueLayers
2781
2782         * platform/graphics/chromium/cc/CCDrawQuad.h:
2783         (WebCore::CCDrawQuad::needsBlending):
2784
2785 2012-03-16  Xiaomei Ji  <xji@chromium.org>
2786
2787         Using ICU break iterator to simplify visual word movement implementation.
2788         https://bugs.webkit.org/show_bug.cgi?id=78856
2789
2790         Reviewed by Ryosuke Niwa.
2791
2792         This patch relies on ICU word break iterator and cursor visual movement by character to get the word break
2793         position in visual order. It reduces the complexity of old implementation.
2794
2795         Test: editing/selection/move-by-word-visually-wrong-left-right.html
2796
2797         * editing/FrameSelection.cpp: Exclude WinCE from visual word movement since isWordTextBreak is not implemented.
2798         (WebCore::FrameSelection::modifyMovingRight):
2799         (WebCore::FrameSelection::modifyMovingLeft):
2800         * editing/visible_units.cpp:
2801         (WebCore):
2802         (WebCore::previousLeafWithSameEditability): Just moving to the top without functionality change.
2803         (WebCore::enclosingNodeWithNonInlineRenderer): ditto.
2804         (WebCore::nextLeafWithSameEditability): ditto.
2805         (WebCore::previousRootInlineBox): return previous RootInlineBox which is in different renderer.
2806         (WebCore::nextRootInlineBox): return next RootInlineBox which is in different renderer.
2807         (WebCore::boxIndexInVector):
2808         (WebCore::previousBoxInLine): returns logically previous box in one line.
2809         (WebCore::logicallyPreviousBox): returns logically previous box.
2810         (WebCore::nextBoxInLine): returns logically next box in one line.
2811         (WebCore::logicallyNextBox): returns logically next box.
2812         (WebCore::wordBreakIteratorForMinOffsetBoundary): create word break iterator for position that is a box's min offset.
2813         (WebCore::wordBreakIteratorForMaxOffsetBoundary): create word break iterator for position that is a box's max offset.
2814         (WebCore::isLogicalStartOfWord): return whether a position is logically start of word.
2815         (WebCore::islogicalEndOfWord): return whether a position is logically end of word.
2816         (WebCore::visualWordPosition): returns the visual left or right word position.
2817         (WebCore::leftWordPosition):
2818         (WebCore::rightWordPosition):
2819         * platform/text/TextBreakIterator.h: Add isWordTextBreak().
2820         (WebCore):
2821         * platform/text/TextBreakIteratorICU.cpp:
2822         (WebCore::isWordTextBreak):
2823         (WebCore):
2824         * platform/text/gtk/TextBreakIteratorGtk.cpp:
2825         (WebCore::isWordTextBreak):
2826         (WebCore):
2827         * platform/text/qt/TextBreakIteratorQt.cpp:
2828         (WebCore::isWordTextBreak):
2829         (WebCore):
2830         * platform/text/wince/TextBreakIteratorWinCE.cpp:
2831         (WebCore::isWordTextBreak):
2832         (WebCore):
2833
2834 2012-03-16  Dana Jansens  <danakj@chromium.org>
2835
2836         [chromium] Don't create a quad for video layers without a frame (avoid use of uninitialized m_format)
2837         https://bugs.webkit.org/show_bug.cgi?id=81250
2838
2839         Reviewed by James Robinson.
2840
2841         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2842         (WebCore::CCVideoLayerImpl::appendQuads):
2843
2844 2012-03-16  Hajime Morrita  <morrita@chromium.org>
2845
2846         Unreviewed attempt to fix Chromium windows build.
2847
2848         * Modules/speech/SpeechRecognition.h:
2849         (SpeechRecognition):
2850
2851 2012-03-16  Mark Pilgrim  <pilgrim@chromium.org>
2852
2853         Move DOMWindowFileSystem to Modules/filesystem/
2854         https://bugs.webkit.org/show_bug.cgi?id=81030
2855
2856         Reviewed by Adam Barth.
2857
2858         No new tests, all existing tests pass.
2859
2860         * CMakeLists.txt:
2861         * DerivedSources.make:
2862         * DerivedSources.pri:
2863         * GNUmakefile.am:
2864         * GNUmakefile.list.am:
2865         * Modules/filesystem/DOMWindowFileSystem.cpp: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.cpp.
2866         * Modules/filesystem/DOMWindowFileSystem.h: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.h.
2867         * Modules/filesystem/DOMWindowFileSystem.idl: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.idl.
2868         * Target.pri:
2869         * WebCore.gyp/WebCore.gyp:
2870         * WebCore.gypi:
2871         * WebCore.vcproj/WebCore.vcproj:
2872         * WebCore.vcproj/WebCoreCommon.vsprops:
2873         * WebCore.vcproj/copyForwardingHeaders.cmd:
2874         * fileapi/DOMWindowFileSystem.cpp: Removed.
2875         * fileapi/DOMWindowFileSystem.h: Removed.
2876         * fileapi/DOMWindowFileSystem.idl: Removed.
2877
2878 2012-03-16  Sheriff Bot  <webkit.review.bot@gmail.com>
2879
2880         Unreviewed, rolling out r110951.
2881         http://trac.webkit.org/changeset/110951
2882         https://bugs.webkit.org/show_bug.cgi?id=81316
2883
2884         Does not build on apple-mac (Requested by abarth on #webkit).
2885
2886         * platform/audio/DynamicsCompressor.h:
2887         (DynamicsCompressor):
2888         * webaudio/DynamicsCompressorNode.cpp:
2889         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
2890         (WebCore::DynamicsCompressorNode::process):
2891         * webaudio/DynamicsCompressorNode.h:
2892         (DynamicsCompressorNode):
2893         * webaudio/DynamicsCompressorNode.idl:
2894
2895 2012-03-16  Seo Sanghyeon  <sh4.seo@samsung.com>
2896
2897         Cleanup empty attribute list in IDLs
2898         https://bugs.webkit.org/show_bug.cgi?id=81228
2899
2900         Reviewed by Adam Barth.
2901
2902         No tests. No change in behavior.
2903
2904         * css/WebKitCSSRegionRule.idl:
2905
2906 2012-03-16  Pratik Solanki  <psolanki@apple.com>
2907
2908         onorientationchange event should have JSWindowEventListener attribute
2909         https://bugs.webkit.org/show_bug.cgi?id=79513
2910
2911         Reviewed by Kentaro Hara.
2912
2913         * html/HTMLFrameSetElement.idl:
2914
2915 2012-03-15  Gao Chun  <chun.gao@intel.com>
2916
2917         Expose attack, release as DynamicsCompressorNode's attributes.
2918         https://bugs.webkit.org/show_bug.cgi?id=81221
2919
2920         Reviewed by Chris Rogers.
2921
2922         Test: webaudio/dynamicscompressor-basic.html
2923
2924         * platform/audio/DynamicsCompressor.h:
2925         (DynamicsCompressor):
2926         * webaudio/DynamicsCompressorNode.cpp:
2927         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
2928         (WebCore::DynamicsCompressorNode::process):
2929         * webaudio/DynamicsCompressorNode.h:
2930         (WebCore::DynamicsCompressorNode::attack):
2931         (WebCore::DynamicsCompressorNode::release):
2932         (DynamicsCompressorNode):
2933         * webaudio/DynamicsCompressorNode.idl:
2934
2935 2012-03-15  Hans Wennborg  <hans@chromium.org>
2936
2937         Speech JavaScript API: SpeechRecognition, Controller and Client
2938         https://bugs.webkit.org/show_bug.cgi?id=81096
2939
2940         Reviewed by Adam Barth.
2941
2942         Add implementation stub for SpeechRecognition. Add the
2943         SpeechRecognitionController class and SpeechRecognitionClient
2944         interface.
2945
2946         Test: fast/speech/scripted/basics.html
2947
2948         * Modules/speech/DOMWindowSpeech.idl:
2949         * Modules/speech/SpeechRecognition.cpp: Added.
2950         (WebCore):
2951         (WebCore::SpeechRecognition::create):
2952         (WebCore::SpeechRecognition::start):
2953         (WebCore::SpeechRecognition::stopFunction):
2954         (WebCore::SpeechRecognition::abort):
2955         (WebCore::SpeechRecognition::audioStartCallback):
2956         (WebCore::SpeechRecognition::soundStartCallback):
2957         (WebCore::SpeechRecognition::speechStartCallback):
2958         (WebCore::SpeechRecognition::speechEndCallback):
2959         (WebCore::SpeechRecognition::audioEndCallback):
2960         (WebCore::SpeechRecognition::resultCallback):
2961         (WebCore::SpeechRecognition::noMatchCallback):
2962         (WebCore::SpeechRecognition::resultDeletedCallback):
2963         (WebCore::SpeechRecognition::errorCallback):
2964         (WebCore::SpeechRecognition::startCallback):
2965         (WebCore::SpeechRecognition::endCallback):
2966         (WebCore::SpeechRecognition::interfaceName):
2967         (WebCore::SpeechRecognition::scriptExecutionContext):
2968         (WebCore::SpeechRecognition::SpeechRecognition):
2969         (WebCore::SpeechRecognition::~SpeechRecognition):
2970         * Modules/speech/SpeechRecognition.h: Added.
2971         (WebCore):
2972         (SpeechRecognition):
2973         (WebCore::SpeechRecognition::grammars):
2974         (WebCore::SpeechRecognition::setGrammars):
2975         (WebCore::SpeechRecognition::lang):
2976         (WebCore::SpeechRecognition::setLang):
2977         (WebCore::SpeechRecognition::continuous):
2978         (WebCore::SpeechRecognition::setContinuous):
2979         * Modules/speech/SpeechRecognition.idl:
2980         * Modules/speech/SpeechRecognitionClient.h:
2981         (WebCore):
2982         (SpeechRecognitionClient):
2983         (WebCore::SpeechRecognitionClient::~SpeechRecognitionClient):
2984         * Modules/speech/SpeechRecognitionController.cpp:
2985         (WebCore):
2986         (WebCore::SpeechRecognitionController::supplementName):
2987         (WebCore::SpeechRecognitionController::SpeechRecognitionController):
2988         (WebCore::SpeechRecognitionController::~SpeechRecognitionController):
2989         (WebCore::SpeechRecognitionController::create):
2990         (WebCore::provideSpeechRecognitionTo):
2991         * Modules/speech/SpeechRecognitionController.h: Added.
2992         (WebCore):
2993         (SpeechRecognitionController):
2994         (WebCore::SpeechRecognitionController::start):
2995         (WebCore::SpeechRecognitionController::stop):
2996         (WebCore::SpeechRecognitionController::abort):
2997         (WebCore::SpeechRecognitionController::visibilityHidden):
2998         (WebCore::SpeechRecognitionController::unregisterSpeechRecognition):
2999         (WebCore::SpeechRecognitionController::from):
3000         * WebCore.gypi:
3001         * dom/EventTargetFactory.in:
3002
3003 2012-03-15  Michal Ciepielski  <m.ciepielski@samsung.com>
3004
3005         [EFL] Sets alpha channel for new buffers.
3006         https://bugs.webkit.org/show_bug.cgi?id=77101
3007
3008         Reviewed by Hajime Morita.
3009
3010         No new tests.
3011
3012         By default EFL creates buffers without alpha channel.
3013         This causes improper rendering of HTML controls (i.e. radio buttons, checkboxes).
3014         This commits sets alpha channel for all newly created buffers by EFL.
3015
3016         * platform/efl/RenderThemeEfl.cpp:
3017         (WebCore::RenderThemeEfl::cacheThemePartNew):
3018
3019 2012-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
3020
3021         Unreviewed, rolling out r110941.
3022         http://trac.webkit.org/changeset/110941
3023         https://bugs.webkit.org/show_bug.cgi?id=81307
3024
3025         the revert looks innocent. (Requested by morrita on #webkit).
3026
3027         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3028         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
3029         * platform/graphics/chromium/Canvas2DLayerChromium.h:
3030         (Canvas2DLayerChromium):
3031         * platform/graphics/chromium/ContentLayerChromium.cpp:
3032         (WebCore::ContentLayerChromium::paintContentsIfDirty):
3033         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
3034         * platform/graphics/chromium/ContentLayerChromium.h:
3035         (WebCore):
3036         (ContentLayerChromium):
3037         * platform/graphics/chromium/ImageLayerChromium.cpp:
3038         (WebCore::ImageLayerChromium::paintContentsIfDirty):
3039         * platform/graphics/chromium/ImageLayerChromium.h:
3040         (WebCore):
3041         (ImageLayerChromium):
3042         * platform/graphics/chromium/LayerChromium.h:
3043         (WebCore::LayerChromium::paintContentsIfDirty):
3044         (WebCore::LayerChromium::idlePaintContentsIfDirty):
3045         * platform/graphics/chromium/TiledLayerChromium.cpp:
3046         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3047         (WebCore::TiledLayerChromium::prepareToUpdate):
3048         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
3049         * platform/graphics/chromium/TiledLayerChromium.h:
3050         (TiledLayerChromium):
3051         * platform/graphics/chromium/WebGLLayerChromium.cpp:
3052         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
3053         * platform/graphics/chromium/WebGLLayerChromium.h:
3054         (WebGLLayerChromium):
3055         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3056         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
3057         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
3058         (WebCore::CCLayerTreeHost::paintLayerContents):
3059         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3060
3061 2012-03-15  Tommy Widenflycht  <tommyw@google.com>
3062
3063         MediaStream API (JSEP): Introducing SessionDescription
3064         https://bugs.webkit.org/show_bug.cgi?id=81206
3065
3066         Reviewed by Adam Barth.
3067
3068         Patch #3 in a series of patches to change the PeerConnection from ROAP to JSEP,
3069         see bug 80589 for more information.
3070         Adding the SessionDescription JS object and its platform counterpart SessionDescriptionDescriptor.
3071
3072         Not possible to test until the entire JSEP feature is commited.
3073
3074         * GNUmakefile.list.am:
3075         * Modules/mediastream/SessionDescription.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
3076         (WebCore):
3077         (WebCore::SessionDescription::create):
3078         (WebCore::SessionDescription::SessionDescription):
3079         (WebCore::SessionDescription::~SessionDescription):
3080         (WebCore::SessionDescription::addCandidate):
3081         (WebCore::SessionDescription::toSdp):
3082         (WebCore::SessionDescription::descriptor):
3083         * Modules/mediastream/SessionDescription.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
3084         (WebCore):
3085         (SessionDescription):
3086         * Modules/mediastream/SessionDescription.idl: Added.
3087         * WebCore.gypi:
3088         * platform/mediastream/MediaStreamCenter.cpp:
3089         (WebCore::MediaStreamCenter::constructSdp):
3090         (WebCore):
3091         * platform/mediastream/MediaStreamCenter.h:
3092         (WebCore):
3093         (MediaStreamCenter):
3094         * platform/mediastream/SessionDescriptionDescriptor.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
3095         (WebCore):
3096         (WebCore::SessionDescriptionDescriptor::create):
3097         (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
3098         (WebCore::SessionDescriptionDescriptor::~SessionDescriptionDescriptor):
3099         (WebCore::SessionDescriptionDescriptor::addCandidate):
3100         (WebCore::SessionDescriptionDescriptor::toSdp):
3101         (WebCore::SessionDescriptionDescriptor::numberOfAddedCandidates):
3102         (WebCore::SessionDescriptionDescriptor::candidate):
3103         (WebCore::SessionDescriptionDescriptor::initialSdp):
3104         * platform/mediastream/SessionDescriptionDescriptor.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
3105         (WebCore):
3106         (SessionDescriptionDescriptor):
3107
3108 2012-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
3109
3110         Unreviewed, rolling out r110929.
3111         http://trac.webkit.org/changeset/110929
3112         https://bugs.webkit.org/show_bug.cgi?id=81306
3113
3114         breaking webkit_unit_tests (Requested by morrita on #webkit).
3115
3116         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3117         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
3118         * platform/graphics/chromium/Canvas2DLayerChromium.h:
3119         (Canvas2DLayerChromium):
3120         * platform/graphics/chromium/ContentLayerChromium.cpp:
3121         (WebCore::ContentLayerChromium::paintContentsIfDirty):
3122         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
3123         * platform/graphics/chromium/ContentLayerChromium.h:
3124         (WebCore):
3125         (ContentLayerChromium):
3126         * platform/graphics/chromium/ImageLayerChromium.cpp:
3127         (WebCore::ImageLayerChromium::paintContentsIfDirty):
3128         * platform/graphics/chromium/ImageLayerChromium.h:
3129         (WebCore):
3130         (ImageLayerChromium):
3131         * platform/graphics/chromium/LayerChromium.h:
3132         (WebCore::LayerChromium::paintContentsIfDirty):
3133         (WebCore::LayerChromium::idlePaintContentsIfDirty):
3134         * platform/graphics/chromium/TiledLayerChromium.cpp:
3135         (WebCore):
3136         (WebCore::contentToLayerTransform):
3137         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3138         (WebCore::TiledLayerChromium::prepareToUpdate):
3139         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
3140         * platform/graphics/chromium/TiledLayerChromium.h:
3141         (WebCore):
3142         (TiledLayerChromium):
3143         * platform/graphics/chromium/WebGLLayerChromium.cpp:
3144         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
3145         * platform/graphics/chromium/WebGLLayerChromium.h:
3146         (WebGLLayerChromium):
3147         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3148         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
3149         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
3150         (WebCore::CCLayerTreeHost::paintLayerContents):
3151         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3152
3153 2012-03-15  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3154
3155         REGRESSION(r106232): The resize handler is always called after loading.
3156         https://bugs.webkit.org/show_bug.cgi?id=80242
3157
3158         Reviewed by Kenneth Rohde Christiansen.
3159
3160         Ensure resize-events are not emitted when layout-size changes due to added
3161         scrollbars. For fixed layout, scrollbars are never subtracted or added, so
3162         we can compare fixedLayoutSize directly. For normal layout, use the full
3163         visible rect size which is the same as layout size plus scrollbars.
3164
3165         Test: fast/events/resize-events.html
3166
3167         * page/FrameView.cpp:
3168         (WebCore::FrameView::reset):
3169         (WebCore::FrameView::layout):
3170         (WebCore::FrameView::performPostLayoutTasks):
3171         * page/FrameView.h:
3172         (FrameView):
3173
3174 2012-03-15  Tommy Widenflycht  <tommyw@google.com>
3175
3176         MediaStream API (JSEP): Introducing MediaHints and IceOptions
3177         https://bugs.webkit.org/show_bug.cgi?id=81207
3178
3179         Reviewed by Adam Barth.
3180
3181         Patch #4 in a series of patches to change the PeerConnection from ROAP to JSEP,
3182         see bug 80589 for more information.
3183         Introducing the platform MediaHints and IceOptions helper classes.
3184
3185         Not possible to test until the entire JSEP feature is commited.
3186
3187         * GNUmakefile.list.am:
3188         * WebCore.gypi:
3189         * platform/mediastream/IceOptions.cpp: Added.
3190         (WebCore):
3191         (WebCore::IceOptions::create):
3192         * platform/mediastream/IceOptions.h: Added.
3193         (WebCore):
3194         (IceOptions):
3195         (WebCore::IceOptions::~IceOptions):
3196         (WebCore::IceOptions::useCandidates):
3197         (WebCore::IceOptions::IceOptions):
3198         * platform/mediastream/MediaHints.cpp: Added.
3199         (WebCore):
3200         (WebCore::MediaHints::create):
3201         (WebCore::MediaHints::audio):
3202         (WebCore::MediaHints::video):
3203         * platform/mediastream/MediaHints.h: Added.
3204         (WebCore):
3205         (MediaHints):
3206         (WebCore::MediaHints::~MediaHints):
3207         (WebCore::MediaHints::MediaHints):
3208
3209 2012-03-15  Shinya Kawanaka  <shinyak@chromium.org>
3210
3211         [Crash] Adding <content> into a ShadowRoot causes crash.
3212         https://bugs.webkit.org/show_bug.cgi?id=80020
3213
3214         Reviewed by Hajime Morita.
3215
3216         The problem is <content> tries to select host children though it is not prepared.
3217         Since populating host children for insertion points is performed just before
3218         attaching a shadow tree, we should recalculate whole shadow tree if <content> is
3219         appended as a child.
3220
3221         However, element->appendChild() does not know the element is in a shadow tree or not.
3222         We have to ensure reattaching whole shadow tree here.
3223
3224         So this patch adds some phases to HTMLContentSelector so that we can check node
3225         distribution algorihm is begin processed or not. If not we cannot select anything,
3226         but we have to enable a flag to reattach whole shadow tree.
3227
3228         Tests: fast/dom/shadow/shadow-content-crash-expected.html
3229                fast/dom/shadow/shadow-content-crash.html
3230
3231         * dom/ShadowTree.cpp:
3232         (WebCore::ShadowTree::attach):
3233         (WebCore::ShadowTree::insertionPointFor):
3234         * dom/ShadowTree.h:
3235         (WebCore):
3236         (ShadowTree):
3237         (WebCore::ShadowTree::selector):
3238         * html/shadow/HTMLContentSelector.cpp:
3239         (WebCore::HTMLContentSelector::HTMLContentSelector):
3240         (WebCore::HTMLContentSelector::select):
3241         (WebCore::HTMLContentSelector::willSelect):
3242         (WebCore):
3243         (WebCore::HTMLContentSelector::didSelect):
3244         (WebCore::HTMLContentSelector::populateIfNecessary):
3245         * html/shadow/HTMLContentSelector.h:
3246         (HTMLContentSelector):
3247         (WebCore::HTMLContentSelector::isSelecting):
3248         (WebCore):
3249         (WebCore::HTMLContentSelector::hasPopulated):
3250         * html/shadow/InsertionPoint.cpp:
3251         (WebCore::InsertionPoint::distributeHostChildren):
3252         (WebCore::InsertionPoint::clearDistribution):
3253
3254 2012-03-15  Mike Lawther  <mikelawther@chromium.org>
3255
3256         CSS3 calc: mixed percent/absolute expressions for gradients
3257         https://bugs.webkit.org/show_bug.cgi?id=81182
3258
3259         Reviewed by Ojan Vafai.
3260
3261         * css/CSSGradientValue.cpp:
3262         (WebCore::CSSGradientValue::addStops):
3263         (WebCore::positionFromValue):
3264
3265 2012-03-15  Leo Yang  <leo.yang@torchmobile.com.cn>
3266
3267         [BlackBerry] Sync up MIMETypeRegistry.cpp
3268         https://bugs.webkit.org/show_bug.cgi?id=81191
3269
3270         Reviewed by Rob Buis.
3271
3272         Add png and jpeg to supportedImageMIMETypesForEncoding for BlackBerry.
3273
3274         * platform/MIMETypeRegistry.cpp:
3275         (WebCore::initializeSupportedImageMIMETypesForEncoding):
3276
3277 2012-03-15  Dana Jansens  <danakj@chromium.org>
3278
3279         [chromium] Decide occlusion in paint culling with CCOcclusionTracker
3280         https://bugs.webkit.org/show_bug.cgi?id=81181
3281
3282         Reviewed by Adrienne Walker.
3283
3284         Plumb a CCOcclusionTracker* around instead of a bare Region, so that it
3285         can make a more informed decision if a tile is occluded or not during
3286         paint.
3287
3288         Covered by existing tests.
3289
3290         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3291         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
3292         * platform/graphics/chromium/Canvas2DLayerChromium.h:
3293         (Canvas2DLayerChromium):
3294         * platform/graphics/chromium/ContentLayerChromium.cpp:
3295         (WebCore::ContentLayerChromium::paintContentsIfDirty):
3296         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
3297         * platform/graphics/chromium/ContentLayerChromium.h:
3298         (WebCore):
3299         (ContentLayerChromium):
3300         * platform/graphics/chromium/ImageLayerChromium.cpp:
3301         (WebCore::ImageLayerChromium::paintContentsIfDirty):
3302         * platform/graphics/chromium/ImageLayerChromium.h:
3303         (WebCore):
3304         (ImageLayerChromium):
3305         * platform/graphics/chromium/LayerChromium.h:
3306         (WebCore::LayerChromium::paintContentsIfDirty):
3307         (WebCore::LayerChromium::idlePaintContentsIfDirty):
3308         * platform/graphics/chromium/TiledLayerChromium.cpp:
3309         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
3310         (WebCore::TiledLayerChromium::prepareToUpdate):
3311         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
3312         * platform/graphics/chromium/TiledLayerChromium.h:
3313         (TiledLayerChromium):
3314         * platform/graphics/chromium/WebGLLayerChromium.cpp:
3315         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
3316         * platform/graphics/chromium/WebGLLayerChromium.h:
3317         (WebGLLayerChromium):
3318         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3319         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
3320         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
3321         (WebCore::CCLayerTreeHost::paintLayerContents):
3322         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3323
3324 2012-03-15  Yoshifumi Inoue  <yosin@chromium.org>
3325
3326         [Forms] The "meter" element should not be a form-associated element.
3327         https://bugs.webkit.org/show_bug.cgi?id=80380
3328
3329         Reviewed by Kent Tamura.
3330
3331         This patch changes base class of HTMLMeterElement to LabelableElement from
3332         HTMLFormControlElement for saving memory space and iteration time of
3333         extra "meter" elements in HTMLFormElement::m_formAssociatedElements
3334         and matching the HTML5 specification for ease of maintenance.
3335
3336         This patch renames isLabelable method to supportLabels and makes isLabelable
3337         as predicate of an instance of LabelableElement or not.
3338
3339         Changes of TextIterator is lead by usage of isFormControlElement. This
3340         changes will be replaced with more meaningful predicate as part of
3341         https://bugs.webkit.org/show_bug.cgi?id=80381
3342
3343         No new tests. Update existing tests to cover this change.
3344
3345         * editing/TextIterator.cpp:
3346         (WebCore::TextIterator::advance): Check HTMLMeterElement in addition to isFormControlElement. This change is for text dump in LayoutTests implemented by document.innerText attribute.
3347         * html/HTMLButton.h:
3348         (WebCore::HTMLButtonElement::supportLabels): Renamed from isLabelable
3349         * html/HTMLElement.h:
3350         (WebCore::HTMLElement::isLabelable): Added. A predicate for an instance of LabelableElement.
3351         * html/HTMLInputElement.h:
3352         (WebCore::HTMLInputElement::supportLabels): Renamed from isLabelable
3353         * html/HTMLKeygenElement.h:
3354         (WebCore::HTMLKeygenElement::supportLabels): Renamed from isLabelable
3355          * html/HTMLLabelElement.cpp:
3356         (WebCore::nodeAsLabelableElement): Changed to return LabelableElement instead of HTMLFormControlElement.
3357         (WebCore::HTMLLabelElement::control): Changed to return LabelableElement instead of HTMLFormControlElement.
3358         * html/HTMLLabelElement.h:
3359         (HTMLLabelElement):
3360         * html/HTMLMeterElement.cpp:
3361         (WebCore::HTMLMeterElement::HTMLMeterElement): Changed base class to LabelableElement.
3362         (WebCore::HTMLMeterElement::create): Remove form parameter.
3363         (WebCore::HTMLMeterElement::formControlType): Remove implementation of virtual method declared in HTMLFormControlElement.
3364         (WebCore::HTMLMeterElement::parseAttribute): Replace HTMLFormControlElement to LabelableElement
3365         (WebCore::HTMLMeterElement::attach): Replace HTMLFormControlElement to LabelableElement
3366         * html/HTMLMeterElement.idl: Remove the "form" attribute which isn't listed in the HTML5 specification.
3367         * html/HTMLMeterElement.h:
3368         (HTMLMeterElement):
3369         (WebCore::HTMLMeterElement::supportLabels): Renamed from isLabelable
3370         * html/HTMLOutputElement.h:
3371         (WebCore::HTMLOutputElement::supportLabels): Renamed from isLabelable
3372         * html/HTMLProgressElement.h:
3373         (WebCore::HTMLProgressElement::supportLabels): Renamed from isLabelable
3374          * html/HTMLSelectElement.h:
3375         (WebCore::HTMLSelectElement::supportLabels): Renamed from isLabelable
3376         * html/HTMLTextAreaElement.h:
3377         (WebCore::HTMLTextAreaElement::supportLabels): Renamed from isLabelable
3378         * html/HiddenInputType.h:
3379         (WebCore::HiddenInputType::supportLabels): Renamed from isLabelable
3380         * html/InputType.h:
3381         (WebCore::InputType::supportLabels): Renamed from isLabelable
3382         * html/HTMLTagNames.in: Remove "constructorNeedsFormElement" for not passing "form" parameter in HTMLElementFactory.
3383         * html/LabelableElement.cpp:
3384         (WebCore::LabelableElement::labels): Replace isLabelable to supportLabels
3385         * html/LabelableElement.h:
3386         (LabelableElement):
3387
3388 2012-03-15  Adam Klein  <adamk@chromium.org>
3389
3390         REGRESSION(r103452): 100% CPU usage and 5s pause after clicking on a link in Yahoo Mail
3391         https://bugs.webkit.org/show_bug.cgi?id=81141
3392
3393         Reviewed by Ojan Vafai.
3394
3395         Revert the behavior change from r103452: don't fire DOMSubtreeModified
3396         events when an attribute value merely changes. Still fire that event
3397         when an attribute is added or removed from an element.
3398
3399         Though this contradicts the DOM3 spec, it matches legacy WebKit behavior,
3400         and given that Mutation Events are deprecated, it seems unwise to make
3401         any additions to WebKit's implementation of them.
3402
3403         Test: fast/dom/subtree-modified-attributes.html
3404
3405         * dom/Element.cpp:
3406         (WebCore::Element::didAddAttribute): Renamed from didModifyAttribute.
3407         (WebCore::Element::didModifyAttribute): Remove the call to dispatchSubtreeModifiedEvent.
3408         (WebCore):
3409         * dom/Element.h:
3410         (Element):
3411         * dom/ElementAttributeData.cpp:
3412         (WebCore::ElementAttributeData::addAttribute): Call didAddAttribute instead of didModifyAttribute.
3413
3414 2012-03-15  Dana Jansens  <danakj@chromium.org>
3415
3416         [chromium] Move overdraw metrics into a templated class for both paint and draw metrics.
3417         https://bugs.webkit.org/show_bug.cgi?id=81156
3418
3419         Reviewed by Adrienne Walker.
3420
3421         Creates CCOverdrawMetrics which can be called to inform it about
3422         draws/paints. At the end of the frame, the CCOverdrawMetrics
3423         recordMetrics() method will put its data into histograms, a
3424         TRACE_COUNTER for culling information, and a TRACE_EVENT for details
3425         about the number of opaque/translucent pixels.
3426
3427         Covered by existing tests.
3428
3429         * WebCore.gypi:
3430         * platform/chromium/TraceEvent.h:
3431         (TraceEvent):
3432         (WebCore::TraceEvent::addTraceEvent):
3433         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3434         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3435         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp: Added.
3436         (WebCore):
3437         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
3438         (WebCore::wedgeProduct):
3439         (WebCore::quadArea):
3440         (WebCore::CCOverdrawMetrics::didDraw):
3441         (WebCore::CCOverdrawMetrics::recordMetrics):