Move RenderLayers z-index lists dirtying to post style change
[WebKit.git] / Source / WebCore / ChangeLog
1 2012-05-08  Julien Chaffraix  <jchaffraix@webkit.org>
2
3         Move RenderLayers z-index lists dirtying to post style change
4         https://bugs.webkit.org/show_bug.cgi?id=85437
5
6         Reviewed by Darin Adler.
7
8         No expected change in behavior.
9
10         This change moves the z-order lists to RenderLayer::styleChanged. As part of this
11         change, also added proper handling of stacking context transition. This enabled
12         us to tighten more of the dirtyZOrderLists / clearZOrderLists code.
13
14         * rendering/RenderBoxModelObject.cpp:
15         (WebCore::RenderBoxModelObject::styleWillChange):
16         Removed this code, moved to updateStackingContextsAfterStyleChange.
17
18         * rendering/RenderLayer.cpp:
19         (WebCore::RenderLayer::RenderLayer):
20         Only stacking contexts start with dirty z-order lists.
21
22         (WebCore::RenderLayer::dirtyZOrderLists):
23         Added an ASSERT.
24
25         (WebCore::RenderLayer::updateStackingContextsAfterStyleChange):
26         Refactored the code to handle the transition between stacking context status.
27
28         (WebCore::RenderLayer::styleChanged):
29         Added a call to updateStackingContextsAfterStyleChange.
30
31         * rendering/RenderLayer.h:
32         (WebCore::RenderLayer::isStackingContext):
33         Added a call to the next function.
34
35         (WebCore::RenderLayer::layerWithStyleIsStackingContext):
36         Factored the isStackingContext logic here so that we can reuse it inside
37         updateStackingContextsAfterStyleChange.
38
39         (WebCore::RenderLayer::clearZOrderLists):
40         Added an ASSERT.
41
42 2012-05-08  Abhishek Arya  <inferno@chromium.org>
43
44         Crash due to owning renderer not removed from custom scrollbar.
45         https://bugs.webkit.org/show_bug.cgi?id=80610
46
47         Reviewed by Eric Seidel.
48
49         Test: scrollbars/scrollbar-owning-renderer-crash.html
50
51         Changed RenderScrollbar to keep pointer to owning node, instead of the
52         renderer. Renderer can get destroyed without informing the scrollbar, causing
53         crashes later. Remove code from r94107 since it is not needed anymore and saves
54         times when RenderBox is getting destroyed.
55
56         * page/FrameView.cpp:
57         (WebCore::FrameView::createScrollbar): pass renderer's node.
58         * page/FrameView.h:
59         * rendering/RenderBox.cpp:
60         (WebCore::RenderBox::willBeDestroyed): no longer need this. came originally from r94107.
61         * rendering/RenderLayer.cpp:
62         (WebCore::RenderLayer::createScrollbar): pass renderer's node.
63         (WebCore::RenderLayer::destroyScrollbar): no longer need to clear owning renderer.
64         * rendering/RenderListBox.cpp:
65         (WebCore::RenderListBox::createScrollbar): pass renderer's node.
66         * rendering/RenderMenuList.cpp:
67         (WebCore::RenderMenuList::createScrollbar): pass renderer's node.
68         * rendering/RenderScrollbar.cpp:
69         (WebCore::RenderScrollbar::createCustomScrollbar): Store owner node instead of renderer.
70         (WebCore::RenderScrollbar::RenderScrollbar): Store owner node instead of renderer.
71         (WebCore::RenderScrollbar::owningRenderer): calculate owning renderer from owner node.
72         * rendering/RenderScrollbar.h:
73         (RenderScrollbar):
74         * rendering/RenderTextControlSingleLine.cpp:
75         (WebCore::RenderTextControlSingleLine::createScrollbar): pass renderer's node.
76
77 2012-05-08  Jon Lee  <jonlee@apple.com>
78
79         Safari warns that it needs to resend the form in an iFrame when going back
80         https://bugs.webkit.org/show_bug.cgi?id=82658
81         <rdar://problem/11292558>
82
83         Reviewed by Darin Adler.
84
85         Test: http/tests/loading/post-in-iframe-with-back-navigation.html
86
87         * WebCore.exp.in: Add _wkCFURLRequestAllowAllPostCaching.
88         * platform/mac/WebCoreSystemInterface.h: Add wkCFURLRequestAllowAllPostCaching.
89         * platform/mac/WebCoreSystemInterface.mm: Add wkCFURLRequestAllowAllPostCaching.
90         * platform/network/cf/ResourceRequestCFNet.cpp:
91         (WebCore::ResourceRequest::doUpdatePlatformRequest): Set the bit to cache all POST responses.
92         * platform/network/mac/ResourceRequestMac.mm:
93         (WebCore::ResourceRequest::doUpdatePlatformRequest): Set the bit to cache all POST responses.
94
95 2012-05-08  Dana Jansens  <danakj@chromium.org>
96
97         [chromium] Reflections with masks should not occlude
98         https://bugs.webkit.org/show_bug.cgi?id=85927
99
100         Reviewed by James Robinson.
101
102         When a surface does not have a mask, we make both it and its reflection
103         occlude the things below them. However, if the reflection has a mask
104         applied to it, then we should not consider it as occluding.
105
106         Adds replicaHasMask() to the render surface classes so we can test if
107         the mask is present.
108
109         Unit Tests: CCOcclusionTrackerTestReplicaWithMask
110
111         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
112         (WebCore::RenderSurfaceChromium::hasMask):
113         This is unusued right now, but will allow us to remove a FIXME from
114         CCOcclusionTracker::finishedTargetRenderSurface().
115         (WebCore):
116         (WebCore::RenderSurfaceChromium::replicaHasMask):
117         * platform/graphics/chromium/RenderSurfaceChromium.h:
118         (RenderSurfaceChromium):
119         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
120         (WebCore::::leaveToTargetRenderSurface):
121         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
122         (WebCore::CCRenderSurface::hasMask):
123         This is unusued right now, but will allow us to remove a FIXME from
124         CCOcclusionTracker::finishedTargetRenderSurface().
125         (WebCore):
126         (WebCore::CCRenderSurface::replicaHasMask):
127         * platform/graphics/chromium/cc/CCRenderSurface.h:
128         (CCRenderSurface):
129
130 2012-05-08  Eric Seidel  <eric@webkit.org>
131
132         Add stylesheet inheritance support to IFRAME_SEAMLESS
133         https://bugs.webkit.org/show_bug.cgi?id=85914
134
135         Reviewed by Ojan Vafai.
136
137         This work is already guarded by IFRAME_SEAMLESS, as
138         Document::shouldDisplaySeamlesslyWithParent always returns false
139         when IFRAME_SEAMLESS is off.
140
141         This makes the child document use all author stylesheets from all parent documents,
142         per the seamless spec:
143         http://www.whatwg.org/specs/web-apps/current-work/#attr-iframe-seamless
144
145         This support is slightly inefficient as every time a sheet is added
146         to a parent document, the child document must do a full style selector recalc.
147         Normally author sheet additions have a fast-path which avoids the full selector recalc,
148         but such is not possible in the seamless case as we're inserting the parents sheets
149         earlier in the child's cascade (instead of just appending them to the end of the list).
150
151         The test covers both the static inheritance as well as addition of a stylesheet
152         to the parent and testing that it caused a recalc of the child.
153
154         Covered by fast/frames/seamless/seamless-css-cascade.html
155
156         * css/StyleResolver.cpp:
157         (WebCore::StyleResolver::StyleResolver):
158         (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
159         (WebCore):
160         * css/StyleResolver.h:
161         (StyleResolver):
162         * dom/Document.cpp:
163         (WebCore::Document::seamlessParentUpdatedStylesheets):
164         (WebCore):
165         (WebCore::Document::notifySeamlessChildDocumentsOfStylesheetUpdate):
166         (WebCore::Document::updateActiveStylesheets):
167         * dom/Document.h:
168         (Document):
169
170 2012-05-08  Raphael Kubo da Costa  <rakuco@webkit.org>
171
172         [CMake] FindGStreamer: Fix the build with static WebCore.
173         https://bugs.webkit.org/show_bug.cgi?id=85930
174
175         Reviewed by Daniel Bates.
176
177         No new tests, build fix.
178
179         Building WebCore statically was failing because files in
180         WebCore/platform/gstreamer when ENABLE_VIDEO was set required
181         gstreamer-base, which was not being linked to after r116453.
182
183         Fix that by looking for gstreamer-base, requiring and linking
184         against it if GStreamer is used.
185
186         * PlatformEfl.cmake: Link to GSTREAMER_LIBRARIES and
187         GSTREAMER_BASE_LIBRARIES, and include GSTREAMER_INCLUDE_DIRS and
188         GSTREAMER_BASE_INCLUDE_DIRS.
189
190 2012-05-08  Raymond Toy  <rtoy@google.com>
191
192         JavaScriptAudioNode should not ASSERT if number of input channels is 0
193         https://bugs.webkit.org/show_bug.cgi?id=85818
194
195         Reviewed by Eric Seidel.
196
197         Test: webaudio/javascriptaudionode-zero-input-channels.html
198
199         * Modules/webaudio/JavaScriptAudioNode.cpp:
200         (WebCore::JavaScriptAudioNode::process): Update buffersAreGood.
201         (WebCore::JavaScriptAudioNode::fireProcessEvent): Remove ASSERT.
202
203 2012-05-08  Dana Jansens  <danakj@chromium.org>
204
205         Region reads past end of spans
206         https://bugs.webkit.org/show_bug.cgi?id=85909
207
208         Reviewed by Anders Carlsson.
209
210         Region currently checks aSpan == aSpanEnd as the indicator that
211         we passed all the spans. When aSpan < aSpanEnd, it uses aSpan+1
212         to find the height of the span.
213
214         If aSpan == aSpanEnd - 1, then aSpan+1 == aSpanEnd. This does not
215         represent a valid span, since aSpanEnd is past the end of the
216         array, not the last element in the array. The loop should terminate
217         in this case.
218
219         Checking aSegment != aSegmentEnd is acceptable in the inner loop since
220         it increments by two each time (segments come in pairs, while spans
221         come in singles).
222
223         Test: RegionTest.ReadPastFullSpanVectorInIntersectsTest
224
225         * platform/graphics/Region.cpp:
226         (WebCore::Region::Shape::compareShapes):
227
228 2012-05-08  Philip Rogers  <pdr@google.com>
229
230         Prevent crash in animated lists
231         https://bugs.webkit.org/show_bug.cgi?id=85382
232
233         Reviewed by Nikolas Zimmermann.
234
235         Animated lists blindly assign the last list value to m_toAtEndOfDurationType
236         in SVGAnimationElement::startedActiveInterval. If the last list value's length
237         is larger or smaller than the animated "to" length, we crash.
238
239         This change prevents accessing values off the end of toAtEndOfDuration by adding
240         a check for this case. It may seem inefficient to perform this check on every
241         animation update but the "to" value can change (in cardinality) while animating.
242
243         I checked each of the other animation types (e.g., SVGAnimatedAngle,
244         SVGAnimatedBoolean, etc.) and was only able to hit this style of crash
245         in the three types modified in this change:
246         SVGAnimatedLengthList, SVGAnimatedNumberList, and SVGAnimatedPointList.
247
248         Tests: svg/animations/animate-linear-discrete-additive-b-expected.svg
249                svg/animations/animate-linear-discrete-additive-b.svg
250                svg/animations/animate-linear-discrete-additive-c-expected.svg
251                svg/animations/animate-linear-discrete-additive-c.svg
252                svg/animations/animate-linear-discrete-additive-expected.svg
253                svg/animations/animate-linear-discrete-additive.svg
254                svg/animations/animate-list-crash.svg
255
256         * svg/SVGAnimatedLengthList.cpp:
257         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
258         * svg/SVGAnimatedNumberList.cpp:
259         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
260         * svg/SVGAnimatedPointList.cpp:
261         (WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
262
263 2012-05-08  Rafael Weinstein  <rafaelw@chromium.org>
264
265         HTMLElementStack::hasOnlyHTMLElementsInScope is no longer called
266         https://bugs.webkit.org/show_bug.cgi?id=85908
267
268         Reviewed by Eric Seidel.
269
270         This patch just removes the dead code.
271
272         No tests needed. Cleanup only.
273
274         * html/parser/HTMLElementStack.cpp:
275         * html/parser/HTMLElementStack.h:
276         (HTMLElementStack):
277
278 2012-05-08  W. James MacLean  <wjmaclean@chromium.org>
279
280         [chromium] Create LinkHighlightLayerChromium class to provide link-highlight preview animations for GraphicsLayerChromium.
281         https://bugs.webkit.org/show_bug.cgi?id=85084
282
283         Reviewed by James Robinson.
284
285         Unit test provided.
286
287         Creates a layer delegate class to provide link highlight animations for link-preview feature.
288         These are added to a GraphicsLayerChromium via provided methods. Moves dispensing of animation
289         ids into a separate class.
290
291         * WebCore.gypi:
292         * platform/graphics/chromium/AnimationIdVendor.cpp: Added.
293         (WebCore):
294         (WebCore::AnimationIdVendor::getNextAnimationId):
295         (WebCore::AnimationIdVendor::getNextGroupId):
296         * platform/graphics/chromium/AnimationIdVendor.h: Added.
297         (WebCore):
298         (AnimationIdVendor):
299         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
300         (WebCore::GraphicsLayerChromium::willBeDestroyed):
301         (WebCore::GraphicsLayerChromium::updateNames):
302         (WebCore::GraphicsLayerChromium::addAnimation):
303         (WebCore::GraphicsLayerChromium::addLinkHighlight):
304         (WebCore):
305         (WebCore::GraphicsLayerChromium::didFinishLinkHighlight):
306         (WebCore::GraphicsLayerChromium::updateChildList):
307         (WebCore::GraphicsLayerChromium::mapAnimationNameToId):
308         * platform/graphics/chromium/GraphicsLayerChromium.h:
309         (WebCore):
310         (GraphicsLayerChromium):
311         * platform/graphics/chromium/LinkHighlight.cpp: Added.
312         (WebCore):
313         (WebCore::LinkHighlight::create):
314         (WebCore::LinkHighlight::LinkHighlight):
315         (WebCore::LinkHighlight::~LinkHighlight):
316         (WebCore::LinkHighlight::contentLayer):
317         (WebCore::LinkHighlight::paintContents):
318         (WebCore::LinkHighlight::notifyAnimationStarted):
319         (WebCore::LinkHighlight::notifyAnimationFinished):
320         * platform/graphics/chromium/LinkHighlight.h: Added.
321         (WebCore):
322         (LinkHighlight):
323
324 2012-05-08  Raphael Kubo da Costa  <rakuco@webkit.org>
325
326         [CMake] Rewrite FindGStreamer.cmake.
327         https://bugs.webkit.org/show_bug.cgi?id=85857
328
329         Reviewed by Daniel Bates.
330
331         No new tests, build system change.
332
333         We are currently kind of duplicating the same
334         FindGStreamer-Foo.cmake file whenever a new GStreamer plugin needs
335         to be found. Besides this approach not scaling very well, it
336         relies on pkg-config for version checking, uses the LibFindMacros
337         package that we should deprecate and all the find files could be
338         merged into one, with users using the COMPONENTS feature of the
339         FIND_PACKAGE() call to find the desired plugins.
340
341         FindGStreamer.cmake has then been rewritten to take all that into
342         account:
343         - The LibFindMacros.cmake package is not used anymore.
344         - Version check is performed in the CMake file itself by parsing
345         the gstversion.h header.
346         - All GStreamer plugins are searched and the COMPONENTS keyword
347         used in the FIND_PACKAGE() call is used to check which plugins are
348         required.
349         - The plugins-base and base GStreamer plugins are not searched, as
350         they were not used anywhere in the build system.
351
352         * PlatformEfl.cmake: Update GStreamer-related variable names.
353
354 2012-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
355
356         [EFL] Handling of numeric-pad keys in EFL's PlatformKeyboardEvent
357         https://bugs.webkit.org/show_bug.cgi?id=85479
358
359         Reviewed by Gustavo Noronha Silva.
360
361         EFL's PlatformKeyboardEvent::isKeypad() now returns meaningful value.
362         Added numeric-pad keys to the Key Map and Windows Key Map.
363
364         No new tests.
365
366         * platform/efl/EflKeyboardUtilities.cpp:
367         (WebCore::createKeyMap):
368         (WebCore::createWindowsKeyMap):
369         * platform/efl/PlatformKeyboardEventEfl.cpp:
370         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
371
372 2012-05-04  Nikolas Zimmermann  <nzimmermann@rim.com>
373
374         Tie lifetime of SVGAnimateElement::m_animatedType to the duration of the animation
375         https://bugs.webkit.org/show_bug.cgi?id=85627
376
377         Reviewed by Antti Koivisto.
378
379         Example:
380         <rect width="10" height="100">
381             <animate attributeName="width" from="10" to="100" begin="2s" dur="4s" fill="remove"/>
382         </rect>
383
384         At t=0s the <animate> element receives its first interval: begin=2s, end=6s.
385         At this point we've created the 'OwnPtr<SVGAnimatedType> m_animatedType' in
386         SVGAnimateElement, which holds the current animated value of the target type.
387         In this example it contains a SVGLength with '10' as value at t=0s.
388
389         Calling "rect.width.animVal.value" will return the value currently contained in the
390         m_animatedType from the SVGAnimateElement, even though the animation didn't begin
391         yet. This is fine, as the animVal equals to the baseVal, as long as no animation is
392         running.
393
394         At t=6s you'd expect that the whole 'animVal' object is destructed again, as it's no
395         longer needed, as animVal will be equal to baseVal again, but the current code keeps
396         the animVal alive, and just resets it to the baseVal. The animVals will be destructed
397         once the animate element leaves the tree.
398
399         CSS animations suffer from the same problem, we never remove the animated SMIL properties
400         but we only reset them to the base value. This makes integration with CSS Animations and
401         CSS Transitions harder, so this needs to be changed.
402
403         This patch starts tracking the start/end of an animation chain properly, to destruct
404         the animation effect for non-frozen animations at the end of their duration. This has to
405         work properly together with seeking (SVGSVGElement.setCurrentTime), as our testing relies
406         on the ability to drive the SMIL timeline from script.
407
408         Tests: svg/animations/list-wrapper-assertion-expected.svg
409                svg/animations/list-wrapper-assertion.svg
410
411         * svg/SVGAnimateElement.cpp:
412         (WebCore::SVGAnimateElement::resetAnimatedType):
413         (WebCore::applyCSSPropertyToTarget):
414         (WebCore::removeCSSPropertyFromTarget):
415         (WebCore::applyCSSPropertyToTargetAndInstances):
416         (WebCore::removeCSSPropertyFromTargetAndInstances):
417         (WebCore::notifyTargetAboutAnimValChange):
418         (WebCore::notifyTargetAndInstancesAboutAnimValChange):
419         (WebCore::SVGAnimateElement::clearAnimatedType):
420         (WebCore::SVGAnimateElement::applyResultsToTarget):
421         (WebCore::SVGAnimateElement::targetElementWillChange):
422         * svg/SVGAnimateElement.h:
423         (SVGAnimateElement):
424         * svg/SVGAnimateMotionElement.cpp:
425         (WebCore::SVGAnimateMotionElement::resetAnimatedType):
426         (WebCore::SVGAnimateMotionElement::clearAnimatedType):
427         * svg/SVGAnimateMotionElement.h:
428         (SVGAnimateMotionElement):
429         * svg/SVGAnimationElement.cpp:
430         * svg/SVGAnimationElement.h:
431         * svg/animation/SMILTimeContainer.cpp:
432         (WebCore::SMILTimeContainer::updateAnimations):
433         * svg/animation/SVGSMILElement.cpp:
434         (WebCore::SVGSMILElement::reset):
435         (WebCore::SVGSMILElement::targetElementWillChange):
436         (WebCore::SVGSMILElement::determineActiveState):
437         (WebCore::SVGSMILElement::progress):
438         * svg/animation/SVGSMILElement.h:
439         (SVGSMILElement):
440         * svg/properties/SVGAnimatedListPropertyTearOff.h:
441             Remove svgAttributeChanged() calls from animationEnded/animValDidChange.
442             Callers are now required to notify the target about changes. There are cases
443             where we want to call animValDidChange without invoking svgAttributeChanged().
444             That is supported now.
445         (WebCore::SVGAnimatedListPropertyTearOff::animationEnded):
446         (WebCore::SVGAnimatedListPropertyTearOff::animValDidChange):
447         * svg/properties/SVGAnimatedProperty.h: Ditto.
448         (WebCore::SVGAnimatedProperty::commitChange): Add safety guard.
449         * svg/properties/SVGAnimatedPropertyTearOff.h: Ditto.
450         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
451         (WebCore::SVGAnimatedPropertyTearOff::animValDidChange):
452         * svg/properties/SVGAnimatedStaticPropertyTearOff.h: Ditto.
453         (WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
454         (WebCore::SVGAnimatedStaticPropertyTearOff::animValDidChange):
455
456 2012-05-08  Ryuan Choi  <ryuan.choi@samsung.com>
457
458         [EFL][DRT]Do not create ScrollbarEfl when mockScrollbar is enabled.
459         https://bugs.webkit.org/show_bug.cgi?id=81315
460
461         Reviewed by Chang Shu.
462
463         ScrollbarEfl creates custom scrollbars as separated layer and they are
464         not related to ScrollbarTheme.
465         So, DRT/Efl creates custom scrollbars on webview which paints mockScrollbar.
466
467         This patch prevents creating custom scrollbars when mockScrollbar is enabled.
468
469         Because DRT/Efl only renders the webview now, expected results are same
470         until Bug 79853 is landed.
471
472         * platform/efl/ScrollbarEfl.cpp:
473         (Scrollbar::createNativeScrollbar):
474
475 2012-05-08  Timothy Hatcher  <timothy@apple.com>
476
477         Fix the SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL macro so it passes the full path to dlopen.
478
479         dyld only considers libraries in the versioned framework path if their install name
480         matches the library that it is attempting to load. The path we were passing to
481         dlopen lacked the Versions/A component of the path so dyld did not recognize that
482         we wanted it to use the staged version if it is newer.
483
484         <rdar://problem/11406517>
485
486         Reviewed by Mark Rowe.
487
488         * platform/mac/SoftLinking.h: Have SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL take the
489         framework version as an argument and use it when constructing the path to dlopen.
490
491 2012-05-08  Rafael Brandao  <rafael.lobo@openbossa.org>
492
493         Build fix for Qt Snowleopard Release
494         https://bugs.webkit.org/show_bug.cgi?id=85895
495
496         Reviewed by Alexis Menard.
497
498         The enum value JSUint8ClampedArray conflicted with the JSUint8ClampedArray class.
499         I've added the 'Type' suffix to the enum value to make their names different.
500
501         No new tests needed.
502
503         * bridge/qt/qt_runtime_qt4.cpp:
504         (JSC::Bindings::valueRealType):
505         (JSC::Bindings::convertValueToQVariant):
506
507 2012-05-08  Shezan Baig  <shezbaig.wk@gmail.com>
508
509         offsetLeft broken within CSS3 columns
510         https://bugs.webkit.org/show_bug.cgi?id=34875
511
512         Reviewed by Julien Chaffraix.
513
514         Reimplement offsetLeft and offsetTop in terms of a new method called
515         'offsetTopLeft'. The new method starts from a reference point (the
516         top-left coordinate of a box or inline) and adjusts this reference
517         point for columns as we traverse each parent. Note that the reference
518         point needs to be adjusted in both dimensions, even though offsetLeft
519         and offsetTop return only one of them.
520
521         A new method called 'offsetForColumns' was added to RenderObject. This
522         method is similar to adjustForColumns, except that it returns the
523         offset instead of modifying a reference. This method is necessary to
524         simplify the implementation of offsetTopLeft.
525
526         Tests: fast/block/positioning/offsetLeft-offsetTop-multicolumn-expected.txt
527                fast/block/positioning/offsetLeft-offsetTop-multicolumn.html
528
529         * rendering/RenderBox.h:
530         (RenderBox):
531         Override offsetLeft and offsetTop.
532         * rendering/RenderBox.cpp:
533         (WebCore::RenderBox::offsetLeft):
534         Implemented in terms of RenderBoxModelObject::offsetTopLeft, using
535         topLeftLocation as startPoint.
536         (WebCore::RenderBox::offsetTop):
537         Implemented in terms of RenderBoxModelObject::offsetTopLeft, using
538         topLeftLocation as startPoint.
539         * rendering/RenderBoxModelObject.cpp:
540         (WebCore::RenderBoxModelObject::offsetTopLeft):
541         New method to compute offsetLeft and offsetTop simultaneously, and
542         adjusting for columns at each parent.
543         (WebCore::RenderBoxModelObject::offsetLeft):
544         Reimplemented in terms of offsetTopLeft.
545         (WebCore::RenderBoxModelObject::offsetTop):
546         Reimplemented in terms of offsetTopLeft.
547         * rendering/RenderBoxModelObject.h:
548         (RenderBoxModelObject):
549         Declare new offsetTopLeft method.
550         * rendering/RenderInline.cpp:
551         (WebCore::RenderInline::offsetLeft):
552         Reimplemented in terms of RenderBoxModelObject::offsetTopLeft.
553         (WebCore::RenderInline::offsetTop):
554         Reimplemented in terms of RenderBoxModelObject::offsetTopLeft.
555         * rendering/RenderObject.h:
556         (RenderObject):
557         (WebCore::RenderObject::offsetForColumns):
558         New helper method to simplify implementation of offsetTopLeft.
559
560 2012-03-31  Robert Hogan  <robert@webkit.org>
561
562         CSS 2.1 failure: first-letter-nested-004.htm fails
563         https://bugs.webkit.org/show_bug.cgi?id=72987
564
565         Reviewed by Eric Seidel.
566
567         When styling first-letter check each sibling and drill into its inlines until we find either (i) a text node 
568         that is not all whitespace, or (ii) a line break.
569
570         This makes our rendering of the following tests compatible with FF and Opera. Our current behaviour is also conformant
571         since the spec allows UAs to style just one element:
572             css2.1/20110323/first-letter-quote-002.htm
573             css2.1/20110323/first-letter-quote-003.htm
574             css2.1/20110323/first-letter-quote-004.htm
575             css2.1/20110323/first-letter-quote-005.htm
576
577         This fixes the following two tests. We now drill into the descendants of an element styled with :first-letter looking
578         for text to style:
579             css2.1/20110323/first-letter-nested-004.htm
580             css2.1/20110323/first-letter-nested-006.htm
581
582         This patch changes our rendering of first-letter-dynamic-001.htm as we now render adjacent quotes in the second line as 
583         green. This is consistent with the spec, which allows this behaviour but does not require it. It's the 'right' behaviour
584         since it is consistent with the rendering of such quotes in a single element with :first-letter style.
585
586         * rendering/RenderBlock.cpp:
587         (WebCore::RenderBlock::findLastObjectWithFirstLetterText): Iterate through the child's siblings looking for the last
588           object to be styled :first-letter.
589         (WebCore::RenderBlock::findLastObjectAfterFirstLetterPunctuation): Style any leading punctuation as first-letter, drill
590           down into the child's descendants looking for text if necessary.
591         (WebCore::RenderBlock::updateFirstLetter): Refactor to drill into sibling's children looking for inlines
592          that should be styled as first-letter.
593         (WebCore::RenderBlock::addFirstLetter): Split out from updateFirstLetter so that it can be used when a
594          descendant node inside a sibling is found in findLastObjectWithFirstLetterText() needs to be styled as first-letter.
595         * rendering/RenderBlock.h:
596
597 2012-05-08  Sheriff Bot  <webkit.review.bot@gmail.com>
598
599         Unreviewed, rolling out r116402.
600         http://trac.webkit.org/changeset/116402
601         https://bugs.webkit.org/show_bug.cgi?id=85898
602
603         Caused a 3% regression on Chromium's bloat-http test on Linux
604         (Requested by ojan_gardening on #webkit).
605
606         * WebCore.exp.in:
607         * bindings/v8/RetainedDOMInfo.cpp:
608         * dom/ContainerNode.h:
609         * dom/Node.cpp:
610         (WebCore::Node::traverseNextNode):
611         (WebCore):
612         (WebCore::Node::traverseNextSibling):
613         * dom/Node.h:
614         (Node):
615
616 2012-05-08  Hironori Bono  <hbono@chromium.org>
617
618         [Chromium] Fix the position of an RTL resizer
619         https://bugs.webkit.org/show_bug.cgi?id=80640
620
621         Reviewed by Tony Chang.
622
623         When rendering an RTL resizer, my r110073 renders it at the same position as the
624         one used for rendering a LTR resizer. Unfortunately, this code renders the RTL
625         resizer image at an incorrect position on Mac and Linux. This change uses the
626         correct formula to calculate the position of an RTL resizer.
627
628         Test: platform/chromium/scrollbars/rtl-resizer-position.html
629
630         * rendering/RenderLayer.cpp:
631         (WebCore::RenderLayer::drawPlatformResizerImage):
632
633 2012-05-08  Andreas Kling  <kling@webkit.org>
634
635         Element: isURLAttribute() should take a const Attribute&.
636         <http://webkit.org/b/85890>
637
638         Reviewed by Anders Carlsson.
639
640         Change isURLAttribute(Attribute*) to isURLAttribute(const Attribute&) to enforce
641         the fact that the Attribute can't be null, and shouldn't be mutated, at compile-time.
642         Also sprinkle OVERRIDE while we're at it.
643
644         * dom/Element.cpp:
645         (WebCore::Element::getURLAttribute):
646         (WebCore::Element::getNonEmptyURLAttribute):
647         * dom/Element.h:
648         (WebCore::Element::isURLAttribute):
649         * editing/MarkupAccumulator.cpp:
650         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
651         (WebCore::MarkupAccumulator::appendAttribute):
652         * editing/markup.cpp:
653         (WebCore::completeURLs):
654         * html/HTMLAnchorElement.cpp:
655         (WebCore::HTMLAnchorElement::isURLAttribute):
656         * html/HTMLAnchorElement.h:
657         * html/HTMLBaseElement.cpp:
658         (WebCore::HTMLBaseElement::isURLAttribute):
659         * html/HTMLBaseElement.h:
660         * html/HTMLBodyElement.cpp:
661         (WebCore::HTMLBodyElement::isURLAttribute):
662         * html/HTMLBodyElement.h:
663         * html/HTMLButtonElement.cpp:
664         (WebCore::HTMLButtonElement::isURLAttribute):
665         * html/HTMLButtonElement.h:
666         * html/HTMLElement.cpp:
667         (WebCore::HTMLElement::isURLAttribute):
668         * html/HTMLElement.h:
669         * html/HTMLEmbedElement.cpp:
670         (WebCore::HTMLEmbedElement::isURLAttribute):
671         * html/HTMLEmbedElement.h:
672         * html/HTMLFormElement.cpp:
673         (WebCore::HTMLFormElement::isURLAttribute):
674         * html/HTMLFormElement.h:
675         * html/HTMLFrameElementBase.cpp:
676         (WebCore::HTMLFrameElementBase::isURLAttribute):
677         * html/HTMLFrameElementBase.h:
678         (HTMLFrameElementBase):
679         * html/HTMLHtmlElement.cpp:
680         (WebCore::HTMLHtmlElement::isURLAttribute):
681         * html/HTMLHtmlElement.h:
682         * html/HTMLImageElement.cpp:
683         (WebCore::HTMLImageElement::isURLAttribute):
684         * html/HTMLImageElement.h:
685         * html/HTMLInputElement.cpp:
686         (WebCore::HTMLInputElement::isURLAttribute):
687         * html/HTMLInputElement.h:
688         * html/HTMLLinkElement.cpp:
689         (WebCore::HTMLLinkElement::isURLAttribute):
690         * html/HTMLLinkElement.h:
691         * html/HTMLMediaElement.cpp:
692         (WebCore::HTMLMediaElement::isURLAttribute):
693         * html/HTMLMediaElement.h:
694         * html/HTMLModElement.cpp:
695         (WebCore::HTMLModElement::isURLAttribute):
696         * html/HTMLModElement.h:
697         * html/HTMLObjectElement.cpp:
698         (WebCore::HTMLObjectElement::isURLAttribute):
699         * html/HTMLObjectElement.h:
700         * html/HTMLParamElement.cpp:
701         (WebCore::HTMLParamElement::isURLAttribute):
702         * html/HTMLParamElement.h:
703         * html/HTMLQuoteElement.cpp:
704         (WebCore::HTMLQuoteElement::isURLAttribute):
705         * html/HTMLQuoteElement.h:
706         * html/HTMLScriptElement.cpp:
707         (WebCore::HTMLScriptElement::isURLAttribute):
708         * html/HTMLScriptElement.h:
709         * html/HTMLSourceElement.cpp:
710         (WebCore::HTMLSourceElement::isURLAttribute):
711         * html/HTMLSourceElement.h:
712         * html/HTMLTableCellElement.cpp:
713         (WebCore::HTMLTableCellElement::isURLAttribute):
714         * html/HTMLTableCellElement.h:
715         * html/HTMLTableElement.cpp:
716         (WebCore::HTMLTableElement::isURLAttribute):
717         * html/HTMLTableElement.h:
718         * html/HTMLTrackElement.cpp:
719         (WebCore::HTMLTrackElement::isURLAttribute):
720         * html/HTMLTrackElement.h:
721         * html/HTMLVideoElement.cpp:
722         (WebCore::HTMLVideoElement::isURLAttribute):
723         * html/HTMLVideoElement.h:
724         * svg/SVGScriptElement.cpp:
725         (WebCore::SVGScriptElement::isURLAttribute):
726         * svg/SVGScriptElement.h:
727
728 2012-05-08  Stephen Chenney  <schenney@chromium.org>
729
730         Shrink ElementAttributeData by factoring out Attr object count.
731         https://bugs.webkit.org/show_bug.cgi?id=85825
732
733         Unreviewed build fix.
734
735         * dom/ElementAttributeData.cpp:
736         (WebCore::attrListForElement): Was returning false instead of 0 for a pointer value. Now returns 0.
737
738 2012-05-08  Andreas Kling  <kling@webkit.org>
739
740         Element: Merge idAttributeChanged() into attributeChanged().
741         <http://webkit.org/b/85885>
742
743         Reviewed by Antti Koivisto.
744
745         No new tests, code churn only.
746
747         * dom/Element.h:
748         * dom/Element.cpp:
749         (WebCore::Element::attributeChanged): There's no need for this to be a standalone function anymore.
750
751 2012-05-08  Andreas Kling  <kling@webkit.org>
752
753         Shrink ElementAttributeData by factoring out Attr object count.
754         <http://webkit.org/b/85825>
755
756         Reviewed by Antti Koivisto.
757
758         Stop tracking the number of Attr objects that point to a given Element on the
759         Element itself and manage this by having a global hashmap of Element => AttrList,
760         where AttrList is a vector of (pointers to) the associated Attr objects.
761
762         This shrinks ElementAttributeData by one integer, effectively reducing memory
763         consumption by ~530kB when viewing the full HTML5 spec at <http://whatwg.org/c>.
764
765         * dom/ElementAttributeData.h:
766         (ElementAttributeData):
767
768             Remove m_attrCount...
769
770         * dom/Node.h:
771         (WebCore::Node::hasAttrList):
772         (WebCore::Node::setHasAttrList):
773         (WebCore::Node::clearHasAttrList):
774
775             ...replacing it with a Node flag that tells us whether there's an Attr
776             object map for this Node (only applies to Elements.)
777
778         * dom/ElementAttributeData.cpp:
779         (WebCore::attrListMap):
780         (WebCore::attrListForElement):
781         (WebCore::ensureAttrListForElement):
782         (WebCore::removeAttrListForElement):
783         (WebCore::ElementAttributeData::attrIfExists):
784         (WebCore::ElementAttributeData::ensureAttr):
785         (WebCore::ElementAttributeData::setAttr):
786         (WebCore::ElementAttributeData::removeAttr):
787         (WebCore::ElementAttributeData::detachAttributesFromElement):
788
789             Map Element => per-Element AttrList in a global hash.
790
791 2012-05-08  Chris Guan  <chris.guan@torchmobile.com.cn>
792
793         [Blackberry] remove m_isRequestedByPlugin in ResourceRequest
794         https://bugs.webkit.org/show_bug.cgi?id=84559
795
796         Reviewed by Antonio Gomes.
797
798         ResourceRequest is a network level abstraction, and it should
799         not know anything about web concepts such as plug-ins, and Blackberry
800         does not need m_isRequestedByPlugin any longer, So clean up all related
801         code.
802
803         Tested on a website of http://edition.cnn.com, a new window should be
804         opened only when user has a singe tap gesture on a plugin element.
805
806         * platform/network/blackberry/ResourceRequest.h:
807         (WebCore::ResourceRequest::ResourceRequest):
808         (ResourceRequest):
809         (CrossThreadResourceRequestData):
810         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
811         (WebCore::ResourceRequest::doPlatformCopyData):
812         (WebCore::ResourceRequest::doPlatformAdopt):
813
814 2012-05-03  Alexander Pavlov  <apavlov@chromium.org>
815
816         Extra line-breaks added when copying from source.
817         https://bugs.webkit.org/show_bug.cgi?id=85282
818
819         Reviewed by Ryosuke Niwa.
820
821         The code used to replace any \n by \r\n, even the one that had a preceding \r, resulting in \r\r\n.
822         This change introduces a check for the preceding \r when replacing \n's.
823
824         Test: platform/win/editing/pasteboard/pasting-crlf-isnt-translated-to-crcrlf-win.html
825
826         * platform/chromium/ClipboardUtilitiesChromium.cpp:
827         (WebCore::replaceNewlinesWithWindowsStyleNewlines):
828         * platform/win/ClipboardUtilitiesWin.cpp:
829         (WebCore::replaceNewlinesWithWindowsStyleNewlines):
830
831 2012-05-08  Adam Barth  <abarth@webkit.org>
832
833         OS(ANDROID) JNI AttachCurrentThread take JNIEnv** as a parameter, not void**
834         https://bugs.webkit.org/show_bug.cgi?id=85869
835
836         Reviewed by Eric Seidel.
837
838         According to
839         http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/invocation.html,
840         AttachCurrentThread takes a JNIEnv** rather than a void**.  Apparently,
841         most implementations actually take a void**.  The OS(ANDROID)
842         implementation, however, actually takes an JNIEnv**.  This patch
843         introduces a typedef to give each implementation what it desires.
844
845         * bridge/jni/JNIUtility.cpp:
846         (JSC::Bindings::getJNIEnv):
847
848 2012-05-08  Balazs Kelemen  <kbalazs@webkit.org>
849
850         [Qt] X11 plugins need to be reworked for Qt5+WK1
851         https://bugs.webkit.org/show_bug.cgi?id=80691
852
853         Reviewed by Simon Hausmann.
854
855         Implement basic windowless plugin support with Qt5.
856         The solution is the same that has been chosen for
857         WebKit2. We get the content drawed by the plugin
858         from the X server as an image, create a QImage
859         from it and paint it to the window surface with QPainter.
860         Performance is sufficient for basic video playback.
861
862         No new tests, covered by existing plugin tests.
863
864         * Target.pri:
865         * WebCore.pri:
866         * platform/qt/QWebPageClient.h:
867         (QWebPageClient):
868         * plugins/PluginView.h:
869         (PluginView):
870         * plugins/qt/PluginPackageQt.cpp:
871         (WebCore::PluginPackage::isPluginBlacklisted):
872         Blacklist plugins that are incompatible with Qt5.
873         The only one I know about currently is skypebuttons
874         but the list can be extended in the future.
875         (WebCore):
876         (WebCore::PluginPackage::load):
877         * plugins/qt/PluginViewQt.cpp:
878         (X11Environment):
879         (WebCore):
880         (WebCore::x11Display):
881         (WebCore::x11Screen):
882         (WebCore::rootWindowID):
883         (WebCore::displayDepth):
884         (WebCore::syncX):
885         (WebCore::PluginView::platformPageClient): Added a safe
886         convenience getter for the QWebpageClient.
887         (WebCore::PluginView::updatePluginWidget):
888         (WebCore::PluginView::setFocus):
889         (WebCore::setupGraphicsExposeEvent):
890         (WebCore::PluginView::paintUsingXPixmap):
891         (WebCore::setSharedXEventFields):
892         (WebCore::PluginView::initXEvent):
893         (WebCore::PluginView::setXKeyEventSpecificFields):
894         (WebCore::setXButtonEventSpecificFields):
895         (WebCore::setXMotionEventSpecificFields):
896         (WebCore::setXCrossingEventSpecificFields):
897         (WebCore::PluginView::setNPWindowIfNeeded):
898         (WebCore::PluginView::setParentVisible):
899         (WebCore::PluginView::platformGetValue):
900         (WebCore::PluginView::invalidateRect):
901         (WebCore::getVisualAndColormap):
902         Refactored this function to make it more clear
903         what does it actually do.
904         (WebCore::PluginView::platformStart):
905         (WebCore::PluginView::platformDestroy):
906
907 2012-05-07  Antti Koivisto  <antti@apple.com>
908
909         Inline Node::traverseNextNode
910         https://bugs.webkit.org/show_bug.cgi?id=85844
911
912         Reviewed by Ryosuke Niwa.
913
914         Inline traverseNextNode and traverseNextSibling to reduce entry/exit overhead and allow better code generation
915         for many hot loops. Also added separate versions of stayWithin and unscoped cases (the function is
916         so simple that this seemed like the cleanest way to do it, the most reliable too) and used UNLIKELY for the 
917         end-of-traversal conditions.
918         
919         The traversal function can show up to ~1% in normal page loading profiles.
920         
921         run-perf-tests seems to think this is a progression in some subtests though bots will tell for certain.
922
923         * WebCore.exp.in:
924         * dom/ContainerNode.h:
925         
926             Following the existing pattern, function bodies go to ContainerNode.h so they can call parentNode().
927             (which returns ContainerNode, not Node).
928
929         (WebCore::Node::traverseNextNode):
930         (WebCore):
931         (WebCore::Node::traverseNextSibling):
932         * dom/Node.cpp:
933         (WebCore):
934         * dom/Node.h:
935         (Node):
936
937 2012-05-05  Pavel Feldman  <pfeldman@chromium.org>
938
939         Web Inspector: make JavaScriptSourceFrame use breakpoint manager's breakpoints store.
940         https://bugs.webkit.org/show_bug.cgi?id=85714
941
942         Reviewed by Yury Semikhatsky.
943
944         It is currently using its own copy of breakpoints which is not necessary.
945
946         * inspector/front-end/BreakpointManager.js:
947         (WebInspector.BreakpointManager):
948         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
949         (WebInspector.BreakpointManager.prototype.setBreakpoint):
950         (WebInspector.BreakpointManager.prototype._innerSetBreakpoint):
951         (WebInspector.BreakpointManager.prototype.findBreakpoint):
952         (WebInspector.BreakpointManager.prototype.reset):
953         (WebInspector.BreakpointManager.prototype._debuggerReset):
954         (WebInspector.BreakpointManager.prototype._breakpointResolved):
955         (WebInspector.BreakpointManager.prototype._uiLocationAdded):
956         (WebInspector.BreakpointManager.prototype._uiLocationRemoved):
957         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
958         (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
959         (set WebInspector.BreakpointManager.Storage.Item):
960         * inspector/front-end/JavaScriptSource.js:
961         (WebInspector.JavaScriptSource.prototype.consoleMessagesCleared):
962         (WebInspector.JavaScriptSource.prototype.breakpointStorageId):
963         * inspector/front-end/JavaScriptSourceFrame.js:
964         (WebInspector.JavaScriptSourceFrame):
965         (WebInspector.JavaScriptSourceFrame.prototype._onContentChanged):
966         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
967         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
968         (WebInspector.JavaScriptSourceFrame.prototype._onMouseDown):
969         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
970         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
971         (WebInspector.JavaScriptSourceFrame.prototype.onTextViewerContentLoaded):
972         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
973         (WebInspector.JavaScriptSourceFrame.prototype._updateBreakpointsAfterLiveEdit):
974
975 2012-05-07  Pavel Feldman  <pfeldman@chromium.org>
976
977         Web Inspector: do not create locations for resolved provisional breakpoints
978         https://bugs.webkit.org/show_bug.cgi?id=85716
979
980         Reviewed by Yury Semikhatsky.
981
982         Marked provisional breakpoints as such.
983
984         * inspector/front-end/BreakpointManager.js:
985         (WebInspector.BreakpointManager.prototype._debuggerReset):
986         (WebInspector.BreakpointManager.prototype._breakpointResolved):
987
988 2012-05-07  Simon Fraser  <simon.fraser@apple.com>
989
990         Compositing layers with transformed children not large enough to show contents
991         https://bugs.webkit.org/show_bug.cgi?id=85855
992
993         Reviewed by Dan Bernstein.
994         
995         r114518 added a code path to RenderLayer::calculateLayerBounds() which
996         does an early return if the layer has clipping. However, this code
997         path omitted to take local transforms into account.
998         
999         Fix is to handle transforms as we do in the non-clipped case.
1000
1001         Test: compositing/geometry/bounds-clipped-composited-child.html
1002
1003         * rendering/RenderLayer.cpp:
1004         (WebCore::RenderLayer::calculateLayerBounds):
1005
1006 2012-05-07  Scott Graham  <scottmg@chromium.org>
1007
1008         Fix signed/unsigned mismatch
1009         https://bugs.webkit.org/show_bug.cgi?id=85845
1010
1011         Make literal in assert be unsigned to match comparison on LHS. Avoids
1012         warning on Windows.
1013
1014         Reviewed by Eric Seidel.
1015
1016         No new tests. No intended functionality change.
1017
1018         * rendering/RenderTableSection.cpp:
1019         (WebCore::RenderTableSection::splitColumn):
1020
1021 2012-05-07  Emil A Eklund  <eae@chromium.org>
1022
1023         Fix performance regression for floats caused by LayoutUnit change
1024         https://bugs.webkit.org/show_bug.cgi?id=85834
1025
1026         Reviewed by Eric Seidel.
1027
1028         Fix performance regression caused by r116009 by disabling the use of
1029         64bit math in FractionalLayoutUnit, simplifying the pixelSnappedMaxX/Y
1030         math, inlining a couple of methods and replacing the literal 0 (zero)
1031         with ZERO_LAYOUT_UNIT.
1032
1033         No new tests, no change in functionality.
1034
1035         * platform/FractionalLayoutUnit.h:
1036         (WebCore::boundedMultiply):
1037         (WebCore::operator*):
1038         (WebCore::operator/):
1039         Disable the use of 64bit (long long) math in the case where the fraction
1040         is set to 1.
1041         
1042         * platform/graphics/FractionalLayoutRect.h:
1043         (WebCore::FractionalLayoutRect::pixelSnappedMaxX):
1044         (WebCore::FractionalLayoutRect::pixelSnappedMaxY):
1045         Simplify the pixel snapping logic for maxX/maxY.
1046         
1047         * rendering/RenderBlock.cpp:
1048         (WebCore::RenderBlock::isSelfCollapsingBlock):
1049         (WebCore::RenderBlock::layoutBlock):
1050         (WebCore::RenderBlock::computeOverflow):
1051         (WebCore::RenderBlock::clearFloatsIfNeeded):
1052         (WebCore::RenderBlock::paintChildren):
1053         (WebCore::RenderBlock::blockSelectionGap):
1054         (WebCore::RenderBlock::logicalLeftSelectionGap):
1055         (WebCore::RenderBlock::logicalRightSelectionGap):
1056         (WebCore::RenderBlock::computeLogicalLocationForFloat):
1057         (WebCore::RenderBlock::lowestFloatLogicalBottom):
1058         (WebCore::RenderBlock::getClearDelta):
1059         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
1060         (WebCore::RenderBlock::addFocusRingRects):
1061         (WebCore::RenderBlock::adjustLinePositionForPagination):
1062         * rendering/RenderBlock.h:
1063         (WebCore::RenderBlock::availableLogicalWidthForLine):
1064         (WebCore::RenderBlock::availableLogicalWidthForContent):
1065         (WebCore::RenderBlock::FloatingObject::x):
1066         (WebCore::RenderBlock::FloatingObject::maxX):
1067         (WebCore::RenderBlock::FloatingObject::y):
1068         (WebCore::RenderBlock::FloatingObject::maxY):
1069         (WebCore::RenderBlock::FloatingObject::width):
1070         (WebCore::RenderBlock::FloatingObject::height):
1071         (FloatingObject):
1072         (WebCore::RenderBlock::FloatingObject::pixelSnappedX):
1073         (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxX):
1074         (WebCore::RenderBlock::FloatingObject::pixelSnappedY):
1075         (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxY):
1076         (WebCore::RenderBlock::FloatingObject::pixelSnappedWidth):
1077         (WebCore::RenderBlock::FloatingObject::pixelSnappedHeight):
1078         (WebCore::RenderBlock::RenderBlockRareData::positiveMarginBeforeDefault):
1079         (WebCore::RenderBlock::RenderBlockRareData::negativeMarginBeforeDefault):
1080         (WebCore::RenderBlock::RenderBlockRareData::positiveMarginAfterDefault):
1081         (WebCore::RenderBlock::RenderBlockRareData::negativeMarginAfterDefault):
1082         * rendering/RenderBoxModelObject.cpp:
1083         (WebCore::accumulateRelativePositionOffsets):
1084         (WebCore::RenderBoxModelObject::offsetLeft):
1085         (WebCore::RenderBoxModelObject::offsetTop):
1086         (WebCore::RenderBoxModelObject::computedCSSPaddingTop):
1087         (WebCore::RenderBoxModelObject::computedCSSPaddingBottom):
1088         (WebCore::RenderBoxModelObject::computedCSSPaddingLeft):
1089         (WebCore::RenderBoxModelObject::computedCSSPaddingRight):
1090         (WebCore::RenderBoxModelObject::computedCSSPaddingBefore):
1091         (WebCore::RenderBoxModelObject::computedCSSPaddingAfter):
1092         (WebCore::RenderBoxModelObject::computedCSSPaddingStart):
1093         (WebCore::RenderBoxModelObject::computedCSSPaddingEnd):
1094
1095 2012-05-07  Dongwoo Im  <dw.im@samsung.com>
1096
1097         width/height attributes of input element cannot be accessed by JavaScript.
1098         https://bugs.webkit.org/show_bug.cgi?id=70304
1099
1100         Reviewed by Darin Adler.
1101
1102         If the type of input element is image button, width/height attributes should be supported.
1103         These attributes are defined in HTML5 spec.
1104         http://www.w3.org/TR/html5/the-map-element.html#attr-dim-width
1105
1106         Tests: fast/forms/input-width-height-attributes-without-renderer-loaded-image.html
1107                fast/forms/input-width-height-attributes-without-renderer-not-loaded-image.html
1108                fast/forms/input-width-height-attributes-without-renderer.html
1109                fast/forms/input-width-height-attributes.html
1110
1111         * html/HTMLInputElement.cpp: Add setter/getter functions to query/set width/height of input element.
1112         (WebCore):
1113         (WebCore::HTMLInputElement::height): Gets height of input element.
1114         (WebCore::HTMLInputElement::width): Gets width of input element.
1115         (WebCore::HTMLInputElement::setHeight): Sets height of input element.
1116         (WebCore::HTMLInputElement::setWidth): Sets width of input element.
1117         * html/HTMLInputElement.h: Add public prototype.
1118         (HTMLInputElement):
1119         * html/HTMLInputElement.idl: Add width/height attributes.
1120         * html/ImageInputType.cpp: Add getter functions if the element is an image button.
1121         (WebCore):
1122         (WebCore::ImageInputType::height): Gets height of input element.
1123         (WebCore::ImageInputType::width): Gets width of input element.
1124         * html/ImageInputType.h: Add prototype.
1125         (ImageInputType):
1126         * html/InputType.cpp: Add getter functions.
1127         (WebCore::InputType::height): Returns zero.
1128         (WebCore):
1129         (WebCore::InputType::width): Returns zero.
1130         * html/InputType.h: Add prototype.
1131         (InputType):
1132
1133 2012-05-07  Kinuko Yasuda  <kinuko@chromium.org>
1134
1135         Support cross-filesystem operations in FileSystem API
1136         https://bugs.webkit.org/show_bug.cgi?id=84135
1137
1138         Reviewed by David Levin.
1139
1140         Currently we pass Entry's fullPath to AsyncFileSystem layer where
1141         we convert the given path to filesystem URL which includes origin and
1142         filesystem type information, but in that way we cannot handle
1143         cross-filesystem operations (e.g. cross-filesystem copy and move)
1144         well since we end up with always attaching the source filesystem's
1145         origin and type information for argument paths.
1146
1147         This patch does:
1148         - change AsyncFileSystem's operation methods not to take entry paths
1149           but complete filesystem URLs.
1150         - move type and rootURL information from AsyncFileSystem instance into
1151           DOMFileSystemBase instance (platform layer to Modules/filesystem layer)
1152         - move filesystem-type related code in AsyncFileSystemChromium.cpp into
1153           DOMFileSystemChromium.cpp, which implements chromioum-specific
1154           DOMFileSystem code.
1155         - move platform/FileSystemType.h into Modules/filesystem/FileSystemType.h.
1156         - adding FileSystemType.h entry to build files (e.g. WebCore.gypi, WebCore.xcodeproj etc)
1157
1158         Test: fast/filesystem/cross-filesystem-op.html
1159
1160         * Modules/filesystem/DOMFileSystem.cpp:
1161         (WebCore::DOMFileSystem::create):
1162         (WebCore::DOMFileSystem::DOMFileSystem):
1163         (WebCore::DOMFileSystem::createWriter):
1164         (WebCore::DOMFileSystem::createFile):
1165         * Modules/filesystem/DOMFileSystem.h:
1166         * Modules/filesystem/DOMFileSystemBase.cpp:
1167         (WebCore::DOMFileSystemBase::DOMFileSystemBase):
1168         (WebCore::DOMFileSystemBase::createFileSystemURL): Added as an internal
1169         implementation of Entry.toURL().
1170         (WebCore::DOMFileSystemBase::getMetadata):
1171         (WebCore::verifyAndGetDestinationPathForCopyOrMove):
1172         (WebCore::DOMFileSystemBase::move):
1173         (WebCore::DOMFileSystemBase::copy):
1174         (WebCore::DOMFileSystemBase::remove):
1175         (WebCore::DOMFileSystemBase::removeRecursively):
1176         (WebCore::DOMFileSystemBase::getParent):
1177         (WebCore::DOMFileSystemBase::getFile):
1178         (WebCore::DOMFileSystemBase::getDirectory):
1179         (WebCore::DOMFileSystemBase::readDirectory):
1180         * Modules/filesystem/DOMFileSystemBase.h: Changed to make each
1181         DOMFileSystemBase instance have filesystem type and rootURL (they were
1182         held by AsyncFileSystem previously)
1183         (WebCore::DOMFileSystemBase::create): Changed to take additional parameters.
1184         (WebCore::DOMFileSystemBase::type): Added.(Moved from AsyncFileSystem::type)
1185         (WebCore::DOMFileSystemBase::rootURL): Added.(Moved from AsyncFileSystem::rootURL).
1186         * Modules/filesystem/DOMFileSystemSync.cpp:
1187         (WebCore::DOMFileSystemSync::create):
1188         (WebCore::DOMFileSystemSync::DOMFileSystemSync):
1189         (WebCore::DOMFileSystemSync::createFile):
1190         (WebCore::DOMFileSystemSync::createWriter):
1191         * Modules/filesystem/DOMFileSystemSync.h:
1192         (WebCore::DOMFileSystemSync::create):
1193         * Modules/filesystem/DOMWindowFileSystem.cpp:
1194         (WebCore::DOMWindowFileSystem::webkitRequestFileSystem):
1195         (WebCore::DOMWindowFileSystem::webkitResolveLocalFileSystemURL):
1196         * Modules/filesystem/EntryBase.cpp:
1197         (WebCore::EntryBase::toURL):
1198         * Modules/filesystem/FileSystemCallbacks.cpp:
1199         (WebCore::FileSystemCallbacks::create):
1200         (WebCore::FileSystemCallbacks::FileSystemCallbacks):
1201         (WebCore::FileSystemCallbacks::didOpenFileSystem):
1202         (WebCore::ResolveURICallbacks::create):
1203         (WebCore::ResolveURICallbacks::ResolveURICallbacks):
1204         (WebCore::ResolveURICallbacks::didOpenFileSystem):
1205         * Modules/filesystem/FileSystemCallbacks.h:
1206         (FileSystemCallbacks):
1207         (ResolveURICallbacks):
1208         * Modules/filesystem/FileSystemType.h: Renamed from Source/WebCore/platform/FileSystemType.h.
1209         * Modules/filesystem/LocalFileSystem.cpp:
1210         (WebCore::openFileSystem):
1211         (WebCore::LocalFileSystem::readFileSystem):
1212         (WebCore::LocalFileSystem::requestFileSystem):
1213         * Modules/filesystem/LocalFileSystem.h:
1214         * Modules/filesystem/WorkerContextFileSystem.cpp:
1215         (WebCore::WorkerContextFileSystem::webkitRequestFileSystem):
1216         (WebCore::WorkerContextFileSystem::webkitRequestFileSystemSync):
1217         (WebCore::WorkerContextFileSystem::webkitResolveLocalFileSystemURL):
1218         (WebCore::WorkerContextFileSystem::webkitResolveLocalFileSystemSyncURL):
1219         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp: Added for chromium-specific
1220         implementation. Almost all of the code is moved from AsyncFileSystemChromium.
1221         (WebCore::DOMFileSystemBase::isValidType):
1222         (WebCore::DOMFileSystemBase::crackFileSystemURL):
1223         (WebCore::DOMFileSystemBase::supportsToURL):
1224         (WebCore::DOMFileSystemBase::createFileSystemURL):
1225         (WebCore::DOMFileSystemChromium::createIsolatedFileSystem):
1226         * Modules/filesystem/chromium/DOMFileSystemChromium.h: Added.
1227         * Modules/filesystem/chromium/DataTransferItemFileSystemChromium.cpp:
1228         (WebCore::DataTransferItemFileSystem::webkitGetAsEntry):
1229         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
1230         (WebCore::DraggedIsolatedFileSystem::getDOMFileSystem):
1231         * WebCore.gypi:
1232         * platform/AsyncFileSystem.cpp:
1233         (WebCore::AsyncFileSystem::openFileSystem):
1234         * platform/AsyncFileSystem.h:
1235         (AsyncFileSystem):
1236         (WebCore::AsyncFileSystem::AsyncFileSystem):
1237         * platform/AsyncFileSystemCallbacks.h:
1238         (WebCore::AsyncFileSystemCallbacks::didOpenFileSystem):
1239         * platform/blackberry/AsyncFileSystemBlackBerry.cpp:
1240         (WebCore::AsyncFileSystem::create):
1241         (WebCore::AsyncFileSystem::openFileSystem):
1242         (WebCore::AsyncFileSystemBlackBerry::AsyncFileSystemBlackBerry):
1243         (WebCore::AsyncFileSystemBlackBerry::move):
1244         (WebCore::AsyncFileSystemBlackBerry::copy):
1245         (WebCore::AsyncFileSystemBlackBerry::remove):
1246         (WebCore::AsyncFileSystemBlackBerry::removeRecursively):
1247         (WebCore::AsyncFileSystemBlackBerry::readMetadata):
1248         (WebCore::AsyncFileSystemBlackBerry::createFile):
1249         (WebCore::AsyncFileSystemBlackBerry::createDirectory):
1250         (WebCore::AsyncFileSystemBlackBerry::fileExists):
1251         (WebCore::AsyncFileSystemBlackBerry::directoryExists):
1252         (WebCore::AsyncFileSystemBlackBerry::readDirectory):
1253         (WebCore::AsyncFileSystemBlackBerry::createWriter):
1254         (WebCore::AsyncFileSystemBlackBerry::createSnapshotFileAndReadMetadata):
1255         * platform/blackberry/AsyncFileSystemBlackBerry.h:
1256         * platform/chromium/PlatformSupport.h:
1257         * platform/gtk/AsyncFileSystemGtk.cpp:
1258         (WebCore::AsyncFileSystem::create):
1259         (WebCore::AsyncFileSystem::openFileSystem):
1260         (WebCore::AsyncFileSystemGtk::AsyncFileSystemGtk):
1261         (WebCore::AsyncFileSystemGtk::move):
1262         (WebCore::AsyncFileSystemGtk::copy):
1263         (WebCore::AsyncFileSystemGtk::remove):
1264         (WebCore::AsyncFileSystemGtk::removeRecursively):
1265         (WebCore::AsyncFileSystemGtk::readMetadata):
1266         (WebCore::AsyncFileSystemGtk::createFile):
1267         (WebCore::AsyncFileSystemGtk::createDirectory):
1268         (WebCore::AsyncFileSystemGtk::fileExists):
1269         (WebCore::AsyncFileSystemGtk::directoryExists):
1270         (WebCore::AsyncFileSystemGtk::readDirectory):
1271         (WebCore::AsyncFileSystemGtk::createWriter):
1272         * platform/gtk/AsyncFileSystemGtk.h:
1273
1274         * GNUmakefile.list.am: Added FileSystemType.h.
1275         * WebCore.gypi: Added FileSystemType.h.
1276         * WebCore.vcproj/WebCore.vcproj: Added FileSystemType.h.
1277         * WebCore.xcodeproj/project.pbxproj: Added FileSystemType.h.
1278
1279 2012-05-07  Adam Barth  <abarth@webkit.org>
1280
1281         [Chromium] Android wishes to use an empty implementation if AXObjectCache
1282         https://bugs.webkit.org/show_bug.cgi?id=85842
1283
1284         Reviewed by Eric Seidel.
1285
1286         Add proper HAVE(ACCESSIBILITY) ifdefs so that Chromium builds without
1287         accessibility.
1288
1289         * accessibility/chromium/AXObjectCacheChromium.cpp:
1290         * accessibility/chromium/AccessibilityObjectChromium.cpp:
1291
1292 2012-05-07  Greg Billock  <gbillock@google.com>
1293
1294         [Web Intents] Flagged-off implementation of an intent tag for registration.
1295         https://bugs.webkit.org/show_bug.cgi?id=73039
1296
1297         Reviewed by Adam Barth.
1298
1299         The intent tag is a declarative way for pages to register that they
1300         accept delivery of web intent invocations of particular types. See the
1301         spec at http://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview.html
1302
1303         After discussion on the WhatWG list (see thread at
1304         http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-April/035301.html)
1305         the current plan is to combine declarative registration of Web
1306         Intents and protocol/content handlers with this tag. Alternatives
1307         considered were the meta and link tags.
1308
1309         * WebCore.gypi:
1310         * html/HTMLAttributeNames.in:
1311         * html/HTMLElementsAllInOne.cpp:
1312         * html/HTMLIntentElement.cpp: Added.
1313         (WebCore::HTMLIntentElement::HTMLIntentElement):
1314         (WebCore::HTMLIntentElement::create):
1315         (WebCore::HTMLIntentElement::insertedIntoDocument):
1316         * html/HTMLIntentElement.h: Added.
1317         * html/HTMLIntentElement.idl: Added.
1318         * html/HTMLTagNames.in:
1319         * loader/FrameLoaderClient.h:
1320         (WebCore::FrameLoaderClient::registerIntentService):
1321         * page/DOMWindow.idl:
1322
1323 2012-05-07  Dana Jansens  <danakj@chromium.org>
1324
1325         Region::intersects() and Region::contains() are slow due to copy overhead
1326         https://bugs.webkit.org/show_bug.cgi?id=81076
1327
1328         Reviewed by Anders Carlsson.
1329
1330         Testing contains() and intersects() requires a copy which ends up
1331         invoking a malloc on sufficiently complicated web pages, and slows down
1332         the test unnecessarily. These methods can be done by iterating over the
1333         Region::Shape values rather than making a copy of the entire region and
1334         manipulating it.
1335
1336         This uses Region::Shape::compareShapes() to walk the query regions and
1337         compute the result of the intersects or contains tests without making a
1338         copy.
1339
1340         This change improves the performance of the Region overlap testing for
1341         composited layers, and allows for testing contains() before unite() to
1342         avoid unnecessary copies of the Region when inserting into complex
1343         Regions. With a layout test that has 225 composited layers, and tests
1344         Region.intersects() for 1000 layers above them, this change decreases
1345         the running time of the test by 1.2% by avoiding a copy of the 225
1346         rects each time.
1347
1348         Unit test: RegionTest.intersectsRegion
1349                    RegionTest.containsRegion
1350
1351         * platform/graphics/Region.cpp:
1352         (WebCore::Region::contains):
1353         (WebCore::Region::intersects):
1354         (WebCore):
1355         (WebCore::Region::Shape::compareShapes):
1356         (Region::Shape::CompareContainsOperation):
1357         (WebCore::Region::Shape::CompareContainsOperation::aOutsideB):
1358         (WebCore::Region::Shape::CompareContainsOperation::bOutsideA):
1359         (WebCore::Region::Shape::CompareContainsOperation::aOverlapsB):
1360         (Region::Shape::CompareIntersectsOperation):
1361         (WebCore::Region::Shape::CompareIntersectsOperation::aOutsideB):
1362         (WebCore::Region::Shape::CompareIntersectsOperation::bOutsideA):
1363         (WebCore::Region::Shape::CompareIntersectsOperation::aOverlapsB):
1364         * platform/graphics/Region.h:
1365         (Shape):
1366
1367 2012-05-07  David Tseng  <dtseng@google.com>
1368
1369         Correct logical error in accessibilityIsIgnored.
1370         https://bugs.webkit.org/show_bug.cgi?id=85828
1371
1372         Reviewed by Chris Fleizach.
1373
1374         Covered by existing tests.
1375
1376         * accessibility/AccessibilityMenuListOption.cpp:
1377         (WebCore::AccessibilityMenuListOption::accessibilityIsIgnored):
1378         * accessibility/AccessibilityMenuListPopup.cpp:
1379         (WebCore::AccessibilityMenuListPopup::accessibilityIsIgnored):
1380
1381 2012-05-04  Zhenyao Mo  <zmo@google.com>
1382
1383         vertexAttribPointer needs to reject large negative offsets
1384         https://bugs.webkit.org/show_bug.cgi?id=85117
1385
1386         Reviewed by Kenneth Russell.
1387
1388         * html/canvas/WebGLRenderingContext.cpp: Use long long for GLsizeiptr and GLintptr
1389         (WebCore):
1390         (WebCore::WebGLRenderingContext::bufferData):
1391         (WebCore::WebGLRenderingContext::bufferSubData):
1392         (WebCore::WebGLRenderingContext::drawElements):
1393         (WebCore::WebGLRenderingContext::getVertexAttribOffset):
1394         (WebCore::WebGLRenderingContext::vertexAttribPointer):
1395         * html/canvas/WebGLRenderingContext.h: Ditto
1396         (WebGLRenderingContext):
1397         * html/canvas/WebGLRenderingContext.idl: Ditto
1398
1399 2012-05-07  Pravin D  <pravind.2k4@gmail.com>
1400
1401         :first-line text-decorations are not rendered
1402         https://bugs.webkit.org/show_bug.cgi?id=6047
1403
1404         Text-decorations are applied during paint phase. The style was not being properly selected in case of
1405         first line box. The patch fixes this. 
1406
1407         Reviewed by Eric Seidel.
1408
1409         Tests: fast/css/first-line-text-decoration-inherited-from-parent.html
1410                fast/css/first-line-text-decoration.html
1411
1412         * rendering/InlineTextBox.cpp:
1413         (WebCore::InlineTextBox::paintDecoration):
1414         Inform the decoration color retriever if this box is part of the first line box or not.
1415
1416         * rendering/RenderObject.cpp:
1417         (WebCore::decorationColor):
1418         Changed the argument from RenderObject* to RenderStyle*. As this function is just a helper to getTextDecorationColors
1419         as used RenderObject solely to retrieve the corresponding RenderStyle, which(RenderStyle*) was already available with the latter function. 
1420
1421         (WebCore::RenderObject::getTextDecorationColors):
1422         Take a new variable to check if first line style or the regular style has to be used.
1423         Sends RenderStyle* as an argument to decorationColor(). 
1424
1425         * rendering/RenderObject.h:
1426         (RenderObject):
1427
1428 2012-05-07  Julien Chaffraix  <jchaffraix@webkit.org>
1429
1430         Refactor windowClipRectForLayer to remove the explicit RenderLayer dependency
1431         https://bugs.webkit.org/show_bug.cgi?id=84090
1432
1433         Reviewed by David Hyatt.
1434
1435         No observable change in behavior.
1436
1437         The function name was ambiguous as it was not a general purpose function but was
1438         working directly on HTMLFrameOwnerElement. The rename makes this more obvious as
1439         well as removes the explicit dependency on RenderLayer.
1440
1441         One of the slight change of this refactoring is that we now always null-check the
1442         HTMLFrameOwnerElement's renderer as part windowClipRectForFrameOwner as I don't see
1443         any evidence for the other code paths not to hit that. Also we may recur more on our
1444         frame tree if we have no layer as we now call windowClipRect() in this case.
1445
1446         * page/FrameView.h:
1447         (FrameView):
1448         * plugins/PluginView.cpp:
1449         (WebCore::PluginView::windowClipRect):
1450         * WebCore.exp.in:
1451         * WebCore.order:
1452         * page/FrameView.cpp:
1453         (WebCore::FrameView::windowClipRect):
1454         Updated after windowClipRectForLayer name and signature change.
1455
1456         (WebCore::FrameView::windowClipRectForFrameOwner):
1457         This function now takes the HTMLFrameOwnerElement directly.
1458
1459         * plugins/PluginView.cpp:
1460         (WebCore::PluginView::PluginView):
1461         (WebCore::PluginView::create):
1462         * plugins/PluginView.h:
1463         (PluginView):
1464         Updated |m_element| to be an HTMLPlugInElement as this was what was
1465         passed by every caller. This makes the conversion to HTMLFrameOwnerElement
1466         possible.
1467
1468 2012-05-07  Enrica Casucci  <enrica@apple.com>
1469
1470         REGRESSION (r101575): Chinese input is broken when composing mail in iCloud using Safari.
1471         https://bugs.webkit.org/show_bug.cgi?id=85840
1472         <rdar://problem/11115520> 
1473         
1474         Reviewed by Alexey Proskuryakov.
1475
1476         The revision that broke this, introduced a way to sanitize the markup when deleting a range selection.
1477         iCloud listens for DOM modification events and clears the selection, altering the input method state.
1478         The fix consists in adding a paramenter to DeleteSelectionCommand to control when we sanitize the
1479         markup.
1480         
1481         * editing/CompositeEditCommand.cpp:
1482         (WebCore::CompositeEditCommand::deleteSelection):
1483         * editing/CompositeEditCommand.h:
1484         * editing/DeleteSelectionCommand.cpp:
1485         (WebCore::DeleteSelectionCommand::DeleteSelectionCommand):
1486         (WebCore::DeleteSelectionCommand::doApply):
1487         * editing/DeleteSelectionCommand.h:
1488         (WebCore::DeleteSelectionCommand::create):
1489         * editing/InsertTextCommand.cpp:
1490         (WebCore::InsertTextCommand::doApply):
1491
1492 2012-05-07  Andy Estes  <aestes@apple.com>
1493
1494         ENABLE_IFRAME_SEAMLESS should be part of FEATURE_DEFINES.
1495
1496         * Configurations/FeatureDefines.xcconfig:
1497
1498 2012-05-06  Martin Robinson  <mrobinson@igalia.com>
1499
1500         [Cairo] Implement ImageBuffer::copyImage for BackingStoreCopy == DontCopyBackingStore
1501         https://bugs.webkit.org/show_bug.cgi?id=85728
1502
1503         Reviewed by Alejandro G. Castro.
1504
1505         No new tests. This should not change functionality, only increase performance.
1506
1507         * platform/graphics/cairo/ImageBufferCairo.cpp:
1508         (WebCore::ImageBuffer::copyImage): Add an implementation that knows how to avoid copying the backing store.
1509         (WebCore::ImageBuffer::draw): Use the copyImage constructor now that it knows how to
1510         avoid copying the backing store.
1511         (WebCore::ImageBuffer::drawPattern): Ditto.
1512         * platform/graphics/texmap/TextureMapperLayer.cpp:
1513         (WebCore::TextureMapperLayer::updateBackingStore): Use DontCopyBackingStore for Cairo
1514         as well.
1515
1516 2012-05-07  Noel Gordon  <noel.gordon@gmail.com>
1517
1518         [CG] Separate image encoding from dataURL construction
1519         https://bugs.webkit.org/show_bug.cgi?id=85782
1520
1521         Reviewed by Kenneth Russell.
1522
1523         Remove the implicit assumption that a dataURL is the only desired output format
1524         of the image encoding phase.
1525
1526         No new tests. No behavioral change. Covered by canvas 2d and 3d tests:
1527             canvas/philip/tests/*toDataURL*.html
1528             fast/canvas/webgl/premultiplyalpha-test.html
1529
1530         * platform/graphics/cg/ImageBufferCG.cpp:
1531         (WebCore::CGImageEncodeToData): Image encoding helper: encode the image using the
1532         uti-defined encoder (PNG/JPEG/etc) and output to the given CFMutableDataRef data.
1533         (WebCore):
1534         (WebCore::CGImageToDataURL): Refactor to use CGImageEncodeToData().
1535
1536 2012-05-07  Scott Graham  <scottmg@chromium.org>
1537
1538         [Chromium] Suppress switch-without-cases warning
1539         https://bugs.webkit.org/show_bug.cgi?id=85830
1540
1541         Warnings like 
1542         ...\webkit\CSSGrammar.cpp(2075) : warning C4065: switch statement contains 'default' but no 'case' labels
1543         are generated. These are bogus, so just suppress them in the build
1544         settings.
1545
1546         Reviewed by Dirk Pranke
1547
1548         No new tests, no intended functionlity change. Just changing compiler
1549         settings.
1550
1551         * WebCore.gyp/WebCore.gyp:
1552
1553 2012-05-07  Adrienne Walker  <enne@google.com>
1554
1555         [chromium] Allow for asymmetric tile sizes on composited tiled layers
1556         https://bugs.webkit.org/show_bug.cgi?id=85687
1557
1558         Reviewed by James Robinson.
1559
1560         Update TiledLayerChromium/CCLayerTilingData/TilingData to allow for a
1561         the width and height of tile sizes to differ. Modify TilingData to use
1562         IntSize everywhere for these width/height pairs.
1563
1564         Also, remove some unused functions from TilingData.
1565
1566         Test: TilingDataTest.*
1567
1568         * platform/graphics/chromium/TiledLayerChromium.cpp:
1569         (WebCore::TiledLayerChromium::TiledLayerChromium):
1570         (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
1571         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
1572         (WebCore::CCLayerTilingData::CCLayerTilingData):
1573         (WebCore::CCLayerTilingData::setTileSize):
1574         (WebCore):
1575         (WebCore::CCLayerTilingData::tileSize):
1576         (WebCore::CCLayerTilingData::operator=):
1577         (WebCore::CCLayerTilingData::tileRect):
1578         (WebCore::CCLayerTilingData::setBounds):
1579         (WebCore::CCLayerTilingData::bounds):
1580         * platform/graphics/chromium/cc/CCLayerTilingData.h:
1581         (CCLayerTilingData):
1582         * platform/graphics/gpu/Texture.cpp:
1583         (WebCore::Texture::Texture):
1584         (WebCore::Texture::create):
1585         (WebCore::Texture::load):
1586         (WebCore::Texture::updateSubRect):
1587         * platform/graphics/gpu/TilingData.cpp:
1588         (WebCore::TilingData::TilingData):
1589         (WebCore::TilingData::setTotalSize):
1590         (WebCore::TilingData::setMaxTextureSize):
1591         (WebCore::TilingData::tileXIndexFromSrcCoord):
1592         (WebCore::TilingData::tileYIndexFromSrcCoord):
1593         (WebCore::TilingData::tileBounds):
1594         (WebCore::TilingData::tileSizeX):
1595         (WebCore::TilingData::tileSizeY):
1596         (WebCore::TilingData::recomputeNumTiles):
1597         * platform/graphics/gpu/TilingData.h:
1598         (TilingData):
1599         (WebCore::TilingData::totalSize):
1600         (WebCore::TilingData::maxTextureSize):
1601         (WebCore::TilingData::TilingData):
1602
1603 2012-05-07  Raymond Toy  <rtoy@google.com>
1604
1605         ConvolverNode setBuffer() should not ASSERT on null buffer
1606         https://bugs.webkit.org/show_bug.cgi?id=85653
1607
1608         Reviewed by Chris Rogers.
1609
1610         Test: webaudio/convolver-setBuffer-null.html
1611
1612         * Modules/webaudio/ConvolverNode.cpp:
1613         (WebCore::ConvolverNode::setBuffer):  Don't ASSERT on null buffer.
1614
1615 2012-05-07  Ken Buchanan  <kenrb@chromium.org>
1616
1617         Crash due to positioned object list not being cleared during block flow split
1618         https://bugs.webkit.org/show_bug.cgi?id=85074
1619
1620         Reviewed by Abhishek Arya.
1621
1622         When an element is being split due to a column span element being
1623         inserted, any of its ancestors that are underneath the column
1624         containing block also get split. If an ancestor has an object in
1625         its positioned object list from a previous layout, then the list
1626         will have to be cleared because the positioned object could have moved
1627         to be under the continuation. This patch causes the list to be
1628         cleared.
1629
1630         * rendering/RenderBlock.cpp:
1631         (WebCore::RenderBlock::splitBlocks):
1632
1633 2012-05-07  Eric Seidel  <eric@webkit.org>
1634
1635         Add ENABLE_IFRAME_SEAMLESS so Apple can turn off SEAMLESS if needed
1636         https://bugs.webkit.org/show_bug.cgi?id=85822
1637
1638         Reviewed by Adam Barth.
1639
1640         * Configurations/FeatureDefines.xcconfig:
1641         * dom/Document.cpp:
1642         (WebCore::Document::shouldDisplaySeamlesslyWithParent):
1643
1644 2012-05-07  Shezan Baig  <shezbaig.wk@gmail.com>
1645
1646         Selection Background Color Error
1647         https://bugs.webkit.org/show_bug.cgi?id=80382
1648
1649         Reviewed by David Hyatt.
1650
1651         Determine the text colors and selection colors before painting the
1652         background behind the text.  This is because when determining whether
1653         to invert the selection background, the selection text color should be
1654         used instead of the regular text color.  With this patch, the selection
1655         text color is passed to 'paintSelection' so that the selection
1656         background can be compared against it, instead of comparing against the
1657         CSSPropertyColor value.
1658
1659         Test: fast/backgrounds/selection-background-color.html
1660
1661         * rendering/InlineTextBox.cpp:
1662         (WebCore::InlineTextBox::paint):
1663             Pass selection text color to paintSelection
1664
1665         (WebCore::InlineTextBox::paintSelection):
1666             Use the selection text color instead of CSSPropertyColor
1667
1668         * rendering/InlineTextBox.h:
1669         (InlineTextBox):
1670             Adjust signature of paintSelection to accept text color
1671
1672 2012-05-07  David Reveman  <reveman@chromium.org>
1673
1674         [Chromium] Use GL_CHROMIUM_command_buffer_query to throttle texture uploads.
1675         https://bugs.webkit.org/show_bug.cgi?id=81004
1676
1677         Reviewed by Adrienne Walker.
1678
1679         Add ThrottledTextureUploader class that uses GL_CHROMIUM_command_buffer_query
1680         to throttle texture uploads based on number of currently pending queries.
1681
1682         Unit test: ThrottledTextureUploaderTest.IsBusy
1683
1684         * WebCore.gypi:
1685         * platform/graphics/chromium/LayerRendererChromium.cpp:
1686         (WebCore::LayerRendererChromium::create):
1687         (WebCore::LayerRendererChromium::LayerRendererChromium):
1688         (WebCore::LayerRendererChromium::initializeSharedObjects):
1689         * platform/graphics/chromium/LayerRendererChromium.h:
1690         (LayerRendererChromium):
1691         * platform/graphics/chromium/TextureUploader.cpp: Removed.
1692         * platform/graphics/chromium/TextureUploader.h:
1693         (TextureUploader):
1694         * platform/graphics/chromium/ThrottledTextureUploader.cpp: Added.
1695         (WebCore):
1696         (WebCore::ThrottledTextureUploader::Query::Query):
1697         (WebCore::ThrottledTextureUploader::Query::~Query):
1698         (WebCore::ThrottledTextureUploader::Query::begin):
1699         (WebCore::ThrottledTextureUploader::Query::end):
1700         (WebCore::ThrottledTextureUploader::Query::isPending):
1701         (WebCore::ThrottledTextureUploader::Query::wait):
1702         (WebCore::ThrottledTextureUploader::ThrottledTextureUploader):
1703         (WebCore::ThrottledTextureUploader::~ThrottledTextureUploader):
1704         (WebCore::ThrottledTextureUploader::isBusy):
1705         (WebCore::ThrottledTextureUploader::beginUploads):
1706         (WebCore::ThrottledTextureUploader::endUploads):
1707         (WebCore::ThrottledTextureUploader::uploadTexture):
1708         (WebCore::ThrottledTextureUploader::processQueries):
1709         * platform/graphics/chromium/ThrottledTextureUploader.h: Copied from Source/WebCore/platform/graphics/chromium/TextureUploader.h.
1710         (WebCore):
1711         (ThrottledTextureUploader):
1712         (WebCore::ThrottledTextureUploader::create):
1713         (Query):
1714         (WebCore::ThrottledTextureUploader::Query::create):
1715         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1716         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1717         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1718         (CCLayerTreeHostImpl):
1719         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1720         (UnthrottledTextureUploader):
1721         (WebCore::UnthrottledTextureUploader::create):
1722         (WebCore::UnthrottledTextureUploader::~UnthrottledTextureUploader):
1723         (WebCore::UnthrottledTextureUploader::isBusy):
1724         (WebCore::UnthrottledTextureUploader::beginUploads):
1725         (WebCore::UnthrottledTextureUploader::endUploads):
1726         (WebCore::UnthrottledTextureUploader::uploadTexture):
1727         (WebCore::UnthrottledTextureUploader::UnthrottledTextureUploader):
1728         (WebCore):
1729         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
1730         (WebCore::CCSingleThreadProxy::recreateContext):
1731         (WebCore::CCSingleThreadProxy::doCommit):
1732         * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
1733         (WebCore::CCTextureUpdater::update):
1734         * platform/graphics/chromium/cc/CCTextureUpdater.h:
1735         (CCTextureUpdater):
1736         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1737         (WebCore):
1738         (UnthrottledTextureUploader):
1739         (WebCore::UnthrottledTextureUploader::create):
1740         (WebCore::UnthrottledTextureUploader::~UnthrottledTextureUploader):
1741         (WebCore::UnthrottledTextureUploader::isBusy):
1742         (WebCore::UnthrottledTextureUploader::beginUploads):
1743         (WebCore::UnthrottledTextureUploader::endUploads):
1744         (WebCore::UnthrottledTextureUploader::uploadTexture):
1745         (WebCore::UnthrottledTextureUploader::UnthrottledTextureUploader):
1746         (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
1747         (WebCore::CCThreadProxy::recreateContextOnImplThread):
1748
1749 2012-05-07  Rob Buis  <rbuis@rim.com>
1750
1751         Shrink SVGInlineTextBox object size
1752         https://bugs.webkit.org/show_bug.cgi?id=85805
1753
1754         Reviewed by Darin Adler.
1755
1756         Reduce the object size of SVGInlineTextBox by using bitfields. This
1757         should be 4 bytes on 32-bits and 8 bytes on 64-bits systems.
1758
1759         * rendering/svg/RenderSVGResource.h:
1760         * rendering/svg/SVGInlineTextBox.cpp:
1761         (ExpectedSVGInlineTextBoxSize):
1762         (WebCore):
1763         * rendering/svg/SVGInlineTextBox.h:
1764         (SVGInlineTextBox):
1765
1766 2012-05-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1767
1768         Unreviewed, rolling out r116334.
1769         http://trac.webkit.org/changeset/116334
1770         https://bugs.webkit.org/show_bug.cgi?id=85816
1771
1772         Broke the Chromium Win/Mac compile (Requested by
1773         ojan_gardening on #webkit).
1774
1775         * WebCore.gypi:
1776         * platform/graphics/chromium/AnimationIdVendor.cpp: Removed.
1777         * platform/graphics/chromium/AnimationIdVendor.h: Removed.
1778         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1779         (std):
1780         (WebCore::GraphicsLayerChromium::updateNames):
1781         (WebCore::GraphicsLayerChromium::addAnimation):
1782         (WebCore::GraphicsLayerChromium::updateChildList):
1783         (WebCore::GraphicsLayerChromium::mapAnimationNameToId):
1784         * platform/graphics/chromium/GraphicsLayerChromium.h:
1785         (WebCore):
1786         (GraphicsLayerChromium):
1787         * platform/graphics/chromium/LinkHighlightLayerDelegate.cpp: Removed.
1788         * platform/graphics/chromium/LinkHighlightLayerDelegate.h: Removed.
1789
1790 2012-05-07  Adrienne Walker  <enne@google.com>
1791
1792         Fix containerForRepaint() assumption about non-null enclosingLayer()
1793         https://bugs.webkit.org/show_bug.cgi?id=85807
1794
1795         Reviewed by Simon Fraser.
1796
1797         * rendering/RenderObject.cpp:
1798         (WebCore::RenderObject::containerForRepaint):
1799
1800 2012-05-07  Alec Flett  <alecflett@chromium.org>
1801
1802         IndexedDB: Replace numeric constants with strings
1803         https://bugs.webkit.org/show_bug.cgi?id=84894
1804
1805         Reviewed by Tony Chang.
1806
1807         Test: storage/indexeddb/legacy-constants.html
1808
1809         Update IDBObjectStore.openCursor, IDBIndex.openCursor,
1810         IDBIndex.openKeyCursor, IDBDatabase.transaction,
1811         IDBCursor.direction, IDBTransaction.mode, and
1812         IDBRequest.readyState to meet the latest spec. All of these APIs
1813         now support string-based values in addition to the
1814         legacy/deprecated enum-based values.
1815
1816         * Modules/indexeddb/IDBCursor.cpp:
1817         (WebCore):
1818         (WebCore::IDBCursor::direction):
1819         (WebCore::IDBCursor::stringToDirection):
1820         (WebCore::IDBCursor::directionToString):
1821         * Modules/indexeddb/IDBCursor.h:
1822         (IDBCursor):
1823         * Modules/indexeddb/IDBCursor.idl:
1824         * Modules/indexeddb/IDBDatabase.cpp:
1825         (WebCore::IDBDatabase::transaction):
1826         (WebCore):
1827         * Modules/indexeddb/IDBDatabase.h:
1828         (IDBDatabase):
1829         * Modules/indexeddb/IDBDatabase.idl:
1830         * Modules/indexeddb/IDBIndex.cpp:
1831         (WebCore::IDBIndex::openCursor):
1832         (WebCore):
1833         (WebCore::IDBIndex::openKeyCursor):
1834         * Modules/indexeddb/IDBIndex.h:
1835         (WebCore::IDBIndex::openCursor):
1836         (IDBIndex):
1837         (WebCore::IDBIndex::openKeyCursor):
1838         * Modules/indexeddb/IDBIndex.idl:
1839         * Modules/indexeddb/IDBObjectStore.cpp:
1840         (WebCore::IDBObjectStore::openCursor):
1841         (WebCore):
1842         * Modules/indexeddb/IDBObjectStore.h:
1843         (WebCore::IDBObjectStore::openCursor):
1844         (IDBObjectStore):
1845         * Modules/indexeddb/IDBObjectStore.idl:
1846         * Modules/indexeddb/IDBRequest.cpp:
1847         (WebCore::IDBRequest::IDBRequest):
1848         (WebCore::IDBRequest::readyState):
1849         (WebCore::IDBRequest::markEarlyDeath):
1850         (WebCore::IDBRequest::resetReadyState):
1851         (WebCore::IDBRequest::abort):
1852         (WebCore::IDBRequest::finishCursor):
1853         (WebCore::IDBRequest::onSuccess):
1854         (WebCore::IDBRequest::stop):
1855         * Modules/indexeddb/IDBRequest.h:
1856         * Modules/indexeddb/IDBRequest.idl:
1857         * Modules/indexeddb/IDBTransaction.cpp:
1858         (WebCore):
1859         (WebCore::IDBTransaction::mode):
1860         (WebCore::IDBTransaction::stringToMode):
1861         (WebCore::IDBTransaction::modeToString):
1862         * Modules/indexeddb/IDBTransaction.h:
1863         (IDBTransaction):
1864         * Modules/indexeddb/IDBTransaction.idl:
1865
1866 2012-05-07  W. James MacLean  <wjmaclean@chromium.org>
1867
1868         [chromium] Create LinkHighlightLayerChromium class to provide link-highlight preview animations for GraphicsLayerChromium.
1869         https://bugs.webkit.org/show_bug.cgi?id=85084
1870
1871         Reviewed by Adrienne Walker.
1872
1873         Unit test provided.
1874
1875         Creates a layer delegate class to provide link highlight animations for link-preview feature.
1876         These are added to a GraphicsLayerChromium via provided methods. Moves dispensing of animation
1877         ids into a separate class.
1878
1879         * WebCore.gypi:
1880         * platform/graphics/chromium/AnimationIdVendor.cpp: Added.
1881         (WebCore):
1882         (WebCore::AnimationIdVendor::getNextAnimationId):
1883         (WebCore::AnimationIdVendor::getNextGroupId):
1884         * platform/graphics/chromium/AnimationIdVendor.h: Added.
1885         (WebCore):
1886         (AnimationIdVendor):
1887         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1888         (WebCore::GraphicsLayerChromium::updateNames):
1889         (WebCore::GraphicsLayerChromium::addAnimation):
1890         (WebCore::GraphicsLayerChromium::addLinkHighlightLayer):
1891         (WebCore):
1892         (WebCore::GraphicsLayerChromium::didFinishLinkHighlightLayer):
1893         (WebCore::GraphicsLayerChromium::updateChildList):
1894         (WebCore::GraphicsLayerChromium::mapAnimationNameToId):
1895         * platform/graphics/chromium/GraphicsLayerChromium.h:
1896         (WebCore):
1897         (GraphicsLayerChromium):
1898         * platform/graphics/chromium/LinkHighlightLayerDelegate.cpp: Added.
1899         (WebCore):
1900         (WebCore::LinkHighlightLayerDelegate::create):
1901         (WebCore::LinkHighlightLayerDelegate::LinkHighlightLayerDelegate):
1902         (WebCore::LinkHighlightLayerDelegate::~LinkHighlightLayerDelegate):
1903         (WebCore::LinkHighlightLayerDelegate::getContentLayer):
1904         (WebCore::LinkHighlightLayerDelegate::paintContents):
1905         (WebCore::LinkHighlightLayerDelegate::didScroll):
1906         (WebCore::LinkHighlightLayerDelegate::notifyAnimationStarted):
1907         (WebCore::LinkHighlightLayerDelegate::notifyAnimationFinished):
1908         * platform/graphics/chromium/LinkHighlightLayerDelegate.h: Added.
1909         (WebCore):
1910         (LinkHighlightLayerDelegate):
1911
1912 2012-05-07  Joshua Bell  <jsbell@chromium.org>
1913
1914         IndexedDB: LevelDB coding for bools is broken
1915         https://bugs.webkit.org/show_bug.cgi?id=85810
1916
1917         Reviewed by Tony Chang.
1918
1919         Code was appending to a pre-sized Vector, rather than using an
1920         index setter. This caused uninitialized data to be written out.
1921         Issue was detected on the Chromium side in http://crbug.com/126388
1922
1923         Tests: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*codeBool'
1924
1925         * Modules/indexeddb/IDBLevelDBCoding.cpp:
1926         (WebCore::IDBLevelDBCoding::encodeBool):
1927
1928 2012-05-07  Shawn Singh  <shawnsingh@chromium.org>
1929
1930         [chromium] CCMathUtil projectPoint needs to avoid divide-by-zero
1931         https://bugs.webkit.org/show_bug.cgi?id=85560
1932
1933         Reviewed by Adrienne Walker.
1934
1935         Unit test added: CCMathUtilTest.cpp - verifyProjectionOfPerpendicularPlane
1936         Unit test updated/renamed: CCLayerTreeHostCommonTest.cpp - verifyVisibleRectFor3dPerspectiveWhenClippedByW
1937
1938         The divide-by-zero occurs in an innocuous case where the layers
1939         are probably invisible anyway. However, producing Infs and NaNs
1940         could cause values to be used when un-intended, so its appropriate
1941         to handle the divide-by-zero correctly.
1942
1943         * platform/graphics/chromium/cc/CCMathUtil.cpp:
1944         (WebCore::projectPoint):
1945
1946 2012-05-07  Pravin D  <pravind.2k4@gmail.com>
1947
1948         Wrong positioning due to wrong width calculation wrt width:0
1949         https://bugs.webkit.org/show_bug.cgi?id=50135
1950
1951         Reviewed by Eric Seidel.
1952
1953         Test: fast/block/block-parent-with-zero-width-child.html
1954
1955         * rendering/RenderBlock.cpp:
1956         (WebCore::RenderBlock::computePreferredLogicalWidths):
1957         When width is fixed, the specified width must be taken, provided the value is positive.
1958         Width=0 case was being ignored.
1959
1960 2012-05-07  Noel Gordon  <noel.gordon@gmail.com>
1961
1962         [CG] ImageBuffer::ImageDataToDataURL: Remove alpha stuffing when encoding to JPEG
1963         https://bugs.webkit.org/show_bug.cgi?id=85779
1964
1965         Reviewed by Eric Seidel.
1966
1967         No change in behavior. Covered by fast/canvas/webgl/premultiplyalpha-test.html
1968
1969         * platform/graphics/cg/ImageBufferCG.cpp:
1970         (WebCore::ImageDataToDataURL): Remove the need to stuff the alpha channel with 255.
1971         Rename dataVector to premultipliedData and verify that its resize() worked. Rewrite
1972         the premultiplication loop without the alpha channel = 255 part and ask the CG JPEG
1973         encoder to ignore the alpha channel (kCGImageAlphaNoneSkipLast) instead.
1974
1975 2012-05-07  Dominik R√∂ttsches  <dominik.rottsches@linux.intel.com>
1976
1977         [GTK] media/video-seek-past-end-playing.html times out
1978         https://bugs.webkit.org/show_bug.cgi?id=84858
1979
1980         Reviewed by Philippe Normand.
1981
1982         Removing the intentional state change to PAUSED on didEnd().
1983         My understanding is that the fix works because the additional
1984         state transition to PAUSED was resetting the internal m_seeking state to early,
1985         so that updatePlayState() in HTMLMediaElement was not able to
1986         correctly figure out/recover playstate after seeking.
1987
1988         No new tests, covered by existing media tests, and fixing
1989         video-seek-past-end-playing.html flakiness on GTK, failure on EFL.
1990
1991         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1992
1993 2012-05-07  Abhishek Arya  <inferno@chromium.org>
1994
1995         Crash in RenderBlock::updateFirstLetterStyle.
1996         https://bugs.webkit.org/show_bug.cgi?id=85759
1997
1998         Reviewed by Julien Chaffraix.
1999
2000         Test: fast/css-generated-content/first-letter-next-sibling-crash.html
2001
2002         RenderBlock::removeChild can bring up the children from last single anonymous block,
2003         causing |nextSibling| in RenderBlock::updateFirstLetterStyle to go stale. We prevent
2004         this by removing the child safely using removeChildNode before destroying it.
2005
2006         * rendering/RenderBlock.cpp:
2007         (WebCore::RenderBlock::updateFirstLetterStyle):
2008
2009 2012-05-07  Tommy Widenflycht  <tommyw@google.com>
2010
2011         MediaStream API: Rename MediaStreamCenter::didConstructMediaStream
2012         https://bugs.webkit.org/show_bug.cgi?id=85796
2013
2014         Reviewed by Adam Barth.
2015
2016         Renamed MediaStreamCenter::didConstructMediaStream to didCreateMediaStream,
2017         and change so that it is only called for MediaStreams created from JS.
2018
2019         Not really testable.
2020
2021         * Modules/mediastream/MediaStream.cpp:
2022         (WebCore::MediaStream::create):
2023         * platform/mediastream/MediaStreamCenter.h:
2024         (MediaStreamCenter):
2025         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
2026         (WebCore::MediaStreamCenterChromium::didCreateMediaStream):
2027         * platform/mediastream/chromium/MediaStreamCenterChromium.h:
2028         (MediaStreamCenterChromium):
2029         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
2030         (WebCore::MediaStreamCenterGStreamer::didCreateMediaStream):
2031         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
2032         (MediaStreamCenterGStreamer):
2033
2034 2012-05-07  Nat Duca  <nduca@chromium.org>
2035
2036         Unreviewed, rolling out r115525.
2037         http://trac.webkit.org/changeset/115525
2038         https://bugs.webkit.org/show_bug.cgi?id=66683
2039
2040         Too many pages rely on DOMTimeStamp as first argument.
2041         Reverting while we consider next steps.
2042
2043         * WebCore.exp.in:
2044         * bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:
2045         (WebCore::JSRequestAnimationFrameCallback::handleEvent):
2046         * dom/Document.cpp:
2047         (WebCore::Document::serviceScriptedAnimations):
2048         * dom/Document.h:
2049         (Document):
2050         * dom/RequestAnimationFrameCallback.h:
2051         (RequestAnimationFrameCallback):
2052         * dom/RequestAnimationFrameCallback.idl:
2053         * dom/ScriptedAnimationController.cpp:
2054         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
2055         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
2056         (WebCore):
2057         (WebCore::ScriptedAnimationController::windowScreenDidChange):
2058         (WebCore::ScriptedAnimationController::scheduleAnimation):
2059         (WebCore::ScriptedAnimationController::animationTimerFired):
2060         * dom/ScriptedAnimationController.h:
2061         (ScriptedAnimationController):
2062         (WebCore::ScriptedAnimationController::displayRefreshFired):
2063         * page/FrameView.cpp:
2064         (WebCore::FrameView::serviceScriptedAnimations):
2065         * page/FrameView.h:
2066         (FrameView):
2067         * platform/graphics/DisplayRefreshMonitor.cpp:
2068         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
2069         (WebCore::DisplayRefreshMonitor::notifyClients):
2070         * platform/graphics/DisplayRefreshMonitor.h:
2071         (DisplayRefreshMonitor):
2072         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
2073         (WebCore::DisplayRefreshMonitor::displayLinkFired):
2074         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
2075         (WebCore):
2076         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
2077         (WebCore::DisplayRefreshMonitor::displayLinkFired):
2078
2079 2012-05-07  Tommy Widenflycht  <tommyw@google.com>
2080
2081         MediaStream API: Allow UserMediaRequest::succeed to take an MediaStreamDescriptor
2082         https://bugs.webkit.org/show_bug.cgi?id=85798
2083
2084         Reviewed by Adam Barth.
2085
2086         Adding another UserMediaRequest::succeed function that takes an MediaStreamDescriptor
2087         instead of the two MediaStreamSource arrays.
2088
2089         Not currently testable.
2090
2091         * Modules/mediastream/LocalMediaStream.cpp:
2092         (WebCore::LocalMediaStream::create):
2093         (WebCore):
2094         (WebCore::LocalMediaStream::LocalMediaStream):
2095         * Modules/mediastream/LocalMediaStream.h:
2096         (LocalMediaStream):
2097         * Modules/mediastream/UserMediaRequest.cpp:
2098         (WebCore::UserMediaRequest::succeed):
2099         (WebCore):
2100         * Modules/mediastream/UserMediaRequest.h:
2101         (WebCore):
2102         (UserMediaRequest):
2103
2104 2012-05-07  Michal Mocny  <mmocny@google.com>
2105
2106         [chromium] setContentsMemoryAllocationLimitBytes needs to setNeedsCommit.
2107         https://bugs.webkit.org/show_bug.cgi?id=85801
2108
2109         Reviewed by Adrienne Walker.
2110
2111         CCLayerTreeHost::setContentsMemoryAllocationLimitBytes needs to call setNeedsCommit after adjusting memory
2112         limits, so that we push a new frame.  In particular, when returning from non visibile state, we adjust
2113         memory allocation from 0 to non 0, and we need to push a non blank frame.
2114
2115         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2116         (WebCore::CCLayerTreeHost::setVisible):
2117         (WebCore::CCLayerTreeHost::setContentsMemoryAllocationLimitBytes):
2118
2119 2012-05-07  Christophe Dumez  <christophe.dumez@intel.com>
2120
2121         [EFL] media/track/track-cue-rendering-snap-to-lines-not-set.html fails
2122         https://bugs.webkit.org/show_bug.cgi?id=85602
2123
2124         Reviewed by Eric Carlson.
2125
2126         Fix positioning of the controls panel back to relative, as it is
2127         in the parent CSS.
2128
2129         * css/mediaControlsEfl.css:
2130         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
2131
2132 2012-05-07  Adam Bergkvist  <adam.bergkvist@ericsson.com>
2133
2134         MediaStream should not be an ActiveDOMObject
2135         https://bugs.webkit.org/show_bug.cgi?id=85191
2136
2137         Reviewed by Adam Barth.
2138
2139         The model with MediaStreamDescriptor and MediaStream (and LocalMediaStream)
2140         allows the JavaScript objects (MediaStream and LocalMediaStream) to be
2141         cleaned up while the MediaStreamDescriptor lives on to manage the stream in
2142         the platform. This happens for example when a URL is created to represent
2143         a MediaStream (using createObjectURL()). In that case, the MediaStreamDescriptor
2144         is put into the MediaStreamRegistry and even though the MediaStream object is
2145         lost, the URL still works since the descriptor is kept in the registry.
2146
2147         The changes introduced in r113460 (http://webkit.org/b/83143) turned
2148         MediaStream and LocalMediaStream into ActiveDOMObjects. For example on page
2149         reload, LocalMediaStream calls MediaStreamCenter::didStopLocalMediaStream()
2150         via its ActiveDOMObject::stop() method. However, when a page reload occurs,
2151         the LocalMediaStream object may have been cleaned up already and
2152         MediaStreamCenter::didStopLocalMediaStream() will not be called.
2153
2154         One way to make the behavior consistent would be to call
2155         MediaStreamCenter::didStopLocalMediaStream() when the descriptor is cleaned up,
2156         cause then we wouldn't be dependent on the LocalMediaStream object being alive.
2157         However, calling MediaStreamCenter::didStopLocalMediaStream() might not be the
2158         correct thing to do when all references to the descriptor are lost since there
2159         can be MediaStream objects constructed from the tracks of the LocalMediaStream
2160         that should continue to work. MediaStreamCenter::didStopLocalMediaStream() was
2161         intended for LocalMediaStream.stop() which is used to revoke access to devices;
2162         that should not necessarily happen when the descriptor of a LocalMediaStream is
2163         cleaned up. If it's necessary for some ports to signal to the platform that a
2164         MediaStreamDescriptor is cleaned up, then I would suggest adding a new function,
2165         willDestroyMediaStreamDescriptor(), to the MediaStreamCenter interface.
2166
2167         The current resolution is to make MediaStream a ContextDestructionObserver
2168         instead of an ActiveDOMObject.
2169
2170         Currently not testable.
2171
2172         * Modules/mediastream/LocalMediaStream.cpp:
2173         (WebCore::LocalMediaStream::create):
2174         * Modules/mediastream/LocalMediaStream.h:
2175         (LocalMediaStream):
2176         * Modules/mediastream/LocalMediaStream.idl:
2177         * Modules/mediastream/MediaStream.cpp:
2178         (WebCore::MediaStream::create):
2179         (WebCore::MediaStream::MediaStream):
2180         (WebCore::MediaStream::scriptExecutionContext):
2181         * Modules/mediastream/MediaStream.h:
2182
2183 2012-05-07  Liam Quinn  <lquinn@rim.com>
2184
2185         [BlackBerry] WWW-Authenticate header on 200 response pops up authentication dialog
2186         https://bugs.webkit.org/show_bug.cgi?id=85643
2187
2188         Reviewed by George Staikos.
2189
2190         RIM PR: 151992
2191         Ignore WWW-Authenticate header if the response code is not 401.
2192         Ignore Proxy-Authenticate header if the response code is not 407.
2193
2194         Manual test added to observe whether the authentication dialog appears on a 200 response with WWW-Authenticate.
2195
2196         * platform/network/blackberry/NetworkJob.cpp:
2197         (WebCore::NetworkJob::handleNotifyHeaderReceived):
2198
2199 2012-05-07  Alexander Pavlov  <apavlov@chromium.org>
2200
2201         Web Inspector: [TextPrompt] Event listeners and CSS style are not removed on detachment
2202         https://bugs.webkit.org/show_bug.cgi?id=85789
2203
2204         Reviewed by Yury Semikhatsky.
2205
2206         * inspector/front-end/TextPrompt.js:
2207         (WebInspector.TextPrompt.prototype._attachInternal):
2208         (WebInspector.TextPrompt.prototype.detach):
2209
2210 2012-05-07  Csaba Osztrogon√°c  <ossy@webkit.org>
2211
2212         Buildfix for buggy GCC
2213         https://bugs.webkit.org/show_bug.cgi?id=85781
2214
2215         Reviewed by Zoltan Herczeg.
2216
2217         * rendering/RenderBlock.h:
2218         (WebCore::RenderBlock::MarginInfo::clearMargin):
2219
2220 2012-05-07  Alexander Pavlov  <apavlov@chromium.org>
2221
2222         Web Inspector: [REGRESSION] Context menu for the left Script view gutter is broken
2223         https://bugs.webkit.org/show_bug.cgi?id=85785
2224
2225         Reviewed by Pavel Feldman.
2226
2227         Fixed remaining usages of WebInspector.save to be WebInspector.fileManager.save.
2228
2229         * inspector/front-end/NetworkPanel.js:
2230         (WebInspector.NetworkLogView.prototype._exportAll):
2231         (WebInspector.NetworkLogView.prototype._exportRequest):
2232         * inspector/front-end/ResourcesPanel.js:
2233         (WebInspector.FrameResourceTreeElement.prototype._appendSaveAsAction.doSave):
2234         (WebInspector.ResourceRevisionTreeElement.prototype._handleContextMenuEvent.doSave):
2235         * inspector/front-end/TextViewer.js:
2236         (WebInspector.TextViewer.prototype._contextMenu):
2237
2238
2239 2012-05-07  Antti Koivisto  <antti@apple.com>
2240
2241         Share stylesheet data structures between documents
2242         https://bugs.webkit.org/show_bug.cgi?id=85598
2243
2244         Reviewed by Darin Adler.
2245
2246         We currently make a copy of the data structures when restoring a cached stylesheet. This patch lets us share
2247         the data until someone uses a mutating CSSOM API to modify the sheet.
2248         
2249         The patch implements copy-on-write for the internal style sheet data structures. If any mutating CSSOM API is
2250         invoked, we check if the mutation is safe (there is only one client, the sheet is not cached). If not then the
2251         internal structures are copied and any existing CSSOM objects are re-attached to the new style tree. The copied
2252         tree is mutated while the other clients stay attached to the original tree.
2253         
2254         Sharing can save significant amount of memory on sites with large stylesheets. For example if you have
2255         multiple articles open on wsj.com this saves ~2.6MB per tab.
2256         
2257         Test: http/tests/css/shared-stylesheet-mutation.html
2258               http/tests/css/shared-stylesheet-mutation-preconstruct.html
2259
2260         * css/CSSFontFaceRule.cpp:
2261         (WebCore::CSSFontFaceRule::reattach):
2262         (WebCore):
2263         * css/CSSFontFaceRule.h:
2264         (CSSFontFaceRule):
2265         * css/CSSMediaRule.cpp:
2266         (WebCore::CSSMediaRule::insertRule):
2267         (WebCore::CSSMediaRule::deleteRule):
2268         (WebCore::CSSMediaRule::reattach):
2269         (WebCore):
2270         * css/CSSMediaRule.h:
2271         (CSSMediaRule):
2272         * css/CSSPageRule.cpp:
2273         (WebCore::CSSPageRule::setSelectorText):
2274         (WebCore::CSSPageRule::reattach):
2275         (WebCore):
2276         * css/CSSPageRule.h:
2277         (CSSPageRule):
2278         * css/CSSRule.cpp:
2279         (WebCore::CSSRule::reattach):
2280         
2281             After the internal stylerule tree has been copied, the existing wrappers are re-attached using recursive reattach() function.
2282
2283         * css/CSSRule.h:
2284         (WebCore):
2285         (CSSRule):
2286         * css/CSSStyleRule.cpp:
2287         (WebCore::CSSStyleRule::setSelectorText):
2288         (WebCore::CSSStyleRule::reattach):
2289         (WebCore):
2290         * css/CSSStyleRule.h:
2291         (CSSStyleRule):
2292         * css/CSSStyleSheet.cpp:
2293         (WebCore::StyleSheetInternal::StyleSheetInternal):
2294         (WebCore::StyleSheetInternal::isCacheable):
2295         (WebCore::StyleSheetInternal::ruleAt):
2296         
2297             Add ruleAt(), use it for both wrapper creation and reattaching.  Remove createChildRuleCSSOMWrapper .
2298
2299         (WebCore):
2300         (WebCore::StyleSheetInternal::wrapperInsertRule):
2301         (WebCore::StyleSheetInternal::wrapperDeleteRule):
2302         
2303             Invalidation moves to the calling wrapper.
2304
2305         (WebCore::StyleSheetInternal::addedToMemoryCache):
2306         (WebCore::StyleSheetInternal::removedFromMemoryCache):
2307         (WebCore::CSSStyleSheet::willMutateRules):
2308         
2309             This is called whenever StyleSheetInternal is going to be mutated. It will do copy-on-write if needed.
2310             
2311             Usually invoked by CSSStyleSheet::RuleMutation RAII type.
2312
2313         (WebCore::CSSStyleSheet::didMutateRules):
2314         
2315             This is called after the mutation is complete and will trigger the style recalc in the document.
2316
2317         (WebCore::CSSStyleSheet::didMutate):
2318         
2319             This is called directly after mutations that don't change StyleSheetInternal so don't require copy-on-write.
2320
2321         (WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):
2322         (WebCore::CSSStyleSheet::setDisabled):
2323         (WebCore::CSSStyleSheet::insertRule):
2324         (WebCore::CSSStyleSheet::deleteRule):
2325         * css/CSSStyleSheet.h:
2326         (StyleSheetInternal):
2327         (WebCore::StyleSheetInternal::hasOneClient):
2328         (WebCore::StyleSheetInternal::isMutable):
2329         (WebCore::StyleSheetInternal::setMutable):
2330         
2331             Track mutability. Mutation is allowed only after willMutate call.
2332
2333         (WebCore::StyleSheetInternal::isInMemoryCache):
2334         
2335             Track if the object is in memory cache.
2336
2337         (WebCore::CSSStyleSheet::clearOwnerRule):
2338         (CSSStyleSheet):
2339         * css/MediaList.cpp:
2340         (WebCore::MediaList::setMediaText):
2341         (WebCore::MediaList::deleteMedium):
2342         (WebCore::MediaList::appendMedium):
2343         (WebCore::MediaList::didMutate):
2344         (WebCore):
2345         (WebCore::MediaList::reattach):
2346         * css/MediaList.h:
2347         (MediaList):
2348         * css/PropertySetCSSStyleDeclaration.cpp:
2349         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
2350         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
2351         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
2352         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
2353         (WebCore):
2354         (WebCore::StyleRuleCSSStyleDeclaration::willMutate):
2355         (WebCore::StyleRuleCSSStyleDeclaration::didMutate):
2356         (WebCore::StyleRuleCSSStyleDeclaration::reattach):
2357         (WebCore::InlineCSSStyleDeclaration::didMutate):
2358         * css/PropertySetCSSStyleDeclaration.h:
2359         (WebCore::PropertySetCSSStyleDeclaration::willMutate):
2360         (WebCore::PropertySetCSSStyleDeclaration::didMutate):
2361         (StyleRuleCSSStyleDeclaration):
2362         * css/WebKitCSSKeyframesRule.cpp:
2363         (WebCore::WebKitCSSKeyframesRule::setName):
2364         (WebCore::WebKitCSSKeyframesRule::insertRule):
2365         (WebCore::WebKitCSSKeyframesRule::deleteRule):
2366         (WebCore::WebKitCSSKeyframesRule::reattach):
2367         (WebCore):
2368         * css/WebKitCSSKeyframesRule.h:
2369         (WebKitCSSKeyframesRule):
2370         * css/WebKitCSSRegionRule.cpp:
2371         (WebCore::WebKitCSSRegionRule::reattach):
2372         * css/WebKitCSSRegionRule.h:
2373         (WebKitCSSRegionRule):
2374         * inspector/InspectorStyleSheet.cpp:
2375         (WebCore::InspectorStyleSheet::reparseStyleSheet):
2376         * loader/cache/CachedCSSStyleSheet.cpp:
2377         (WebCore::CachedCSSStyleSheet::~CachedCSSStyleSheet):
2378         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
2379         (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
2380         
2381             Don't copy when restoring. It is no longer necessary.
2382             Set the cache bit on the stylesheet.
2383
2384         (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
2385
2386 2012-05-06  Kinuko Yasuda  <kinuko@chromium.org>
2387
2388         Cleanup: Change boolean synchronous flag argument into enum in FileSystem API code
2389         https://bugs.webkit.org/show_bug.cgi?id=85741
2390
2391         Reviewed by David Levin.
2392
2393         No new tests as this change has no functional effects.
2394
2395         * Modules/filesystem/DOMWindowFileSystem.cpp:
2396         (WebCore::DOMWindowFileSystem::webkitRequestFileSystem):
2397         * Modules/filesystem/LocalFileSystem.cpp:
2398         (WebCore::LocalFileSystem::requestFileSystem):
2399         * Modules/filesystem/LocalFileSystem.h:
2400         (LocalFileSystem):
2401         * Modules/filesystem/WorkerContextFileSystem.cpp:
2402         (WebCore::WorkerContextFileSystem::webkitRequestFileSystem):
2403         (WebCore::WorkerContextFileSystem::webkitRequestFileSystemSync):
2404         (WebCore::WorkerContextFileSystem::webkitResolveLocalFileSystemSyncURL):
2405         * platform/FileSystemType.h: Added FileSystemSynchronousType enum.
2406
2407 2012-05-07  Antti Koivisto  <antti@apple.com>
2408
2409         Revert the previous.
2410
2411         Not reviewed.
2412         
2413         Apparently r116235 was already rolled out.
2414
2415         * css/StyleResolver.cpp:
2416         (WebCore::StyleResolver::determineScope):
2417
2418 2012-05-07  Antti Koivisto  <antti@apple.com>
2419
2420         REGRESSION(r116235): broke a lot of tests on all chromium debug bots
2421         https://bugs.webkit.org/show_bug.cgi?id=85773
2422
2423         Not reviewed.
2424
2425         Try to fix assert when scoped stylesheets are enabled.
2426
2427         * css/StyleResolver.cpp:
2428         (WebCore::StyleResolver::determineScope):
2429
2430 2012-05-06  Kinuko Yasuda  <kinuko@chromium.org>
2431
2432         Cleanup: Move FileSystem API type definitions into a separate header file
2433         https://bugs.webkit.org/show_bug.cgi?id=85738
2434
2435         Reviewed by David Levin.
2436
2437         Move FileSystem API type definitions from AsyncFileSystem.h and
2438         AsyncFileSystemChromium.cpp for chromium port into a single separate
2439         header file: FileSystemType.h
2440
2441         By doing this we make it clearer that every filesystem type can be
2442         found in the header file and also can save including entire
2443         AsyncFileSystem definition just for referring type enum value.
2444
2445         No new tests as this change has no visible or functional changes.
2446
2447         * Modules/filesystem/DOMFileSystemBase.cpp:
2448         (WebCore::pathToAbsolutePath):
2449         * Modules/filesystem/DOMWindowFileSystem.cpp:
2450         (WebCore::DOMWindowFileSystem::webkitRequestFileSystem):
2451         (WebCore::DOMWindowFileSystem::webkitResolveLocalFileSystemURL):
2452         (WebCore):
2453         * Modules/filesystem/DOMWindowFileSystem.h:
2454         * Modules/filesystem/LocalFileSystem.h:
2455         (LocalFileSystem):
2456         * Modules/filesystem/WorkerContextFileSystem.cpp:
2457         (WebCore::WorkerContextFileSystem::webkitRequestFileSystem):
2458         (WebCore::WorkerContextFileSystem::webkitRequestFileSystemSync):
2459         (WebCore::WorkerContextFileSystem::webkitResolveLocalFileSystemURL):
2460         (WebCore::WorkerContextFileSystem::webkitResolveLocalFileSystemSyncURL):
2461         (WebCore):
2462         * Modules/filesystem/WorkerContextFileSystem.h:
2463         * platform/AsyncFileSystem.cpp:
2464         (WebCore::AsyncFileSystem::isValidType):
2465         (WebCore::AsyncFileSystem::create):
2466         (WebCore::AsyncFileSystem::openFileSystem):
2467         * platform/AsyncFileSystem.h:
2468         (AsyncFileSystem):
2469         (WebCore::AsyncFileSystem::type):
2470         (WebCore::AsyncFileSystem::AsyncFileSystem):
2471         * platform/FileSystemType.h: Added.
2472         (WebCore):
2473         * platform/blackberry/AsyncFileSystemBlackBerry.cpp:
2474         (WebCore::AsyncFileSystem::isValidType):
2475         (WebCore::AsyncFileSystem::create):
2476         (WebCore::AsyncFileSystem::openFileSystem):
2477         (WebCore::AsyncFileSystem::crackFileSystemURL):
2478         (WebCore::AsyncFileSystemBlackBerry::AsyncFileSystemBlackBerry):
2479         * platform/blackberry/AsyncFileSystemBlackBerry.h:
2480         (AsyncFileSystemBlackBerry):
2481         * platform/gtk/AsyncFileSystemGtk.cpp:
2482         (WebCore::AsyncFileSystem::isValidType):
2483         (WebCore::AsyncFileSystem::create):
2484         (WebCore::AsyncFileSystem::openFileSystem):
2485         (WebCore::AsyncFileSystem::crackFileSystemURL):
2486         (WebCore::AsyncFileSystemGtk::AsyncFileSystemGtk):
2487         * platform/gtk/AsyncFileSystemGtk.h:
2488         (AsyncFileSystemGtk):
2489
2490 2012-05-06  MORITA Hajime  <morrita@google.com>
2491
2492         https://bugs.webkit.org/show_bug.cgi?id=85265
2493         [Shadow DOM] ShadowTree needs a better name
2494
2495         Reviewed by Dimitri Glazkov.
2496
2497         Renamed ShadowTree to ElementShadow, The ElementShadow class is
2498         going to be a facade of Shadow related APIs.
2499
2500         Following renames follow:
2501         - Element::shadowTree() to Element::shadow()
2502         - ShadowRoot::tree() to ShadowRoot::owner()
2503         - ShadowTree::recalcShadowTreeStyle() to ElementShadow::recalcStyle()
2504
2505         No new tests. Just renames.
2506
2507         * CMakeLists.txt:
2508         * GNUmakefile.list.am:
2509         * Target.pri:
2510         * WebCore.exp.in:
2511         * WebCore.gypi:
2512         * WebCore.xcodeproj/project.pbxproj:
2513         * dom/ComposedShadowTreeWalker.cpp:
2514         (WebCore::shadowFor):
2515         (WebCore::shadowOfParent):
2516         (WebCore::ComposedShadowTreeWalker::traverseChild):
2517         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
2518         (WebCore::ComposedShadowTreeWalker::traverseParent):
2519         * dom/ContainerNodeAlgorithms.cpp:
2520         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
2521         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
2522         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
2523         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
2524         * dom/DOMAllInOne.cpp:
2525         * dom/Document.cpp:
2526         (WebCore::Document::buildAccessKeyMap):
2527         * dom/Element.cpp:
2528         (WebCore::Element::~Element):
2529         (WebCore::Element::willRemove):
2530         (WebCore::Element::attach):
2531         (WebCore::Element::detach):
2532         (WebCore::Element::recalcStyle):
2533         (WebCore::Element::hasShadowRoot):
2534         (WebCore::Element::shadow):
2535         (WebCore::Element::ensureShadow):
2536         (WebCore::Element::ensureShadowRoot):
2537         (WebCore::Element::childrenChanged):
2538         * dom/Element.h:
2539         (WebCore):
2540         (Element):
2541         * dom/ElementRareData.h:
2542         (ElementRareData):
2543         (WebCore::ElementRareData::~ElementRareData):
2544         * dom/ElementShadow.cpp: Renamed from Source/WebCore/dom/ShadowTree.cpp.
2545         (WebCore):
2546         (WebCore::ElementShadow::ElementShadow):
2547         (WebCore::ElementShadow::~ElementShadow):
2548         (WebCore::validateShadowRoot):
2549         (WebCore::ElementShadow::addShadowRoot):
2550         (WebCore::ElementShadow::removeAllShadowRoots):
2551         (WebCore::ElementShadow::willRemove):
2552         (WebCore::ElementShadow::setParentTreeScope):
2553         (WebCore::ElementShadow::attach):
2554         (WebCore::ElementShadow::attachHost):
2555         (WebCore::ElementShadow::detach):
2556         (WebCore::ElementShadow::detachHost):
2557         (WebCore::ElementShadow::insertionPointFor):
2558         (WebCore::ElementShadow::selectionFor):
2559         (WebCore::ElementShadow::reattach):
2560         (WebCore::ElementShadow::childNeedsStyleRecalc):
2561         (WebCore::ElementShadow::needsStyleRecalc):
2562         (WebCore::ElementShadow::recalcStyle):
2563         (WebCore::ElementShadow::needsReattachHostChildrenAndShadow):
2564         (WebCore::ElementShadow::hostChildrenChanged):
2565         (WebCore::ElementShadow::setNeedsReattachHostChildrenAndShadow):
2566         (WebCore::ElementShadow::reattachHostChildrenAndShadow):
2567         * dom/ElementShadow.h: Renamed from Source/WebCore/dom/ShadowTree.h.
2568         (WebCore):
2569         (ElementShadow):
2570         (WebCore::ElementShadow::hasShadowRoot):
2571         (WebCore::ElementShadow::youngestShadowRoot):
2572         (WebCore::ElementShadow::oldestShadowRoot):
2573         (WebCore::ElementShadow::selector):
2574         (WebCore::ElementShadow::clearNeedsReattachHostChildrenAndShadow):
2575         (WebCore::ElementShadow::host):
2576         (ShadowRootVector):
2577         (WebCore::ShadowRootVector::ShadowRootVector):
2578         * dom/Node.cpp:
2579         (WebCore::oldestShadowRootFor):
2580         * dom/NodeRenderingContext.cpp:
2581         (WebCore::NodeRenderingContext::NodeRenderingContext):
2582         (WebCore::NodeRenderingContext::hostChildrenChanged):
2583         * dom/NodeRenderingContext.h:
2584         (WebCore):
2585         * dom/ShadowRoot.cpp:
2586         (WebCore::ShadowRoot::create):
2587         (WebCore::ShadowRoot::owner):
2588         * dom/ShadowRoot.h:
2589         (WebCore):
2590         (ShadowRoot):
2591         * dom/TreeScopeAdopter.cpp:
2592         (WebCore::shadowFor):
2593         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
2594         (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
2595         (WebCore::TreeScopeAdopter::moveShadowToNewDocument):
2596         * dom/TreeScopeAdopter.h:
2597         (TreeScopeAdopter):
2598         * html/ColorInputType.cpp:
2599         (WebCore::ColorInputType::createShadowSubtree):
2600         (WebCore::ColorInputType::shadowColorSwatch):
2601         * html/FileInputType.cpp:
2602         (WebCore::FileInputType::createShadowSubtree):
2603         (WebCore::FileInputType::multipleAttributeChanged):
2604         * html/HTMLDetailsElement.cpp:
2605         (WebCore::HTMLDetailsElement::findMainSummary):
2606         * html/HTMLKeygenElement.cpp:
2607         (WebCore::HTMLKeygenElement::shadowSelect):
2608         * html/HTMLMediaElement.cpp:
2609         (WebCore::HTMLMediaElement::mediaControls):
2610         (WebCore::HTMLMediaElement::hasMediaControls):
2611         * html/HTMLSummaryElement.cpp:
2612         * html/HTMLTextAreaElement.cpp:
2613         (WebCore::HTMLTextAreaElement::innerTextElement):
2614         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
2615         * html/InputType.cpp:
2616         (WebCore::InputType::destroyShadowSubtree):
2617         * html/RangeInputType.cpp:
2618         (WebCore::RangeInputType::handleMouseDownEvent):
2619         (WebCore::RangeInputType::createShadowSubtree):
2620         * html/TextFieldInputType.cpp:
2621         (WebCore::TextFieldInputType::createShadowSubtree):
2622         (WebCore::TextFieldInputType::updatePlaceholderText):
2623         * html/ValidationMessage.cpp:
2624         (WebCore::ValidationMessage::deleteBubbleTree):
2625         * html/shadow/HTMLContentElement.cpp:
2626         (WebCore::HTMLContentElement::parseAttribute):
2627         * html/shadow/InsertionPoint.cpp:
2628         (WebCore::InsertionPoint::attach):
2629         (WebCore::InsertionPoint::detach):
2630         (WebCore::InsertionPoint::distributeHostChildren):
2631         (WebCore::InsertionPoint::clearDistribution):
2632         * html/shadow/InsertionPoint.h:
2633         * html/shadow/SliderThumbElement.cpp:
2634         (WebCore::sliderThumbElementOf):
2635         (WebCore::RenderSliderContainer::layout):
2636         (WebCore::trackLimiterElementOf):
2637         * html/shadow/TextFieldDecorationElement.cpp:
2638         (WebCore::getDecorationRootAndDecoratedRoot):
2639         * inspector/InspectorDOMAgent.cpp:
2640         (WebCore::InspectorDOMAgent::unbind):
2641         (WebCore::InspectorDOMAgent::buildObjectForNode):
2642         * page/FocusController.cpp:
2643         (WebCore::FocusScope::focusScopeOf):
2644         (WebCore::FocusScope::focusScopeOwnedByShadowHost):
2645         * rendering/RenderFileUploadControl.cpp:
2646         (WebCore::RenderFileUploadControl::uploadButton):
2647         * svg/SVGTRefElement.cpp:
2648         (WebCore::SVGTRefElement::updateReferencedText):
2649         (WebCore::SVGTRefElement::detachTarget):
2650         * svg/SVGUseElement.cpp:
2651         (WebCore::SVGUseElement::clearResourceReferences):
2652         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
2653         (WebCore::SVGUseElement::buildShadowTree):
2654         * testing/Internals.cpp:
2655         (WebCore::Internals::ensureShadowRoot):
2656         (WebCore::Internals::youngestShadowRoot):
2657         (WebCore::Internals::oldestShadowRoot):
2658         (WebCore::Internals::removeShadowRoot):
2659
2660 2012-05-06  Sheriff Bot  <webkit.review.bot@gmail.com>
2661
2662         Unreviewed, rolling out r116235.
2663         http://trac.webkit.org/changeset/116235
2664         https://bugs.webkit.org/show_bug.cgi?id=85773
2665
2666         broke a lot of tests on all chromium debug bots (Requested by
2667         caseq_ on #webkit).
2668
2669         * bindings/objc/DOMCSS.mm:
2670         * css/CSSFontFaceRule.cpp:
2671         * css/CSSFontFaceRule.h:
2672         (CSSFontFaceRule):
2673         * css/CSSImportRule.cpp:
2674         * css/CSSMediaRule.cpp:
2675         (WebCore::CSSMediaRule::insertRule):
2676         (WebCore::CSSMediaRule::deleteRule):
2677         * css/CSSMediaRule.h:
2678         (CSSMediaRule):
2679         * css/CSSPageRule.cpp:
2680         (WebCore::CSSPageRule::setSelectorText):
2681         * css/CSSPageRule.h:
2682         (CSSPageRule):
2683         * css/CSSRule.cpp:
2684         * css/CSSRule.h:
2685         (CSSRule):
2686         (WebCore::CSSRule::parserContext):
2687         * css/CSSStyleRule.cpp:
2688         (WebCore::CSSStyleRule::setSelectorText):
2689         * css/CSSStyleRule.h:
2690         * css/CSSStyleSheet.cpp:
2691         (WebCore::StyleSheetInternal::StyleSheetInternal):
2692         (WebCore::StyleSheetInternal::isCacheable):
2693         (WebCore::StyleSheetInternal::createChildRuleCSSOMWrapper):
2694         (WebCore::StyleSheetInternal::wrapperInsertRule):
2695         (WebCore::StyleSheetInternal::wrapperDeleteRule):
2696         (WebCore::StyleSheetInternal::styleSheetChanged):
2697         (WebCore):
2698         (WebCore::CSSStyleSheet::setDisabled):
2699         (WebCore::CSSStyleSheet::item):
2700         (WebCore::CSSStyleSheet::insertRule):
2701         (WebCore::CSSStyleSheet::deleteRule):
2702         * css/CSSStyleSheet.h:
2703         (StyleSheetInternal):
2704         (WebCore::StyleSheetInternal::hasCharsetRule):
2705         (WebCore::CSSStyleSheet::styleSheetChanged):
2706         (CSSStyleSheet):
2707         * css/MediaList.cpp:
2708         (WebCore::MediaList::setMediaText):
2709         (WebCore::MediaList::deleteMedium):
2710         (WebCore::MediaList::appendMedium):
2711         (WebCore::MediaList::notifyChanged):
2712         * css/MediaList.h:
2713         (MediaList):
2714         * css/PropertySetCSSStyleDeclaration.cpp:
2715         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
2716         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
2717         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
2718         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
2719         (WebCore::PropertySetCSSStyleDeclaration::didMutate):
2720         (WebCore):
2721         (WebCore::StyleRuleCSSStyleDeclaration::setNeedsStyleRecalc):
2722         (WebCore::InlineCSSStyleDeclaration::setNeedsStyleRecalc):
2723         * css/PropertySetCSSStyleDeclaration.h:
2724         (WebCore::PropertySetCSSStyleDeclaration::setNeedsStyleRecalc):
2725         (PropertySetCSSStyleDeclaration):
2726         (StyleRuleCSSStyleDeclaration):
2727         * css/StylePropertySet.cpp:
2728         * css/WebKitCSSKeyframesRule.cpp:
2729         (WebCore::WebKitCSSKeyframesRule::setName):
2730         (WebCore::WebKitCSSKeyframesRule::insertRule):
2731         (WebCore::WebKitCSSKeyframesRule::deleteRule):
2732         * css/WebKitCSSKeyframesRule.h:
2733         (WebKitCSSKeyframesRule):
2734         * css/WebKitCSSRegionRule.cpp:
2735         * css/WebKitCSSRegionRule.h:
2736         (WebKitCSSRegionRule):
2737         * inspector/InspectorStyleSheet.cpp:
2738         (WebCore::InspectorStyleSheet::reparseStyleSheet):
2739         * loader/cache/CachedCSSStyleSheet.cpp:
2740         (WebCore::CachedCSSStyleSheet::~CachedCSSStyleSheet):
2741         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
2742         (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
2743         (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
2744
2745 2012-05-06  Adam Barth  <abarth@webkit.org>
2746
2747         Attempt to fix the !ENABLE(INSPECTOR) build by making InspectorValues
2748         available unconditionally.  We should probably rename these classes to
2749         JSONValues and move them into WebCore/platform.
2750
2751         * inspector/InspectorValues.cpp:
2752         * inspector/InspectorValues.h:
2753
2754 2012-05-06  Adam Barth  <abarth@webkit.org>
2755
2756         CSP violation reports should have all the fields required by the spec
2757         https://bugs.webkit.org/show_bug.cgi?id=85682
2758
2759         Reviewed by Darin Adler.
2760
2761         This patch updates our CSP violation reports to include all the fields
2762         in the spec.  We've discussed all these fields in the working group,
2763         and we have fairly high confidence that these are safe to expose.
2764
2765         Tests: http/tests/security/contentSecurityPolicy/report-and-enforce.html
2766                http/tests/security/contentSecurityPolicy/report-blocked-uri-cross-origin.html
2767                http/tests/security/contentSecurityPolicy/report-blocked-uri.html
2768                http/tests/security/contentSecurityPolicy/report-only-from-header.html
2769                http/tests/security/contentSecurityPolicy/report-only.html
2770                http/tests/security/contentSecurityPolicy/report-uri-from-child-frame.html
2771                http/tests/security/contentSecurityPolicy/report-uri.html
2772
2773         * page/ContentSecurityPolicy.cpp:
2774         (CSPDirectiveList):
2775         (WebCore::CSPDirectiveList::reportViolation):
2776         (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
2777
2778 2012-05-06  Kinuko Yasuda  <kinuko@chromium.org>
2779
2780         Cleanup: FileSystem API's Entry.toURL() impl should return KURL instead of String
2781         https://bugs.webkit.org/show_bug.cgi?id=85736
2782
2783         Change the return type of Entry::toURL() from String to KURL.
2784
2785         Reviewed by David Levin.
2786
2787         No new tests as this change should not have any visible impact in the javascript layer.
2788
2789         * Modules/filesystem/EntryBase.cpp:
2790         (WebCore::EntryBase::toURL):
2791         * Modules/filesystem/EntryBase.h:
2792         * platform/AsyncFileSystem.h:
2793         * platform/blackberry/AsyncFileSystemBlackberry.cpp:
2794         (AsyncFileSystemBlackberry::toURL):
2795         * platform/blackberry/AsyncFileSystemBlackberry.h:
2796         * platform/gtk/AsyncFileSystemGtk.cpp:
2797         (AsyncFileSystemGtk::toURL):
2798         * platform/gtk/AsyncFileSystemGtk.h:
2799
2800 2012-05-06  Kentaro Hara  <haraken@chromium.org>
2801
2802         [V8][Performance] Remove Isolate lookup from the call path
2803         to get a cached JS wrapper object by getDOMXXXXMap().
2804         https://bugs.webkit.org/show_bug.cgi?id=85205
2805
2806         Reviewed by Adam Barth.
2807
2808         The patch improves the performance of getting a cached JS wrapper
2809         by getDOMXXXXMap(). For example, it improves the performance
2810         of toV8(NodeList*) in getElementsByTagName(), getElementsByName(),
2811         getElementsByClassName() by 7 ~ 9%.
2812
2813         Performance tests: https://bugs.webkit.org/attachment.cgi?id=139468
2814
2815         The performance test results in my Linux desktop:
2816
2817         getElementsByTagName :   40.76 ms => 37.52ms (+8.6%)
2818         getElementsByName :      41.02 ms => 37.42ms (+9.6%)
2819         getElementsByClassName : 40.32 ms => 37.68ms (+7.0%)
2820
2821         Unfortunately we cannot observe performance improvement in
2822         Dromaeo/dom-query.html, which are testing getElementsByTagName(),
2823         getElementsByName(), getElementsByClassName(). This is because
2824         the bottleneck of these Dromaeo tests is not toV8(NodeList*) but
2825         .length and .nodeType accesses. The patch for optimizing them
2826         will be coming soon.
2827
2828         No tests. No change in behavior.
2829
2830         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
2831         (GenerateHeader):
2832         (GenerateNormalAttrGetter):
2833         (GetDomMapFunction):
2834         (NativeToJSValue):
2835         * bindings/v8/DOMData.cpp:
2836         (WebCore::DOMData::getCurrentStore):
2837
2838         * bindings/scripts/test/V8/V8Float64Array.h: Updated run-bindings-tests results.
2839         (WebCore::V8Float64Array::wrap):
2840         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2841         (WebCore::V8TestActiveDOMObject::wrap):
2842         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2843         (WebCore::V8TestCustomNamedGetter::wrap):
2844         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2845         (WebCore::V8TestEventConstructor::wrap):
2846         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2847         (WebCore::TestEventTargetV8Internal::itemCallback):
2848         * bindings/scripts/test/V8/V8TestEventTarget.h:
2849         (WebCore::V8TestEventTarget::wrap):
2850         * bindings/scripts/test/V8/V8TestInterface.cpp:
2851         (WebCore::TestInterfaceV8Internal::supplementalNodeAttrGetter):
2852         * bindings/scripts/test/V8/V8TestInterface.h:
2853         (WebCore::V8TestInterface::wrap):
2854         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2855         (WebCore::V8TestMediaQueryListListener::wrap):
2856         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2857         (WebCore::V8TestNamedConstructor::wrap):
2858         * bindings/scripts/test/V8/V8TestObj.cpp:
2859         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
2860         (WebCore::TestObjV8Internal::cachedAttribute1AttrGetter):
2861         (WebCore::TestObjV8Internal::cachedAttribute2AttrGetter):
2862         (WebCore::TestObjV8Internal::contentDocumentAttrGetter):
2863         (WebCore::TestObjV8Internal::getSVGDocumentCallback):
2864         * bindings/scripts/test/V8/V8TestObj.h:
2865         (WebCore::V8TestObj::wrap):
2866         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2867         (WebCore::V8TestSerializedScriptValueInterface::wrap):
2868
2869 2012-05-06  Adam Barth  <abarth@webkit.org>
2870
2871         Content Security Policy reports should be reported with content-type application/json, should contain all required fields
2872         https://bugs.webkit.org/show_bug.cgi?id=61360
2873
2874         Reviewed by Eric Seidel.
2875
2876         This patch changes ContentSecurityPolicy to use JSON format for sending
2877         violation reports rather than wwwform-encoding.  This patch aligns our
2878         behavior with the specification and with Mozilla.  A follow up patch
2879         will update the list of fields in the report to match the spec.
2880
2881         * loader/PingLoader.cpp:
2882         (WebCore::PingLoader::reportContentSecurityPolicyViolation):
2883         * page/ContentSecurityPolicy.cpp:
2884         (WebCore::CSPDirectiveList::reportViolation):
2885
2886 2012-05-06  Mary Wu  <mary.wu@torchmobile.com.cn>
2887
2888         [BlackBerry] Support html5 download attribute.
2889         https://bugs.webkit.org/show_bug.cgi?id=85044
2890
2891         Reviewed by Antonio Gomes.
2892
2893         Pass download attribute filename to networkJob and it could be
2894         overridden by the Content-Disposition HTTP header's filename parameter.
2895
2896         * platform/network/blackberry/NetworkJob.cpp:
2897         (WebCore::NetworkJob::initialize):
2898         * platform/network/blackberry/ResourceRequest.h:
2899         (WebCore::ResourceRequest::setSuggestSaveName):
2900         (WebCore::ResourceRequest::suggestSaveName):
2901         (ResourceRequest):
2902         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
2903         (WebCore::ResourceRequest::initializePlatformRequest):
2904
2905 2012-05-06  Kenichi Ishibashi  <bashi@chromium.org>
2906
2907         Disallow unquoted -webkit-font-feature-settings tags
2908         https://bugs.webkit.org/show_bug.cgi?id=85362
2909
2910         Reviewed by Kent Tamura.
2911
2912         Disallow unquoted tags to follow the current draft.
2913         http://dev.w3.org/csswg/css3-fonts/#font-feature-settings-prop
2914
2915         No new tests. css3/font-feature-settings-parsing.html was updated.
2916
2917         * css/CSSParser.cpp:
2918         (WebCore::CSSParser::parseFontFeatureTag): Accepts only 4-characters string.
2919
2920 2012-05-06  Raphael Kubo da Costa  <rakuco@webkit.org>
2921
2922         Unreviewed build fix for r116260.
2923
2924         COMPILE_ASSERT() does not expect a string in its second parameter.
2925
2926         * platform/graphics/TextRun.cpp:
2927         (WebCore):
2928
2929 2012-05-06  Rob Buis  <rbuis@rim.com>
2930
2931         Shrink TextRun object size
2932         https://bugs.webkit.org/show_bug.cgi?id=85751
2933
2934         Reviewed by Darin Adler.
2935
2936         Reorder the member variables in TextRun so it shrinks from 56 to 40 bytes on my 64-bit build. This is important
2937         for SVG, since RenderSVGText shrinks because of this.
2938
2939         Also add a compile assert for the expected object size.
2940
2941         * platform/graphics/TextRun.cpp:
2942         (ExpectedTextRunSize):
2943         (WebCore):
2944         * platform/graphics/TextRun.h:
2945         (WebCore::TextRun::TextRun):
2946         (WebCore::TextRun::direction):
2947         (TextRun):
2948
2949 2012-05-06  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
2950
2951         [BlackBerry] Autofill backing store implementation upstream
2952         https://bugs.webkit.org/show_bug.cgi?id=85575
2953
2954         Reviewed by Rob Buis.
2955
2956         Implemented class AutofillBackingStore which is responsible
2957         for handling interaction with autofill database.
2958
2959         Replaced static function
2960         CredentialBackingStore* CredentialBackingStore::instance()
2961         with a helper function
2962         CredentialBackingStore& credentialBackingStore(),
2963         and used DEFINE_STATIC_LOCAL to construct the singleton
2964         object.
2965         Also removed unnecessary function close() and combined with
2966         the destructor of class CredentialBackingStore.
2967
2968         Initial upstream, No new tests.
2969
2970         * PlatformBlackBerry.cmake:
2971         * platform/network/blackberry/AutofillBackingStore.cpp: Added.
2972         (WebCore):
2973         (WebCore::autofillBackingStore):
2974         (WebCore::AutofillBackingStore::AutofillBackingStore):
2975         (WebCore::AutofillBackingStore::~AutofillBackingStore):
2976         (WebCore::AutofillBackingStore::open):
2977         (WebCore::AutofillBackingStore::add):
2978         (WebCore::AutofillBackingStore::update):
2979         (WebCore::AutofillBackingStore::contains):
2980         (WebCore::AutofillBackingStore::get):
2981         (WebCore::AutofillBackingStore::clear):
2982         * platform/network/blackberry/AutofillBackingStore.h: Added.
2983         (WebCore):
2984         (AutofillBackingStore):
2985         * platform/network/blackberry/CredentialBackingStore.cpp:
2986         (WebCore::credentialBackingStore):
2987         (WebCore::CredentialBackingStore::~CredentialBackingStore):
2988         * platform/network/blackberry/CredentialBackingStore.h:
2989         (CredentialBackingStore):
2990         (WebCore):
2991         * platform/network/blackberry/CredentialStorageBlackBerry.cpp:
2992         (WebCore::CredentialStorage::getFromPersistentStorage):
2993
2994 2012-05-06  MORITA Hajime  <morrita@google.com>
2995
2996         [Shadow DOM] Node distribution should be refreshed before style recalc.
2997         https://bugs.webkit.org/show_bug.cgi?id=85259
2998
2999         Reviewed by Dimitri Glazkov.
3000
3001         Element::recalcStyle() calls child element's recalcStyle()
3002         recursively, following ShadowTree::recalcShadowTreeStyle(). But
3003         recalcShadowTreeStyle() should be called before such recursion if
3004         necessary.
3005
3006         This is because style calculation and following renderer attachment
3007         of each child element depends on up-to-date node distribution result
3008         which is computed during the recalcShadowTreeStyle().
3009
3010         Test: fast/dom/shadow/shadow-dynamic-style-change-via-mutation-and-selector.html
3011
3012         * dom/Element.cpp: Moved recalcShadowTreeStyle() before child traversals.
3013         (WebCore::Element::recalcStyle):
3014
3015 2012-05-06  Adam Barth  <abarth@webkit.org>
3016
3017         CSP should let sites both enforce one policy and monitor another
3018         https://bugs.webkit.org/show_bug.cgi?id=85561
3019
3020         Reviewed by Eric Seidel.
3021
3022         This patch lets us enforce and/or monitor multiple CSP policies.
3023         Rather than having a single directive list, we now have a vector of
3024         directive lists.
3025
3026         Tests: http/tests/security/contentSecurityPolicy/combine-multiple-policies.html
3027                http/tests/security/contentSecurityPolicy/report-and-enforce.html
3028
3029         * page/ContentSecurityPolicy.cpp:
3030         (WebCore::ContentSecurityPolicy::copyStateFrom):
3031         (WebCore::ContentSecurityPolicy::didReceiveHeader):
3032         (WebCore::ContentSecurityPolicy::deprecatedHeader):
3033         (WebCore::ContentSecurityPolicy::deprecatedHeaderType):
3034             - Even after this patch, workers aren't smart enough to enforce
3035               multiple policies.  They just use the first header, like they did
3036               before.  We'll need to teach workers how to enforce multiple
3037               policies in a future patch.
3038         (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
3039         (WebCore::ContentSecurityPolicy::allowInlineEventHandlers):
3040         (WebCore::ContentSecurityPolicy::allowInlineScript):
3041         (WebCore::ContentSecurityPolicy::allowInlineStyle):
3042         (WebCore::ContentSecurityPolicy::allowEval):
3043         (WebCore::ContentSecurityPolicy::allowScriptFromSource):
3044         (WebCore::ContentSecurityPolicy::allowObjectFromSource):
3045         (WebCore::ContentSecurityPolicy::allowChildFrameFromSource):
3046         (WebCore::ContentSecurityPolicy::allowImageFromSource):
3047         (WebCore::ContentSecurityPolicy::allowStyleFromSource):
3048         (WebCore::ContentSecurityPolicy::allowFontFromSource):
3049         (WebCore::ContentSecurityPolicy::allowMediaFromSource):
3050         (WebCore::ContentSecurityPolicy::allowConnectFromSource):
3051         * page/ContentSecurityPolicy.h:
3052         * workers/DefaultSharedWorkerRepository.cpp:
3053         (WebCore::SharedWorkerScriptLoader::notifyFinished):
3054         * workers/WorkerMessagingProxy.cpp:
3055         (WebCore::WorkerMessagingProxy::startWorkerContext):
3056
3057 2012-05-06  Rob Buis  <rbuis@rim.com>
3058
3059         InlineBox::setHasBadParent should be debug only
3060         https://bugs.webkit.org/show_bug.cgi?id=85748
3061
3062         Reviewed by Eric Seidel.
3063
3064         Do not provide InlineBox::setHasBadParent in release builds.
3065
3066         * rendering/InlineBox.h:
3067         (InlineBox):
3068         (WebCore):
3069         (WebCore::InlineBox::setHasBadParent):
3070
3071 2012-05-06  Mike West  <mkwst@chromium.org>
3072
3073         KURL::isBlankURL would be a nicer idiom than KURL::protocolIs("about")
3074         https://bugs.webkit.org/show_bug.cgi?id=85641
3075
3076         Reviewed by Adam Barth.
3077
3078         * dom/Document.cpp:
3079         (WebCore::shouldInheritSecurityOriginFromOwner):
3080         * page/ContentSecurityPolicy.cpp:
3081         (WebCore::CSPDirectiveList::allowObjectFromSource):
3082         (WebCore::CSPDirectiveList::allowChildFrameFromSource):
3083         * page/PageSerializer.cpp:
3084         (WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
3085         (WebCore::PageSerializer::serializeFrame):
3086         * platform/KURL.cpp:
3087         (WebCore::KURL::isBlankURL):
3088         (WebCore):
3089         * platform/KURL.h:
3090         (KURL):
3091         (WebCore):
3092
3093 2012-05-06  Martin Robinson  <mrobinson@igalia.com>
3094
3095         [TextureMapper] Layer images is uploaded to the GPU for each sync
3096         https://bugs.webkit.org/show_bug.cgi?id=85727
3097
3098         Reviewed by Noam Rosenthal.
3099
3100         No new tests. This does not change functionality,
3101         it only improves performance.
3102
3103         * platform/graphics/texmap/TextureMapperLayer.cpp:
3104         (WebCore::TextureMapperLayer::updateBackingStore): Reset the needsDisplay
3105         and needsDisplayRect variables after uploading the layer image.
3106
3107 2012-05-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3108
3109         Convert isPageBoxVisible to use Internals interface.
3110         https://bugs.webkit.org/show_bug.cgi?id=85692
3111
3112         Reviewed by Darin Adler.
3113
3114         Add isPageBoxVisible functions, because it is able to work in the
3115         cross-port way through the Internals interface.
3116
3117         No new tests, since we are improving here the infra-structure for testing
3118         a specific method.
3119
3120         * testing/Internals.cpp:
3121         (WebCore):
3122         (WebCore::Internals::isPageBoxVisible):
3123         * testing/Internals.h:
3124         (Internals):
3125         * testing/Internals.idl:
3126
3127 2012-05-06  Eugene Klyuchnikov  <eustas.bug@gmail.com>
3128
3129         Web Inspector: "Goto Function" filtering should be less restrictive.
3130         https://bugs.webkit.org/show_bug.cgi?id=85586
3131
3132         Reviewed by Pavel Feldman.
3133
3134         Added tests for generated regex.
3135
3136         Changes:
3137         1) Avoid asterisks in filtering queue.
3138         2) Optimization: do not create regexp for each item.
3139
3140         * inspector/front-end/FilteredItemSelectionDialog.js: 
3141         (WebInspector.FilteredItemSelectionDialog.prototype.get _itemsLoaded):
3142         Applied new filtering workflow.
3143         (WebInspector.FilteredItemSelectionDialog.prototype._checkItemAt):
3144         Removed.
3145         (WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegExp):
3146         Removed unused "suffix" logic; changed the way regexp is composed from query.
3147         (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
3148         Applied new filtering workflow.
3149         (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
3150         Removed unused var.
3151
3152 2012-05-06  Kent Tamura  <tkent@chromium.org>
3153
3154         Rename ICULocale to LocaleICU, part 2
3155         https://bugs.webkit.org/show_bug.cgi?id=85695
3156
3157         Reviewed by Kentaro Hara.
3158
3159         No behavior change
3160
3161         * platform/text/LocaleICU.cpp: Rename ICULocale to LocaleICU.
3162         * platform/text/LocaleICU.h: ditto.
3163         Also, update obsolete comments.
3164         * platform/text/LocalizedDateICU.cpp: Rename ICULocale to LocaleICU.
3165         (WebCore::parseLocalizedDate):
3166         (WebCore::formatLocalizedDate):
3167         (WebCore::localizedDateFormatText):
3168         (WebCore::monthLabels):
3169         (WebCore::weekDayShortLabels):
3170         (WebCore::firstDayOfWeek):
3171         * platform/text/LocalizedNumberICU.cpp: ditto.
3172         (WebCore::convertToLocalizedNumber):
3173         (WebCore::convertFromLocalizedNumber):
3174
3175 2012-05-06  Kevin Ollivier  <kevino@theolliviers.com>
3176
3177         [wx] Unreviewed. Build fixes for recent trunk changes.
3178
3179         * platform/graphics/SimpleFontData.h:
3180         (SimpleFontData):
3181         * platform/graphics/wx/FontPlatformData.h:
3182         (FontPlatformData):
3183         (WebCore::FontPlatformData::isCompositeFontReference):
3184         * platform/graphics/wx/SimpleFontDataWx.cpp:
3185         (WebCore):
3186         (WebCore::SimpleFontData::getCompositeFontReferenceFontData):
3187         * plugins/mac/PluginViewMac.mm:
3188         * rendering/RenderObject.h:
3189
3190 2012-05-06  Andrey Kosyakov  <caseq@chromium.org>
3191
3192         Web Inspector: take timeline frame mode out of experimental
3193         https://bugs.webkit.org/show_bug.cgi?id=85707
3194
3195         Reviewed by Pavel Feldman.
3196
3197         - remove "Vertical timeline overview" experiment;
3198         - add supportsFrameInstrumentation capability to InspectorTimelineAgent;
3199         - show frame mode selector conditionally on supportsFrameInstrumentation capability.
3200
3201         * inspector/Inspector.json: Add Timeline.supportsFrameInstrumentation capability;
3202         * inspector/InspectorClient.h: Add supportsFrameInstrumentation();
3203         (InspectorClient):
3204         (WebCore::InspectorClient::supportsFrameInstrumentation):
3205         * inspector/InspectorController.cpp:
3206         (WebCore::InspectorController::InspectorController):
3207         * inspector/InspectorTimelineAgent.cpp:
3208         (WebCore::InspectorTimelineAgent::supportsFrameInstrumentation):
3209         (WebCore):
3210         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent): Added FrameInstrumentationSupport parameter.
3211         * inspector/InspectorTimelineAgent.h:
3212         (WebCore):
3213         (WebCore::InspectorTimelineAgent::create): ditto.
3214         (InspectorTimelineAgent):
3215         * inspector/WorkerInspectorController.cpp: Updated call site for InspectorTimelineAgent::create() to indicate frame instrumentation not supported.
3216         (WebCore::WorkerInspectorController::WorkerInspectorController):
3217         * inspector/front-end/Settings.js:
3218         (WebInspector.ExperimentsSettings): Removed "Vertical Overview" experiment.
3219         * inspector/front-end/TimelineOverviewPane.js: Expose frame mode conditionally on capability, not the experiment.
3220         (WebInspector.TimelineOverviewPane):
3221         * inspector/front-end/inspector.js: Added initialization for Capabilities.timelineSupportsFrameInstrumentation;
3222         (WebInspector.doLoadedDone):
3223
3224 2012-05-06  Antti Koivisto  <antti@apple.com>
3225
3226         Build fix.
3227
3228         Not reviewed.
3229
3230         * css/PropertySetCSSStyleDeclaration.cpp:
3231
3232 2012-05-04  Antti Koivisto  <antti@apple.com>
3233
3234         Share stylesheet data structures between documents
3235         https://bugs.webkit.org/show_bug.cgi?id=85598
3236
3237         Reviewed by Darin Adler.
3238
3239         We currently make a copy of the data structures when restoring a cached stylesheet. This patch lets us share
3240         the data until someone uses CSSOM to modify the sheet.
3241         
3242         The patch implements copy-on-write for the internal style sheet data structures. If any mutation CSSOM API is
3243         invoked, we check if the stylesheet can be safely mutated (we are the only client, it is not cached). If not
3244         then the internal structures are copied and any existing CSSOM objects are re-attached to the new tree.
3245         
3246         Sharing can save significant amount of memory on sites with large stylesheets. For example if you have
3247         multiple articles open on wsj.com this saves ~2.6MB per tab.
3248         
3249         Test: http/tests/css/shared-stylesheet-mutation.html
3250               http/tests/css/shared-stylesheet-mutation-preconstruct.html
3251
3252         * css/CSSFontFaceRule.cpp:
3253         (WebCore::CSSFontFaceRule::reattach):
3254         (WebCore):
3255         * css/CSSFontFaceRule.h:
3256         (CSSFontFaceRule):
3257         * css/CSSMediaRule.cpp:
3258         (WebCore::CSSMediaRule::insertRule):
3259         (WebCore::CSSMediaRule::deleteRule):
3260         (WebCore::CSSMediaRule::reattach):
3261         (WebCore):
3262         * css/CSSMediaRule.h:
3263         (CSSMediaRule):
3264         * css/CSSPageRule.cpp:
3265         (WebCore::CSSPageRule::setSelectorText):
3266         (WebCore::CSSPageRule::reattach):
3267         (WebCore):
3268         * css/CSSPageRule.h:
3269         (CSSPageRule):
3270         * css/CSSRule.cpp:
3271         (WebCore::CSSRule::reattach):
3272         
3273             After the internal stylerule tree has been copied, the existing wrappers are re-attached using recursive reattach() function.
3274
3275         * css/CSSRule.h:
3276         (WebCore):
3277         (CSSRule):
3278         * css/CSSStyleRule.cpp:
3279         (WebCore::CSSStyleRule::setSelectorText):
3280         (WebCore::CSSStyleRule::reattach):
3281         (WebCore):
3282         * css/CSSStyleRule.h:
3283         (CSSStyleRule):
3284         * css/CSSStyleSheet.cpp:
3285         (WebCore::StyleSheetInternal::StyleSheetInternal):
3286         (WebCore::StyleSheetInternal::isCacheable):
3287         (WebCore::StyleSheetInternal::ruleAt):
3288         
3289             Add ruleAt(), use it for both wrapper creation and reattaching.  Remove createChildRuleCSSOMWrapper .
3290
3291         (WebCore):
3292         (WebCore::StyleSheetInternal::wrapperInsertRule):
3293         (WebCore::StyleSheetInternal::wrapperDeleteRule):
3294         
3295             Invalidation moves to the calling wrapper.
3296
3297         (WebCore::StyleSheetInternal::addedToMemoryCache):
3298         (WebCore::StyleSheetInternal::removedFromMemoryCache):
3299         (WebCore::CSSStyleSheet::willMutateRules):
3300         
3301             This is called whenever StyleSheetInternal is going to be mutated. It will do copy-on-write if needed.
3302             
3303             Usually invoked by CSSStyleSheet::RuleMutation RAII type.
3304
3305         (WebCore::CSSStyleSheet::didMutateRules):
3306         
3307             This is called after the mutation is complete and will trigger the style recalc in the document.
3308
3309         (WebCore::CSSStyleSheet::didMutate):
3310         
3311             This is called directly after mutations that don't change StyleSheetInternal so don't require copy-on-write.
3312
3313         (WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):
3314         (WebCore::CSSStyleSheet::setDisabled):
3315         (WebCore::CSSStyleSheet::insertRule):
3316         (WebCore::CSSStyleSheet::deleteRule):
3317         * css/CSSStyleSheet.h:
3318         (StyleSheetInternal):
3319         (WebCore::StyleSheetInternal::hasOneClient):
3320         (WebCore::StyleSheetInternal::isMutable):
3321         (WebCore::StyleSheetInternal::setMutable):
3322         
3323             Track mutability. Mutation is allowed only after willMutate call.
3324
3325         (WebCore::StyleSheetInternal::isInMemoryCache):
3326         
3327             Track if the object is in memory cache.
3328
3329         (WebCore::CSSStyleSheet::clearOwnerRule):
3330         (CSSStyleSheet):
3331         * css/MediaList.cpp:
3332         (WebCore::MediaList::setMediaText):
3333         (WebCore::MediaList::deleteMedium):
3334         (WebCore::MediaList::appendMedium):
3335         (WebCore::MediaList::didMutate):
3336         (WebCore):
3337         (WebCore::MediaList::reattach):
3338         * css/MediaList.h:
3339         (MediaList):
3340         * css/PropertySetCSSStyleDeclaration.cpp:
3341         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
3342         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
3343         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
3344         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
3345         (WebCore):
3346         (WebCore::StyleRuleCSSStyleDeclaration::willMutate):
3347         (WebCore::StyleRuleCSSStyleDeclaration::didMutate):
3348         (WebCore::StyleRuleCSSStyleDeclaration::reattach):
3349         (WebCore::InlineCSSStyleDeclaration::didMutate):
3350         * css/PropertySetCSSStyleDeclaration.h:
3351         (WebCore::PropertySetCSSStyleDeclaration::willMutate):
3352         (WebCore::PropertySetCSSStyleDeclaration::didMutate):
3353         (StyleRuleCSSStyleDeclaration):
3354         * css/WebKitCSSKeyframesRule.cpp:
3355         (WebCore::WebKitCSSKeyframesRule::setName):
3356         (WebCore::WebKitCSSKeyframesRule::insertRule):
3357         (WebCore::WebKitCSSKeyframesRule::deleteRule):
3358         (WebCore::WebKitCSSKeyframesRule::reattach):
3359         (WebCore):
3360         * css/WebKitCSSKeyframesRule.h:
3361         (WebKitCSSKeyframesRule):
3362         * css/WebKitCSSRegionRule.cpp:
3363         (WebCore::WebKitCSSRegionRule::reattach):
3364         * css/WebKitCSSRegionRule.h:
3365         (WebKitCSSRegionRule):
3366         * inspector/InspectorStyleSheet.cpp:
3367         (WebCore::InspectorStyleSheet::reparseStyleSheet):
3368         * loader/cache/CachedCSSStyleSheet.cpp:
3369         (WebCore::CachedCSSStyleSheet::~CachedCSSStyleSheet):
3370         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
3371         (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
3372         
3373             Don't copy when restoring. It is no longer necessary.
3374             Set the cache bit on the stylesheet.
3375
3376         (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
3377
3378 2012-05-05  Sheriff Bot  <webkit.review.bot@gmail.com>
3379
3380         Unreviewed, rolling out r116221.
3381         http://trac.webkit.org/changeset/116221
3382         https://bugs.webkit.org/show_bug.cgi?id=85722
3383
3384         broke builds that use -Wshorten-64-to-32 (Requested by pizlo
3385         on #webkit).
3386
3387         * html/canvas/WebGLRenderingContext.cpp:
3388         (WebCore):
3389         (WebCore::WebGLRenderingContext::bufferData):
3390         (WebCore::WebGLRenderingContext::bufferSubData):
3391         (WebCore::WebGLRenderingContext::drawElements):
3392         (WebCore::WebGLRenderingContext::getVertexAttribOffset):
3393         (WebCore::WebGLRenderingContext::vertexAttribPointer):
3394         * html/canvas/WebGLRenderingContext.h:
3395         (WebGLRenderingContext):
3396         * html/canvas/WebGLRenderingContext.idl:
3397
3398 2012-05-05  Martin Robinson  <mrobinson@igalia.com>
3399
3400         [GTK] WebKit should properly set the input method context window location
3401         https://bugs.webkit.org/show_bug.cgi?id=84981
3402
3403         Reviewed by Gustavo Noronha Silva.
3404
3405         * platform/gtk/GtkInputMethodFilter.cpp:
3406         (WebCore::GtkInputMethodFilter::setCursorRect): Add this method to plumb the
3407         cursor rect through to the input method.
3408         * platform/gtk/GtkInputMethodFilter.h: Add the new method declaration.
3409
3410 2012-05-05  Dean Jackson  <dino@apple.com>
3411
3412         Add new Setting/Preference to disable requestAnimationFrame
3413         https://bugs.webkit.org/show_bug.cgi?id=85693
3414
3415         Reviewed by Simon Fraser.
3416
3417         Hook up the new WebPreference for disabling requestAnimationFrame
3418         to Settings. This isn't disabling the feature in the typical
3419         WebKit ENABLE() way - it's still available in the DOM, it's
3420         just that the animations will never be serviced. This allows a client
3421         to disable the machinery without breaking content (other than the
3422         animations).
3423
3424         The new test is currently skipped on all platforms because toggling
3425         the preference interferes with the other tests that are running
3426         at the same time (and expect a working requestAnimationFrame).
3427         https://bugs.webkit.org/show_bug.cgi?id=85689
3428
3429         Test: fast/animation/request-animation-frame-disabled.html
3430
3431         * dom/ScriptedAnimationController.cpp:
3432         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
3433         (WebCore::ScriptedAnimationController::windowScreenDidChange):
3434         (WebCore::ScriptedAnimationController::scheduleAnimation):
3435         Check the setting before deciding to act.
3436         * page/Settings.cpp:
3437         (WebCore::Settings::Settings):
3438         * page/Settings.h:
3439         (WebCore::Settings::setRequestAnimationFrameEnabled):
3440         (WebCore::Settings::requestAnimationFrameEnabled):
3441         (Settings):
3442
3443 2012-05-05  Gustavo Noronha Silva  <gns@gnome.org>
3444
3445         Unreviewed, make distcheck fix.
3446
3447         * GNUmakefile.list.am: Add missing headers to the sources list.
3448
3449 2012-05-05  Ilya Tikhonovsky  <loislo@chromium.org>
3450
3451         Web Inspector: convert standalone functions save/append/savedURL/appendedToURL into WebInspector.FileManager object.
3452         https://bugs.webkit.org/show_bug.cgi?id=85710
3453
3454         The idea is to have an object and be able to add/remove event listeners from it.
3455
3456         Reviewed by Yury Semikhatsky.
3457
3458         * English.lproj/localizedStrings.js:
3459         * WebCore.gypi:
3460         * WebCore.vcproj/WebCore.vcproj:
3461         * inspector/compile-front-end.py:
3462         * inspector/front-end/FileManager.js: Copied from Source/WebCore/inspector/front-end/InspectorFrontendHostStub.js.
3463         (WebInspector.FileManager):
3464         (WebInspector.FileManager.prototype.canSave):
3465         (WebInspector.FileManager.prototype.canAppend):
3466         (WebInspector.FileManager.prototype.append):
3467         (WebInspector.FileManager.prototype.appendedToURL):
3468         * inspector/front-end/HeapSnapshotView.js:
3469         (WebInspector.HeapProfileHeader.prototype.canSave):
3470         (WebInspector.HeapProfileHeader.prototype.save):
3471         * inspector/front-end/InspectorFrontendHostStub.js:
3472         * inspector/front-end/WebKit.qrc:
3473         * inspector/front-end/inspector.html:
3474
3475 2012-05-05  Zhenyao Mo  <zmo@google.com>
3476
3477         vertexAttribPointer needs to reject large negative offsets
3478         https://bugs.webkit.org/show_bug.cgi?id=85117
3479
3480         Reviewed by Kenneth Russell.
3481
3482         * html/canvas/WebGLRenderingContext.cpp: Use long long for GLsizeiptr and GLintptr
3483         (WebCore):
3484         (WebCore::WebGLRenderingContext::bufferData):
3485         (WebCore::WebGLRenderingContext::bufferSubData):
3486         (WebCore::WebGLRenderingContext::drawElements):
3487         (WebCore::WebGLRenderingContext::getVertexAttribOffset):
3488         (WebCore::WebGLRenderingContext::vertexAttribPointer):
3489         * html/canvas/WebGLRenderingContext.h: Ditto
3490         (WebGLRenderingContext):
3491         * html/canvas/WebGLRenderingContext.idl: Ditto
3492
3493 2012-05-05  Andrey Kosyakov  <caseq@chromium.org>
3494
3495         Web Inspector: add separate timeline overview item for the frame mode
3496         https://bugs.webkit.org/show_bug.cgi?id=85706
3497
3498         - remove two-buttons horizontal/vertical mode switch from Timelines item of the timeline overview menu;
3499         - rename "Timeline" into "Events";
3500         - add "Frames" item;
3501         - replace overview sidebar icons with smaller, monochrome ones.
3502
3503         * English.lproj/localizedStrings.js: Added "Frames" and "Events".
3504         * inspector/front-end/Images/statusbarButtonGlyphs.png: Added icon for "Memory".
3505         * inspector/front-end/TimelineOverviewPane.js:
3506         (WebInspector.TimelineOverviewPane):
3507         (WebInspector.TimelineOverviewPane.prototype._showEvents):
3508         (WebInspector.TimelineOverviewPane.prototype._showFrames):
3509         (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
3510         (WebInspector.TimelineOverviewPane.prototype._setMode):
3511         * inspector/front-end/timelinePanel.css:
3512         (#timeline-overview-sidebar .sidebar-tree-item):
3513         (#timeline-overview-sidebar .sidebar-tree-item .titles.no-subtitle):
3514         (#timeline-overview-sidebar .icon):
3515         (.timeline-overview-sidebar-events .icon):
3516         (.timeline-overview-sidebar-frames .icon):
3517         (.timeline-overview-sidebar-memory .icon):
3518
3519 2012-05-05  Ilya Tikhonovsky  <loislo@chromium.org>
3520
3521         Web Inspector: save HeapSnapshot implementation.
3522         https://bugs.webkit.org/show_bug.cgi?id=85595
3523
3524         HeapSnapshot specific implementation for loading was moved
3525         from ProfilesPanel to HeapProfileHeader class.
3526
3527         Reviewed by Yury Semikhatsky.
3528
3529         * inspector/front-end/HeapSnapshotView.js:
3530         (WebInspector.HeapSnapshotView.prototype.get profileWrapper):
3531         (WebInspector.HeapSnapshotView.prototype.get baseProfileWrapper):
3532         (WebInspector.HeapProfileHeader):