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