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