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