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