[WebSocket]Browser must fail connection if Sec-WebSocket-Protocol mismatched.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-28  Li Yin  <li.yin@intel.com>
2
3         [WebSocket]Browser must fail connection if Sec-WebSocket-Protocol mismatched.
4         https://bugs.webkit.org/show_bug.cgi?id=82307
5
6         Reviewed by Kent Tamura.
7
8         From RFC6455: http://tools.ietf.org/html/rfc6455#section-4.1
9         If the WebSocket openhanding respond included the mismatched
10         Sec-WebSocket-Protocol header field, the client must fail the WebSocket Connection.
11
12         Test: http/tests/websocket/tests/hybi/handshake-fail-by-mismatch-protocol-header.html
13
14         * Modules/websockets/WebSocketHandshake.cpp:
15         (WebCore::WebSocketHandshake::checkResponseHeaders):
16
17 2012-03-28  Jessie Berlin  <jberlin@apple.com>
18
19         Fix Windows build after r112482.
20
21         * platform/network/cf/FormDataStreamCFNet.cpp:
22         (WebCore::formOpen):
23         Do not attempt to use an OS X error code on Windows. Use the POSIX errno instead.
24
25 2012-03-28  Alexandru Chiculita  <achicu@adobe.com>
26
27         [CSS Filters] Avoid rebuilding FEFilters when RenderLayer is destroyed
28         https://bugs.webkit.org/show_bug.cgi?id=82524
29
30         Reviewed by Dean Jackson.
31
32         RenderLayer::~RenderLayer is calling clearBacking which updated the m_filter with new filters,
33         even though they were to be deleted a couple of lines below. This change avoids updating the filters,
34         if we are in the "destroyed" state.
35
36         No new tests. This change has no visible results to HTML or JavaScript, so it cannot be tested without a debugger.
37
38         * rendering/RenderLayer.cpp:
39         (WebCore::RenderLayer::~RenderLayer):
40         (WebCore::RenderLayer::clearBacking):
41         * rendering/RenderLayer.h:
42         (RenderLayer):
43
44 2012-03-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
45
46         Remove ScriptExecutionContext from NavigatorBattery.idl
47         https://bugs.webkit.org/show_bug.cgi?id=82556
48
49         Reviewed by Adam Barth.
50
51         As Bug 73528 comment #71, NavigatorBattery.idl doesn't need to have ScriptExecutionContext.
52         Document can be used instead of ScriptExecutionContext.
53
54         Tests: batterystatus/add-listener-from-callback.html
55                batterystatus/basic-all-types-of-events.html
56                batterystatus/basic-operation.html
57                batterystatus/event-after-navigation.html
58                batterystatus/multiple-frames.html
59                batterystatus/updates.html
60                batterystatus/window-property.html
61
62         * Modules/battery/BatteryManager.cpp:
63         (WebCore::BatteryManager::create):
64         (WebCore::BatteryManager::BatteryManager):
65         * Modules/battery/BatteryManager.h:
66         (BatteryManager):
67         * Modules/battery/NavigatorBattery.cpp:
68         (WebCore::NavigatorBattery::webkitBattery):
69         * Modules/battery/NavigatorBattery.h:
70         (NavigatorBattery):
71         * Modules/battery/NavigatorBattery.idl:
72
73 2012-03-28  Jason Liu  <jason.liu@torchmobile.com.cn>
74
75         [BlackBerry]Missing cookies from HTTP response header in Network tab of Web Inspector.
76         https://bugs.webkit.org/show_bug.cgi?id=82041
77
78         We shouldn't overwrite cookies of response if there are more than one
79         header of Set-Cookie.
80
81         Reviewed by Rob Buis.
82
83         Test: http/tests/cookies/resources/setArraycookies.php
84
85         * platform/network/blackberry/NetworkJob.cpp:
86         (WebCore::NetworkJob::handleNotifyHeaderReceived):
87
88 2012-03-28  Noel Gordon  <noel.gordon@gmail.com>
89
90         JPEGImageDecoder: Set frame alpha state before marking a frame complete
91         https://bugs.webkit.org/show_bug.cgi?id=82428
92
93         Reviewed by Kenneth Russell.
94
95         r109779 changed JPEG alpha channel handling by marking a JPEG image frame
96         as having no alpha _after_ setting the image status frame-complete, which
97         prevents the application of image color profiles in some WebGL cases.
98
99         No new tests. The application of the color profile is not guaranteed for
100         images used as textures in WebGL. Refer to http://wkb.ug/76498.
101
102         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
103         (WebCore::JPEGImageDecoder::jpegComplete): Set the image frame alpha state
104         before marking the image frame status as frame-complete.
105
106 2012-03-28  Emil A Eklund  <eae@chromium.org>
107
108         Fix rounding in RenderInline::paintOutlineForLine
109         https://bugs.webkit.org/show_bug.cgi?id=82540
110
111         Reviewed by Eric Seidel.
112
113         No new tests, no change in functionality.
114
115         * rendering/RenderInline.cpp:
116         (WebCore::RenderInline::paintOutlineForLine):
117         Change paintOutlineForLine to pixel snap the left and right edges of the
118         lines instead of adding the offset to an already rounded number.
119
120 2012-03-28  David Grogan  <dgrogan@chromium.org>
121
122         IndexedDB: don't expose IDBDatabaseError to script
123         https://bugs.webkit.org/show_bug.cgi?id=82280
124
125         It's not used anywhere and firefox doesn't expose it.
126
127         Reviewed by Tony Chang.
128
129         Test: storage/indexeddb/removed.html
130
131         * CMakeLists.txt:
132         * DerivedSources.cpp:
133         * DerivedSources.make:
134         * DerivedSources.pri:
135         * GNUmakefile.list.am:
136         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
137         * Modules/indexeddb/IDBDatabaseError.idl: Removed.
138         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
139         * WebCore.gypi:
140         * WebCore.vcproj/WebCore.vcproj:
141         * WebCore.xcodeproj/project.pbxproj:
142
143 2012-03-28  Kenichi Ishibashi  <bashi@chromium.org>
144
145         Respects font fallback list during webfonts are loading
146         https://bugs.webkit.org/show_bug.cgi?id=76684
147
148         Reviewed by Dimitri Glazkov.
149
150         For layout, use the rest of the fallback list while webfonts are loading.
151         If the webfont is loading, it will be given an invalid Unicode Range so that
152         font selection mechansim doesn't use the webfont for layout.
153
154         Test: http/tests/webfont/fallback-font-while-loading.html
155
156         * css/CSSSegmentedFontFace.cpp:
157         (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading): Added.
158         (WebCore):
159         (WebCore::CSSSegmentedFontFace::getFontData):
160
161 2012-03-28  Mark Rowe  <mrowe@apple.com>
162
163         Update Localizable.strings.
164
165         * English.lproj/Localizable.strings:
166
167 2012-03-28  Victor Carbune  <vcarbune@adobe.com>
168
169         Removed particular rendering for the volume slider and used
170         css positioning instead (simpler and less prone to errors when
171         changes occur).
172         https://bugs.webkit.org/show_bug.cgi?id=82150
173
174         Reviewed by Eric Carlson.
175
176         Test: media/video-controls-rendering-toggle-display-none.html
177
178         * css/mediaControls.css: Updated css to correctly render controls.
179         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
180         * css/mediaControlsChromium.css: Updated css to correctly render controls.
181         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel): 
182         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
183         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
184         * html/shadow/MediaControlElements.cpp: Removed particular renderer.
185         (WebCore):
186         * html/shadow/MediaControlElements.h: Removed particular renderer.
187         (MediaControlVolumeSliderContainerElement):
188         * html/shadow/MediaControlRootElementChromium.cpp:
189         (WebCore::MediaControlRootElementChromium::create): Added an anonymous div container
190         for the mute button and volume slider (to be displayed on top of each other)
191
192 2012-03-28  Sheriff Bot  <webkit.review.bot@gmail.com>
193
194         Unreviewed, rolling out r110064.
195         http://trac.webkit.org/changeset/110064
196         https://bugs.webkit.org/show_bug.cgi?id=82537
197
198         The patch leaks the DOM when audio elements are used
199         (Requested by sundiamonde on #webkit).
200
201         * bindings/js/JSNodeCustom.cpp:
202         (WebCore::isReachableFromDOM):
203
204 2012-03-28  Alexey Proskuryakov  <ap@apple.com>
205
206         [Win] Some Blob tests crash in CFNetwork in advanceCurrentStream(FormStreamFields*)
207         https://bugs.webkit.org/show_bug.cgi?id=82386
208         <rdar://problem/11121501>
209
210         Reviewed by Brady Eidson.
211
212         Covered by existing tests.
213
214         * platform/network/cf/FormDataStreamCFNet.cpp:
215         * platform/network/cf/FormDataStreamCFNet.h:
216         Moved low level implementation from FormDataStreamMac, and exposed an additional function
217         to implement Foundation-based API on top of this.
218
219         * platform/network/mac/FormDataStreamMac.h:
220         * platform/network/mac/FormDataStreamMac.mm:
221         Rely on toll-free bridging and implementation details to make this work without duplicating
222         code.
223         Note that httpBodyFromStream is confusing - I don't see how it can work when sending serialized
224         requests across process boundary. We probably only get away with this because we don't attempt
225         to send requests to UI process once they already have streams associated with them.
226
227         * WebCore.vcproj/WebCore.vcproj: Added missing platform/cf files.
228
229         * platform/cf/FileSystemCF.cpp: Fixed include style.
230
231         * platform/win/FileSystemWin.cpp: (WebCore::fileSystemRepresentation): Ifdef out a broken
232         implementation.
233
234 2012-03-28  Adrienne Walker  <enne@google.com>
235
236         [chromium] Fix tiled layer assert for huge layers
237         https://bugs.webkit.org/show_bug.cgi?id=82486
238
239         Reviewed by James Robinson.
240
241         Test: TiledLayerChromiumTest.hugeLayerUpdateCrash
242
243         TilingData::numTiles() is calculated as the product of two ints and so
244         can potentially overflow, causing numTiles() to be incorrect. To avoid
245         calling code accidentally falling into this trap, remove this function
246         and all code that uses tile index from TilingData.  This requires
247         fixing up a bunch of callers of TilingData and CCLayerTilingData.
248
249         Additionally, TilingData::numTiles() has long been a confusing
250         function name in some contexts, so rename to bool hasEmptyBounds().
251
252         Also, remove TilingData::intersectDrawQuad because there are no
253         clients of that function.
254
255         * platform/graphics/chromium/TiledLayerChromium.cpp:
256         (WebCore::TiledLayerChromium::drawsContent):
257         (WebCore::TiledLayerChromium::reserveTextures):
258         (WebCore::TiledLayerChromium::prepareToUpdate):
259         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
260         (WebCore::TiledLayerChromium::needsIdlePaint):
261         (WebCore::TiledLayerChromium::idlePaintRect):
262         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
263         (WebCore::CCLayerTilingData::tileRect):
264         * platform/graphics/chromium/cc/CCLayerTilingData.h:
265         (WebCore::CCLayerTilingData::hasEmptyBounds):
266         (WebCore::CCLayerTilingData::tileBounds):
267         (WebCore::CCLayerTilingData::isEmpty):
268         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
269         (WebCore::CCTiledLayerImpl::bindContentsTexture):
270         (WebCore::CCTiledLayerImpl::appendQuads):
271         * platform/graphics/gpu/Texture.cpp:
272         (WebCore::Texture::create):
273         (WebCore::Texture::updateSubRect):
274         * platform/graphics/gpu/TilingData.cpp:
275         (WebCore::TilingData::tileBounds):
276         (WebCore::TilingData::tileBoundsWithBorder):
277         (WebCore::TilingData::tileBoundsNormalized):
278         * platform/graphics/gpu/TilingData.h:
279         (WebCore::TilingData::hasEmptyBounds):
280         (TilingData):
281         (WebCore::TilingData::assertTile):
282
283 2012-03-28  Emil A Eklund  <eae@chromium.org>
284
285         Change FilterOperations::getOutsets to use integers
286         https://bugs.webkit.org/show_bug.cgi?id=82535
287
288         Reviewed by Eric Seidel.
289
290         FilterOperations::getOutsets calculates the outsets using integers and
291         the values are guranteed to be set to full-pixel values. By changing the
292         function signature we communicate this fact better and avoid unnecessary
293         type conversions in some cases.
294
295         No new tests.
296
297         * platform/graphics/filters/FilterOperations.cpp:
298         (WebCore::FilterOperations::getOutsets):
299         * platform/graphics/filters/FilterOperations.h:
300         (FilterOperations):
301         * rendering/RenderBox.cpp:
302         (WebCore::RenderBox::computeRectForRepaint):
303         (WebCore::RenderBox::addVisualEffectOverflow):
304         * rendering/RenderInline.cpp:
305         (WebCore::RenderInline::computeRectForRepaint):
306         * rendering/style/RenderStyle.h:
307
308 2012-03-28  Nate Chapin  <japhet@chromium.org>
309
310         Remove dispatchDidLoadMainResource callback, since no
311         port implements it.
312         https://bugs.webkit.org/show_bug.cgi?id=82539
313
314         Reviewed by Alexey Proskuryakov.
315
316         No new tests, just deleting dead code.
317
318         * loader/EmptyClients.h:
319         (EmptyFrameLoaderClient):
320         * loader/FrameLoader.cpp:
321         (WebCore::FrameLoader::finishedLoading):
322         (WebCore::FrameLoader::mainReceivedCompleteError):
323         * loader/FrameLoaderClient.h:
324         (FrameLoaderClient):
325         * loader/MainResourceLoader.cpp:
326         (WebCore::MainResourceLoader::receivedError):
327         (WebCore::MainResourceLoader::didCancel):
328
329 2012-03-28  Enrica Casucci  <enrica@apple.com>
330
331         REGRESSION: editing/pasteboard/dataTransfer-setData-getData.html fails on Mac platforms.
332         https://bugs.webkit.org/show_bug.cgi?id=82497
333         <rdar://problem/11140334>
334
335         Reviewed by Brady Eidson.
336         
337         The revision causing this regression fixed the way data is written to the pasteboard for NSURLPboardType.
338         This change fixes the way data is read from the pasteboard for the same pasteboard type.
339
340         No new tests. Fixes the existing one that fails.
341
342         * platform/mac/ClipboardMac.mm:
343         (WebCore::absoluteURLsFromPasteboard):
344         * platform/mac/PlatformPasteboardMac.mm:
345         (WebCore::PlatformPasteboard::stringForType):
346
347 2012-03-28  Joe Thomas  <joethomas@motorola.com>
348
349         SL bot is hitting SHOULD NEVER BE REACHED in WebCore::valueForLength() on many tests
350         https://bugs.webkit.org/show_bug.cgi?id=82390
351
352         Reviewed by Simon Fraser.
353
354         This is an attempt to fix the MAC SL/Lion Bot issue as this issue is not reproducible locally.
355         The assertion happened when length type is Undefined in valueForLength() function but the assertion for Undefined length type
356         in RenderBox::computeLogicalWidthInRegionUsing which calls the above said function did not get hit.
357
358         This patch passes Length structure as const reference to Length calculation functions which avoids the call to the copy-constructor.
359         And it ensures that the Length structure is not getting modified during copy-construction. 
360
361         * css/LengthFunctions.cpp:
362         (WebCore::minimumValueForLength):
363         (WebCore::valueForLength):
364         (WebCore::floatValueForLength):
365         * css/LengthFunctions.h:
366         (WebCore):
367
368 2012-03-28  Gavin Barraclough  <barraclough@apple.com>
369
370         Yarr: if we're not using the output array, don't populate it!
371         https://bugs.webkit.org/show_bug.cgi?id=82519
372
373         Reviewed by Sam Weinig.
374
375         * ForwardingHeaders/runtime/MatchResult.h: Added.
376         * ForwardingHeaders/yarr/YarrJIT.h: Added.
377             - Added forwarding headers.
378
379 2012-03-23  David Hyatt  <hyatt@apple.com>
380
381         https://bugs.webkit.org/show_bug.cgi?id=81685
382         
383         [New Multicolumn] Add RenderMultiColumnFlowThread to hold the flow thread contents of a multi-column block.
384         It derives from RenderFlowThread.
385         
386         Refactor RenderFlowThread to split out the stuff related to explicit naming into a subclass, RenderNamedFlowThread.
387         This allows RenderFlowThread to be a simple base class that involves maintaining the regions themselves.
388     
389         Reviewed by Julien Chaffraix.
390
391         * CMakeLists.txt:
392         * GNUmakefile.list.am:
393         * Target.pri:
394         * WebCore.gypi:
395         * WebCore.vcproj/WebCore.vcproj:
396         * WebCore.xcodeproj/project.pbxproj:
397         * dom/Document.cpp:
398         * dom/NodeRenderingContext.cpp:
399         * dom/NodeRenderingContext.h:
400         (WebCore):
401         (WebCore::NodeRenderingContext::parentFlowRenderer):
402         * dom/WebKitNamedFlow.cpp:
403         (WebCore::WebKitNamedFlow::WebKitNamedFlow):
404         * dom/WebKitNamedFlow.h:
405         (WebCore):
406         (WebCore::WebKitNamedFlow::create):
407         (WebKitNamedFlow):
408         * rendering/RenderBlock.cpp:
409         (WebCore::RenderBlock::collapseAnonymousBoxChild):
410         * rendering/RenderFlowThread.cpp:
411         (WebCore::RenderFlowThread::RenderFlowThread):
412         (WebCore):
413         (WebCore::RenderFlowThread::addRegionToThread):
414         (WebCore::RenderFlowThread::removeRegionFromThread):
415         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
416         * rendering/RenderFlowThread.h:
417         (WebCore):
418         * rendering/RenderMultiColumnFlowThread.cpp: Added.
419         (WebCore):
420         (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
421         (WebCore::RenderMultiColumnFlowThread::renderName):
422         * rendering/RenderMultiColumnFlowThread.h: Added.
423         (WebCore):
424         (RenderMultiColumnFlowThread):
425         * rendering/RenderNamedFlowThread.cpp: Added.
426         (WebCore):
427         (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
428         (WebCore::RenderNamedFlowThread::renderName):
429         (WebCore::RenderNamedFlowThread::nextRendererForNode):
430         (WebCore::RenderNamedFlowThread::previousRendererForNode):
431         (WebCore::RenderNamedFlowThread::addFlowChild):
432         (WebCore::RenderNamedFlowThread::removeFlowChild):
433         (WebCore::RenderNamedFlowThread::dependsOn):
434         (WebCore::compareRenderRegions):
435         (WebCore::RenderNamedFlowThread::addRegionToThread):
436         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
437         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
438         (WebCore::RenderNamedFlowThread::addDependencyOnFlowThread):
439         (WebCore::RenderNamedFlowThread::removeDependencyOnFlowThread):
440         (WebCore::RenderNamedFlowThread::pushDependencies):
441         (WebCore::RenderNamedFlowThread::ensureNamedFlow):
442         * rendering/RenderNamedFlowThread.h: Added.
443         (WebCore):
444         (RenderNamedFlowThread):
445         (WebCore::RenderNamedFlowThread::name):
446         (WebCore::RenderNamedFlowThread::hasChildren):
447         (WebCore::RenderNamedFlowThread::hasChild):
448         (WebCore::RenderNamedFlowThread::isRenderNamedFlowThread):
449         (WebCore::toRenderNamedFlowThread):
450         * rendering/RenderObject.cpp:
451         (WebCore::RenderObject::willBeDestroyed):
452         * rendering/RenderObject.h:
453         (WebCore::RenderObject::isRenderNamedFlowThread):
454         * rendering/RenderObjectChildList.cpp:
455         (WebCore::renderNamedFlowThreadContainer):
456         (WebCore::RenderObjectChildList::removeChildNode):
457         (WebCore::RenderObjectChildList::appendChildNode):
458         (WebCore::RenderObjectChildList::insertChildNode):
459         * rendering/RenderRegion.cpp:
460         (WebCore::RenderRegion::RenderRegion):
461         (WebCore::RenderRegion::attachRegion):
462         * rendering/RenderRegion.h:
463         (WebCore):
464         (WebCore::RenderRegion::parentNamedFlowThread):
465         (RenderRegion):
466         * rendering/RenderTreeAsText.cpp:
467         (WebCore::writeRenderNamedFlowThreads):
468         (WebCore::writeLayers):
469         * rendering/RenderView.cpp:
470         (WebCore::RenderView::RenderView):
471         (WebCore::RenderView::layout):
472         (WebCore::RenderView::styleDidChange):
473         (WebCore::RenderView::ensureRenderFlowThreadWithName):
474         (WebCore::RenderView::layoutRenderNamedFlowThreads):
475         * rendering/RenderView.h:
476         (WebCore):
477         (RenderView):
478         (WebCore::RenderView::hasRenderNamedFlowThreads):
479         (WebCore::RenderView::isRenderNamedFlowThreadOrderDirty):
480         (WebCore::RenderView::setIsRenderNamedFlowThreadOrderDirty):
481         (WebCore::RenderView::renderNamedFlowThreadList):
482
483 2012-03-28  Emil A Eklund  <eae@chromium.org>
484
485         Remove unnecessary rounding in RenderLayerBacking
486         https://bugs.webkit.org/show_bug.cgi?id=82529
487
488         Reviewed by Eric Seidel.
489
490         Remove rounding that is no longer required now that borderBoxRect returns
491         an IntRect.
492         
493         No new tests.
494
495         * rendering/RenderLayerBacking.cpp:
496         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
497         (WebCore::RenderLayerBacking::startAnimation):
498         (WebCore::RenderLayerBacking::startTransition):
499
500 2012-03-28  Sheriff Bot  <webkit.review.bot@gmail.com>
501
502         Unreviewed, rolling out r112432.
503         http://trac.webkit.org/changeset/112432
504         https://bugs.webkit.org/show_bug.cgi?id=82536
505
506         Causes ccs3 layout test asserts (Requested by enne on
507         #webkit).
508
509         * platform/graphics/chromium/TiledLayerChromium.cpp:
510         (WebCore::TiledLayerChromium::drawsContent):
511         (WebCore::TiledLayerChromium::reserveTextures):
512         (WebCore::TiledLayerChromium::prepareToUpdate):
513         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
514         (WebCore::TiledLayerChromium::needsIdlePaint):
515         (WebCore::TiledLayerChromium::idlePaintRect):
516         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
517         (WebCore::CCLayerTilingData::tileRect):
518         * platform/graphics/chromium/cc/CCLayerTilingData.h:
519         (WebCore::CCLayerTilingData::numTiles):
520         (WebCore::CCLayerTilingData::tileBounds):
521         (WebCore::CCLayerTilingData::isEmpty):
522         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
523         (WebCore::CCTiledLayerImpl::bindContentsTexture):
524         (WebCore::CCTiledLayerImpl::appendQuads):
525         * platform/graphics/filters/FECustomFilter.cpp:
526         (WebCore::FECustomFilter::platformApplySoftware):
527         * platform/graphics/gpu/Texture.cpp:
528         (WebCore::Texture::create):
529         (WebCore::Texture::updateSubRect):
530         * platform/graphics/gpu/TilingData.cpp:
531         (WebCore::TilingData::tileBounds):
532         (WebCore::TilingData::tileBoundsWithBorder):
533         (WebCore::TilingData::tileBoundsNormalized):
534         (WebCore::TilingData::intersectDrawQuad):
535         (WebCore):
536         * platform/graphics/gpu/TilingData.h:
537         (WebCore::TilingData::numTiles):
538         (WebCore::TilingData::tileIndex):
539         (WebCore::TilingData::tileXIndex):
540         (WebCore::TilingData::tileYIndex):
541         (TilingData):
542         (WebCore::TilingData::assertTile):
543
544 2012-03-27  Daniel Cheng  <dcheng@chromium.org>
545
546         [chromium] Merge ChromiumDataObject and DataTransferItemListChromium.
547         https://bugs.webkit.org/show_bug.cgi?id=82407
548
549         Reviewed by Tony Chang.
550
551         Since ChromiumDataObject is just a very thin wrapper for DataTransferItemListChromium now,
552         combine the two and remove a layer of indirection.
553
554         No functionality change, should be covered by existing tests.
555
556         * WebCore.gypi:
557         * platform/chromium/ChromiumDataObject.cpp: Replacing DataTransferItemListChromium.
558         (WebCore::ChromiumDataObject::createFromPasteboard):
559         (WebCore::ChromiumDataObject::create):
560         (WebCore::ChromiumDataObject::length):
561         (WebCore):
562         (WebCore::ChromiumDataObject::item):
563         (WebCore::ChromiumDataObject::deleteItem):
564         (WebCore::ChromiumDataObject::clearAll):
565         (WebCore::ChromiumDataObject::add):
566         (WebCore::ChromiumDataObject::clearData):
567         (WebCore::ChromiumDataObject::clearAllExceptFiles):
568         (WebCore::ChromiumDataObject::types):
569         (WebCore::ChromiumDataObject::getData):
570         (WebCore::ChromiumDataObject::setData):
571         (WebCore::ChromiumDataObject::urlAndTitle):
572         (WebCore::ChromiumDataObject::setURLAndTitle):
573         (WebCore::ChromiumDataObject::htmlAndBaseURL):
574         (WebCore::ChromiumDataObject::setHTMLAndBaseURL):
575         (WebCore::ChromiumDataObject::containsFilenames):
576         (WebCore::ChromiumDataObject::filenames):
577         (WebCore::ChromiumDataObject::addFilename):
578         (WebCore::ChromiumDataObject::addSharedBuffer):
579         (WebCore::ChromiumDataObject::ChromiumDataObject):
580         (WebCore::ChromiumDataObject::findStringItem):
581         (WebCore::ChromiumDataObject::internalAddStringItem):
582         (WebCore::ChromiumDataObject::internalAddFileItem):
583         * platform/chromium/ChromiumDataObject.h:
584         (WebCore):
585         (ChromiumDataObject):
586         * platform/chromium/ChromiumDataObjectItem.cpp: Renamed from Source/WebCore/platform/chromium/DataTransferItemChromium.cpp.
587         (WebCore):
588         (WebCore::ChromiumDataObjectItem::createFromString):
589         (WebCore::ChromiumDataObjectItem::createFromFile):
590         (WebCore::ChromiumDataObjectItem::createFromURL):
591         (WebCore::ChromiumDataObjectItem::createFromHTML):
592         (WebCore::ChromiumDataObjectItem::createFromSharedBuffer):
593         (WebCore::ChromiumDataObjectItem::createFromPasteboard):
594         (WebCore::ChromiumDataObjectItem::ChromiumDataObjectItem):
595         (WebCore::ChromiumDataObjectItem::getAsString):
596         (WebCore::ChromiumDataObjectItem::getAsFile):
597         (WebCore::ChromiumDataObjectItem::internalGetAsString):
598         (WebCore::ChromiumDataObjectItem::isFilename):
599         * platform/chromium/ChromiumDataObjectItem.h: Renamed from Source/WebCore/platform/chromium/DataTransferItemChromium.h.
600         (WebCore):
601         (ChromiumDataObjectItem):
602         (WebCore::ChromiumDataObjectItem::kind):
603         (WebCore::ChromiumDataObjectItem::type):
604         (WebCore::ChromiumDataObjectItem::sharedBuffer):
605         (WebCore::ChromiumDataObjectItem::title):
606         (WebCore::ChromiumDataObjectItem::baseURL):
607         * platform/chromium/ClipboardChromium.cpp:
608         (WebCore::ClipboardChromium::files):
609         (WebCore::ClipboardChromium::hasData):
610         (WebCore::ClipboardChromium::items):
611         * platform/chromium/DataTransferItemListChromium.cpp: Removed.
612         * platform/chromium/DataTransferItemListChromium.h: Removed.
613
614 2012-03-28  Nat Duca  <nduca@chromium.org>
615
616         [chromium] Scheduler should not tell FrameRateController to begin a frame when we dont swap
617         https://bugs.webkit.org/show_bug.cgi?id=82516
618
619         Reviewed by James Robinson.
620
621         * platform/graphics/chromium/LayerRendererChromium.cpp:
622         (WebCore::LayerRendererChromium::swapBuffers):
623         * platform/graphics/chromium/LayerRendererChromium.h:
624         (LayerRendererChromium):
625         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
626         (WebCore::CCLayerTreeHostImpl::swapBuffers):
627         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
628         (CCLayerTreeHostImpl):
629         * platform/graphics/chromium/cc/CCScheduler.cpp:
630         (WebCore::CCScheduler::processScheduledActions):
631         * platform/graphics/chromium/cc/CCScheduler.h:
632         (WebCore::CCScheduledActionDrawAndSwapResult::CCScheduledActionDrawAndSwapResult):
633         (CCScheduledActionDrawAndSwapResult):
634         (WebCore):
635         (CCSchedulerClient):
636         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
637         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
638         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
639         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
640         * platform/graphics/chromium/cc/CCThreadProxy.h:
641         (CCThreadProxy):
642
643 2012-03-26  Eric Uhrhane  <ericu@chromium.org>
644
645         FileWriter has two race conditions
646         https://bugs.webkit.org/show_bug.cgi?id=81861
647
648         Reviewed by David Levin.
649
650         Should make current tests less flaky.
651
652         * Modules/filesystem/FileWriter.h:
653         * Modules/filesystem/FileWriter.cpp:
654         Track the in-flight operation, whether it be an abort/write/truncate.
655         Whether an abort comes back as didWrite, didTruncate, or didFail, handle
656         it appropriately.  Before this fix, the Chromium implementation would
657         assert in two cases:
658
659         If the user calls abort, then write, then abort before the backend
660         catches up, we'd send both aborts to the backend, even though it hadn't
661         received the write yet.  Chromium's backend asserts if there's an abort
662         with no write in progress.  We now record that we've sent an abort and
663         are waiting for the response.
664
665         If the user calls abort while a write/truncate is just finishing, on the
666         Chromium worker implementation, the completion message could be
667         thread-hopping back to WebCore at the
668         WorkerAsyncFileWriterCallbacksBridge while the abort is thread-hopping
669         in the other direction.  Again, this leads to an abort call to the
670         backend with no write in progress, and an assert.  We're now robust to
671         completions coming back when we're expecting an abort, and
672         https://chromiumcodereview.appspot.com/9764018/ will make the backend
673         robust to extra abort calls.
674
675 2012-03-27  Ryosuke Niwa  <rniwa@webkit.org>
676
677         Deleting a paragraph of text should not add elements for typing style
678         https://bugs.webkit.org/show_bug.cgi?id=82401
679
680         Reviewed by Enrica Casucci.
681
682         This behavior was explicitly supported by DeleteSelectionCommand but it doesn't match TextEdit or Firefox.
683         We're changing our behavior to match TextEdit and Firefox in this patch.
684
685         The behavior is tested by an existing test, which was renamed to deleting-text-rests-typing-style.html in this patch.
686
687         Test: editing/execCommand/deleting-text-rests-typing-style.html
688
689         * editing/DeleteSelectionCommand.cpp:
690         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
691
692 2012-03-28  Michal Mocny  <mmocny@google.com>
693
694         [chromium] Add tracing events around CCLayerTreeHostImpl visibility.
695         https://bugs.webkit.org/show_bug.cgi?id=82501
696
697         Reviewed by James Robinson.
698
699         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
700         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
701         (WebCore::CCLayerTreeHostImpl::setVisible):
702
703 2012-03-28  Florin Malita  <fmalita@google.com>
704
705         Incorrect foreignObject hit test results when overlapping other SVG elements
706         https://bugs.webkit.org/show_bug.cgi?id=82059
707
708         Reviewed by Nikolas Zimmermann.
709
710         Test: svg/hittest/foreign-object-background.svg
711
712         Foreign content needs to be hit-tested atomically due to the (pseudo)
713         stacking context established by FOs.
714
715         * rendering/svg/RenderSVGForeignObject.cpp:
716         (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
717         Hit test all phases on FO HitTestForeground.
718
719 2012-03-26  Shawn Singh  <shawnsingh@chromium.org>
720
721         [chromium] layer->clipRect() is not initialized for layers that create a renderSurface.
722         https://bugs.webkit.org/show_bug.cgi?id=74147
723
724         Reviewed by Adrienne Walker.
725
726         Added 3 additional unit tests; Modified existing unit tests and layout tests.
727
728         The layer's clipRect and usesLayerClipping information was not
729         being initialized for layers that created a renderSurface. (It
730         was, however, being initialized for the renderSurface itself.)
731         This patch adds a unit test that reproduces that this is an error,
732         other unit tests to tightly test the value of clipRect being
733         initialized, and adds the logic to properly initialize the
734         clipRect.
735
736         Before this patch, this bug was causing flashing on tab-switch on
737         the apple iphone page. Even worse, with partial swap enabled, the
738         layers would simply disappear, because the first frame the
739         clipRect is uninitialized and the layer is not drawn, and the
740         second frame onwards, the damage tracker correctly things nothing
741         is damaged, so it doesn't draw that layer again until other damage
742         causes it to be redrawn.
743
744         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
745         (WebCore::calculateDrawTransformsAndVisibilityInternal):
746
747 2012-03-28  Anders Carlsson  <andersca@apple.com>
748
749         "Sticky" or slow scrolling on some sites
750         https://bugs.webkit.org/show_bug.cgi?id=82512
751         <rdar://problem/11000372>
752
753         Reviewed by Andreas Kling.
754
755         When we're in the slow mode and have to update the scroll layer position on the main thread,
756         get it from the scrolling thread so we'll be in sync with the scrolling tree when the main thread is busy.
757
758         * page/scrolling/ScrollingCoordinator.cpp:
759         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
760         * page/scrolling/ScrollingCoordinator.h:
761         (ScrollingCoordinator):
762         * page/scrolling/ScrollingTree.cpp:
763         (WebCore::ScrollingTree::mainFrameScrollPosition):
764         (WebCore):
765         (WebCore::ScrollingTree::updateMainFrameScrollPositionAndScrollLayerPosition):
766         * page/scrolling/ScrollingTree.h:
767
768 2012-03-28  Adrienne Walker  <enne@google.com>
769
770         [chromium] Fix tiled layer assert for huge layers
771         https://bugs.webkit.org/show_bug.cgi?id=82486
772
773         Reviewed by James Robinson.
774
775         Test: TiledLayerChromiumTest.hugeLayerUpdateCrash
776
777         TilingData::numTiles() is calculated as the product of two ints and so
778         can potentially overflow, causing numTiles() to be incorrect. To avoid
779         calling code accidentally falling into this trap, remove this function
780         and all code that uses tile index from TilingData.  This requires
781         fixing up a bunch of callers of TilingData and CCLayerTilingData.
782
783         Additionally, TilingData::numTiles() has long been a confusing
784         function name in some contexts, so rename to bool hasEmptyBounds().
785
786         Also, remove TilingData::intersectDrawQuad because there are no
787         clients of that function.
788
789         * platform/graphics/chromium/TiledLayerChromium.cpp:
790         (WebCore::TiledLayerChromium::drawsContent):
791         (WebCore::TiledLayerChromium::reserveTextures):
792         (WebCore::TiledLayerChromium::prepareToUpdate):
793         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
794         (WebCore::TiledLayerChromium::needsIdlePaint):
795         (WebCore::TiledLayerChromium::idlePaintRect):
796         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
797         (WebCore::CCLayerTilingData::tileRect):
798         * platform/graphics/chromium/cc/CCLayerTilingData.h:
799         (WebCore::CCLayerTilingData::hasEmptyBounds):
800         (WebCore::CCLayerTilingData::tileBounds):
801         (WebCore::CCLayerTilingData::isEmpty):
802         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
803         (WebCore::CCTiledLayerImpl::bindContentsTexture):
804         (WebCore::CCTiledLayerImpl::appendQuads):
805         * platform/graphics/gpu/Texture.cpp:
806         (WebCore::Texture::create):
807         (WebCore::Texture::updateSubRect):
808         * platform/graphics/gpu/TilingData.cpp:
809         (WebCore::TilingData::tileBounds):
810         (WebCore::TilingData::tileBoundsWithBorder):
811         (WebCore::TilingData::tileBoundsNormalized):
812         * platform/graphics/gpu/TilingData.h:
813         (WebCore::TilingData::hasEmptyBounds):
814         (TilingData):
815         (WebCore::TilingData::assertTile):
816
817 2012-03-28  Peter Rybin  <peter.rybin@gmail.com>
818
819         Web Inspector: CodeGeneratorInspector.py: switch Runtime, Network and DOM domains to typed API
820         https://bugs.webkit.org/show_bug.cgi?id=81558
821
822         Reviewed by Pavel Feldman.
823
824         Client code is switched to typed API (all InspectorObject and InspectorArray types are
825         replaced with generated types from TypeBuilder according to Inspector.json).
826
827         Missing array of int specialization is added. Code generator now has a check against
828         misspelled (non-existing) domain names.
829
830         * inspector/CodeGeneratorInspector.py:
831         (Generator.go): check against misspelled domain names added.
832         * inspector/InjectedScript.cpp:
833         (WebCore::InjectedScript::evaluate):
834         (WebCore::InjectedScript::callFunctionOn):
835         (WebCore::InjectedScript::evaluateOnCallFrame):
836         (WebCore::InjectedScript::getProperties):
837         (WebCore::InjectedScript::wrapObject):
838         (WebCore::InjectedScript::wrapNode):
839         (WebCore::InjectedScript::wrapSerializedObject):
840         (WebCore::InjectedScript::makeEvalCall):
841         * inspector/InjectedScript.h:
842         (InjectedScript):
843         * inspector/InspectorDOMAgent.cpp:
844         (WebCore::InspectorDOMAgent::getDocument):
845         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
846         (WebCore::InspectorDOMAgent::querySelectorAll):
847         (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
848         (WebCore::InspectorDOMAgent::getEventListenersForNode):
849         (WebCore::InspectorDOMAgent::getSearchResults):
850         (WebCore::InspectorDOMAgent::resolveNode):
851         (WebCore::InspectorDOMAgent::getAttributes):
852         (WebCore::InspectorDOMAgent::buildObjectForNode):
853         (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
854         (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
855         (WebCore::InspectorDOMAgent::loadEventFired):
856         (WebCore::InspectorDOMAgent::didInsertDOMNode):
857         (WebCore::InspectorDOMAgent::styleAttributeInvalidated):
858         (WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
859         * inspector/InspectorDOMAgent.h:
860         (InspectorDOMAgent):
861         * inspector/InspectorPageAgent.cpp:
862         (WebCore::InspectorPageAgent::resourceTypeJson):
863         (WebCore::InspectorPageAgent::cachedResourceTypeJson):
864         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
865         * inspector/InspectorPageAgent.h:
866         * inspector/InspectorResourceAgent.cpp:
867         (WebCore::buildObjectForResourceRequest):
868         (WebCore::buildObjectForResourceResponse):
869         (WebCore::buildObjectForCachedResource):
870         (WebCore::InspectorResourceAgent::willSendRequest):
871         (WebCore::InspectorResourceAgent::didReceiveResponse):
872         (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
873         (WebCore::InspectorResourceAgent::buildInitiatorObject):
874         (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
875         (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
876         * inspector/InspectorResourceAgent.h:
877         (InspectorResourceAgent):
878         * inspector/InspectorRuntimeAgent.cpp:
879         (WebCore::InspectorRuntimeAgent::evaluate):
880         (WebCore::InspectorRuntimeAgent::callFunctionOn):
881         (WebCore::InspectorRuntimeAgent::getProperties):
882         * inspector/InspectorRuntimeAgent.h:
883         (InspectorRuntimeAgent):
884         * inspector/InspectorValues.h:
885         (InspectorArray):
886         (WebCore::InspectorArray::pushInt):
887         (WebCore):
888         * inspector/ScriptCallFrame.cpp:
889         (WebCore::ScriptCallFrame::buildInspectorObject):
890         * inspector/ScriptCallFrame.h:
891         (ScriptCallFrame):
892         * inspector/ScriptCallStack.cpp:
893         (WebCore::ScriptCallStack::buildInspectorArray):
894         * inspector/ScriptCallStack.h:
895         (ScriptCallStack):
896
897 2012-03-28  Eric Seidel  <eric@webkit.org>
898
899         setNeedsLayout(true, false) is super confusing to read and should use an enum instead
900         https://bugs.webkit.org/show_bug.cgi?id=82369
901
902         Reviewed by Julien Chaffraix.
903
904         I replaced all uses of the markParents bool with a MarkingBehavior
905         enum (which has two values: MarkContainingBlockChain and MarkOnlyThis).
906         I'm not sure the naming is perfect (as it's not clear to me if markParents is
907         used to mean the same thing in these 3 functions), but hopefully this code is more
908         clear.  I welcome further suggested adjustment from layout experts.
909
910         * page/FrameView.cpp:
911         (WebCore::FrameView::scheduleRelayout):
912         * rendering/RenderBlock.cpp:
913         (WebCore::RenderBlock::layoutBlock):
914         (WebCore::RenderBlock::adjustPositionedBlock):
915         (WebCore::RenderBlock::layoutBlockChildren):
916         (WebCore::RenderBlock::layoutBlockChild):
917         (WebCore::RenderBlock::layoutPositionedObjects):
918         (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
919         (WebCore::RenderBlock::removePositionedObjects):
920         (WebCore::RenderBlock::insertFloatingObject):
921         (WebCore::RenderBlock::positionNewFloats):
922         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
923         (WebCore::RenderBlock::adjustBlockChildForPagination):
924         * rendering/RenderBlockLineLayout.cpp:
925         (WebCore::RenderBlock::layoutRunsAndFloats):
926         (WebCore::RenderBlock::layoutInlineChildren):
927         (WebCore::RenderBlock::positionNewFloatOnLine):
928         * rendering/RenderBox.cpp:
929         (WebCore::RenderBox::positionLineBox):
930         * rendering/RenderDeprecatedFlexibleBox.cpp:
931         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
932         (WebCore::gatherFlexChildrenInfo):
933         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
934         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
935         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
936         * rendering/RenderFlexibleBox.cpp:
937         (WebCore::RenderFlexibleBox::prepareChildForPositionedLayout):
938         * rendering/RenderLayer.cpp:
939         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
940         * rendering/RenderMedia.cpp:
941         (WebCore::RenderMedia::layout):
942         * rendering/RenderObject.cpp:
943         (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
944         * rendering/RenderObject.h:
945         (RenderObject):
946         (WebCore::RenderObject::setNeedsLayout):
947         (WebCore::RenderObject::setChildNeedsLayout):
948         * rendering/RenderRubyRun.cpp:
949         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
950         * rendering/RenderTable.cpp:
951         (WebCore::RenderTable::layout):
952         * rendering/RenderTableRow.cpp:
953         (WebCore::RenderTableRow::layout):
954         * rendering/RenderTableSection.cpp:
955         (WebCore::RenderTableSection::calcRowLogicalHeight):
956         (WebCore::RenderTableSection::layoutRows):
957         * rendering/RenderTextControl.cpp:
958         (WebCore::RenderTextControl::layoutSpecialExcludedChild):
959         * rendering/RenderTextControlSingleLine.cpp:
960         (WebCore::RenderTextControlSingleLine::layout):
961         * rendering/RenderView.cpp:
962         (WebCore::RenderView::RenderView):
963         (WebCore::RenderView::layout):
964         * rendering/mathml/RenderMathMLRoot.cpp:
965         (WebCore::RenderMathMLRoot::layout):
966         * rendering/mathml/RenderMathMLRow.cpp:
967         (WebCore::RenderMathMLRow::layout):
968         * rendering/mathml/RenderMathMLSubSup.cpp:
969         (WebCore::RenderMathMLSubSup::layout):
970         * rendering/svg/SVGRenderSupport.cpp:
971         (WebCore::SVGRenderSupport::layoutChildren):
972
973 2012-03-28  Joseph Pecoraro  <pecoraro@apple.com>
974
975         <http://webkit.org/b/82419> Web Inspector: Create -[DOMNode inspect] from IDL
976
977         Instead of manually creating the method in DOM.mm we can specify it in
978         Node.idl and autogenerate part of the interface.
979
980         Reviewed by Timothy Hatcher.
981
982         * bindings/objc/DOM.mm:
983         * bindings/objc/DOMPrivate.h:
984         Move the call to InspectorController::inspect from here ...
985
986         * dom/Node.h:
987         * dom/Node.idl: IDL only in an ObjC block.
988         * dom/Node.cpp:
989         (WebCore::Node::inspect):
990         ... to here.
991
992         * WebCore.xcodeproj/project.pbxproj:
993         Add the new generated file so we can Copy it in the build phase.
994
995 2012-03-28  Tommy Widenflycht  <tommyw@google.com>
996
997         [chromium] MediaStream API (JSEP): Introducing WebPeerConnection00Handler
998         https://bugs.webkit.org/show_bug.cgi?id=82450
999
1000         Reviewed by Adam Barth.
1001
1002         This change removes the default PeerConnection00Handler.cpp from the Chromium build.
1003
1004         A major overhaul of the existing layout tests is forthcoming.
1005
1006         * WebCore.gypi:
1007         * platform/mediastream/PeerConnection00Handler.h:
1008         (WebCore):
1009         (PeerConnection00Handler):
1010
1011 2012-03-28  Robert Hogan  <robert@webkit.org>
1012
1013         [REGRESSION] Web Inspector: column caption delimiters are misaligned in DataGrid
1014         https://bugs.webkit.org/show_bug.cgi?id=82193
1015
1016         Reviewed by Yury Semikhatsky.
1017
1018         Since r111742 column width in fixed layout tables is set to the width of the cell plus its left padding plus its right padding 
1019         plus half its left border plus half its right border in the collapsing border model. The layout of the panel
1020         headers in the inspector depended on pre-r111742 behaviour, so ended up misaligned with the content below. To cater for the 
1021         new method of calculating column width enforce a fixed width for the corner column by removing padding and borders (except collapsed
1022         borders from adjacent cells) and specify the expected width (15px) minus the expected width of the collapsed borders (1px).
1023
1024         * inspector/front-end/dataGrid.css:
1025         (.data-grid th.corner):
1026
1027 2012-03-28  Alexis Menard  <alexis.menard@openbossa.org>
1028
1029         Increase code sharing between CSSProperty and CSSPropertyLonghand.
1030         https://bugs.webkit.org/show_bug.cgi?id=82479
1031
1032         Reviewed by Antti Koivisto.
1033
1034         Use longhands declarations from CSSPropertyLonghand in CSSProperty to avoid
1035         code duplication.
1036
1037         No new tests : refactoring only, we shouldn't have any behavior difference.
1038
1039         * css/CSSProperty.cpp:
1040         (WebCore::resolveToPhysicalProperty):
1041         (WebCore::borderDirections):
1042         (WebCore):
1043         (WebCore::CSSProperty::resolveDirectionAwareProperty):
1044
1045 2012-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
1046
1047         Web Inspector: Implement snippets renaming in scripts navigator.
1048         https://bugs.webkit.org/show_bug.cgi?id=82477
1049
1050         Reviewed by Pavel Feldman.
1051
1052         Snippets renaming is implemented as editing of snippet name in scripts navigator.
1053
1054         * inspector/front-end/ScriptsNavigator.js:
1055         (WebInspector.ScriptsNavigator.prototype._handleRenameSnippet):
1056         (WebInspector.ScriptsNavigator.prototype._fileRenamed):
1057         (WebInspector.ScriptsNavigator.prototype.rename.commitHandler):
1058         (WebInspector.ScriptsNavigator.prototype.rename.cancelHandler):
1059         (WebInspector.ScriptsNavigator.prototype.rename.afterEditing):
1060         (WebInspector.BaseNavigatorTreeElement.prototype.set titleText):
1061         * inspector/front-end/scriptsPanel.css:
1062         (#scripts-navigator-tabbed-pane .navigator .base-navigator-tree-element-title.editing):
1063
1064 2012-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
1065
1066         Web Inspector: Add context menu for snippets control.
1067         https://bugs.webkit.org/show_bug.cgi?id=82475
1068
1069         Reviewed by Pavel Feldman.
1070
1071         This is a preliminary implementation of snippets control using context menu.
1072         We might want to add a more discoverable one before taking snippets out of experiments.
1073
1074         * English.lproj/localizedStrings.js:
1075         * inspector/front-end/ScriptsNavigator.js:
1076         (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
1077         (WebInspector.ScriptsNavigator.prototype._createSnippetsTree):
1078         (WebInspector.ScriptsNavigator.prototype._handleSnippetContextMenuEvent):
1079         (WebInspector.ScriptsNavigator.prototype._showSnippetContextMenu):
1080         (WebInspector.ScriptsNavigator.prototype._handleEvaluateSnippet):
1081         (WebInspector.ScriptsNavigator.prototype._handleRenameSnippet):
1082         (WebInspector.ScriptsNavigator.prototype._handleRemoveSnippet):
1083         (WebInspector.ScriptsNavigator.prototype._handleCreateSnippet):
1084         (WebInspector.NavigatorScriptTreeElement.prototype.get navigator):
1085         (WebInspector.NavigatorScriptTreeElement.prototype.onattach):
1086         (WebInspector.NavigatorScriptTreeElement.prototype.onenter):
1087         (WebInspector.NavigatorScriptTreeElement.prototype._handleContextMenuEvent):
1088
1089 2012-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
1090
1091         Web Inspector: ScriptsNavigator should save scroll position when switching tabs.
1092         https://bugs.webkit.org/show_bug.cgi?id=82472
1093
1094         Reviewed by Pavel Feldman.
1095
1096         WebInspector.View provides save/restore scroll position capabilities.
1097         This patch makes them used in ScriptsNavigator.
1098
1099         * inspector/front-end/ScriptsNavigator.js:
1100         (WebInspector.ScriptsNavigator):
1101         (WebInspector.ScriptsNavigator.prototype._createSnippetsTree):
1102         * inspector/front-end/scriptsPanel.css:
1103         (#scripts-navigator-tabbed-pane .tabbed-pane-content):
1104         (#scripts-navigator-tabbed-pane .navigator-container):
1105
1106 2012-03-28  Andrey Kosyakov  <caseq@chromium.org>
1107
1108         Web Inspector: only update Timeline overview when really needed
1109         https://bugs.webkit.org/show_bug.cgi?id=81909
1110
1111         Reviewed by Pavel Feldman.
1112
1113         Switch timeline overview to using raw records, thus removing dependency on instance members of
1114         TimelinePresentationModel. This requires moving record styles/categories to static getters.
1115
1116         * inspector/front-end/TimelineModel.js:
1117         (WebInspector.TimelineModel):
1118         (WebInspector.TimelineModel.startTime):
1119         (WebInspector.TimelineModel.endTime):
1120         (WebInspector.TimelineModel.duration):
1121         (WebInspector.TimelineModel.prototype._addRecord):
1122         (WebInspector.TimelineModel.prototype.reset):
1123         (WebInspector.TimelineModel.prototype.minimumRecordTime):
1124         (WebInspector.TimelineModel.prototype.maximumRecordTime):
1125         (WebInspector.TimelineModel.prototype._updateBoundaries):
1126         * inspector/front-end/TimelineOverviewPane.js:
1127         (WebInspector.TimelineOverviewPane):
1128         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
1129         (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
1130         (WebInspector.TimelineOverviewPane.prototype._setVerticalOverview):
1131         (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
1132         (WebInspector.TimelineOverviewPane.prototype._update):
1133         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips.markPercentagesForRecord):
1134         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
1135         (WebInspector.TimelineOverviewPane.prototype.windowStartTime):
1136         (WebInspector.TimelineOverviewPane.prototype.windowEndTime):
1137         (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
1138         (WebInspector.TimelineOverviewPane.prototype.setShowShortEvents):
1139         (WebInspector.TimelineOverviewPane.prototype._scheduleRefresh):
1140         (WebInspector.TimelineOverviewCalculator.prototype.computeBarGraphPercentages):
1141         (WebInspector.TimelineOverviewCalculator.prototype.setWindow):
1142         (WebInspector.TimelineOverviewCalculator.prototype.reset):
1143         (WebInspector.HeapGraph):
1144         (WebInspector.HeapGraph.prototype.update):
1145         (WebInspector.TimelineVerticalOverview):
1146         (WebInspector.TimelineVerticalOverview.prototype.reset):
1147         (WebInspector.TimelineVerticalOverview.prototype.update):
1148         (WebInspector.TimelineVerticalOverview.prototype.wasShown):
1149         (WebInspector.TimelineVerticalOverview.prototype.willHide):
1150         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrameStatistics):
1151         (WebInspector.TimelineVerticalOverview.prototype._aggregateRecords):
1152         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
1153         (WebInspector.TimelineVerticalOverview.prototype._onRecordAdded):
1154         (WebInspector.TimelineAggregatedRecord):
1155         (WebInspector.TimelineAggregatedRecord.prototype._aggregateStatistics):
1156         * inspector/front-end/TimelinePanel.js:
1157         (WebInspector.TimelinePanel):
1158         (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
1159         (WebInspector.TimelinePanel.prototype._toggleFilterButtonClicked):
1160         (WebInspector.TimelinePanel.prototype._resetPanel):
1161         (WebInspector.TimelinePanel.prototype._refresh):
1162         (WebInspector.TimelineCalculator):
1163         (WebInspector.TimelineCalculator.prototype.formatTime):
1164         * inspector/front-end/TimelinePresentationModel.js:
1165         (WebInspector.TimelinePresentationModel):
1166         (WebInspector.TimelinePresentationModel.categories):
1167         (WebInspector.TimelinePresentationModel.recordStyle):
1168         (WebInspector.TimelinePresentationModel.categoryForRecord):
1169         (WebInspector.TimelinePresentationModel.prototype.reset):
1170         (WebInspector.TimelinePresentationModel.prototype.addRecord):
1171         (WebInspector.TimelinePresentationModel.Record):
1172         (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
1173
1174 2012-03-28  Arvid Nilsson  <anilsson@rim.com>
1175
1176         [BlackBerry] Plumb through GraphicsLayer::contentsOpaque() to LayerTiler
1177         https://bugs.webkit.org/show_bug.cgi?id=82457
1178
1179         Reviewed by Rob Buis.
1180
1181         The LayerTiler already knows not to turn on GL_BLEND for opaque layers.
1182         However, it only ever sets the opaque flag for image layers and color
1183         layers, never for content layers.
1184
1185         This was no big deal, because contentsOpaque() is currently false for
1186         all layers except the root layer, which we always drew using the
1187         BlackBerry::WebKit::BackingStore anyway.
1188
1189         When we start using RenderLayerBacking::m_usingTiledCacheLayer=true on
1190         the root layer in situations where the BackingStore is unavailable, we
1191         can speed up rendering of the root layer by honouring the opaque flag.
1192
1193         Fixed by plumbing through the GraphicsLayer::contentsOpaque() flag all
1194         the way to LayerTiler and on to Texture.
1195
1196         * platform/graphics/blackberry/LayerData.h:
1197         (WebCore::LayerData::LayerData):
1198         (WebCore::LayerData::isOpaque):
1199         (LayerData):
1200         * platform/graphics/blackberry/LayerTile.cpp:
1201         (WebCore::LayerTile::updateContents):
1202         * platform/graphics/blackberry/LayerTile.h:
1203         (LayerTile):
1204         * platform/graphics/blackberry/LayerTiler.cpp:
1205         (WebCore::LayerTiler::updateTextureContentsIfNeeded):
1206         (WebCore::LayerTiler::performTileJob):
1207         * platform/graphics/blackberry/LayerTiler.h:
1208         (WebCore::LayerTiler::TextureJob::TextureJob):
1209         (WebCore::LayerTiler::TextureJob::updateContents):
1210         * platform/graphics/blackberry/LayerWebKitThread.h:
1211         (WebCore::LayerWebKitThread::setOpaque):
1212         * platform/graphics/blackberry/Texture.h:
1213         (Texture):
1214         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
1215         (WebCore::TextureCacheCompositingThread::updateContents):
1216         * platform/graphics/blackberry/TextureCacheCompositingThread.h:
1217         (TextureCacheCompositingThread):
1218
1219 2012-03-28  Andrey Kosyakov  <caseq@chromium.org>
1220
1221         Web Inspector: nuke HeapGraph.setSize(), do it automagically on update
1222         https://bugs.webkit.org/show_bug.cgi?id=82471
1223
1224         Reviewed by Yury Semikhatsky.
1225
1226         * inspector/front-end/TimelineOverviewPane.js:
1227         (WebInspector.TimelineOverviewPane.prototype.update):
1228         (WebInspector.HeapGraph.prototype.update):
1229
1230 2012-03-28  Pavel Podivilov  <podivilov@chromium.org>
1231
1232         Web Inspector: dispatch console-message-added and console-messages-cleared events on UISourceCode.
1233         https://bugs.webkit.org/show_bug.cgi?id=82463
1234
1235         Reviewed by Vsevolod Vlasov.
1236
1237         Those events are related to specific UISourceCode. See bug 82224 for more details.
1238
1239         * inspector/front-end/DebuggerPresentationModel.js:
1240         (WebInspector.DebuggerPresentationModel):
1241         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript):
1242         (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
1243         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
1244         (WebInspector.UISourceCodeImpl):
1245         (WebInspector.UISourceCodeImpl.prototype.consoleMessages):
1246         (WebInspector.UISourceCodeImpl.prototype.consoleMessageAdded):
1247         (WebInspector.UISourceCodeImpl.prototype.consoleMessagesCleared):
1248         * inspector/front-end/JavaScriptSourceFrame.js:
1249         (WebInspector.JavaScriptSourceFrame):
1250         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
1251         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
1252         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessagesCleared):
1253         (WebInspector.JavaScriptSourceFrame.prototype._onTextViewerContentLoaded):
1254         * inspector/front-end/ScriptsPanel.js:
1255         (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
1256         * inspector/front-end/UISourceCode.js:
1257         (WebInspector.UISourceCode.prototype.breakpoints):
1258         (WebInspector.UISourceCode.prototype.consoleMessages):
1259
1260 2012-03-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1261
1262         [GTK] Implement PlatformStrategies
1263         https://bugs.webkit.org/show_bug.cgi?id=82454
1264
1265         Reviewed by Xan Lopez.
1266
1267         * GNUmakefile.list.am: Remove PluginDataGtk.cpp. The same
1268         functionality is now implemented using platform strategies.
1269         * plugins/gtk/PluginDataGtk.cpp: Removed.
1270
1271 2012-03-28  Vsevolod Vlasov  <vsevik@chromium.org>
1272
1273         Web Inspector: [Regression] TabIndex is not correctly restored after editing.
1274         https://bugs.webkit.org/show_bug.cgi?id=82464
1275
1276         Reviewed by Pavel Feldman.
1277
1278         This fixes incorrect usage of isNaN that returns false for null value.
1279         Drive-by javascript compilation fix.
1280
1281         * inspector/front-end/CompilerScriptMapping.js:
1282         (WebInspector.CompilerScriptMapping.prototype.addScript): compilation fix.
1283         * inspector/front-end/ResourceScriptMapping.js:
1284         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged): compilation fix.
1285         * inspector/front-end/SnippetsModel.js:
1286         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript): compilation fix.
1287         * inspector/front-end/UIUtils.js:
1288         (WebInspector.startEditing.cleanUpAfterEditing): incorrect usage of isNaN fix.
1289
1290 2012-03-28  Yi Shen  <yi.4.shen@nokia.com>
1291
1292         An extra line break is inserted when pasting into a font element.
1293         https://bugs.webkit.org/show_bug.cgi?id=71207
1294
1295         Reviewed by Ryosuke Niwa.
1296
1297         Fix an editing bug where inserting text into a font element would
1298         create an extra div element in the dom tree. The
1299         WebCore::positionAvoidingPrecedingNodes() tries to set the correct
1300         destination position by checking the next visible position, however,
1301         it causes the position moves into the child element in somecase.
1302         Instead, we should only check the position in parent after node.
1303
1304         Test: editing/inserting/insert-text-into-font.html
1305
1306         * editing/ReplaceSelectionCommand.cpp:
1307         (WebCore::positionAvoidingPrecedingNodes):
1308
1309 2012-03-28  Sergio Villar Senin  <svillar@igalia.com>
1310
1311         [Soup] DNS prefetching spams resolver, shoots self in the foot
1312         https://bugs.webkit.org/show_bug.cgi?id=41630
1313
1314         Reviewed by Martin Robinson.
1315
1316         Added generic DNSResolveQueue class to throttle DNS
1317         prefetches. It's an abstract refactoring of CFNET's
1318         DNSResolveQueue. Platform specific methods implemented for soup
1319         and CFNET backends.
1320
1321         No new tests required as we're just refactoring existing code to
1322         be used by two different ports.
1323
1324         * CMakeLists.txt: added new file.
1325         * GNUmakefile.list.am: ditto.
1326         * WebCore.vcproj/WebCore.vcproj: ditto.
1327         * WebCore.xcodeproj/project.pbxproj: ditto.
1328         * platform/network/DNSResolveQueue.cpp: Added.
1329         (WebCore):
1330         (WebCore::DNSResolveQueue::add): adds a new host to be prefetched.
1331         (WebCore::DNSResolveQueue::fired): by using a delay we coalesce
1332         several prefetch requests and try to resolve them all here.
1333         * platform/network/DNSResolveQueue.h: Added.
1334         (WebCore):
1335         (DNSResolveQueue): class that implements DNS prefetch
1336         throttling using a template pattern.
1337         (WebCore::DNSResolveQueue::shared):
1338         (WebCore::DNSResolveQueue::decrementRequestCount):
1339         * platform/network/cf/DNSCFNet.cpp:
1340         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
1341         (WebCore::DNSResolveQueue::platformResolve):
1342         * platform/network/soup/DNSSoup.cpp:
1343         (WebCore):
1344         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
1345         (WebCore::resolvedCallback):
1346         (WebCore::DNSResolveQueue::platformResolve):
1347         (WebCore::prefetchDNS):
1348
1349 2012-03-28  Eugene Girard  <girard@chromium.org>
1350
1351         window.scrollBy() scrolls incorrectly when zoomed in/out
1352         https://bugs.webkit.org/show_bug.cgi?id=45228
1353
1354         Reviewed by Simon Fraser.
1355
1356         scrollBy now uses layout (not CSS) units. (As scrollTo does.)
1357
1358         Test: fast/dom/zoom-scroll-page-test.html
1359
1360         * page/DOMWindow.cpp:
1361         (WebCore::DOMWindow::scrollBy):
1362
1363 2012-03-28  Stephen Chenney  <schenney@chromium.org>
1364
1365         Null dereference in SVGTextElement::animatedLocalTransform()
1366         https://bugs.webkit.org/show_bug.cgi?id=82375
1367
1368         Reviewed by Nikolas Zimmermann.
1369
1370         A poorly structured SVG file with a text element inside an
1371         animatedTransform element leaves the text element placed outside of
1372         the SVG root and it has no renderer(). Later attempts to use the
1373         renderer in animatedLocalTransform fail.
1374
1375         Test: svg/custom/get-text-element-transform-crash.html
1376
1377         * svg/SVGTextElement.cpp:
1378         (WebCore::SVGTextElement::animatedLocalTransform): Added a check for null renderer, and do not check
1379         for style transform if there is no renderer.
1380
1381 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1382
1383         Enable animVal support for SVGAnimatedPreserveAspectRatio
1384         https://bugs.webkit.org/show_bug.cgi?id=82326
1385
1386         Reviewed by Zoltan Herczeg.
1387
1388         Enable animVal support for SVGAnimatedPreserveAspectRatio. Very simple now that everything is prepared.
1389         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedPreserveAspectRatioAnimator.
1390
1391         Modernize SVGPreserveAspectRatio, align parsing this object from String, with the other SVG DOM primitives,
1392         who supply a "void parse(const String&)" method, for this task.
1393
1394         Extended existing tests to cover this.
1395
1396         * svg/SVGAnimatedPreserveAspectRatio.cpp:
1397         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::constructFromString):
1398         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
1399         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::stopAnimValAnimation):
1400         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
1401         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValWillChange):
1402         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValDidChange):
1403         * svg/SVGAnimatedPreserveAspectRatio.h:
1404         (SVGAnimatedPreserveAspectRatioAnimator):
1405         * svg/SVGAnimatedType.cpp:
1406         (WebCore::SVGAnimatedType::valueAsString):
1407         (WebCore::SVGAnimatedType::setValueAsString):
1408         (WebCore::SVGAnimatedType::supportsAnimVal):
1409         * svg/SVGFEImageElement.cpp:
1410         (WebCore::SVGFEImageElement::parseAttribute):
1411         * svg/SVGFitToViewBox.cpp:
1412         (WebCore::SVGFitToViewBox::parseAttribute):
1413         * svg/SVGImageElement.cpp:
1414         (WebCore::SVGImageElement::parseAttribute):
1415         * svg/SVGPreserveAspectRatio.cpp:
1416         (WebCore::SVGPreserveAspectRatio::parse):
1417         (WebCore):
1418         * svg/SVGPreserveAspectRatio.h:
1419         (SVGPreserveAspectRatio):
1420         * svg/SVGViewSpec.cpp:
1421         (WebCore::SVGViewSpec::setPreserveAspectRatioString):
1422         (WebCore::SVGViewSpec::parseViewSpec):
1423
1424 2012-03-28  Pavel Feldman  <pfeldman@chromium.org>
1425
1426         Web Inspector: [v8] inspection of CanvasPixelArray is slow.
1427         https://bugs.webkit.org/show_bug.cgi?id=82455
1428
1429         Reviewed by Vsevolod Vlasov.
1430
1431         Added CanvasPixelArray to the list of classes that we consider
1432         arrays.
1433
1434         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1435         (WebCore::V8InjectedScriptHost::typeCallback):
1436
1437 2012-03-28  Leandro Gracia Gil  <leandrogracia@chromium.org>
1438
1439         Selectively retrieve text content around a given position.
1440         https://bugs.webkit.org/show_bug.cgi?id=78361
1441
1442         Reviewed by Ryosuke Niwa.
1443
1444         Tests: a new layout test will be introduced once the required WebKit API code is ready.
1445
1446         Introduce the DOMTextContentWalker class to selectively retrieve content
1447         around a given VisiblePosition into a string in such a way that a text
1448         Range can be extracted later from a pair of the string's positions.
1449
1450         A new boolean called m_shouldStop is also introduced in the TextIterator to force
1451         it advancing under certain conditions. Although this is usually done by setting
1452         m_positionNode to zero, it can't be applied in this case since by doing so the
1453         iterator's range is lost.
1454
1455         * WebCore.gypi:
1456         * editing/SurroundingText.cpp: Added.
1457         (WebCore):
1458         (WebCore::SurroundingText::SurroundingText):
1459         (WebCore::SurroundingText::rangeFromContentOffsets):
1460         (WebCore::SurroundingText::content):
1461         (WebCore::SurroundingText::positionOffsetInContent):
1462         * editing/SurroundingText.h: Added.
1463         (WebCore):
1464         (SurroundingText):
1465         * editing/TextIterator.cpp:
1466         (WebCore::TextIterator::TextIterator):
1467         (WebCore::TextIterator::advance):
1468         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
1469         (WebCore::SimplifiedBackwardsTextIterator::advance):
1470         * editing/TextIterator.h:
1471         (WebCore::TextIterator::atEnd):
1472         (TextIterator):
1473         (WebCore::SimplifiedBackwardsTextIterator::atEnd):
1474         (SimplifiedBackwardsTextIterator):
1475         * html/HTMLFormControlElement.cpp:
1476         (WebCore::HTMLFormControlElement::enclosingFormControlElement):
1477         (WebCore):
1478         * html/HTMLFormControlElement.h:
1479         (HTMLFormControlElement):
1480
1481 2012-03-28  Alexis Menard  <alexis.menard@openbossa.org>
1482
1483         Speed up updates of existing CSS properties from JS.
1484         https://bugs.webkit.org/show_bug.cgi?id=82235
1485
1486         Reviewed by Andreas Kling.
1487
1488         Improve the way we handle updating an existing CSS property by replacing its value
1489         by the new one rather than removing the old value and then adding the new one. This
1490         speed up by 35% PerformanceTests/CSS/CSSPropertyUpdateValue.html.
1491
1492         No new tests : Updating existing tests that were relying on the order of the properties
1493         after modification. Each updated property is not appended to the list of properties of the
1494         style therefore the cssText value is slightly different. It matches Firefox behavior but not
1495         Opera.
1496
1497         * css/StylePropertySet.cpp:
1498         (WebCore::StylePropertySet::addParsedProperty):
1499
1500 2012-03-28  Leo Yang  <leo.yang@torchmobile.com.cn>
1501
1502         [BlackBerry] Remove PlatformMouseEvent::setClickCount for BlackBerry
1503         https://bugs.webkit.org/show_bug.cgi?id=82422
1504
1505         Reviewed by Rob Buis.
1506
1507         PlatformMouseEvent::setClickCount() is never used by BlackBerry.
1508         The declaration was added in PlatformMouseEvent.h internally for
1509         BlackBerry porting, but it has not been upstreamed yet.
1510
1511         * platform/blackberry/PlatformMouseEventBlackBerry.cpp:
1512
1513 2012-03-27  Antti Koivisto  <antti@apple.com>
1514
1515         Separate @import rules from other rules in CSSStyleSheet
1516         https://bugs.webkit.org/show_bug.cgi?id=82384 
1517
1518         Reviewed by Andreas Kling.
1519
1520         Import rules always come before all other rules (except @charset). They currently live 
1521         in the generic child rule vector. They can be moved to a vector of their own for stronger
1522         typing and more focused traversal. This will also make future refactoring easier.
1523         
1524         - @import rules go to m_importRules
1525         - the rest go to m_childRules
1526         
1527         * css/CSSStyleSelector.cpp:
1528         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1529         * css/CSSStyleSheet.cpp:
1530         (WebCore::CSSStyleSheet::parserAppendRule):
1531         (WebCore::CSSStyleSheet::length):
1532         (WebCore::CSSStyleSheet::item):
1533         (WebCore::CSSStyleSheet::clearRules):
1534         (WebCore::CSSStyleSheet::rules):
1535         (WebCore::CSSStyleSheet::insertRule):
1536         (WebCore::CSSStyleSheet::deleteRule):
1537         (WebCore::CSSStyleSheet::isLoading):
1538         (WebCore::CSSStyleSheet::addSubresourceStyleURLs):
1539         * css/CSSStyleSheet.h:
1540         (WebCore):
1541         (CSSStyleSheet):
1542         (WebCore::CSSStyleSheet::childRules):
1543         (WebCore::CSSStyleSheet::importRules):
1544
1545 2012-03-28  Pavel Feldman  <pfeldman@chromium.org>
1546
1547         Web Inspector: REGRESSION: Stack overflow on the page with > 100kloc
1548         https://bugs.webkit.org/show_bug.cgi?id=82436
1549
1550         Reviewed by Yury Semikhatsky.
1551
1552         This change migrates to manual splice implementation that uses additional
1553         information about the range being inserted to make it work faster / allocate
1554         less memory.
1555
1556         * inspector/front-end/TextEditorModel.js:
1557         (WebInspector.TextEditorModel.endsWithBracketRegex.):
1558
1559 2012-03-28  Pavel Podivilov  <podivilov@chromium.org>
1560
1561         Web Inspector: breakpoints are not shown in sidebar pane after reload.
1562         https://bugs.webkit.org/show_bug.cgi?id=82351
1563
1564         Reviewed by Pavel Feldman.
1565
1566         When UISourceCode is added to ScriptsPanel, it could already have breakpoints.
1567         We should iterate over existing breakpoints and add them to sidebar pane.
1568
1569         * inspector/front-end/ScriptsPanel.js:
1570         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
1571
1572 2012-03-28  Li Yin  <li.yin@intel.com>
1573
1574         [WebSocket]The Sec-WebSocket-Protocol must not appear more than once in an HTTP response
1575         https://bugs.webkit.org/show_bug.cgi?id=82432
1576
1577         Reviewed by Kent Tamura.
1578
1579         From RFC6455: http://tools.ietf.org/html/rfc6455#section-11.3.4
1580         The |Sec-WebSocket-Protocol| header field must not appear 
1581         more than once in an HTTP response.
1582
1583         Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header.html
1584
1585         * Modules/websockets/WebSocketHandshake.cpp:
1586         (WebCore::WebSocketHandshake::readHTTPHeaders):
1587
1588 2012-03-27  James Robinson  <jamesr@chromium.org>
1589
1590         [chromium] Transfer wheel fling via WebCompositorInputHandlerClient
1591         https://bugs.webkit.org/show_bug.cgi?id=81740
1592
1593         Reviewed by Adrienne Walker.
1594
1595         Adds the ability to construct an in-progress PlatformGestureAnimation.
1596
1597         * platform/ActivePlatformGestureAnimation.cpp:
1598         (WebCore::ActivePlatformGestureAnimation::create):
1599         (WebCore):
1600         (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
1601         * platform/ActivePlatformGestureAnimation.h:
1602         (ActivePlatformGestureAnimation):
1603         * platform/TouchpadFlingPlatformGestureCurve.cpp:
1604         (WebCore::TouchpadFlingPlatformGestureCurve::create):
1605         (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
1606         * platform/TouchpadFlingPlatformGestureCurve.h:
1607         (TouchpadFlingPlatformGestureCurve):
1608
1609 2012-03-27  Nat Duca  <nduca@chromium.org>
1610
1611         [chromium] Route monotonic clock up from compositor
1612         https://bugs.webkit.org/show_bug.cgi?id=82154
1613
1614         Reviewed by James Robinson.
1615
1616         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1617         (WebCore::CCLayerTreeHost::updateAnimations):
1618         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1619         (CCLayerTreeHost):
1620         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1621         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
1622         (WebCore::CCThreadProxy::beginFrame):
1623         * platform/graphics/chromium/cc/CCThreadProxy.h:
1624         (WebCore::CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState):
1625         (BeginFrameAndCommitState):
1626
1627 2012-03-27  Robin Cao  <robin.cao@torchmobile.com.cn>
1628
1629         [BlackBerry] Upstream LayerAnimation.{cpp, h}
1630         https://bugs.webkit.org/show_bug.cgi?id=80123
1631
1632         Reviewed by Rob Buis.
1633
1634         Initial upstream, no new tests.
1635
1636         * platform/graphics/blackberry/LayerAnimation.cpp: Added.
1637         (WebCore):
1638         (WebCore::solveEpsilon):
1639         (WebCore::solveCubicBezierFunction):
1640         (WebCore::solveStepsFunction):
1641         (WebCore::timingFunctionForAnimationValue):
1642         (WebCore::progress):
1643         (WebCore::fetchIntervalEndpoints):
1644         (WebCore::LayerAnimation::apply):
1645         (WebCore::LayerAnimation::blendTransform):
1646         (WebCore::LayerAnimation::blendOpacity):
1647         (WebCore::LayerAnimation::validateTransformLists):
1648         * platform/graphics/blackberry/LayerAnimation.h: Added.
1649         (WebCore):
1650         (LayerAnimation):
1651         (WebCore::LayerAnimation::create):
1652         (WebCore::LayerAnimation::clone):
1653         (WebCore::LayerAnimation::~LayerAnimation):
1654         (WebCore::LayerAnimation::name):
1655         (WebCore::LayerAnimation::setStartTime):
1656         (WebCore::LayerAnimation::idFromAnimation):
1657         (WebCore::LayerAnimation::isEqualToAnimation):
1658         (WebCore::LayerAnimation::id):
1659         (WebCore::LayerAnimation::property):
1660         (WebCore::LayerAnimation::boxSize):
1661         (WebCore::LayerAnimation::timeOffset):
1662         (WebCore::LayerAnimation::startTime):
1663         (WebCore::LayerAnimation::valueCount):
1664         (WebCore::LayerAnimation::timingFunction):
1665         (WebCore::LayerAnimation::duration):
1666         (WebCore::LayerAnimation::iterationCount):
1667         (WebCore::LayerAnimation::direction):
1668         (WebCore::LayerAnimation::valueAt):
1669         (WebCore::LayerAnimation::LayerAnimation):
1670
1671 2012-03-27  Kenichi Ishibashi  <bashi@chromium.org>
1672
1673         [Chromium] Uninitialized access in SimpleFontDataSkia::platformInit
1674         https://bugs.webkit.org/show_bug.cgi?id=82411
1675
1676         Reviewed by Kent Tamura.
1677
1678         SimpleFontDataSkia::platformInit() could call widthForGlyph(), which
1679         accesses m_zeroWidthSpaceGlyph. This causes a valgrind memcheck error
1680         because m_zeroWidthSpaceGlyph isn't initialized at this point.
1681         Initialize m_zeroWidthSpaceGlyph with zero so that widthForGlyph() can
1682         return appropriate value(The value zero here means "unknown glyph").
1683
1684         No new tests. I manually confirmed this change fixes the valgrind
1685         memcheck error.
1686
1687         * platform/graphics/skia/SimpleFontDataSkia.cpp:
1688         (WebCore::SimpleFontData::platformInit):
1689
1690 2012-03-27  YoungTaeck Song  <youngtaeck.song@samsung.com>
1691
1692         [EFL][WK2] Add RunLoopEfl and WorkQueueEfl
1693         https://bugs.webkit.org/show_bug.cgi?id=62777
1694
1695         Reviewed by Hajime Morita.
1696
1697         Add initial version RunLoopEfl for WebKit2 Efl.
1698
1699         * platform/RunLoop.h:
1700         (TimerBase):
1701         (RunLoop):
1702         * platform/efl/RunLoopEfl.cpp:
1703         (WebCore::RunLoop::RunLoop):
1704         (WebCore::RunLoop::~RunLoop):
1705         (WebCore):
1706         (WebCore::RunLoop::run):
1707         (WebCore::RunLoop::stop):
1708         (WebCore::RunLoop::wakeUpEvent):
1709         (WebCore::RunLoop::wakeUp):
1710         (WebCore::RunLoop::TimerBase::TimerBase):
1711         (WebCore::RunLoop::TimerBase::~TimerBase):
1712         (WebCore::RunLoop::TimerBase::timerFired):
1713         (WebCore::RunLoop::TimerBase::start):
1714         (WebCore::RunLoop::TimerBase::stop):
1715         (WebCore::RunLoop::TimerBase::isActive):
1716
1717 2012-03-27  Benjamin Poulain  <bpoulain@apple.com>
1718
1719         Reinforce Geolocation to prevent accidental leak of the user position
1720         https://bugs.webkit.org/show_bug.cgi?id=82396
1721
1722         Reviewed by Adam Barth.
1723
1724         It is very important not to provide the position of the user to a page
1725         unless the user authorize it.
1726
1727         The code used to make it easy to cause such problems, because any part
1728         of the Geolocation object could invoke the success callback directly.
1729
1730         This patch add encapsulation for all the attributes of GeoNotifier,
1731         and add extra guards for the two callbacks.
1732
1733         In the case of the success callback, we do one extra check before sending
1734         the value to the bindings.
1735
1736         * Modules/geolocation/Geolocation.cpp:
1737         (WebCore::Geolocation::GeoNotifier::runSuccessCallback):
1738         (WebCore::Geolocation::GeoNotifier::runErrorCallback):
1739         (WebCore):
1740         (WebCore::Geolocation::GeoNotifier::stopTimer):
1741         (WebCore::Geolocation::GeoNotifier::timerFired):
1742         (WebCore::Geolocation::startRequest):
1743         (WebCore::Geolocation::sendError):
1744         (WebCore::Geolocation::sendPosition):
1745         (WebCore::Geolocation::stopTimer):
1746         (WebCore::Geolocation::extractNotifiersWithCachedPosition):
1747         (WebCore::Geolocation::startUpdating):
1748         * Modules/geolocation/Geolocation.h:
1749         (WebCore::Geolocation::isAllowed):
1750         (Geolocation):
1751         (GeoNotifier):
1752         (WebCore::Geolocation::GeoNotifier::options):
1753         (WebCore::Geolocation::GeoNotifier::useCachedPosition):
1754
1755 2012-03-27  Kausalya Madhusudhanan  <kmadhusu@chromium.org>
1756
1757         [Coverity] Address some uninitialized constructor values.
1758         https://bugs.webkit.org/show_bug.cgi?id=82376
1759
1760         Reviewed by James Robinson.
1761
1762         New tests are not required since I did not modify any code behavior.
1763
1764         * html/shadow/MediaControlRootElementChromium.cpp:
1765         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
1766         * inspector/InspectorIndexedDBAgent.h:
1767         (InspectorIndexedDBAgent):
1768         * inspector/InspectorTimelineAgent.cpp:
1769         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1770         * page/scrolling/ScrollingCoordinator.cpp:
1771         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
1772         * platform/ScrollAnimatorNone.cpp:
1773         (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
1774         * platform/chromium/DataTransferItemChromium.cpp:
1775         (WebCore::DataTransferItemChromium::DataTransferItemChromium):
1776         * platform/graphics/skia/ImageBufferSkia.cpp:
1777         (WebCore::ImageBuffer::ImageBuffer):
1778         * storage/StorageTask.cpp:
1779         (WebCore::StorageTask::StorageTask):
1780
1781 2012-03-27  Alexis Menard  <alexis.menard@openbossa.org>
1782
1783         Simplify CSSPropertyBorderSpacing parsing.
1784         https://bugs.webkit.org/show_bug.cgi?id=82397
1785
1786         Reviewed by Benjamin Poulain.
1787
1788         Remove the local array of longhand properties as it doesn't really
1789         bring much in this simple parsing algorithm.
1790
1791         No new tests, no functionality change intended.
1792
1793         * css/CSSParser.cpp:
1794         (WebCore::CSSParser::parseValue):
1795
1796 2012-03-27  Anders Carlsson  <andersca@apple.com>
1797
1798         Fix race condition when initializing the scrolling thread
1799         https://bugs.webkit.org/show_bug.cgi?id=82398
1800         <rdar://problem/11002166>
1801
1802         Reviewed by Sam Weinig.
1803
1804         Lock m_initializeRunLoopConditionMutex when assigning m_threadIdentifier since we're
1805         asserting that it's not null in the scrolling thread.
1806
1807         * page/scrolling/ScrollingThread.cpp:
1808         (WebCore::ScrollingThread::createThreadIfNeeded):
1809
1810 2012-03-27  Luke Macpherson  <macpherson@chromium.org>
1811
1812         Add assertions to valueForLength() and RenderBox::computeLogicalWidthInRegionUsing() to help with debugging.
1813         https://bugs.webkit.org/show_bug.cgi?id=82393
1814
1815         Reviewed by Eric Seidel.
1816
1817         No new tests / adding assetions only.
1818
1819         * css/LengthFunctions.cpp:
1820         (WebCore::valueForLength):
1821         * rendering/RenderBox.cpp:
1822         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
1823
1824 2012-03-27  Tony Chang  <tony@chromium.org>
1825
1826         use the correct size when computing flex-pack space
1827         https://bugs.webkit.org/show_bug.cgi?id=82378
1828
1829         Reviewed by Ojan Vafai.
1830
1831         Fix 2 bugs:
1832         - We weren't properly updating available space before computing
1833           packing space. If a min/max is not hit, we still need to adjust
1834           the available free space.
1835         - For flex-pack:end, we need to put the overflow in the start edge.
1836
1837         New test cases in css3/flexbox/flex-pack.html
1838
1839         * rendering/RenderFlexibleBox.cpp:
1840         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
1841         (WebCore::initialPackingOffset):
1842
1843 2012-03-27  Dana Jansens  <danakj@chromium.org>
1844
1845         [chromium] Unknown transforms should be treated as non-axis aligned on main thread
1846         https://bugs.webkit.org/show_bug.cgi?id=82370
1847
1848         Reviewed by Adrienne Walker.
1849
1850         On main thread, animating transforms have "unknown" values as they are changing
1851         out of sync on the impl thread. So treat them as non-axis-aligned since they
1852         may be, when deciding to create a render surface.
1853
1854         In addition, since surfaces are cheap on main thread, create one for all layers
1855         with animating transforms and a drawing descendant, as this allows paint culling
1856         within the layer's subtree (the animated transform won't affect drawTransforms
1857         inside the subtree).
1858
1859         Also renamed the layerIsInAnimatingSubtreeFor* to animatingTransformTo*.
1860         The old name made me pause and think what it meant and I'm the one who
1861         created it. Hopefully this is more clear.
1862
1863         Unit test: CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy
1864
1865         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1866         (WebCore::transformToParentIsKnown):
1867         (WebCore):
1868         (WebCore::subtreeShouldRenderToSeparateSurface):
1869         (WebCore::calculateDrawTransformsAndVisibilityInternal):
1870
1871 2012-03-27  Dirk Pranke  <dpranke@chromium.org>
1872
1873         Re-land r112277; reverting it doesn't seem to have fixed anything.
1874
1875         Unreviewed, build fix.
1876
1877         * svg/SVGUseElement.cpp:
1878         (WebCore::SVGUseElement::insertedIntoDocument):
1879         (WebCore::SVGUseElement::svgAttributeChanged):
1880         (WebCore::SVGUseElement::willRecalcStyle):
1881         (WebCore::SVGUseElement::finishParsingChildren):
1882         * xml/XMLErrors.cpp:
1883         (WebCore::XMLErrors::insertErrorMessageBlock):
1884
1885 2012-03-27  Dana Jansens  <danakj@chromium.org>
1886
1887         [chromium] Rename opaqueContentsRegion() to visibleContentOpaqueRegion()
1888         https://bugs.webkit.org/show_bug.cgi?id=81689
1889
1890         Reviewed by Adrienne Walker.
1891
1892         The return value from this function is a region of opaque pixels in the
1893         layer's content space that intersect with its visible rect. Rather than
1894         adding a comment to this effect, renaming the method to make it clear.
1895
1896         * platform/graphics/chromium/LayerChromium.h:
1897         (WebCore::LayerChromium::visibleContentOpaqueRegion):
1898         * platform/graphics/chromium/TiledLayerChromium.cpp:
1899         (WebCore::TiledLayerChromium::visibleContentOpaqueRegion):
1900         * platform/graphics/chromium/TiledLayerChromium.h:
1901         * platform/graphics/chromium/cc/CCLayerImpl.h:
1902         (WebCore::CCLayerImpl::visibleContentOpaqueRegion):
1903         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1904         (WebCore::computeOcclusionBehindLayer):
1905         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1906         (WebCore::CCTiledLayerImpl::visibleContentOpaqueRegion):
1907         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1908         (CCTiledLayerImpl):
1909
1910 2012-03-27  James Robinson  <jamesr@chromium.org>
1911
1912         Scrollable plugins not registered properly in ScrollingCoordinator
1913         https://bugs.webkit.org/show_bug.cgi?id=82163
1914
1915         Reviewed by Anders Carlsson.
1916
1917         Whenever a ScrollableArea is added or removed from a FrameView's ScrollableAreaSet, we have to recalculate the
1918         nonFastScrollableRegion. This can happen for certain types of plugins that are scrollable.
1919
1920         This also reverts 112142 which was a not quite right way to handle these plugins.
1921
1922         * page/FrameView.cpp:
1923         (WebCore::FrameView::addScrollableArea):
1924         (WebCore::FrameView::removeScrollableArea):
1925         * page/scrolling/ScrollingCoordinator.cpp:
1926         (WebCore::computeNonFastScrollableRegion):
1927         (WebCore::ScrollingCoordinator::frameViewScrollableAreasDidChange):
1928         (WebCore):
1929         * page/scrolling/ScrollingCoordinator.h:
1930         (ScrollingCoordinator):
1931         * plugins/PluginViewBase.h:
1932
1933 2012-03-27  Adam Klein  <adamk@chromium.org>
1934
1935         Hold a reference to refChild in insertBefore before calling collectChildrenAndRemoveFromOldParent
1936         https://bugs.webkit.org/show_bug.cgi?id=82377
1937
1938         Reviewed by Ryosuke Niwa.
1939
1940         This fixes a regression from r111925.
1941
1942         Test: fast/dom/insertBefore-refChild-crash.html
1943
1944         * dom/ContainerNode.cpp:
1945         (WebCore::ContainerNode::insertBefore): Move the 'next' RefPtr above the call to
1946         collectChildrenAndRemoveFromOldParent and rename refChildPreviousSibling
1947         to 'prev' (matching appendChild and replaceChild).
1948
1949 2012-03-27  Ryosuke Niwa  <rniwa@webkit.org>
1950
1951         cssText should not generate literal 'initial' in shorthand properties
1952         https://bugs.webkit.org/show_bug.cgi?id=82364
1953
1954         Reviewed by Antti Koivisto.
1955
1956         Fixed the bug by treating initial value as if the value is not set.
1957         While this is incorrect for properties that inherits by default,
1958         it's strictly better than generating unparsable value as we do today.
1959
1960         The proper fix is for CSSInitialValue::cssText to fetch the respective
1961         default value from what's currently in CSSStyleSelector code but that requires
1962         a considerable amount of refactoring and work.
1963
1964         * css/StylePropertySet.cpp:
1965         (WebCore::StylePropertySet::getShorthandValue):
1966         (WebCore::StylePropertySet::getCommonValue):
1967
1968 2012-03-26  Adam Klein  <adamk@chromium.org>
1969
1970         Always set V8 wrappers via V8DOMWrapper::setJSWrapperFor* instead of WeakReferenceMap::set()
1971         https://bugs.webkit.org/show_bug.cgi?id=82256
1972
1973         Reviewed by Adam Barth.
1974
1975         This moves leakRef() calls out of generated code, centralizing them in
1976         V8DOMWrapper implementation. Ideally, WeakReferenceMap::set would take
1977         PassRefPtrs, but that's tricky given that some WeakReferenceMap's KeyType is 'void'
1978         (which clearly can't be wrapped in a PassRefPtr).
1979
1980         Updated binding tests to reflect changes in CodeGeneratorV8.pm, no change in behavior.
1981
1982         Relanding r112207 with setJSWrapperForDOMSVGElementInstance defined
1983         out-of-line to avoid SVG header dependencies.
1984
1985         * bindings/scripts/CodeGeneratorV8.pm:
1986         (GenerateConstructorCallback): Use GetDomMapFunction instead of custom logic.
1987         (GenerateNamedConstructorCallback): ditto.
1988         (GenerateToV8Converters): Call V8DOMWrapper::setJSWrapper* method
1989         instead of directly accessing the wrapper maps and calling set.
1990         (GetDomMapFunction): Refactored to call new GetDomWrapperMapName function.
1991         (GetDomWrapperMapName): Helper pulled out of GetDomMapFunction.
1992         * bindings/scripts/test/V8/V8Float64Array.cpp:
1993         (WebCore::V8Float64Array::wrapSlow):
1994         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1995         (WebCore::V8TestActiveDOMObject::wrapSlow):
1996         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1997         (WebCore::V8TestCustomNamedGetter::wrapSlow):
1998         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1999         (WebCore::V8TestEventConstructor::wrapSlow):
2000         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2001         (WebCore::V8TestEventTarget::wrapSlow):
2002         * bindings/scripts/test/V8/V8TestInterface.cpp:
2003         (WebCore::V8TestInterface::wrapSlow):
2004         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2005         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2006         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2007         (WebCore::V8TestNamedConstructor::wrapSlow):
2008         * bindings/scripts/test/V8/V8TestObj.cpp:
2009         (WebCore::V8TestObj::wrapSlow):
2010         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2011         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2012         * bindings/v8/V8DOMWrapper.cpp: Moved setJSWrapperForDOMNode method to header to inline it.
2013         (WebCore::V8DOMWrapper::setJSWrapperForDOMSVGElementInstance): New helper method for SVGElementInstances.
2014         Not inline to avoid header dependency on SVGElementInstance.h.
2015         * bindings/v8/V8DOMWrapper.h:
2016         (V8DOMWrapper):
2017         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): Made inline.
2018         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): ditto.
2019         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): Refactored into two methods;
2020         this one handles non-active Nodes.
2021         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode): Pulled out of previouse
2022         DOMNode method, now handles only active Nodes.
2023
2024 2012-03-27  Levi Weintraub  <leviw@chromium.org>
2025
2026         Correct LayoutUnit usage in virtual function layoutBlock in RenderFlexibleBox
2027         https://bugs.webkit.org/show_bug.cgi?id=82344
2028
2029         Reviewed by Eric Seidel.
2030
2031         Correcting the signature of RenderFlexibleBox::layoutBlock to use a LayoutUnit
2032         for the page height, and avoiding assigning the renderer's size to an IntSize.
2033
2034         No new tests. No change in behavior.
2035
2036         * rendering/RenderFlexibleBox.cpp:
2037         (WebCore::RenderFlexibleBox::layoutBlock):
2038         * rendering/RenderFlexibleBox.h:
2039         (RenderFlexibleBox):
2040
2041 2012-03-27  Timothy Hatcher  <timothy@apple.com>
2042
2043         Make WebKit properly load a staged framework when soft linking.
2044
2045         https://webkit.org/b/82371
2046         rdar://problem/11125989
2047
2048         Reviewed by Dan Bernstein.
2049
2050         * platform/mac/SoftLinking.h: Replaced SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL with
2051         SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL and made it use the StagedFrameworks path
2052         if the first dlopen failed.
2053
2054 2012-03-26  Dirk Schulze  <krit@webkit.org>
2055
2056         Use enumeration for CSS parser mode
2057         https://bugs.webkit.org/show_bug.cgi?id=82056
2058
2059         Reviewed by Antti Koivisto.
2060
2061         Introduce a new CSSParserMode enum to differ between strict / quirks and SVG presentation
2062         attribute parsing modes.
2063         The followup patch will make use of the enum in all other classes.
2064         After that it will be easier possible to reuse the CSS parser in SVG as much as possible and
2065         introduce SVG specific functionality.
2066
2067         No new tests. No change on functionality yet. This is just a refactoring to use the enumeration.
2068
2069         * GNUmakefile.list.am: Added new file CSSParserMode.h with the new enum, which can be used by any caller of CSSParser, CSSStyleSheet and others.
2070         * Target.pri: Ditto.
2071         * WebCore.gypi: Ditto.
2072         * WebCore.vcproj/WebCore.vcproj: Ditto.
2073         * WebCore.xcodeproj/project.pbxproj: Ditto.
2074         * css/CSSGrammar.y: Make use of the new enumeration.
2075         * css/CSSParser.cpp: Replaced boolean by enumeration. No change of functionality at this point of time.
2076         (WebCore::CSSParser::inStrictMode): Helper function.
2077         (WebCore):
2078         (WebCore::CSSParser::inQuirksMode): Helper function.
2079         (WebCore::CSSParser::CSSParser):
2080         (WebCore::CSSParser::validUnit):
2081         (WebCore::CSSParser::checkForOrphanedUnits):
2082         (WebCore::CSSParser::parseValue):
2083         (WebCore::CSSParser::parseSizeParameter):
2084         (WebCore::CSSParser::parseBackgroundColor):
2085         (WebCore::CSSParser::parseFillPositionX):
2086         (WebCore::CSSParser::parseFillPositionY):
2087         (WebCore::CSSParser::parseFillPositionComponent):
2088         (WebCore::CSSParser::parseFillSize):
2089         (WebCore::CSSParser::parseAnimationDelay):
2090         (WebCore::CSSParser::parseAnimationDuration):
2091         (WebCore::CSSParser::parseAnimationIterationCount):
2092         (WebCore::CSSParser::parseTransformOriginShorthand):
2093         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
2094         (WebCore::CSSParser::parseAnimationTimingFunction):
2095         (WebCore::CSSParser::parseGridTrackList):
2096         (WebCore::CSSParser::parseDashboardRegions):
2097         (WebCore::CSSParser::parseShape):
2098         (WebCore::CSSParser::parseWrapShapeRect):
2099         (WebCore::CSSParser::parseWrapShapeCircle):
2100         (WebCore::CSSParser::parseWrapShapeEllipse):
2101         (WebCore::CSSParser::parseWrapShapePolygon):
2102         (WebCore::CSSParser::parseFont):
2103         (WebCore::CSSParser::parseFontWeight):
2104         (WebCore::CSSParser::parseColorParameters):
2105         (WebCore::CSSParser::parseHSLParameters):
2106         (WebCore::CSSParser::parseColorFromValue):
2107         (WebCore::CSSParser::parseShadow):
2108         (WebCore::CSSParser::parseReflect):
2109         (WebCore::CSSParser::parseFlex):
2110         (WebCore::CSSParser::parseBorderImageSlice):
2111         (WebCore::CSSParser::parseBorderImageQuad):
2112         (WebCore::CSSParser::parseBorderRadius):
2113         (WebCore::CSSParser::parseAspectRatio):
2114         (WebCore::CSSParser::parseLinearGradient):
2115         (WebCore::CSSParser::parseRadialGradient):
2116         (WebCore::CSSParser::parseGradientColorStops):
2117         (WebCore::CSSParser::parseTransform):
2118         (WebCore::CSSParser::parseCustomFilter):
2119         (WebCore::CSSParser::parseBuiltinFilterArguments):
2120         (WebCore::CSSParser::parseTransformOrigin):
2121         (WebCore::CSSParser::createStyleRule):
2122         (WebCore::CSSParser::createFontFaceRule):
2123         (WebCore::CSSParser::createPageRule):
2124         (WebCore::CSSParser::createKeyframeRule):
2125         * css/CSSParser.h:
2126         (CSSParser):
2127         * css/CSSParserMode.h: Added. New enumeration CSSParserMode.
2128         * css/SVGCSSParser.cpp: Use new SVGAttributeMode CSS parsing mode.
2129         (WebCore::CSSParser::parseSVGValue):
2130         (WebCore::CSSParser::parseSVGStrokeDasharray):
2131
2132 2012-03-27  Nate Chapin  <japhet@chromium.org>
2133
2134         Don't manually set an identifier for main resource
2135         loads in FrameLoader. ResourceLoader::willSendRequest()
2136         will set an identifier for the request if one isn't found,
2137         so this code appears to be unnecessary duplication.
2138         https://bugs.webkit.org/show_bug.cgi?id=82248
2139
2140         Reviewed by Adam Barth.
2141
2142         No new tests, no functionality change intended.
2143
2144         * loader/DocumentLoader.cpp:
2145         (WebCore::DocumentLoader::startLoadingMainResource): Mark navigation start
2146             here, since it's conceptually part of starting the main resource load.
2147         * loader/DocumentLoader.h:
2148         * loader/FrameLoader.cpp:
2149         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Remove duplicate identifier
2150             logic, and move navigation timing call to startLoadingMainResource, since
2151             it fits better logically there.
2152         * loader/ResourceLoader.h: No callers of setIdentifier() remain, so delete it.
2153
2154 2012-03-27  Dirk Pranke  <dpranke@chromium.org>
2155
2156         Unreviewed, rolling out r112277.
2157         http://trac.webkit.org/changeset/112277
2158         https://bugs.webkit.org/show_bug.cgi?id=81985
2159
2160         possibly causing crashes?
2161
2162         * svg/SVGUseElement.cpp:
2163         (WebCore::SVGUseElement::insertedIntoDocument):
2164         (WebCore::SVGUseElement::svgAttributeChanged):
2165         (WebCore::SVGUseElement::willRecalcStyle):
2166         (WebCore::SVGUseElement::finishParsingChildren):
2167         * xml/XMLErrors.cpp:
2168         (WebCore::XMLErrors::insertErrorMessageBlock):
2169
2170 2012-03-27  Joseph Pecoraro  <pecoraro@apple.com>
2171
2172         <http://webkit.org/b/82362> Web Inspector: Provide private -[DOMNode inspect]
2173
2174         Reviewed by Timothy Hatcher.
2175
2176         No new tests, this is only an ObjC SPI.
2177
2178         * bindings/objc/DOM.mm:
2179         * bindings/objc/DOMPrivate.h:
2180         (-[DOMNode inspect]):
2181         Call through to InspectorController inspect for the node.
2182
2183         * inspector/InspectorDOMAgent.cpp:
2184         (WebCore::InspectorDOMAgent::handleMousePress):
2185         (WebCore::InspectorDOMAgent::inspect):
2186         Whenever we inspect an element, clear the node search.
2187         The frontend already takes this approach.
2188
2189 2012-03-27  Joe Mason  <jmason@rim.com>
2190
2191         [BlackBerry] fix confusing destruction sequence in LayerCompositingThread
2192         https://bugs.webkit.org/show_bug.cgi?id=81706
2193
2194         Reviewed by Rob Buis.
2195
2196         LayerCompositingThread has a destructor that does a synchronous
2197         dispatch to the compositing thread and then does the actual cleanup
2198         from a helper function. This is confusing.It should be the
2199         opposite: the helper function dispatches to the compositing thread,
2200         which calls delete.
2201
2202         No new tests since the existing animation tests will exercise this
2203         code.
2204
2205         * platform/graphics/blackberry/LayerCompositingThread.cpp:
2206         (WebCore::LayerCompositingThread::destroyOnCompositingThread):
2207         (WebCore):
2208         (WebCore::LayerCompositingThread::~LayerCompositingThread):
2209         * platform/graphics/blackberry/LayerCompositingThread.h:
2210         (LayerCompositingThread):
2211         (WTF):
2212         (WTF::::deref):
2213
2214 2012-03-27  Alexey Proskuryakov  <ap@apple.com>
2215
2216         [Mac] Stop using NSMapTable in FormDataStreamMac.mm
2217         https://bugs.webkit.org/show_bug.cgi?id=82358
2218
2219         Reviewed by Darin Adler.
2220
2221         * platform/network/mac/FormDataStreamMac.mm: Use WTF::HashMap, as we always do. All accesses
2222         are protected with a mutex anyway.
2223
2224 2012-03-27  Joe Thomas  <joethomas@motorola.com>
2225
2226         Implement vw/vh/vmin (viewport sizes) from CSS3 Values and Units
2227         https://bugs.webkit.org/show_bug.cgi?id=27160
2228
2229         Reviewed by Antti Koivisto.
2230
2231         vw/vh/vmin are implemented as primitive length units. Added the parsing logic for these new units.
2232         New Length types such as ViewportRelativeWidth, ViewportRelativeHeight and ViewportRelativeMin are added for these length units
2233         and included the support for fetching the value of these relative units based on the current viewport size.
2234
2235         The specification related to this implementation is http://dev.w3.org/csswg/css3-values/#viewport-relative-lengths.
2236
2237         Tests: css3/viewport-relative-lengths/css3-viewport-relative-lengths-getStyle.html
2238                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vh-absolute.html
2239                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vh.html
2240                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vmin-absolute.html
2241                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vmin.html
2242                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vw-absolute.html
2243                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vw.html
2244
2245         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp: Modified to support viewport relative Length types.
2246         (getAttributeSetForAccessibilityObject):
2247         * css/CSSComputedStyleDeclaration.cpp: Ditto.
2248         (WebCore::getPositionOffsetValue):
2249         (WebCore::getBorderRadiusCornerValues):
2250         (WebCore::getBorderRadiusCornerValue):
2251         (WebCore::getBorderRadiusShorthandValue):
2252         (WebCore::lineHeightFromStyle):
2253         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2254         * css/CSSGrammar.y: Added vw/vh/vmin support.
2255         * css/CSSParser.cpp: Parsing of relative units and creation of CSSPrimitiveValue.
2256         (WebCore::CSSParser::validUnit): Added vw/vh/vmin to the valid units.
2257         (WebCore::CSSParser::createPrimitiveNumericValue): Added vw/vh/vmin as valid primitive units.
2258         (WebCore::unitFromString):
2259         (WebCore::CSSParser::parseValidPrimitive): Creation of CSSPrimitiveValue for vw/vh/vmin.
2260         (WebCore::CSSParser::detectNumberToken): Parsing the vw/vh/vmin tokens.
2261         * css/CSSPrimitiveValue.cpp:
2262         (WebCore::isValidCSSUnitTypeForDoubleConversion): Added support for vw/vh/vmin.
2263         (WebCore::unitCategory): Ditto.
2264         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2265         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory): Added support for vw/vh/vmin.
2266         (WebCore::CSSPrimitiveValue::customCssText): Ditto.
2267         (WebCore::CSSPrimitiveValue::viewportRelativeLength): Function to create the Length structure for the viewport-relative unit types.
2268         (WebCore):
2269         * css/CSSPrimitiveValue.h:
2270         (WebCore::CSSPrimitiveValue::isViewportRelativeLength): Checks whether the primitive value is ViewportRelative Lengths.
2271         (CSSPrimitiveValue):
2272         * css/CSSPrimitiveValue.idl: Added support for vw/vh/vmin.
2273         * css/CSSPrimitiveValueMappings.h:
2274         (WebCore::CSSPrimitiveValue::convertToLength): Ditto.
2275         * css/CSSStyleApplyProperty.cpp: Applying relative viewport length units to the specific CSS property.
2276         (WebCore::ApplyPropertyLength::applyValue):
2277         (WebCore::ApplyPropertyBorderRadius::applyValue):
2278         (WebCore::ApplyPropertyFontSize::applyValue):
2279         (WebCore::ApplyPropertyLineHeight::applyValue):
2280         (WebCore::ApplyPropertyVerticalAlign::applyValue):
2281         * css/CSSStyleSelector.cpp: Added support for viewport relative units.
2282         * css/LengthFunctions.cpp: Calcuation of length value based on the current viewport size.
2283         (WebCore::miminumValueForLength):
2284         (WebCore::valueForLength):
2285         (WebCore::floatValueForLength):
2286         * css/LengthFunctions.h: Added new RenderView argument.
2287         (WebCore):
2288         * dom/Document.cpp:
2289         (WebCore::Document::pageSizeAndMarginsInPixels): Modified to support viewport relative Length types.
2290         (WebCore::Document::viewportSize): New function to fetch the current viewport size.
2291         (WebCore):
2292         * dom/Document.h: Ditto.
2293         (Document):
2294         * html/HTMLAreaElement.cpp: Modified to support viewport relative Length types.
2295         (WebCore::HTMLAreaElement::getRegion):
2296         * platform/Length.h:
2297         (WebCore::Length::isViewportRelative): To check the Length is of type ViewportRelative.
2298         (WebCore::Length::viewportRelativeLength): To get the relative value.
2299         * rendering/RenderBR.cpp: Modified to support viewport relative Length types.
2300         (WebCore::RenderBR::lineHeight):
2301         * rendering/RenderBlock.cpp: Ditto.
2302         (WebCore::RenderBlock::textIndentOffset):
2303         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2304         (WebCore::RenderBlock::lineHeight):
2305         * rendering/RenderBox.cpp: Ditto.
2306         (WebCore::RenderBox::reflectionOffset):
2307         (WebCore::RenderBox::paintBoxDecorations):
2308         (WebCore::RenderBox::clipRect):
2309         (WebCore::RenderBox::computeLogicalWidthInRegion):
2310         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
2311         (WebCore::RenderBox::computeInlineDirectionMargins):
2312         (WebCore::RenderBox::computeContentLogicalHeightUsing):
2313         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
2314         (WebCore::RenderBox::computeBlockDirectionMargins):
2315         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
2316         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
2317         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
2318         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
2319         * rendering/RenderBoxModelObject.cpp: Ditto.
2320         (WebCore::RenderBoxModelObject::relativePositionOffsetX):
2321         (WebCore::RenderBoxModelObject::relativePositionOffsetY):
2322         (WebCore::RenderBoxModelObject::paddingTop):
2323         (WebCore::RenderBoxModelObject::paddingBottom):
2324         (WebCore::RenderBoxModelObject::paddingLeft):
2325         (WebCore::RenderBoxModelObject::paddingRight):
2326         (WebCore::RenderBoxModelObject::paddingBefore):
2327         (WebCore::RenderBoxModelObject::paddingAfter):
2328         (WebCore::RenderBoxModelObject::paddingStart):
2329         (WebCore::RenderBoxModelObject::paddingEnd):
2330         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
2331         (WebCore::RenderBoxModelObject::calculateFillTileSize):
2332         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
2333         (WebCore::computeBorderImageSide):
2334         (WebCore::RenderBoxModelObject::paintNinePieceImage):
2335         (WebCore::RenderBoxModelObject::paintBorder):
2336         (WebCore::RenderBoxModelObject::paintBoxShadow):
2337         * rendering/RenderFlexibleBox.cpp: Ditto.
2338         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
2339         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
2340         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
2341         * rendering/RenderInline.cpp: Ditto.
2342         (WebCore::computeMargin):
2343         (WebCore::RenderInline::lineHeight):
2344         * rendering/RenderMenuList.cpp: Ditto.
2345         (WebCore::RenderMenuList::updateOptionsWidth):
2346         * rendering/RenderObject.cpp: Ditto.
2347         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2348         * rendering/RenderReplaced.cpp: Ditto.
2349         (WebCore::RenderReplaced::paint):
2350         * rendering/RenderScrollbarPart.cpp: Ditto.
2351         (WebCore::calcScrollbarThicknessUsing):
2352         (WebCore::RenderScrollbarPart::computeScrollbarWidth):
2353         (WebCore::RenderScrollbarPart::computeScrollbarHeight):
2354         * rendering/RenderTable.cpp: Ditto.
2355         (WebCore::RenderTable::computeLogicalWidth):
2356         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
2357         * rendering/RenderTableCell.cpp: Ditto.
2358         (WebCore::RenderTableCell::logicalHeightForRowSizing):
2359         * rendering/RenderTableSection.cpp: Ditto.
2360         (WebCore::RenderTableSection::calcRowLogicalHeight):
2361         * rendering/RenderText.h: Ditto.
2362         (WebCore::RenderText::marginLeft):
2363         (WebCore::RenderText::marginRight):
2364         * rendering/RenderThemeMac.mm: Ditto.
2365         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
2366         * rendering/RenderView.h:
2367         (WebCore::RenderView::viewportSize):
2368         * rendering/RenderWidget.cpp: Ditto.
2369         (WebCore::RenderWidget::paint):
2370         * rendering/RootInlineBox.cpp: Ditto.
2371         (WebCore::RootInlineBox::verticalPositionForBox):
2372         * rendering/style/RenderStyle.cpp: Ditto.
2373         (WebCore::calcRadiiFor):
2374         (WebCore::RenderStyle::getRoundedBorderFor):
2375         * rendering/style/RenderStyle.h: Ditto.
2376         * rendering/svg/RenderSVGRoot.cpp: Ditto.
2377         (WebCore::resolveLengthAttributeForSVG):
2378         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
2379         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
2380
2381 2012-03-27  Gao Chun  <chun.gao@intel.com>
2382
2383         Remove deprecated LowPass2FilterNode and HighPass2FilterNode
2384         https://bugs.webkit.org/show_bug.cgi?id=82296
2385
2386         Reviewed by Chris Rogers.
2387
2388         * CMakeLists.txt:
2389         * DerivedSources.make:
2390         * DerivedSources.pri:
2391         * GNUmakefile.list.am:
2392         * Modules/webaudio/AudioContext.cpp:
2393         * Modules/webaudio/AudioContext.h:
2394         (WebCore):
2395         (AudioContext):
2396         * Modules/webaudio/AudioContext.idl:
2397         * Modules/webaudio/AudioNode.h:
2398         * Modules/webaudio/BiquadFilterNode.cpp:
2399         (WebCore::BiquadFilterNode::BiquadFilterNode):
2400         * Modules/webaudio/BiquadProcessor.cpp:
2401         * Modules/webaudio/BiquadProcessor.h:
2402         * Modules/webaudio/HighPass2FilterNode.cpp: Removed.
2403         * Modules/webaudio/HighPass2FilterNode.h: Removed.
2404         * Modules/webaudio/HighPass2FilterNode.idl: Removed.
2405         * Modules/webaudio/LowPass2FilterNode.cpp: Removed.
2406         * Modules/webaudio/LowPass2FilterNode.h: Removed.
2407         * Modules/webaudio/LowPass2FilterNode.idl: Removed.
2408         * WebCore.gypi:
2409         * WebCore.xcodeproj/project.pbxproj:
2410
2411 2012-03-27  Sami Kyostila  <skyostil@chromium.org>
2412
2413         [chromium] Add TextureCopier for copying texture contents
2414         https://bugs.webkit.org/show_bug.cgi?id=80870
2415
2416         Reviewed by Stephen White.
2417
2418         This patch introduces a TextureCopier class whose job is to copy the
2419         contents from one GL texture to another using the most efficient means
2420         for the current GPU. This version uses render-to-texture to do the copy,
2421         but a path based on EXT_framebuffer_blit can be added later.
2422
2423         The class is intended to replace the use of image path operations such
2424         as glCopyTex{Sub}Image2D for duplicating texture contents. The reason is
2425         that such functions may not be very well optimized in some -- mainly
2426         mobile -- GPU drivers.
2427
2428         With this patch the new copier is used just for Canvas2D layer
2429         presentation, but another potential use is for WebGL layer presentation.
2430
2431         Test: webkit_unit_tests: TextureCopierTest
2432
2433         * WebCore.gypi:
2434         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2435         (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
2436         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
2437         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
2438         * platform/graphics/chromium/Canvas2DLayerChromium.h:
2439         (Canvas2DLayerChromium):
2440         * platform/graphics/chromium/LayerRendererChromium.cpp:
2441         (WebCore::LayerRendererChromium::initializeSharedObjects):
2442         * platform/graphics/chromium/LayerRendererChromium.h:
2443         (WebCore):
2444         (WebCore::LayerRendererChromium::textureCopier):
2445         (LayerRendererChromium):
2446         * platform/graphics/chromium/ShaderChromium.cpp:
2447         (WebCore::VertexShaderPosTexIdentity::getShaderString):
2448         (WebCore):
2449         (WebCore::FragmentShaderRGBATexCopy::getShaderString):
2450         * platform/graphics/chromium/ShaderChromium.h:
2451         (VertexShaderPosTexIdentity):
2452         (WebCore::VertexShaderPosTexIdentity::init):
2453         (WebCore):
2454         (FragmentShaderRGBATexCopy):
2455         * platform/graphics/chromium/TextureCopier.cpp: Added.
2456         (WebCore):
2457         (WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
2458         (WebCore::AcceleratedTextureCopier::~AcceleratedTextureCopier):
2459         (WebCore::AcceleratedTextureCopier::copyTexture):
2460         * platform/graphics/chromium/TextureCopier.h: Added.
2461         (WebCore):
2462         (TextureCopier):
2463         (WebCore::TextureCopier::~TextureCopier):
2464         (AcceleratedTextureCopier):
2465         (WebCore::AcceleratedTextureCopier::create):
2466         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2467         (WebCore::CCSingleThreadProxy::doCommit):
2468         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
2469         (WebCore::CCTextureUpdater::CCTextureUpdater):
2470         * platform/graphics/chromium/cc/CCTextureUpdater.h:
2471         (WebCore):
2472         (CCTextureUpdater):
2473         (WebCore::CCTextureUpdater::copier):
2474         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2475         (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
2476
2477 2012-03-27  Levi Weintraub  <leviw@chromium.org>
2478
2479         Correct SVG paint functions that are still using IntPoints
2480         https://bugs.webkit.org/show_bug.cgi?id=82343
2481
2482         Reviewed by Eric Seidel.
2483
2484         Two small corrections to SVG paint functions that should use LayoutPoint instead
2485         of IntPoint.
2486
2487         No new tests. No change in behavior.
2488
2489         * rendering/svg/RenderSVGShape.cpp:
2490         (WebCore::RenderSVGShape::paint):
2491         * rendering/svg/RenderSVGText.cpp:
2492         (WebCore::RenderSVGText::paint):
2493
2494 2012-03-27  Zalan Bujtas  <zbujtas@gmail.com>
2495
2496         Frame flattening: childframe in FrameView::layout() needs protector.
2497         https://bugs.webkit.org/show_bug.cgi?id=82345
2498
2499         Reviewed by Kenneth Rohde Christiansen.
2500
2501         RefPtr<FrameView> protector(this) is supposed to protect the current frameview in
2502         FrameView::layout() from being destroyed by recalcStyle().
2503         However, when frame flattening is on and a child frame is re-starting layout from
2504         the topmost parent, the protection is missing and parent's recalcStyle()
2505         can destroy the child frame.
2506         Moving the protector before the layout re-starting is initiated makes the child frame
2507         safe.
2508
2509         No new tests. Unable to create a test case, where this scenario is reproducible.
2510
2511         * page/FrameView.cpp:
2512         (WebCore::FrameView::layout):
2513
2514 2012-03-27  Antti Koivisto  <antti@apple.com>
2515
2516         Construct CSSCharsetRule on CSSOM API access only 
2517         https://bugs.webkit.org/show_bug.cgi?id=82332
2518
2519         Reviewed by Andreas Kling.
2520
2521         Charset is just a string. There is usually no need to construct CSSCharsetRule at all.
2522         
2523         - Make CSS parser to return encoding string instead of CSSCharsetRule object. This
2524           string is used for constructing CSSCharsetRule if it is needed (and nothing else,
2525           @charset has no effect after string decoding).
2526         - Remove internal interface for adding and removing rules. It has no clients.
2527         
2528         * css/CSSGrammar.y:
2529         * css/CSSParser.cpp:
2530         (WebCore):
2531         * css/CSSParser.h:
2532         * css/CSSStyleSelector.cpp:
2533         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2534         * css/CSSStyleSheet.cpp:
2535         (WebCore::CSSStyleSheet::~CSSStyleSheet):
2536         (WebCore::CSSStyleSheet::parserAppendRule):
2537         (WebCore::CSSStyleSheet::ensureCharsetRule):
2538         (WebCore):
2539         (WebCore::CSSStyleSheet::length):
2540         (WebCore::CSSStyleSheet::item):
2541         (WebCore::CSSStyleSheet::clearCharsetRule):
2542         (WebCore::CSSStyleSheet::clearRules):
2543         (WebCore::CSSStyleSheet::parserSetEncodingFromCharsetRule):
2544         (WebCore::CSSStyleSheet::rules):
2545         (WebCore::CSSStyleSheet::insertRule):
2546         (WebCore::CSSStyleSheet::addRule):
2547         (WebCore::CSSStyleSheet::deleteRule):
2548         * css/CSSStyleSheet.h:
2549         (WebCore):
2550         (CSSStyleSheet):
2551         (WebCore::CSSStyleSheet::ruleVector):
2552         (WebCore::CSSStyleSheet::hasCharsetRule):
2553         * inspector/InspectorStyleSheet.cpp:
2554         (WebCore::InspectorStyleSheet::reparseStyleSheet):
2555
2556 2012-03-27  Stephen White  <senorblanco@chromium.org>
2557
2558         [chromium] Fix filter context creation to be more conservative.
2559         https://bugs.webkit.org/show_bug.cgi?id=82349
2560
2561         Reviewed by James Robinson.
2562
2563         Covered by webkit_unit_tests, and css3/filters layout tests.
2564
2565         * platform/graphics/chromium/LayerChromium.cpp:
2566         (WebCore::LayerChromium::setFilters):
2567         Only request a filter context if the filter lists is non-empty.
2568         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2569         (WebCore::CCLayerTreeHost::setNeedsFilterContext):
2570         Add a bool param, so tests can cancel a request for filter contexts.
2571
2572 2012-03-27  Stephen Chenney  <schenney@chromium.org>
2573
2574         <svg:use> elements in the parser can create elements not marked as created by the parser
2575         https://bugs.webkit.org/show_bug.cgi?id=81985
2576
2577         Reviewed by Adam Barth.
2578
2579         The SVGUseElement was creating its shadow tree immediately upon
2580         demand. This resulted in nodes being created that were not marked as
2581         "createdByParser", even during parsing. As it happens, there is
2582         already code in there to track "createdByParser" in the SVGUseElement,
2583         it was just being ignored all the time. This may even have been
2584         inefficient. Now we delay creating the shadow dom tree until children
2585         are finished, which is the standard time to handle the createdByParser
2586         flag.
2587
2588         I also verified that other SVG classes that derived from core DOM
2589         classes that use the createdByParser flag do correctly pass this flag
2590         on.
2591
2592         No new tests as this is covered by existing tests and does not have new behavior.
2593
2594         * svg/SVGUseElement.cpp:
2595         (WebCore::SVGUseElement::insertedIntoDocument):
2596         (WebCore::SVGUseElement::svgAttributeChanged):
2597         (WebCore::SVGUseElement::willRecalcStyle):
2598         (WebCore::SVGUseElement::finishParsingChildren):
2599         * xml/XMLErrors.cpp:
2600         (WebCore::XMLErrors::insertErrorMessageBlock):
2601
2602 2012-03-27  Ming Xie  <mxie@rim.com>
2603
2604         [BlackBerry] Disable DisallowCType.h usage
2605         https://bugs.webkit.org/show_bug.cgi?id=82211
2606
2607         Reviewed by Rob Buis.
2608
2609         Build fix: QNX port does use ctype.h, so we should not
2610         include <wtf/DisallowCType.h> in WebCore/config.h
2611
2612         No new tests - Build Fix
2613
2614         * config.h:
2615
2616 2012-03-27  Hao Zheng  <zhenghao@chromium.org>
2617
2618         Change default position attribute of media control panel to relative for Android.
2619         https://bugs.webkit.org/show_bug.cgi?id=82303
2620
2621         Reviewed by Eric Carlson.
2622
2623         Follow up https://bugs.webkit.org/show_bug.cgi?id=79746 .
2624
2625         * css/mediaControlsChromiumAndroid.css:
2626         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
2627
2628 2012-03-27  Alexei Filippov  <alexeif@chromium.org>
2629
2630         Web Inspector: Speed up snapshot parsing.
2631         https://bugs.webkit.org/show_bug.cgi?id=82325
2632
2633         Replacing the iterators with raw nodes/edges access speeds up
2634         some phases phasses up to 10 times, taking down the whole init
2635         time to less than 6 sec.
2636
2637         Reviewed by Yury Semikhatsky.
2638
2639         * inspector/front-end/HeapSnapshot.js:
2640         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
2641         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
2642         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
2643
2644 2012-03-27  Antti Koivisto  <antti@apple.com>
2645
2646         Assertion failure in acid2.
2647
2648         Rubber-stamped by Andreas Kling.
2649
2650         Remove assert added in http://trac.webkit.org/changeset/112258. It seems insertedInto/removedFromDocument
2651         don't always pair.
2652
2653         * svg/SVGDocumentExtensions.cpp:
2654         (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
2655
2656 2012-03-27  Yury Semikhatsky  <yurys@chromium.org>
2657
2658         Web Inspector: simplify heap profiler front-end
2659         https://bugs.webkit.org/show_bug.cgi?id=82338
2660
2661         Simplify constructors of WebInspector.HeapSnapshotArraySlice and
2662         WebInspector.HeapSnapshotEdgesProvider.
2663
2664         Reviewed by Pavel Feldman.
2665
2666         * inspector/front-end/HeapSnapshot.js:
2667         (WebInspector.HeapSnapshotArraySlice):
2668         (WebInspector.HeapSnapshotArraySlice.prototype.item):
2669         (WebInspector.HeapSnapshotArraySlice.prototype.slice):
2670         (WebInspector.HeapSnapshotNode.prototype.get rawEdges):
2671         (WebInspector.HeapSnapshot.prototype._retainersForNode):
2672         (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
2673         (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
2674         (WebInspector.HeapSnapshotEdgesProvider):
2675
2676 2012-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
2677
2678         Web Inspector: Tabbed pane should set focus on its contents on tab click.
2679         https://bugs.webkit.org/show_bug.cgi?id=82323
2680
2681         Reviewed by Pavel Feldman.
2682
2683         Otherwise selected tab does not have focus.
2684         Also added tabIndex on tabElements to prevent pasting on closing middle click.
2685
2686         * inspector/front-end/TabbedPane.js:
2687         (WebInspector.TabbedPane):
2688         (WebInspector.TabbedPane.prototype.focus):
2689         (WebInspector.TabbedPane.prototype.selectTab):
2690         (WebInspector.TabbedPaneTab.prototype._createTabElement):
2691         (WebInspector.TabbedPaneTab.prototype._tabClicked):
2692
2693 2012-03-27  Pavel Podivilov  <podivilov@chromium.org>
2694
2695         Web Inspector: dispatch breakpoint-added and breakpoint-removed events on UISourceCode.
2696         https://bugs.webkit.org/show_bug.cgi?id=82318
2697
2698         Reviewed by Vsevolod Vlasov.
2699
2700         Breakpoint-added and breakpoint-removed events are always related to specific UISourceCode.
2701         See bug 82224 for more details.
2702
2703         * inspector/front-end/BreakpointManager.js:
2704         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
2705         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
2706         * inspector/front-end/DebuggerPresentationModel.js:
2707         (WebInspector.DebuggerPresentationModel):
2708         (WebInspector.UISourceCodeImpl.prototype.breakpointAdded):
2709         (WebInspector.UISourceCodeImpl.prototype.breakpointRemoved):
2710         * inspector/front-end/ScriptsPanel.js:
2711         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
2712         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
2713         (WebInspector.ScriptsPanel.prototype._addBreakpointListeners):
2714         (WebInspector.ScriptsPanel.prototype._removeBreakpointListeners):
2715         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
2716         * inspector/front-end/UISourceCode.js:
2717
2718 2012-03-27  Jason Liu  <jason.liu@torchmobile.com.cn>
2719
2720         [BlackBerry]Cleanup WTF string in platform/network/blackberry
2721         https://bugs.webkit.org/show_bug.cgi?id=82005
2722
2723         Reviewed by Rob Buis.
2724
2725         No new tests. Just replace WTF::String with String.
2726
2727         * platform/network/blackberry/NetworkJob.cpp:
2728         (WebCore::NetworkJob::handleNotifyDataReceived):
2729
2730 2012-03-27  Alexander Pavlov  <apavlov@chromium.org>
2731
2732         Web Inspector: Enable "number" parameters in the web inspector protocol methods
2733         https://bugs.webkit.org/show_bug.cgi?id=82334
2734
2735         The generated protocol dispatcher does not understand protocol method parameters of type "number"
2736         (mapped to "double" in the native code.)
2737
2738         Reviewed by Vsevolod Vlasov.
2739
2740         * inspector/CodeGeneratorInspector.py:
2741         (RawTypes.Number.get_getter_name):
2742         (RawTypes.Number.get_c_initializer):
2743         (RawTypes.Number.get_js_bind_type):
2744         (RawTypes.Number.get_validate_method_params.ValidateMethodParams):
2745         (RawTypes.Number.get_validate_method_params):
2746
2747 2012-03-27  Alexei Filippov  <alexeif@chromium.org>
2748
2749         Web Inspector: Fix missing objects in the dominators view.
2750         https://bugs.webkit.org/show_bug.cgi?id=82194
2751
2752         Due to the nature of dominators tree it is not possible to hide internal
2753         objects there because they may happen to contain user objects that can't
2754         be hidden.
2755         Besides that it fixes a small bug in HeapSnapshotArraySlice.slice
2756         function.
2757
2758         Reviewed by Yury Semikhatsky.
2759
2760         * inspector/front-end/DetailedHeapshotGridNodes.js:
2761         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createProvider):
2762         * inspector/front-end/HeapSnapshot.js:
2763         (WebInspector.HeapSnapshotArraySlice.prototype.slice):
2764
2765 2012-03-27  Antti Koivisto  <antti@apple.com>
2766
2767         Remove Document::mappedElementSheet() 
2768         https://bugs.webkit.org/show_bug.cgi?id=82242
2769
2770         Reviewed by Andreas Kling and Nikolas Zimmermann.
2771
2772         The only thing this is used for anymore is SVGFontFaceElement. That can be handled without
2773         the confusing extra stylesheet.
2774
2775         * css/CSSStyleSelector.cpp:
2776         (WebCore::CSSStyleSelector::CSSStyleSelector):
2777         * css/CSSStyleSelector.h:
2778         (CSSStyleSelector):
2779         
2780             - Add font face rules from registered SVGFontFaceElements.
2781             - Simplify the constructor signature. Stylesheets are part of the document.
2782             
2783         * dom/Document.cpp:
2784         (WebCore::Document::~Document):
2785         (WebCore::Document::createStyleSelector):
2786         (WebCore):
2787         (WebCore::Document::updateBaseURL):
2788         * dom/Document.h:
2789         (WebCore):
2790         (WebCore::Document::documentUserSheets):
2791         (Document):
2792
2793             - Remove mappedElementSheet        
2794             - Adapt to the CSSStyleSelector constructor signature changes.
2795
2796         * svg/SVGDocumentExtensions.cpp:
2797         (WebCore::SVGDocumentExtensions::svgFontFaceElements):
2798         (WebCore):
2799         (WebCore::SVGDocumentExtensions::registerSVGFontFaceElement):
2800         (WebCore::SVGDocumentExtensions::unregisterSVGFontFaceElement):
2801         * svg/SVGDocumentExtensions.h:
2802         (WebCore):
2803         (SVGDocumentExtensions):
2804         
2805             - Add map for SVGFontFaceElements
2806
2807         * svg/SVGFontFaceElement.cpp:
2808         (WebCore::SVGFontFaceElement::insertedIntoDocument):
2809         (WebCore::SVGFontFaceElement::removedFromDocument):
2810         (WebCore):
2811         * svg/SVGFontFaceElement.h:
2812         (SVGFontFaceElement):
2813         (WebCore::SVGFontFaceElement::fontFaceRule):
2814         
2815             - Switch to updating svgFontFaceElements map.
2816             - Use elementSheet as the parent sheet (nothing is ever added to the elementSheet, it is used for
2817               resolving relative URLs only).
2818
2819 2012-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
2820
2821         Web Inspector: startEditing should remove tabIndex attribute from the element if it was not set before.
2822         https://bugs.webkit.org/show_bug.cgi?id=82322
2823
2824         Reviewed by Pavel Feldman.
2825
2826         This patch removes tabIndex attribute from the element after editing if it was not present before.
2827         Otherwise tabIndex becomes set unexpectedly after exiting edit mode.
2828
2829         * inspector/front-end/UIUtils.js:
2830         (WebInspector.startEditing.cleanUpAfterEditing):
2831
2832 2012-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
2833
2834         Web Inspector: Tree outline should not start search on key press if it is being edited.
2835         https://bugs.webkit.org/show_bug.cgi?id=82327
2836
2837         Reviewed by Pavel Feldman.
2838
2839         This is needed for snippet renaming support.
2840
2841         * inspector/front-end/treeoutline.js:
2842         (TreeOutline):
2843         (TreeOutline.prototype._treeKeyPress):
2844
2845 2012-03-27  Levi Weintraub  <leviw@chromium.org>
2846
2847         Revert RenderApplet::intrinsicSize to integers
2848         https://bugs.webkit.org/show_bug.cgi?id=82206
2849
2850         Reviewed by Eric Seidel.
2851
2852         Intrinsic sizes originate either outside of WebCore, or from their initial values,
2853         which are always integers. Reverting RenderApplet::intrinsicSize to integers, the
2854         last spot improperly using LayoutUnits
2855
2856         No new tests. No change in behavior.
2857
2858         * rendering/RenderApplet.cpp:
2859         (WebCore::RenderApplet::intrinsicSize):
2860         * rendering/RenderApplet.h:
2861         (RenderApplet):
2862
2863
2864 2012-03-27  Alexis Menard  <alexis.menard@openbossa.org>
2865
2866         Increase code sharing between CSSComputedStyleDeclaration and CSSPropertyLonghand.
2867         https://bugs.webkit.org/show_bug.cgi?id=82261
2868
2869         Reviewed by Ryosuke Niwa.
2870
2871         Use longhands declaration from CSSPropertyLonghand in CSSComputedStyleDeclaration to avoid
2872         code duplication.
2873
2874         No new tests : refactoring only, we shouldn't have any behavior difference.
2875
2876         * css/CSSComputedStyleDeclaration.cpp:
2877         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2878         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForShorthandProperties):
2879         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
2880         * css/CSSComputedStyleDeclaration.h:
2881         (WebCore):
2882         (CSSComputedStyleDeclaration):
2883         * css/CSSPropertyLonghand.cpp:
2884         (WebCore::outlineLonghand):
2885         Re-order to match the spec default order and also remove outline-offset as it is not part
2886         of the shorthand (http://www.w3.org/TR/css3-ui/#outline). Luckily this was cover by a layout test.
2887
2888 2012-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
2889
2890         Web Inspector: Editable TextViewer should show cursor when it is focused.
2891         https://bugs.webkit.org/show_bug.cgi?id=82320
2892
2893         Reviewed by Pavel Feldman.
2894
2895         TextViewer now focuses editable inner container unless read-only flag is set.
2896
2897         * inspector/front-end/TextViewer.js:
2898         (WebInspector.TextViewer.prototype.focus):
2899         (WebInspector.TextEditorMainPanel):
2900         (WebInspector.TextEditorMainPanel.prototype._handleElementFocus):
2901         (WebInspector.TextEditorMainPanel.prototype.focus):
2902
2903 2012-03-26  Levi Weintraub  <leviw@chromium.org>
2904
2905         Unreviewed. Removing change markers from ChangeLog.
2906
2907 2012-03-26  Levi Weintraub  <leviw@chromium.org>
2908
2909         Convert RenderSelectionInfo::rect to LayoutUnits
2910         https://bugs.webkit.org/show_bug.cgi?id=82213
2911
2912         Reviewed by Eric Seidel.
2913
2914         RenderSelectionInfoBase stores a cached repaint rect in local coordinates. Coordinates local to
2915         renderers should be stored in LayoutUnits.
2916
2917         No new tests. No change in behavior.
2918
2919         * rendering/RenderSelectionInfo.h:
2920         (WebCore::RenderSelectionInfo::rect):
2921         (RenderSelectionInfo):
2922
2923 2012-03-26  Levi Weintraub  <leviw@chromium.org>
2924
2925         Convert RenderSelectionInfo::rect to LayoutUnits
2926         https://bugs.webkit.org/show_bug.cgi?id=82213
2927
2928         Reviewed by Eric Seidel.
2929
2930         RenderSelectionInfoBase stores a cached repaint rect in local coordinates. Coordinates
2931         local to renderers should be stored in LayoutUnits as described in
2932         http://trac.webkit.org/wiki/LayoutUnit
2933
2934         No new tests. No change in behavior.
2935
2936         * rendering/RenderSelectionInfo.h:
2937         (WebCore::RenderSelectionInfo::rect):
2938         (RenderSelectionInfo):
2939
2940 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
2941
2942         Enable animVal support for SVGAnimatedRect
2943         https://bugs.webkit.org/show_bug.cgi?id=82317
2944
2945         Reviewed by Zoltan Herczeg.
2946
2947         Enable animVal support for SVGAnimatedRect. Very simple now that everything is prepared.
2948         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedRectAnimator.
2949
2950         Extended existing tests to cover this.
2951
2952         * svg/SVGAnimatedRect.cpp:
2953         (WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
2954         (WebCore::SVGAnimatedRectAnimator::stopAnimValAnimation):
2955         (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
2956         (WebCore::SVGAnimatedRectAnimator::animValWillChange):
2957         (WebCore::SVGAnimatedRectAnimator::animValDidChange):
2958         * svg/SVGAnimatedRect.h:
2959         (SVGAnimatedRectAnimator):
2960         * svg/SVGAnimatedType.cpp:
2961         (WebCore::SVGAnimatedType::supportsAnimVal):
2962
2963 2012-03-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2964
2965         Unreviewed, rolling out r112201.
2966         http://trac.webkit.org/changeset/112201
2967         https://bugs.webkit.org/show_bug.cgi?id=82302
2968
2969         Breaks chromium's WebPageSerializerTest.HTMLNodes test
2970         (Requested by pfeldman on #webkit).
2971
2972         * loader/cache/CachedCSSStyleSheet.cpp:
2973         (WebCore::CachedCSSStyleSheet::error):
2974         (WebCore):
2975         * loader/cache/CachedCSSStyleSheet.h:
2976         (CachedCSSStyleSheet):
2977         * loader/cache/CachedFont.cpp:
2978         (WebCore):
2979         (WebCore::CachedFont::error):
2980         * loader/cache/CachedFont.h:
2981         (CachedFont):
2982         * loader/cache/CachedImage.cpp:
2983         (WebCore::CachedImage::error):
2984         * loader/cache/CachedResource.h:
2985         (CachedResource):
2986         * loader/cache/CachedScript.cpp:
2987         (WebCore::CachedScript::error):
2988         (WebCore):
2989         * loader/cache/CachedScript.h:
2990         (CachedScript):
2991         * loader/cache/CachedXSLStyleSheet.cpp:
2992         (WebCore::CachedXSLStyleSheet::error):
2993         (WebCore):
2994         * loader/cache/CachedXSLStyleSheet.h:
2995         (CachedXSLStyleSheet):
2996
2997 2012-03-27  Levi Weintraub  <leviw@chromium.org>
2998
2999         LayoutRepainter: Remove unused constructor parameter and update to LayoutUnits
3000         https://bugs.webkit.org/show_bug.cgi?id=82185
3001
3002         Reviewed by Eric Seidel.
3003
3004         Removing an optional parameter for old bounds in LayoutRepainter's constructor that
3005         is no longer used. The old bounds are instead always gleaned from the renderer's
3006         clippedOverflowRectForRepaint.
3007
3008         The renderer's bounds and outline rect also are stored in LayoutUnits to properly
3009         detect sub-pixel changes during layout. Eventually, we'll pixel snap these values
3010         when telling the embedder to invalidate. Adding a comment to that effect.
3011
3012         No new tests. No change in behavior.
3013
3014         * rendering/LayoutRepainter.cpp:
3015         (WebCore::LayoutRepainter::LayoutRepainter):
3016         * rendering/LayoutRepainter.h:
3017         (LayoutRepainter):
3018
3019 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
3020
3021         Enable animVal support for SVGAnimatedString
3022         https://bugs.webkit.org/show_bug.cgi?id=82316
3023
3024         Reviewed by Zoltan Herczeg.
3025
3026         Enable animVal support for SVGAnimatedString. Very simple now that everything is prepared.
3027         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedStringAnimator.
3028
3029         Test: svg/animations/svgstring-animation-1.html
3030
3031         * svg/SVGAnimatedString.cpp:
3032         (WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
3033         (WebCore::SVGAnimatedStringAnimator::stopAnimValAnimation):
3034         (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
3035         (WebCore::SVGAnimatedStringAnimator::animValWillChange):
3036         (WebCore::SVGAnimatedStringAnimator::animValDidChange):
3037         * svg/SVGAnimatedString.h:
3038         (SVGAnimatedStringAnimator):
3039         * svg/SVGAnimatedType.cpp:
3040         (WebCore::SVGAnimatedType::supportsAnimVal):
3041
3042 2012-03-27  Levi Weintraub  <leviw@chromium.org>
3043
3044         Update usage of LayoutUnits in RenderListMarker
3045         https://bugs.webkit.org/show_bug.cgi?id=81921
3046
3047         Reviewed by Eric Seidel.
3048
3049         Implementing proper pixel snapping in list marker painting, and correcting usage of integers
3050         for local coordinates/margins that should be sub-pixel.
3051
3052         No new tests. No change in behavior.
3053
3054         * rendering/RenderListMarker.cpp:
3055         (WebCore::RenderListMarker::localSelectionRect): Changed to LayoutUnits since this represents
3056         a rect in local coordinates.
3057         (WebCore::RenderListMarker::paint): Doing proper pixel snapping, and using integers for
3058         results from text measurement.
3059         (WebCore::RenderListMarker::computePreferredLogicalWidths): Using integers for results
3060         from text measurement.
3061         (WebCore::RenderListMarker::updateMargins): Fixing to be LayoutUnits.
3062         * rendering/RenderListMarker.h:
3063         (RenderListMarker):
3064
3065 2012-03-27  Levi Weintraub  <leviw@chromium.org>
3066
3067         Revert linesBoundingBox to integers
3068         https://bugs.webkit.org/show_bug.cgi?id=82182
3069
3070         Reviewed by Eric Seidel.
3071
3072         LayoutRects are intended to be pixel snapped to determine the ultimate screen
3073         coordinates, but the Inline Box tree is laid out using floats, and pixel snapping
3074         the resulting box from linesBoundingBox would produce a potentially incorrect
3075         rectangle. Keeping this using enclosingIntRect retains the previous accuracy and
3076         prevents misuse.
3077
3078         No new tests. No change in behavior.
3079
3080         * rendering/RenderInline.cpp:
3081         (WebCore::RenderInline::linesBoundingBox):
3082         * rendering/RenderInline.h:
3083         (RenderInline):
3084         * rendering/RenderLayer.cpp:
3085         (WebCore::RenderLayer::updateLayerPosition):
3086         * rendering/RenderText.cpp:
3087         (WebCore::RenderText::linesBoundingBox):
3088         * rendering/svg/RenderSVGInlineText.cpp:
3089         (WebCore::RenderSVGInlineText::linesBoundingBox):
3090         * rendering/svg/RenderSVGInlineText.h:
3091         (RenderSVGInlineText):
3092
3093 2012-03-26  Pavel Podivilov  <podivilov@chromium.org>
3094
3095         Web Inspector: store UIBreakpoints on UISourceCode.
3096         https://bugs.webkit.org/show_bug.cgi?id=82214
3097
3098         This change will allow us to make breakpoint-added and breakpoint-removed events a part of UISourceCode interface.
3099         See bug 82224 for more details.
3100
3101         Reviewed by Vsevolod Vlasov.
3102
3103         * inspector/front-end/BreakpointManager.js:
3104         (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
3105         (WebInspector.BreakpointManager.prototype.setBreakpoint):
3106         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
3107         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
3108         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
3109         (WebInspector.BreakpointManager.prototype.debuggerReset):
3110         * inspector/front-end/CompilerScriptMapping.js:
3111         (WebInspector.CompilerScriptMapping.prototype.addScript):
3112         * inspector/front-end/DebuggerPresentationModel.js:
3113         (WebInspector.DebuggerPresentationModel.prototype._updateBreakpointsAfterLiveEdit):
3114         (WebInspector.DebuggerPresentationModel.prototype.breakpointsForUISourceCode):
3115         (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
3116         (WebInspector.UISourceCodeImpl):
3117         (WebInspector.UISourceCodeImpl.prototype.breakpoints):
3118         (WebInspector.UISourceCodeImpl.prototype.breakpointAdded):
3119         (WebInspector.UISourceCodeImpl.prototype.breakpointRemoved):
3120         * inspector/front-end/RawSourceCode.js:
3121         (WebInspector.RawSourceCode.prototype._createUISourceCode):
3122         * inspector/front-end/SnippetsModel.js:
3123         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
3124         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
3125         * inspector/front-end/UISourceCode.js:
3126         (WebInspector.UISourceCode.prototype.get domain):
3127         (WebInspector.UISourceCode.prototype.get folderName):
3128         (WebInspector.UISourceCode.prototype.get fileName):
3129         (WebInspector.UISourceCode.prototype.get displayName):
3130         (WebInspector.UISourceCode.prototype._parseURL):
3131         (WebInspector.UISourceCode.prototype._didRequestContent):
3132         (WebInspector.UISourceCode.prototype.breakpoints):
3133         * inspector/front-end/inspector.html:
3134
3135 2012-03-27  Nat Duca  <nduca@chromium.org>
3136
3137         [chromium] Fix crash with fling with tracing enabled
3138         https://bugs.webkit.org/show_bug.cgi?id=82306
3139
3140         The TRACE_EVENT_START instrumentation was deferencing a PassOwnPtr
3141         after it had been passed into another OwnPtr. This caused frequent
3142         crashes when tracing was enabled.
3143
3144         Reviewed by Adam Barth.
3145
3146         * platform/ActivePlatformGestureAnimation.cpp:
3147         (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
3148         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
3149         (WebCore::CCActiveGestureAnimation::CCActiveGestureAnimation):
3150
3151 2012-03-27  Carlos Garcia Campos  <cgarcia@igalia.com>
3152
3153         [SOUP] Implement missing methods in CookieJarSoup
3154         https://bugs.webkit.org/show_bug.cgi?id=82082
3155
3156         Reviewed by Martin Robinson.
3157
3158         * platform/network/soup/CookieJarSoup.cpp:
3159         (WebCore::defaultCookieJar): Return a global GRefPtr to store the
3160         default cookie jar.
3161         (WebCore::soupCookieJar): Return the current cookie jar or create
3162         a new one.
3163         (WebCore::setSoupCookieJar): Set the current cookie jar.
3164         (WebCore::setCookies): Fix coding style.
3165         (WebCore::cookiesForDocument): Helper function to get the list of
3166         cookies as a string.
3167         (WebCore::cookies): Use cookiesForDocument().
3168         (WebCore::cookieRequestHeaderFieldValue): Ditto.
3169         (WebCore::getRawCookies): Get the list of cookies for the given
3170         document and url.
3171         (WebCore::deleteCookie): Delete the given cookie.
3172         (WebCore::getHostnamesWithCookies): Use GOwnPtr.
3173         (WebCore::deleteCookiesForHostname): Use GOwnPtr and
3174         soup_cookie_domain_matches() instead of comparing the domain
3175         directly with the given hostname.
3176         (WebCore::deleteAllCookies): Use GOwnPtr.
3177         * platform/network/soup/CookieJarSoup.h:
3178         * platform/network/soup/GOwnPtrSoup.cpp:
3179         (WTF::SoupCookie): Add GOwnPtr template for SoupCookie.
3180         * platform/network/soup/GOwnPtrSoup.h:
3181         * platform/network/soup/ResourceHandleSoup.cpp:
3182         (WebCore::ensureSessionIsInitialized): Use soupCookieJar() instead
3183         of defaultCookieJar().
3184
3185 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
3186
3187         Enable animVal support for SVGAnimatedBoolean
3188         https://bugs.webkit.org/show_bug.cgi?id=82311
3189
3190         Reviewed by Antti Koivisto.
3191
3192         Enable animVal support for SVGAnimatedBoolean. Very simple now that everything is prepared.
3193         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedBooleanAnimator.
3194
3195         Extended existing tests to cover this.
3196
3197         * svg/SVGAnimatedBoolean.cpp:
3198         (WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
3199         (WebCore::SVGAnimatedBooleanAnimator::stopAnimValAnimation):
3200         (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
3201         (WebCore::SVGAnimatedBooleanAnimator::animValWillChange):
3202         (WebCore::SVGAnimatedBooleanAnimator::animValDidChange):
3203         * svg/SVGAnimatedBoolean.h:
3204         (SVGAnimatedBooleanAnimator):
3205         * svg/SVGAnimatedType.cpp:
3206         (WebCore::SVGAnimatedType::setValueAsString):
3207         (WebCore::SVGAnimatedType::supportsAnimVal):
3208
3209 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
3210
3211         <img style='width: 100%' src='foo.svg'> gets pixellated when stretched
3212         https://bugs.webkit.org/show_bug.cgi?id=81631
3213
3214         Reviewed by Antti Koivisto.
3215
3216         Final cleanup of RenderReplaced after the intrinsic size negotiation patch series from some weeks/months ago.
3217         Stop tracking whether a RenderReplaced has an intrinsic size or not with an extra-bool, instead assume each
3218         RenderReplaced derived class has an intrinsic size. If not, the class should override
3219         computeIntrinsicRatioInformation() for any custom logic - currently only done by RenderImage.
3220
3221         Remove all logic depending on m_hasIntrinsicSize from computeReplacedLogicalWidth/Height, which was used
3222         to support different sizing models depending on if the replaced element is a RenderImage or a RenderPart.
3223         Unify all of this in computeIntrinsicRatioInformation right in RenderReplaced. This allows to remove
3224         a hack from RenderImage::computeReplacedLogicalWidth(), which forced the synchroniziation of the intrinsicSize()
3225         before calling the base classes RenderReplaced::computeReplacedLogicalWidth().
3226         Now RenderImage just overrides the layout() method, calls RenderReplaced::layout() and then sets the container
3227         size of the image resources to [contentWidth(), contentHeight()] - reflecting the actual result of the layout.
3228         Furthermore this now allows us to unify CachedImage::imageSizeForRenderer() again for both SVG and non-SVG images.
3229
3230         Propagating the right container size to the image resource fixes the actual bug, that the SVGImage got pixellated.
3231         Adding new tests covering percentage width or height set on an <img> embedding an external SVG, no more pixelation.
3232
3233         Tests: svg/as-image/img-relative-height-expected.html
3234                svg/as-image/img-relative-height.html
3235                svg/as-image/img-relative-width-expected.html
3236                svg/as-image/img-relative-width.html
3237
3238         * loader/cache/CachedImage.cpp:
3239         (WebCore::CachedImage::imageSizeForRenderer):
3240         * rendering/RenderEmbeddedObject.cpp:
3241         (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
3242         * rendering/RenderImage.cpp:
3243         (WebCore::RenderImage::layout):
3244         (WebCore::RenderImage::computeIntrinsicRatioInformation):
3245         * rendering/RenderImage.h:
3246         (RenderImage):
3247         * rendering/RenderReplaced.cpp:
3248         (WebCore::RenderReplaced::RenderReplaced):
3249         (WebCore::rendererHasAspectRatio):
3250         (WebCore):
3251         (WebCore::RenderReplaced::computeIntrinsicRatioInformationForRenderBox):
3252         (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
3253         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
3254         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
3255         * rendering/RenderReplaced.h:
3256         (WebCore::RenderReplaced::intrinsicSize):
3257         (RenderReplaced):
3258         (WebCore::RenderReplaced::setIntrinsicSize):
3259         * svg/graphics/SVGImage.cpp:
3260         (WebCore::SVGImage::setContainerSize):
3261         * svg/graphics/SVGImage.h:
3262         (WebCore::SVGImage::usesContainerSize):
3263
3264 2012-03-27  Ilya Tikhonovsky  <loislo@chromium.org>
3265
3266         Web Inspector: HeapSnapshot: speed-up distanceToWindow calculation.
3267         https://bugs.webkit.org/show_bug.cgi?id=82305
3268
3269         Reviewed by Yury Semikhatsky.
3270
3271         * inspector/front-end/HeapSnapshot.js:
3272         (WebInspector.HeapSnapshot.prototype._bfs):
3273
3274 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
3275
3276         SVGAnimatedType should support SVGAnimatedIntegerOptionalInteger animation
3277         https://bugs.webkit.org/show_bug.cgi?id=67563
3278
3279         Reviewed by Dirk Schulze.
3280
3281         Add SVGAnimatedIntegerOptionalInteger type handling animation of pair<int, int> objects
3282         as used for the SVG properties 'filterRes' and 'order'. They're currently animated as
3283         SVGAnimatedNumberOptionalNumber - but that won't work for animVal support. Fix that
3284         and enable animVal support for SVGAnimatedInteger(OptionalInteger).
3285
3286         Use 'int' as datatype for SVGAnimatedInteger instead of 'long' for consistency, and
3287         move SVGAnimatedEnumeration from 'int' to 'unsigned short', to make them distinguishable.
3288
3289         Test: svg/animations/svginteger-animation-2.html
3290
3291         * CMakeLists.txt:
3292         * GNUmakefile.list.am:
3293         * Target.pri:
3294         * WebCore.gypi:
3295         * WebCore.vcproj/WebCore.vcproj:
3296         * WebCore.xcodeproj/project.pbxproj:
3297         * svg/SVGAllInOne.cpp:
3298         * svg/SVGAnimatedEnumeration.h:
3299         (WebCore):
3300         * svg/SVGAnimatedInteger.cpp:
3301         (WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
3302         (WebCore):
3303         (WebCore::SVGAnimatedIntegerAnimator::stopAnimValAnimation):
3304         (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
3305         (WebCore::SVGAnimatedIntegerAnimator::animValWillChange):
3306         (WebCore::SVGAnimatedIntegerAnimator::animValDidChange):
3307         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedInteger):
3308         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
3309         * svg/SVGAnimatedInteger.h:
3310         (WebCore):
3311         (SVGAnimatedIntegerAnimator):
3312         * svg/SVGAnimatedIntegerOptionalInteger.cpp: Added.
3313         (WebCore):
3314         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::SVGAnimatedIntegerOptionalIntegerAnimator):
3315         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString):
3316         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
3317         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation):
3318         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
3319         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange):
3320         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange):
3321         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateFromAndToValues):
3322         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateFromAndByValues):
3323         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
3324         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateDistance):
3325         * svg/SVGAnimatedIntegerOptionalInteger.h: Copied from Source/WebCore/svg/SVGAnimatedInteger.h.
3326         (WebCore):
3327         (SVGAnimatedIntegerOptionalIntegerAnimator):
3328         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::~SVGAnimatedIntegerOptionalIntegerAnimator):
3329         * svg/SVGAnimatedNumberOptionalNumber.cpp:
3330         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
3331         * svg/SVGAnimatedType.cpp:
3332         (WebCore::SVGAnimatedType::~SVGAnimatedType):
3333         (WebCore::SVGAnimatedType::createIntegerOptionalInteger):
3334         (WebCore):
3335         (WebCore::SVGAnimatedType::integerOptionalInteger):
3336         (WebCore::SVGAnimatedType::valueAsString):
3337         (WebCore::SVGAnimatedType::setValueAsString):
3338         (WebCore::SVGAnimatedType::supportsAnimVal):
3339         * svg/SVGAnimatedType.h:
3340         (SVGAnimatedType):
3341         * svg/SVGAnimatorFactory.h:
3342         (WebCore::SVGAnimatorFactory::create):
3343         * svg/SVGFilterElement.cpp:
3344         (WebCore::SVGFilterElement::setFilterRes):
3345         * svg/SVGFilterElement.h:
3346         (SVGFilterElement):
3347         * svg/SVGPathElement.cpp:
3348         (WebCore::SVGPathElement::getPathSegAtLength):
3349         * svg/SVGPathElement.h:
3350         (SVGPathElement):
3351         * svg/SVGPathParserFactory.cpp:
3352         (WebCore::SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathByteStream):
3353         * svg/SVGPathParserFactory.h:
3354         (SVGPathParserFactory):
3355         * svg/SVGPathTraversalStateBuilder.cpp:
3356         (WebCore::SVGPathTraversalStateBuilder::pathSegmentIndex):
3357         * svg/SVGPathTraversalStateBuilder.h:
3358         (SVGPathTraversalStateBuilder):
3359         * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
3360         (WebCore::SVGAnimatedEnumerationPropertyTearOff::setBaseVal):
3361         (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
3362         (WebCore::SVGAnimatedEnumerationPropertyTearOff::currentAnimatedValue):
3363         (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
3364         * svg/properties/SVGPropertyInfo.h:
3365         * svg/properties/SVGPropertyTraits.h:
3366
3367 2012-03-25  Nikolas Zimmermann  <nzimmermann@rim.com>
3368
3369         Enable animVal support for SVGAngle
3370         https://bugs.webkit.org/show_bug.cgi?id=82144
3371
3372         Reviewed by Rob Buis.
3373
3374         Enable animVal support for SVGAnimatedAngle. Very simple now that everything is prepared.
3375         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedAngleAnimator.
3376
3377         Extended existing tests to cover this.
3378
3379         * svg/SVGAnimatedAngle.cpp:
3380         (WebCore::sharedSVGAngle):
3381         (WebCore::SVGAnimatedAngleAnimator::constructFromString):
3382         (WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
3383         (WebCore::SVGAnimatedAngleAnimator::stopAnimValAnimation):
3384         (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
3385         (WebCore::SVGAnimatedAngleAnimator::animValWillChange):
3386         (WebCore::SVGAnimatedAngleAnimator::animValDidChange):
3387         (WebCore::SVGAnimatedAngleAnimator::calculateDistance):
3388         * svg/SVGAnimatedAngle.h:
3389         (SVGAnimatedAngleAnimator):
3390         * svg/SVGAnimatedType.cpp:
3391         (WebCore::SVGAnimatedType::supportsAnimVal):
3392
3393 2012-03-27  Yury Semikhatsky  <yurys@chromium.org>
3394
3395         Web Inspector: remove remains of path finder in heap profiler front-end
3396         https://bugs.webkit.org/show_bug.cgi?id=82304
3397
3398         Removed remainders of heap path finder as this code is not used anymore.
3399
3400         Reviewed by Pavel Feldman.
3401
3402         * inspector/front-end/HeapSnapshot.js:
3403         * inspector/front-end/HeapSnapshotProxy.js:
3404
3405 2012-03-27  Dan Bernstein  <mitz@apple.com>
3406
3407         Reverted r112214, since it was not the right fix for the build.
3408
3409         * css/StylePropertySet.cpp:
3410         (WebCore::StylePropertySet::asText):
3411
3412 2012-03-27  Kentaro Hara  <haraken@chromium.org>
3413
3414         [V8][Performance] Optimize createTextNode(), createElement(), cloneNode(), etc
3415         https://bugs.webkit.org/show_bug.cgi?id=82201
3416
3417         Reviewed by Adam Barth.
3418
3419         This patch improves performance of createTextNode() by 13%, createElement() by 14%,
3420         and cloneNode() by 16%. Similar performance improvement will be observed in
3421         DOM methods that create a new object every time.
3422
3423         Performance test: https://bugs.webkit.org/attachment.cgi?id=133799
3424
3425         The performance test results are as follows. Since the performance of V8's GC is
3426         really unstable, the average of measured times makes no sense in Chromium.
3427         Instead, let us focus on the median. I believe that this performance
3428         improvement has impact on Dromaeo, but we cannot observe the improvement
3429         due to the unsteadiness of V8's GC, as shown below.
3430
3431         Chromium/V8/Linux (without the patch):
3432         createTextNode : median=277ms (mean=460.88ms, min=270ms, max=3381ms)
3433         createElement : median=379ms (mean=637.52ms, min=372ms, max=3022ms)
3434         cloneNode : median=369ms (mean=581.72ms, min=363ms, max=3050ms)
3435         Dromaeo/dom-modify/createElement: 439.17runs/s +-31.60% (<--- pretty noisy)
3436         Dromaeo/dom-modify/createTextNode: 287.71runs/s +-28.39% (<--- pretty noisy)
3437         Dromaeo/dom-modify/cloneNode: 174.62runs/s +-25.68% (<--- pretty noisy)
3438
3439         Chromium/V8/Linux (with the patch):
3440         createTextNode : median=240ms (mean=411.12ms, min=237ms, max=2965ms)
3441         createElement : median=325ms (mean=585.30ms, min=317ms, max=2984ms)
3442         cloneNode : median=310ms (mean=522.48ms, min=302ms, max=2988ms)
3443         Dromaeo/dom-modify/createElement: 507.15runs/s +-36.00% (<--- pretty noisy)
3444         Dromaeo/dom-modify/createTextNode: 251.01runs/s +-6.57%
3445         Dromaeo/dom-modify/cloneNode: 177.85runs/s +-28.74% (<--- pretty noisy)
3446
3447         Chromium/V8/Mac (without the patch):
3448         createTextNode : median=317ms (mean=439.08ms, min=303ms, max=3126ms)
3449         createElement : median=403ms (mean=695.70ms, min=398ms, max=5615ms)
3450         cloneNode : median=384ms (mean=577.96ms, min=372ms, max=5313ms)
3451         Dromaeo/dom-modify/createElement: 493.89runs/s +-28.32% (<--- pretty noisy)
3452         Dromaeo/dom-modify/createTextNode: 279.66runs/s +-1.91%
3453         Dromaeo/dom-modify/cloneNode: 173.06runs/s +-24.41% (<--- pretty noisy)
3454
3455         Chromium/V8/Mac (with the patch):
3456         createTextNode : median=277ms (mean=460.88ms, min=270ms, max=3381ms)
3457         createElement : median=379ms (mean=637.52ms, min=372ms, max=3022ms)
3458         cloneNode : median=369ms (mean=581.72ms, min=363ms, max=3050ms)
3459         Dromaeo/dom-modify/createElement: 510.47runs/s +-28.13% (<--- pretty noisy)
3460         Dromaeo/dom-modify/createTextNode: 215.80runs/s +-20.99% (<--- pretty noisy)
3461         Dromaeo/dom-modify/cloneNode: 174.41runs/s +-24.85% (<--- pretty noisy)
3462
3463         Safari/JavaScriptCore/Mac:
3464         createTextNode : median=142ms (mean=141.04ms, min=110ms, max=168ms)