[Chromium] Uninitialized access in SimpleFontDataSkia::platformInit
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-27  Kenichi Ishibashi  <bashi@chromium.org>
2
3         [Chromium] Uninitialized access in SimpleFontDataSkia::platformInit
4         https://bugs.webkit.org/show_bug.cgi?id=82411
5
6         Reviewed by Kent Tamura.
7
8         SimpleFontDataSkia::platformInit() could call widthForGlyph(), which
9         accesses m_zeroWidthSpaceGlyph. This causes a valgrind memcheck error
10         because m_zeroWidthSpaceGlyph isn't initialized at this point.
11         Initialize m_zeroWidthSpaceGlyph with zero so that widthForGlyph() can
12         return appropriate value(The value zero here means "unknown glyph").
13
14         No new tests. I manually confirmed this change fixes the valgrind
15         memcheck error.
16
17         * platform/graphics/skia/SimpleFontDataSkia.cpp:
18         (WebCore::SimpleFontData::platformInit):
19
20 2012-03-27  YoungTaeck Song  <youngtaeck.song@samsung.com>
21
22         [EFL][WK2] Add RunLoopEfl and WorkQueueEfl
23         https://bugs.webkit.org/show_bug.cgi?id=62777
24
25         Reviewed by Hajime Morita.
26
27         Add initial version RunLoopEfl for WebKit2 Efl.
28
29         * platform/RunLoop.h:
30         (TimerBase):
31         (RunLoop):
32         * platform/efl/RunLoopEfl.cpp:
33         (WebCore::RunLoop::RunLoop):
34         (WebCore::RunLoop::~RunLoop):
35         (WebCore):
36         (WebCore::RunLoop::run):
37         (WebCore::RunLoop::stop):
38         (WebCore::RunLoop::wakeUpEvent):
39         (WebCore::RunLoop::wakeUp):
40         (WebCore::RunLoop::TimerBase::TimerBase):
41         (WebCore::RunLoop::TimerBase::~TimerBase):
42         (WebCore::RunLoop::TimerBase::timerFired):
43         (WebCore::RunLoop::TimerBase::start):
44         (WebCore::RunLoop::TimerBase::stop):
45         (WebCore::RunLoop::TimerBase::isActive):
46
47 2012-03-27  Benjamin Poulain  <bpoulain@apple.com>
48
49         Reinforce Geolocation to prevent accidental leak of the user position
50         https://bugs.webkit.org/show_bug.cgi?id=82396
51
52         Reviewed by Adam Barth.
53
54         It is very important not to provide the position of the user to a page
55         unless the user authorize it.
56
57         The code used to make it easy to cause such problems, because any part
58         of the Geolocation object could invoke the success callback directly.
59
60         This patch add encapsulation for all the attributes of GeoNotifier,
61         and add extra guards for the two callbacks.
62
63         In the case of the success callback, we do one extra check before sending
64         the value to the bindings.
65
66         * Modules/geolocation/Geolocation.cpp:
67         (WebCore::Geolocation::GeoNotifier::runSuccessCallback):
68         (WebCore::Geolocation::GeoNotifier::runErrorCallback):
69         (WebCore):
70         (WebCore::Geolocation::GeoNotifier::stopTimer):
71         (WebCore::Geolocation::GeoNotifier::timerFired):
72         (WebCore::Geolocation::startRequest):
73         (WebCore::Geolocation::sendError):
74         (WebCore::Geolocation::sendPosition):
75         (WebCore::Geolocation::stopTimer):
76         (WebCore::Geolocation::extractNotifiersWithCachedPosition):
77         (WebCore::Geolocation::startUpdating):
78         * Modules/geolocation/Geolocation.h:
79         (WebCore::Geolocation::isAllowed):
80         (Geolocation):
81         (GeoNotifier):
82         (WebCore::Geolocation::GeoNotifier::options):
83         (WebCore::Geolocation::GeoNotifier::useCachedPosition):
84
85 2012-03-27  Kausalya Madhusudhanan  <kmadhusu@chromium.org>
86
87         [Coverity] Address some uninitialized constructor values.
88         https://bugs.webkit.org/show_bug.cgi?id=82376
89
90         Reviewed by James Robinson.
91
92         New tests are not required since I did not modify any code behavior.
93
94         * html/shadow/MediaControlRootElementChromium.cpp:
95         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
96         * inspector/InspectorIndexedDBAgent.h:
97         (InspectorIndexedDBAgent):
98         * inspector/InspectorTimelineAgent.cpp:
99         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
100         * page/scrolling/ScrollingCoordinator.cpp:
101         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
102         * platform/ScrollAnimatorNone.cpp:
103         (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
104         * platform/chromium/DataTransferItemChromium.cpp:
105         (WebCore::DataTransferItemChromium::DataTransferItemChromium):
106         * platform/graphics/skia/ImageBufferSkia.cpp:
107         (WebCore::ImageBuffer::ImageBuffer):
108         * storage/StorageTask.cpp:
109         (WebCore::StorageTask::StorageTask):
110
111 2012-03-27  Alexis Menard  <alexis.menard@openbossa.org>
112
113         Simplify CSSPropertyBorderSpacing parsing.
114         https://bugs.webkit.org/show_bug.cgi?id=82397
115
116         Reviewed by Benjamin Poulain.
117
118         Remove the local array of longhand properties as it doesn't really
119         bring much in this simple parsing algorithm.
120
121         No new tests, no functionality change intended.
122
123         * css/CSSParser.cpp:
124         (WebCore::CSSParser::parseValue):
125
126 2012-03-27  Anders Carlsson  <andersca@apple.com>
127
128         Fix race condition when initializing the scrolling thread
129         https://bugs.webkit.org/show_bug.cgi?id=82398
130         <rdar://problem/11002166>
131
132         Reviewed by Sam Weinig.
133
134         Lock m_initializeRunLoopConditionMutex when assigning m_threadIdentifier since we're
135         asserting that it's not null in the scrolling thread.
136
137         * page/scrolling/ScrollingThread.cpp:
138         (WebCore::ScrollingThread::createThreadIfNeeded):
139
140 2012-03-27  Luke Macpherson  <macpherson@chromium.org>
141
142         Add assertions to valueForLength() and RenderBox::computeLogicalWidthInRegionUsing() to help with debugging.
143         https://bugs.webkit.org/show_bug.cgi?id=82393
144
145         Reviewed by Eric Seidel.
146
147         No new tests / adding assetions only.
148
149         * css/LengthFunctions.cpp:
150         (WebCore::valueForLength):
151         * rendering/RenderBox.cpp:
152         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
153
154 2012-03-27  Tony Chang  <tony@chromium.org>
155
156         use the correct size when computing flex-pack space
157         https://bugs.webkit.org/show_bug.cgi?id=82378
158
159         Reviewed by Ojan Vafai.
160
161         Fix 2 bugs:
162         - We weren't properly updating available space before computing
163           packing space. If a min/max is not hit, we still need to adjust
164           the available free space.
165         - For flex-pack:end, we need to put the overflow in the start edge.
166
167         New test cases in css3/flexbox/flex-pack.html
168
169         * rendering/RenderFlexibleBox.cpp:
170         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
171         (WebCore::initialPackingOffset):
172
173 2012-03-27  Dana Jansens  <danakj@chromium.org>
174
175         [chromium] Unknown transforms should be treated as non-axis aligned on main thread
176         https://bugs.webkit.org/show_bug.cgi?id=82370
177
178         Reviewed by Adrienne Walker.
179
180         On main thread, animating transforms have "unknown" values as they are changing
181         out of sync on the impl thread. So treat them as non-axis-aligned since they
182         may be, when deciding to create a render surface.
183
184         In addition, since surfaces are cheap on main thread, create one for all layers
185         with animating transforms and a drawing descendant, as this allows paint culling
186         within the layer's subtree (the animated transform won't affect drawTransforms
187         inside the subtree).
188
189         Also renamed the layerIsInAnimatingSubtreeFor* to animatingTransformTo*.
190         The old name made me pause and think what it meant and I'm the one who
191         created it. Hopefully this is more clear.
192
193         Unit test: CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy
194
195         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
196         (WebCore::transformToParentIsKnown):
197         (WebCore):
198         (WebCore::subtreeShouldRenderToSeparateSurface):
199         (WebCore::calculateDrawTransformsAndVisibilityInternal):
200
201 2012-03-27  Dirk Pranke  <dpranke@chromium.org>
202
203         Re-land r112277; reverting it doesn't seem to have fixed anything.
204
205         Unreviewed, build fix.
206
207         * svg/SVGUseElement.cpp:
208         (WebCore::SVGUseElement::insertedIntoDocument):
209         (WebCore::SVGUseElement::svgAttributeChanged):
210         (WebCore::SVGUseElement::willRecalcStyle):
211         (WebCore::SVGUseElement::finishParsingChildren):
212         * xml/XMLErrors.cpp:
213         (WebCore::XMLErrors::insertErrorMessageBlock):
214
215 2012-03-27  Dana Jansens  <danakj@chromium.org>
216
217         [chromium] Rename opaqueContentsRegion() to visibleContentOpaqueRegion()
218         https://bugs.webkit.org/show_bug.cgi?id=81689
219
220         Reviewed by Adrienne Walker.
221
222         The return value from this function is a region of opaque pixels in the
223         layer's content space that intersect with its visible rect. Rather than
224         adding a comment to this effect, renaming the method to make it clear.
225
226         * platform/graphics/chromium/LayerChromium.h:
227         (WebCore::LayerChromium::visibleContentOpaqueRegion):
228         * platform/graphics/chromium/TiledLayerChromium.cpp:
229         (WebCore::TiledLayerChromium::visibleContentOpaqueRegion):
230         * platform/graphics/chromium/TiledLayerChromium.h:
231         * platform/graphics/chromium/cc/CCLayerImpl.h:
232         (WebCore::CCLayerImpl::visibleContentOpaqueRegion):
233         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
234         (WebCore::computeOcclusionBehindLayer):
235         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
236         (WebCore::CCTiledLayerImpl::visibleContentOpaqueRegion):
237         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
238         (CCTiledLayerImpl):
239
240 2012-03-27  James Robinson  <jamesr@chromium.org>
241
242         Scrollable plugins not registered properly in ScrollingCoordinator
243         https://bugs.webkit.org/show_bug.cgi?id=82163
244
245         Reviewed by Anders Carlsson.
246
247         Whenever a ScrollableArea is added or removed from a FrameView's ScrollableAreaSet, we have to recalculate the
248         nonFastScrollableRegion. This can happen for certain types of plugins that are scrollable.
249
250         This also reverts 112142 which was a not quite right way to handle these plugins.
251
252         * page/FrameView.cpp:
253         (WebCore::FrameView::addScrollableArea):
254         (WebCore::FrameView::removeScrollableArea):
255         * page/scrolling/ScrollingCoordinator.cpp:
256         (WebCore::computeNonFastScrollableRegion):
257         (WebCore::ScrollingCoordinator::frameViewScrollableAreasDidChange):
258         (WebCore):
259         * page/scrolling/ScrollingCoordinator.h:
260         (ScrollingCoordinator):
261         * plugins/PluginViewBase.h:
262
263 2012-03-27  Adam Klein  <adamk@chromium.org>
264
265         Hold a reference to refChild in insertBefore before calling collectChildrenAndRemoveFromOldParent
266         https://bugs.webkit.org/show_bug.cgi?id=82377
267
268         Reviewed by Ryosuke Niwa.
269
270         This fixes a regression from r111925.
271
272         Test: fast/dom/insertBefore-refChild-crash.html
273
274         * dom/ContainerNode.cpp:
275         (WebCore::ContainerNode::insertBefore): Move the 'next' RefPtr above the call to
276         collectChildrenAndRemoveFromOldParent and rename refChildPreviousSibling
277         to 'prev' (matching appendChild and replaceChild).
278
279 2012-03-27  Ryosuke Niwa  <rniwa@webkit.org>
280
281         cssText should not generate literal 'initial' in shorthand properties
282         https://bugs.webkit.org/show_bug.cgi?id=82364
283
284         Reviewed by Antti Koivisto.
285
286         Fixed the bug by treating initial value as if the value is not set.
287         While this is incorrect for properties that inherits by default,
288         it's strictly better than generating unparsable value as we do today.
289
290         The proper fix is for CSSInitialValue::cssText to fetch the respective
291         default value from what's currently in CSSStyleSelector code but that requires
292         a considerable amount of refactoring and work.
293
294         * css/StylePropertySet.cpp:
295         (WebCore::StylePropertySet::getShorthandValue):
296         (WebCore::StylePropertySet::getCommonValue):
297
298 2012-03-26  Adam Klein  <adamk@chromium.org>
299
300         Always set V8 wrappers via V8DOMWrapper::setJSWrapperFor* instead of WeakReferenceMap::set()
301         https://bugs.webkit.org/show_bug.cgi?id=82256
302
303         Reviewed by Adam Barth.
304
305         This moves leakRef() calls out of generated code, centralizing them in
306         V8DOMWrapper implementation. Ideally, WeakReferenceMap::set would take
307         PassRefPtrs, but that's tricky given that some WeakReferenceMap's KeyType is 'void'
308         (which clearly can't be wrapped in a PassRefPtr).
309
310         Updated binding tests to reflect changes in CodeGeneratorV8.pm, no change in behavior.
311
312         Relanding r112207 with setJSWrapperForDOMSVGElementInstance defined
313         out-of-line to avoid SVG header dependencies.
314
315         * bindings/scripts/CodeGeneratorV8.pm:
316         (GenerateConstructorCallback): Use GetDomMapFunction instead of custom logic.
317         (GenerateNamedConstructorCallback): ditto.
318         (GenerateToV8Converters): Call V8DOMWrapper::setJSWrapper* method
319         instead of directly accessing the wrapper maps and calling set.
320         (GetDomMapFunction): Refactored to call new GetDomWrapperMapName function.
321         (GetDomWrapperMapName): Helper pulled out of GetDomMapFunction.
322         * bindings/scripts/test/V8/V8Float64Array.cpp:
323         (WebCore::V8Float64Array::wrapSlow):
324         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
325         (WebCore::V8TestActiveDOMObject::wrapSlow):
326         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
327         (WebCore::V8TestCustomNamedGetter::wrapSlow):
328         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
329         (WebCore::V8TestEventConstructor::wrapSlow):
330         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
331         (WebCore::V8TestEventTarget::wrapSlow):
332         * bindings/scripts/test/V8/V8TestInterface.cpp:
333         (WebCore::V8TestInterface::wrapSlow):
334         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
335         (WebCore::V8TestMediaQueryListListener::wrapSlow):
336         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
337         (WebCore::V8TestNamedConstructor::wrapSlow):
338         * bindings/scripts/test/V8/V8TestObj.cpp:
339         (WebCore::V8TestObj::wrapSlow):
340         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
341         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
342         * bindings/v8/V8DOMWrapper.cpp: Moved setJSWrapperForDOMNode method to header to inline it.
343         (WebCore::V8DOMWrapper::setJSWrapperForDOMSVGElementInstance): New helper method for SVGElementInstances.
344         Not inline to avoid header dependency on SVGElementInstance.h.
345         * bindings/v8/V8DOMWrapper.h:
346         (V8DOMWrapper):
347         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): Made inline.
348         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): ditto.
349         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): Refactored into two methods;
350         this one handles non-active Nodes.
351         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode): Pulled out of previouse
352         DOMNode method, now handles only active Nodes.
353
354 2012-03-27  Levi Weintraub  <leviw@chromium.org>
355
356         Correct LayoutUnit usage in virtual function layoutBlock in RenderFlexibleBox
357         https://bugs.webkit.org/show_bug.cgi?id=82344
358
359         Reviewed by Eric Seidel.
360
361         Correcting the signature of RenderFlexibleBox::layoutBlock to use a LayoutUnit
362         for the page height, and avoiding assigning the renderer's size to an IntSize.
363
364         No new tests. No change in behavior.
365
366         * rendering/RenderFlexibleBox.cpp:
367         (WebCore::RenderFlexibleBox::layoutBlock):
368         * rendering/RenderFlexibleBox.h:
369         (RenderFlexibleBox):
370
371 2012-03-27  Timothy Hatcher  <timothy@apple.com>
372
373         Make WebKit properly load a staged framework when soft linking.
374
375         https://webkit.org/b/82371
376         rdar://problem/11125989
377
378         Reviewed by Dan Bernstein.
379
380         * platform/mac/SoftLinking.h: Replaced SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL with
381         SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL and made it use the StagedFrameworks path
382         if the first dlopen failed.
383
384 2012-03-26  Dirk Schulze  <krit@webkit.org>
385
386         Use enumeration for CSS parser mode
387         https://bugs.webkit.org/show_bug.cgi?id=82056
388
389         Reviewed by Antti Koivisto.
390
391         Introduce a new CSSParserMode enum to differ between strict / quirks and SVG presentation
392         attribute parsing modes.
393         The followup patch will make use of the enum in all other classes.
394         After that it will be easier possible to reuse the CSS parser in SVG as much as possible and
395         introduce SVG specific functionality.
396
397         No new tests. No change on functionality yet. This is just a refactoring to use the enumeration.
398
399         * GNUmakefile.list.am: Added new file CSSParserMode.h with the new enum, which can be used by any caller of CSSParser, CSSStyleSheet and others.
400         * Target.pri: Ditto.
401         * WebCore.gypi: Ditto.
402         * WebCore.vcproj/WebCore.vcproj: Ditto.
403         * WebCore.xcodeproj/project.pbxproj: Ditto.
404         * css/CSSGrammar.y: Make use of the new enumeration.
405         * css/CSSParser.cpp: Replaced boolean by enumeration. No change of functionality at this point of time.
406         (WebCore::CSSParser::inStrictMode): Helper function.
407         (WebCore):
408         (WebCore::CSSParser::inQuirksMode): Helper function.
409         (WebCore::CSSParser::CSSParser):
410         (WebCore::CSSParser::validUnit):
411         (WebCore::CSSParser::checkForOrphanedUnits):
412         (WebCore::CSSParser::parseValue):
413         (WebCore::CSSParser::parseSizeParameter):
414         (WebCore::CSSParser::parseBackgroundColor):
415         (WebCore::CSSParser::parseFillPositionX):
416         (WebCore::CSSParser::parseFillPositionY):
417         (WebCore::CSSParser::parseFillPositionComponent):
418         (WebCore::CSSParser::parseFillSize):
419         (WebCore::CSSParser::parseAnimationDelay):
420         (WebCore::CSSParser::parseAnimationDuration):
421         (WebCore::CSSParser::parseAnimationIterationCount):
422         (WebCore::CSSParser::parseTransformOriginShorthand):
423         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
424         (WebCore::CSSParser::parseAnimationTimingFunction):
425         (WebCore::CSSParser::parseGridTrackList):
426         (WebCore::CSSParser::parseDashboardRegions):
427         (WebCore::CSSParser::parseShape):
428         (WebCore::CSSParser::parseWrapShapeRect):
429         (WebCore::CSSParser::parseWrapShapeCircle):
430         (WebCore::CSSParser::parseWrapShapeEllipse):
431         (WebCore::CSSParser::parseWrapShapePolygon):
432         (WebCore::CSSParser::parseFont):
433         (WebCore::CSSParser::parseFontWeight):
434         (WebCore::CSSParser::parseColorParameters):
435         (WebCore::CSSParser::parseHSLParameters):
436         (WebCore::CSSParser::parseColorFromValue):
437         (WebCore::CSSParser::parseShadow):
438         (WebCore::CSSParser::parseReflect):
439         (WebCore::CSSParser::parseFlex):
440         (WebCore::CSSParser::parseBorderImageSlice):
441         (WebCore::CSSParser::parseBorderImageQuad):
442         (WebCore::CSSParser::parseBorderRadius):
443         (WebCore::CSSParser::parseAspectRatio):
444         (WebCore::CSSParser::parseLinearGradient):
445         (WebCore::CSSParser::parseRadialGradient):
446         (WebCore::CSSParser::parseGradientColorStops):
447         (WebCore::CSSParser::parseTransform):
448         (WebCore::CSSParser::parseCustomFilter):
449         (WebCore::CSSParser::parseBuiltinFilterArguments):
450         (WebCore::CSSParser::parseTransformOrigin):
451         (WebCore::CSSParser::createStyleRule):
452         (WebCore::CSSParser::createFontFaceRule):
453         (WebCore::CSSParser::createPageRule):
454         (WebCore::CSSParser::createKeyframeRule):
455         * css/CSSParser.h:
456         (CSSParser):
457         * css/CSSParserMode.h: Added. New enumeration CSSParserMode.
458         * css/SVGCSSParser.cpp: Use new SVGAttributeMode CSS parsing mode.
459         (WebCore::CSSParser::parseSVGValue):
460         (WebCore::CSSParser::parseSVGStrokeDasharray):
461
462 2012-03-27  Nate Chapin  <japhet@chromium.org>
463
464         Don't manually set an identifier for main resource
465         loads in FrameLoader. ResourceLoader::willSendRequest()
466         will set an identifier for the request if one isn't found,
467         so this code appears to be unnecessary duplication.
468         https://bugs.webkit.org/show_bug.cgi?id=82248
469
470         Reviewed by Adam Barth.
471
472         No new tests, no functionality change intended.
473
474         * loader/DocumentLoader.cpp:
475         (WebCore::DocumentLoader::startLoadingMainResource): Mark navigation start
476             here, since it's conceptually part of starting the main resource load.
477         * loader/DocumentLoader.h:
478         * loader/FrameLoader.cpp:
479         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Remove duplicate identifier
480             logic, and move navigation timing call to startLoadingMainResource, since
481             it fits better logically there.
482         * loader/ResourceLoader.h: No callers of setIdentifier() remain, so delete it.
483
484 2012-03-27  Dirk Pranke  <dpranke@chromium.org>
485
486         Unreviewed, rolling out r112277.
487         http://trac.webkit.org/changeset/112277
488         https://bugs.webkit.org/show_bug.cgi?id=81985
489
490         possibly causing crashes?
491
492         * svg/SVGUseElement.cpp:
493         (WebCore::SVGUseElement::insertedIntoDocument):
494         (WebCore::SVGUseElement::svgAttributeChanged):
495         (WebCore::SVGUseElement::willRecalcStyle):
496         (WebCore::SVGUseElement::finishParsingChildren):
497         * xml/XMLErrors.cpp:
498         (WebCore::XMLErrors::insertErrorMessageBlock):
499
500 2012-03-27  Joseph Pecoraro  <pecoraro@apple.com>
501
502         <http://webkit.org/b/82362> Web Inspector: Provide private -[DOMNode inspect]
503
504         Reviewed by Timothy Hatcher.
505
506         No new tests, this is only an ObjC SPI.
507
508         * bindings/objc/DOM.mm:
509         * bindings/objc/DOMPrivate.h:
510         (-[DOMNode inspect]):
511         Call through to InspectorController inspect for the node.
512
513         * inspector/InspectorDOMAgent.cpp:
514         (WebCore::InspectorDOMAgent::handleMousePress):
515         (WebCore::InspectorDOMAgent::inspect):
516         Whenever we inspect an element, clear the node search.
517         The frontend already takes this approach.
518
519 2012-03-27  Joe Mason  <jmason@rim.com>
520
521         [BlackBerry] fix confusing destruction sequence in LayerCompositingThread
522         https://bugs.webkit.org/show_bug.cgi?id=81706
523
524         Reviewed by Rob Buis.
525
526         LayerCompositingThread has a destructor that does a synchronous
527         dispatch to the compositing thread and then does the actual cleanup
528         from a helper function. This is confusing.It should be the
529         opposite: the helper function dispatches to the compositing thread,
530         which calls delete.
531
532         No new tests since the existing animation tests will exercise this
533         code.
534
535         * platform/graphics/blackberry/LayerCompositingThread.cpp:
536         (WebCore::LayerCompositingThread::destroyOnCompositingThread):
537         (WebCore):
538         (WebCore::LayerCompositingThread::~LayerCompositingThread):
539         * platform/graphics/blackberry/LayerCompositingThread.h:
540         (LayerCompositingThread):
541         (WTF):
542         (WTF::::deref):
543
544 2012-03-27  Alexey Proskuryakov  <ap@apple.com>
545
546         [Mac] Stop using NSMapTable in FormDataStreamMac.mm
547         https://bugs.webkit.org/show_bug.cgi?id=82358
548
549         Reviewed by Darin Adler.
550
551         * platform/network/mac/FormDataStreamMac.mm: Use WTF::HashMap, as we always do. All accesses
552         are protected with a mutex anyway.
553
554 2012-03-27  Joe Thomas  <joethomas@motorola.com>
555
556         Implement vw/vh/vmin (viewport sizes) from CSS3 Values and Units
557         https://bugs.webkit.org/show_bug.cgi?id=27160
558
559         Reviewed by Antti Koivisto.
560
561         vw/vh/vmin are implemented as primitive length units. Added the parsing logic for these new units.
562         New Length types such as ViewportRelativeWidth, ViewportRelativeHeight and ViewportRelativeMin are added for these length units
563         and included the support for fetching the value of these relative units based on the current viewport size.
564
565         The specification related to this implementation is http://dev.w3.org/csswg/css3-values/#viewport-relative-lengths.
566
567         Tests: css3/viewport-relative-lengths/css3-viewport-relative-lengths-getStyle.html
568                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vh-absolute.html
569                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vh.html
570                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vmin-absolute.html
571                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vmin.html
572                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vw-absolute.html
573                css3/viewport-relative-lengths/css3-viewport-relative-lengths-vw.html
574
575         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp: Modified to support viewport relative Length types.
576         (getAttributeSetForAccessibilityObject):
577         * css/CSSComputedStyleDeclaration.cpp: Ditto.
578         (WebCore::getPositionOffsetValue):
579         (WebCore::getBorderRadiusCornerValues):
580         (WebCore::getBorderRadiusCornerValue):
581         (WebCore::getBorderRadiusShorthandValue):
582         (WebCore::lineHeightFromStyle):
583         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
584         * css/CSSGrammar.y: Added vw/vh/vmin support.
585         * css/CSSParser.cpp: Parsing of relative units and creation of CSSPrimitiveValue.
586         (WebCore::CSSParser::validUnit): Added vw/vh/vmin to the valid units.
587         (WebCore::CSSParser::createPrimitiveNumericValue): Added vw/vh/vmin as valid primitive units.
588         (WebCore::unitFromString):
589         (WebCore::CSSParser::parseValidPrimitive): Creation of CSSPrimitiveValue for vw/vh/vmin.
590         (WebCore::CSSParser::detectNumberToken): Parsing the vw/vh/vmin tokens.
591         * css/CSSPrimitiveValue.cpp:
592         (WebCore::isValidCSSUnitTypeForDoubleConversion): Added support for vw/vh/vmin.
593         (WebCore::unitCategory): Ditto.
594         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
595         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory): Added support for vw/vh/vmin.
596         (WebCore::CSSPrimitiveValue::customCssText): Ditto.
597         (WebCore::CSSPrimitiveValue::viewportRelativeLength): Function to create the Length structure for the viewport-relative unit types.
598         (WebCore):
599         * css/CSSPrimitiveValue.h:
600         (WebCore::CSSPrimitiveValue::isViewportRelativeLength): Checks whether the primitive value is ViewportRelative Lengths.
601         (CSSPrimitiveValue):
602         * css/CSSPrimitiveValue.idl: Added support for vw/vh/vmin.
603         * css/CSSPrimitiveValueMappings.h:
604         (WebCore::CSSPrimitiveValue::convertToLength): Ditto.
605         * css/CSSStyleApplyProperty.cpp: Applying relative viewport length units to the specific CSS property.
606         (WebCore::ApplyPropertyLength::applyValue):
607         (WebCore::ApplyPropertyBorderRadius::applyValue):
608         (WebCore::ApplyPropertyFontSize::applyValue):
609         (WebCore::ApplyPropertyLineHeight::applyValue):
610         (WebCore::ApplyPropertyVerticalAlign::applyValue):
611         * css/CSSStyleSelector.cpp: Added support for viewport relative units.
612         * css/LengthFunctions.cpp: Calcuation of length value based on the current viewport size.
613         (WebCore::miminumValueForLength):
614         (WebCore::valueForLength):
615         (WebCore::floatValueForLength):
616         * css/LengthFunctions.h: Added new RenderView argument.
617         (WebCore):
618         * dom/Document.cpp:
619         (WebCore::Document::pageSizeAndMarginsInPixels): Modified to support viewport relative Length types.
620         (WebCore::Document::viewportSize): New function to fetch the current viewport size.
621         (WebCore):
622         * dom/Document.h: Ditto.
623         (Document):
624         * html/HTMLAreaElement.cpp: Modified to support viewport relative Length types.
625         (WebCore::HTMLAreaElement::getRegion):
626         * platform/Length.h:
627         (WebCore::Length::isViewportRelative): To check the Length is of type ViewportRelative.
628         (WebCore::Length::viewportRelativeLength): To get the relative value.
629         * rendering/RenderBR.cpp: Modified to support viewport relative Length types.
630         (WebCore::RenderBR::lineHeight):
631         * rendering/RenderBlock.cpp: Ditto.
632         (WebCore::RenderBlock::textIndentOffset):
633         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
634         (WebCore::RenderBlock::lineHeight):
635         * rendering/RenderBox.cpp: Ditto.
636         (WebCore::RenderBox::reflectionOffset):
637         (WebCore::RenderBox::paintBoxDecorations):
638         (WebCore::RenderBox::clipRect):
639         (WebCore::RenderBox::computeLogicalWidthInRegion):
640         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
641         (WebCore::RenderBox::computeInlineDirectionMargins):
642         (WebCore::RenderBox::computeContentLogicalHeightUsing):
643         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
644         (WebCore::RenderBox::computeBlockDirectionMargins):
645         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
646         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
647         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
648         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
649         * rendering/RenderBoxModelObject.cpp: Ditto.
650         (WebCore::RenderBoxModelObject::relativePositionOffsetX):
651         (WebCore::RenderBoxModelObject::relativePositionOffsetY):
652         (WebCore::RenderBoxModelObject::paddingTop):
653         (WebCore::RenderBoxModelObject::paddingBottom):
654         (WebCore::RenderBoxModelObject::paddingLeft):
655         (WebCore::RenderBoxModelObject::paddingRight):
656         (WebCore::RenderBoxModelObject::paddingBefore):
657         (WebCore::RenderBoxModelObject::paddingAfter):
658         (WebCore::RenderBoxModelObject::paddingStart):
659         (WebCore::RenderBoxModelObject::paddingEnd):
660         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
661         (WebCore::RenderBoxModelObject::calculateFillTileSize):
662         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
663         (WebCore::computeBorderImageSide):
664         (WebCore::RenderBoxModelObject::paintNinePieceImage):
665         (WebCore::RenderBoxModelObject::paintBorder):
666         (WebCore::RenderBoxModelObject::paintBoxShadow):
667         * rendering/RenderFlexibleBox.cpp: Ditto.
668         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
669         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
670         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
671         * rendering/RenderInline.cpp: Ditto.
672         (WebCore::computeMargin):
673         (WebCore::RenderInline::lineHeight):
674         * rendering/RenderMenuList.cpp: Ditto.
675         (WebCore::RenderMenuList::updateOptionsWidth):
676         * rendering/RenderObject.cpp: Ditto.
677         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
678         * rendering/RenderReplaced.cpp: Ditto.
679         (WebCore::RenderReplaced::paint):
680         * rendering/RenderScrollbarPart.cpp: Ditto.
681         (WebCore::calcScrollbarThicknessUsing):
682         (WebCore::RenderScrollbarPart::computeScrollbarWidth):
683         (WebCore::RenderScrollbarPart::computeScrollbarHeight):
684         * rendering/RenderTable.cpp: Ditto.
685         (WebCore::RenderTable::computeLogicalWidth):
686         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
687         * rendering/RenderTableCell.cpp: Ditto.
688         (WebCore::RenderTableCell::logicalHeightForRowSizing):
689         * rendering/RenderTableSection.cpp: Ditto.
690         (WebCore::RenderTableSection::calcRowLogicalHeight):
691         * rendering/RenderText.h: Ditto.
692         (WebCore::RenderText::marginLeft):
693         (WebCore::RenderText::marginRight):
694         * rendering/RenderThemeMac.mm: Ditto.
695         (WebCore::RenderThemeMac::paintMenuListButtonGradients):
696         * rendering/RenderView.h:
697         (WebCore::RenderView::viewportSize):
698         * rendering/RenderWidget.cpp: Ditto.
699         (WebCore::RenderWidget::paint):
700         * rendering/RootInlineBox.cpp: Ditto.
701         (WebCore::RootInlineBox::verticalPositionForBox):
702         * rendering/style/RenderStyle.cpp: Ditto.
703         (WebCore::calcRadiiFor):
704         (WebCore::RenderStyle::getRoundedBorderFor):
705         * rendering/style/RenderStyle.h: Ditto.
706         * rendering/svg/RenderSVGRoot.cpp: Ditto.
707         (WebCore::resolveLengthAttributeForSVG):
708         (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
709         (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
710
711 2012-03-27  Gao Chun  <chun.gao@intel.com>
712
713         Remove deprecated LowPass2FilterNode and HighPass2FilterNode
714         https://bugs.webkit.org/show_bug.cgi?id=82296
715
716         Reviewed by Chris Rogers.
717
718         * CMakeLists.txt:
719         * DerivedSources.make:
720         * DerivedSources.pri:
721         * GNUmakefile.list.am:
722         * Modules/webaudio/AudioContext.cpp:
723         * Modules/webaudio/AudioContext.h:
724         (WebCore):
725         (AudioContext):
726         * Modules/webaudio/AudioContext.idl:
727         * Modules/webaudio/AudioNode.h:
728         * Modules/webaudio/BiquadFilterNode.cpp:
729         (WebCore::BiquadFilterNode::BiquadFilterNode):
730         * Modules/webaudio/BiquadProcessor.cpp:
731         * Modules/webaudio/BiquadProcessor.h:
732         * Modules/webaudio/HighPass2FilterNode.cpp: Removed.
733         * Modules/webaudio/HighPass2FilterNode.h: Removed.
734         * Modules/webaudio/HighPass2FilterNode.idl: Removed.
735         * Modules/webaudio/LowPass2FilterNode.cpp: Removed.
736         * Modules/webaudio/LowPass2FilterNode.h: Removed.
737         * Modules/webaudio/LowPass2FilterNode.idl: Removed.
738         * WebCore.gypi:
739         * WebCore.xcodeproj/project.pbxproj:
740
741 2012-03-27  Sami Kyostila  <skyostil@chromium.org>
742
743         [chromium] Add TextureCopier for copying texture contents
744         https://bugs.webkit.org/show_bug.cgi?id=80870
745
746         Reviewed by Stephen White.
747
748         This patch introduces a TextureCopier class whose job is to copy the
749         contents from one GL texture to another using the most efficient means
750         for the current GPU. This version uses render-to-texture to do the copy,
751         but a path based on EXT_framebuffer_blit can be added later.
752
753         The class is intended to replace the use of image path operations such
754         as glCopyTex{Sub}Image2D for duplicating texture contents. The reason is
755         that such functions may not be very well optimized in some -- mainly
756         mobile -- GPU drivers.
757
758         With this patch the new copier is used just for Canvas2D layer
759         presentation, but another potential use is for WebGL layer presentation.
760
761         Test: webkit_unit_tests: TextureCopierTest
762
763         * WebCore.gypi:
764         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
765         (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
766         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
767         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
768         * platform/graphics/chromium/Canvas2DLayerChromium.h:
769         (Canvas2DLayerChromium):
770         * platform/graphics/chromium/LayerRendererChromium.cpp:
771         (WebCore::LayerRendererChromium::initializeSharedObjects):
772         * platform/graphics/chromium/LayerRendererChromium.h:
773         (WebCore):
774         (WebCore::LayerRendererChromium::textureCopier):
775         (LayerRendererChromium):
776         * platform/graphics/chromium/ShaderChromium.cpp:
777         (WebCore::VertexShaderPosTexIdentity::getShaderString):
778         (WebCore):
779         (WebCore::FragmentShaderRGBATexCopy::getShaderString):
780         * platform/graphics/chromium/ShaderChromium.h:
781         (VertexShaderPosTexIdentity):
782         (WebCore::VertexShaderPosTexIdentity::init):
783         (WebCore):
784         (FragmentShaderRGBATexCopy):
785         * platform/graphics/chromium/TextureCopier.cpp: Added.
786         (WebCore):
787         (WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
788         (WebCore::AcceleratedTextureCopier::~AcceleratedTextureCopier):
789         (WebCore::AcceleratedTextureCopier::copyTexture):
790         * platform/graphics/chromium/TextureCopier.h: Added.
791         (WebCore):
792         (TextureCopier):
793         (WebCore::TextureCopier::~TextureCopier):
794         (AcceleratedTextureCopier):
795         (WebCore::AcceleratedTextureCopier::create):
796         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
797         (WebCore::CCSingleThreadProxy::doCommit):
798         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
799         (WebCore::CCTextureUpdater::CCTextureUpdater):
800         * platform/graphics/chromium/cc/CCTextureUpdater.h:
801         (WebCore):
802         (CCTextureUpdater):
803         (WebCore::CCTextureUpdater::copier):
804         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
805         (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
806
807 2012-03-27  Levi Weintraub  <leviw@chromium.org>
808
809         Correct SVG paint functions that are still using IntPoints
810         https://bugs.webkit.org/show_bug.cgi?id=82343
811
812         Reviewed by Eric Seidel.
813
814         Two small corrections to SVG paint functions that should use LayoutPoint instead
815         of IntPoint.
816
817         No new tests. No change in behavior.
818
819         * rendering/svg/RenderSVGShape.cpp:
820         (WebCore::RenderSVGShape::paint):
821         * rendering/svg/RenderSVGText.cpp:
822         (WebCore::RenderSVGText::paint):
823
824 2012-03-27  Zalan Bujtas  <zbujtas@gmail.com>
825
826         Frame flattening: childframe in FrameView::layout() needs protector.
827         https://bugs.webkit.org/show_bug.cgi?id=82345
828
829         Reviewed by Kenneth Rohde Christiansen.
830
831         RefPtr<FrameView> protector(this) is supposed to protect the current frameview in
832         FrameView::layout() from being destroyed by recalcStyle().
833         However, when frame flattening is on and a child frame is re-starting layout from
834         the topmost parent, the protection is missing and parent's recalcStyle()
835         can destroy the child frame.
836         Moving the protector before the layout re-starting is initiated makes the child frame
837         safe.
838
839         No new tests. Unable to create a test case, where this scenario is reproducible.
840
841         * page/FrameView.cpp:
842         (WebCore::FrameView::layout):
843
844 2012-03-27  Antti Koivisto  <antti@apple.com>
845
846         Construct CSSCharsetRule on CSSOM API access only 
847         https://bugs.webkit.org/show_bug.cgi?id=82332
848
849         Reviewed by Andreas Kling.
850
851         Charset is just a string. There is usually no need to construct CSSCharsetRule at all.
852         
853         - Make CSS parser to return encoding string instead of CSSCharsetRule object. This
854           string is used for constructing CSSCharsetRule if it is needed (and nothing else,
855           @charset has no effect after string decoding).
856         - Remove internal interface for adding and removing rules. It has no clients.
857         
858         * css/CSSGrammar.y:
859         * css/CSSParser.cpp:
860         (WebCore):
861         * css/CSSParser.h:
862         * css/CSSStyleSelector.cpp:
863         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
864         * css/CSSStyleSheet.cpp:
865         (WebCore::CSSStyleSheet::~CSSStyleSheet):
866         (WebCore::CSSStyleSheet::parserAppendRule):
867         (WebCore::CSSStyleSheet::ensureCharsetRule):
868         (WebCore):
869         (WebCore::CSSStyleSheet::length):
870         (WebCore::CSSStyleSheet::item):
871         (WebCore::CSSStyleSheet::clearCharsetRule):
872         (WebCore::CSSStyleSheet::clearRules):
873         (WebCore::CSSStyleSheet::parserSetEncodingFromCharsetRule):
874         (WebCore::CSSStyleSheet::rules):
875         (WebCore::CSSStyleSheet::insertRule):
876         (WebCore::CSSStyleSheet::addRule):
877         (WebCore::CSSStyleSheet::deleteRule):
878         * css/CSSStyleSheet.h:
879         (WebCore):
880         (CSSStyleSheet):
881         (WebCore::CSSStyleSheet::ruleVector):
882         (WebCore::CSSStyleSheet::hasCharsetRule):
883         * inspector/InspectorStyleSheet.cpp:
884         (WebCore::InspectorStyleSheet::reparseStyleSheet):
885
886 2012-03-27  Stephen White  <senorblanco@chromium.org>
887
888         [chromium] Fix filter context creation to be more conservative.
889         https://bugs.webkit.org/show_bug.cgi?id=82349
890
891         Reviewed by James Robinson.
892
893         Covered by webkit_unit_tests, and css3/filters layout tests.
894
895         * platform/graphics/chromium/LayerChromium.cpp:
896         (WebCore::LayerChromium::setFilters):
897         Only request a filter context if the filter lists is non-empty.
898         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
899         (WebCore::CCLayerTreeHost::setNeedsFilterContext):
900         Add a bool param, so tests can cancel a request for filter contexts.
901
902 2012-03-27  Stephen Chenney  <schenney@chromium.org>
903
904         <svg:use> elements in the parser can create elements not marked as created by the parser
905         https://bugs.webkit.org/show_bug.cgi?id=81985
906
907         Reviewed by Adam Barth.
908
909         The SVGUseElement was creating its shadow tree immediately upon
910         demand. This resulted in nodes being created that were not marked as
911         "createdByParser", even during parsing. As it happens, there is
912         already code in there to track "createdByParser" in the SVGUseElement,
913         it was just being ignored all the time. This may even have been
914         inefficient. Now we delay creating the shadow dom tree until children
915         are finished, which is the standard time to handle the createdByParser
916         flag.
917
918         I also verified that other SVG classes that derived from core DOM
919         classes that use the createdByParser flag do correctly pass this flag
920         on.
921
922         No new tests as this is covered by existing tests and does not have new behavior.
923
924         * svg/SVGUseElement.cpp:
925         (WebCore::SVGUseElement::insertedIntoDocument):
926         (WebCore::SVGUseElement::svgAttributeChanged):
927         (WebCore::SVGUseElement::willRecalcStyle):
928         (WebCore::SVGUseElement::finishParsingChildren):
929         * xml/XMLErrors.cpp:
930         (WebCore::XMLErrors::insertErrorMessageBlock):
931
932 2012-03-27  Ming Xie  <mxie@rim.com>
933
934         [BlackBerry] Disable DisallowCType.h usage
935         https://bugs.webkit.org/show_bug.cgi?id=82211
936
937         Reviewed by Rob Buis.
938
939         Build fix: QNX port does use ctype.h, so we should not
940         include <wtf/DisallowCType.h> in WebCore/config.h
941
942         No new tests - Build Fix
943
944         * config.h:
945
946 2012-03-27  Hao Zheng  <zhenghao@chromium.org>
947
948         Change default position attribute of media control panel to relative for Android.
949         https://bugs.webkit.org/show_bug.cgi?id=82303
950
951         Reviewed by Eric Carlson.
952
953         Follow up https://bugs.webkit.org/show_bug.cgi?id=79746 .
954
955         * css/mediaControlsChromiumAndroid.css:
956         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
957
958 2012-03-27  Alexei Filippov  <alexeif@chromium.org>
959
960         Web Inspector: Speed up snapshot parsing.
961         https://bugs.webkit.org/show_bug.cgi?id=82325
962
963         Replacing the iterators with raw nodes/edges access speeds up
964         some phases phasses up to 10 times, taking down the whole init
965         time to less than 6 sec.
966
967         Reviewed by Yury Semikhatsky.
968
969         * inspector/front-end/HeapSnapshot.js:
970         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
971         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
972         (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
973
974 2012-03-27  Antti Koivisto  <antti@apple.com>
975
976         Assertion failure in acid2.
977
978         Rubber-stamped by Andreas Kling.
979
980         Remove assert added in http://trac.webkit.org/changeset/112258. It seems insertedInto/removedFromDocument
981         don't always pair.
982
983         * svg/SVGDocumentExtensions.cpp:
984         (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
985
986 2012-03-27  Yury Semikhatsky  <yurys@chromium.org>
987
988         Web Inspector: simplify heap profiler front-end
989         https://bugs.webkit.org/show_bug.cgi?id=82338
990
991         Simplify constructors of WebInspector.HeapSnapshotArraySlice and
992         WebInspector.HeapSnapshotEdgesProvider.
993
994         Reviewed by Pavel Feldman.
995
996         * inspector/front-end/HeapSnapshot.js:
997         (WebInspector.HeapSnapshotArraySlice):
998         (WebInspector.HeapSnapshotArraySlice.prototype.item):
999         (WebInspector.HeapSnapshotArraySlice.prototype.slice):
1000         (WebInspector.HeapSnapshotNode.prototype.get rawEdges):
1001         (WebInspector.HeapSnapshot.prototype._retainersForNode):
1002         (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
1003         (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
1004         (WebInspector.HeapSnapshotEdgesProvider):
1005
1006 2012-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
1007
1008         Web Inspector: Tabbed pane should set focus on its contents on tab click.
1009         https://bugs.webkit.org/show_bug.cgi?id=82323
1010
1011         Reviewed by Pavel Feldman.
1012
1013         Otherwise selected tab does not have focus.
1014         Also added tabIndex on tabElements to prevent pasting on closing middle click.
1015
1016         * inspector/front-end/TabbedPane.js:
1017         (WebInspector.TabbedPane):
1018         (WebInspector.TabbedPane.prototype.focus):
1019         (WebInspector.TabbedPane.prototype.selectTab):
1020         (WebInspector.TabbedPaneTab.prototype._createTabElement):
1021         (WebInspector.TabbedPaneTab.prototype._tabClicked):
1022
1023 2012-03-27  Pavel Podivilov  <podivilov@chromium.org>
1024
1025         Web Inspector: dispatch breakpoint-added and breakpoint-removed events on UISourceCode.
1026         https://bugs.webkit.org/show_bug.cgi?id=82318
1027
1028         Reviewed by Vsevolod Vlasov.
1029
1030         Breakpoint-added and breakpoint-removed events are always related to specific UISourceCode.
1031         See bug 82224 for more details.
1032
1033         * inspector/front-end/BreakpointManager.js:
1034         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
1035         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
1036         * inspector/front-end/DebuggerPresentationModel.js:
1037         (WebInspector.DebuggerPresentationModel):
1038         (WebInspector.UISourceCodeImpl.prototype.breakpointAdded):
1039         (WebInspector.UISourceCodeImpl.prototype.breakpointRemoved):
1040         * inspector/front-end/ScriptsPanel.js:
1041         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
1042         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
1043         (WebInspector.ScriptsPanel.prototype._addBreakpointListeners):
1044         (WebInspector.ScriptsPanel.prototype._removeBreakpointListeners):
1045         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
1046         * inspector/front-end/UISourceCode.js:
1047
1048 2012-03-27  Jason Liu  <jason.liu@torchmobile.com.cn>
1049
1050         [BlackBerry]Cleanup WTF string in platform/network/blackberry
1051         https://bugs.webkit.org/show_bug.cgi?id=82005
1052
1053         Reviewed by Rob Buis.
1054
1055         No new tests. Just replace WTF::String with String.
1056
1057         * platform/network/blackberry/NetworkJob.cpp:
1058         (WebCore::NetworkJob::handleNotifyDataReceived):
1059
1060 2012-03-27  Alexander Pavlov  <apavlov@chromium.org>
1061
1062         Web Inspector: Enable "number" parameters in the web inspector protocol methods
1063         https://bugs.webkit.org/show_bug.cgi?id=82334
1064
1065         The generated protocol dispatcher does not understand protocol method parameters of type "number"
1066         (mapped to "double" in the native code.)
1067
1068         Reviewed by Vsevolod Vlasov.
1069
1070         * inspector/CodeGeneratorInspector.py:
1071         (RawTypes.Number.get_getter_name):
1072         (RawTypes.Number.get_c_initializer):
1073         (RawTypes.Number.get_js_bind_type):
1074         (RawTypes.Number.get_validate_method_params.ValidateMethodParams):
1075         (RawTypes.Number.get_validate_method_params):
1076
1077 2012-03-27  Alexei Filippov  <alexeif@chromium.org>
1078
1079         Web Inspector: Fix missing objects in the dominators view.
1080         https://bugs.webkit.org/show_bug.cgi?id=82194
1081
1082         Due to the nature of dominators tree it is not possible to hide internal
1083         objects there because they may happen to contain user objects that can't
1084         be hidden.
1085         Besides that it fixes a small bug in HeapSnapshotArraySlice.slice
1086         function.
1087
1088         Reviewed by Yury Semikhatsky.
1089
1090         * inspector/front-end/DetailedHeapshotGridNodes.js:
1091         (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createProvider):
1092         * inspector/front-end/HeapSnapshot.js:
1093         (WebInspector.HeapSnapshotArraySlice.prototype.slice):
1094
1095 2012-03-27  Antti Koivisto  <antti@apple.com>
1096
1097         Remove Document::mappedElementSheet() 
1098         https://bugs.webkit.org/show_bug.cgi?id=82242
1099
1100         Reviewed by Andreas Kling and Nikolas Zimmermann.
1101
1102         The only thing this is used for anymore is SVGFontFaceElement. That can be handled without
1103         the confusing extra stylesheet.
1104
1105         * css/CSSStyleSelector.cpp:
1106         (WebCore::CSSStyleSelector::CSSStyleSelector):
1107         * css/CSSStyleSelector.h:
1108         (CSSStyleSelector):
1109         
1110             - Add font face rules from registered SVGFontFaceElements.
1111             - Simplify the constructor signature. Stylesheets are part of the document.
1112             
1113         * dom/Document.cpp:
1114         (WebCore::Document::~Document):
1115         (WebCore::Document::createStyleSelector):
1116         (WebCore):
1117         (WebCore::Document::updateBaseURL):
1118         * dom/Document.h:
1119         (WebCore):
1120         (WebCore::Document::documentUserSheets):
1121         (Document):
1122
1123             - Remove mappedElementSheet        
1124             - Adapt to the CSSStyleSelector constructor signature changes.
1125
1126         * svg/SVGDocumentExtensions.cpp:
1127         (WebCore::SVGDocumentExtensions::svgFontFaceElements):
1128         (WebCore):
1129         (WebCore::SVGDocumentExtensions::registerSVGFontFaceElement):
1130         (WebCore::SVGDocumentExtensions::unregisterSVGFontFaceElement):
1131         * svg/SVGDocumentExtensions.h:
1132         (WebCore):
1133         (SVGDocumentExtensions):
1134         
1135             - Add map for SVGFontFaceElements
1136
1137         * svg/SVGFontFaceElement.cpp:
1138         (WebCore::SVGFontFaceElement::insertedIntoDocument):
1139         (WebCore::SVGFontFaceElement::removedFromDocument):
1140         (WebCore):
1141         * svg/SVGFontFaceElement.h:
1142         (SVGFontFaceElement):
1143         (WebCore::SVGFontFaceElement::fontFaceRule):
1144         
1145             - Switch to updating svgFontFaceElements map.
1146             - Use elementSheet as the parent sheet (nothing is ever added to the elementSheet, it is used for
1147               resolving relative URLs only).
1148
1149 2012-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
1150
1151         Web Inspector: startEditing should remove tabIndex attribute from the element if it was not set before.
1152         https://bugs.webkit.org/show_bug.cgi?id=82322
1153
1154         Reviewed by Pavel Feldman.
1155
1156         This patch removes tabIndex attribute from the element after editing if it was not present before.
1157         Otherwise tabIndex becomes set unexpectedly after exiting edit mode.
1158
1159         * inspector/front-end/UIUtils.js:
1160         (WebInspector.startEditing.cleanUpAfterEditing):
1161
1162 2012-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
1163
1164         Web Inspector: Tree outline should not start search on key press if it is being edited.
1165         https://bugs.webkit.org/show_bug.cgi?id=82327
1166
1167         Reviewed by Pavel Feldman.
1168
1169         This is needed for snippet renaming support.
1170
1171         * inspector/front-end/treeoutline.js:
1172         (TreeOutline):
1173         (TreeOutline.prototype._treeKeyPress):
1174
1175 2012-03-27  Levi Weintraub  <leviw@chromium.org>
1176
1177         Revert RenderApplet::intrinsicSize to integers
1178         https://bugs.webkit.org/show_bug.cgi?id=82206
1179
1180         Reviewed by Eric Seidel.
1181
1182         Intrinsic sizes originate either outside of WebCore, or from their initial values,
1183         which are always integers. Reverting RenderApplet::intrinsicSize to integers, the
1184         last spot improperly using LayoutUnits
1185
1186         No new tests. No change in behavior.
1187
1188         * rendering/RenderApplet.cpp:
1189         (WebCore::RenderApplet::intrinsicSize):
1190         * rendering/RenderApplet.h:
1191         (RenderApplet):
1192
1193
1194 2012-03-27  Alexis Menard  <alexis.menard@openbossa.org>
1195
1196         Increase code sharing between CSSComputedStyleDeclaration and CSSPropertyLonghand.
1197         https://bugs.webkit.org/show_bug.cgi?id=82261
1198
1199         Reviewed by Ryosuke Niwa.
1200
1201         Use longhands declaration from CSSPropertyLonghand in CSSComputedStyleDeclaration to avoid
1202         code duplication.
1203
1204         No new tests : refactoring only, we shouldn't have any behavior difference.
1205
1206         * css/CSSComputedStyleDeclaration.cpp:
1207         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1208         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForShorthandProperties):
1209         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
1210         * css/CSSComputedStyleDeclaration.h:
1211         (WebCore):
1212         (CSSComputedStyleDeclaration):
1213         * css/CSSPropertyLonghand.cpp:
1214         (WebCore::outlineLonghand):
1215         Re-order to match the spec default order and also remove outline-offset as it is not part
1216         of the shorthand (http://www.w3.org/TR/css3-ui/#outline). Luckily this was cover by a layout test.
1217
1218 2012-03-27  Vsevolod Vlasov  <vsevik@chromium.org>
1219
1220         Web Inspector: Editable TextViewer should show cursor when it is focused.
1221         https://bugs.webkit.org/show_bug.cgi?id=82320
1222
1223         Reviewed by Pavel Feldman.
1224
1225         TextViewer now focuses editable inner container unless read-only flag is set.
1226
1227         * inspector/front-end/TextViewer.js:
1228         (WebInspector.TextViewer.prototype.focus):
1229         (WebInspector.TextEditorMainPanel):
1230         (WebInspector.TextEditorMainPanel.prototype._handleElementFocus):
1231         (WebInspector.TextEditorMainPanel.prototype.focus):
1232
1233 2012-03-26  Levi Weintraub  <leviw@chromium.org>
1234
1235         Unreviewed. Removing change markers from ChangeLog.
1236
1237 2012-03-26  Levi Weintraub  <leviw@chromium.org>
1238
1239         Convert RenderSelectionInfo::rect to LayoutUnits
1240         https://bugs.webkit.org/show_bug.cgi?id=82213
1241
1242         Reviewed by Eric Seidel.
1243
1244         RenderSelectionInfoBase stores a cached repaint rect in local coordinates. Coordinates local to
1245         renderers should be stored in LayoutUnits.
1246
1247         No new tests. No change in behavior.
1248
1249         * rendering/RenderSelectionInfo.h:
1250         (WebCore::RenderSelectionInfo::rect):
1251         (RenderSelectionInfo):
1252
1253 2012-03-26  Levi Weintraub  <leviw@chromium.org>
1254
1255         Convert RenderSelectionInfo::rect to LayoutUnits
1256         https://bugs.webkit.org/show_bug.cgi?id=82213
1257
1258         Reviewed by Eric Seidel.
1259
1260         RenderSelectionInfoBase stores a cached repaint rect in local coordinates. Coordinates
1261         local to renderers should be stored in LayoutUnits as described in
1262         http://trac.webkit.org/wiki/LayoutUnit
1263
1264         No new tests. No change in behavior.
1265
1266         * rendering/RenderSelectionInfo.h:
1267         (WebCore::RenderSelectionInfo::rect):
1268         (RenderSelectionInfo):
1269
1270 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1271
1272         Enable animVal support for SVGAnimatedRect
1273         https://bugs.webkit.org/show_bug.cgi?id=82317
1274
1275         Reviewed by Zoltan Herczeg.
1276
1277         Enable animVal support for SVGAnimatedRect. Very simple now that everything is prepared.
1278         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedRectAnimator.
1279
1280         Extended existing tests to cover this.
1281
1282         * svg/SVGAnimatedRect.cpp:
1283         (WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
1284         (WebCore::SVGAnimatedRectAnimator::stopAnimValAnimation):
1285         (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
1286         (WebCore::SVGAnimatedRectAnimator::animValWillChange):
1287         (WebCore::SVGAnimatedRectAnimator::animValDidChange):
1288         * svg/SVGAnimatedRect.h:
1289         (SVGAnimatedRectAnimator):
1290         * svg/SVGAnimatedType.cpp:
1291         (WebCore::SVGAnimatedType::supportsAnimVal):
1292
1293 2012-03-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1294
1295         Unreviewed, rolling out r112201.
1296         http://trac.webkit.org/changeset/112201
1297         https://bugs.webkit.org/show_bug.cgi?id=82302
1298
1299         Breaks chromium's WebPageSerializerTest.HTMLNodes test
1300         (Requested by pfeldman on #webkit).
1301
1302         * loader/cache/CachedCSSStyleSheet.cpp:
1303         (WebCore::CachedCSSStyleSheet::error):
1304         (WebCore):
1305         * loader/cache/CachedCSSStyleSheet.h:
1306         (CachedCSSStyleSheet):
1307         * loader/cache/CachedFont.cpp:
1308         (WebCore):
1309         (WebCore::CachedFont::error):
1310         * loader/cache/CachedFont.h:
1311         (CachedFont):
1312         * loader/cache/CachedImage.cpp:
1313         (WebCore::CachedImage::error):
1314         * loader/cache/CachedResource.h:
1315         (CachedResource):
1316         * loader/cache/CachedScript.cpp:
1317         (WebCore::CachedScript::error):
1318         (WebCore):
1319         * loader/cache/CachedScript.h:
1320         (CachedScript):
1321         * loader/cache/CachedXSLStyleSheet.cpp:
1322         (WebCore::CachedXSLStyleSheet::error):
1323         (WebCore):
1324         * loader/cache/CachedXSLStyleSheet.h:
1325         (CachedXSLStyleSheet):
1326
1327 2012-03-27  Levi Weintraub  <leviw@chromium.org>
1328
1329         LayoutRepainter: Remove unused constructor parameter and update to LayoutUnits
1330         https://bugs.webkit.org/show_bug.cgi?id=82185
1331
1332         Reviewed by Eric Seidel.
1333
1334         Removing an optional parameter for old bounds in LayoutRepainter's constructor that
1335         is no longer used. The old bounds are instead always gleaned from the renderer's
1336         clippedOverflowRectForRepaint.
1337
1338         The renderer's bounds and outline rect also are stored in LayoutUnits to properly
1339         detect sub-pixel changes during layout. Eventually, we'll pixel snap these values
1340         when telling the embedder to invalidate. Adding a comment to that effect.
1341
1342         No new tests. No change in behavior.
1343
1344         * rendering/LayoutRepainter.cpp:
1345         (WebCore::LayoutRepainter::LayoutRepainter):
1346         * rendering/LayoutRepainter.h:
1347         (LayoutRepainter):
1348
1349 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1350
1351         Enable animVal support for SVGAnimatedString
1352         https://bugs.webkit.org/show_bug.cgi?id=82316
1353
1354         Reviewed by Zoltan Herczeg.
1355
1356         Enable animVal support for SVGAnimatedString. Very simple now that everything is prepared.
1357         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedStringAnimator.
1358
1359         Test: svg/animations/svgstring-animation-1.html
1360
1361         * svg/SVGAnimatedString.cpp:
1362         (WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
1363         (WebCore::SVGAnimatedStringAnimator::stopAnimValAnimation):
1364         (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
1365         (WebCore::SVGAnimatedStringAnimator::animValWillChange):
1366         (WebCore::SVGAnimatedStringAnimator::animValDidChange):
1367         * svg/SVGAnimatedString.h:
1368         (SVGAnimatedStringAnimator):
1369         * svg/SVGAnimatedType.cpp:
1370         (WebCore::SVGAnimatedType::supportsAnimVal):
1371
1372 2012-03-27  Levi Weintraub  <leviw@chromium.org>
1373
1374         Update usage of LayoutUnits in RenderListMarker
1375         https://bugs.webkit.org/show_bug.cgi?id=81921
1376
1377         Reviewed by Eric Seidel.
1378
1379         Implementing proper pixel snapping in list marker painting, and correcting usage of integers
1380         for local coordinates/margins that should be sub-pixel.
1381
1382         No new tests. No change in behavior.
1383
1384         * rendering/RenderListMarker.cpp:
1385         (WebCore::RenderListMarker::localSelectionRect): Changed to LayoutUnits since this represents
1386         a rect in local coordinates.
1387         (WebCore::RenderListMarker::paint): Doing proper pixel snapping, and using integers for
1388         results from text measurement.
1389         (WebCore::RenderListMarker::computePreferredLogicalWidths): Using integers for results
1390         from text measurement.
1391         (WebCore::RenderListMarker::updateMargins): Fixing to be LayoutUnits.
1392         * rendering/RenderListMarker.h:
1393         (RenderListMarker):
1394
1395 2012-03-27  Levi Weintraub  <leviw@chromium.org>
1396
1397         Revert linesBoundingBox to integers
1398         https://bugs.webkit.org/show_bug.cgi?id=82182
1399
1400         Reviewed by Eric Seidel.
1401
1402         LayoutRects are intended to be pixel snapped to determine the ultimate screen
1403         coordinates, but the Inline Box tree is laid out using floats, and pixel snapping
1404         the resulting box from linesBoundingBox would produce a potentially incorrect
1405         rectangle. Keeping this using enclosingIntRect retains the previous accuracy and
1406         prevents misuse.
1407
1408         No new tests. No change in behavior.
1409
1410         * rendering/RenderInline.cpp:
1411         (WebCore::RenderInline::linesBoundingBox):
1412         * rendering/RenderInline.h:
1413         (RenderInline):
1414         * rendering/RenderLayer.cpp:
1415         (WebCore::RenderLayer::updateLayerPosition):
1416         * rendering/RenderText.cpp:
1417         (WebCore::RenderText::linesBoundingBox):
1418         * rendering/svg/RenderSVGInlineText.cpp:
1419         (WebCore::RenderSVGInlineText::linesBoundingBox):
1420         * rendering/svg/RenderSVGInlineText.h:
1421         (RenderSVGInlineText):
1422
1423 2012-03-26  Pavel Podivilov  <podivilov@chromium.org>
1424
1425         Web Inspector: store UIBreakpoints on UISourceCode.
1426         https://bugs.webkit.org/show_bug.cgi?id=82214
1427
1428         This change will allow us to make breakpoint-added and breakpoint-removed events a part of UISourceCode interface.
1429         See bug 82224 for more details.
1430
1431         Reviewed by Vsevolod Vlasov.
1432
1433         * inspector/front-end/BreakpointManager.js:
1434         (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
1435         (WebInspector.BreakpointManager.prototype.setBreakpoint):
1436         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
1437         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
1438         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
1439         (WebInspector.BreakpointManager.prototype.debuggerReset):
1440         * inspector/front-end/CompilerScriptMapping.js:
1441         (WebInspector.CompilerScriptMapping.prototype.addScript):
1442         * inspector/front-end/DebuggerPresentationModel.js:
1443         (WebInspector.DebuggerPresentationModel.prototype._updateBreakpointsAfterLiveEdit):
1444         (WebInspector.DebuggerPresentationModel.prototype.breakpointsForUISourceCode):
1445         (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
1446         (WebInspector.UISourceCodeImpl):
1447         (WebInspector.UISourceCodeImpl.prototype.breakpoints):
1448         (WebInspector.UISourceCodeImpl.prototype.breakpointAdded):
1449         (WebInspector.UISourceCodeImpl.prototype.breakpointRemoved):
1450         * inspector/front-end/RawSourceCode.js:
1451         (WebInspector.RawSourceCode.prototype._createUISourceCode):
1452         * inspector/front-end/SnippetsModel.js:
1453         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
1454         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
1455         * inspector/front-end/UISourceCode.js:
1456         (WebInspector.UISourceCode.prototype.get domain):
1457         (WebInspector.UISourceCode.prototype.get folderName):
1458         (WebInspector.UISourceCode.prototype.get fileName):
1459         (WebInspector.UISourceCode.prototype.get displayName):
1460         (WebInspector.UISourceCode.prototype._parseURL):
1461         (WebInspector.UISourceCode.prototype._didRequestContent):
1462         (WebInspector.UISourceCode.prototype.breakpoints):
1463         * inspector/front-end/inspector.html:
1464
1465 2012-03-27  Nat Duca  <nduca@chromium.org>
1466
1467         [chromium] Fix crash with fling with tracing enabled
1468         https://bugs.webkit.org/show_bug.cgi?id=82306
1469
1470         The TRACE_EVENT_START instrumentation was deferencing a PassOwnPtr
1471         after it had been passed into another OwnPtr. This caused frequent
1472         crashes when tracing was enabled.
1473
1474         Reviewed by Adam Barth.
1475
1476         * platform/ActivePlatformGestureAnimation.cpp:
1477         (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
1478         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
1479         (WebCore::CCActiveGestureAnimation::CCActiveGestureAnimation):
1480
1481 2012-03-27  Carlos Garcia Campos  <cgarcia@igalia.com>
1482
1483         [SOUP] Implement missing methods in CookieJarSoup
1484         https://bugs.webkit.org/show_bug.cgi?id=82082
1485
1486         Reviewed by Martin Robinson.
1487
1488         * platform/network/soup/CookieJarSoup.cpp:
1489         (WebCore::defaultCookieJar): Return a global GRefPtr to store the
1490         default cookie jar.
1491         (WebCore::soupCookieJar): Return the current cookie jar or create
1492         a new one.
1493         (WebCore::setSoupCookieJar): Set the current cookie jar.
1494         (WebCore::setCookies): Fix coding style.
1495         (WebCore::cookiesForDocument): Helper function to get the list of
1496         cookies as a string.
1497         (WebCore::cookies): Use cookiesForDocument().
1498         (WebCore::cookieRequestHeaderFieldValue): Ditto.
1499         (WebCore::getRawCookies): Get the list of cookies for the given
1500         document and url.
1501         (WebCore::deleteCookie): Delete the given cookie.
1502         (WebCore::getHostnamesWithCookies): Use GOwnPtr.
1503         (WebCore::deleteCookiesForHostname): Use GOwnPtr and
1504         soup_cookie_domain_matches() instead of comparing the domain
1505         directly with the given hostname.
1506         (WebCore::deleteAllCookies): Use GOwnPtr.
1507         * platform/network/soup/CookieJarSoup.h:
1508         * platform/network/soup/GOwnPtrSoup.cpp:
1509         (WTF::SoupCookie): Add GOwnPtr template for SoupCookie.
1510         * platform/network/soup/GOwnPtrSoup.h:
1511         * platform/network/soup/ResourceHandleSoup.cpp:
1512         (WebCore::ensureSessionIsInitialized): Use soupCookieJar() instead
1513         of defaultCookieJar().
1514
1515 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1516
1517         Enable animVal support for SVGAnimatedBoolean
1518         https://bugs.webkit.org/show_bug.cgi?id=82311
1519
1520         Reviewed by Antti Koivisto.
1521
1522         Enable animVal support for SVGAnimatedBoolean. Very simple now that everything is prepared.
1523         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedBooleanAnimator.
1524
1525         Extended existing tests to cover this.
1526
1527         * svg/SVGAnimatedBoolean.cpp:
1528         (WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
1529         (WebCore::SVGAnimatedBooleanAnimator::stopAnimValAnimation):
1530         (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
1531         (WebCore::SVGAnimatedBooleanAnimator::animValWillChange):
1532         (WebCore::SVGAnimatedBooleanAnimator::animValDidChange):
1533         * svg/SVGAnimatedBoolean.h:
1534         (SVGAnimatedBooleanAnimator):
1535         * svg/SVGAnimatedType.cpp:
1536         (WebCore::SVGAnimatedType::setValueAsString):
1537         (WebCore::SVGAnimatedType::supportsAnimVal):
1538
1539 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1540
1541         <img style='width: 100%' src='foo.svg'> gets pixellated when stretched
1542         https://bugs.webkit.org/show_bug.cgi?id=81631
1543
1544         Reviewed by Antti Koivisto.
1545
1546         Final cleanup of RenderReplaced after the intrinsic size negotiation patch series from some weeks/months ago.
1547         Stop tracking whether a RenderReplaced has an intrinsic size or not with an extra-bool, instead assume each
1548         RenderReplaced derived class has an intrinsic size. If not, the class should override
1549         computeIntrinsicRatioInformation() for any custom logic - currently only done by RenderImage.
1550
1551         Remove all logic depending on m_hasIntrinsicSize from computeReplacedLogicalWidth/Height, which was used
1552         to support different sizing models depending on if the replaced element is a RenderImage or a RenderPart.
1553         Unify all of this in computeIntrinsicRatioInformation right in RenderReplaced. This allows to remove
1554         a hack from RenderImage::computeReplacedLogicalWidth(), which forced the synchroniziation of the intrinsicSize()
1555         before calling the base classes RenderReplaced::computeReplacedLogicalWidth().
1556         Now RenderImage just overrides the layout() method, calls RenderReplaced::layout() and then sets the container
1557         size of the image resources to [contentWidth(), contentHeight()] - reflecting the actual result of the layout.
1558         Furthermore this now allows us to unify CachedImage::imageSizeForRenderer() again for both SVG and non-SVG images.
1559
1560         Propagating the right container size to the image resource fixes the actual bug, that the SVGImage got pixellated.
1561         Adding new tests covering percentage width or height set on an <img> embedding an external SVG, no more pixelation.
1562
1563         Tests: svg/as-image/img-relative-height-expected.html
1564                svg/as-image/img-relative-height.html
1565                svg/as-image/img-relative-width-expected.html
1566                svg/as-image/img-relative-width.html
1567
1568         * loader/cache/CachedImage.cpp:
1569         (WebCore::CachedImage::imageSizeForRenderer):
1570         * rendering/RenderEmbeddedObject.cpp:
1571         (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
1572         * rendering/RenderImage.cpp:
1573         (WebCore::RenderImage::layout):
1574         (WebCore::RenderImage::computeIntrinsicRatioInformation):
1575         * rendering/RenderImage.h:
1576         (RenderImage):
1577         * rendering/RenderReplaced.cpp:
1578         (WebCore::RenderReplaced::RenderReplaced):
1579         (WebCore::rendererHasAspectRatio):
1580         (WebCore):
1581         (WebCore::RenderReplaced::computeIntrinsicRatioInformationForRenderBox):
1582         (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
1583         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
1584         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
1585         * rendering/RenderReplaced.h:
1586         (WebCore::RenderReplaced::intrinsicSize):
1587         (RenderReplaced):
1588         (WebCore::RenderReplaced::setIntrinsicSize):
1589         * svg/graphics/SVGImage.cpp:
1590         (WebCore::SVGImage::setContainerSize):
1591         * svg/graphics/SVGImage.h:
1592         (WebCore::SVGImage::usesContainerSize):
1593
1594 2012-03-27  Ilya Tikhonovsky  <loislo@chromium.org>
1595
1596         Web Inspector: HeapSnapshot: speed-up distanceToWindow calculation.
1597         https://bugs.webkit.org/show_bug.cgi?id=82305
1598
1599         Reviewed by Yury Semikhatsky.
1600
1601         * inspector/front-end/HeapSnapshot.js:
1602         (WebInspector.HeapSnapshot.prototype._bfs):
1603
1604 2012-03-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1605
1606         SVGAnimatedType should support SVGAnimatedIntegerOptionalInteger animation
1607         https://bugs.webkit.org/show_bug.cgi?id=67563
1608
1609         Reviewed by Dirk Schulze.
1610
1611         Add SVGAnimatedIntegerOptionalInteger type handling animation of pair<int, int> objects
1612         as used for the SVG properties 'filterRes' and 'order'. They're currently animated as
1613         SVGAnimatedNumberOptionalNumber - but that won't work for animVal support. Fix that
1614         and enable animVal support for SVGAnimatedInteger(OptionalInteger).
1615
1616         Use 'int' as datatype for SVGAnimatedInteger instead of 'long' for consistency, and
1617         move SVGAnimatedEnumeration from 'int' to 'unsigned short', to make them distinguishable.
1618
1619         Test: svg/animations/svginteger-animation-2.html
1620
1621         * CMakeLists.txt:
1622         * GNUmakefile.list.am:
1623         * Target.pri:
1624         * WebCore.gypi:
1625         * WebCore.vcproj/WebCore.vcproj:
1626         * WebCore.xcodeproj/project.pbxproj:
1627         * svg/SVGAllInOne.cpp:
1628         * svg/SVGAnimatedEnumeration.h:
1629         (WebCore):
1630         * svg/SVGAnimatedInteger.cpp:
1631         (WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
1632         (WebCore):
1633         (WebCore::SVGAnimatedIntegerAnimator::stopAnimValAnimation):
1634         (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
1635         (WebCore::SVGAnimatedIntegerAnimator::animValWillChange):
1636         (WebCore::SVGAnimatedIntegerAnimator::animValDidChange):
1637         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedInteger):
1638         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
1639         * svg/SVGAnimatedInteger.h:
1640         (WebCore):
1641         (SVGAnimatedIntegerAnimator):
1642         * svg/SVGAnimatedIntegerOptionalInteger.cpp: Added.
1643         (WebCore):
1644         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::SVGAnimatedIntegerOptionalIntegerAnimator):
1645         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString):
1646         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
1647         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation):
1648         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
1649         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange):
1650         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange):
1651         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateFromAndToValues):
1652         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateFromAndByValues):
1653         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
1654         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateDistance):
1655         * svg/SVGAnimatedIntegerOptionalInteger.h: Copied from Source/WebCore/svg/SVGAnimatedInteger.h.
1656         (WebCore):
1657         (SVGAnimatedIntegerOptionalIntegerAnimator):
1658         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::~SVGAnimatedIntegerOptionalIntegerAnimator):
1659         * svg/SVGAnimatedNumberOptionalNumber.cpp:
1660         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
1661         * svg/SVGAnimatedType.cpp:
1662         (WebCore::SVGAnimatedType::~SVGAnimatedType):
1663         (WebCore::SVGAnimatedType::createIntegerOptionalInteger):
1664         (WebCore):
1665         (WebCore::SVGAnimatedType::integerOptionalInteger):
1666         (WebCore::SVGAnimatedType::valueAsString):
1667         (WebCore::SVGAnimatedType::setValueAsString):
1668         (WebCore::SVGAnimatedType::supportsAnimVal):
1669         * svg/SVGAnimatedType.h:
1670         (SVGAnimatedType):
1671         * svg/SVGAnimatorFactory.h:
1672         (WebCore::SVGAnimatorFactory::create):
1673         * svg/SVGFilterElement.cpp:
1674         (WebCore::SVGFilterElement::setFilterRes):
1675         * svg/SVGFilterElement.h:
1676         (SVGFilterElement):
1677         * svg/SVGPathElement.cpp:
1678         (WebCore::SVGPathElement::getPathSegAtLength):
1679         * svg/SVGPathElement.h:
1680         (SVGPathElement):
1681         * svg/SVGPathParserFactory.cpp:
1682         (WebCore::SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathByteStream):
1683         * svg/SVGPathParserFactory.h:
1684         (SVGPathParserFactory):
1685         * svg/SVGPathTraversalStateBuilder.cpp:
1686         (WebCore::SVGPathTraversalStateBuilder::pathSegmentIndex):
1687         * svg/SVGPathTraversalStateBuilder.h:
1688         (SVGPathTraversalStateBuilder):
1689         * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
1690         (WebCore::SVGAnimatedEnumerationPropertyTearOff::setBaseVal):
1691         (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
1692         (WebCore::SVGAnimatedEnumerationPropertyTearOff::currentAnimatedValue):
1693         (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
1694         * svg/properties/SVGPropertyInfo.h:
1695         * svg/properties/SVGPropertyTraits.h:
1696
1697 2012-03-25  Nikolas Zimmermann  <nzimmermann@rim.com>
1698
1699         Enable animVal support for SVGAngle
1700         https://bugs.webkit.org/show_bug.cgi?id=82144
1701
1702         Reviewed by Rob Buis.
1703
1704         Enable animVal support for SVGAnimatedAngle. Very simple now that everything is prepared.
1705         All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedAngleAnimator.
1706
1707         Extended existing tests to cover this.
1708
1709         * svg/SVGAnimatedAngle.cpp:
1710         (WebCore::sharedSVGAngle):
1711         (WebCore::SVGAnimatedAngleAnimator::constructFromString):
1712         (WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
1713         (WebCore::SVGAnimatedAngleAnimator::stopAnimValAnimation):
1714         (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
1715         (WebCore::SVGAnimatedAngleAnimator::animValWillChange):
1716         (WebCore::SVGAnimatedAngleAnimator::animValDidChange):
1717         (WebCore::SVGAnimatedAngleAnimator::calculateDistance):
1718         * svg/SVGAnimatedAngle.h:
1719         (SVGAnimatedAngleAnimator):
1720         * svg/SVGAnimatedType.cpp:
1721         (WebCore::SVGAnimatedType::supportsAnimVal):
1722
1723 2012-03-27  Yury Semikhatsky  <yurys@chromium.org>
1724
1725         Web Inspector: remove remains of path finder in heap profiler front-end
1726         https://bugs.webkit.org/show_bug.cgi?id=82304
1727
1728         Removed remainders of heap path finder as this code is not used anymore.
1729
1730         Reviewed by Pavel Feldman.
1731
1732         * inspector/front-end/HeapSnapshot.js:
1733         * inspector/front-end/HeapSnapshotProxy.js:
1734
1735 2012-03-27  Dan Bernstein  <mitz@apple.com>
1736
1737         Reverted r112214, since it was not the right fix for the build.
1738
1739         * css/StylePropertySet.cpp:
1740         (WebCore::StylePropertySet::asText):
1741
1742 2012-03-27  Kentaro Hara  <haraken@chromium.org>
1743
1744         [V8][Performance] Optimize createTextNode(), createElement(), cloneNode(), etc
1745         https://bugs.webkit.org/show_bug.cgi?id=82201
1746
1747         Reviewed by Adam Barth.
1748
1749         This patch improves performance of createTextNode() by 13%, createElement() by 14%,
1750         and cloneNode() by 16%. Similar performance improvement will be observed in
1751         DOM methods that create a new object every time.
1752
1753         Performance test: https://bugs.webkit.org/attachment.cgi?id=133799
1754
1755         The performance test results are as follows. Since the performance of V8's GC is
1756         really unstable, the average of measured times makes no sense in Chromium.
1757         Instead, let us focus on the median. I believe that this performance
1758         improvement has impact on Dromaeo, but we cannot observe the improvement
1759         due to the unsteadiness of V8's GC, as shown below.
1760
1761         Chromium/V8/Linux (without the patch):
1762         createTextNode : median=277ms (mean=460.88ms, min=270ms, max=3381ms)
1763         createElement : median=379ms (mean=637.52ms, min=372ms, max=3022ms)
1764         cloneNode : median=369ms (mean=581.72ms, min=363ms, max=3050ms)
1765         Dromaeo/dom-modify/createElement: 439.17runs/s +-31.60% (<--- pretty noisy)
1766         Dromaeo/dom-modify/createTextNode: 287.71runs/s +-28.39% (<--- pretty noisy)
1767         Dromaeo/dom-modify/cloneNode: 174.62runs/s +-25.68% (<--- pretty noisy)
1768
1769         Chromium/V8/Linux (with the patch):
1770         createTextNode : median=240ms (mean=411.12ms, min=237ms, max=2965ms)
1771         createElement : median=325ms (mean=585.30ms, min=317ms, max=2984ms)
1772         cloneNode : median=310ms (mean=522.48ms, min=302ms, max=2988ms)
1773         Dromaeo/dom-modify/createElement: 507.15runs/s +-36.00% (<--- pretty noisy)
1774         Dromaeo/dom-modify/createTextNode: 251.01runs/s +-6.57%
1775         Dromaeo/dom-modify/cloneNode: 177.85runs/s +-28.74% (<--- pretty noisy)
1776
1777         Chromium/V8/Mac (without the patch):
1778         createTextNode : median=317ms (mean=439.08ms, min=303ms, max=3126ms)
1779         createElement : median=403ms (mean=695.70ms, min=398ms, max=5615ms)
1780         cloneNode : median=384ms (mean=577.96ms, min=372ms, max=5313ms)
1781         Dromaeo/dom-modify/createElement: 493.89runs/s +-28.32% (<--- pretty noisy)
1782         Dromaeo/dom-modify/createTextNode: 279.66runs/s +-1.91%
1783         Dromaeo/dom-modify/cloneNode: 173.06runs/s +-24.41% (<--- pretty noisy)
1784
1785         Chromium/V8/Mac (with the patch):
1786         createTextNode : median=277ms (mean=460.88ms, min=270ms, max=3381ms)
1787         createElement : median=379ms (mean=637.52ms, min=372ms, max=3022ms)
1788         cloneNode : median=369ms (mean=581.72ms, min=363ms, max=3050ms)
1789         Dromaeo/dom-modify/createElement: 510.47runs/s +-28.13% (<--- pretty noisy)
1790         Dromaeo/dom-modify/createTextNode: 215.80runs/s +-20.99% (<--- pretty noisy)
1791         Dromaeo/dom-modify/cloneNode: 174.41runs/s +-24.85% (<--- pretty noisy)
1792
1793         Safari/JavaScriptCore/Mac:
1794         createTextNode : median=142ms (mean=141.04ms, min=110ms, max=168ms)
1795         createElement : median=234ms (mean=245.74ms, min=219ms, max=305ms)
1796         cloneNode : median=210ms (mean=213.36ms, min=204ms, max=284ms)
1797         Dromaeo/dom-modify/createElement: 822.49runs/s +-1.69%
1798         Dromaeo/dom-modify/createTextNode: 735.57runs/s +-0.91%
1799         Dromaeo/dom-modify/cloneNode: 135.20runs/s +-4.13%
1800
1801         This patch makes the following two optimizations:
1802
1803         [1] If the currently running context is equal to the context that we are about to enter,
1804         we do not call context->Enter().
1805         [2] We do not create a Local handle of the context until we really need to enter the context.
1806
1807         * bindings/scripts/CodeGeneratorV8.pm:
1808         (GenerateToV8Converters):
1809         * bindings/v8/V8Proxy.cpp:
1810         (WebCore::V8Proxy::persistentContext):
1811         (WebCore):
1812         * bindings/v8/V8Proxy.h:
1813         (V8Proxy):
1814
1815         * WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: Updated run-bindings-tests results.
1816
1817 2012-03-27  Bill Budge  <bbudge@chromium.org>
1818
1819         cross-origin XMLHttpRequest doesn't work with redirect
1820         https://bugs.webkit.org/show_bug.cgi?id=57600
1821
1822         Reviewed by Adam Barth.
1823
1824         Changes DocumentThreadableLoader to follow the CORS redirect steps when
1825         asynchronously loading a cross origin request with access control. Synchronous
1826         loads should not be affected. Also adds methods to ResourceRequestBase to
1827         clear special request headers that aren't allowed when using access control.
1828         Follows the CORS spec as described in the Latest Editor Draft at:
1829         http://www.w3.org/TR/cors/
1830
1831         Test: http/tests/xmlhttprequest/access-control-and-redirects-async.html
1832
1833         * loader/DocumentThreadableLoader.cpp:
1834         * loader/DocumentThreadableLoader.h:
1835         * platform/network/ResourceRequestBase.cpp:
1836         * platform/network/ResourceRequestBase.h:
1837
1838 2012-03-27  Adam Barth  <abarth@webkit.org>
1839
1840         ImageLoader::m_firedLoadEvent is a confusing name
1841         https://bugs.webkit.org/show_bug.cgi?id=82283
1842
1843         Reviewed by Kentaro Hara.
1844
1845         This patch renames m_firedLoadEvent (and friends) to
1846         m_hasPendingLoadEvent (and negates the value).  That name more
1847         accurately reflects the semantics of this piece of state.  For example,
1848         we now initialize m_hasPendingLoadEvent to false, which makes sense as
1849         there is no pending load event, whereas before we initialized
1850         m_firedLoadEvent to true, which made less sense since we hadn't yet
1851         actually fired the load event.
1852
1853         * bindings/v8/V8GCController.cpp:
1854         (WebCore::calculateGroupId):
1855         * html/HTMLImageElement.cpp:
1856         (WebCore::HTMLImageElement::attach):
1857         * html/HTMLImageElement.h:
1858         (HTMLImageElement):
1859         (WebCore::HTMLImageElement::hasPendingLoadEvent):
1860         (WebCore::HTMLImageElement::hasPendingActivity):
1861         * html/ImageInputType.cpp:
1862         (WebCore::ImageInputType::attach):
1863         * loader/ImageLoader.cpp:
1864         (WebCore::ImageLoader::ImageLoader):
1865         (WebCore::ImageLoader::~ImageLoader):
1866         (WebCore::ImageLoader::setImage):
1867         (WebCore::ImageLoader::updateFromElement):
1868         (WebCore::ImageLoader::notifyFinished):
1869         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
1870         (WebCore::ImageLoader::dispatchPendingLoadEvent):
1871         (WebCore::ImageLoader::dispatchPendingErrorEvent):
1872         * loader/ImageLoader.h:
1873         (WebCore::ImageLoader::hasPendingBeforeLoadEvent):
1874         (WebCore::ImageLoader::hasPendingLoadEvent):
1875         (ImageLoader):
1876         * svg/SVGImageElement.cpp:
1877         (WebCore::SVGImageElement::haveLoadedRequiredResources):
1878
1879 2012-03-27  Dan Bernstein  <mitz@apple.com>
1880
1881         Tried to fix 32-bit builds.
1882
1883         * css/StylePropertySet.cpp:
1884         (WebCore::StylePropertySet::asText):
1885
1886 2012-03-26  Sheriff Bot  <webkit.review.bot@gmail.com>
1887
1888         Unreviewed, rolling out r112199.
1889         http://trac.webkit.org/changeset/112199
1890         https://bugs.webkit.org/show_bug.cgi?id=82295
1891
1892         Breaks Chromium Win compilation (Requested by pfeldman on
1893         #webkit).
1894
1895         * bindings/scripts/CodeGeneratorV8.pm:
1896         (GenerateConstructorCallback):
1897         (GenerateNamedConstructorCallback):
1898         (GenerateToV8Converters):
1899         (GetDomMapFunction):
1900         * bindings/scripts/test/V8/V8Float64Array.cpp:
1901         (WebCore::V8Float64Array::wrapSlow):
1902         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1903         (WebCore::V8TestActiveDOMObject::wrapSlow):
1904         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1905         (WebCore::V8TestCustomNamedGetter::wrapSlow):
1906         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1907         (WebCore::V8TestEventConstructor::wrapSlow):
1908         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1909         (WebCore::V8TestEventTarget::wrapSlow):
1910         * bindings/scripts/test/V8/V8TestInterface.cpp:
1911         (WebCore::V8TestInterface::wrapSlow):
1912         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1913         (WebCore::V8TestMediaQueryListListener::wrapSlow):
1914         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1915         (WebCore::V8TestNamedConstructor::wrapSlow):
1916         * bindings/scripts/test/V8/V8TestObj.cpp:
1917         (WebCore::V8TestObj::wrapSlow):
1918         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1919         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
1920         * bindings/v8/V8DOMWrapper.cpp:
1921         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
1922         (WebCore):
1923         * bindings/v8/V8DOMWrapper.h:
1924         (WebCore):
1925         (V8DOMWrapper):
1926         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
1927         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
1928
1929 2012-03-26  David Kilzer  <ddkilzer@apple.com>
1930
1931         Build system prep work for upstreaming iOS changes
1932         <http://webkit.org/b/82267>
1933
1934         Reviewed by Mark Rowe.
1935
1936         * DerivedSources.make: Move 'bison' into a variable and use
1937         xcrun to find it on Mac OS X.
1938         * bindings/scripts/preprocessor.pm:
1939         (applyPreprocessor): Add local @args variable.  On iOS, the
1940         compiler needs additional "-isysroot $(SDKROOT)" arguments when
1941         invoked, so it's easier to add them to an array, especially if
1942         $SDKROOT contains a space in the path.  Remove now-redundant
1943         $gccLocation variable.
1944
1945 2012-03-26  Nate Chapin  <japhet@chromium.org>
1946
1947         Remove duplicate error() impls in CachedResource subclasses
1948         https://bugs.webkit.org/show_bug.cgi?id=81161
1949
1950         Reviewed by Alexey Proskuryakov.
1951
1952         No new tests, refactor only.
1953
1954         * loader/cache/CachedCSSStyleSheet.cpp:
1955         * loader/cache/CachedCSSStyleSheet.h:
1956         * loader/cache/CachedFont.cpp:
1957         * loader/cache/CachedFont.h:
1958         * loader/cache/CachedImage.cpp:
1959         * loader/cache/CachedResource.h: Make checkNotify()
1960              virtual, so the right checkNotify() gets called in error().
1961         * loader/cache/CachedScript.cpp:
1962         * loader/cache/CachedScript.h:
1963         * loader/cache/CachedXSLStyleSheet.cpp:
1964         * loader/cache/CachedXSLStyleSheet.h:
1965
1966 2012-03-26  Ken Buchanan  <kenrb@chromium.org>
1967
1968         Assert failure from capitalized RenderTextFragment
1969         https://bugs.webkit.org/show_bug.cgi?id=82096
1970
1971         Reviewed by Ryosuke Niwa.
1972
1973         The cause of this bug was the call to RenderTextFragment::setTextInternal
1974         resulting from a style change from RenderObject::addChild. The idea here
1975         is to better separate the code path for transforming existing text from
1976         the code path for replacing the underlying text of a node. For
1977         RenderTextFragment this has to be clear because only in the latter case
1978         does the first-letter get reset.
1979
1980         * rendering/RenderObject.cpp:
1981         (WebCore::RenderObject::addChild): Added call to transformText
1982         * rendering/RenderText.cpp:
1983         (WebCore::RenderText::styleDidChange): Added call to transformText
1984         (WebCore::RenderText::transformText): Added
1985         * rendering/RenderText.h:
1986         (WebCore::RenderText::setText): Changed to virtual so RenderTextFragment can override
1987         (WebCore::RenderText::transformText): Added
1988         * rendering/RenderTextFragment.cpp:
1989         (WebCore::RenderTextFragment::styleDidChange): Removed references to
1990         m_allowFragmentReset which was the previous approach to separating the
1991         code paths
1992         (WebCore::RenderTextFragment::setTextInternal): Deleted
1993         (WebCore::RenderTextFragment::setText): Added with most of logic that was
1994         previously in setTextInternal
1995         (WebCore::RenderTextFragment::transformText): Added
1996         * rendering/RenderTextFragment.h:
1997         (WebCore::RenderTextFragment::setText): Added
1998         (WebCore::RenderTextFragment::transformText): Added
1999         (WebCore::RenderTextFragment::setTextInternal): Deleted
2000
2001 2012-03-26  Adam Klein  <adamk@chromium.org>
2002
2003         Always set V8 wrappers via V8DOMWrapper::setJSWrapperFor* instead of WeakReferenceMap::set()
2004         https://bugs.webkit.org/show_bug.cgi?id=82256
2005
2006         Reviewed by Adam Barth.
2007
2008         This moves leakRef() calls out of generated code, centralizing them in
2009         V8DOMWrapper implementation. Ideally, WeakReferenceMap::set would take
2010         PassRefPtrs, but that's tricky given that some WeakReferenceMap's KeyType is 'void'
2011         (which clearly can't be wrapped in a PassRefPtr).
2012
2013         Updated binding tests to reflect changes in CodeGeneratorV8.pm, no change in behavior.
2014
2015         * bindings/scripts/CodeGeneratorV8.pm:
2016         (GenerateConstructorCallback): Use GetDomMapFunction instead of custom logic.
2017         (GenerateNamedConstructorCallback): ditto.
2018         (GenerateToV8Converters): Call V8DOMWrapper::setJSWrapper* method
2019         instead of directly accessing the wrapper maps and calling set.
2020         (GetDomMapFunction): Refactored to call new GetDomWrapperMapName function.
2021         (GetDomWrapperMapName): Helper pulled out of GetDomMapFunction.
2022         * bindings/scripts/test/V8/V8Float64Array.cpp:
2023         (WebCore::V8Float64Array::wrapSlow):
2024         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2025         (WebCore::V8TestActiveDOMObject::wrapSlow):
2026         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2027         (WebCore::V8TestCustomNamedGetter::wrapSlow):
2028         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2029         (WebCore::V8TestEventConstructor::wrapSlow):
2030         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2031         (WebCore::V8TestEventTarget::wrapSlow):
2032         * bindings/scripts/test/V8/V8TestInterface.cpp:
2033         (WebCore::V8TestInterface::wrapSlow):
2034         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2035         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2036         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2037         (WebCore::V8TestNamedConstructor::wrapSlow):
2038         * bindings/scripts/test/V8/V8TestObj.cpp:
2039         (WebCore::V8TestObj::wrapSlow):
2040         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2041         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2042         * bindings/v8/V8DOMWrapper.cpp: Moved setJSWrapperForDOMNode method to header to inline it.
2043         * bindings/v8/V8DOMWrapper.h:
2044         (WebCore): Forward decls.
2045         (V8DOMWrapper):
2046         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): Made inline.
2047         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): ditto.
2048         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): Refactored into two methods;
2049         this one handles non-active Nodes.
2050         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode): Pulled out of previouse
2051         DOMNode method, now handles only active Nodes.
2052         (WebCore::V8DOMWrapper::setJSWrapperForDOMSVGElementInstance): New helper method for SVGElementInstances.
2053
2054 2012-03-26  Pratik Solanki  <psolanki@apple.com>
2055
2056         Fix typo in method name - WebCore::miminumValueForLength should be WebCore::minimumValueForLength
2057         https://bugs.webkit.org/show_bug.cgi?id=82254
2058
2059         Reviewed by Benjamin Poulain.
2060
2061         No new tests because no functional changes.
2062
2063         * css/CSSComputedStyleDeclaration.cpp:
2064         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2065         * css/LengthFunctions.cpp:
2066         (WebCore::minimumValueForLength):
2067         (WebCore::valueForLength):
2068         * css/LengthFunctions.h:
2069         (WebCore):
2070         * html/HTMLAreaElement.cpp:
2071         (WebCore::HTMLAreaElement::getRegion):
2072         * platform/win/PopupMenuWin.cpp:
2073         (WebCore::PopupMenuWin::paint):
2074         * rendering/AutoTableLayout.cpp:
2075         (WebCore::AutoTableLayout::layout):
2076         * rendering/RenderBlock.cpp:
2077         (WebCore::RenderBlock::textIndentOffset):
2078         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
2079         * rendering/RenderBox.cpp:
2080         (WebCore::RenderBox::computeLogicalWidthInRegion):
2081         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
2082         (WebCore::RenderBox::computeInlineDirectionMargins):
2083         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
2084         (WebCore::RenderBox::computeBlockDirectionMargins):
2085         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
2086         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
2087         * rendering/RenderBoxModelObject.cpp:
2088         (WebCore::RenderBoxModelObject::paddingTop):
2089         (WebCore::RenderBoxModelObject::paddingBottom):
2090         (WebCore::RenderBoxModelObject::paddingLeft):
2091         (WebCore::RenderBoxModelObject::paddingRight):
2092         (WebCore::RenderBoxModelObject::paddingBefore):
2093         (WebCore::RenderBoxModelObject::paddingAfter):
2094         (WebCore::RenderBoxModelObject::paddingStart):
2095         (WebCore::RenderBoxModelObject::paddingEnd):
2096         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
2097         * rendering/RenderFlexibleBox.cpp:
2098         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
2099         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
2100         * rendering/RenderInline.cpp:
2101         (WebCore::computeMargin):
2102         * rendering/RenderMenuList.cpp:
2103         (WebCore::RenderMenuList::updateOptionsWidth):
2104         * rendering/RenderReplaced.cpp:
2105         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
2106         * rendering/RenderScrollbarPart.cpp:
2107         (WebCore::calcScrollbarThicknessUsing):
2108         (WebCore::RenderScrollbarPart::computeScrollbarWidth):
2109         (WebCore::RenderScrollbarPart::computeScrollbarHeight):
2110         * rendering/RenderTable.cpp:
2111         (WebCore::RenderTable::computeLogicalWidth):
2112         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
2113         * rendering/RenderTableSection.cpp:
2114         (WebCore::RenderTableSection::calcRowLogicalHeight):
2115         * rendering/RenderText.h:
2116         (WebCore::RenderText::marginLeft):
2117         (WebCore::RenderText::marginRight):
2118         * rendering/style/RenderStyle.h:
2119
2120 2012-03-26  Shinya Kawanaka  <shinyak@chromium.org>
2121
2122         Triggers assertion if dragging from outside of <meter> in a shadow tree to inside of it.
2123         https://bugs.webkit.org/show_bug.cgi?id=82177
2124
2125         Reviewed by Dimitri Glazkov.
2126
2127         VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries has moved the start position or
2128         the end position to the invalid position, i.e. position after (before) the non-existing node.
2129
2130         This patch fixes the problem, and adds assertion that the selection does not cross shadow boundaries.
2131
2132         Test: fast/dom/shadow/drag-to-meter-in-shadow-crash.html
2133
2134         * editing/VisibleSelection.cpp:
2135         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
2136
2137 2012-03-26  Scott Byer  <scottbyer@chromium.org>
2138
2139         Enable layout testing of the scroll animator.
2140         https://bugs.webkit.org/show_bug.cgi?id=81858
2141         Add a call to the InternalSettings that layout tests can use to
2142         turn on scroll animation. Enable animation updates for the
2143         Chromium platform DRT when scroll animation has been turned on in
2144         a test. This should be a no-op for all current layout tests.
2145
2146         Reviewed by James Robinson.
2147
2148         No new tests. Layout test results should be unchanged.
2149
2150         * testing/InternalSettings.cpp:
2151         (WebCore::InternalSettings::setEnableScrollAnimator):
2152         (WebCore):
2153         (WebCore::InternalSettings::scrollAnimatorEnabled):
2154         * testing/InternalSettings.h:
2155         (InternalSettings):
2156         * testing/InternalSettings.idl:
2157
2158 2012-03-26  Charles Wei  <charles.wei@torchmobile.com.cn>
2159
2160         Fix minor spell error in DocumentLoader.h
2161         https://bugs.webkit.org/show_bug.cgi?id=82141
2162
2163         Reviewed by Nate Chapin.
2164
2165         Just fix spell error, no new tests.
2166
2167         * loader/DocumentLoader.h:
2168         (WebCore::DocumentLoader::setClientRedirectSourceForHistory):
2169
2170 2012-03-26  Brian Salomon  <bsalomon@google.com>
2171
2172         [Skia] Remove use of deprecated Skia constant and struct field names
2173         https://bugs.webkit.org/show_bug.cgi?id=81034
2174
2175         Reviewed by James Robinson.
2176
2177         No behavior change, so no tests. The modified code is executed by many existing tests.
2178
2179         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
2180         (WebCore::createAcceleratedCanvas):
2181         * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
2182         (WebCore::CCRenderSurfaceFilters::apply):
2183         * platform/graphics/skia/ImageBufferSkia.cpp:
2184         (WebCore::createAcceleratedCanvas):
2185
2186 2012-03-26  Nat Duca  <nduca@chromium.org>
2187
2188         [chromium] Add isInputThrottled/didBecomeReadyForAdditionalInput to WebWidget
2189         https://bugs.webkit.org/show_bug.cgi?id=82265
2190
2191         In threaded compositing mode, the WebWidget is self-scheduled,
2192         receiving damage and processing it without forwarding that damage
2193         up to the embedding WebWidgetClient. In Chromium's case, the
2194         client uses the presence of damage to perform input flow
2195         control. This patch exposes the need for input flow control to the
2196         embedder, while keeping the actual logic about what exactly
2197         warrants input flow control inside the implementation.
2198
2199         Reviewed by James Robinson.
2200
2201         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2202         (WebCore::CCLayerTreeHost::commitComplete):
2203         (WebCore::CCLayerTreeHost::commitRequested):
2204         (WebCore):
2205         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2206         (CCLayerTreeHostClient):
2207         (CCLayerTreeHost):
2208         * platform/graphics/chromium/cc/CCProxy.h:
2209         (CCProxy):
2210         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2211         (WebCore::CCSingleThreadProxy::commitRequested):
2212         (WebCore):
2213         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2214         (CCSingleThreadProxy):
2215         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2216         (WebCore::CCThreadProxy::commitRequested):
2217         (WebCore):
2218         * platform/graphics/chromium/cc/CCThreadProxy.h:
2219         (CCThreadProxy):
2220
2221 2012-03-26  Adam Barth  <abarth@webkit.org>
2222
2223         When <img crossorigin> fails the CORS check, we should fire the error event
2224         https://bugs.webkit.org/show_bug.cgi?id=81998
2225
2226         Reviewed by Nate Chapin.
2227
2228         The spec says we're supposed to fire the error event when the CORS
2229         check fails, but we haven't been.  This patch is larger than it might
2230         otherwise be because we're firing the event asynchronously, but that
2231         seems like the right thing to do.
2232
2233         Tests: http/tests/security/img-with-failed-cors-check-fails-to-load.html
2234
2235         * dom/Document.cpp:
2236         (WebCore::Document::implicitClose):
2237         * loader/ImageLoader.cpp:
2238         (WebCore::errorEventSender):
2239         (WebCore):
2240         (WebCore::ImageLoader::ImageLoader):
2241         (WebCore::ImageLoader::~ImageLoader):
2242         (WebCore::ImageLoader::setImage):
2243         (WebCore::ImageLoader::updateFromElement):
2244         (WebCore::ImageLoader::notifyFinished):
2245         (WebCore::ImageLoader::dispatchPendingEvent):
2246         (WebCore::ImageLoader::dispatchPendingErrorEvent):
2247         (WebCore::ImageLoader::dispatchPendingErrorEvents):
2248         * loader/ImageLoader.h:
2249         (ImageLoader):
2250
2251 2012-03-26  Stephen White  <senorblanco@chromium.org>
2252
2253         Make filters and the threaded compositor play well together.
2254         https://bugs.webkit.org/show_bug.cgi?id=78139
2255         
2256         Use a dedicated GraphicsContext3D instance for all filters calls in
2257         the threaded case.  Clone all FilterOperations for thread safety
2258         in the threaded case.
2259
2260         Reviewed by James Robinson.
2261         
2262         Covered by tests in LayoutTests/css3/filters.
2263
2264         * platform/graphics/chromium/LayerChromium.cpp:
2265         (WebCore::LayerChromium::setFilters):
2266         Set a global flag if we've seen content with filters, so we know
2267         we need to create the filter context.
2268         (WebCore::LayerChromium::pushPropertiesTo):
2269         Clone all filter operations if we're in the threaded case.
2270         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2271         (WebCore):
2272         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2273         (WebCore::CCLayerTreeHost::needsFilterContext):
2274         (WebCore::CCLayerTreeHost::setNeedsFilterContext):
2275         (CCLayerTreeHost):
2276         Add flag and accessors for needsFilterContext.
2277         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2278         (WebCore::CCRenderSurface::applyFilters):
2279         Pick up the appropriate context from SharedGraphicsContext3D,
2280         depending if we're in the threaded case or not.
2281         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2282         (WebCore::CCThreadProxy::recreateContext):
2283         For the threaded compositor re-create the filter context
2284         alongside the main compositor context on lost context, if requested.
2285         (WebCore::CCThreadProxy::beginFrame):
2286         Create the filter context in beginFrame, if it was resquested and is
2287         NULL.  This handles the first-use case.
2288         * platform/graphics/filters/CustomFilterOperation.h:
2289         (WebCore::CustomFilterOperation::clone):
2290         Assert if trying to clone the custom filter operation (it has
2291         non-threadsafe members).
2292         * platform/graphics/filters/FilterOperation.h:
2293         (WebCore::DefaultFilterOperation::clone):
2294         (WebCore::PassthroughFilterOperation::clone):
2295         (WebCore::ReferenceFilterOperation::clone):
2296         (WebCore::BasicColorMatrixFilterOperation::clone):
2297         (WebCore::BasicComponentTransferFilterOperation::clone):
2298         (WebCore::GammaFilterOperation::clone):
2299         (WebCore::BlurFilterOperation::clone):
2300         (WebCore::DropShadowFilterOperation::clone):
2301         Add clone methods for all FilterOperations.
2302         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
2303         (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
2304         (WebCore::SharedGraphicsContext3DImpl::getContext):
2305         (WebCore::SharedGraphicsContext3DImpl::createContext):
2306         (WebCore::SharedGraphicsContext3D::get):
2307         (WebCore::getOrCreateContextForImplThread):
2308         (WebCore::SharedGraphicsContext3D::getForImplThread):
2309         (WebCore::SharedGraphicsContext3D::haveForImplThread):
2310         (WebCore::SharedGraphicsContext3D::createForImplThread):
2311         Split out context creation, lost context recovery, and retrieval
2312         into separate functions, so the impl thread can use only the parts
2313         it wants on the threads it wants (create and have on main, get on impl).
2314         Add asserts to ensure that's how they're called.
2315         * platform/graphics/gpu/SharedGraphicsContext3D.h:
2316         (SharedGraphicsContext3D):
2317         Reuse the SharedGraphicsContext infrastructure to create a new
2318         context singleton for filter use in the threaded compositor.
2319
2320 2012-03-26  Adam Barth  <abarth@webkit.org>
2321
2322         FrameLoader::shouldAllowNavigation uses Frame for context rather than Document
2323         https://bugs.webkit.org/show_bug.cgi?id=81020
2324
2325         Reviewed by Eric Seidel.
2326
2327         The vast majority of security checks in the browser should use a
2328         ScriptExecutionContext (aka a Document) to designate "who" is
2329         attempting to perform a given action.  Unfortunately,
2330         shouldAllowNavigation was using a Frame to designate "who" is
2331         attempting the navigation.
2332
2333         In cases when the executing script is "inactive" (i.e., belongs to a
2334         document that is not currently displayed in a Frame), using the Frame
2335         can cause us to grant the script the privileges of the document that's
2336         currently displayed in the Frame rather than the one that contains the
2337         script.
2338
2339         This patch moves shouldAllowNavigation from FrameLoader to Document
2340         (and renames it to canNavigate), effectively change the context object
2341         from a Frame to a Document.
2342
2343         Test: http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html
2344
2345         * bindings/generic/BindingSecurity.h:
2346         (BindingSecurity):
2347         (WebCore):
2348         * bindings/v8/V8Utilities.cpp:
2349         (WebCore):
2350         * bindings/v8/V8Utilities.h:
2351         (WebCore):
2352             - Deletes unused code.
2353         * dom/Document.cpp:
2354         (WebCore::canAccessAncestor):
2355         (WebCore):
2356         (WebCore::Document::canNavigate):
2357             - canNavigate is copied from FrameLoader::shouldAllowNavigation.
2358               I've added a null-check bailout if the document is inactive.
2359         * dom/Document.h:
2360         (Document):
2361         * loader/FormState.cpp:
2362         (WebCore::FormState::FormState):
2363         (WebCore::FormState::create):
2364         * loader/FormState.h:
2365         (WebCore):
2366         (FormState):
2367         (WebCore::FormState::sourceDocument):
2368         * loader/FormSubmission.cpp:
2369         (WebCore::FormSubmission::create):
2370             - Changes the context object from Frame to Document.
2371         * loader/FrameLoader.cpp:
2372         (WebCore::FrameLoader::submitForm):
2373         (WebCore::FrameLoader::loadFrameRequest):
2374         (WebCore):
2375         (WebCore::FrameLoader::findFrameForNavigation):
2376             - FrameLoader::findFrameForNavigation still incorrectly uses Frame
2377               as the context object, but that's a bug for another patch.
2378         (WebCore::createWindow):
2379         * loader/FrameLoader.h:
2380         (FrameLoader):
2381         * loader/NavigationScheduler.cpp:
2382         (WebCore::ScheduledFormSubmission::fire):
2383         * page/DOMWindow.cpp:
2384         (WebCore::DOMWindow::close):
2385         (WebCore::DOMWindow::setLocation):
2386         (WebCore::DOMWindow::open):
2387         * page/History.cpp:
2388         (WebCore::History::go):
2389
2390 2012-03-26  Vangelis Kokkevis  <vangelis@chromium.org>
2391
2392         [chromium] Simplify and fix CCLayerSorter
2393         https://bugs.webkit.org/show_bug.cgi?id=82114
2394
2395         A significant cleanup, simplification and improvement of the CCLayerSorter code.
2396         Simplified the LayerShape structure to use WebCore's FloatQuad for all overlap tests.
2397         By treating every layer as two triangles, the old overlap code did a lot of redundant work
2398         including testing two of the vertices of the layer and its diagonal twice. The new overlap
2399         tests check:
2400         1. The four corners of each of the two layers against the other layer.
2401         2. The four edges of each layer against the edges of the other layer.
2402         Unlike the old code, the new code has no early-outs in the overlap tests as those where causing
2403         us to miss legitimate overlaps.
2404         A new technique for breaking dependency cycles introduced by intersecting layers is implemented.
2405         Instead of arbitrarily breaking cycles by choosing the node in the graph with the smallest number of
2406         incoming edges (i.e. layers that need to be drawn before it) we chose the one with the smallest sum
2407         of graph edge weights (defined as the max depth difference between two layers). Layers that intersect
2408         have their respective graph edge weight set to zero, making them more likely to be picked for breaking
2409         the cycles (it's not a perfect solution but it seems to perform much better than the previous one).
2410
2411         In addition to being overly complex and doing reduntant work, the old code was missing a
2412         perspective divide when computing the coordinates of the layer's corners in the projected plane
2413         which was the source of a lot of mis-sorted results.
2414
2415         In all, these improvements, fix a lot of outstanding issues with layer sorting, on pages such as:
2416         http://www.keithclark.co.uk/labs/3dcss/demo/
2417         http://2012.beercamp.com
2418         https://developer.mozilla.org/fr/demos/detail/the-box/launch
2419
2420         Tests: CCLayerSorter unit tests.
2421
2422         Reviewed by Kenneth Russell.
2423
2424         * platform/graphics/chromium/cc/CCLayerSorter.cpp:
2425         (WebCore):
2426         (WebCore::perpProduct):
2427         (WebCore::edgeEdgeTest):
2428         (WebCore::CCLayerSorter::checkOverlap):
2429         (WebCore::CCLayerSorter::LayerShape::LayerShape):
2430         (WebCore::CCLayerSorter::LayerShape::layerZFromProjectedPoint):
2431         (WebCore::CCLayerSorter::createGraphNodes):
2432         (WebCore::CCLayerSorter::createGraphEdges):
2433         (WebCore::CCLayerSorter::sort):
2434         * platform/graphics/chromium/cc/CCLayerSorter.h:
2435         (WebCore::CCLayerSorter::CCLayerSorter):
2436         (CCLayerSorter):
2437         (LayerShape):
2438         (WebCore::CCLayerSorter::GraphNode::GraphNode):
2439         (GraphNode):
2440         (WebCore::CCLayerSorter::GraphEdge::GraphEdge):
2441         (GraphEdge):
2442
2443 2012-03-26  Fady Samuel  <fsamuel@chromium.org>
2444
2445         [Chromium] Using WebViewPlugins with --force-compositing-mode causes an ASSERT to fail
2446         https://bugs.webkit.org/show_bug.cgi?id=81954
2447
2448         Reviewed by James Robinson.
2449
2450         A static variable s_inPaintContents is set when painting, and it ensures
2451         that we don't delete GraphicsLayers or create GraphicsLayers while painting.
2452
2453         However, because this variable is static, it does not permit the existence
2454         of multiple WebViews in different stages (one laying out and one painting).
2455
2456         This manifests itself if one attempts to use the --force-compositing-mode
2457         in Chromium and attempts to navigate to a page with a missing or old plugin
2458         or a browser plugin (which uses a WebViewPlugin as a placeholder until it's
2459         done loading).
2460
2461         The solution to simplify debugging is to make this flag per-Page.
2462         We can access Page from RenderLayerBacking which is a GraphicsLayerClient.
2463         We add a new method GraphicsLayerClient::verifyNotPainting with a default
2464         (do nothing) implementation and override it in RenderLayerBacking to
2465         test the flag set in Page.
2466
2467         * page/Page.cpp:
2468         (WebCore::Page::Page):
2469         * page/Page.h:
2470         (Page):
2471         (WebCore::Page::setIsPainting):
2472         (WebCore::Page::isPainting):
2473         * platform/graphics/GraphicsLayer.cpp:
2474         (WebCore::GraphicsLayer::GraphicsLayer):
2475         (WebCore::GraphicsLayer::~GraphicsLayer):
2476         (WebCore::GraphicsLayer::paintGraphicsLayerContents):
2477         * platform/graphics/GraphicsLayerClient.h:
2478         (GraphicsLayerClient):
2479         (WebCore::GraphicsLayerClient::verifyNotPainting):
2480         * rendering/RenderLayerBacking.cpp:
2481         (WebCore::RenderLayerBacking::paintContents):
2482         (WebCore):
2483         (WebCore::RenderLayerBacking::verifyNotPainting):
2484         * rendering/RenderLayerBacking.h:
2485         (RenderLayerBacking):
2486
2487 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
2488
2489         cssText should use shorthand notations
2490         https://bugs.webkit.org/show_bug.cgi?id=81737
2491
2492         Reviewed by Enrica Casucci.
2493
2494         Use shorthand properties to serialize style properties for cssText.
2495
2496         The overall algorithm is to look for any property that has a shorthand, and then check if
2497         the shorthand value could be obtained (the condition is quite complicated for border properties).
2498         If it could, then append that value to the string builder, and set the corresponding entries in
2499         shorthandPropertyAppeared and shorthandPropertyUsed. If not, only turn on the bit in
2500         shorthandPropertyAppeared on to avoid calling getPropertyValue again for longhand properties
2501         that use the same shorthand property when we cannot use the shorthand.
2502
2503         Test: fast/css/cssText-shorthand.html
2504
2505         * css/StylePropertySet.cpp:
2506         (WebCore::StylePropertySet::asText):
2507
2508 2012-03-26  Bolin Hsu  <bhsu@google.com>
2509
2510         [Chromium] Add Android keycodes
2511         https://bugs.webkit.org/show_bug.cgi?id=81950
2512
2513         Add the missing Android keycodes listed in the bug.
2514
2515         Reviewed by Adam Barth.
2516
2517         * platform/chromium/KeyCodeConversionAndroid.cpp:
2518         (WebCore::windowsKeyCodeForKeyEvent):
2519         * platform/chromium/KeyboardCodes.h:
2520
2521 2012-03-26  Levi Weintraub  <leviw@chromium.org>
2522
2523         Switch ColumnInfo::addForcedBreak to LayoutUnits
2524         https://bugs.webkit.org/show_bug.cgi?id=82210
2525
2526         Reviewed by Eric Seidel.
2527
2528         Forced breaks are added by local offsets, which should be in LayoutUnits.
2529
2530         No new tests. No change in behavior.
2531
2532         * rendering/ColumnInfo.h:
2533         (WebCore::ColumnInfo::addForcedBreak):
2534
2535 2012-03-26  Levi Weintraub  <leviw@chromium.org>
2536
2537         Update LayoutUnit usage in ContainerNode, Element, and ElementRareData
2538         https://bugs.webkit.org/show_bug.cgi?id=82219
2539
2540         Reviewed by Eric Seidel.
2541
2542         No new tests. No change in behavior.
2543
2544         * dom/ContainerNode.cpp:
2545         (WebCore::ContainerNode::getLowerRightCorner): linesBoundingBox returns the enclosing IntRect
2546         of the contained lines. Inline's aren't bounded in LayoutUnits nor pixel snapped.
2547         * dom/Element.cpp:
2548         (WebCore::Element::boundsInRootViewSpace): Coordinates in root view space are akin to absolute
2549         coordinates, which are always expressed in integers.
2550         * dom/Element.h:
2551         (Element):
2552         * dom/ElementRareData.h:
2553         (WebCore::defaultMinimumSizeForResizing): Using numeric_limits<LayoutUnit>::max instead of
2554         INT_MAX to avoid overflowing when LayoutUnits are sub-pixel.
2555
2556 2012-03-26  Adam Klein  <adamk@chromium.org>
2557
2558         Update binding test output for V8 after r112163.
2559
2560         * bindings/scripts/test/V8/V8TestInterface.cpp:
2561         (WebCore::V8TestInterface::constructorCallback):
2562         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2563         (WebCore::V8TestNamedConstructorConstructorCallback):
2564         * bindings/scripts/test/V8/V8TestObj.cpp:
2565         (WebCore::V8TestObj::constructorCallback):
2566         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2567         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
2568
2569 2012-03-26  Levi Weintraub  <leviw@chromium.org>
2570
2571         Update localSelectionRect to return a LayoutRect
2572         https://bugs.webkit.org/show_bug.cgi?id=82183
2573
2574         Reviewed by Eric Seidel.
2575
2576         localSelectionRect returns a rectangle in the coordinate space of its renderer,
2577         and therefor should remain LayoutUnits until being promoted to absolute
2578         coordinates or painted. Also fixing an incorrect conversion of startPos and
2579         endPos in selectionRectForRepaint.
2580
2581         No new tests. No change in behavior.
2582
2583         * rendering/InlineTextBox.cpp:
2584         (WebCore::InlineTextBox::localSelectionRect): Continuing to use enclosingIntRect
2585         for the value being returned from the font engine since these floating point
2586         values should not be pixel snapped.
2587         * rendering/InlineTextBox.h:
2588         (InlineTextBox):
2589         * rendering/RenderReplaced.cpp:
2590         (WebCore::RenderReplaced::localSelectionRect):
2591         * rendering/RenderReplaced.h:
2592         (RenderReplaced):
2593         * rendering/RenderText.cpp:
2594         (WebCore::localQuadForTextBox):
2595         (WebCore::RenderText::absoluteRectsForRange):
2596         (WebCore::RenderText::absoluteQuadsForRange):
2597         (WebCore::RenderText::selectionRectForRepaint): Fixing an incorrect conversion of
2598         start/endPos to LayoutUnits. These values represent a range of selected characters,
2599         not layout values!
2600         * rendering/svg/RenderSVGInlineText.cpp:
2601         (WebCore::RenderSVGInlineText::localCaretRect):
2602         * rendering/svg/SVGInlineTextBox.cpp:
2603         (WebCore::SVGInlineTextBox::localSelectionRect):
2604         * rendering/svg/SVGInlineTextBox.h:
2605         (SVGInlineTextBox):
2606
2607 2012-03-26  Justin Novosad  <junov@chromium.org>
2608
2609         [Chromium] Crash in Canvas2DLayerChromium::pushPropertiesTo
2610         https://bugs.webkit.org/show_bug.cgi?id=82243
2611
2612         Reviewed by James Robinson.
2613
2614         Adding null pointer check to prevent crash and texture object
2615         validity check to prevent potential graphics glitch
2616
2617         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2618         (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
2619
2620 2012-03-26  Adam Klein  <adamk@chromium.org>
2621
2622         Use PassRefPtr in V8DOMWrapper interface to avoid explicit ref() calls
2623         https://bugs.webkit.org/show_bug.cgi?id=82238
2624
2625         Reviewed by Adam Barth.
2626
2627         The setJSWrapper* methods previously featured a comment that asked
2628         callers to ref the objects before passing them in. This change makes
2629         that contract explicit (and allows the removal of the comment).
2630
2631         In addition, for ConstructorCallbacks, this change slightly reduces
2632         refcount churn by passing on the initial ref via RefPtr::release().
2633
2634         No new tests, no change in behavior.
2635
2636         * bindings/scripts/CodeGeneratorV8.pm:
2637         (GenerateConstructorCallback): Use RefPtr::release() to avoid refcount churn and remove explicit ref() call.
2638         (GenerateNamedConstructorCallback): ditto.
2639         * bindings/v8/V8DOMWindowShell.cpp:
2640         (WebCore::V8DOMWindowShell::installDOMWindow): Cast to a PassRefPtr and remove explicit ref call.
2641         * bindings/v8/V8DOMWrapper.cpp:
2642         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): Pass leaked refs into the DOMNodeMaps.
2643         * bindings/v8/V8DOMWrapper.h:
2644         (V8DOMWrapper): Make the setJSWrapperFor* methods take PassRefPtr<T>.
2645         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): Pass leaked ref into the DOMObjectMap.
2646         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): Pass leaked ref into the ActiveDOMObjectMap.
2647         * bindings/v8/V8Proxy.h:
2648         (WebCore::toV8): Remove explicit ref.
2649         * bindings/v8/WorkerContextExecutionProxy.cpp:
2650         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): Cast to a PassRefPTr and remove explicit ref call.
2651         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2652         (WebCore::v8HTMLImageElementConstructorCallback): Use RefPtr::release() to avoid refcount churn and remove explicit ref.
2653         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
2654         (WebCore::V8WebKitMutationObserver::constructorCallback): ditto.
2655         * bindings/v8/custom/V8WebSocketCustom.cpp:
2656         (WebCore::V8WebSocket::constructorCallback): ditto.
2657         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
2658         (WebCore::V8XMLHttpRequest::constructorCallback): ditto.
2659
2660 2012-03-26  Alexey Proskuryakov  <ap@apple.com>
2661
2662         Remove obsolete FormDataStreamMac code
2663         https://bugs.webkit.org/show_bug.cgi?id=82244
2664
2665         Reviewed by Brady Eidson.
2666
2667         * platform/network/ResourceHandle.h:
2668         Removed ResourceHandle::didSendBodyDataDelegateExists().
2669
2670         * platform/network/mac/FormDataStreamMac.h:
2671         * platform/network/mac/FormDataStreamMac.mm:
2672         Removed code that was needed to call ResourceLoaderClient::didSendData() before Foundation
2673         added support for it.
2674
2675         * platform/network/mac/ResourceHandleMac.mm:
2676         (WebCore::ResourceHandle::start):
2677         (WebCore::ResourceHandle::cancel):
2678         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
2679         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
2680         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
2681         We no longer need to associate streams with ResourceHandles!
2682
2683 2012-03-26  Adam Klein  <adamk@chromium.org>
2684
2685         V8RecursionScope should not hold a raw pointer to ScriptExecutionContext
2686         https://bugs.webkit.org/show_bug.cgi?id=82222
2687
2688         Reviewed by Eric Seidel.
2689
2690         Instead of holding onto ScriptExecutionContext, cache the boolean value we
2691         care about (context->isDocument()). This avoids problems if the
2692         context goes away as a result of the script we just ran.
2693
2694         Test: fast/frames/subframe-load-js-url-crash.html
2695
2696         * bindings/v8/V8RecursionScope.cpp:
2697         (WebCore::V8RecursionScope::didLeaveScriptContext): Check the cached
2698         bool instead of calling into the context.
2699         * bindings/v8/V8RecursionScope.h:
2700         (WebCore::V8RecursionScope::V8RecursionScope): Call isDocument from
2701         the constructor and cache the result.
2702         (WebCore::V8RecursionScope::~V8RecursionScope): No longer need to pass
2703         anything to didLeaveScriptContext since it's now a member.
2704         (V8RecursionScope): Make didLeaveScriptContext a member function and
2705         remove its argument. Add member bool to hold the value of isDocument.
2706
2707 2012-03-26  Dana Jansens  <danakj@chromium.org>
2708
2709         [chromium] assertion being hit in CCLayerTreeHost::updateCompositorResources
2710         https://bugs.webkit.org/show_bug.cgi?id=82239
2711
2712         Reviewed by Adrienne Walker.
2713
2714         The assert is incorrect and should check the animation state on
2715         the surface, not the owning layer.
2716
2717         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2718         (WebCore::CCLayerTreeHost::updateCompositorResources):
2719
2720 2012-03-26  Levi Weintraub  <leviw@chromium.org>
2721
2722         Correct LayoutUnit usage in RenderFieldSet and RenderMenuItem
2723         https://bugs.webkit.org/show_bug.cgi?id=82179
2724
2725         Reviewed by Julien Chaffraix.
2726
2727         Correcting small misuses of ints vs LayoutUnits in RenderFieldSet and RenderMenuItem. Also
2728         adding zeroLayoutUnit where necessary to fix the sub-pixel build. See below for details.
2729
2730         No new tests. No change in behavior.
2731
2732         * rendering/RenderFieldset.cpp:
2733         (WebCore::RenderFieldset::paintBoxDecorations): Clip rects need to be pixel snapped to mirror
2734         the actual coordinates we paint.
2735         (WebCore::RenderFieldset::paintMask): Using zeroLayoutUnit for ternary operation to fix the
2736         sub-pixel build.
2737         * rendering/RenderMenuList.cpp:
2738         (WebCore::RenderMenuList::showPopup): Correctly using an IntRect for absoluteBoundingBoxRect.
2739         (WebCore::RenderMenuList::clientPaddingLeft): Correcting mismatched return type with header.
2740         (WebCore::RenderMenuList::clientPaddingRight): Ditto.
2741
2742 2012-03-26  Dan Bernstein  <mitz@apple.com>
2743
2744         Tried to fix an unused parameter warning after r112154.
2745
2746         * rendering/RenderFlexibleBox.cpp:
2747         (WebCore::RenderFlexibleBox::layoutBlock): Changed to not pass relayoutChildren to
2748         layoutFlexItems.
2749         (WebCore::RenderFlexibleBox::layoutFlexItems): Removed the unused relayoutChildren parameter.
2750         * rendering/RenderFlexibleBox.h:
2751
2752 2012-03-26  Rob Arnold  <robarnold@fb.com>
2753
2754         SyntheticStyleCalc on an element should not force recalculation on its children
2755         https://bugs.webkit.org/show_bug.cgi?id=79389
2756
2757         Reviewed by Simon Fraser.
2758
2759         No new tests. Existing tests cover correctness, not sure how to test for performance.
2760
2761         * dom/Element.cpp:
2762         (WebCore::Element::recalcStyle):
2763
2764 2012-03-26  Tony Chang  <tony@chromium.org>
2765
2766         apply cross axis constraints before aligning children in flexbox
2767         https://bugs.webkit.org/show_bug.cgi?id=82240
2768
2769         Reviewed by Ojan Vafai.
2770
2771         We weren't applying max-height constraints before aligning children.
2772         This would cause center, end, stretch alignment to be wrong if we hit
2773         a max-height on a flexbox.
2774
2775         This patch also moves the repositioning logic to happen after
2776         computeLogicalHeight, which will be useful for flex-line-pack.
2777
2778         New test case in css3/flexbox/flex-align.html
2779
2780         * rendering/RenderFlexibleBox.cpp:
2781         (WebCore::RenderFlexibleBox::layoutBlock):
2782         (WebCore::RenderFlexibleBox::layoutFlexItems):
2783         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
2784         * rendering/RenderFlexibleBox.h:
2785
2786 2012-03-26  Anders Carlsson  <andersca@apple.com>
2787
2788         Find in page overlay and bouncy are not always positioned correctly
2789         https://bugs.webkit.org/show_bug.cgi?id=82247
2790         <rdar://problem/10866139>
2791
2792         Reviewed by Sam Weinig.
2793
2794         In WebCore, a lot of code depends on scroll position updates to happen synchronously, so
2795         update the frame view scroll position before asking the scrolling thread to scroll.
2796
2797         * page/scrolling/ScrollingCoordinator.cpp:
2798         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
2799
2800 2012-03-26  Nate Chapin  <japhet@chromium.org>
2801
2802         Simplify setting loading state in DocumentLoader
2803         https://bugs.webkit.org/show_bug.cgi?id=82099
2804
2805         Reviewed by Adam Barth.
2806
2807         The logic for deciding what to return for DocumentLoader::isLoading()
2808         is crazy. It's indirectly based on the ResourceLoaders that have
2809         registered themselves with the DocumentLoader, but we can make that
2810         relationship more direct.
2811
2812         * loader/DocumentLoader.cpp:
2813         (WebCore::DocumentLoader::checkLoadComplete): Renamed from updateLoading, since it's not actually
2814             updating anything anymore. It now calls DOMWindow::finishedLoading() if loading is in fact done.
2815         (WebCore::DocumentLoader::startLoadingMainResource): The only reason this had a return value was to call
2816             updateLoading() if loading failed. Just call checkLoadComplete() directly (this allows it to
2817             be private, whereas updateLoading() was public).
2818         (WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):
2819         * loader/DocumentLoader.h:
2820         (WebCore::DocumentLoader::isLoading): Rather than holding a separate bool, return based on the presence
2821             of non-multipart ResourceLoaders directly.
2822         * loader/FrameLoader.cpp:
2823         (WebCore::FrameLoader::isLoading): Depend on DocumentLoader::isLoading() for the activeDocumentLoader(),
2824             rather than indirectly the other way around.
2825         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Remove several assertions that should now be
2826             absolutely identical to the remaining !pdl->isLoading().
2827         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
2828
2829 2012-03-26  James Robinson  <jamesr@chromium.org>
2830
2831         Scrollable plugins not registered properly in ScrollingCoordinator
2832         https://bugs.webkit.org/show_bug.cgi?id=82163
2833
2834         Reviewed by Anders Carlsson.
2835
2836         Plugins may be scrollable, so we have to add them in the non-fast scrollable region. Tested manually.
2837
2838         * page/scrolling/ScrollingCoordinator.cpp:
2839         (WebCore::computeNonFastScrollableRegion):
2840         (WebCore::ScrollingCoordinator::nonFastScrollableRegion):
2841         (WebCore):
2842         * page/scrolling/ScrollingCoordinator.h:
2843         (ScrollingCoordinator):
2844         * plugins/PluginViewBase.h:
2845         (WebCore::PluginViewBase::scrollable):
2846         (PluginViewBase):
2847
2848 2012-03-26  Joone Hur  <joone.hur@collabora.co.uk>
2849
2850         [GTK] Build fix for Accelerated Compositing with Clutter
2851         https://bugs.webkit.org/show_bug.cgi?id=81785
2852
2853         Reviewed by Martin Robinson.
2854
2855         AcceleratedCompositingContext was introduced to isolate different accelerated 
2856         compositing implementations(r104194), but the Clutter implementation doesn't 
2857         build with it. This includes an initial implementation of GraphicsContext3D 
2858         and fixes the build error.
2859
2860         * GNUmakefile.list.am:
2861         * platform/graphics/clutter/DrawingBufferClutter.cpp: Added.
2862         (WebCore):
2863         (WebCore::DrawingBuffer::DrawingBuffer):
2864         (WebCore::DrawingBuffer::~DrawingBuffer):
2865         (WebCore::DrawingBuffer::platformColorBuffer):
2866         (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
2867         * platform/graphics/clutter/GraphicsContext3DClutter.cpp: Added.
2868         (WebCore):
2869         (WebCore::GraphicsContext3D::create):
2870         (WebCore::GraphicsContext3D::GraphicsContext3D):
2871         (WebCore::GraphicsContext3D::~GraphicsContext3D):
2872         (WebCore::GraphicsContext3D::getImageData):
2873         (WebCore::GraphicsContext3D::paintToCanvas):
2874         (WebCore::GraphicsContext3D::setContextLostCallback):
2875         (WebCore::GraphicsContext3D::setErrorMessageCallback):
2876         (WebCore::GraphicsContext3D::makeContextCurrent):
2877         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
2878         (WebCore::GraphicsContext3D::isGLES2Compliant):
2879         (WebCore::GraphicsContext3D::platformLayer):
2880         * platform/graphics/clutter/GraphicsContext3DPrivate.cpp: Added.
2881         (WebCore):
2882         (WebCore::GraphicsContext3DPrivate::create):
2883         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
2884         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
2885         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
2886         (WebCore::GraphicsContext3DPrivate::platformContext):
2887         (WebCore::GraphicsContext3DPrivate::paintToGraphicsLayerActor):
2888         * platform/graphics/clutter/GraphicsContext3DPrivate.h: Added.
2889         (WebCore):
2890         (GraphicsContext3DPrivate):
2891         (WebCore::GraphicsContext3DPrivate::platformLayer):
2892
2893 2012-03-26  Peter Rybin  <prybin@chromium.org>
2894
2895         Web Inspector: Expose InspectorTypeBuilder.h to other components
2896         https://bugs.webkit.org/show_bug.cgi?id=82226
2897
2898         Reviewed by Vsevolod Vlasov.
2899
2900         This is a provisional commit that simplifies passing ealy warning system
2901         for the main patch https://bugs.webkit.org/show_bug.cgi?id=81558
2902
2903         * WebCore.xcodeproj/project.pbxproj: config file is changed in Xcode UI.
2904
2905 2012-03-26  Antaryami Pandia  <antaryami.pandia@motorola.com>
2906
2907         An <area> element remains focusable even though its associated <img> is not rendered.
2908         https://bugs.webkit.org/show_bug.cgi?id=71788
2909
2910         Reviewed by Andy Estes.
2911
2912         HTMLAreaElement::isFocusable() needs to consider the display and
2913         visibility state.
2914
2915         Test: fast/events/tab-test-not-visible-imagemap.html
2916
2917         * html/HTMLAreaElement.cpp:
2918         (WebCore::HTMLAreaElement::imageElement):
2919         (WebCore::HTMLAreaElement::isFocusable):
2920         * html/HTMLAreaElement.h: Make imageElement() const.
2921         (HTMLAreaElement):
2922
2923 2012-03-26  Anton Muhin  <antonm@chromium.org>
2924
2925         Fix a typo in IDL
2926         https://bugs.webkit.org/show_bug.cgi?id=82215
2927
2928         Reviewed by Adam Barth.
2929
2930         No new tests, just a typo fix.
2931
2932         * notifications/WorkerContextNotifications.idl:
2933
2934 2012-03-26  W. James MacLean  <wjmaclean@chromium.org>
2935
2936         [chromium] Change handleGestureFling() to use CCInputHandlerClient::Wheel.
2937         https://bugs.webkit.org/show_bug.cgi?id=82133
2938
2939         Reviewed by James Robinson.
2940
2941         Covered by existing unit tests.
2942
2943         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2944         (WebCore::CCLayerTreeHostImpl::scrollBegin):
2945
2946 2012-03-26  Mike Lawther  <mikelawther@chromium.org>
2947
2948         CSS3 calc: mixed percent/absolute for box-reflect
2949         https://bugs.webkit.org/show_bug.cgi?id=82161
2950
2951         Reviewed by Ojan Vafai.
2952
2953         Tests: css3/calc/box-reflect-expected.html
2954                css3/calc/box-reflect.html
2955
2956         * css/CSSStyleSelector.cpp:
2957         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2958
2959 2012-03-26  Mike Lawther  <mikelawther@chromium.org>
2960
2961         CSS3 calc: mixed percent/absolute support for vertical-align
2962         https://bugs.webkit.org/show_bug.cgi?id=82152
2963
2964         Reviewed by Ojan Vafai.
2965
2966         Tests: css3/calc/vertical-align-expected.html
2967                css3/calc/vertical-align.html
2968
2969         * css/CSSStyleApplyProperty.cpp:
2970         (WebCore::ApplyPropertyVerticalAlign::applyValue):
2971
2972 2012-03-26  Filip Spacek  <fspacek@rim.com>
2973
2974         [BlackBerry] Accelerated compositing updates
2975         https://bugs.webkit.org/show_bug.cgi?id=82058
2976
2977         Reviewed by Rob Buis.
2978
2979         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
2980         (WebCore::CanvasLayerWebKitThread::CanvasLayerWebKitThread):
2981         (WebCore::CanvasLayerWebKitThread::~CanvasLayerWebKitThread):
2982         (WebCore::CanvasLayerWebKitThread::setDevice):
2983         (WebCore::CanvasLayerWebKitThread::updateTextureContentsIfNeeded):
2984         * platform/graphics/blackberry/CanvasLayerWebKitThread.h:
2985         (WebCore::CanvasLayerWebKitThread::create):
2986         (CanvasLayerWebKitThread):
2987         * platform/graphics/blackberry/InstrumentedPlatformCanvas.h:
2988         (WebCore::InstrumentedPlatformCanvas::InstrumentedPlatformCanvas):
2989         (WebCore::InstrumentedPlatformCanvas::save):
2990         (WebCore::InstrumentedPlatformCanvas::saveLayer):
2991         (WebCore::InstrumentedPlatformCanvas::restore):
2992         (WebCore::InstrumentedPlatformCanvas::translate):
2993         (WebCore::InstrumentedPlatformCanvas::scale):
2994         (WebCore::InstrumentedPlatformCanvas::rotate):
2995         (WebCore::InstrumentedPlatformCanvas::skew):
2996         (WebCore::InstrumentedPlatformCanvas::concat):
2997         (WebCore::InstrumentedPlatformCanvas::setMatrix):
2998         (WebCore::InstrumentedPlatformCanvas::clipRect):
2999         (WebCore::InstrumentedPlatformCanvas::clipPath):
3000         (WebCore::InstrumentedPlatformCanvas::clipRegion):
3001         (WebCore::InstrumentedPlatformCanvas::clear):
3002         (WebCore::InstrumentedPlatformCanvas::drawPaint):
3003         (WebCore::InstrumentedPlatformCanvas::drawPoints):
3004         (WebCore::InstrumentedPlatformCanvas::drawRect):
3005         (WebCore::InstrumentedPlatformCanvas::drawPath):
3006         (WebCore::InstrumentedPlatformCanvas::drawBitmap):
3007         (WebCore::InstrumentedPlatformCanvas::drawBitmapRect):
3008         (WebCore::InstrumentedPlatformCanvas::drawBitmapMatrix):
3009         (WebCore::InstrumentedPlatformCanvas::drawSprite):
3010         (WebCore::InstrumentedPlatformCanvas::drawText):
3011         (WebCore::InstrumentedPlatformCanvas::drawPosText):
3012         (WebCore::InstrumentedPlatformCanvas::drawPosTextH):
3013         (WebCore::InstrumentedPlatformCanvas::drawTextOnPath):
3014         (WebCore::InstrumentedPlatformCanvas::drawPicture):
3015         (WebCore::InstrumentedPlatformCanvas::drawVertices):
3016         (WebCore::InstrumentedPlatformCanvas::drawData):
3017         * platform/graphics/blackberry/LayerData.h:
3018         (WebCore::LayerData::LayerData):
3019         (WebCore::LayerData::needsTexture):
3020         (LayerData):
3021         * platform/graphics/blackberry/LayerTiler.cpp:
3022         (WebCore::LayerTiler::updateTextureContentsIfNeeded):
3023         * platform/graphics/blackberry/LayerWebKitThread.cpp:
3024         (WebCore::LayerWebKitThread::paintContents):
3025         (WebCore::LayerWebKitThread::setDrawable):
3026         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
3027         (WebCore::loadBufferingImageData):
3028         * platform/graphics/blackberry/skia/ImageBufferDataSkia.h: Renamed from Source/WebCore/platform/graphics/blackberry/skia/ImageBufferData.h.
3029         (WebCore):
3030         (ImageBufferData):
3031
3032 2012-03-26  Stephen Chenney  <schenney@chromium.org>
3033
3034         Failure to invalidate text position attributes when DOM changes
3035         https://bugs.webkit.org/show_bug.cgi?id=81464
3036
3037         Reviewed by Nikolas Zimmermann.
3038
3039         The text positioning elements data structure in RenderSVGText must be
3040         updated when either the children of the corresponding element are
3041         modified, or the length of the text inside the elements changes.
3042         Previously, the call to clear the text positioning elements (to force
3043         recomputation) was guarded by a flag. If code tried to invalidate when
3044         the flag was not set, then something set the flag, the elements would
3045         be invalid at use time.
3046
3047         This patch modifies the method that invalidates the positining
3048         attributes so that the action always happens. It also renames the
3049         method to more accurately reflect its function.
3050
3051         Test: svg/custom/delete-modified-text-in-defs-crash.svg
3052
3053         * rendering/svg/RenderSVGInlineText.cpp:
3054         (WebCore::RenderSVGInlineText::setTextInternal): Rename textDOMChanged to invalidateTextPositioningElements
3055         * rendering/svg/RenderSVGText.cpp:
3056         (WebCore::RenderSVGText::invalidateTextPositioningElements): Rename
3057         textDOMChanged to invalidateTextPositioningElements and remove the check against the needsPosition... flag.
3058         * rendering/svg/RenderSVGText.h:
3059         (RenderSVGText): Rename textDOMChanged to invalidateTextPositioningElements
3060         * svg/SVGAElement.cpp:
3061         (WebCore::SVGAElement::childrenChanged): Rename textDOMChanged to invalidateTextPositioningElements
3062         * svg/SVGTextContentElement.cpp:
3063         (WebCore::SVGTextContentElement::childrenChanged): Rename textDOMChanged to invalidateTextPositioningElements
3064
3065 2012-03-26  Julien Chaffraix  <jchaffraix@webkit.org>
3066
3067         REGRESSION (r110065-r110080): fast/forms/placeholder-set-attribute.html is failing intermittently because WebKit fails to repaint after setting the placeholder attribute
3068         https://bugs.webkit.org/show_bug.cgi?id=81802
3069
3070         Reviewed by Dan Bernstein.
3071
3072         Covered by fast/forms/placeholder-set-attribute.html which should be less flaky.
3073
3074         Unfortunately no new test case as this bug requires a very specific set of conditions that I couldn't reproduce deterministically.
3075
3076         This is a regression from r110072: RenderTextControlSingleLine would rely on the placeholder's RenderLayer to properly repaint during
3077         the first layout as the placeholder has overflow: hidden set. r110072 removed the layer in this case and thus we miss a repaint.
3078
3079         * rendering/RenderTextControlSingleLine.cpp:
3080         (WebCore::RenderTextControlSingleLine::layout):
3081         For our first layout, we need to make sure our placeholder is painted. layoutBlockChild has a very similar logic to force repaint
3082         on a first layout. We don't hit this logic as the placeholder is explicitly skipped in RenderTextControl::layoutSpecialExcludedChild.
3083
3084 2012-03-26  Julien Chaffraix  <jchaffraix@webkit.org>
3085
3086         REGRESSION(r110072): fast/forms/textfield-overflow.html is failing
3087         https://bugs.webkit.org/show_bug.cgi?id=80531
3088
3089         Reviewed by Ojan Vafai.
3090
3091         Tested by fast/forms/textfield-overflow.html (re-enabled after this change).
3092
3093         The existing code would happily query layout information before calling layout (FTW!).
3094         The solution is to properly layout our object, then modify some dimensions as needed while
3095         marking ourself as needing layout and then layouting again.
3096
3097         * rendering/RenderTextControlSingleLine.cpp:
3098         (WebCore::RenderTextControlSingleLine::layout):
3099         Implemented a proper 2 pass layout algorithm. Removed the |relayoutChildren| logic as:
3100         - layoutBlock handles automatically logical height changes.
3101         - we were not modifying the logical width between layouts so we don't need to force a
3102         child relayout in this case.
3103
3104 2012-03-26  Robin Cao  <robin.cao@torchmobile.com.cn>
3105
3106         [BlackBerry] Upstream LayerCompositingThread.{h, cpp}
3107         https://bugs.webkit.org/show_bug.cgi?id=79873
3108
3109         Reviewed by Rob Buis.
3110
3111         Initial upstream, no new tests.
3112
3113         * platform/graphics/blackberry/LayerCompositingThread.cpp: Added.
3114         (WebCore):
3115         (WebCore::LayerCompositingThread::create):
3116         (WebCore::LayerCompositingThread::LayerCompositingThread):
3117         (WebCore::LayerCompositingThread::~LayerCompositingThread):
3118         (WebCore::LayerCompositingThread::destroyOnCompositingThread):
3119         (WebCore::LayerCompositingThread::setLayerRenderer):
3120         (WebCore::LayerCompositingThread::deleteTextures):
3121         (WebCore::LayerCompositingThread::setDrawTransform):
3122         (WebCore::getTransformedRect):
3123         (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
3124         (WebCore::LayerCompositingThread::drawTextures):
3125         (WebCore::LayerCompositingThread::drawSurface):
3126         (WebCore::LayerCompositingThread::drawMissingTextures):
3127         (WebCore::LayerCompositingThread::releaseTextureResources):
3128         (WebCore::LayerCompositingThread::setPluginView):
3129         (WebCore::LayerCompositingThread::setMediaPlayer):
3130         (WebCore::LayerCompositingThread::clearAnimations):
3131         (WebCore::LayerCompositingThread::removeSublayer):
3132         (WebCore::LayerCompositingThread::indexOfSublayer):
3133         (WebCore::LayerCompositingThread::rootLayer):
3134         (WebCore::LayerCompositingThread::removeFromSuperlayer):
3135         (WebCore::LayerCompositingThread::setSublayers):
3136         (WebCore::LayerCompositingThread::updateTextureContentsIfNeeded):
3137         (WebCore::LayerCompositingThread::setVisible):
3138         (WebCore::LayerCompositingThread::setNeedsCommit):
3139         (WebCore::LayerCompositingThread::scheduleCommit):
3140         (WebCore::LayerCompositingThread::updateAnimations):
3141         (WebCore::LayerCompositingThread::hasVisibleHolePunchRect):
3142         (WebCore::LayerCompositingThread::createLayerRendererSurface):
3143         * platform/graphics/blackberry/LayerCompositingThread.h: Added.
3144         (Graphics):
3145         (WebCore):
3146         (LayerCompositingThread):
3147         (WebCore::LayerCompositingThread::bindContentsTexture):
3148         (WebCore::LayerCompositingThread::getSublayers):
3149         (WebCore::LayerCompositingThread::setSuperlayer):
3150         (WebCore::LayerCompositingThread::superlayer):
3151         (WebCore::LayerCompositingThread::drawTransform):
3152         (WebCore::LayerCompositingThread::setDrawOpacity):
3153         (WebCore::LayerCompositingThread::drawOpacity):
3154         (WebCore::LayerCompositingThread::layerRendererSurface):
3155         (WebCore::LayerCompositingThread::clearLayerRendererSurface):
3156         (WebCore::LayerCompositingThread::setMaskLayer):
3157         (WebCore::LayerCompositingThread::maskLayer):
3158         (WebCore::LayerCompositingThread::setReplicaLayer):
3159         (WebCore::LayerCompositingThread::replicaLayer):
3160         (WebCore::LayerCompositingThread::getDrawRect):
3161         (WebCore::LayerCompositingThread::getTransformedBounds):
3162         (WebCore::LayerCompositingThread::hasMissingTextures):
3163         (WebCore::LayerCompositingThread::isDirty):
3164         (WebCore::LayerCompositingThread::isVisible):
3165         (WebCore::LayerCompositingThread::setOpacity):
3166         (WebCore::LayerCompositingThread::setTransform):
3167         (WebCore::LayerCompositingThread::hasRunningAnimations):
3168         (WebCore::LayerCompositingThread::numSublayers):
3169
3170 2012-03-26  Kent Tamura  <tkent@chromium.org>
3171
3172         Add a notification function for detaching to TextFieldDecorator
3173         https://bugs.webkit.org/show_bug.cgi?id=82142
3174
3175         Reviewed by Dimitri Glazkov.
3176
3177         Add willDetach() functio to TextFieldDecorator. This will be
3178         needed if a decorator opens a popup UI on handleClick(), and the
3179         popup UI should be closed when the attaching text field is
3180         detached.
3181
3182         No new tests because of no behavior changes in any platforms.
3183
3184         * html/shadow/TextFieldDecorationElement.cpp:
3185         (WebCore::TextFieldDecorationElement::hostInput):
3186         Added. A utilify function to get an HTMLInputElement*.
3187         (WebCore::TextFieldDecorationElement::updateImage): Use hostInput().
3188         (WebCore::TextFieldDecorationElement::customStyleForRenderer): ditto.
3189         (WebCore::TextFieldDecorationElement::detach): Added. Calls TextFieldDecorator::willDetach().
3190         (WebCore::TextFieldDecorationElement::defaultEventHandler): Use hostInput().
3191         * html/shadow/TextFieldDecorationElement.h:
3192         (TextFieldDecorator):
3193         (TextFieldDecorationElement):
3194
3195 2012-03-26  Dan Bernstein  <mitz@apple.com>
3196
3197         Tried to fix the 32-bit build after r112021.
3198
3199         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
3200         (-[WebAccessibilityObjectWrapper _convertToNSRange:]):
3201
3202 2012-03-26  Leo Yang  <leo.yang@torchmobile.com.cn>
3203
3204         [BlackBerry] Skeleton code of AsyncFileSystemBlackBerry.cpp
3205         https://bugs.webkit.org/show_bug.cgi?id=82157
3206
3207         Reviewed by Rob Buis.
3208
3209         AsyncFileSystemBlackBerry is responsible for asynchronous operating
3210         on file system for the blackberry porting. It's just skeleton code
3211         containing no implementation yet.
3212
3213         No new tests because of skeleton code.
3214
3215         * PlatformBlackBerry.cmake: Add AsyncFileSystemBlackBerry.cpp if ENABLE_FILE_SYSTEM is on.
3216         * platform/AsyncFileSystem.cpp:
3217         (WebCore):
3218         * platform/blackberry/AsyncFileSystemBlackBerry.cpp: Added.
3219         (WebCore):
3220         (WebCore::AsyncFileSystem::isAvailable):
3221         (WebCore::AsyncFileSystem::isValidType):
3222         (WebCore::AsyncFileSystem::create):
3223         (WebCore::AsyncFileSystem::openFileSystem):
3224         (WebCore::AsyncFileSystem::crackFileSystemURL):
3225         (WebCore::AsyncFileSystemBlackBerry::AsyncFileSystemBlackBerry):
3226         (WebCore::AsyncFileSystemBlackBerry::~AsyncFileSystemBlackBerry):
3227         (WebCore::AsyncFileSystemBlackBerry::toURL):
3228         (WebCore::AsyncFileSystemBlackBerry::move):
3229         (WebCore::AsyncFileSystemBlackBerry::copy):
3230         (WebCore::AsyncFileSystemBlackBerry::remove):
3231         (WebCore::AsyncFileSystemBlackBerry::removeRecursively):
3232         (WebCore::AsyncFileSystemBlackBerry::readMetadata):
3233         (WebCore::AsyncFileSystemBlackBerry::createFile):
3234         (WebCore::AsyncFileSystemBlackBerry::createDirectory):
3235         (WebCore::AsyncFileSystemBlackBerry::fileExists):
3236         (WebCore::AsyncFileSystemBlackBerry::directoryExists):
3237         (WebCore::AsyncFileSystemBlackBerry::readDirectory):
3238         (WebCore::AsyncFileSystemBlackBerry::createWriter):
3239         (WebCore::AsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadata):
3240         * platform/blackberry/AsyncFileSystemBlackBerry.h: Added.
3241         (WebCore):
3242         (AsyncFileSystemBlackBerry):
3243
3244 2012-03-26  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
3245
3246         [BlackBerry] CredentialBackingStore implement encryptString() and decryptString()
3247         https://bugs.webkit.org/show_bug.cgi?id=82204
3248
3249         Reviewed by Rob Buis.
3250
3251         Implemented encryptedString() and decryptedString() in class CredentialBackingStore
3252         by calling BlackBerry::Platform::Encryptor::encryptString() and
3253         BlackBerry::Platform::Encryptor::encryptString() respectively.
3254
3255         No new tests.
3256
3257         * platform/network/blackberry/CredentialBackingStore.cpp:
3258         (WebCore::CredentialBackingStore::encryptedString):
3259         (WebCore::CredentialBackingStore::decryptedString):
3260
3261 2012-03-26  Pavel Feldman  <pfeldman@chromium.org>
3262
3263         Web Inspector: 'use strict' exceptions stop in inspector code
3264         https://bugs.webkit.org/show_bug.cgi?id=82199
3265
3266         Reviewed by Yury Semikhatsky.
3267
3268         Accessing callee from within InjectedScript made inspector stop on handled exceptions.
3269         I replaced it with Object.prototype.toString.call(obj) === "[object Arguments]".
3270
3271         * inspector/InjectedScriptSource.js:
3272
3273 2012-03-26  Mihai Balan  <mibalan@adobe.com>
3274
3275         [CSS Regions] In region styling (@-webkit-region) the position for CSS rules is incorrectly computed
3276         https://bugs.webkit.org/show_bug.cgi?id=81901
3277
3278         Reviewed by Antti Koivisto.
3279
3280         Right now CSS rules position does not take into account rules that are inside a @-webkit-region
3281         declaration, leading to buggy behavior where rules that appear later in the document are superseded
3282         by rules that appear earlier in the document (opposite as how things should be). The fix updates
3283         the "global" rules counter once the rules in a @-webkit-region declaration have been added.
3284
3285         Tests: fast/regions/region-style-rule-position-expected.html
3286                fast/regions/region-style-rule-position.html
3287
3288         * css/CSSStyleSelector.cpp:
3289         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3290
3291 2012-03-26  Pierre Rossi  <pierre.rossi@nokia.com>
3292
3293         [Qt] Disable focus ring in the mobile theme.
3294         https://bugs.webkit.org/show_bug.cgi?id=81934
3295
3296         For mobile devices intended to be used only through
3297         touch, the focus rings makes little sense and feels
3298         awkward.
3299
3300         Reviewed by Kenneth Rohde Christiansen.
3301
3302         No new tests. This is merely a cosmetic touch.
3303
3304         * platform/qt/RenderThemeQtMobile.h:
3305         (RenderThemeQtMobile):
3306         (WebCore::RenderThemeQtMobile::platformFocusRingColor):
3307
3308 2012-03-26  Charles Wei  <charles.wei@torchmobile.com.cn>
3309
3310         [BlackBerry] Clean up networking code and remove WML support.
3311         https://bugs.webkit.org/show_bug.cgi?id=82170
3312
3313         Reviewed by Rob Buis.
3314
3315         This just removes the WML support of BlackBerry porting, which is already 
3316         removed from WebCore. No new tests needed.
3317
3318         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
3319         (WebCore):
3320         * platform/network/blackberry/DeferredData.cpp:
3321         (WebCore::DeferredData::DeferredData):
3322         (WebCore::DeferredData::processDeferredData):
3323         * platform/network/blackberry/DeferredData.h:
3324         (DeferredData):
3325         (WebCore::DeferredData::hasDeferredData):
3326         * platform/network/blackberry/NetworkJob.cpp:
3327         * platform/network/blackberry/NetworkJob.h:
3328         (NetworkJob):
3329         * platform/network/blackberry/ResourceResponse.h:
3330         (WebCore::ResourceResponse::ResourceResponse):
3331         (ResourceResponse):
3332         * platform/network/blackberry/ResourceResponseBlackBerry.cpp:
3333         (WebCore::ResourceResponse::doPlatformCopyData):
3334         (WebCore::ResourceResponse::doPlatformAdopt):
3335
3336 2012-03-26  Philip Rogers  <pdr@google.com>
3337
3338         Add invalid bounding box concept to SVG containers
3339         https://bugs.webkit.org/show_bug.cgi?id=81104
3340
3341         Reviewed by Nikolas Zimmermann.
3342
3343         An empty <g> element needs to use an invalid bounding box because
3344         an empty bounding box isn't the default state. This change
3345         introduces the concept of an invalid object bounding box for
3346         both RenderSVGContainer and RenderSVGRoot. Code that
3347         does not explicitly check that the bounding box is valid
3348         should be unaffected by this change. We use this new invalid
3349         flag in computeContainerBoundingBoxes so that we do not
3350         include invalid bounding boxes.
3351
3352         This change also contains a small fix in
3353         RenderSVGContainer::toRenderSVGContainer which depended on
3354         RenderSVGViewportContainer not inheriting from RenderSVGContainer,
3355         which it now does.
3356
3357         Test: svg/custom/getBBox-empty-container.html
3358
3359         * rendering/svg/RenderSVGContainer.cpp:
3360         (WebCore::RenderSVGContainer::RenderSVGContainer):
3361         (WebCore::RenderSVGContainer::updateCachedBoundaries):
3362         * rendering/svg/RenderSVGContainer.h:
3363         (WebCore::RenderSVGContainer::isObjectBoundingBoxValid):
3364         (RenderSVGContainer):
3365         (WebCore::toRenderSVGContainer):
3366         * rendering/svg/RenderSVGRoot.cpp:
3367         (WebCore::RenderSVGRoot::RenderSVGRoot):
3368         (WebCore::RenderSVGRoot::updateCachedBoundaries):
3369         * rendering/svg/RenderSVGRoot.h:
3370         (RenderSVGRoot):
3371         * rendering/svg/SVGRenderSupport.cpp:
3372         (WebCore):
3373         (WebCore::updateObjectBoundingBox):
3374         (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
3375         * rendering/svg/SVGRenderSupport.h:
3376         (SVGRenderSupport):
3377
3378 2012-03-26  Alexei Filippov  <alexeif@chromium.org>
3379
3380         Web Inspector: Speed up the retainers build phase.
3381         https://bugs.webkit.org/show_bug.cgi?id=81763
3382
3383         Replacing the edge iterator in retainers building phase
3384         makes it run 10 times faster (400 ms vs. 4 sec).
3385
3386         Reviewed by Yury Semikhatsky.
3387
3388         * inspector/front-end/HeapSnapshot.js:
3389         (WebInspector.HeapSnapshot.prototype._buildRetainers):
3390
3391 2012-03-22  Alexander Pavlov  <apavlov@chromium.org>
3392
3393         Web Inspector: Migrate InspectorCSSAgent to strict protocol types
3394         https://bugs.webkit.org/show_bug.cgi?id=81923
3395
3396         Reviewed by Pavel Feldman.
3397
3398         No new tests, as this is a refactoring.
3399
3400         * inspector/CodeGeneratorInspector.py:
3401         * inspector/InspectorCSSAgent.cpp:
3402         (SelectorProfile):
3403         (WebCore::SelectorProfile::toInspectorObject):
3404         (WebCore::InspectorCSSAgent::clearFrontend):
3405         (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
3406         (WebCore::InspectorCSSAgent::getInlineStylesForNode):
3407         (WebCore::InspectorCSSAgent::getComputedStyleForNode):
3408         (WebCore::InspectorCSSAgent::getAllStyleSheets):
3409         (WebCore::InspectorCSSAgent::getStyleSheet):
3410         (WebCore::InspectorCSSAgent::setPropertyText):
3411         (WebCore::InspectorCSSAgent::toggleProperty):
3412         (WebCore::InspectorCSSAgent::setRuleSelector):
3413         (WebCore::InspectorCSSAgent::addRule):
3414         (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
3415         (WebCore::InspectorCSSAgent::stopSelectorProfiler):
3416         (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
3417         (WebCore::InspectorCSSAgent::collectStyleSheets):
3418         (WebCore::InspectorCSSAgent::buildArrayForRuleList):
3419         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
3420         * inspector/InspectorCSSAgent.h:
3421         (InspectorCSSAgent):
3422         * inspector/InspectorStyleSheet.cpp:
3423         (WebCore::buildSourceRangeObject):
3424         (WebCore::buildMediaObject):
3425         (WebCore::fillMediaListChain):
3426         (WebCore::InspectorStyle::buildObjectForStyle):
3427         (WebCore::InspectorStyle::buildArrayForComputedStyle):
3428         (WebCore::InspectorStyle::styleWithProperties):
3429         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
3430         (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
3431         (WebCore::InspectorStyleSheet::buildObjectForRule):
3432         (WebCore::InspectorStyleSheet::buildObjectForStyle):
3433         * inspector/InspectorStyleSheet.h:
3434         (WebCore::InspectorCSSId::asProtocolValue):
3435         (InspectorStyle):
3436         (InspectorStyleSheet):
3437
3438 2012-03-26  Alexander Pavlov  <apavlov@chromium.org>
3439
3440         Web Inspector: [REGRESSION] Workarounds for security checks when retrieving stylesheet rule lists are broken
3441         https://bugs.webkit.org/show_bug.cgi?id=82191
3442
3443         Reviewed by Vsevolod Vlasov.
3444
3445         Test: http/tests/inspector/modify-cross-domain-rule.html
3446
3447         * inspector/InspectorStyleSheet.cpp:
3448         (WebCore::asCSSRuleList):
3449         (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):